Олон тооны аж ахуйн нэгжийн програмууд болон виртуалчлалын системүүд нь алдаа гаргахад тэсвэртэй шийдлүүдийг бий болгох өөрийн гэсэн механизмтай байдаг. Тодруулбал, Oracle RAC (Oracle Real Application Cluster) нь сервер/програмын түвшинд ачааллыг тэнцвэржүүлж, алдааг тэсвэрлэх зорилгоор хамтран ажилладаг хоёр ба түүнээс дээш Oracle мэдээллийн сангийн серверүүдийн кластер юм. Энэ горимд ажиллахын тулд танд дундын санах ой хэрэгтэй бөгөөд энэ нь ихэвчлэн хадгалах систем юм.
Бид аль нэгэнд нь аль хэдийн хэлэлцсэн шиг
Мэдээж юун түрүүнд ямар эрсдэлээс даатгуулах гэж байгаагаа шийдэх хэрэгтэй. Энэ нийтлэлд бид "солир ирлээ" гэх мэт аюулаас хамгаалах талаар авч үзэхгүй. Тиймээс газарзүйн хувьд тархай бутархай гамшгаас хамгаалах шийдлийг бий болгох нь дараах нийтлэлүүдийн аль нэгний сэдэв хэвээр байх болно. Энд бид серверийн кабинетийн түвшинд хамгаалалт хийгдсэн үед Cross-Rack гамшгаас хамгаалах шийдлийг авч үзэх болно. Шүүгээнүүд нь нэг өрөөнд эсвэл өөр өөр байранд байрладаг боловч ихэвчлэн нэг байранд байрладаг.
Эдгээр кабинетууд нь "хөрш"-ийн төлөв байдлаас үл хамааран Oracle мэдээллийн санг ажиллуулахад шаардлагатай бүх тоног төхөөрөмж, програм хангамжийг агуулсан байх ёстой. Өөрөөр хэлбэл, Cross-Rack гамшгаас хамгаалах шийдлийг ашигласнаар бид бүтэлгүйтлийн эрсдлийг арилгана.
- Oracle програмын серверүүд
- Хадгалалтын систем
- Шилжүүлэгч системүүд
- Кабинет дахь бүх тоног төхөөрөмжийн бүрэн эвдрэл:
- Эрчим хүчээс татгалзах
- Хөргөлтийн системийн эвдрэл
- Гадаад хүчин зүйлс (хүн, байгаль гэх мэт)
Oracle серверүүдийн давхардал нь Oracle RAC-ийн үйл ажиллагааны зарчмыг илэрхийлдэг бөгөөд програмаар дамжуулан хэрэгждэг. Сэлгэн залгах байгууламжийн давхардал нь бас асуудал биш юм. Гэхдээ хадгалах системийг давхардсанаар бүх зүйл тийм ч хялбар биш юм.
Хамгийн энгийн сонголт бол үндсэн хадгалалтын системээс нөөц систем рүү өгөгдлийг хуулбарлах явдал юм. Хадгалах системийн боломжоос хамааран синхрон эсвэл асинхрон. Асинхрон хуулбарлах үед Oracle-тай холбоотой өгөгдлийн нийцтэй байдлыг хангах асуулт нэн даруй гарч ирнэ. Хэдийгээр програмтай програм хангамжийн интеграцчлал байгаа ч гэсэн ямар ч тохиолдолд үндсэн санах ойн системд гэмтэл гарсан тохиолдолд кластерийг нөөц сан руу шилжүүлэхийн тулд администраторуудын гараар хөндлөнгөөс оролцох шаардлагатай болно.
Илүү төвөгтэй сонголт бол програм хангамж ба/эсвэл техник хангамжийн хадгалалтын "виртуалжуулагч" бөгөөд тогтвортой байдлын асуудал, гарын авлагын хөндлөнгийн оролцоог арилгах болно. Гэхдээ байршуулах, дараагийн удирдлагын нарийн төвөгтэй байдал, ийм шийдлүүдийн маш зохисгүй зардал нь олон хүнийг айлгадаг.
AccelStor NeoSapphire™ All Flash массивын шийдэл нь Cross-Rack гамшгийн нөхөн сэргээлт гэх мэт хувилбаруудад төгс тохирно.
Гэхдээ NeoSapphire™ H710-ийн гол онцлог нь хоёр зангилаа тусдаа кейс хэлбэрээр гүйцэтгэх явдал бөгөөд тус бүр нь өөрийн гэсэн мэдээллийн хуулбартай байдаг. Зангилааны синхрончлолыг гадаад InfiniBand интерфейсээр дамжуулан гүйцэтгэдэг. Энэхүү архитектурын ачаар зангилааг өөр өөр байршилд 100м хүртэлх зайд хуваарилах боломжтой бөгөөд ингэснээр Cross-Rack гамшгаас хамгаалах шийдлийг гаргаж өгдөг. Хоёр зангилаа бүрэн синхроноор ажилладаг. Хостын талаас H710 нь энгийн хос удирдлагатай хадгалах систем шиг харагдаж байна. Тиймээс нэмэлт програм хангамж, техник хангамжийн сонголтууд эсвэл ялангуяа нарийн төвөгтэй тохиргоог хийх шаардлагагүй болно.
Хэрэв бид дээр дурдсан Cross-Rack гамшгаас хамгаалах бүх шийдлүүдийг харьцуулж үзвэл AccelStor-ийн сонголт бусад зүйлсээс мэдэгдэхүйц ялгардаг.
AccelStor NeoSapphire ™ Архитектурыг юу ч хуваалцаагүй
Програм хангамж эсвэл техник хангамжийн "виртуалжуулагч" хадгалах систем
Хуулбар дээр суурилсан шийдэл
Бэлэн байдал
Серверийн алдаа
Сул зогсолтгүй
Сул зогсолтгүй
Сул зогсолтгүй
Шилжүүлгийн алдаа
Сул зогсолтгүй
Сул зогсолтгүй
Сул зогсолтгүй
Хадгалах системийн алдаа
Сул зогсолтгүй
Сул зогсолтгүй
Цаг хугацаа
Засгийн газрын бүхэл бүтэн доголдол
Сул зогсолтгүй
Сул зогсолтгүй
Цаг хугацаа
Зардал ба нарийн төвөгтэй байдал
Шийдлийн зардал
Бага*
Высокая
Высокая
Байршуулах нарийн төвөгтэй байдал
Бага байна
Высокая
Высокая
*AccelStor NeoSapphire™ нь All Flash массив хэвээр байгаа бөгөөд тодорхойлолтоороо "3 копейк"-ын үнэтэй биш, ялангуяа энэ нь давхар багтаамжтай нөөцтэй тул. Гэсэн хэдий ч үүн дээр суурилсан шийдлийн эцсийн өртөгийг бусад үйлдвэрлэгчдийн ижил төстэй шийдэлтэй харьцуулахдаа өртөг бага гэж үзэж болно.
Програмын серверүүд болон бүх Flash массивын зангилаануудыг холбох топологи дараах байдалтай байна.
Топологийг төлөвлөхдөө удирдлагын свичийг давхардуулж, серверүүдийг хооронд нь холбохыг зөвлөж байна.
Энд болон цаашдаа бид Fiber сувгаар холбогдох талаар ярих болно. Хэрэв та iSCSI ашигладаг бол бүх зүйл ижил байх бөгөөд ашигласан унтраалга, массивын тохиргоо бага зэрэг өөр байх болно.
Массив дээрх бэлтгэл ажил
Ашигласан тоног төхөөрөмж, программ хангамж
Сервер ба шилжүүлэгчийн үзүүлэлтүүд
Бүрэлдэхүүн хэсгүүд
Тайлбар
Oracle Database 11g серверүүд
Хоёр
Серверийн үйлдлийн систем
Oracle Линукс
Oracle мэдээллийн сангийн хувилбар
11г (RAC)
Нэг серверийн процессорууд
Хоёр 16 цөмт Intel® Xeon® CPU E5-2667 v2 @ 3.30GHz
Нэг серверийн физик санах ой
128GB
FC сүлжээ
Олон замтай 16Gb/s FC
FC HBA
Emulex Lpe-16002B
Кластер удирдахад зориулагдсан нийтийн 1GbE портууд
Intel Ethernet адаптер RJ45
16Gb/s FC шилжүүлэгч
Brocade 6505
Өгөгдлийг синхрончлоход зориулагдсан хувийн 10GbE портууд
Intel X520
AccelStor NeoSapphire™ Бүх флаш массивын тодорхойлолт
Бүрэлдэхүүн хэсгүүд
Тайлбар
Хадгалах систем
NeoSapphire™ өндөр хүртээмжтэй загвар: H710
Зургийн хувилбар
4.0.1
Драйверуудын нийт тоо
48
Драйвын хэмжээ
1.92TB
Драйвын төрөл
SSD
FC зорилтот портууд
16x 16Gb порт (нэг зангилаа бүрт 8)
Удирдлагын портууд
Ethernet шилжүүлэгчээр дамжуулан хостуудтай холбогддог 1GbE ethernet кабель
Зүрхний цохилтын порт
Хоёр хадгалах цэгийг холбодог 1GbE ethernet кабель
Өгөгдлийн синхрончлолын порт
56Gb/s InfiniBand кабель
Массив ашиглахын өмнө та үүнийг эхлүүлэх ёстой. Анхдагч байдлаар, хоёр зангилааны хяналтын хаяг ижил байна (192.168.1.1). Та тэдэнтэй нэг нэгээр нь холбогдож, шинэ (аль хэдийн өөр) удирдлагын хаягуудыг тохируулж, цагийн синхрончлолыг тохируулах хэрэгтэй бөгөөд үүний дараа Удирдлагын портуудыг нэг сүлжээнд холбож болно. Дараа нь Interlink холболтын дэд сүлжээг хуваарилах замаар зангилаануудыг HA хос болгон нэгтгэдэг.
Ажиллаж дууссаны дараа та массивыг дурын зангилаанаас удирдах боломжтой.
Дараа нь бид шаардлагатай эзлэхүүнийг үүсгэж, програмын серверт нийтэлдэг.
Oracle ASM-д зориулж олон боть үүсгэхийг зөвлөж байна, учир нь энэ нь серверүүдийн зорилтот тоог нэмэгдүүлэх бөгөөд энэ нь эцсийн дүндээ ерөнхий гүйцэтгэлийг сайжруулах болно (өөр нэг дэх дарааллын талаар илүү дэлгэрэнгүй)
Туршилтын тохиргоо
Хадгалалтын эзлэхүүний нэр
Эзлэхүүний хэмжээ
Мэдээлэл01
200GB
Мэдээлэл02
200GB
Мэдээлэл03
200GB
Мэдээлэл04
200GB
Мэдээлэл05
200GB
Мэдээлэл06
200GB
Мэдээлэл07
200GB
Мэдээлэл08
200GB
Мэдээлэл09
200GB
Мэдээлэл10
200GB
Сүлжээ 01
1GB
Сүлжээ 02
1GB
Сүлжээ 03
1GB
Сүлжээ 04
1GB
Сүлжээ 05
1GB
Сүлжээ 06
1GB
Дахин хий 01
100GB
Дахин хий 02
100GB
Дахин хий 03
100GB
Дахин хий 04
100GB
Дахин хий 05
100GB
Дахин хий 06
100GB
Дахин хий 07
100GB
Дахин хий 08
100GB
Дахин хий 09
100GB
Дахин хий 10
100GB
Массивын ажиллах горим, онцгой байдлын үед тохиолддог үйл явцын талаархи зарим тайлбар
Зангилаа бүрийн өгөгдлийн багц нь "хувилбарын дугаар" параметртэй байна. Анхны тохиргооны дараа энэ нь ижил бөгөөд 1-тэй тэнцүү байна. Хэрэв ямар нэг шалтгааны улмаас хувилбарын дугаар өөр байвал өгөгдлийг хуучин хувилбараас залуу хувилбар руу синхрончилж, дараа нь залуу хувилбарын дугаарыг зэрэгцүүлнэ, өөрөөр хэлбэл. Энэ нь хуулбарууд ижил байна гэсэн үг юм. Хувилбарууд өөр байж болох шалтгаанууд:
- Зангилааны аль нэгийг дахин ачаалах хуваарьтай
- Гэнэт унтрах (цахилгаан хангамж, хэт халалт гэх мэт) улмаас зангилааны нэг дээр осол гарсан.
- Синхрончлох боломжгүй InfiniBand холболт тасарсан
- Өгөгдлийн эвдрэлийн улмаас зангилааны аль нэгэнд гэмтэл гарсан. Энд та шинэ HA бүлэг үүсгэж, мэдээллийн багцыг бүрэн синхрончлох хэрэгтэй болно.
Ямар ч тохиолдолд онлайн хэвээр байгаа зангилаа нь хостой холболт сэргэсний дараа өгөгдлийн багцаа синхрончлохын тулд хувилбарын дугаараа нэгээр нэмэгдүүлдэг.
Хэрэв Ethernet холбоосоор холболт тасарсан бол Heartbeat түр хугацаанд InfiniBand руу шилжиж, сэргээгдэх үед 10 секундын дотор буцаж ирнэ.
Хостуудыг тохируулж байна
Гэмтлийг тэсвэрлэх, гүйцэтгэлийг сайжруулахын тулд массивын MPIO дэмжлэгийг идэвхжүүлэх ёстой. Үүнийг хийхийн тулд та /etc/multipath.conf файлд мөр нэмж, олон замт үйлчилгээг дахин эхлүүлэх хэрэгтэй.
Нуугдсан тексттөхөөрөмжүүд {
төхөөрөмж {
борлуулагч "AStor"
зам_бүлэглэх_бодлого "бүлэглэлээр_prio"
path_selector "дарааллын урт 0"
зам шалгагч "тур"
онцлог "0"
техник хангамжийн_харуулагч "0"
prio "const"
шууд буцаах
fast_io_fail_tmo 5
dev_loss_tmo 60
хэрэглэгчдэд ээлтэй_нэр тийм
илрүүлэх_prio тийм
rr_min_io_rq 1
зам_дахин_оролдохгүй 0
}
}
Дараа нь ASM нь ASMLib-ээр дамжуулан MPIO-тэй ажиллахын тулд та /etc/sysconfig/oracleasm файлыг өөрчилж, дараа нь /etc/init.d/oracleasm скан дискүүдийг ажиллуулах хэрэгтэй.
Нуугдсан текст
# ORACLEASM_SCANORDER: Диск сканнердах захиалгад тохирсон загварууд
ORACLEASM_SCANORDER = "dm"
# ORACLEASM_SCANEXCLUDE: Дискийг скан хийхээс хасахын тулд тохирох загварууд
ORACLEASM_SCANEXCLUDE="sd"
тайлбар
Хэрэв та ASMLib-ийг ашиглахыг хүсэхгүй байгаа бол ASMLib-ийн үндэс болсон UDEV дүрмийг ашиглаж болно.
Oracle мэдээллийн сангийн 12.1.0.2 хувилбараас эхлэн уг сонголтыг ASMFD програм хангамжийн нэг хэсэг болгон суулгах боломжтой.
Oracle ASM-д зориулж бүтээсэн дискүүд нь массивын физикийн хувьд (4K) ажилладаг блокийн хэмжээтэй нийцэж байгаа эсэхийг баталгаажуулах нь чухал юм. Үгүй бол гүйцэтгэлийн асуудал гарч болзошгүй. Тиймээс тохирох параметр бүхий эзлэхүүнийг бий болгох шаардлагатай.
parted /dev/mapper/device-name mklabel gpt mkpart main 2048s 100% align-check оновчтой 1
Бидний туршилтын тохиргоонд зориулж үүсгэсэн боть дээр өгөгдлийн сангийн хуваарилалт
Хадгалалтын эзлэхүүний нэр
Эзлэхүүний хэмжээ
LUN-ийн эзлэхүүний зураглал
ASM дууны төхөөрөмжийн дэлгэрэнгүй
Хуваарилалтын нэгжийн хэмжээ
Мэдээлэл01
200GB
Хадгалалтын бүх эзлэхүүнийг хадгалах системийн бүх өгөгдлийн порттой харьцуулна уу
Илүүдэл: хэвийн
Нэр: DGDATA
Зорилго: Өгөгдлийн файлууд
4MB
Мэдээлэл02
200GB
Мэдээлэл03
200GB
Мэдээлэл04
200GB
Мэдээлэл05
200GB
Мэдээлэл06
200GB
Мэдээлэл07
200GB
Мэдээлэл08
200GB
Мэдээлэл09
200GB
Мэдээлэл10
200GB
Сүлжээ 01
1GB
Илүүдэл: хэвийн
Нэр: DGGRID1
Зорилго:Сүлжээ: CRS ба санал хураалт
4MB
Сүлжээ 02
1GB
Сүлжээ 03
1GB
Сүлжээ 04
1GB
Илүүдэл: хэвийн
Нэр: DGGRID2
Зорилго:Сүлжээ: CRS ба санал хураалт
4MB
Сүлжээ 05
1GB
Сүлжээ 06
1GB
Дахин хий 01
100GB
Илүүдэл: хэвийн
Нэр: DGREDO1
Зорилго: 1-р хэлхээний бүртгэлийг дахин хийх
4MB
Дахин хий 02
100GB
Дахин хий 03
100GB
Дахин хий 04
100GB
Дахин хий 05
100GB
Дахин хий 06
100GB
Илүүдэл: хэвийн
Нэр: DGREDO2
Зорилго: 2-р хэлхээний бүртгэлийг дахин хийх
4MB
Дахин хий 07
100GB
Дахин хий 08
100GB
Дахин хий 09
100GB
Дахин хий 10
100GB
Өгөгдлийн сангийн тохиргоо
- Блокны хэмжээ = 8K
- Солих зай = 16 ГБ
- AMM (санах ойн автомат удирдлага)-г идэвхгүй болгох
- Ил тод том хуудсыг идэвхгүй болгох
Бусад тохиргоо
# vi /etc/sysctl.conf
✓ fs.aio-max-nr = 1048576
✓ fs.file-max = 6815744
✓ kernel.shmmax 103079215104
✓ kernel.shmal 31457280
✓ kernel.shmmn 4096
✓ kernel.sem = 250 32000 100 128
✓ net.ipv4.ip_local_port_range = 9000 65500
✓ net.core.rmem_default = 262144
✓ net.core.rmem_max = 4194304
✓ net.core.wmem_default = 262144
✓ net.core.wmem_max = 1048586
✓vm.swappiness=10
✓ vm.min_free_kbytes=524288 # Хэрэв та Linux x86 ашиглаж байгаа бол үүнийг бүү тохируул
✓ vm.vfs_cache_pressure=200
✓ vm.nr_hugepages = 57000
# vi /etc/security/limits.conf
✓ зөөлөн сүлжээ nproc 2047
✓ сүлжээ хатуу nproc 16384
✓ сүлжээ зөөлөн nofile 1024
✓ grid hard nofile 65536
✓ тор зөөлөн стек 10240
✓ сүлжээний хатуу стек 32768
✓ oracle soft nproc 2047
✓ oracle hard nproc 16384
✓ oracle soft nofile 1024
✓ oracle hard nofile 65536
✓ oracle зөөлөн стек 10240
✓ oracle хатуу стек 32768
✓ зөөлөн memlock 120795954
✓ hard memlock 120795954
sqlplus "/ sysdba байдлаар"
системийн багц процессыг өөрчлөх=2000 хамрах хүрээ=spfile;
системийн багцыг өөрчлөх open_cursors=2000 хамрах хүрээ=spfile;
системийн багцыг өөрчлөх session_cached_cursors=300 scope=spfile;
системийн багцыг өөрчлөх db_files=8192 хамрах хүрээ=spfile;
Амжилтгүй байдлын тест
Үзүүлэх зорилгоор HammerDB-ийг OLTP ачааллыг дуурайхад ашигласан. HammerDB тохиргоо:
Агуулахын тоо
256
Хэрэглэгчийн нийт гүйлгээ
1000000000000
Виртуал хэрэглэгчид
256
Үр дүн нь 2.1M TPM болсон бөгөөд энэ нь массивын гүйцэтгэлийн хязгаараас хол байна
Зангилааны аль нэгний эвдрэлийг шалгах
Хостууд хадгалалтын замуудын нэг хэсгийг алдаж, үлдсэн хэсгийг нь хоёр дахь зангилаагаар үргэлжлүүлэн ажиллуулав. Замуудыг сэргээн засварлаж байгаатай холбоотойгоор гүйцэтгэл хэдхэн секундын турш буурч, дараа нь хэвийн байдалдаа орсон. Үйлчилгээнд ямар нэгэн саатал гарсангүй.
Бүх тоног төхөөрөмжтэй кабинетийн эвдрэлийн туршилт
Энэ тохиолдолд замуудын бүтцийн өөрчлөлтөөс болж гүйцэтгэл хэдхэн секундын турш буурч, дараа нь анхны утгын тал руу буцсан. Нэг програмын серверийг ажиллуулахгүй болсны улмаас үр дүн нь эхнийхээсээ хоёр дахин буурсан байна. Мөн үйлчилгээ тасалдсангүй.
Хэрэв Oracle-д боломжийн үнээр, бага зэрэг байршуулах/захиргааны хүчин чармайлтаар гэмтэлд тэсвэртэй Cross-Rack гамшгаас хамгаалах шийдлийг хэрэгжүүлэх шаардлагатай бол Oracle RAC болон архитектур хамтран ажилладаг.
AccelStor Shared-Юу ч биш хамгийн сайн сонголтуудын нэг байх болно. Oracle RAC-ийн оронд кластер, ижил DBMS эсвэл виртуалчлалын системийг хангадаг өөр ямар ч програм хангамж байж болно. Шийдлийг бүтээх зарчим нь хэвээр байх болно. Мөн доод шугам нь RTO болон RPO-ийн хувьд тэг байна.
Эх сурвалж: www.habr.com