Programowy RAID10 na Debianie6

Pomoc dotycząca instalacji systemu
lucani
Posty: 13
Rejestracja: 11 listopada 2009, 15:18

Programowy RAID10 na Debianie6

Post autor: lucani »

Witam.

Chciałbym zainstalować Debiana 6 na programowym RAID-zie. Wcześniej korzystałem z tzw. fakeraid na Debianie 5, z którym są podobno problemy w najnowszej wersji z powodu GRUB-a2. Zacznę od tego, że w internecie widziałem ogromną ilość stron zachwalających programowy RAID na Linuksie, a tymczasem ciężko znaleźć pełne informacje w jednym poradniku.

Zacznę chyba od pytania podstawowego: czy RAID, który można konfigurować z poziomu instalacji Debiana to mdadm?
Czy tak skonfigurowany RAID działa od razu, czy trzeba go aktywować jeszcze w systemie?
Czy są jakieś przeszkody, żeby najpierw zainstalować system, a dopiero potem spiąć go w RAID?

Paradoksalnie do programu mdadm jest bardzo dobra dokumentacja, ale instalator systemu, który ma graficzny interfejs i powinien być pomocny nie ułatwia sprawy, bo nie jest dobrze opisany. Tymczasem trzeba wpisywać długie linie poleceń w konsoli.

Posiadam 4 dyski twarde 1TB i chciałbym spiąć je w RAID 10. Podczas instalacji pojawiły się jednak problemy. Na każdym z dysków utworzyłem dwie partycje: 8GB na partycję wymiany i reszta na cały system. Następnie dwukrotnie (osobno dla partycji wymiany i dla całego systemu) wybrałem opcję ustawiania RAID10 na odpowiednich partycjach. Wpisałem, że każdy "md" ma składać się z dwóch aktywnych dysków, połączonych w celu zwiększenia pojemności i z dwóch dysków zapasowych (lustrzanych). Niestety po tych operacjach oba RAID-y przedstawiły się z "pojedynczą" pojemnością (tzn. 1TB zamiast 2TB i 8GB zamiast 16GB) - czy powinienem wpisać inne parametry (ilości dysków) podczas konfiguracji?

Na koniec zostawiłem jeszcze jedną kwestię, o które doczytałem dopiero później. Podobno pomimo tego, że RAID10 jest wspierany z poziomu instalatora Debiana, GRUB nawet w wersji 2 ma problemy z poprawnym ładowaniem systemu - czy to prawda? Na wielu stronach zaleca się stosowanie RAID1 dla osobnej, bardzo małej partycji /boot, zatem, czy RAID1 można ustawić też na 4 partycjach?

Bardzo proszę o jakiekolwiek odpowiedzi, nawet na pojedyncze moje pytania.

Pomocne strony, z których korzystałem:
http://kromey.us/2009/08/raid-10-with-mdadm-65.html
http://techblog.tgharold.com/2006/08/cr ... dadm.shtml
http://www.unrest.ca/configuring-mdadm- ... ubuntu-910
http://www.linuxplanet.com/linuxplanet/ ... ls/6518/1/
https://wiki.archlinux.org/index.php/In ... AID_or_LVM
https://wiki.archlinux.org/index.php/Co ... em_to_RAID
http://www.howtoforge.com/install-ubunt ... re-raid-10
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

Co innego LVM a co innego fake raid udostępniany przez bios płyty głównej.
Wielokrotnie instalowałem system na fake raid gdzie pospinane były dyski nie zaś partycje (LVM).
Jest problem błędnej konfiguracji z poziomu instalatora który to mimo uruchomienia z opcja dmraid=true nie potrafi zainstalować gruba w MBR.
Można to naprawić po instalacji systemu dzięki live cd i chroot.
wesmar
Posty: 7
Rejestracja: 24 kwietnia 2012, 01:10

Post autor: wesmar »

Czy to wersja mdadm - v3.2.3 - 23rd December 2011 lub nowsza?
Jeżeli tak to zmienione zostało podejście do blkid we wszystkich rodzajach macierzy.

Kod: Zaznacz cały

cat /proc/mdstat
da nam dla raid0:

Kod: Zaznacz cały

md126 : active raid0 sda[1] sdb[0]
      1953519616 blocks super external:/md127/0 128k chunks

md127 : inactive sdb[1](S) sda[0](S)
      5288 blocks super external:imsm
O ile partycjonowałeś dyski pojedynczo z wymuszeniem UUID (opcja -U) przydziel także na urządzenie md12x- już blokowe w nowych wersjach mdadm niezależną sygnaturkę UUID.
Blkid powinno pokazywać coś takiego:

Kod: Zaznacz cały

root@server:~# blkid
/dev/sda: TYPE="isw_raid_member"
/dev/sdb: TYPE="isw_raid_member"
/dev/md126p1: LABEL="/" UUID="aec96098-fab1-442a-a763-6efac3c521b0" TYPE="ext4"
/dev/md126p2: LABEL="data" UUID="959c1b33-6c05-43c2-8ea0-a121e638be3e" TYPE="ext4"
/dev/md126p3: UUID="8af7bc20-ae6b-46fd-b5fe-1a5b978a44f1" TYPE="swap"
Dyski, stają się elementami całości i można dzielić na partycje cały raid, ale jeżeli niezależnie wcześniej partycję miały pojedyncze dyski, może w niektórych układach, na pewno raid0 nie uruchomić się ot choćby, jeżeli wykonamy:

Kod: Zaznacz cały

cfdisk /dev/md126
Otrzymamy prawidłowy podział partycji w macierzy:

Kod: Zaznacz cały

                           cfdisk (util-linux 2.20.1)

                            Urządzenie: /dev/md126
                   Rozmiar: 2000404086784 bajtów, 2000.4 GB
         Głowic: 255   Sektorów na ścieżce: 63   Cylindrów: 243201

    Nazwa       Flagi      Typ partycjSystem plików    [Etykieta]     Rozmiar (M
B------------------------------------------------------------------------------
                            Gł/Log    Wolne miejsce                        1,05*
    md126p1     Rozruch     Główna    ext4            [/]            80015,79*
    md126p2                 Główna    ext4             [data]        1919338,68*
    md126p3                 Główna    swap                              1048,58*

mdadm --detail /dev/md126 powinno nam pokazać coś takiego:

/dev/md126:
      Container : /dev/md/imsm0, member 0
     Raid Level : raid0
     Array Size : 1953519616 (1863.02 GiB 2000.40 GB)
   Raid Devices : 2
  Total Devices : 2

          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

     Chunk Size : 128K


           UUID : d040870b:bcaa8577:118fcc03:45d036ce
    Number   Major   Minor   RaidDevice State
       1       8        0        0      active sync   /dev/sda
       0       8       16        1      active sync   /dev/sdb

Teraz niedogodności z ładowaniem systemu.
Mój plik /etc/fstab wygląda tak

Kod: Zaznacz cały

UUID="aec96098-fab1-442a-a763-6efac3c521b0" /               ext4    errors=remount-ro 0       1
UUID="959c1b33-6c05-43c2-8ea0-a121e638be3e" /media/data     ext4    defaults,noatime  0       2
UUID="8af7bc20-ae6b-46fd-b5fe-1a5b978a44f1" none            swap    sw              0       0
//10.21.16.120/Volume_1 /media/dns cifs rw,username=guest  0        0
Włączał mi się:

Kod: Zaznacz cały

Built - in shell
czyli BusyBox
Poradziłem sobie z konfliktem miedzy blkid, opóźnionym mapowaniem gruba i mdadm tak.

Dodałem plik do /etc/initramfs-tools/scripts/init-top.

Plik o nazwie powiedzmy wesmar-raid i zawartości

Kod: Zaznacz cały

#!/bin/sh
sleep 2
mdadm --assemble --scan
sleep 2
Operacje odłączania raid, o ile sobie przypomnę mniej więcej robiłem w takiej kolejności

Kod: Zaznacz cały

service mdadm stop
mdadm --remove /dev/md126
mdadm --stop /dev/md126
i potem zawsze sprawdzanie:
mdadm --detail /dev/md126
Przy zakładaniu musisz zobaczyć różnicę w poleceniach, ta pierwsza jest zrozumiała, ale opcja ,,-A'' nie jest zdaje się opisana, a działała u mnie i nie była samą "assemble"

Kod: Zaznacz cały

mdadm --examine --scan >> /etc/mdadm/mdadm.conf
mdadm -A --scan
mdadm --assemble --scan
Gruba możesz już zrobić za pomocą dystrybucji livecd sysrescd.
Oto moje dane:

Kod: Zaznacz cały

root@server:/boot/grub# cat device.map
(hd0)   /dev/disk/by-id/ata-ST1000DM003-9YN162_W1D01ACA
(hd1)   /dev/disk/by-id/ata-ST1000DM003-9YN162_W1D01ARY
A to część ważniejsza grub.cfg od gruba-pc

Kod: Zaznacz cały

linux   /boot/vmlinuz-3.2.16-999-optimus root=/dev/md126p1 ro   quiet splash $vt_handoff
initrd  /boot/initrd.img-3.2.16-999-optimus
Uwaga - nie mam wpisów w grub.cfg jak dawniej:

Kod: Zaznacz cały

insmod part_msdos
insmod ext2
insmod mdraid
itd.
Są zbędne.

Porównując wyniki z windowsowym raidem i sterownikiem 10.8.0.1003 najnowszym gdy to piszę, Linux jest wydajniejszy o 2,4 %, zaś we wcześniejszych mdadm nieco słabiej, o jakieś 7%.

Jeżeli będą kłopoty nietypowe z raidem, mogę pomóc zdalnie przez tunelowanie się na mój serwer w przypadku braku możliwości uzyskania otwartego na zewnątrz portu. Wystarczy w zasadzie jakaś dystrybucja livecd uruchomiona z pendrive (np. rescuecd).
ODPOWIEDZ