Portál AbcLinuxu, 14. května 2025 02:32

Dotaz: RAID5 - pole přepsáno pomocí mdadm --create

5.7.2011 02:24 Rada | skóre: 14
RAID5 - pole přepsáno pomocí mdadm --create
Přečteno: 545×
Odpovědět | Admin
Zdravím, vyskytla se mi taková nepříjemná situace - díky mé chybě se mi podařilo přepsat diskové pole na serveru pomocí mdadm --create. Existuje ještě nějaká šance dostat z takového pole data? Původně pole vypadalo takto:
/dev/md0: 
Version : 0.90
Creation Time : Fri Oct 30 08:15:50 2009                                
     Raid Level : raid5                                                   
  Used Dev Size : 976762496 (931.51 GiB 1000.20 GB)                      
  Raid Devices : 3                                                      
  Total Devices : 3                                                       
  Preferred Minor : 0                                                      
  Persistence : Superblock is persistent

                                                            
  Update Time : Tue Jul  5 00:17:29 2011                               
  State : active, FAILED, Not Started                              
  Active Devices : 1                                                        
  Working Devices : 3                                                       
  Failed Devices : 0                                                         
  Spare Devices : 2                                                       
                                                                                          
         Layout : left-symmetric
     Chunk Size : 64K
           UUID :90c49a34:4801b02d:b02e60a1:741643b3
         Events : 0.3961328
                                                                                                                                                                      
    Number   Major   Minor   RaidDevice State                                                                                     
       0       0        0        0      removed   
       1       0        0        1      removed
       2       8       32        2      active sync /dev/sdc
       3       8       16        -      spare   /dev/sdb
       4       8        0        -      spare   /dev/sda

Zmíněné spare disky jsou disky, které vypadly vlivem softwarové chyby. Obsahují data původního pole a nejsou poškozeny - lze z nich číst a lze na ně zapisovat.
Za jakoukoliv radu bych byl velmi vděčný.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.7.2011 10:43 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: RAID5 - pole přepsáno pomocí mdadm --create
Odpovědět | | Sbalit | Link | Blokovat | Admin
tohle vypada stale jeste dobre. Podle vypisu tedy nedoslo k synchronizaci disku v raid 5 a jejich prepsani, to je vzdy dobra zprava. Pole ted musis zastavit a vytvorit nove. Nove pole doporucuji vytvorit tak, ze ho vytvoris bez jednoho z tech disku, tedy vytvoris rovnou degradovane pole a zabranis synchronizaci, tedy prepsani dat.

Doporucuju to vytvorit z 3 disku, sda a sdb a jakykoli disk co bude oznaceny jako faulty a melo by se ti podarit takto vytvorene pole primountovat a data zachranit. Je potreba trefit to poradi disku stejne jako v tom puvodnim poli.

Nejlepsi je data z tech disku nejprve odzalohovat pomoci dd a az pak zkouset delat pokusy, jedina chyba a pustena synchronizace posle ty data uz do nenavratna.
5.7.2011 21:01 Rada | skóre: 14
Rozbalit Rozbalit vše Re: RAID5 - pole přepsáno pomocí mdadm --create
Děkuji za odpověď. Postupoval jsem podle tvého návodu. Pole nyní vypadá takto:
/dev/md0:                                                                 
  Version : 1.2                                                     
  Creation Time : Tue Jul  5 19:37:00 2011                               
  Raid Level : raid5                                                   
  Array Size : 1953522816 (1863.02 GiB 2000.41 GB)                     
  Used Dev Size : 976761408 (931.51 GiB 1000.20 GB)                       
  Raid Devices : 3                                                       
  Total Devices : 2                                                        
  Persistence : Superblock is persistent

    Update Time : Tue Jul  5 19:37:12 2011                               
    State : clean, degraded                                          
    Active Devices : 2                                                        
    Working Devices : 2                                                       
    Failed Devices : 0                                                         
    Spare Devices : 0                                                         
                                                                                              Layout : left-symmetric
    Chunk Size : 64K                                                       
                                                       
    Name : Router:0  (local to host Router)                        
    UUID : 6c782117:0497906f:3667cc47:fd716398                      
    Events : 2                                                       
                                                                                          
    Number   Major   Minor   RaidDevice State                              
       0       8        0        0      active sync   /dev/sda            
       1       8       16        1      active sync   /dev/sdb             
       2       0        0        2      removed            
Bohužel po zprovoznění pole vgscan nenachází žádnou volume grupu, která na původní poli byla. Teď je otázkou: je rozumné obnovit konfiguraci LVM na tomto poli ze zálohy konfigurace? Nebo se raději vyhnout jakýmkoliv zápisům na pole? Jinak zálohu pole mám v plánu, ale čekám na disky, kam bych mohl pole přesypat.
6.7.2011 13:56 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: RAID5 - pole přepsáno pomocí mdadm --create
no pole vypada na prvni pohled dobre, ale pokud to nenajde mountovatelnou partisnu nebo LVM volume na /dev/md0, tak to neni dobre.

Pricinou muze byt odlisne poradi disku v tom novem poli proti staremu, jina velikost chunk size a podobne. Pokud mas stare boot logy z toho pole kdyz jeste bylo funkcni, tak se podivej zda se ten vypis nelisi od toho kdyz se startuje to pole ted. Predpokladam ze tam bude nejaka odlisnost a tu je potreba odstranit.

Dalsi moznost je podivat se pomoci dd na prvnich 128 KB z /dev/md0. LVM sice neznam, ale urcite tam bude mit informace na nejakem konkretnim miste a tak se da take zjistit ze je poradi disku jine.

Stale plati na ty disky nic nezapisovat, to je temer jista ztrata dat.
6.7.2011 16:58 Rada | skóre: 14
Rozbalit Rozbalit vše Re: RAID5 - pole přepsáno pomocí mdadm --create
Mno, v logu jsem našel ohledně pole tohle:
md/raid:md0: device sda operational as raid disk 0
md/raid:md0: device sdc operational as raid disk 2
md/raid:md0: device sdb operational as raid disk 1
md/raid:md0: allocated 3174kB
md/raid:md0: raid level 5 active with 3 out of 3 devices, algorithm 2
RAID conf printout:
 --- level:5 rd:3 wd:3
 disk 0, o:1, dev:sda
 disk 1, o:1, dev:sdb
 disk 2, o:1, dev:sdc
Zdá se tedy, že disky by měly být v pořadi sda, sdb, sdc. Zkusil jsem postavit pole z různých dvojic disků. Přesto se ale nedaří na něm nic najít - tedy alespoň vgscan nic nenachází. Chunksize jsem si pohlídal. Je ale pravda, že jednou během sestavování pole jsem chunksize nezadal a ten se nastavil implicitně na 128kb místo 64kb. Nevím, jestli tohle nemohlo data odrovnat... Jinak mám uloženou přesnou konfiguraci toho LVM - pro jistotu ji sem postnu, kdyby se dala nějak využít:
contents = "Text Format Volume Group"
version = 1

description = "Created *after* executing 'vgscan'"

creation_host = "Router"        # Linux Router 2.6.37noCFQ_temp #2 Tue Jan 25 04:23:30 CET 2011 i686
creation_time = 1309892812      # Tue Jul  5 21:06:52 2011

SATA_RAID_pole {
        id = "IlclCy-fDd3-Xfu8-GgJZ-6xoo-TVCH-EDdXIS"
        seqno = 7
        status = ["RESIZEABLE", "READ", "WRITE"]
        flags = []
        extent_size = 8192              # 4 Megabytes
        max_lv = 0
        max_pv = 0

        physical_volumes {

                pv0 {
                        id = "hH0yZF-0wgr-mEcu-82Bg-9HH6-g3Md-0EmR6E"
                        device = "/dev/md0"     # Hint only

                        status = ["ALLOCATABLE"]
                        flags = []
                        dev_size = 3907049984   # 1,81936 Terabytes
                        pe_start = 384
                        pe_count = 476934       # 1,81936 Terabytes
                }
        }

        logical_volumes {

                pole_CRITICAL {
                        id = "gY3p79-yiko-MLre-lt2I-dcD6-1jBz-jL7YSC"
                        status = ["READ", "WRITE", "VISIBLE"]
                        flags = []
                        segment_count = 1

                        segment1 {
                                start_extent = 0
                                extent_count = 76800    # 300 Gigabytes

                                type = "striped"
                                stripe_count = 1        # linear

                                                       stripes = [
                                        "pv0", 0
                                ]
                        }
                }

                pole_COMMON {
                        id = "PaN10A-kMJS-0Phw-rOdV-NEce-fT2x-5a9Orz"
                        status = ["READ", "WRITE", "VISIBLE"]
                        flags = []
                        segment_count = 1

                        segment1 {
                                start_extent = 0
                                extent_count = 348934   # 1,33108 Terabytes

                                type = "striped"
                                stripe_count = 1        # linear

                                stripes = [
                                        "pv0", 128000
                                ]
                        }
                }

                backup_CRITICAL {
                        id = "chNcq1-7DCV-2xXa-i013-HwWL-nIP8-spzZpn"
                        status = ["READ", "WRITE"]
                        flags = []
                        segment_count = 1

                        segment1 {
                                start_extent = 0
                                extent_count = 51200    # 200 Gigabytes

                                type = "striped"
                                stripe_count = 1        # linear

                                stripes = [
                                        "pv0", 76800
                                ]
                        }
                }

                snapshot0 {
                        id = "CLabIT-f3uV-SsfK-RbAX-jezr-RWaB-K6YuQj"
                        status = ["READ", "WRITE", "VISIBLE"]
                        flags = []
                        segment_count = 1

                        
                        segment1 {
                                start_extent = 0
                                extent_count = 76800    # 300 Gigabytes

                                type = "snapshot"
                                chunk_size = 8
                                origin = "pole_CRITICAL"
                                cow_store = "backup_CRITICAL"
                        }
                }
        }
}
7.7.2011 09:53 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: RAID5 - pole přepsáno pomocí mdadm --create
o LVM skoro nic nevim, takze tady uz asi dale nepomuzu. Mozna jeste vyzkouset tyto 2 moznosti pri nastartovanem degradovanem poli:

pvscan

pvdisplay /dev/md0

8.7.2011 08:47 Rada | skóre: 14
Rozbalit Rozbalit vše Re: RAID5 - pole přepsáno pomocí mdadm --create
Zatím jsem ani pomocí pvscan nic nenašel. Nicméně už mám zálohovací disk, tak zkusím to pole zazálohovat a udělat ruční obnovu toho LVM, jestli to něco neudělá. Každopádně velmi děkuji za pomoc.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.