FreeBSD гарын авлага
Өмнөх | Бүлэг 20. GEOM: Модульчлагдсан Диск Хувиргах Тогтолцоо | Дараах

# 20.4. RAID1 - Толин тусгал үүсгэх

Толин тусгал үүсгэх нь олон корпорациуд болон гэрийн хэрэглэгчдийн ашигладаг өгөгдлийг тасалдалгүйгээр нөөцлөх технологи юм. Толин тусгал байх үед энэ нь diskB нь diskA-г хувилж байгаа гэсэн үг. Эсвэл магадгүй diskC+D нь diskA+B-г хувилж байгаа байж болно. Дискний тохиргооноос хамааралгүй чухал ойлголт бол нэг диск дээрх мэдээлэл болон хуваалт нь хувилагдах явдал юм. Сүүлд нь, хадгалсан өгөгдөл нь үйлчилгээ болон хандалтын тасалдалгүйгээр, амархан сэргээгдэж, нөөцлөгдөж бараг өгөгдлийн төмөр авдарт хадгалсан юм шиг байх болно.

Эхлээд системд ижил хэмжээтэй хоёр диск байгааг шалгаарай, энэ дасгалд уг дискнүүдэд шууд хандах (da(4)) SCSI дисктэй гэж үзэж байгаа болно.

## 20.4.1. Үндсэн дискүүдийг тольдох нь

FreeBSD эхний `da0` дискийн төхөөрөмж дээр суулгагдсан гэж үзвэл gmirror(8)-д өөрийн үндсэн өгөгдлийг тэнд хадгал гэж зааж өгсөн байх ёстой.

Толь бүтээхээсээ өмнө `kern.geom.debugflags` гэсэн sysctl(8)-ийн тохиргоог дараах утгаар тохируулж нэмэлт дибаг мэдээллийг идэвхжүүлж төхөөрөмжид хандах хандалтыг нээж өгнө:

    # sysctl kern.geom.debugflags=17

Одоо толь үүсгэнэ. `/dev/mirror/gm` төхөөрөмжийг үр ашигтайгаар үүсгэн мета өгөгдлийг үндсэн дискийн төхөөрөмж дээр хадгалан процессийг дараах тушаал ашиглан эхлүүлнэ:

> Сануулга: Дискний сүүлийн секторт ямар нэгэн өгөгдөл хадгалсан бол ачаалах хөтчөөр толин тусгал хийх тохиолдолд өгөгдлийн алдагдалд хүргэж болох юм. FreeBSD-г шинээр суулгасны дараахан нь толин тусгал үүсгэснээр энэ эрсдэлийг багасгаж болно. FreeBSD�9.`X` нь шинэ GPT хуваалтын схем ашигладаг учир дараах процедур нь FreeBSD�9.`X`-н анхдагч суулгалтын тохиргоотой нийцтэй биш юм. GEOM нь GPT-н мета өгөгдлийг дарж бичих бөгөөд энэ нь өгөгдлийн алдагдал болон магадгүй ачаалж орохгүй систем бий болгоход хүргэж болох юм.

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

Систем дараах хариуг өгнө:

    Metadata value stored on /dev/da0.
    Done.

GEOM-ийг эхлүүлэхэд `/boot/kernel/geom_mirror.ko` цөмийн модулийг ачаална:

    # gmirror load

> Тэмдэглэл: Энэ тушаал бүрэн ажиллаж дууссаны дараа `gm0` төхөөрөмжийн цэгийг `/dev/mirror` санд үүсгэх ёстой.

Системийг эхлүүлэх үед `geom_mirror.ko` цөмийн модулийг дуудахыг идэвхжүүлнэ:

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

Хуучин байсан `da0`-г `gm0` толин төхөөрөмжийн шинэ төхөөрөмжийн цэгээр сольж `/etc/fstab` файлыг засварлах хэрэгтэй.

> Тэмдэглэл: Хэрэв vi(1) таны дуртай засварлагч бол үүнийг дараах хялбар аргаар хийж болно:

>     # vi /etc/fstab

> vi(1) дээр `:w /etc/fstab.bak` гэж бичин `fstab`-ийн одоо байгаа агуулгыг нөөцөлнө. Дараа нь хуучин байсан бүх `da0`-г `gm0`-р `:%s/da/mirror\/gm/g` гэж бичин сольно.

Үүний үр дүнд `fstab` файл дараахтай төстэй харагдах ёстой. Дискийн хөтчүүд SCSI эсвэл ATA байх нь хамаагүй бөгөөд эдгээрээс үл хамааран RAID төхөөрөмж нь `gm` байх болно.

    # Device      Mountpoint      FStype  Options         Dump    Pass#
    /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

Системийг дахин эхлүүлнэ:

    # shutdown -r now

Системийг эхлүүлэх үед `gm0`-г `da0` төхөөрөмжийн оронд ашиглах ёстой. Бүрэн эхэлж дууссаны дараа үүнийг `mount` тушаалаас гарах үр дүнг хянаснаар шалгаж болно:

    # 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

Үр дүн санасны дагуу зөв харагдаж байна. Төгсгөлд нь синхрончлолыг эхлүүлэхийн тулд `da1` дискийг толь руу дараах тушаал ашиглан хийнэ:

    # gmirror insert gm0 /dev/da1

Толин тусгал бүтээгдсэний дараа түүнийн төлвийг доор дурдсан тушаал ашиглан шалгаж болно:

    # gmirror status

Толь бүтээгдэж одоо байгаа бүх өгөгдөл синхрончлогдсоны дараа дээрх тушаалаас гарах үр дүн иймэрхүү байх ёстой:

          Name    Status  Components
    mirror/gm0  COMPLETE  da0
                          da1

Ямар нэг асуудал байх юм уу эсвэл толь нь бүтээх процессоо хийсээр байвал уг жишээ `COMPLETE`-ийн оронд `DEGRADED` гэж харуулах болно.

## 20.4.2. Алдааг олж засварлах нь

### 20.4.2.1. Систем ачаалахгүй байх

Хэрэв систем дараах тушаал хүлээх мөр хүртэл ачаалсан бол:

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

Унтраах болон дахин эхлүүлэх товчийг дарж машиныг дахин эхлүүл. Ачаалах үеийн цэснээс (6) сонголтыг сонго. Ингэхэд системийг loader(8) тушаал хүлээх мөрд аваачна. Цөмийн модулийг гараар ачаал:

    OK? load geom_mirror
    OK? boot

Хэрэв энэ нь ажилласан бол модул ямар нэг шалтгаанаар буруу ачаалагдсан байна. `/boot/loader.conf` файлд тохирох мөр байгаа эсэхийг шалгах хэрэгтэй. Хэрэв асуудалтай хэвээр байвал дараах:

    options	GEOM_MIRROR

мөрийг цөмийн тохиргооны файлд байрлуулж дахин бүтээж суулгаарай. Ингэх нь энэ асуудлыг арилгах ёстой.

## 20.4.3. Дискийн эвдрэлээс буцаж сэргээх нь

Дискийг тольдохын гайхамшигтай тал нь диск эвдрэхэд ямар ч өгөгдөл алдалгүйгээр түүнийг сольж болоход оршино.

Өмнөх RAID1 тохиргоог байна гэж үзээд `da1` эвдэрсэн бөгөөд солих хэрэгтэй байгаа гэж үзье. Солихын тулд аль диск эвдэрснийг мэдээд системийг унтраана. Одоо дискийг шинээр сольж системийг асааж болно. Системийг дахин ачаалсны дараа дискийг солихын тулд дараах тушаалуудыг ашиглаж болно:

    # gmirror forget gm0

    # gmirror insert gm0 /dev/da1

Дахин бүтээлтийн явцыг хянахын тулд `gmirror` `status` тушаалыг ашиглана. Энэ нь ийм амархан юм.

Өмнөх | Эхлэл | Дараах
RAID0 - Судал үүсгэх | Дээш | RAID3 - Parity бүхий байтын түвшний тусдаа судалжуулалт (Striping)

Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.

FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал <admin@mnbsd.org> хаягаар цахим захидал явуулна уу.