Szoft. RAID-1 létrehozása Wheezy Debian alatt, "futó" rendszeren

Fórumok

Sziasztok!

Gondolom elég sokat változott VaZso RAID-1 létrehozása Debian alatt, "futó" rendszeren (fordítás) cikke.

Valakinek van emészthető leírása címben említett rendszerről és beállításairól? Pont szükségem lenne rá :)

Hozzászólások

Pontosan mit is szeretnél?
Miért fontos,hogy futó rendszernél akarod.

Én a következőt tenném, ha most meg kéne csinálnom.

A swap-ot is lehet RAID-be tenni, nálam úgy van és működik szépen.

Fontos az ellenőrzés az egyes lépések után mielőtt megcsináltatod a géppel a változást,mert ha utána jössz rá,hogy valami nem kerek,akkor nem biztos,hogy van visszaút.

- Diskek ellenőrzése e2fsk-val és esetleges hibák javítása.
- Mentés minden partícióról a /home alá, /home kivételével. tar paranccsal.
- Létrehoznám a másik lemezen a RAID partíciókat fdisk-el. Ügyelve rá,hogy jó vinyón tegyem mindezt.
- Particiók formázása az új disk-en.
- RAID tömb összerakása "fél lábon" mdadm-el.
- mount-olni az új particókat a futó rendszerbe pl. /mnt/system könyvtár alá.
- root fáljrendszert kicsomagolni oda.
- utána alá mountolnám a /usr-t és kicsomagolnám oda a megfelelő tar.gz-t
- A fenti lépést végig játszani az összes partícióval.
- Utána mivel nem tudom,hogy az EFI-t,hogy lehet telepíteni googliznék egy sort. Én ki nem állhatom az EFI-t nekem tök jó az MBR-es megoldás is, ezért nekem őj ez a része.
Szólva EFI újratelepítése mindkét lemezre.
- /home másolása az új disk-re, ha lehet,akkor itt is tar.gz formátumban, hogy a jogosulságok ne változzanak esetleg. A többi partíció mentését is átmásolnám,hogy meglegyenek.
- utána fstab aktualizállás a RAID tömbökre.
- ellenőrzés,hogy minden okés-e.
- restart és boot a RAID tömbökről.
- /home szinkronizálása, hátha változott valami közben. Ilyenkor célszerű szólni a usereknek,hogy ha lehet egy bizonyos időablakon belül ne töltsenek fel semmit vagy ne töröljenek, ha ez lehetséges. Ezzel is elkerülve egy esetleges adatvesztést.
- aztán létrehoznám az eredeti disken sikeres bootolás után a raid particiókat
- összeraknám a tömböt és megvárnám még lemegy a szinkron.
- EFI újratelepítése az eredeti disken, ha szükséges.
- utána egy restart, hogy megnézzem tényleg minden rendben van-e.

Valami ilyesmi lenne, a teljesség igénye nélkül :)

Hát igen. :) Ez így a fejemben nagyjából megvan. Csak nincs semmi alapkő sem. Hogy induljak el, semmi, hiszen a leírás amit fent linkeltem lóf-sz ide. És előre érzem, hogy hiába követem nem lesz jó. És nem találtam leírást sem a neten wheezy-hez. Ilyen szájbarágós howtot.

Akkor azt javaslom, mentsd le a teljes szervert és először otthon/céges gépen virtualizálva csináld meg.

Az sda-t csak a fstab-ban kell átírnod sztem.
A/dev/disk/by-uuid, helyett /dev/mdX-et fogsz használni, szóval azt el is felejtheted utána.
Az md0 mi legyen az teljesen a Te döntésed :) Én sorban szoktam menni fentről lefelé, abból baj nem lehet.

Pl.:

/dev/md0 ---> /
/dev/md1 ---> /boot/efi
/dev/md2 ---> /home
/dev/md3 ---> /tmp
/dev/md4 ---> /usr
/dev/md5 ---> /var

Rég próbáltam: még mindig lassú az lvm saját RAID-je?
Vagy bootolni nem lehet róla?
Vagy mi a gond vele? (HPUX-on csak az volt nekünk, akkoriban a linuxos lvm2 még nem is volt képes ilyesmire, de azóta belerakták, egyszer ki is próbáltam, csak embertelen lassúnak éreztem)

Nem kötekedésből, de ha ennyire nem vagy tisztában a dolgokkal akkor lehet nem kéne belefognod ebbe. Jobban járnál ha az új hdd-re újratelepítenéd a rendszert "féllábú" raid1-ként majd a régiről átmásolnád az adatokat. A meglévő raid1-hez már egyszerűbben hozzáfűzhető lenne a régi hdd.

Ja igen. Két db. 250 Gb -s winyóról beszélünk, az egész amúgy egy itthoni szerver, nem kell komoly dolgokra gondolni. A winyó ami most benne van az az élő rendszer, a másikra szoktam dd-vel kopizni az egészet, tehát pár napos a másolat. Hogy lehetne túl nagy varia nélkül belőni így akkor, ahogy javaslod?

Hát igen. De azon gondolkodom, hogy van 2 egyforma lezem, amin pár napos eltéréssel teljesen ugyan az van, főleg ha most csinálok egy dd-t, teljesen szinkron az egész. Akkor csak hozzá kell adnom az md-hez a tömböket, meg fstab-ban beállítani? A grub-ban hd0 meg hd1-et nem kell, ha egyik lemez kihal?

Pár pontban röviden:
- a mostani rendszerről lemented a konfigokat (te tudod miket használsz most), általában a /etc lementése elég, abból utána ki lehet bányászni ami kell.
Esetlegesen lementhető a telepített csomagok listája is, ez később visszaállítható (dpkg --get-selections ill. dpkg --set-selections)
- régi hdd ki, beszereled az újat, feltelepíted rá a rendszert olyan partíció kiosztással ami tetszik, a telepítővel beállítod az sw raid-et. Értelemszerűen mivel 1 disk van csak "féllábú" lesz a tömböd.
- új rendszert elindítod, a régiről a lementett /etc alapján visszanyomod a konfigokat. Ha minden működik akkor beszereled/visszadugod a régi disket. Ha egyforma méretűek akkor simán átmásolod a partíciós táblát a régire (sfdisk -d /dev/sda | sfdisk /dev/sdb). Ha nem azonos típusú a két vinyó akkor olyat lehet, hogy hagysz a lemez "végén" pár 10 MB szabad helyet amikor létrehozod a partíciókat. Így biztosan össze lehet majd egy másik lemezzel is fűzni a tömböt a későbbiekben. Utána beállítod/ellenőrzöd fdisk-el vagy cfdisk-el, hogy a partíciók típusa "linux raid autodetect" (fd) legyen. Aztán reboot, biztos ami biztos (ha fdisk-el csináltad akkor nem szükséges, a cfdisk nem tudja újraolvasni a partíciós táblát általában).
- ha minden rendben újraindult akkor értelemszerűen pl. mdadm --add /dev/md0 /dev/sdb1

Nagy vonalakban ennyi. Remélhetőleg nem maradt ki semmi fontos. Majd kiegészítik úgyis :)

A winyók azonos típusúak, méretűek teljes mértékben. Azért lett így, hogy majd ha lesz raid... Most úgy volt backup-om, hogy havonta dd-vel át tükröztem az élő lemezt a tartalékra. Azért lezúzni, újratelepíteni sem akarok, bár komplett mentésem van /etc -ről /home-ról /root -ról és a telepített csomagokról minden éjfélkor.
(Azért bennem a szarás, hogy mivan ha beszarik a lemez ugye)

Aztán most lesz a rendszerhez ilyen dock. Így már mehet a raid is szerintem.

Az a trükk is mehetne felőlem, hogy mindkét rendszeren megcsinálom a beállításokat, mdadm create, fstab meg mtab meg ami kell, és a végén meg sync... ez járható út?

Nem akarok belepofázni az életedbe, de talán jobb egy fokkal a jelenlegi állapot, mintha tükörbe tennéd - feltéve, hogy egyéb mentésed nincs róla.
Ugyanis a RAID/tükör a hardverhibák egy része ellen megvéd, de a saját hülyeséged/figyelmetlenséged ellen nem: ha véletlenül letörölsz valamit és van róla önálló mentésed, akkor van honnan visszahozni. Ha csak RAID-et használsz, akkor ugye...
(nem olvastam végig a topic-ot, ha erről már volt szó, akkor bocs)

Nem akkora őrdöngősség megcsinálni, de tényleg érdemes megpróbálnod előbb egy másik rendszeren, és persze előfordulhat így is, hogy elvét az ember valamit, és helyre kell hozni.

Én a helyedben elfelejteném az sda és md eszközöket, és áttérnék UUID-re inkább.
pl. blkid kiírja az adott eszközhöz tartozó azonosítókat.

Ezt adod meg /etc/fstab-ban és pl. a /etc/initramfs-tools/resume fájlban is (ide a swap-et kell megadni, hibernálás használata esetén van rá szükség).

A grub-ot ne feledd mindkét lemez MBR-jébe feltenni, grub-install elvégzi (pl. sda-ra és sdb-re is lefuttatod).
update-grub2 futtatásakor létrehozza a grub konfigurációját. Ha szükséges, a /etc/default/grub fájlban meg tudsz adni további paramétereket - timeout / kernelparaméterek / felbontás és társai.

Az mdadm-hoz nyugodtan használhatod a leírtakat, de javaslom inkább a live rendszer használatát. Onnan meg tudod oldani a féllábú RAID felépítését (ld. leírás), át tudod másolni rá az adatokat (szintén), utána pedig chroot-tal be tudsz lépni az átmásolt rendszerre, és el tudod végezni a beállításokat.

Chroot előtt szükség lehet egy mount --bind-re is a /dev, /proc, /sys könyvtárakra - tehát pl. "mount --bind /dev /mnt/sdb2/dev", és értelemszerűen ugyanez a többire. Ekkor, amikor chroot-tal belépsz az átmásolt rendszerre, el tudod érni a hardvereket, akár a grub-install is működik alóla.
Ez egyébként máskor is hasznos a rendszer javításához.

Ne feled az mdamd konfigurációs fájlját is beállítani az átmásolt rendszeren (ld. szintén a leírásban).

Remélem, nem voltam túl zavaros. :)

root@srv-gw:~# blkid
/dev/sda5: UUID="d37589c2-d45c-481f-8f51-f9b56fc8b9b0" TYPE="swap"
/dev/sda1: UUID="B4A5-DD21" TYPE="vfat"
/dev/sda2: UUID="b6c6e547-d7b8-4aa6-80fe-80f2e3b1122c" TYPE="ext4"
/dev/sda3: UUID="2b402534-4d9f-430c-836b-043073f0e688" TYPE="ext4"
/dev/sda4: UUID="0b692d4e-f32e-4d07-88f0-d3f8625d7cc9" TYPE="ext4"
/dev/sda6: UUID="424368c4-5d69-4f72-84d5-7b99b8320514" TYPE="ext4"
/dev/sda7: UUID="57325222-70dc-4631-a769-2a59c57c978d" TYPE="ext4"

root@srv-gw:~# cat /etc/initramfs-tools/resume
cat: /etc/initramfs-tools/resume: Nincs ilyen fájl vagy könyvtár

root@srv-gw:~# grub-install -v
grub-install (GNU GRUB 0.97)

Hátha fontos adatok.
Egyébként nem zavaros a leírásod, én értem, csak azért lássuk be, a régi rendszerhez írt leírás azért jó, mert nem magamtól kell kitalálni, hogy mit kell csinálni, hanem lépésenként ha végigmegyek, akkor jó.

Jelen esetben nincs semmi leírás amit követhetnék, csak néhol ilyen szösszenetek, hogy erre meg arra figyeljek. Na így felépíteni aztán tényleg kurva nehéz, mivel nem tudom kiszippantani még googléből sem, hogy melyik fájlok szükségesek nekem, stb...

Ha valaki leírná
Description: Debian GNU/Linux 7.6 (wheezy)
ehhez a rendszerhez, milyen fájlokban (KELL!) megadnom az mdX -es részeket, előrébb lennék sokkal, szerintem.

A régi rendszer óta gyakorlatilag a Grub változott, a többit végig tudod követni - ez pedig elég részlesen van leírva szerintem.

Annyival egészíteném ki, hogy ne a futó rendszeren csináld, hanem live rendszert indíts (pl. RIP Linux).
Miután átmásoltad a rendszert egy új helyre, csatold fel a root fájlrendszert egy könyvtárba (pl. /mnt/sdb2), és csatold fel a /dev, /proc és /sys könyvtárakat alá.

Tehát:
mount --bind /dev /mnt/sdb2/dev
mount --bind /sys /mnt/sdb2/sys
mount --bind /proc /mnt/sdb2/proc

Ezután lépj be rá chroot-tal:
chroot /mnt/sdb2

A grub beállítását megcsinálhatod innen pl (grub-install /dev/sda, ill. /dev/sdb, valamint update-grub2 lefuttatása), vagy telepíthetsz is a rendszerre, ha hiányzik valami.

Az mdX-eket inkább ne add meg sehol! Add meg helyettük a hozzájuk tartozó UUID-t, az egyértelműbben azonosítja őket.
Az mdadm.conf-ot létre kell hozni (ld. leírás), és az fstab-ban a megfelelő UUID-ket megadni (megfelelő = az adott eszközhöz tartozó).

/usr/share/doc/mdadm/README.recipes.gz

10. convert existing filesystem to RAID 1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# The idea is to create a degraded RAID 1 on the second partition, move
# data, then hot add the first. This seems safer to me than simply to
# force-add a superblock to the existing filesystem.
#
# Assume /dev/sda1 holds the data (and let's assume it's mounted on
# /home) and /dev/sdb1 is empty and of the same size...
#
mdadm --create /dev/md0 -l1 -n2 /dev/sdb1 missing
mkfs -t /dev/md0
mount /dev/md0 /mnt
tar -cf- -C /home . | tar -xf- -C /mnt -p
# consider verifying the data
umount /home
umount /mnt
mount /dev/md0 /home # also change /etc/fstab
mdadm --add /dev/md0 /dev/sda1

Warren Togami has a document explaining how to convert a filesystem on
a remote system via SSH: http://togami.com/~warren/guides/remoteraidcrazies/

10b. convert existing filesystem to RAID 1 in-place
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In-place conversion of /dev/sda1 to /dev/md0 is effectively
mdadm --create /dev/md0 -l1 -n2 /dev/sda1 missing
however, do NOT do this, as you risk filesystem corruption.

If you need to do this, first unmount and shrink the filesystem by
a megabyte (if supported). Then run the above command, then (optionally)
again grow the filesystem as much as possible.

Do make sure you have backups. If you do not yet, consider method (10)
instead (and make backups anyway!).

11. convert existing filesystem to RAID 5/6
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# See (10) for the basics.
mdadm --create /dev/md0 -l5 -n3 /dev/sdb1 /dev/sdc1 missing
#mdadm --create /dev/md0 -l6 -n4 /dev/sdb1 /dev/sdc1 /dev/sdd1 missing
mkfs -t /dev/md0
mount /dev/md0 /mnt
tar -cf- -C /home . | tar -xf- -C /mnt -p
# consider verifying the data
umount /home
umount /mnt
mount /dev/md0 /home # also change /etc/fstab
mdadm --add /dev/md0 /dev/sda1

------------------------------------------------------------------------------
www.woodmann.com/searchlores/welcome.htm

Miért fontos, hogy online csináld az egészet? Egy friss telepítéssel sokkal optimálisabb partíció kiosztást is meg tudnál csinálni, és kevesebb a hibalehetőség is.

Ilyen elrendezés például: egy /boot partíció (max 200 MB), és utána egy RAID1 tömb (md0), de az csak a disk 99%-áig méretezve. Ha netán ledöglik az egyik lemez, és hirtelen csak más márkájú van a boltban, ami esetleg eltér méretben, akkor is védve vagy.

Javaslom figyelmedbe a linuxakademia.hu-n az Ubuntu 14.04 LTS szerver haladó telepítése videóra a feliratkozást. A regisztrációt követően 1 órán belül megkapod az első részt, egy héten belül a másodikat. Én anno online néztem, amikor ment, és onnan vettem a fenti ötleteket is. (Igaz, a videóban GPT partíciós tábla van, de a lényegen nem változtat)

Nem kell online lennie a rendszernek, hogy újratelepítés nélkül megúszd...

Egyébként, ha nincs túl sok különleges dolog a rajt, a csomaglista és a /etc mentése, és (ésszerű) helyreállítása mellett újratelepítéssel is megmarad a beállított rendszered... persze minden mást is át kell másolni, no meg nyilván végiggondolni a futó szolgáltatásokat, és azok költöztetését.

Új telepítés, oszt: (ebből baj lesz megen')

Command (m for help): t
Partition number (1-5): 2
Hex code (type L to list codes): fd
You cannot change a partition into an extended one or vice versa
Delete it first.

Disk /dev/md2 doesn't contain a valid partition table
root@gateway:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active (auto-read-only) raid1 sdb5[1]
3967936 blocks super 1.2 [2/1] [_U]

md0 : active (auto-read-only) raid1 sdb1[1]
240095040 blocks super 1.2 [2/1] [_U]

sdb:

Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 480454655 240226304 fd Linux raid autodetect
/dev/sdb2 480456702 488396799 3970049 5 Extended
/dev/sdb5 480456704 488396799 3970048 fd Linux raid autodetect

Az extended nem kerül bele? Ilyenkor mi a helyzet?

Az sdb1 nálad most egy primary partíció, az sdb2 viszont extended, az sdb5 ez utóbbin belül létrehozott logikai partíció.

(A hagyományos partíciós táblán maximum négy (primary) partíció lehet, ill. ez "törhető meg" úgy, hogy az egyik helyett extended partíció kerül, ezen belül viszont már több (logikai) partíció is létrehozható. Ezért is kezdődik a számozása 5-tel.)

No, emiatt nem tudod megváltoztatni a típusát, a benne lévő logikaiét persze igen.

Szerk.: Látom, bővítetted a végét.

grub-install /dev/sdb
/usr/sbin/grub-setup: figyelm.: Kísérlet a GRUB telepítésére több partíciócímkével vagy partíciócímkével és fájlrendszerrel egyaránt rendelkező lemezre. Ez még nem támogatott..
/usr/sbin/grub-setup: hiba: A beágyazás nem lehetséges, noha ez szükséges a lemezek közti telepítéshez.