FreeBSD гарын авлага
Өмнөх | Бүлэг 18. Хадгалалт | Дараах

# 18.4. RAID

## 18.4.1. Програм хангамжийн RAID

### 18.4.1.1. Нийлүүлэгдсэн Дискний Драйвер (Concatenated Disk Driver буюу CCD) тохиргоо

Анхлан ажилласан Кристофер Шамвэй. Хянан тохиолдуулсан Жим Браун.

Бөөн хадгалалтын шийдлийг сонгохдоо бодолцох хамгийн чухал хүчин зүйлүүд нь хурд, найдвартай байдал болон өртөг юм. Энэ гурвыг гурвууланг нь тэнцүү байлгах нь ховор байдаг; ерөнхийдөө хурдан, найдвартай бөөн хадгалалтын төхөөрөмж нь үнэтэй бөгөөд үнийн хувьд хямдыг сонгох нь хурд эсвэл найдвартай байдлын аль нэгийг золиослох хэрэгтэй болдог.

Доор тайлбарласан системийг дизайн хийхдээ өртгийг хамгийн чухал хүчин зүйл гэж сонгож авсан бөгөөд үүний дараа хурд, хурдын дараа найдвартай байдлыг сонгосон. Энэ системийн өгөгдөл дамжуулах хурд нь эцсийн эцэст сүлжээгээр шахагддаг. Найдвартай байдал нь маш чухал боловч доор тайлбарласан CCD хөтөч нь CD-R-ууд дээр аль хэдийн бүтнээрээ нөөцлөгдсөн, амархнаар солигдож болох өгөгдөлд шууд үйлчилдэг.

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

#### 18.4.1.1.1. Тоног төхөөрөмжийг суулгах нь

IDE системийн дискнээс гадна гурван Western Digital 30GB, 5400 RPM IDE диск нь доор тайлбарласан CCD дискний гол цөм болж нийтдээ ойролцоогоор 90GB шууд хадгалалт болно. Туйлын хүслээр бол IDE диск бүр өөрийн IDE хянагч болон кабельтай байна, гэхдээ өртгийг багасгахын тулд нэмэлт IDE хянагчууд ашиглагдаагүй болно. Харин дискнүүд нь jumper буюу холбогчоор тохируулагдсан бөгөөд ингэснээр IDE хянагч бүр нэг мастер болон нэг боолтой байна.

Дахин ачаалах үед системийн BIOS залгагдсан дискнүүдийг автоматаар олохоор тохируулагдсан байдаг. Илүү чухал зүйл нь FreeBSD тэдгээрийг дахин ачаалахад олсон явдал юм:

    ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33
    ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33
    ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33
    ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33

> Тэмдэглэл: Хэрэв FreeBSD дискнүүдийг бүгдийг нь олохгүй байгаа бол та тэдгээрийг зөвөөр холбосон эсэхээ шалгаарай. IDE хөтчүүдийн ихэнх нь бас “Cable Select” холбогчтой байдаг. Энэ нь мастер/боол харилцаанд зориулагдсан холбогч биш юм. Хөтчийн баримтаас зөв холбогчийг таних талаар лавлаарай.

Дараа нь тэдгээрийг файлын системийн хэсэг болгон залгах талаар бодох хэрэгтэй. Та vinum(4) (Бүлэг 21) болон ccd(4) хоёуланг судлах хэрэгтэй. Энэ тохиргооны хувьд ccd(4)-г сонгосон.

#### 18.4.1.1.2. CCD-г тохируулах нь

ccd(4) хөтөч нь хэд хэдэн адил дискнүүдийг авч тэдгээрийг нэг логик файл систем болгон нийлүүлэх боломжийг олгодог. ccd(4)-г ашиглахын тулд танд ccd(4) дэмжлэг цуг бүтээгдсэн цөм хэрэгтэй. Энэ мөрийг цөмийн тохиргооны файлдаа нэмээд цөмөө дахин бүтээж суулгаарай:

    device   ccd

ccd(4) дэмжлэг цөмийн дуудагдах модуль хэлбэрээр бас дуудагдаж болно.

ccd(4)-г тохируулахын тулд та эхлээд дискнүүдийг хаяглах bsdlabel(8)-г ашиглах ёстой:

    bsdlabel -w ad1 auto
    bsdlabel -w ad2 auto
    bsdlabel -w ad3 auto

Энэ нь бүх дискний дагуух `ad1c`, `ad2c` болон `ad3c`-д зориулж bsdlabel үүсгэдэг.

Дараагийн алхам нь дискний шошгоны төрлийг өөрчлөх явдал юм. Та дискнүүдийг засварлахдаа bsdlabel(8)-г ашиглаж болно:

    bsdlabel -e ad1
    bsdlabel -e ad2
    bsdlabel -e ad3

Энэ нь диск бүр дэх тухайн дискний шошгыг `EDITOR` орчны хувьсагчид заасан засварлагчаар, ихэнхдээ vi(1)-ээр онгойлгодог.

Өөрчлөлт хийгдээгүй дискний шошго иймэрхүү харагдах болно:

    8 partitions:
    #        size   offset    fstype   [fsize bsize bps/cpg]
      c: 60074784        0    unused        0     0     0   # (Cyl.    0 - 59597)

ccd(4)-д зориулж ашиглахаар шинэ `e` хуваалтыг нэмнэ. Үүнийг ихэвчлэн `c` хуваалтаас хуулж болох боловч `fstype` нь `4.2BSD` байх ёстой. Дискний шошго одоо иймэрхүү харагдах ёстой:

    8 partitions:
    #        size   offset    fstype   [fsize bsize bps/cpg]
      c: 60074784        0    unused        0     0     0   # (Cyl.    0 - 59597)
      e: 60074784        0    4.2BSD        0     0     0   # (Cyl.    0 - 59597)

#### 18.4.1.1.3. Файлын системийг бүтээх нь

Та бүх дискнүүдээ хаягласны дараа ccd(4)-г бүтээх ёстой. Үүнийг хийхийн тулд дараах тохируулгуудтай адилаар ccdconfig(8)-г ашиглана:

    ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e

Тохируулга бүрийн хэрэглээ болон утгыг доор харуулав:

  Эхний нэмэлт өгөгдөл нь тохируулах төхөөрөмж байх бөгөөд энэ тохиолдолд `/dev/ccd0c` байна. `/dev/` хэсэг байхгүй ч байж болно.
  Файлын системд зориулсан interleave. interleave нь дискний блокууд дээрх судлын хэмжээг тодорхойлдог бөгөөд нэг бүр нь ихэвчлэн 512 байт байдаг. Тэгэхээр 32 interleave нь 16,384 байт байна.
  ccdconfig(8)-д зориулсан тугнууд. Хэрэв та хөтчийг толин тусгал үүсгэж идэвхжүүлэхийг хүсвэл тугийг энд зааж өгч болно. Энэ тохиргоо нь ccd(4)-н хувьд толин тусгал үүсгэлтийг хангадаггүй учир энэ нь 0 (тэг) гэж тохируулагдсан.
  ccdconfig(8) уруу өгөгдөх сүүлийн нэмэлт өгөгдлүүд нь массивт оруулах төхөөрөмжүүд юм. Төхөөрөмж бүрийн хувьд бүрэн гүйцэд замын нэрийг ашиглах хэрэгтэй.

ccdconfig(8)-г ажиллуулсны дараа ccd(4) тохируулагдана. Файлын систем суулгагдаж болно. Тохируулгуудын талаар newfs(8)-с лавлана уу, эсвэл ердөө л ингэж ажиллуулна:

    newfs /dev/ccd0c

#### 18.4.1.1.4. Бүгдийг автомат болгох нь

Ерөнхийдөө та ccd(4)-г дахин ачаалах бүртээ холбохыг хүснэ. Үүнийг хийхийн тулд та эхлээд тохируулах хэрэгтэй. Өөрийн одоогийн тохиргоогоо дараах тушаал ашиглаж `/etc/ccd.conf` уруу бичих хэрэгтэй:

    ccdconfig -g > /etc/ccd.conf

Дахин ачаалах үед скрипт `/etc/rc` нь хэрэв `/etc/ccd.conf` байвал `ccdconfig -C` тушаалыг ажиллуулна. Энэ нь ccd(4)-г холбож болохоор болгож автоматаар тохируулна.

> Тэмдэглэл: Хэрэв та ганц хэрэглэгчийн горим уруу ачаалж байгаа бол ccd(4)-г mount(8) хийхээсээ өмнө массивыг тохируулахын тулд дараах тушаалыг ажиллуулах шаардлагатай:

>     ccdconfig -C

ccd(4)-г автоматаар холбохын тулд ccd(4)-н оруулгыг `/etc/fstab` файлд байрлуулах хэрэгтэй. Ингэсэн тохиолдолд энэ нь ачаалах үед холбогдох болно:

    /dev/ccd0c              /media       ufs     rw      2       2

### 18.4.1.2. Vinum Эзлэхүүн Менежер

Vinum Эзлэхүүн Менежер нь виртуал диск хөтчийг хийдэг блок төхөөрөмжийн драйвер юм. Энэ нь дискний тоног төхөөрөмжийг блок төхөөрөмжийн интерфэйсээс тусгаарлаж уян хатан байдал, ажиллагаа болон найдвартай байдлыг дискний хадгалалтын уламжлалт зүсмэлийн харагдалтаас илүүтэйгээр хангах тийм аргаар өгөгдлийг дүрсэлдэг. vinum(4) нь RAID-0, RAID-1 болон RAID-5 загваруудыг тус бүрт нь болон холбоотой байдлаар нь шийддэг.

vinum(4)-ийн талаар дэлгэрэнгүй мэдээллийг Бүлэг 21-с үзнэ үү.

## 18.4.2. Тоног төхөөрөмжийн RAID

FreeBSD нь бас төрөл бүрийн тоног төхөөрөмжийн RAID хянагчуудыг дэмждэг. Эдгээр төхөөрөмжүүд нь FreeBSD-д зориулсан тусгай програм хангамжаар массивыг удирдах шаардлагагүйгээр RAID дэд системийг хянадаг.

Карт дээрх BIOS-г ашиглан карт нь дискний үйлдлүүдийн ихэнхийг өөрөө хянадаг. Дараах нь Promise IDE RAID хянагчийг ашиглах тохиргооны товч тайлбар юм. Энэ карт суулгагдаж систем эхлэх үед мэдээллийг хүсэх мөрийг харуулна. Картны тохиргооны дэлгэц уруу орохын тулд заавруудыг дагана. Эндээс залгагдсан бүх хөтчүүдийг нэгтгэх боломж танд байх болно. Ингэж хийснийхээ дараа диск(нүүд) нь FreeBSD-д нэг хөтөч шиг харагдах болно. Бусад RAID түвшингүүдийг бас тохируулж болно.

## 18.4.3. ATA RAID1 массивуудыг дахин бүтээх нь

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

Та магадгүй доор дурдсантай адилыг `/var/log/messages` эсвэл dmesg(8) гаралт дээр харж болох юм:

    ad6 on monster1 suffered a hard error.
    ad6: READ command timeout tag=0 serv=0 - resetting
    ad6: trying fallback to PIO mode
    ata3: resetting devices .. done
    ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\
    status=59 error=40
    ar0: WARNING - mirror lost

atacontrol(8) ашиглан дэлгэрэнгүй мэдээллийг шалгана:

    # atacontrol list
    ATA channel 0:
            Master:      no device present
            Slave:   acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0

    ATA channel 1:
            Master:      no device present
            Slave:       no device present

    ATA channel 2:
            Master:  ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
            Slave:       no device present

    ATA channel 3:
            Master:  ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
            Slave:       no device present

    # atacontrol status ar0
    ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED

1. Та дискийг аюулгүйгээр салган авахын тулд эхлээд ata сувгийг ажиллахгүй байгаа дисктэй цуг салгана:

       # atacontrol detach ata3

2. Дискийг сольно.

3. ata сувгийг дахин залгана:

       # atacontrol attach ata3
       Master:  ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
       Slave:   no device present

4. Шинэ дискийг массивт нөөц маягаар нэмнэ:

       # atacontrol addspare ar0 ad6

5. Массивыг дахин бүтээнэ:

       # atacontrol rebuild ar0

6. Дараах тушаалыг ашиглаж үйл явцыг шалгаж болно:

       # dmesg | tail -10
       [output removed]
       ad6: removed from configuration
       ad6: deleted from ar0 disk1
       ad6: inserted into ar0 disk1 as spare

       # atacontrol status ar0
       ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed

7. Энэ үйлдэл хийгдэж дуустал хүлээх хэрэгтэй.

Өмнөх | Эхлэл | Дараах
Диск нэмэх | Дээш | USB хадгалалтын төхөөрөмжүүд

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

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