Oporavak diska iz softverskog RAID1 polja

Prije nego što se na Open Media Vault NAS počnu kopirati podaci, postavlja se pitanje: Što će se dogoditi u slučaju kvara diska s operacijskim sustavom, matične ploče ili ispada nekog od diskova iz sofverskog RAID-a? Kako u tom slučaju izvući podatke s NAS-a? RAID1 koji se koristi u ovom primjeru nije backup, nego hardverska redundancija sistema, ukoliko se pokvari jedan od dva diska u RAID1 polju bez većih zastoja se može napraviti zamjena diska i oporavak RAID1 polja. Ako vam je stalo do podataka, uz to ćete raditi još i rezervnu kopiju nekim od programa za tu namjenu.

Sve to dobro zvuči u teoriji, ali kad se havarija dogodi u praksi možda scenarij neće biti idealan, nećemo imati najsvježiji backup, matična ploča se neće moći brzo zamijeniti i slično. Kako opraviti RAID1 polje u slučaju zamjene jednog od diskova, kako čitati podatke sa diskova na nekom drugom računalu? Kad se dogode  ti "crni" scenariji nemamo vremena za učenje. Zbog toga sam pokušao simulirati takvu situaciju na "jeftilen" hardveru i testnim podatcima. Za početak sam iskapčanjem jednog od diskova prouzrokovao "raspad" RAID1 polja.

Kao što vidimo na gornjem prikazu stanje je "degraded", disk /dev/sda nije vidljiv. Sustav i dalje funkcionira disk /dev/sdb je u "clean" stanju.

Slijedeće što nas zanima kako do podataka na /dev/sda disku. Izvadimo disk /dev/sda spojimo ga sa USB 2.0 /S-ATA adapterom na računalo, u mom slučaju je to Debian Wheezy desktop PC.

Kada smo spojili USB kabel na desktop računalo, s root ovlastima pokrenemo:

# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge

Vidimo da je uredno prepoznat naš USB 2.0 / S-ATA kontroler.

Pokrenemo zatim naredbu :

# fdisk -l
....................
Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdc doesn't contain a valid partition table

Prepoznat je naš 2 TB disk sa oznakom /dev/sdc, ali sa nemamo mogućnost čitanja zapisanih podataka. Za to nam je potreban paket mdadm iz Debian repozitorija koji na Linuxu služi za upravljanje softverskim RAID uređajima. Instaliramo ga sa:

# apt-get install mdadm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
mdadm
0 upgraded, 1 newly installed, 0 to remove and 110 not upgraded.
Need to get 566 kB of archives.
After this operation, 1,098 kB of additional disk space will be used.
Get:1 http://ftp.carnet.hr/debian/ wheezy/main mdadm i386 3.2.5-5 [566 kB]
Fetched 566 kB in 1s (466 kB/s)
Preconfiguring packages ...
Selecting previously unselected package mdadm.
(Reading database ... 154592 files and directories currently installed.)
Unpacking mdadm (from .../mdadm_3.2.5-5_i386.deb) ...Processing triggers for man-db ...
Setting up mdadm (3.2.5-5) ...
Generating array device nodes... done.
Generating mdadm.conf... done.
update-initramfs: deferring update (trigger activated)
[ ok ] Assembling MD array mdBAZA...done (degraded [1/2]).
[ ok ] Generating udev events for MD arrays...done.
[ ok ] Starting MD monitoring service: mdadm --monitor.
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.2.0-4-686-pae

Već pri podizanju servisa nakon instalacije primjećujemo da je prepoznao mdBAZA (md-multiple device). Ponovo pokrećemo prepoznavanje diskova:

# fdisk -l
....................................
Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdc doesn't contain a valid partition table
Disk /dev/md127: 2000.4 GB, 2000397746176 bytes
2 heads, 4 sectors/track, 488378356 cylinders, total 3907026848 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Sada vidimo da je prepoznat md uređaj /dev/md127. Pokrećemo mdadm servis sa slijedećim opcijama:

# mdadm --assemble --scan --run
mdadm: /dev/md/BAZA has been started with 1 drive (out of 2).

Time dolazimo do punog naziva uređaja kojeg želimo montirati. Zatim jednostavno ručno montiramo uređaj sa datotečnim sistemom ext4 u kojem smo formatirali uređaj (vidi članak "Kako do vlastitog oblaka").

# mount -t ext4  /dev/md/BAZA /mnt

Potražimo naše testne podatke u direktoriju "Proba".

#cd /mnt
# ls
aquota.group  aquota.user  lost+found  Proba
/mnt# cd Proba
/mnt/Proba
# ls
deb_conf.dv
Slike-sken
video_finale.mpg

Proba čitanja podataka je uspjela Izađemo iz montiranog direktorija i zaustavimo servis.

/mnt/Proba# cd ..
/mnt# cd ..
/
# umount  /dev/md/BAZA
# mdadm --stop /dev/md/BAZA
mdadm: stopped /dev/md/BAZA

Ostaje povratak "degraded", "pokvarenog" diska u "Mirror". Situacija bez jednog diska izgleda ovako:

Version : 1.2
Creation Time : Tue Jan 14 19:35:31 2014
Raid Level : raid1
Array Size : 1953513424 (1863.02 GiB 2000.40 GB)
Used Dev Size : 1953513424 (1863.02 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Thu Jan 16 18:59:06 2014
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : OMV:BAZA  (local to host OMV)
UUID : 27519df7:3f313df6:2121ebaf:370bbe44
Events : 550
Number   Major   Minor   RaidDevice State
0       0        0        0      removed
1       8       16        1      active sync   /dev/sdb

Uređaj /dev/sda je maknut,"removed" /dev/sdb je "active". Nakon što prikopčamo "maknuti", "zamjenski" disk, napravimo još "Wipe" kojim ga brišemo tako da odgovara novom praznim disku i zatim iz OMV web GUI pokrenemo "Recover", odaberemo /dev/sda i krenemo sa oporavkom polja.

U tekst modu to izgleda ovako:

Version : 1.2
Creation Time : Tue Jan 14 19:35:31 2014
Raid Level : raid1
Array Size : 1953513424 (1863.02 GiB 2000.40 GB)
Used Dev Size : 1953513424 (1863.02 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Thu Jan 16 19:15:54 2014
State : clean, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1
Rebuild Status : 1% complete
Name : OMV:BAZA  (local to host OMV)
UUID : 27519df7:3f313df6:2121ebaf:370bbe44
Events : 1294
Number   Major   Minor   RaidDevice State
2       8        0        0      spare rebuilding   /dev/sda
1       8       16        1      active sync   /dev/sdb

Nakon što će oporavak potrajati neko vrijeme kad sve završi dobijemo opet "clean, clean" stanje kao na slici.

Naš NAS sustav je opet u punoj funkciji nakon oporavka.

 

Kuharice: 
Vote: 
5
Vaša ocjena: Nema Average: 5 (1 vote)