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

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

RAID1, буюу mirroring нь нэг өгөгдлийг нэгээс илүү диск дээр бичих техникийг хэлдэг. Толин тусгал нь диск ажиллахаа байсан үед өгөгдлийг алдагдахаас хамгаалахад ихэвчлэн хэрэглэгддэг. Толин тусгал дахь диск бүр өгөгдлийн ижил хуулбарыг агуулж байдаг. Тухайн диск ажиллахаа больсон үед ажиллаж байгаа дискнүүд дэх өгөгдлөөр ханган толин тусгал ажилласан хэвээр байна. Компьютер энэ үед ажилласаар байх бөгөөд администратор нь ажиллахаа больсон дискийг хэрэглэгчийн оролцоогүйгээр солих боломжтой болдог.

Эдгээр жишээнүүд дээр хоёр түгээмэл тохиолдлыг харуулсан байгаа. Эхнийх дээр нь хоёр шинэ дискнээс бүтэх толин тусгал үүсгэж одоо байгаа нэг дискний оронд ашиглаж байгаа талаар бичсэн. Хоёр дахь жишээ нь нэг шинэ диск дээр толин тусгал үүсгэж хуучин дискний өгөгдлийг хуулж дараа нь хуучин дискийг толин тусгал руу оруулж байгаа талаар болно. Энэ процедур нь илүү төвөгтэй боловч зөвхөн ганц диск шаарддаг.

Уламжлалаар толин тусгал дахь хоёр диск нь модел болон хэмжээний хувьд ижил байдаг боловч gmirror(8) нь тийм байхыг шаарддаггүй. Өөр дискнүүдээс тогтсон толин тусгал нь хамгийн бага дискний хэмжээтэй ижил байдаг. Илүү том диск дээрх илүүдэл зай нь ашиглагддаггүй. Толин тусгал руу сүүлд нэмэх диск нь толин тусгал дахь хамгийн бага хэмжээтэй дискний хэмжээтэй ижил байх ёстой.

> Сануулга: Энд үзүүлсэн толин тусгал болгож байгаа процедур эвдлэх шинж чанаргүй боловч дискний үйл ажиллагаатай холбоотой учраас бүрэн хэмжээний нөөцлөлтийг эхлээд хийгээрэй.

## 20.4.1. Мета өгөгдөлтэй холбоотой асуудлууд

Дискний олон систем мета өгөгдлийг диск бүрийн төгсгөлд хадгалдаг. Дискийг толин тусгалд дахин ашиглахын тулд хуучин мета өгөгдлийг устгах ёстой. Ихэнх асуудал хуучин үлдсэн мета өгөгдлийн хоёр төрлөөс болж үүсдэг: GPT хуваалтын хүснэгтүүд, болон өмнөх толин тусгалын хуучин gmirror(8) мета өгөгдөл юм.

GPT мета өгөгдлийг gpart(8) ашиглан устгаж болно. Энэ жишээн дээр анхдагч болон нөөц GPT хуваалтын хүснэгтийг `ada8` дискнээс устгаж байна:

    # gpart destroy -F ada8

gmirror(8) нь ажиллаж байгаа толин тусгалаас дискийг салгаж мета өгөгдлийг арилгахыг нэг алхмаар хийж чаддаг. Энд жишээ диск `ada8`-г ажиллаж байгаа толин тусгал `gm4`-с салгаж байна:

    # gmirror remove gm4 ada8

Хэрэв толин тусгал ажиллахгүй байгаа бөгөөд хуучин толин тусгалын мета өгөгдөл диск дээр байгаа хэвээр бол `gmirror clear` тушаал ашиглан устгаж болно:

    # gmirror clear ada8

gmirror(8) нь мета өгөгдлийн нэг блокийг дискний төгсгөлд хадгалдаг. GPT хуваалтын схем нь мета өгөгдлийг бас дискний төгсгөлд хадгалдаг учраас бүтэн GPT дискүүдийг gmirror(8) ашиглан толин тусгал хийхийг зөвлөдөггүй. Энд MBR хуваалтыг ашигладаг, учир нь энэ хуваалт нь хуваалтын хүснэгтийг дискний зөвхөн эхэнд хадгалдаг бөгөөд gmirror(8)-той харшилддаггүй.

## 20.4.2. Хоёр шинэ дискнээс толин тусгал үүсгэх

Энэ жишээн дээр FreeBSD нь `ada0` гэсэн нэг диск дээр суулгасан байгаа. `ada1` ба `ada2` гэсэн хоёр шинэ диск систем рүү холбогдсон байгаа. Энэ хоёр диск дээр шинэ толин тусгал үүсгэх бөгөөд нэг хуучин дискийг солиход ашиглагдах болно.

gmirror(8) нь цөмд цуг бүтээгдсэн эсвэл ачаалах буюу ажиллах үед дуудагдах `geom_mirror.ko` цөмийн модулийг шаарддаг. Цөмийн модулийг гараар одоо дуудна:

    # gmirror load

Хоёр шинэ дискээс тогтох толин тусгал үүсгэнэ.

    # gmirror label -v gm0 /dev/ada1 /dev/ada2

`gm0` нь шинэ толин тусгалд өгсөн хэрэглэгчийн сонгосон төхөөрөмжийн нэр юм. Толин тусгал эхэлсний дараа төхөөрөмжийн нэр `/dev/mirror/` санд гарч ирнэ.

MBR болон bsdlabel хуваалтын хүснэгтүүдийг толин тусгал дээр gpart(8)-н тусламжтай үүсгэж болно. Энд бид `/`, swap, `/var`, `/tmp`, ба `/usr` гэсэн хуваалтуудтай уламжлалт хуваалттай файлын системийн бүтцийг харуулж байна. Ганц `/` болон swap хуваалт байж бас болно.

Толин тусгал дахь хуваалтууд нь одоо байгаа дискнүүд шиг ижил хэмжээтэй байх албагүй боловч `ada0` дээр байгаа бүх өгөгдлийг агуулах хэмжээтэй байх ёстой.

    # gpart create -s MBR mirror/gm0
    # gpart add -t -a 4k mirror/gm0
    # gpart show mirror/gm0
    =>       63  156301423  mirror/gm0  MBR  (74G)
             63         63                    - free -  (31k)
            126  156301299                 1  freebsd  (74G)
      156301425         61                    - free -  (30k)

    # gpart create -s BSD mirror/gm0s1
    # gpart add -t freebsd-ufs  -a 4k -s 2g mirror/gm0s1
    # gpart add -t freebsd-swap -a 4k -s 4g mirror/gm0s1
    # gpart add -t freebsd-ufs  -a 4k -s 2g mirror/gm0s1
    # gpart add -t freebsd-ufs  -a 4k -s 1g mirror/gm0s1
    # gpart add -t freebsd-ufs  -a 4k       mirror/gm0s1
    # gpart show mirror/gm0s1
    =>        0  156301299  mirror/gm0s1  BSD  (74G)
              0          2                      - free -  (1.0k)
              2    4194304                   1  freebsd-ufs  (2.0G)
        4194306    8388608                   2  freebsd-swap  (4.0G)
       12582914    4194304                   4  freebsd-ufs  (2.0G)
       16777218    2097152                   5  freebsd-ufs  (1.0G)
       18874370  137426928                   6  freebsd-ufs  (65G)
      156301298          1                      - free -  (512B)

Ачаалах кодыг MBR болон bsdlabel-д суулган идэвхтэй зүсмэлийг тохируулж толин тусгалыг ачаалах боломжтой болгоно:

    # gpart bootcode -b /boot/mbr mirror/gm0
    # gpart set -a active -i 1 mirror/gm0
    # gpart bootcode -b /boot/boot mirror/gm0s1

Зөөлөн шинэчлэлийг идэвхжүүлэн шинэ толин тусгал дээрх файлын системийг формат хийнэ.

    # newfs -U /dev/mirror/gm0s1a
    # newfs -U /dev/mirror/gm0s1d
    # newfs -U /dev/mirror/gm0s1e
    # newfs -U /dev/mirror/gm0s1f

Эх диск (`ada0`) дээрх файлын системийг толин тусгал руу dump(8) ба restore(8) тушаалыг ашиглан хуулж болно.

    # mount /dev/mirror/gm0s1a /mnt
    # dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)
    # mount /dev/mirror/gm0s1d /mnt/var
    # mount /dev/mirror/gm0s1e /mnt/tmp
    # mount /dev/mirror/gm0s1f /mnt/usr
    # dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)
    # dump -C16 -b64 -0aL -f - /tmp | (cd /mnt/tmp && restore -rf -)
    # dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)

`/mnt/etc/fstab`-г шинэ толин тусгал файлын систем рүү заагдсан байхаар засварлах ёстой:

    # Device		Mountpoint	FStype	Options	Dump	Pass#
    /dev/mirror/gm0s1a	/		ufs	rw	1	1
    /dev/mirror/gm0s1b	none		swap	sw	0	0
    /dev/mirror/gm0s1d	/var		ufs	rw	2	2
    /dev/mirror/gm0s1e	/tmp		ufs	rw	2	2
    /dev/mirror/gm0s1f	/usr		ufs	rw	2	2

Хэрэв gmirror(8) цөмийн модул цөмд цуг бүтээгдээгүй бол модулийг ачаалахад дуудахын тулд `/mnt/boot/loader.conf` файлыг засах ёстой:

    geom_mirror_load="YES"

Шинэ толин тусгалыг тест хийхийн тулд системийг дахин ачаалж бүх өгөгдөл хуулагдсан эсэхийг шалгаарай. BIOS толин тусгалыг толин тусгал гэж харахгүй, харин хоёр тусдаа диск гэж харна. Дискнүүд ижил учраас аль нь ачаалахаар сонгогдсон нь чухал биш юм.

Ачаалахад асуудалтай байгаа бол Алдааг олж засварлах хэсгийг үзээрэй. Унтраагаад эхний `ada0` дискийг салгаснаар уг дискийг нөөц маягаар байх боломжийг бүрдүүлдэг.

Ашиглаж байгаа үед толин тусгал нь яг л анхны ганц диск шиг л ажиллах болно.

## 20.4.3. Байгаа дискүүд ашиглан толин тусгал үүсгэх

Энэ жишээн дээр FreeBSD `ada0` гэсэн нэг диск дээр суусан байгаа. Шинэ диск `ada1`-г системд холбосон байгаа. Нэг дискээс тогтох толин тусгалыг шинэ диск дээр үүсгэж байгаа системийг түүн рүү хуулж дараа нь хуучин дискийг толин тусгал руу оруулна. Энэ илүү төвөгтэй процедур нь зайлшгүй шаардлагатай байдаг, учир нь gmirror(8) нь 512 байт блок бүхий мета өгөгдлийг диск бүрийн төгсгөлд нэмэх хэрэгтэй байдаг бөгөөд байгаа `ada0`-н бүх зай ихэвчлэн ашиглагдчихсан байдаг.

gmirror(8) цөмийн модулийг дуудна.

    # gmirror load

diskinfo(8) ашиглан эхний дискний хэмжээг шалгана.

    # diskinfo -v ada0 | head -n3
    /dev/ada0
    	512             # sectorsize
    	1000204821504   # mediasize in bytes (931G)

Шинэ диск дээр толин тусгалыг үүсгэнэ. Эхний дискнээс толин тусгалын хэмжээ их биш гэдгийг шалгахын тулд gnop(8) ашиглан ижил хэмжээтэй хуурамч диск үүсгэж үзнэ. Энэ диск нь ямар ч өгөгдөл хадгалахгүй бөгөөд толин тусгалын хэмжээг хязгаарлахад зөвхөн ашиглагдана. gmirror(8) нь толин тусгал үүсгэхдээ хэдийгээр шинэ диск (`ada1`) илүү зайтай байсан ч гэсэн `gzero.nop`-н хэмжээгээр багтаамжийг хязгаарлана. Хоёр дахь мөрөн дээр байгаа `1000204821504` утга нь дээрх diskinfo(8)-р харуулсантай адил `ada0`-н хэмжээтэй ижил байх ёстой.

    # geom zero load
    # gnop create -s 1000204821504 gzero
    # gmirror label -v gm0 gzero.nop ada1
    # gmirror forget gm0

`gzero.nop` нь ямар ч өгөгдөл хадгалдаггүй учраас толин тусгал холбогдсон гэж хардаггүй. `gzero.nop`-той холбоотой мэдээллийг устган холбогдоогүй байгаа зүйлийг “март” гэж толин тусгалд хэлдэг гэсэн үг юм. Үүний үр дүнд толин тусгал нь зөвхөн ганц диск `ada1`-с тогтоно.

`gm0`-г үүсгэсний дараа `ada0` дээрх хуваалтын хүснэгтийг харна.

Эндэх гаралт нь 1 TB дискнээс юм. Дискний төгсгөлд хуваарилагдаагүй зай байгаа бол өгөгдөл `ada0`-с шууд шинэ толин тусгал руу хуулагдаж болно.

Гэхдээ гаралт нь дараах жагсаалт дээрх шиг диск дээрх бүх зай бүхлээрээ хуваарилагдсан байгаагаар харуулж байгаа бол 512 байт gmirror(8) мета өгөгдлийн хувьд дискний төгсгөлд зай байхгүй гэсэн үг юм.

    # gpart show ada0
    =>        63  1953525105        ada0  MBR  (931G)
              63  1953525105           1  freebsd  [active]  (931G)

Энэ тохиолдолд `mirror/gm0` дээрх багтаамжийг нэг сектороор багасгахын тулд хуваалтын хүснэгтийг засварлах хэрэгтэй. Уг процедурыг дараа тайлбарлах болно.

Аль ч тохиолдолд анхдагч диск дээрх хуваалтын хүснэгтүүдийг эхэлж хуулах хэрэгтэй. Үүнийг gpart(8) `backup` ба `restore` дэд тушаалуудыг ашиглан гүйцэтгэнэ.

    # gpart backup ada0 > table.ada0
    # gpart backup ada0s1 > table.ada0s1

Эдгээр тушаал нь `table.ada0` ба `table.ada0s1` гэсэн хоёр файл үүсгэнэ. Энэ жишээ нь 1 TB дискнээс юм:

    # cat table.ada0
    MBR 4
    1 freebsd         63 1953525105   [active]

    # cat table.ada0s1
    BSD 8
    1  freebsd-ufs          0    4194304
    2 freebsd-swap    4194304   33554432
    4  freebsd-ufs   37748736   50331648
    5  freebsd-ufs   88080384   41943040
    6  freebsd-ufs  130023424  838860800
    7  freebsd-ufs  968884224  984640881

Хэрэв gpart(8) `show` тушаалын гаралтад бүтэн диск ашиглагдаж байгаа бол эдгээр хуваалтын хүснэгтүүд дээрх багтаамжийг нэг сектороор багасгах хэрэгтэй. Зүсмэл болон сүүлийн хуваалтын зайг нэгээр багасган хоёр файлыг засварлах хэрэгтэй. Эдгээр нь жагсаалт бүрийн сүүлийн тоонууд юм.

    # cat table.ada0
    MBR 4
    1 freebsd         63 1953525104   [active]

    # cat table.ada0s1
    BSD 8
    1  freebsd-ufs          0    4194304
    2 freebsd-swap    4194304   33554432
    4  freebsd-ufs   37748736   50331648
    5  freebsd-ufs   88080384   41943040
    6  freebsd-ufs  130023424  838860800
    7  freebsd-ufs  968884224  984640880

Дискний төгсгөлд хамгийн багадаа нэг сектор хуваарилагдаагүй байгаа бол эдгээр хоёр файлыг засварлалгүйгээр ашиглаж болно.

Одоо хуваалтын хүснэгтийг `mirror/gm0` руу сэргээнэ.

    # gpart restore mirror/gm0 < table.ada0
    # gpart restore mirror/gm0s1 < table.ada0s1

gpart(8) `show` тушаалаар хуваалтын хүснэгтийг шалгана. Энэ жишээ нь `gm0s1a`-г `/`, `gm0s1d`-г `/var`, `gm0s1e`-г `/usr`, `gm0s1f`-г `/data1`, ба `gm0s1g`-г `/data2`-д ашиглана.

    # gpart show mirror/gm0
    =>        63  1953525104  mirror/gm0  MBR  (931G)
              63  1953525042           1  freebsd  [active]  (931G)
      1953525105          62              - free -  (31k)

    # gpart show mirror/gm0s1
    =>         0  1953525042  mirror/gm0s1  BSD  (931G)
               0     2097152             1  freebsd-ufs  (1.0G)
         2097152    16777216             2  freebsd-swap  (8.0G)
        18874368    41943040             4  freebsd-ufs  (20G)
        60817408    20971520             5  freebsd-ufs  (10G)
        81788928   629145600             6  freebsd-ufs  (300G)
       710934528  1242590514             7  freebsd-ufs  (592G)
      1953525042          63                - free -  (31k)

Зүсмэл болон сүүлийн хуваалт диск бүрийн төгсгөлд сул зайтай байх ёстой.

Энэ шинэ хуваалтууд дээр файлын систем үүсгэнэ. Хэдэн хуваалт байх нь эх диск `ada0` дээрх хуваалтуудаас хамаарч янз бүр байна.

    # newfs -U /dev/mirror/gm0s1a
    # newfs -U /dev/mirror/gm0s1d
    # newfs -U /dev/mirror/gm0s1e
    # newfs -U /dev/mirror/gm0s1f
    # newfs -U /dev/mirror/gm0s1g

Идэвхтэй зүсмэлийг тохируулж MBR болон bsdlabel дээр ачаалах кодыг суулгаж толин тусгалыг ачаалах боломжтой болгоно:

    # gpart bootcode -b /boot/mbr mirror/gm0
    # gpart set -a active -i 1 mirror/gm0
    # gpart bootcode -b /boot/boot mirror/gm0s1

Толин тусгал дээрх шинэ хуваалтыг ашиглахаар болгож `/etc/fstab` файлыг тохируулна. `/etc/fstab.orig` руу хуулж энэ файлыг эхлээд нөөцөлж авах хэрэгтэй.

    # cp /etc/fstab /etc/fstab.orig

`/dev/ada0`-г `mirror/gm0`-р сольж `/etc/fstab` файлыг засварлана.

    # Device		Mountpoint	FStype	Options	Dump	Pass#
    /dev/mirror/gm0s1a	/		ufs	rw	1	1
    /dev/mirror/gm0s1b	none		swap	sw	0	0
    /dev/mirror/gm0s1d	/var		ufs	rw	2	2
    /dev/mirror/gm0s1e	/usr		ufs	rw	2	2
    /dev/mirror/gm0s1f	/data1		ufs	rw	2	2
    /dev/mirror/gm0s1g	/data2		ufs	rw	2	2

Хэрэв gmirror(8) цөмийн модул цөмд цуг бүтээгдээгүй бол `/boot/loader.conf`-г засварлаж түүнийг дуудна:

    geom_mirror_load="YES"

Эх диск дээрх файлын системүүдийг одоо dump(8) ба restore(8) тушаалуудыг ашиглан толин тусгал руу хуулж болно. `dump -L` тушаалаар авагдсан файл систем бүрийн хувьд хормын хувилбар үүсгэхэд хугацаа шаардагдаж магадгүйг санаарай.

    # mount /dev/mirror/gm0s1a /mnt
    # dump -C16 -b64 -0aL -f - /    | (cd /mnt && restore -rf -)
    # mount /dev/mirror/gm0s1d /mnt/var
    # mount /dev/mirror/gm0s1e /mnt/usr
    # mount /dev/mirror/gm0s1f /mnt/data1
    # mount /dev/mirror/gm0s1g /mnt/data2
    # dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)
    # dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)
    # dump -C16 -b64 -0aL -f - /data1 | (cd /mnt/data1 && restore -rf -)
    # dump -C16 -b64 -0aL -f - /data2 | (cd /mnt/data2 && restore -rf -)

`ada1`-с ачаалж системийг дахин ачаална. Бүгд ажиллаж байгаа бол систем `mirror/gm0`-с ачаалах бөгөөд энэ нь `ada0`-н өмнө агуулж байсан өгөгдлийг бас агуулах болно. Ачаалахтай холбоотой асуудал байгаа бол Алдааг олж засварлах хэсгийг харна уу.

Энд хүрэхэд толин тусгал нь зөвхөн ганц диск `ada1`-с тогтох болно.

`mirror/gm0`-с амжилттай ачаалсны дараа сүүлийн алхам бол `ada0`-г толин тусгал руу оруулах явдал юм.

> Чухал: `ada0`-г толин тусгал руу оруулах үед хуучин агуулга нь толин тусгал дээрх агуулгаар дарагдаж бичигддэг. `ada0`-г толин тусгал руу нэмэхээсээ өмнө `mirror/gm0` нь `ada0`-н өгөгдлийг яг агуулж байгаа эсэхийг шалгаарай. dump(8) ба restore(8)-г ашиглан хуулсан агуулгатай холбоотой ямар нэг асуудал үүссэн бол файлын системийг `ada0`-с холбохоор болгож `/etc/fstab`-г тохируулж дахин ачаалан дээрх алхмуудыг дахин эхнээс нь хийж үзэх хэрэгтэй.

    # gmirror insert gm0 ada0
    GEOM_MIRROR: Device gm0: rebuilding provider ada0

Хоёр дискний хоорондох синхрончлол шууд эхэлнэ. gmirror(8) `status` тушаал явцыг харуулна.

    # gmirror status
          Name    Status  Components
    mirror/gm0  DEGRADED  ada1 (ACTIVE)
                          ada0 (SYNCHRONIZING, 64%)

Тодорхой хугацааны дараа синхрончлол дуусна.

    GEOM_MIRROR: Device gm0: rebuilding provider ada0 finished.
    # gmirror status
          Name    Status  Components
    mirror/gm0  COMPLETE  ada1 (ACTIVE)
                          ada0 (ACTIVE)

`mirror/gm0` нь одоо `ada0` ба `ada1` гэсэн хоёр дискээс тогтох бөгөөд агуулгууд нь нэг нэгэнтэйгээ автоматаар синхрончлогдсон байна. Ашиглагдаж байгаа үед `mirror/gm0` нь яг л эхний ганц диск шиг ажиллах болно.

## 20.4.4. Алдааг олж засварлах

### 20.4.4.1. Ачаалахтай холбоотой асуудлууд

#### 20.4.4.1.1. BIOS тохиргоо

BIOS тохиргоог шинээр толин тусгал болгосон дискнүүдийн аль нэгнээс ачаалахаар болгож тохируулах хэрэгтэй байж магадгүй юм. Аль ч дискийг ачаалахад ашиглаж болно. Толин тусгалын нэг хэсэг учраас тэдгээр нь ижил өгөгдөлтэй байдаг.

#### 20.4.4.1.2. Ачаалах үеийн асуудлууд

Хэрэв ачаалалт ийм мэдэгдэлтэй зогссон бол толин тусгал төхөөрөмж асуудалтай байж болох юм:

    Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.

    Loader variables:
      vfs.root.mountfrom=ufs:/dev/mirror/gm0s1a
      vfs.root.mountfrom.options=rw

    Manual root filesystem specification:
      <fstype>:<device> [options]
          Mount <device> using filesystem <fstype>
          and with the specified (optional) option list.

        eg. ufs:/dev/da0s1a
            zfs:tank
            cd9660:/dev/acd0 ro
              (which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /)

      ?               List valid disk boot devices
      .               Yield 1 second (for background tasks)
      <empty line>    Abort manual input

    mountroot>

`geom_mirror` модулийг `/boot/loader.conf`-т оруулж дуудахаа мартсан бол энэ асуудал гарна. Үүнийг засахын тулд FreeBSD-9 эсвэл түүнээс хойшхи хувилбарын CD эсвэл USB дискнээс ачаалаад эхний асуулт дээр `Shell`-г сонгох хэрэгтэй. Дараа нь толин тусгалын модулийг дуудаж толин тусгал төхөөрөмжийг холбох хэрэгтэй:

    # gmirror load
    # mount /dev/mirror/gm0s1a /mnt

Толин тусгалын модулийг дуудах мөрийг `/mnt/boot/loader.conf`-д оруулж засварлана:

    geom_mirror_load="YES"

Файлыг хадгалж дахин ачаална.

`error 19` гаргаж байгаа бусад асуудлуудыг засварлахад илүү хүч зарах шаардлагатай. Асууж лавлах дэлгэц дээр `ufs:/dev/ada0s1a` гэж оруулж өгнө. Систем хэдийгээр `ada0`-с ачаалах ёстой боловч бүрхүүл сонгох асууж лавлах дэлгэц дахин гарч ирнэ. `/etc/fstab` файл буруу байгаа учраас тэр юм. Оруулах товчийг энэ үед дарах хэрэгтэй. Толин тусгалын оронд эх дискнээс (`ada0`) файлын системийг холбохоор болгож `/etc/fstab`-г тохируулж өөрчлөлтийг буцаах хэрэгтэй. Системийг дахин ачаалж алхмуудыг дахин оролдож үзэх хэрэгтэй.

    Enter full pathname of shell or RETURN for /bin/sh:
    # cp /etc/fstab.orig /etc/fstab
    # reboot

## 20.4.5. Диск ажиллахаа болиход сэргээх

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

`ada0` нь дээрх жишээн дээр толин тусгал үүсгэж байгаа дискнүүдийн нэг юм. Хэрэв `ada0` ажиллахаа боливол нөгөө ажиллаж байгаа диск болох `ada1`-с өгөгдлөө өгөн толин тусгал ажилласан хэвээр байх болно.

Ажиллахаа больсон дискийг солихын тулд компьютерыг унтрааж эвдэрсэн дискийг ижил эсвэл илүү хэмжээтэй дискээр солих хэрэгтэй. Үйлдвэрлэгчид дискний хэмжээг гигабайтаар хэмжихдээ дурын утга ашигладаг бөгөөд итгэлтэй байхын тулд зөвхөн `diskinfo -v` тушаалаар харагдах секторын тоог харьцуулах явдал юм. Толин тусгалын хэмжээнээс том диск болох боловч шинэ диск дээрх илүү зай ашиглагдахгүй.

Компьютер ассаны дараа толин тусгал “degraded” буюу “ажиллагаа саарсан” горимд нэг дисктэйгээр ажиллах болно. Толин тусгал нь залгагдаагүй байгаа дискийг мартаж ажиллана:

    # gmirror forget gm0

Хуучин мета өгөгдлийг сольсон дискээс арилгах хэрэгтэй. Дараа нь энэ жишээн дээрх `ada4` дискийг толин тусгал руу оруулна:

    # gmirror insert gm0 /dev/ada4

Шинэ диск толин тусгалд ороход дахин синхрончлол хийгдэж эхэлнэ. Толин тусгалын өгөгдлийг шинэ диск рүү хуулах процесс удаж болно. Толин тусгалын үйл ажиллагаа хуулж байх явцад удаашрах учраас компьютерын хэрэглээ бага үед шинэ дискийг хийх нь зүйтэй.

Үйл явцыг `gmirror status` тушаалаар монитор хийж болох бөгөөд синхрончлол хийгдэж байгаа дискнүүд болон ажиллаж байгаа хувийг энэ тушаал харуулдаг. Дахин синхрончлолын үед төлөв `DEGRADED` байж байгаад процесс дуусахдаа `COMPLETE` болж өөрчлөгдөнө.

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

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

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