Oracle RAC және AccelStor Shared-Nothing архитектурасына негізделген қатеге төзімді шешім құру

Кәсіпорындық қосымшалардың және виртуалдандыру жүйелерінің едәуір саны ақауларға төзімді шешімдерді құрудың өз механизмдері бар. Атап айтқанда, Oracle RAC (Oracle Real Application Cluster) – жүкті теңестіру және сервер/бағдарлама деңгейінде ақауларға төзімділікті қамтамасыз ету үшін бірге жұмыс істейтін екі немесе одан да көп Oracle дерекқор серверлерінің кластері. Бұл режимде жұмыс істеу үшін әдетте сақтау жүйесі болып табылатын ортақ сақтау орны қажет.

Біз бірінде талқылағанымыздай мақалалар, сақтау жүйесінің өзі қайталанатын құрамдас бөліктердің (контроллерлерді қоса) болуына қарамастан, әлі де істен шығу нүктелеріне ие - негізінен деректердің бір жиынтығы түрінде. Сондықтан, жоғары сенімділік талаптары бар Oracle шешімін құру үшін «N сервер – бір сақтау жүйесі» схемасы күрделі болуы керек.

Oracle RAC және AccelStor Shared-Nothing архитектурасына негізделген қатеге төзімді шешім құру

Біріншіден, біз қандай тәуекелдерден сақтандыруға тырысатынымызды шешуіміз керек. Бұл мақалада біз «метеорит келді» сияқты қауіптерден қорғауды қарастырмаймыз. Сонымен, географиялық дисперсті апатты қалпына келтіру шешімін құру келесі мақалалардың бірінің тақырыбы болып қала береді. Мұнда қорғаныс серверлік шкафтар деңгейінде салынған кезде Cross-Rack апатты қалпына келтіру шешімін қарастырамыз. Шкафтардың өзі бір бөлмеде немесе әртүрлі болуы мүмкін, бірақ әдетте бір ғимарат ішінде.

Бұл шкафтарда «көршінің» күйіне қарамастан Oracle дерекқорларының жұмыс істеуіне мүмкіндік беретін жабдықтар мен бағдарламалық қамтамасыз етудің барлық қажетті жиынтығы болуы керек. Басқаша айтқанда, Cross-Rack апатты қалпына келтіру шешімін пайдалана отырып, біз сәтсіздік қаупін жоямыз:

  • Oracle қолданбалы серверлері
  • Сақтау жүйесі
  • Коммутация жүйелері
  • Шкафтағы барлық жабдықтың толық істен шығуы:
    • Қуаттан бас тарту
    • Салқындату жүйесінің ақауы
    • Сыртқы факторлар (адам, табиғат, т.

Oracle серверлерінің қайталануы Oracle RAC жұмыс принципін білдіреді және қолданба арқылы жүзеге асырылады. Коммутациялық қондырғылардың қайталануы да проблема емес. Бірақ сақтау жүйесінің қайталануымен бәрі оңай емес.

Ең қарапайым нұсқа - деректерді негізгі сақтау жүйесінен сақтық көшірмеге көшіру. Сақтау жүйесінің мүмкіндіктеріне байланысты синхронды немесе асинхронды. Асинхронды репликация кезінде бірден Oracle-ға қатысты деректердің сәйкестігін қамтамасыз ету мәселесі туындайды. Бірақ қолданбамен бағдарламалық қамтамасыз ету интеграциясы болса да, кез келген жағдайда негізгі сақтау жүйесінде ақаулық орын алса, кластерді резервтік сақтауға ауыстыру үшін әкімшілердің қолмен араласуы қажет болады.

Неғұрлым күрделі опция бағдарламалық және/немесе аппараттық сақтау «виртуализаторлары» болып табылады, олар жүйелілік мәселелерін және қолмен араласуды жояды. Бірақ орналастырудың және кейінгі басқарудың күрделілігі, сондай-ақ мұндай шешімдердің өте әдепсіз құны көптеген адамдарды қорқытады.

AccelStor NeoSapphire™ All Flash массивінің шешімі Cross-Rack апатты қалпына келтіру сияқты сценарийлер үшін өте қолайлы. H710 Shared-Nothing архитектурасын пайдалану. Бұл модель флэш-дискілермен жұмыс істеу үшін меншікті FlexiRemap® технологиясын пайдаланатын екі түйінді сақтау жүйесі болып табылады. Рахмет FlexiRemap® NeoSapphire™ H710 600K IOPS@4K кездейсоқ жазуға және 1M+ IOPS@4K кездейсоқ оқуға дейін өнімділікті қамтамасыз ете алады, бұл классикалық RAID негізіндегі сақтау жүйелерін пайдаланғанда қолжетімсіз.

Бірақ NeoSapphire™ H710 басты ерекшелігі - әрқайсысында деректердің жеке көшірмесі бар жеке істер түріндегі екі түйіннің орындалуы. Түйіндерді синхрондау сыртқы InfiniBand интерфейсі арқылы жүзеге асырылады. Осы архитектураның арқасында түйіндерді 100 м-ге дейінгі қашықтықта әртүрлі орындарға таратуға болады, осылайша Cross-Rack апатты қалпына келтіру шешімін қамтамасыз етеді. Екі түйін де толығымен синхронды түрде жұмыс істейді. Хост жағынан H710 қарапайым қос контроллерлі сақтау жүйесіне ұқсайды. Сондықтан кез келген қосымша бағдарламалық құрал немесе аппараттық құрал опцияларын немесе ерекше күрделі параметрлерді орындаудың қажеті жоқ.

Жоғарыда сипатталған барлық Cross-Rack апатты қалпына келтіру шешімдерін салыстырсақ, AccelStor опциясы қалғандарынан айтарлықтай ерекшеленеді:

AccelStor NeoSapphire™ Ештеңе архитектурасын бөліспейді
Бағдарламалық қамтамасыз ету немесе аппараттық «виртуализатор» сақтау жүйесі
Репликацияға негізделген шешім

Қол жетімділік

Сервер ақаулығы
Үзіліс жоқ
Үзіліс жоқ
Үзіліс жоқ

Ауыстыру сәтсіздігі
Үзіліс жоқ
Үзіліс жоқ
Үзіліс жоқ

Сақтау жүйесінің ақауы
Үзіліс жоқ
Үзіліс жоқ
Олқылықты

Кабинеттің толық істен шығуы
Үзіліс жоқ
Үзіліс жоқ
Олқылықты

Құны және күрделілігі

Шешім құны
Төмен*
Жоғары
Жоғары

Орналастыру күрделілігі
Төмен
Жоғары
Жоғары

*AccelStor NeoSapphire™ әлі де All Flash массиві болып табылады, оның анықтамасы бойынша «3 тиын» тұрмайды, әсіресе оның екі есе сыйымдылық қоры болғандықтан. Дегенмен, оған негізделген шешімнің түпкілікті құнын басқа жеткізушілердің ұқсастарымен салыстырған кезде, құны төмен деп санауға болады.

Бағдарлама серверлерін және барлық Flash жиым түйіндерін қосу топологиясы келесідей болады:

Oracle RAC және AccelStor Shared-Nothing архитектурасына негізделген қатеге төзімді шешім құру

Топологияны жоспарлау кезінде басқару қосқыштарын қайталау және серверлерді өзара қосу өте ұсынылады.

Мұнда және одан әрі біз талшықты арна арқылы қосылу туралы айтатын боламыз. Егер сіз iSCSI қолдансаңыз, барлығы бірдей болады, пайдаланылатын қосқыштар түрлеріне және аздап басқа массив параметрлеріне реттеледі.

Массив бойынша дайындық жұмыстары

Қолданылатын жабдық және бағдарламалық қамтамасыз ету

Сервер мен коммутатордың техникалық сипаттамалары

Құрамдастар
сипаттамасы

Oracle Database 11g серверлері
Два

Сервердің операциялық жүйесі
Oracle Linux

Oracle дерекқор нұсқасы
11 г (RAC)

Әр серверге арналған процессорлар
Екі 16 ядролы Intel® Xeon® CPU E5-2667 v2 @ 3.30 ГГц

Әр серверге физикалық жады
128GB

FC желісі
16 Гб/с көп жолды FC

FC HBA
Emulex Lpe-16002B

Кластерді басқаруға арналған арнайы жалпыға ортақ 1GbE порттары
Intel Ethernet адаптері RJ45

16 Гб/с FC қосқышы
6505

Деректерді синхрондау үшін арнайы жеке 10GbE порттары
Intel X520

AccelStor NeoSapphire™ барлық Flash массивінің сипаттамасы

Құрамдастар
сипаттамасы

Сақтау жүйесі
NeoSapphire™ қол жетімділігі жоғары үлгі: H710

Кескін нұсқасы
4.0.1

Жетектердің жалпы саны
48

Драйвер өлшемі
1.92TB

Диск түрі
SSD

FC мақсатты порттары
16x 16Gb порттары (әр түйінге 8)

Басқару порттары
Ethernet қосқышы арқылы хосттарға қосылатын 1GbE ethernet кабелі

Жүрек соғу порты
Екі сақтау түйіні арасында қосылатын 1 Гб Ethernet кабелі

Деректерді синхрондау порты
56 Гб/с InfiniBand кабелі

Жиымды пайдаланбас бұрын оны инициализациялау керек. Әдепкі бойынша, екі түйіннің басқару мекенжайы бірдей (192.168.1.1). Оларға бір-бірлеп қосылып, жаңа (қазірдің өзінде басқа) басқару мекенжайларын орнату және уақыт синхрондауды орнату қажет, содан кейін Басқару порттарын бір желіге қосуға болады. Содан кейін Interlink қосылымдары үшін ішкі желілерді тағайындау арқылы түйіндер HA жұбына біріктіріледі.

Oracle RAC және AccelStor Shared-Nothing архитектурасына негізделген қатеге төзімді шешім құру

Баптандыру аяқталғаннан кейін массивді кез келген түйіннен басқаруға болады.

Содан кейін біз қажетті томдарды жасаймыз және оларды қолданбалы серверлерге жариялаймыз.

Oracle RAC және AccelStor Shared-Nothing архитектурасына негізделген қатеге төзімді шешім құру

Oracle ASM үшін бірнеше том жасау ұсынылады, өйткені бұл серверлердің мақсатты санын көбейтеді, бұл сайып келгенде жалпы өнімділікті жақсартады (басқасында кезектер туралы толығырақ). мақала).

Сынақ конфигурациясы

Сақтау көлемінің атауы
Көлемі

Деректер01
200GB

Деректер02
200GB

Деректер03
200GB

Деректер04
200GB

Деректер05
200GB

Деректер06
200GB

Деректер07
200GB

Деректер08
200GB

Деректер09
200GB

Деректер10
200GB

Grid01
1GB

Grid02
1GB

Grid03
1GB

Grid04
1GB

Grid05
1GB

Grid06
1GB

Қайталау01
100GB

Қайталау02
100GB

Қайталау03
100GB

Қайталау04
100GB

Қайталау05
100GB

Қайталау06
100GB

Қайталау07
100GB

Қайталау08
100GB

Қайталау09
100GB

Қайталау10
100GB

Массивтің жұмыс режимдері және төтенше жағдайларда болатын процестер туралы кейбір түсініктемелер

Oracle RAC және AccelStor Shared-Nothing архитектурасына негізделген қатеге төзімді шешім құру

Әрбір түйіннің деректер жиынында «нұсқа нөмірі» параметрі бар. Бастапқы инициализациядан кейін ол бірдей және 1-ге тең. Егер қандай да бір себептермен нұсқа нөмірі әртүрлі болса, онда деректер әрқашан ескі нұсқадан кіші нұсқаға синхрондалады, содан кейін кіші нұсқаның нөмірі тураланады, яғни. бұл көшірмелердің бірдей екенін білдіреді. Нұсқалардың әртүрлі болуының себептері:

  • Түйіндердің бірін жоспарлы қайта жүктеу
  • Тораптардың бірінде кенеттен өшіру салдарынан болған апат (қуат көзі, қызып кету және т.б.).
  • Синхрондау мүмкін болмағандықтан InfiniBand қосылымы жоғалды
  • Деректердің бүлінуіне байланысты түйіндердің бірінде апат. Мұнда сізге жаңа HA тобын құру және деректер жиынын синхрондауды аяқтау қажет.

Кез келген жағдайда желіде қалатын түйін жұппен байланыс қалпына келтірілгеннен кейін деректер жинағын синхрондау үшін нұсқа нөмірін бір көбейтеді.

Ethernet байланысы арқылы байланыс жоғалса, Heartbeat уақытша InfiniBand параметріне ауысады және ол қалпына келтірілгенде 10 секунд ішінде қайта оралады.

Хосттарды орнату

Ақауларға төзімділікті қамтамасыз ету және өнімділікті жақсарту үшін массив үшін MPIO қолдауын қосу керек. Ол үшін /etc/multipath.conf файлына жолдарды қосып, көп жолды қызметті қайта іске қосу керек.

Жасырын мәтінқұрылғылар {
құрылғы {
сатушы "AStor"
path_grouping_policy "group_by_prio"
path_selector "кезектің ұзындығы 0"
path_checker "tur"
"0" мүмкіндіктері
аппараттық_өңдеуіш "0"
prio "const"
дереу істен шығу
fast_io_fail_tmo 5
dev_loss_tmo 60
user_friendly_names иә
detect_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/құрылғы аты mklabel gpt mkpart бастапқы 2048s 100% туралау-тексеру оңтайлы 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

Grid01
1GB
Артықшылық: қалыпты
Атауы: DGGRID1
Мақсаты: Тор: CRS және дауыс беру

4MB

Grid02
1GB

Grid03
1GB

Grid04
1GB
Артықшылық: қалыпты
Атауы: DGGRID2
Мақсаты: Тор: CRS және дауыс беру

4MB

Grid05
1GB

Grid06
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

Деректер базасының параметрлері

  • Блок өлшемі = 8К
  • Своп кеңістігі = 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
✓ қатты нофайл торы 65536
✓ тор жұмсақ стек 10240
✓ тордың қатты стекі 32768
✓ oracle soft nproc 2047
✓ oracle hard nproc 16384
✓ oracle soft nofile 1024
✓ oracle hard nofile 65536
✓ oracle жұмсақ стек 10240
✓ oracle қатты стек 32768
✓ жұмсақ мемлок 120795954
✓ hard memlock 120795954

sqlplus “/sysdba ретінде”
жүйе жиынының процестерін өзгерту = 2000 ауқым = spfile;
жүйе жинағын өзгерту open_cursors=2000 scope=spfile;
жүйе жиынын өзгерту session_cached_cursors=300 scope=spfile;
жүйе жинағын өзгерту db_files=8192 scope=spfile;

Сәтсіздік сынағы

Демонстрациялық мақсаттар үшін HammerDB OLTP жүктемесін эмуляциялау үшін пайдаланылды. HammerDB конфигурациясы:

Қоймалар саны
256

Бір пайдаланушыға шаққандағы жалпы транзакциялар
1000000000000

Виртуалды пайдаланушылар
256

Нәтиже 2.1М TPM болды, бұл массивтің өнімділік шегінен алыс H710, бірақ серверлердің ағымдағы аппараттық конфигурациясына (ең алдымен процессорларға байланысты) және олардың санына арналған «төбе» болып табылады. Бұл сынақтың мақсаты әлі де максималды өнімділікке жету емес, жалпы шешімнің ақауларға төзімділігін көрсету болып табылады. Сондықтан біз жай ғана осы көрсеткішке сүйенеміз.

Oracle RAC және AccelStor Shared-Nothing архитектурасына негізделген қатеге төзімді шешім құру

Түйіндердің біреуінің істен шығуын тексеру

Oracle RAC және AccelStor Shared-Nothing архитектурасына негізделген қатеге төзімді шешім құру

Oracle RAC және AccelStor Shared-Nothing архитектурасына негізделген қатеге төзімді шешім құру

Хосттар екінші түйінмен қалғандары арқылы жұмыс істеуді жалғастыра отырып, сақтауға апаратын жолдардың бір бөлігін жоғалтты. Жолдардың қайта құрылуына байланысты өнімділік бірнеше секундқа төмендеді, содан кейін қалыпты жағдайға оралды. Қызмет көрсетуде үзіліс болған жоқ.

Барлық жабдықпен шкафтың істен шығуын тексеру

Oracle RAC және AccelStor Shared-Nothing архитектурасына негізделген қатеге төзімді шешім құру

Oracle RAC және AccelStor Shared-Nothing архитектурасына негізделген қатеге төзімді шешім құру

Бұл жағдайда жолдарды қайта құрылымдауға байланысты өнімділік те бірнеше секундқа төмендеді, содан кейін бастапқы мәннің жартысына қайтарылды. Бір қолданба серверінің жұмыстан шығарылуына байланысты нәтиже бастапқыдан екі есеге қысқарды. Қызмет көрсетуде де үзіліс болған жоқ.

Егер Oracle үшін ақылға қонымды бағамен және аз орналастыру/басқару күш-жігерімен ақауларға төзімді Cross-Rack апатты қалпына келтіру шешімін енгізу қажеттілігі туындаса, Oracle RAC және архитектурасы бірге жұмыс істейді. AccelStor ортақ - ештеңе жоқ ең жақсы нұсқалардың бірі болады. Oracle RAC орнына кластерлеуді қамтамасыз ететін кез келген басқа бағдарламалық жасақтама болуы мүмкін, мысалы, сол ДҚБЖ немесе виртуализация жүйелері. Шешімді құрастыру принципі өзгеріссіз қалады. Ал төменгі сызық RTO және RPO үшін нөлге тең.

Ақпарат көзі: www.habr.com

пікір қалдыру