Oracle Fencing driver, Інші СУБД, Бази даних, статті








Автор: Дмитро Волков, Oracle СНД


Fencing – це механізм виключення “пошкодженого” вузла з кластера. Fencing не оминаємо тому, що не можна відрізнити збій вузла від пошкодження інтерконекту / SAN. Fencing, таким чином гарантує, що вузол не може виконати I / O і пошкодити дані.


Якщо вузол не оновлює інформацію в voting disk або не відповідає за interconnect протягом timeout, виникає потенційно ситуація (split brain), коли вузли кластера почнуть неузгоджено модифіковані дані. Більш точно, вузли кожну секунду пишуть в voting файл і також кожну секунду читають kill block.

Починаючи з 10gR2 існують 3 параметра (Note: 284752.1):

reboottime disktimeout misscount

Управляти цими параметрами можна за допомогою $ CRS_HOME / bin / crsctl get / set css


Однак необхідно пам’ятати, що “Customers should not modify CSS settings unless guided by either Oracle support or Oracle development to do so”

Для здійснення голосування кожен вузол повинен мати доступ як мінімум до N / 2 +1 Voting disk, де N – число voting disks. Наприклад якщо налаштоване 5 voting disks, в будь-який момент часу має бути доступно не менше 3-х.

Для запобігання цій ситуації, існує алгоритм, який виділяє подкластера, і подкластера з меншою кількістю вузлів повинен покинути кластер. Для двуузлового кластера, виживає вузол з меншим номером.

Для виконання fencing Oracle використовує алгоритм STONITH. Oracle Clusterware реалізує даний алгоритм посилаючи вузлу команду “Самогубства” (commit suicide), і вузол виконує перезавантаження. У нижченаведеної таблиці описаний алгоритм виклику STONITH.


 























Network Ping


Disk Ping


Reboot


Completes within misscount seconds


Completes within Misscount seconds

N


Completes within Misscount seconds


Takes more than misscount seconds but less than Disktimeout seconds

N


Completes within Misscount seconds


Takes more than Disktimeout seconds

Y


Takes more than Misscount Seconds


Completes within Misscount seconds

Y


Треба відзначити, що деякі інші вендори (я точно знаю про Veritas) використовують для fencing інструкції scsi persistent reservation (набір команд SCSI3). У це випадку вузли “голосують” через цей набір команд, хто з них повинен “померти”. У цього підходу є і переваги і недоліки. Недолік – диск повинен підтримувати scsi3, гідність – такий fencing драйвер працює в kernel mode, таким чином гарантуючи, що I / O команди не пройдуть.

Fencing драйвер Oracle навпаки працює в user mode, але цілісність даних додатково гарантується внутрішніми механізмами RAC.

І я сподіваюся, що після вищесказаного, зрозуміло, що для запобігання reboot вузлів усе обладнання (мережеві карти, SAN адаптери, SAN switch) має бути дубльовано та необхідні драйвера встановлені в ОС.

 

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*