FreeBSD kézikönyv
Előző | Fejezet 19. GEOM: A moduláris lemezszervező rendszer | Következő

# 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.

Előző | Tartalom | Következő
RAID0 - Csíkozás | Fel | 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): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.