RAID

RAID үүсгэх арга
Компьютерт RAID багц үүсгэхэд үйлдлийн системд суурилсан софтвэйр RAID, тусгай контроллер төхөөрөмж ашигладаг хардвэйр RAID хэмээх хоёр үндсэн арга ашигладаг.
Софтвэйр RAID
Үйлдлийн системд суурилагдсан софтвэйр RAID ашиглах тохиолдолд багц үүсгэхтэй холбоотой тооцоолох ажиллагаа төв процессорт явагддаг, хатуу дискний контроллер болон төв процессорыг холбогч түгээгүүрээр RAID-тэй холбоотой илүү нэмэлт өгөгдөл давхар дамжих болдог зэргээс шалтгаалан процессор болон түгээгүүрийн ачаалал ердийнхөөс ихэсдэг байна.
MS Windows 2000, XP, Vista болон Apple Mac OX-ийн сервер хувилбар, Linux, Free BSD, Solaris зэрэг ихэнх үйлдлийн систем RAID 0, RAID 1, RAID 5, RAID 10 гэх мэт түгээмэл түвшин дэмждэг.
Хардвэйр RAID
Хардвэйр RAID үүсгэхэд тусгай зориулалттай  контроллер чип ашиглана. Ийм контроллер нь сервер, ажлын станц буюу дэсктоп компьютертэй холбох, бичих ажиллагаа хийх үед илүүдэл мэдээлэл үүсгэх, унших үед илүүдэл мэдээллээ шалгах, алгоритмийн дагуу мэдээллийг дискүүдэд тараах зэрэг багцтай холбоотой бүхий л тооцоог хийдэг тул софтвэйр RAID-д байдагчлан төв процессорын ресурсээс хуваалцах шаардлага гардаггүй  байна. 
Дэсктоп компьютерийн хувьд ийм контроллер нь PCI юм уу PCI-e өргөтгөл карт эсвэл эх хавтанд нэгтгэмэл контроллер байж болдог.
Firmware/driver RAID
Дан RAID зориулалттай контроллер чип ашиглахын оронд ердийн стандарт диск контроллер юм уу эх хавтангийн (өмнөд гүүр) чипсетэнд тусгай firmware, драйвер ашиглан RAID үүсгэдэг. Firmware/driver-т суурилсан ийм RAID-ийн жишээ нь Intel Matrix RAID, NVIDIA Media Shield RAID технологи юм.
RAID түвшин (стандарт ба стандарт бус түвшин)
Хандалтын ямар төрөл ашиглаж байгаа, илүүдэл буюу хяналтын мэдээллийг (parity information) хэрхэн үүсгэж, байрлуулж байгаагаасаа хамаараад RAID нь өөр өөр байж болдог бөгөөд үүнийг RAID түвшин гэж нэрлэдэг байна.
Үүнд илүүдэл мэдээллийг тусад нь зориулалттай дискэнд байрлуулж болдгоос гадна багц дахь нийт дискнүүдэд тарааж байрлуулж болдог. Илүүдэл мэдээлэл үүсгэх арга ч харилцан адилгүй. Хамгийн энгийн нь шууд давхар бичиж явах (100%-ийн илүүдэл) буюу тольдох (mirror) арга. Үүнээс гадна алдаа засах тусгай код, тэгш эсэхийг тооцоолох арга ашиглаж болдог байна.
Стандартчлагдаж хэрэглээнд өргөн тархсан RAID түвшинд Берклийн Их Сургуулийн судлаачдын бүтээлд анх тодорхойлогдсон RAID 1, RAID 2, RAID 3, RAID 4, RAID 5 хэмээх таван түвшин дээр RAID 0 болон RAID 6 түвшин ордог.
Үүнээс гадна стандарт бус буюу RAID DP, RAID 7, RAID S (Parity RAID), Intel Matrix RAID гэх мэт тодорхой үйлдвэрлэгчдийн бүтээсэн тусгай түвшин, мөн Nested RAID хэмээн нэрлэгддэг дээрх түвшнүүдийн өвөрмөц хослол (RAID 0+1, RAID 1+0, RAID 5+0, RAID 5+1 гэх мэт) байж болно.
Стандарт RAID түвшин болон хэрэглээнд өргөн ашиглагддаг зарим стандарт бус RAID түвшинг авч үзвэл:
RAID 0 (Striped Disk Array)
Доод тал нь хоёр дискээр үүсгэдэг RAID 0 нь илүүдэлтэй багц биш (ө.х RAID-ийн тодорхойлолтонд дурдсан илүүдэл буюу хяналтын мэдээлэл байхгүй) учраас өгөгдөл найдвартай хадгалах зорилгоор ашиглахад тохиромжгүй. Гэсэн хэдий ч энэхүү түвшин нь хатуу дискний дэд системийн бүтээмжийг сайжруулах үүднээс workstation буюу ажлын станцад өргөн ашигладаг байна. 0 түвшний RAID багц үүсгэхэд мэдээллийг блоклон (fragment) хуваагаад өөр өөр дискнүүдэд тараан бичдэг. Үүний ачаар параллель, зэрэгцээ хандалттай систем үүснэ. Гэхдээ блокийн хэмжээ ингэж хуваагдах боломжтой байх ёстой. RAID 0 нь ингэж олон дискэнд зэрэг оролт-гаралт бий болгодог учраас өгөгдөл дамжуулах хурд өндөртэйн зэрэгцээ хяналтын өгөгдөл хадгалах зай шаардлагагүй болохоор хатуу дискний зайн ашиглалт ч үнэмлэхүй сайтай. 

### RAID 0 
RAID 0 түвшин үүсгэх арга энгийн бөгөөд хялбархан. Ихэвчлэн их хэмжээний өгөгдлийг хурдан дамжуулах шаардлагатай тохиолдолд RAID 0 үүсгэж байна.
 
RAID 0 багцад хамаарч байгаа аль нэг диск гэмтэх тохиолдолд тухайн багцад бичигдсэн бүх өгөгдөл устгагдана. Учир нь өгөгдөл нийт дискний тоонд уялдан олон жижиг блок болж задардаг тухай өмнө нэгэнт өгүүлсэн. Ийм учраас аль нэг дискний тодорхой нэг секторт алдаа үүсэх тохиолдолд бусад дискэн дээрх холбогдох секторуудад ч харьцах боломжгүй.
Давуу тал:
-    Хурд сайтай. (Онолын хувьд багцад багтах дискний тоотой уялдаатайгаар бүтээмж өснө!)
-    Хяналтын дүнгийн тооцоо хийх шаардлагагүй
-    Үүсгэхэд хялбар
Сул тал:
-    Fault tolerance буюу гацаа гажигт тэсвэртэй “жинхэнэ” RAID биш тул найдвартай ажиллах баталгаа муу.
-    Дискний тооны өсөлт тодорхой хязгаарт хүрмэгц бүтээмж цааш өсөхөө больдог.
-    Ганц диск гацах тохиолдолд багцан дахь бүх мэдээлэл алдагддаг учир мэдээллийн үнэ цэнэ чухалчлагддаг орчинд тохиромжгүй.
Багц үүсгэхэд тавигдах шаардлага:
Доод тал нь 2 диск
Хэрэглээ:	
Видео эдитинг гэх мэт хяналтын илүүдэл өгөгдөл (redundancy) үүсгэх хэрэгцээгүй, хурдтай нэвтрүүлэх чадвар шаарддаг программ ашиглах нөхцөлд. 

### **RAID 1** (Mirrored Disc Array) 
1-р түвшний RAID нь 100% илүүдэлтэй хатуу дискний багц болдог. Өөрөөр хэлбэл RAID 1 түвшинд өгөгдлийг зүгээр давхар бичиж (mirroring буюу тольдох арга) явдаг тул мэдээлэл хадгалагдах баталгаа сайтайн зэрэгцээ үнэ өндөр.
 
RAID 1 үүсгэхэд хатуу диск болон өгөгдлийг урьдчилан блоклож хуваах шаардлагагүй. Тухайн тохиолдолд хоёр диск яг адилхан мэдээлэл хадгалж явах учир ганц ширхэг логик диск болж таарна. Аль нэг диск ажиллаж чадахгүй болох тохиолдолд нөгөө диск үүрэг гүйцэтгэнэ. Үүнээс гадна RAID 1 түвшин хэрэглэхэд унших үйлдэл хоёр дискэн дээрээс зэрэг хийгддэг болохоор мэдээлэл унших хурд давхар өсдөг байна. Өгөгдлийн аюулгүй, найдвартай байдал нь өгөгдөл хадгалах систем үүсгэх үнэ өртгөөс хамаагүй өндөр байгаа үед мэдээлэл хадгалах энэ схемийг ихэвчлэн хэрэглэдэг байна.
Давуу тал:
-    Багц тутамд нэг бичилт эсвэл хоёр уншилт хийх боломжтой.
-    Дан дисктэй харьцуулахад унших (бичих) хурд давхар өснө.
-    Диск гацах тохиолдолд багцыг шинэчлэн үүсгэх шаардлагагүй, ердөө гэмтэлтэй дискийг шинээр солиод болно.
Сул тал:
-    RAID түвшнүүд дотроо хамгийн их (100%) илүүдэлтэй. 2 диск тутмын нэг нь илүүдэл өгөгдөл хадгалахад зориулагдана.
-    Мэдээлэл хадгалах багтаамж нь нэг хатуу дискний хэмжээгээр хязгаарлагдана.

Багц үүсгэхэд тавигдах шаардлага:
2 диск шаардлагатай.

Хэрэглээ:	
Хяналтын илүүдэл өгөгдөл (redundancy), хурдтай, чөлөөт (random) бичилт шаарддаг программ; ердөө хоёрхон хатуу диск бүхий бага чадлын (entry-level) системүүд (SMB домэйн сервер, бага чадлын вэб сервер, жижиг файл сервер).

### **RAID 2** (Parallel Array with ECC) 
2-р түвшний RAID нь алдаа засах үүднээс Хэммингийн код (Hamming Code ECC) ашигладаг өгөгдөл нөөцлөх схем юм. Бичигдэж байгаа өгөгдлийг RAID 0 шиг блоклон хуваах бүтцийн үндсэн дээр биш, өгөгдөл бичигдэх ёстой дискний тоотой тэнцүү үгийн үндсэн дээр үүсгэнэ. Үгийн тодорхой бит бүр нь багцад багтаж байгаа тодорхой диск бүрт бичигдэж явна. Жишээлэхэд хэрвээ багц маань дөрвөн дискнээс бүрдэх тохиолдолд дараалал нь дөрвөн битээр буюу эхний бит нэгдүгээр дискэнд, хоёр дахь бит хоёрдугаар дискэнд гэх мэтээр бичигдэнэ.
 
Үүнээс гадна үг бүр нь хяналтын мэдээлэл хадгалах зориулалттай тусдаа дискэнд ECC (Error Correction Code) буюу алдаа засах кодоор шалгагдана. Жишээ нь өгөгдөл долоон дискэнд хадгалагдаж явах бол хяналтын өгөгдөл хадгалахад гурван диск шаардлагатай.
RAID 2 нь нэгтийн болон хоёртын алдааг шууд явц дунд нь илрүүлж чадвартай хэдхэн түвшний нэг боловч алдаа засах кодтой түвшнүүд дотроо хамгийн их илүүдэл өгөгдөлтэй нь болж таардаг. Өгөгдөл хадгалах энэхүү схем нь үүсгэхэд харьцангуй төвөгтэй, олон тооны хүсэлттэй (request) ажиллах чадвар муутай, RAID 3 түвшнээс ялгарах давуу тал бага гэх мэт шалтгаанаар хэрэглээнд нэвтэрч чадаагүй байна.

### RAID 3 (Parallel Array with Parity) 
3-р түвшний RAID нь параллель оролт-гаралттай, хяналтын мэдээлэл хадгалах зориулалттай илүү нэг диск бүхий гацаа гажигт тэсвэртэй багц юм. Өгөгдөл бичихдээ хяналтын мэдээлэл хадгалах зориулалттай ганцаас бусад бүх дискэнд, байтийн түвшинд (битийн түвшинд ч боломжтой) блоклон хуваадаг. 
Хяналтын мэдээллийг тооцоолохдоо бичигдэж буй өгөгдлийн блокуудад “БУЮУ-г хасаад” (ХОR) үйлдэл ашигладаг. Багцад хамаарах аль нэг диск гэмтэж, жагсаалаас гарах тохиолдолд уг дискэнд байсан мэдээллийг хяналтын өгөгдөл болон үлдсэн ажиллагаатай дискнүүд дэх өгөгдлийн тусламжтайгаар сэргээж болно.
 
Дөрвөн битийн хэмжээтэй блокоор жишээ авъя. Өгөгдөл хадгалах зориулалттай дөрвөн диск, хяналтын дүн бичих нэг диск гэж тооцъё. Хэрвээ битийн дараалал 1101 0011 1100 1011 бөгөөд дөрвөн битээр хуваагдсан гэж үзвэл хяналтын дүнг бодож гаргахад
1101 + 0011 + 1100 + 1011 = 1001 гэсэн үйлдэл хийх шаардлагатай болно. Тэгэхлээр тавдахь дискэнд бичигдэх хяналтын өгөгдөл нь 1001-тэй тэнцүү болж байна.  Аль нэг диск, жишээ нь гуравдугаар диск гажигласнаас болоод 1100 блокийг унших ажиллагаа бүтэлгүйтлээ. Алдагдсан утгыг хяналтын өгөгдөл болон үлдсэн блокуудын утгаар мөн л “БУЮУ-г хасаад” үйлдэл ашиглан хялбархан сэргээчихэж болно:
Блок 3 = Блок 1 + Блок 2 + Блок 4 + Хяналтын дүн
Бидний жишээн дээр: Блок 3 = 1101 + 0011 + 1011 +1001 = 1100.
RAID 3 түвшин нь өмнөх RAID 2 түвшинтэй харьцуулахад илүүдэл өгөгдөл бага. Мөн өгөгдлийг дискнүүдэд хувааж байрлуулдаг тул бүтээмж өндөр. Бичих ажиллагаа явагдах бүрт хяналтын өгөгдөлтэй дискэнд хандалт хийж байдаг бол мэдээллийг унших ажиллагаа явагдаж байгаа нөхцөлд (гацаа гажиг байхгүй нөхцөлд) хяналтын өгөгдөлтэй дисктэй харьцдаггүй. Оролт-гаралтын үйлдэл хийгдэх болгонд багцны бүх дискэнд хандах ёстой болж таардаг тул нэг зэрэг хэд хэдэн хүсэлт боловсруулах боломжгүй. Энэ шалтгаанаас болж уг түвшин хэрэглээнд төдийлөн ашиглагддаггүй байна. RAID 3 түвшин нь гацаатай уялдан бүтээмж унах уналт үл ялиг, мэдээлэл хурдан сэргээгддэг бөгөөд эргэлтийн давтамж багатай, том хэмжээтэй файлтай харьцдаг программд илүү тохирдог байна.
Давуу тал:
-    Уншиж, бичих хурд сайн
-    Диск гацах нь нийт дамжуулах хурданд нөлөө багатай

Сул тал:
-    Үүсгэхэд төвөгтэй
-    Жижиг хэмжээтэй өгөгдөлтэй идэвхтэй харьцах орчинд бүтээмж муу

Багц үүсгэхэд тавигдах шаардлага:
Доод тал нь гурван диск

### RAID 4 (Parallel Array with Parity) 
4-р түвшний RAID нь хяналтын өгөгдлийг тусад нь ганц дискэнд хадгалдаг, гацаа гажигт тэсвэртэй багц болно. Энэ түвшин олон талаараа RAID 3-тай адилхан боловч бичигдэх өгөгдлийн блокийн хэмжээ ихээхэн том байдгаараа ялгагдана. RAID 3-аас илүү том блоктойн ачаар хэд хэдэн унших ажиллагааг зэрэг гүйцэтгэх (бие даасан хандалт хийх) боломжтой болдог байна.
 
RAID 4 нь унших ажиллагааг зэрэг зэрэг параллель гүйцэтгэх боломжтойн ачаар жижиг хэмжээтэй файл дамжуулахдаа хурд сайтай. Гэвч бичлэг хийж буй нөхцөлд тусгай зориулагдсан дискнээ хяналтын өгөгдлийн тооцоо давхар хийгдэж явдаг учраас зэрэг олон бичих үйлдэл гүйцэтгэх боломжгүй. 
Уг түвшин нь том хэмжээтэй өгөгдөл дамжуулахад тохиромж муутай. Учир нь өгөгдөл дамжуулах энэхүү схемийг анхнаасаа өгөгдөл жижгэвтэр блок болон хуваагддаг, цааш дахин хуваагдах шаардлагагүй программуудад зориулсан байна. Ийм учраас RAID 4 нь мэдээлэл бичигдэхээсээ илүүтэй унших ажиллагаа голчлон хийгддэг файл серверийн хувьд тохирсон шийдэл болно. Өгөгдөл хадгалах энэ схемийн өртөг зардал өндөр бус боловч үүсгэх арга, гацсан үед сэргээх ажиллагаа төвөгтэй. 
Давуу тал: 
-    Зэрэг олон өгөгдөл унших шаардлагатай нөхцөлд хурд сайтай
-    Илүүдэл өгөгдөл хадгалах зардал бага шаардагдана
Сул тал:
-    Үүсгэхэд төвөгтэй
-    Өгөгдөл бичих болон сэргээх ажиллагаа удаан
-    Ганцаарчилсан хандалт бүхий бага хэмжээний өгөгдөл унших хурд удаан
Багц үүсгэхэд тавигдах шаардлага:
-    Доод тал нь гурван диск

### RAID 5 (Striped Array with Distributed Parity) 
5-р түвшний RAID нь хяналтын өгөгдлийг тараан байршуулдаг, гацаа гажигт тэсвэртэй багц юм. Өгөгдөл болон хяналтын дүнгийн блокуудыг RAID 3-тай адилаар багцанд хамаарах бүх дискэнд тараан байрлуулдаг тул хяналтын дүнгийн тухай мэдээлэл хадгалах тусдаа диск байх шаардлагагүй болно.
   
RAID 5 багцад хамаарч байгаа дискүүд бүгд адил хэмжээтэй байх бөгөөд хатуу дискний дэд системийн бичлэг хийгдэх боломжтой нийт багтаамж яг нэг дискээр дутуу болж таардаг. Жишээ нь 100 Гбайтийн таван дисктэй бол багцын нийт хэмжээ 400 Гбайт болох бөгөөд үлдэх 100 Гбайт нь хяналтын мэдээлэл хадгалахад зориулагдана.
RAID 5 нь архитектурын хувьд RAID 4-тэй адил, бие даасан чөлөөт хандалттай. Мэдээлэл хадгалах логик блокийн хэмжээ том байх боломжтойгоороо RAID 3-аас ялгагдана. Ийм болохоор энэхүү багцын гол давуу тал нь RAID 4-ийн нэгэн адил хэд хэдэн хүсэлтийг нэгэн зэрэг гүйцэтгэх бололцоотой байдагт оршино. Гэхдээ хяналтын өгөгдөл байршуулах аргаараа RAID 5 ба RAID 4 нь хоорондоо ялгаатай.
Өмнө дурдагдсан гурван түвшинд байдаг шигээр хяналтын дүнгийн мэдээллийг тусад нь дискэнд байршуулах тохиолдолд уг дискэнд хандах шаардлагагүй унших ажиллагаа өндөр хурдтай явагдана. Гэвч бичих үйлдэл хийгдэх бүрт хяналтын дүнгийн мэдээлэл өөрчлөгдөж байдаг болохоор RAID 2, RAID 3, RAID 4 схемүүдэд бичлэгийг параллель зэрэгцээ гүйцэтгэх боломжгүй. Харин RAID 5 схем ийм дутагдалгүй, хяналтын дүнг багцын бүх дискэнд бичдэг болохоор хэд хэдэн унших болон бичих үйлдлийг зэрэгцээ хийх боломжтой.  
Давуу тал:
-    Унших хурд маш сайн. 
-    Дамжуулах чадвар өндөр. 
-    Нүсэр багтаамжтай багц үүсгэх бололцоотой.
Сул тал: 
-    Тодорхой диск гацвал нэвтрүүлэх чадавхид нэлээд нөлөөтэй. 
-    Тодорхой блокийн өгөгдөл дамжуулах үзүүлэлт ганц дискнийхтэй адилхан.
-    Тодорхой диск гацах тохиолдолд багцыг шинэчлэн сэргээх нь төвөгтэй. (RAID 1-тэй харьцангуйгаар)
Багц үүсгэхэд тавигдах шаардлага:
Доод тал нь 3 диск. 
Хэрэглээ: 
Их багтаамж, хурдтай ажиллагаа шаардагддаг программ, төрөл бүрийн (өгөгдлийн баазын, файлын, программын, интранет, ERP, DVR) сервер 

### RAID 10 (Nested RAID) 
RAID 10 нь nested RAID буюу RAID 1 ба RAID 0-ийн хосолмол загвар бөгөөд өгөгдлийг диснүүдэд тарааж бaйрлуулах (striping) замаар хурдтай ажиллагаа хангаж өгөхийн зэрэгцээ өөр өөр дискэнд давхар хувилж (mirroring) явах тул гацаа гажигт тэсвэртэй болдог байна. 
RAID 10-т хяналтын өгөгдөл хадгалах шаардлага байдаггүй тул тодорхой тохиолдолд RAID 5-аас илүү хурдан уншиж, бичдэг байна. Мөн RAID 0-той харьцуулахад өгөгдөл  бичих ажиллагаа удаавтар.  
 
Давуу тал:
-    Гацаа гажигт тэсвэртэй, хурдтай байх гэсэн хоёр шаардлагад зэрэг тохирдог
Сул тал: 
-    Үүсгэх өртөг зардал өндөр
Багц үүсгэхэд тавигдах шаардлага:
Доод тал нь 4 диск. 

### Intel Matrix RAID (Firmware RAID) 
Intel Matrix RAID технологийн үндсэн санаа нь: тусдаа дискнүүд ашиглахын оронд тусдаа дискнүүдийн партишн ашиглан өөр өөр RAID-ийн хослол үүсгэхэд үндэслэдэг байна. Жишээ нь хоёр дискэнд тус бүрт нь хоёр партишн үүсгээд эхний хоёр партишнд RAID 0-оор үйлдлийн систем суулгаж, үлдсэн хоёр партишнийг RAID1 горимоор өгөгдөл хадгалахад ашиглаж болно.  
 
Intel Matrix RAID нь анх тус компаний ICH6R чипсетэд (9xx цуврал) зөвхөн RAID 0, RAID 1 дэмжиж байсан бол сүүлчийн ICH10R чипсет RAID 0, RAID 1, RAID 10, RAID 5 түвшин дэмждэг болжээ. 

### Дэсктоп компьютерт RAID-ийн хэрэглээ 
Арваад жилийн өмнө RAID массив нь SCSI диск бүхий өндөр үнэтэй, enterprise зориулалттай серверүүдэд голчлон ашиглагддаг байсан бол 90-ээд оны эцсээс ердийн бага чадлын сервер, workstation компьютерт хүртэл ердийн стандарт болж хувирсан төдийгүй хямд үнэтэй IDE болон SATA интерфэйстэй диск ашиглан RAID массив үүсгэх боломж бүрдсэнээр дэсктоп компьютерт хүртээлтэй технологи болж хувирчээ. Эдүгээ зах зээл дээр хямд төсөв, бага чадлын (low profile) RAID картны зэрэгцээ эх хавтан өөртөө интегрэйтэд буюу нэгтгэмэл RAID контроллертой байх нь түгээмэл болжээ.
Дэсктоп компьютер хэрэглэгчдийн хувьд хамгийн сонирхол татдаг асуудал нь RAID 0 ашиглан дэсктоп компьютерийн дискний дэд системийн ерөнхий хурдыг сайжруулах явдал.

Ангилал:Хадгалах технологи
Ангилал:Дижитал санах ойн хадгалуур
Ангилал:Товчилсон үг