Версія 1 (альфа)

Встановлення та налаштування GFS серверу і клієнтів.

За мотивами:

Вступ

Уявіть собі можливість управліня кластером що складається з багатьох вузлів так, ніби це є всього на всього один комп'ютер! Глобальна Файлова Система від Червоно-Шапкових (Red Hat Global File System (GFS)) допоможе здійснити цю мрію сьогодні, таким чином ви отримаєте всі переваги кластеру та зменшите затрати на його адміністрування та супровід.

GFS дозволяє кластеру серверів з GNU/Linux спільно користуватись даними, котрі знаходяться на єдиному образі файлової системи, що, в свою чергу, складається з багатьох об'єднаних на логічному рівні, розподілених по мережевих вузлах, дискових масивів. Перелік функціональних можливостей GFS вражає:

  1. Надзвичайно спрощує супровід інфраструктури даних:
    1. Встановлення та латання програм тільки один раз і одразу на всіх вузлах;
    2. Зменшує потребу в зайвому копіюванню даних;
    3. Спрощення резервної архівації та відновлення даних з резервного архіву при виникненні збоїв.
  2. Максимально збільшує об'єм ресурсів для зберігання даних та мінімізує ціну масиву для збереження даних:
    1. Управління всіма дисками як одним, або по розділам;
    2. Загалом зменшує потребу у дисковому об'ємі, через зменшення дублювання даних.
  3. Спрощення розширення кластеру, додавання нових дисків на льоту:
    1. Більше не потрібно розмічати диски з допомогою складних технік;
    2. Додавання нових серверів простим примонтуванням їх до загальної файлової системи.
  4. Єдина повністю 64-бітова кластерна файлова система під Linux для промислових рішень з підтримкою x86, AMD64/EM64T, та Itanium архітектур.
  5. Кластерна система з найбільшими можливостями розширення під Linux — підтримує до 256 серверних вузлів, ~8 терабайт на одну логічну файлову систему та легко справляється з одночасною роботою понад 300 клієнтських вузлів GFS.
  6. Розроблена спеціально для Linux, GFS взаємодіє напряму з інтерфейсом файлових систем VFS ядра і має підтримку управління квотами:
    1. мульти-журналювання та журналювання даних;
    2. багатошляховості;
    3. інструменти (програми) для:
      1. форматування;
      2. (під/від)єднання;
      3. збільшення об'єму;
      4. додавання журналів;
      5. прямого вводу/виводу;
      6. оновлення GFS;
      7. зупинки активності файлової системи;
      8. розширеного моніторингу статистики;
      9. відновлення при пошкодженнях;
      10. підтримки контекст-залежних імен файлів (CDPN).
  7. Оскільки ввід/вивід через мережу здійснюється швидше ніж з диску, а один файл в GFS може бути фізично розподілений по багатьом дискам, GFS здійснюватиме балансування навантаження операцій зчитування/запису даних.
  8. Також GFS можна налаштувати, щоб забезпечувалась потрібна надійність надання сервісу, тобто кластер з серверних вузлів продовжуватиме надавати сервіси при збої/падінні деякої кількості (залежить від налаштувань) будь-яких вузлів кластеру.
  9. Повністю відповідає стандарту POSIX, тобто програми не потребують переписування для роботи з GFS, та абсолютно прозора для користувача.
  10. Поки, що єдина кластерна файлова система промислового рівня під вільною ліцензією GPL.

GFS зазвичай використовують для кластерів та задач промислового рівня щоб створити цілісний образ файлової системи поверх вузлів кластеру. Це дозволяє кожному комп'ютеру в кластері одночасно читати/писати на єдину спільну файлову систему.

  1. Промислові бази даних.
  2. Програми, що потребують великого дискового об'єму — сервери http, ftp...
  3. Для маштабованих, високопродуктивних та високостабільних систем, де мережева файлова система відіграє ключову роль.

Встановлення GFS

Вимоги до апаратного забезпечення

Архітектура машини: ia64, x86-64, x86 з підтримкою SMP.

Оперативна пам'ять: >256 MB

Встановлення необхідних програм

Є деякі програми котрі безпосередньо кластеру не стосуються, але потрібні для нормальної його роботи:

  • net-misc/ntp (для синхронізації часу вузлів)
  • net-misc/openssh
  • dev-perl/Net-Telnet

Стягуємо архів cluster-1.01.00.tar.gz (чи новіший).

Встановлюємо наступні програми у вказаному порядку:

Програма Опис Переклад
sys-cluster/cman-headers symmetric cluster manager headers Програма управління кластером, заголовки
sys-cluster/magma interface library for cluster lock management Бібліотеки для взаємодії з програмою, що керує блокуваннями
sys-cluster/gnbd-headers Global Network Block Device headers Глобальний Мережевий Блоковий Пристрій, заголовки
sys-cluster/gnbd Global Network Block Device Глобальний Мережевий Блоковий Пристрій
sys-cluster/ccs cluster configuration system Система для управління файлами налаштувань кластеру
sys-cluster/cman symmetric cluster manager Програма управління кластером
sys-cluster/dlm-headers Distributed Lock Manager headers Розповсюджений Менеджер Блокувань, заголовки
sys-cluster/dlm Distributed Lock Manager Розповсюджений Менеджер Блокувань
sys-cluster/magma-plugins plugins for interface library for cluster lock management Додатки до бібліотек для взаємодії з програмою, що керує блокуваннями
sys-cluster/iddev iddev id dev
sys-cluster/gfs-headers Global File System Глобальна Файлова Система, заголовки
sys-cluster/fence I/O fencing system Методи захисту вводу виводу
sys-fs/gfs Global File System Глобальна Файлова Система
sys-cluster/rgmanager Clustered resource group manager layered on top of Magma Управліня ресурсами та сервісами кластеру поверх magma
sys-fs/lvm2 (clvm) volume manager Програма для створення логічних розділів на файловій системі GFS

Додатково потрібно зібрати і встановити необхідні модулі ядра. Скрипт cluster kernel.sh чудово впорається з цим завданням. Після компіляції модулів ядра потрібно перезавантажитись. Даний скрипт потрібно буде запускати після кожної перекомпіляції ядра!

Налаштування кластеру

Можливості кластеру CCS, CMAN, DLM

Відсутність у апаратному налаштуванню єдиної точки збою. : Кластер може включати масиви RAID з двома контроллерами, логічно зв’язані канали мережі, блоки безперебійного живлення. : Більш дешеву альтернативу можна використати для побудови трохи менш надійного кластеру. Для прикладу, кластер можна збудувати на одному контроллері масиву RAID та з тільки одним мережевим каналом.

База для налаштування та адміністрування кластеру. : Зручність в налаштуванні кластеру для надійного доступу до програм, сервісів, даних. Для створення кластеру вкажіть ресурси, що він використовує, та їх властивості: назву кластерного сервісу, ініціалізаційний скрипт (init), розділ диску, точку монтування, та вузол кластеру на якому вам би хотілось запустити сервіс. Після додавання сервісу до кластеру програми управління кластером записують інформацію у файл налаштування кластеру та дані з налаштуваннями розповсюджуються по всіх вузлах кластеру за допомогою Системи Налаштування Кластеру (CCS(7)), сервісу, встановленого на кожному вузлі, котрий дозволяє отримувати зміни у XML-файлі налаштувань cluster.conf.

Користувацька оболонка для управління кластером. : Інструментарій для налаштувань та моніторингу завдань ресурсів кластеру: створення, запуск, зупинка сервісів кластеру; переміщення кластерних сервісів з одного вузла на інший; зміну налаштувань кластерних сервісів; моніторинг кластерних вузлів. CMAN(5) дозволяє адміністраторам керувати кластером на рівні кожного вузла.

Домен захисту від збоїв. : Додавши сервіси кластеру у окремий домен захисту від збоїв, ви можете обмежити число вузлів, що надаватимуть сервіс у випадку збоїв. Можна визначати приоритет вузлів у домені, щоб сервіси працювали на визначених вузлах поки ті є активні. Коли сервіс запускається без визначення домену захисту від збою, то він може працювати на будь-якому вузлі кластеру.

Страхування цілісності даних. : Для впевненості у цілісності даних тільки один вузол може мати запущений кластерний сервіс та доступатись до його даних в будь-який момент часу. Це забезпечується або спеціальним апаратним, або програмним забезпеченням захисту, яке віддалено вмикає, вимикає і перевантажує вузли кластеру. Також для цього використовується Watchdog для впевненості у відсутності підвисань вузлів.

Зв'язки каналів Ethernet. : Для контролю нормальної роботи інших вузлів, кожний вузол моніторить (за наявності) віддалений вимикач живлення та посилає пінг-запити heartbeat через канали мережі. При використанні зв'язки каналів Ethernet, багато каналів Ethernet виглядають як один, зменшуючи ризик втрати зв'язку в типовій топології Ethernet між двома системами.

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

Ручний перерозподіл сервісів. : На додачу до автоматичного перерозподілу сервісів між вузлами у випадку збою, кластер дозволяє вам спинити сервіс на одному вузлі та запустити на іншому для проведення якихось планових робіт на вузлі без зупинки обслуговування.

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

Моніторинг програм. : Інфраструктура кластеру проводить моніторинг стану та роботи програм. Тобто коли якийсь сервіс зупиняється, кластер автоматично його перевантажує. Спочатку кластер зробить спробу перезапустити сервіс/програмау на тому вузлі, на котрому вона працювала, а у випадку невдачі — запустить на іншому вузлі кластеру. Можна вказати, на котрих саме вузлах кластер має запускати сервіс за допомогою доменів захисту від збоїв.

GFS поверху GNBD

На малюнку зображено найдешевшу реалізацію GFS, котра не вимагає спеціалізованого кластерного обладнання та працює на звичайних комп'ютерах з'єднаних мережю.

Планування GFS

  • Визначити кількість файлових систем, для початку. Звичайно, потім можна додати ще!
  • Призначити унікальну назву кожній файловій системі. Кожна назва файлової системи потрібна у формі параметру.
  • Визначити кількість журналів для файлової системи GFS. Для кожного вузла, що монтує файлову систему GFS потрібен свій персональний журнал. Додайте також пару журналів на майбутнє.
  • Визначити, котрі вузли в кластері будуть монтувати файлову систему GFS.
  • Визначити, скільки необхідно серверних вузлів GNBD. Занотувати їх імена та адреси IP для подальшого налаштування клієнтів.
  • Визначити пристрої накопичення та розділи для створення їх у LVM2 на файловій системі GFS.

Робота з GFS

Література