Maverick szoftveres RAID 1 szívás...

Fórumok

Sziasztok!

Probléma a következő: Adott 1 gép 2 db teljesen egyforma 1TB-os vinyóval, /dev/sda és /dev/sdb. A cél az, hogy ezek egy darab RAID 1-es tükrözött virtuális diszkbe álljanak össze, és arra telepítsem a rendszert.

(Átugorható Előtörténet: Nemrég csináltam meg Windows Server 2003-ban a cégnél, marha egyszerű volt, feltelepítem a Windowst az egyik diszkre, a másikat partícionálatlanul hagyom. Eztán a feltelepített Windowst elindítom, lemezkezelőben megmondom neki, hogy konvertálja mindkét diszket statikusról dinamikusra, majd a C:-ot tükrözöm a még partícionálatlan második diszkre. A szinkronizáció végén újraindítás, és máris megjelenik egy LILO-szerű boot menü, amiben ott van, hogy "Boot secondary plex". Készen vagyunk, viszonlátásra. Mindezt a "szar" Windóz tudta már 2003-ban...Aztán otthon lehalt a linuxos házi szerveremen a vinyóm, furán klattyog, valszeg leakadt a fej, mindenesetre kellett vennem újat. Mondom veszek mindjárt két vinyót, és otthon is beállítom a linuxon a software RAID 1-et. Nem gondoltam volna, hogy 8 évvel a Windows fent említett kiadása után az "almighty" linuxban ez ekkora szívás. Nade nem flamelek, hanem segítséget próbáloik kérni...)

Szóval, a következő lépéseket végeztem el:

1. Natty telepítőCD betesz, "Try Ubuntu" elindít.
2. Terminál: sudo su -; apt-get update; apt-get install mdadm;
3. System -> Administration -> Disc Utility megnyit.
4. File -> Create -> RAID Array...
5. RAID Level 1 kiválaszt, Disks-nél a két vinyó kipipál. "Array Name" mezőnek nem kéne, hogy jelentősége legyen, az van odaírva, hogy "New RAID Array", ezt kitörlöm, és beírom a helyére, hogy "0".
6. Nekiáll... Kiírja, hogy Resyncing, és kúszik a kolbász... :) Addig tévét néz, vagy kajál...
7. Sync megvolt. A két vinyóra visszamenve a Disk Utilityben látszik, hogy a partíció típusa "0xfd", Linux RAID Autodetect. Edit Partition-nál beállítom mindkettőn a "bootable" flaget.
8. Kiválasztom az elkészült RAID Array-t, amihez a /dev/md0 tartozik. Most ahhoz, hogy több partíciót létre tudjak hozni, megnyomom a "Format/Erase RAID Array"-t. Itt "Scheme:" címszóval többféle választási lehetőségem van, amiről beszélni érdemes, az a "Master Boot Record" meg a "GUID Partition Table". Utóbbit választom.
9. Ezután lehet particionálni. Következő partíciókat hozom létre: /dev/md0p1: 10 GB, ext4, ez lesz a / ; /dev/md0p2: 5 GB, ext4, ez lesz a /var ; /dev/md0p3, 4 GB, swap ; és a maradék /dev/md0p4, ext4-gyel, ami a /home lesz.
10. Elindítom az Ubuntu telepítőt. Kézi partícionálást választok, és kijelölöm a partíciókat az előző pont szerint, majd beállítom, hogy a bootloadert tegye a /dev/md0-ra.
11. Megy a telepítés. Amikor a bootloadert (grub2) installálná...na akkor kezdődik az igazi szívás! Ugyanis b*ik föltelepíteni a Grub-ot, és fatányéros hibával kiakad. Sebaj, mondom neki, akkor ne rakjon fel bootloadert, majd én, kézzel.
12. Terminál: mount /dev/md0p1 /mnt/; mount -t dev --bind /dev /mnt/dev; mount -t proc --bind /proc /mnt/proc/ ; mount -t sys --bind /sys/ /mnt/sys/;
13. Letöltöm az mdadm .deb csomagot, és felmásolom az /mnt-be, majd chroot /mnt; mount /var; -> benne vagyok a feltelepített Ubuntumban, csak Grub-om nincs.
14. Feltelepítem az mdadm-et a feltelepített Ubuntumra, amibe az imént chroot-oltam. dpkg -i mdadm_verziószám.i386.deb; Ez legenerálja az /etc/mdadm/mdadm.conf-ot, elindítja az "MD monitoring service" démont, update-initramfs rendben lefut, csak olyan baja van, hogy Generating array device nodes.../var/lib/dpkg/info/mdadm.postinst: 170: /dev/MAKEDEV: not found: failed. De mindenesetre a /dev/md0 és a /dev/md0p1; /dev/md0p2; /dev/md0p3; /dev/md0p4; megvannak.
15. Csekkolom: cat /proc/mdstat; , az eredmény tetszetős: Personalities : [raid1]; md0 : active raid1 sda1[1] sdb1[0]; nnnn blocks super 1.2 [2/2] [UU];. Látszólag minden szuper....
16. Hát akkor grub-install --modules=mdraid /dev/md0;. Ennek kéne működnie. Ehelyett az eredmény:

# grub-install --modules=mdraid /dev/md0
/usr/sbin/grub-probe: error: unknown filesystem.
/usr/sbin/grub-setup: error: can't open /dev/md/0: no such file or directory.

17. Ebből az a durva, hogy a /dev/md/0 az valszeg az az eszköz, amit 14. pontban nem csinált meg, és azért /dev/md/0, mert a "0" nevet adtam meg az 5-ös pontban. Ha hagytam volna "New RAID Array"-en, akkor most /dev/md/"New RAID Array"-jel próbálkozna...Ide az infót egyébként valszeg az /etc/mdadm/mdadm.conf-ból szedi. ott van egy olyan sor, hogy

# definitions of existing MD arrays
ARRAY /dev/md/0 level=raid1 metadata=1.2 num-devices=2 UUID=akármi name=:0

Na itt vagyok most elakadva...

Hozzászólások

Ahogy elnézem, igen régóta cs*sznek kijavítani ezt a bug-ot, ami fenn van a launchpad-en...a megoldással együtt, miszerint a MAKEDEV szkript az /sbin-ben van, és csak be kell linkelni a /dev-be

# ln -s /sbin/MAKEDEV /dev/MAKEDEV
# dpkg -i mdadm_verziószám.i386.deb

most lefut hiba nélkül. De mint kiderül, a /dev/md* node-okat hozza létre, és nem a /dev/md/* node-okat, ezért a GRUB még mindig ugyanazt csinálja, mint eddig... :(

Nem is tudom... A Nattyval még konkrétan nem próbáltam, de nem értem amiket leírtál.
Raides cuccot általában alternate telepítővel telepítettem, aztán meg ha kellett húztam rá gui-t is. Eddig működött. Ott normál opció a raid telepítés grubbal. Nem volt vele ennyi problémám. Persze így is kellene működnie, de gondolom kevesen járják be naponta ezt az utat.

Miért bűvészkedsz annyit ezzel a dologgal?

Linuxscripting

Pontosan. Csinálhattam volna úgy is, hogy /dev/sda és /dev/sdb diszkeken fdiskkel létrehozok egy-egy teljes lemezt elfoglaló /dev/sda1 és /dev/sdb1 primary partíciót, majd "t"-vel a típusát "fd"-re (Linux RAID Autodetect) állítom, meg még "a"-val bebillentem a bootable flag-et, majd "w", utána "mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1". Ezután "fdisk /dev/md0", ami ezúttal lemez, nem partíció, a szám ne tévesszen meg senkit. És ott az fdisk-kel létrehozni a /dev/md0p[1-4] partíciókat.

De csinálhatnám azt is, hogy van a /dev/sda és a /dev/sdb diszkjeim, létrehozok rajtuk pontosan ugyanakkora /dev/sd[ab][1-4] "fd"-típusú partíciókat, majd csinálok belőle "mdadm --create /dev/md[i-1] --level=1 --raid-devices=2 /dev/sda[i] /dev/sdb[i]; (i=1..4)"-gyel 4 darab RAID 1 tömböt, amiket megformázok ext4-re. Ekkor nem lesznek /dev/md0p[1-4] partíciók, hanem lesznek /dev/md[0-3] diszkek.

Én azt hittem, hogy az eljárás, mármint az eredmény szempontjából, kommutatív. Azaz hogy egyik is műxik, meg a másik is, csak formálisan különböznek. Nem így van?

Miért jobb az egyik a másiknál? Mi a különbség? Miért nem mindegy?

Nem teljesen értem. A debian/ubuntu telepítő elég régóta könnyen a kézi particionáláskor beállíthatóan adja az mdadm-ot és az lvm-et is. Ehhez képest mindenféle mást próbáltál. :) Telepítéskor csak a rendszerhez mindenképp szükséges md-ket érdemes létrehozni és ha települt, akkor a többit. Lucid óta viszont az mdadm.conf -ba bele kell vésni az aktuális konfigot, mert rebootnál sipákolni fog a hibás tömbökre.