19.4. RAID1 - Tükrözés
Vissza | 19. fejezet - GEOM: A moduláris lemezszervező rendszer | Előre

## 19.4. RAID1 - Tükrözés

A tükrözés számos vállalatnál és háztartásban alkalmazott technológia, amely az adatok megszakítás nélküli lementésére használatos. Amikor tükrözést használunk, az egyszerűen csak arra utal, hogy a B lemez ugyanazokat az adatokat tartalmazza, mint az A lemez. Vagy amikor a C és D lemez tartalma egyezik meg az A és B lemezekével. Függetlenül a lemezek kiosztásától, itt az a lényeg, hogy az egyik lemez teljes területe vagy az egyik partíciója le van másolva. Később az ezen a módon lementett adatok könnyen visszaállíthatóak anélkül, hogy ez a szolgáltatásban vagy az elérhetőségben bármilyen kimaradást okozna, és akár még fizikailag is biztonságosan tárolhatóak.

Először is szereznünk kell két egyforma méretű lemezt, valamint a példák feltételezik, hogy ezek a lemezek közvetlen elérésű (da(4)) SCSI-lemezek.

### 19.4.1. Az elsődleges lemezek tükrözése

Tegyük fel, hogy a FreeBSD az első, `da0` nevű lemezmeghajtón található, és a gmirror(8) számára ezt szeretnénk megadni az elsődleges adatok tárolásához.

A tükrözés létrehozásának megkezdése előtt a `kern.geom.debugflags` sysctl(8) változó megfelelő beállításával engedélyezzünk további nyomkövetési információkat és hozzáférést az eszközhöz:

`#` `sysctl kern.geom.debugflags=17`

Most építsük fel a tükrözést. Kezdjük az egészet a metaadatok elhelyezésével az elsődleges lemezmeghajtón, tehát tulajdonképpen az alábbi parancs segítségével hozzuk létre a `/dev/mirror/gm` eszközt:

### Figyelem:

A rendszerindító meghajtóról készített tükrözés adatvesztést okozhat a lemez utolsó szektorában. Ennek kockázata csökkenthető, ha közvetlenül a FreeBSD friss telepítése után állítjuk be a tükrözést.

`#` `gmirror label -vb round-robin gm0 /dev/da0`

Erre a rendszernek a következő módon kell reagálnia:

Metadata value stored on /dev/da0. Done.

A GEOM inicializálásához szükségünk lesz a `/boot/kernel/geom_mirror.ko` modul betöltésére:

`#` `gmirror load`

### Megjegyzés:

A parancs sikeres lefutása után a `/dev/mirror` könyvtárban létrehoz egy `gm0` eszközleírót.

A `geom_mirror.ko` modul betöltését így tudjuk engedélyezni a rendszer indításakor:

`#` `echo 'geom_mirror_load="YES"' >> /boot/loader.conf`

Nyissuk meg az `/etc/fstab` állományt, és cseréljük le benne az összes korábbi `da0` hivatkozást az újonnan kialakított `gm0` tükrözés eszközleírójával.

### Megjegyzés:

Ha vi(1) szövegszerkesztőt használjuk, akkor a következő módon tudjuk ezt egyszerűen megtenni:

`#` `vi /etc/fstab`

A vi(1) indítása után a `:w /etc/fstab.bak` kiadásával készítsünk az `fstab` állomány jelenlegi tartalmáról másolatot. Ezután a `:%s/da/mirror\/gm/g` parancs használatával cseréljük ki az összes `da0` hivatkozást a `gm0` eszköz nevére.

Az így keletkező `fstab` állomány nagyjából következő módon fog kinézni. Most teljesen független, hogy SCSI vagy ATA meghajtókkal dolgozunk, a RAID eszköz neve mindig `gm` lesz:

# Eszköz Csatlakozási pont Típus Beállítások Dump Menet /dev/mirror/gm0s1b none swap sw 0 0 /dev/mirror/gm0s1a / ufs rw 1 1 /dev/mirror/gm0s1d /usr ufs rw 0 0 /dev/mirror/gm0s1f /home ufs rw 2 2 #/dev/mirror/gm0s2d /store ufs rw 2 2 /dev/mirror/gm0s1e /var ufs rw 2 2 /dev/acd0 /cdrom cd9660 ro,noauto 0 0

Indítsuk újra a rendszert:

`#` `shutdown -r now`

Ennek megfelelően a rendszer indítása közben a `da0` eszköz helyett a `gm0` eszközt fogjuk használni. Miután sikeresen befejeződött a rendszerindítás, a `mount` parancs kiadásával a saját szemünkkel is meggyőződhetünk az eredményről:

`#` `mount` Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/mirror/gm0s1a 1012974 224604 707334 24% / devfs 1 1 0 100% /dev /dev/mirror/gm0s1f 45970182 28596 42263972 0% /home /dev/mirror/gm0s1d 6090094 1348356 4254532 24% /usr /dev/mirror/gm0s1e 3045006 2241420 559986 80% /var devfs 1 1 0 100% /var/named/dev

A parancs kimenete az elvárásainknak megfelelően remekül néz ki. Zárásképpen a szinkronizálás megkezdéséhez a következő paranccsal illesszük be a `da1` eszközt a tükrözésbe:

`#` `gmirror insert gm0 /dev/da1`

A tükrözés állapota a létrejöttét követően az alábbi paranccsal ellenőrizhető:

`#` `gmirror status`

Az iménti parancs eredményének nagyjából a következőnek kell lennie miután a felépítettük a tükrözést és szinkronizáltuk az adatokat:

Name Status Components mirror/gm0 COMPLETE da0 da1

Hiba esetén a tükrözés továbbra is folytatódik, azonban ilyenkor a példában szereplő `COMPLETE` helyett a `DEGRADED` jelzést fogjuk látni.

### 19.4.2. Hibakeresés

#### 19.4.2.1. A rendszer nem hajlandó elindulni

Ha a rendszerünk ehhez hasonló módon indul:

ffs_mountroot: can't find rootvp Root mount failed: 6 mountroot>

Indítsuk újra a gépünket a kikapcsoló gomb vagy a reset segítségével. A rendszerindító menüben válasszuk a hatodik opciót (6). Ennek eredményeképpen megkapjuk a loader(8) parancssorát. Töltsük be a modult manuálisan:

OK? `load geom_mirror` OK? `boot`

Ha ez beválik, akkor valamiért a modult nem sikerült rendesen betölteni. Ellenőrizzük, hogy a `/boot/loader.conf` állományban a neki szereplő megfelelő bejegyzés helyesen szerepel. Amennyiben a probléma továbbra is fennáll, helyezzük el a következő sort a rendszermag konfigurációs állományába, majd fordítsuk újra és telepítsük:

options GEOM_MIRROR

Ezzel várhatóan orvosoltuk a problémát.

### 19.4.3. A meghibásodott lemezek cseréje

A lemezek tükrözésének egyik legcsodálatosabb előnye, hogy a menet közben meghibásodott meghajtókat gond, és így feltehetően adatvesztés nélkül ki tudjuk cserélni.

Vegyük az iménti RAID-1 konfigurációt, és tételezzük fel, hogy a `da1` eszköz felmondta a szolgáltatot és cserére szorul. A meghajtó leváltásához keressük meg a hibás eszközt, majd állítsuk le a rendszert. Tegyük be a helyére az újat és indítsuk újra a rendszerünket. Miután elindult az operációs rendszer, a következő parancsok kiadásával tudjuk logikailag is lecserélni a meghibásodott lemezt:

`#` `gmirror forget gm0` `#` `gmirror insert gm0 /dev/da1`

Innen a `gmirror` `status` parancsával kísérhetjük figyelemmel a tükrözés újraszervezésének menetét. Csupán ennyi az egész.

Vissza | Fel | Előre
19.3. RAID0 - Csíkozás | Főoldal | 19.5. Eszközök hálózati illesztése a GEOM-ban

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.