19.4 RAID1 - Толин тусгал үүсгэх

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

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

19.4.1 Үндсэн дискүүдийг тольдох нь

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

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

# sysctl kern.geom.debugflags=17

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

Warning: Дискний сүүлийн секторт ямар нэгэн өгөгдөл хадгалсан бол ачаалах хөтчөөр толин тусгал хийх тохиолдолд өгөгдлийн алдагдалд хүргэж болох юм. FreeBSD-г шинээр суулгасны дараахан нь толин тусгал үүсгэснээр энэ эрсдэлийг багасгаж болно.

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

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

Metadata value stored on /dev/da0.
Done.

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

# gmirror load

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

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

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

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

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

# vi /etc/fstab

vi(1) дээр :w /etc/fstab.bak гэж бичин fstab-ийн одоо байгаа агуулгыг нөөцөлнө. Дараа нь хуучин байсан бүх da0gm0:%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

Системийг эхлүүлэх үед gm0da0 төхөөрөмжийн оронд ашиглах ёстой. Бүрэн эхэлж дууссаны дараа үүнийг 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 гэж харуулах болно.

19.4.2 Алдааг олж засварлах нь

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

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

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

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

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

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

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

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

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