Man:Man5/drbd.conf.5

Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.

(Перенаправлено з Man/man5/drbd.conf.5)
Перейти до: навігація, пошук

DRBD - кластер дисків (v 0.7.* переклад: бета версія)


Зміст

ІМ'Я

drbd.conf - Конфігураційний файл для пристроїв DRBD.

ВСТУП

Файл /etc/drbd.conf використовується програмами /etc/init.d/drbd та /etc/ha.d/resource.d/drbddisk котрі є частиною пакету DRBD.

Формат файлу розроблений так, що дозволяє нам мати ідентичні копії файлу на обох вузлах кластеру. Настирливо рекомендується цим скористатись для забезпечення нормального управління конфігурацією. Файл /etc/drbd.conf повинен бути однаковий на обох вузлах кластеру. Зміни в /etc/drbd.conf не вступають в силу негайно.

Маленький приклад файлу /etc/drbd.conf

  resource drbd0 {
      protocol C;
      incon-degr-cmd "halt -f";
  
     on primarydhcp {
          device    /dev/drbd1;
          disk      /dev/hda7;
          address   10.0.0.10:7789;
          meta-disk  internal;
      }

      on secondarydhcp {
          device    /dev/drbd1;
          disk      /dev/hda7;
          address   10.0.0.11:7789;
          meta-disk  internal;
      }
   }

В цьому прикладі є тільки один ресурс DRBD (названий drbd0) котрий використовує протокол C для зв'язку між його пристроями. Пристрій, що працює на вузлі primarydhcp використовує /dev/drbd1 як блочний пристрій для своїх програм, і /dev/hda7 як низькорівневий масив збереження даних. IP адрес використовується для вказання мережевого з'єднання.

Можна визначати багато розділів з ресурсами в одному файлі drbd.conf.

СТРУКТУРА ФАЙЛУ

Файл складається з розділів і параметрів. Розділ починається з ключового слова, часом з додаткового імені та відкриває дужки (``{``). Розділ закінчується закриванням дужки (``}``). Між дужками містяться параметри.

section [name] { parameter value; [...] }

Параметри починаються з імені параметру відділеного від значення пробілом. Кожний символ, що слідує за пробілом вважається частиною значення параметру. Виключенням є логічний (Boolean) параметр котрий містить тільки ідентифікатор. Параметр закінчується символом крапка з комою (``;``).

Деякі значення параметру мають визначені символи: K, M or G. котрі визначаються у звичний спосіб (K = 2^10 = 1024, M = 1024 K, G = 1024 M).

Файл може містити коментарі, які мусять починатись з (``#``). Після символу (``#``) дані ігноруються до кінця стрічки.

РОЗДІЛИ

skip 
Коментує текстове сміття, якщо воно навіть займає більш ніж одну стрічку. Символи між ключовим словом skip та відкритою дужкою (``{``) ігноруються. Все поміщене між дужки пропускається. Це допомагає коментувати цілі розділи:
 skip {
            resource [name] {...} 
         }

просто помістивши їх між дужки skip.

global 
Вказує деякі глобальні параметри. Поки що дозволеними є minor-count, dialog-refresh та disable-io-hints. Можна використовувати тільки один розділ global, бажано самий перший.
resource name
Визначає сам ресурс DRBD. Кожний розділ, визначаючий ресурс, мусить містити дві секції "on ім'я-вузла" і може мати також секції startup, syncer, net та disk. Обов'язковим параметром розділу є protocol. Не обов'язковим: incon-degr-cmd.
on host-name
Поєднує необхідні параметри конфіґурації DRBD пристрою для включених ресурсів. host-name є обов'язковим і мусить відповідати імені Лінукс компа (uname -n) одного з вузлів. Обов'язковими параметрами секції є: device, disk, address, meta-disk.
disk
Цей розділ використовується для оптимізації DRBD пристроїв, а саме властивостей пов'язаних з низькорівневим обладнанням. Для детальної інформації про параметри читайте drbdsetup(8). Необов'язковим параметром є: on-io-error.
net
Розділ використовують для оптимізації мережевих властивостей DRBD. Для детальної інформації про параметри читайте drbdsetup(8). Необов'язковими параметрами є: sndbuf-size, timeout, connect-int, ping-int, max-buffers, max-epoch-size, ko-count, on-disconnect.
startup
Розділ використовують для оптимізації властивостей запуску DRBD. Для детальної інформації про параметри читайте drbdsetup(8). Необов'язковими параметрами є: wfc-timeout, degr-wfc-timeout.
syncer
Розділ використовують для оптимізації пристрою синхронізаційного сервісу. Для детальної інформації про параметри читайте drbdsetup(8). Необов'язковими параметрами є: rate, group, al-extents.

ПАРАМЕТРИ

minor-count count 
count може бути числом від 1 до 255.

Використовуйте minor-count, якщо бажаєте визначити більше ресурсів потім без перевантаження DRBD модуля ядра. По замовчуванню модуль вантажиться стільки раз скільки пристроїв визначено в конфігураційному файлі. По замовчуванню модуль збирається з 2, а монолітне ядро з 8. Для монолітного ядра параметр minor-count ігнорується, для зміни потрібно вказати параметр завантаження ядра drbd.minor_count=count.
dialog-refresh time 
час може бути >=0

Час в секундах і кількість разів скільки виводиться користувацьке застереження (не виводиться коли 0). По замовчуванню 1.
disable-io-hints 
Використовуйте disable-io-hints якщо бажаєте встановити DRBD пристрій через зворотню петлю, чи між двома віртуальними серверами на одній машині, для тестування чи презентації. Не потрібна з ядром 2.6.*
protocol prot-id 
По верх TCP/IP використовується спеціальний протокол. Допустимі протоколи: A, В, та C.

Протокол А: операція запису вважається завершеною, якщо дані досягли локального диску та локальної вихідної черги tcp.

Протокол В: операція запису вважається завершеною, якщо дані досягли локального диску та віддаленого буферу.

Протокол С: операція запису вважається завершеною, якщо дані досягли обох, локального та віддаленого, дисків.
incon-degr-cmd command
У випадку коли при включенні вузла він вантажиться у виродженому режимі (inittimeout включений) і якщо локальна реплікація даних не є повна, запускається command. Якщо команда виконується без помилок drbddisk вважає що DRBD пристрій є в основному стані (primary).
device name 
Ім'я блочного пристрою вузла, що описується в розділі resource. Ви мусите використовувати саме цей пристрій для роботи з програмами (файловими системами) і ніколи не використовуйте низькорівневий блочний пристрій котрий вказаний з параметром disk.

Пристрій вузла мусить мати той самий головний номер, як і пристрій DRBD. В поточній реалізації використовується головний номер 147 і відповідні пристрої вузла називають /dev/drbd0, /dev/drbd1,...

При встановлені DRBD пакету скрипт створює /dev/drbd0 ... /dev/drbd8. Для переконання пошукайте за /dev/drbd*.
disk name 
DRBD використовує цей пристрій для запису та зчитування даних. НІКОЛИ не користуйтесь цим пристроєм коли поверх нього працює DRBD. Це також відноситься до dumpe2fs(8) та подібних команд.
address IP:port 
ресурс потребує вказати по парі IP:port адрес на кожний пристрій, котрий використовується для очікування вхідного зв'язку від пристрою іншого вузла, для встановлення з ним зв'язку.

Кожний DRBD ресурс потребує TCP порт котрий використовують для зв'язку з пристроєм партнерського вузла. Два різні DRBD ресурси не можуть використовувати ту саму пару IP:port на одному вузлі.
meta-disk internal 
meta-disk device [index] 
internal означає що останні 128 MB низькорівневого пристрою використовуються для службових даних. Не можна використовувати [index] разом з internal.

Можна використовувати єдиний блочний пристрій для зберігання службових даних багатьох DRBD пристроїв. Тобто використовуйте meta-disk /dev/hde6[0]; та meta-disk /dev/hde6[1]; для двох різних ресурсів. В цьому випадку мінімальний розмір для meta-disk мусить бути 256 MB.
on-io-error handler 
handler включається, коли низькорівневий пристрій посилає помилку зчитування/запису на верхній рівень.

handler може бути : pass_on, panic, чи detach.

pass_on: Повідомляє помилку зчитування/запису на верхній рівень. На основному вузлі повідомляє примонтовану файлову систему. На другорядному ігнорує.

panic: Вузол залишає кластер створюючи паніку ядра.

detach: Вузол ігнорує низькорівневий пристрій та продовжує роботу в бездисковому режимі.
sndbuf-size size 
size є розміром вихідної черги TCP. По замовчуванню 128K. Можна вказати більше чи менше значення. Більше значення краще для збільшення пропускної здатності при використанні протоколу А через дуже стабільну мережу. Дуже великі значення ~1M можуть привести до проблем. А значення менші 32K не доречні.
timeout time 
Якщо партнерський вузол не може відіслати пакет з відповіддю протягом time десятих секунди, партнерський вузол вважається не робочим і тому TCP/IP зв'язок до нього розривається. Це значення мусить бути меншим ніж connect-int та ping-int. По замовчуванню є 60 = 6 секунд, крок 0.1 секунди.
connect-int time 
У випадку неможливості зв'язку з віддаленим DRBD пристроєм негайно, DRBD продовжує спроби зв'язатись. З допомогою цього параметру можна вказати час між двома спробами. По замовчуванню значення є 10 секунд, крок 1 секунда.
ping-int time 
Якщо зв'язок TCP/IP між парою пристроїв DRBD є вільним більш ніж time секунд, DRBD буде генерувати пакети keep-alive, для перевірки справної роботи партнера. По замовчуванню є 10 секунд, крок 1 секунда.
max-buffers number 
Максимальне число запитів, що приймається DRBD. Крок є PAGE_SIZE, котрий становіть 4 KB в більшості систем. Нижня грань 32 (=128 KB). Для забезпечення високої продуктивності допомагає збільшення number. Ця черга використовується для утримування даних поки вони записуються на диск.
max-epoch-size number 
Найвище число блоків даних між двома бар'єрами запису. Якщо встановити меншим за 10 може значно зменшити продуктивність.
ko-count count 
У випадку зупинки другорядного вузла під час спроби завершити один запит запису count разів з часовими інтервалами timeout, вузол виключається з кластеру. (Тобто основний вузол переходить у вироджений режим.) По замовчуванню 0, що виключає цю властивість.
on-disconnect handler 
Коли зв'язок з партнером пропав, DRBD може або перейти у вироджений режим, або намагатись відновити з'єднання з партнером, або заморозити всі майбутні операції вводу/виводу (подумайте про жорстко примонтований том NFS). Можливими значення є: stand_alone, reconnect і freeze_io. По замовчуванню reconnect.

stand_alone: Не відновлювати зв'язок і перейти у вироджений режим.

reconnect: Старатись відновити зв'язок.

freeze_io: Намагатись відновити зв'язок, але заморозити ввід/вивід поки зв'язок не відновиться знов.
wfc-timeout time 
Чекати на з'єднання протягом часу time. init скрипт drbd(8) блокує завантажувальний процес поки DRBD ресурси не зв'яжуться. Це буває коли управління кластером стартує пізніше, внутрішні пов'язані з цим ресурси залишаються невидимі. У випадку бажання обмежити час очікування зробіть це тут. По замовчуванню 0, що значить необмежено. Крок 1 секунда.
degr-wfc-timeout time 
Очікування для відновленням з'єднання протягом time, якщо вузол був виродженим кластером. У випадку перевантаження виродженого кластера (= кластер в котрого залишивсь тільки один вузол), цей час очікування використовується замість wfc-timeout, тому що партнер навряд чи включиться в цей проміжок, коли вийшов з ладу перед тим. По замовчуванню 60, крок 1 секунда. Значення 0 означає без обмежень.
rate rate 
Для гарантування стабільної роботи програм поверху DRBD, є можливим обмежити розмір каналу що використовується для синхронізації блочних пристроїв між вузлами кластеру. По замовчуванню 250KB/sec, по замовчуванню крок KB/sec. Можливі суфікси: K, M, G.
group number 
Десинхронізація пристроїв однієї групи виконується паралельно. Групи отримують доступ послідовно. Потрібно не дозволяти пристроям які поділяють один фізичний пристрій синхронізуватись паралельно. По замовчуванню всі пристрої є в групі 0 тобто будуть синхронізуватись паралельно. Дозволяються від'ємні та позитивні значення.
al-extents extents 
DRBD автоматично визначає робочої області. Цим параметром контролюється скільки місця виділяється для роботи (=active set). Кожна одиниця відповідає 4M робочого диску (=низькорівневого пристрою). У випадку неочікуваної зупинки основного вузла, розмір даних визначений опцією, мусить бути розсинхронізований до приєднання вузла. Структура даних зберігається в області службових даних, тому кожна зміна робочої області приводить до операції запису на пристрій з службовими даними. Велике число extents дає довший період десинхронізації але менші поновлення до службових даних. По замовчуванню extents є 127. (Мінімум 7, максимум 3843.)

ВЕРСІЯ

Цей документ коректний для версії 0.7.5 пакету DRBD.

АВТОРИ

Написаний Филипом Рейзнером (Philipp Reisner) <philipp.reisner@linbit.com>.

Сторінка підручника була переглянута та переписана Гелмутом Воллмерсдорфером (Helmut Wollmersdorfer) <helmut.wollmersdorfer@linbit.com>.

ПОВІДОМЛЕННЯ ПОМИЛОК

Повідомляйте помилки на <drbd-user@lists.linbit.com>.

АВТОРСЬКІ ПРАВА

Copyright (c) 2001 Philipp Reisner. Це вільні програми; дивіться джерельні коди для встановлення прав копіювання. Нема ніяких гарантій; навіть для зручності використання в конкретному випадку.

ПОДІБНІ ТЕМИ

drbd - кластер дисків, drbd(8), drbddisk(8), drbdsetup(8), drbdadm(8).

Особисті інструменти