Mdadm
Programowy RAID oparty na mdadm
(powstało w trakcie treningu, przed LIVE MIGRACJĄ z RAID 1 -> RAID 5 )
Potrzebowałem potrenowac, w związku z tym opisuję ktok po kroku budowę mojej "piaskownicy".
Treningowa maszyna zbudowana została w oparciu o bardzo małe dyski, ze względu na czas potrzbny na odbudowę macierzy. (dla testu, nie będę czekać 12 godzin).
Pierwsze)
Instalujemy mdadm
apt-get install mdadm
Drugie)
Wyświetlamy nasze dyski twarde.
root@svn:~# fdisk -l Disk /dev/sda: 186.8 GB, 186863289344 bytes 255 heads, 63 sectors/track, 22718 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00067d6e Device Boot Start End Blocks Id System /dev/sda1 * 1 22673 182120841 83 Linux /dev/sda2 22674 22718 361462+ 5 Extended /dev/sda5 22674 22718 361431 82 Linux swap / Solaris Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xacffe83a Device Boot Start End Blocks Id System /dev/sdb1 1 130 1044193+ 83 Linux Disk /dev/sdc: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00000000 Disk /dev/sdc doesn't contain a valid partition table root@svn:~#
RAID 1
Na dysku /dev/sdb posiadamy swoje cenne dane. Chcemy aby dysk był mirrorowany na /dev/sdc dzięki czemu w razie fizyczneja warii jednego z nich, będziemy w stanie uzyskać dostęp do danych, bez jakichkolwiek problemów. Jednym słowem: Czy padnie /dev/sdb Czy padnie /dev/sdc Będziemy mieć 100% dostęp do danych, tak jak by nic się nie stało.
Tworzymy macierz RAID 1, składającą się z 2 urządzeń w którym jednego urządzenia brakuje - nasz pusty dysk!.
root@svn:~# mdadm --create /dev/md0 --level 1 --raid-devices=2 missing /dev/sdb mdadm: array /dev/md0 started.
Test:
root@svn:~# mdadm --detail /dev/md0 /dev/md0: Version : 00.90 Creation Time : Fri Jun 26 14:18:24 2009 Raid Level : raid1 Array Size : 1048512 (1024.11 MiB 1073.68 MB) Used Dev Size : 1048512 (1024.11 MiB 1073.68 MB) Raid Devices : 2 Total Devices : 1 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Fri Jun 26 14:18:24 2009 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 0 Spare Devices : 0 UUID : 78376526:72b7e62f:ada6ad5b:0d479e64 (local to host svn) Events : 0.1 Number Major Minor RaidDevice State 0 0 0 0 removed 1 8 16 1 active sync /dev/sdb root@svn:~#
Status: poprawny, zdegradowana Na dole widać którego dysku brakuję.
Tworzymy system plików
root@svn:~# mkfs -t ext3 /dev/md0 mke2fs 1.41.3 (12-Oct-2008) Etykieta systemu plików= Typ OS: Linux Rozmiar bloku=4096 (log=2) Rozmiar fragmentu=4096 (log=2) 65536 i-węzłów, 262128 bloków 13106 bloków (5.00%) zarezerwowanych dla superużytkownika Pierwszy blok danych=0 Maksymalna liczba bloków systemu plików=268435456 8 grup bloków 32768 bloków w grupie, 32768 fragmentów w grupie 8192 i-węzłów w grupie Kopie zapasowe superbloku zapisane w blokach: 32768, 98304, 163840, 229376 Zapis tablicy i-węzłów: zakończono Tworzenie kroniki (4096 bloków): wykonano Zapis superbloków i podsumowania systemu plików: wykonano Ten system plików będzie automatycznie sprawdzany co każde 39 montowań lub co 180 dni, zależnie co nastąpi pierwsze. Można to zmienić poprzez tune2fs -c lub -i. root@svn:~#
Już teraz możemy ją dla testu zamontować !
root@svn:~# mount -t ext3 /dev/md0 /root/test root@svn:~# cd /root/test root@svn:~/test# ls lost+found root@svn:~/test#
Dodajemy drugi dysk.
root@svn:~/test# mdadm --manage /dev/md0 --add /dev/sdc mdadm: added /dev/sdc root@svn:~/test#
Ponowny test
mdadm --detail /dev/md0 /dev/md0: Version : 00.90 Creation Time : Fri Jun 26 14:18:24 2009 Raid Level : raid1 Array Size : 1048512 (1024.11 MiB 1073.68 MB) Used Dev Size : 1048512 (1024.11 MiB 1073.68 MB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Fri Jun 26 14:27:20 2009 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 UUID : 78376526:72b7e62f:ada6ad5b:0d479e64 (local to host svn) Events : 0.18 Number Major Minor RaidDevice State 0 8 32 0 active sync /dev/sdc 1 8 16 1 active sync /dev/sdb root@svn:~/test#
Dwa dyski działają poprawnie.