GFS - Глобальна Файлова Система для кластерів
Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.
Версія 1 (альфа)
Встановлення та налаштування GFS серверу і клієнтів.
За мотивами:
http://www.redhat.com/en_us/USA/home/solutions/gfs/
http://sources.redhat.com/cluster/
http://www.redhat.com/docs/manuals/csgfs/
Зміст |
Вступ
Уявіть собі можливість управліня кластером що складається з багатьох вузлів так ніби це є всього на всього один комп'ютер! Глобальна Файлова Система від Червоно-Шапкових (Red Hat Global File System (GFS)) допоможе здійснити цю мрію сьогодні, таким чином ви отримаєте всі переваги кластеру та зменшите затрати на його адміністрування та супровід.
GFS дозволяє кластеру серверів з GNU/Linux спільно користуватись даними, котрі знаходяться на єдиному образі файлової системи, що в свою чергу, складається з багатьох об'єднаних на логічному рівні, розподілених по мережевих вузлах, дискових масивів. Перелік функціональних можливостей GFS вражає:
- Надзвичайно спрощує супровід інфраструктури даних:
- Встановлення та патчення програм тільки один раз і одразу на всі вузли
- Зменшує потребу в зайвому копіюванню даних
- Спрощення резервної архівації та відновлення даних з резервного архіву при виникненні збоїв.
- Максимально збільшує об'єм ресурсів для зберігання даних та мінімізує ціну масиву для збереження даних.
- Управління всіма дисками як одним, або по патиціям.
- Зменшує у загальному потребу в дисковому об'ємі, через зменшення дублювання даних.
- Спрощення розширення кластеру, додавання нових дисків нальоту.
- Більше не потрібно розмічати диски з допомогою складних технік
- Додавання нових серверів просто примонтувавши їх до загальної файлової системи
- Єдина повністю 64-bit-на кластерна файлова система під Linux для промислових рішень з підтримкою x86, AMD64/EM64T, та Itanium архітектур.
- Найрозширювальніша кластерна файлова система під Linux, підтримує до 256 серверних вузлів, ~8 терабайт на одну логічну файлову систему та легко справляється з одночасною роботою понад 300 клієнтських вузлів GFS
- Розроблена спеціально для Linux, GFS взаємодіє напряму з інтерфейсом файлових систем VFS ядра і має підтримку ##управління квотами
- мульти журналізації та журналізації даних
- багатошляховості
- інструменти (програми) для
- форматування
- (при/від)єднання
- збільшення об'єму
- додавання журналів
- прямого вводу/виводу
- обновлення GFS
- зупинки активності файлової системи
- розширений моніторинг статистики
- відновлення при пошкодженнях
- підтримки контекст-залежних імен файлів (CDPN).
- Так, як ввід/вивід через мережу здійснюється швидше ніж з диску та один файл в GFS може бути фізично розподілений по багатьом дискам то GFS здійснюватиме балансування навантаження операцій зчитування/запису даних.
- Також GFS можна налаштувати, щоб забезпечувалась потрібна надійність надання сервісу, тобто кластер з серверних вузлів продовжуватиме надавати сервіси при збої/падінні деякої кількості (залежить від налаштувань) будь-яких вузлів кластеру.
- Повністю відповідає стандарту POSIX, тобто програми не потрібно переписувати для роботи з GFS, та абсолютно прозора для користувачів.
- Поки, що єдина кластерна файлова система під вільною ліцензією GPL промислового рівня
GFS звично використовують для кластерів та задач промислового рівня щоб створити цілісний образ файлової системи поверху вузлів кластеру. Це дозволяє кожному комп'ютеру в кластері одночасно читати/писати на єдину спільну файлову систему.
- Промислові бази даних
- Програми, що потребують великого дискового об'єму http, ftp... сервери
- Для маштабованих, високопродуктивних та високостабільних систем де мережева файлова система відіграє ключову роль.
Встановлення 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 | Глобальний Мережевий Блочний Пристрій заголовки | </tr>
| 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 файлі налаштувань /etc/cluster/cluster.conf.
- Користувацька оболонка для управління кластером.
- Інстоументарій для налаштувань та моніторингу завдань ресурсів кластеру: створення, запуск, зупинка сервісів кластеру; переміщення кластерних сервісів з одного вузла на інший; зміну налаштувань кластерних сервісів; моніторинг кластерних вузлів. CMAN(5) дозволяє адміністраторам керувати кластером на рівні кожного вузла.
- Домен захисту від збоїв
- Включаючи кластерні сервіси в визначений домен захисту від збоїв, ви можете обмежити число вузлів що надаватимуть кластерний сервіс у випадку збоїв. Можна визначати приорітет вузлів у домені, щоб сервіси працювали на визначених вузлах поки ті є активні. Коли кластерний сервіс запускається без визначення домену захисту від збою то він може працювати на будь-якому вузлі кластеру.
- Страхування цілісності даних
- Для впевниності у цілісності даних, тільки один вузол може мати запущений кластерний сервіс та доступатись до його даних в будь-який момент часу. Це забезпечується, або спеціальним апаратним, або програмним забезпеченням захисту, яке відалено включає, виключає і перевантажує вузли кластеру. Також для цього використовується Watchdog для впевненості у відсутності підвисань вузлів.
- Зв'язки каналів Ethernet
- Для моніторингу нормальної роботи інших вузлів, кожний вузол моніторить, за наявності, віддалений виключатель живлення та посилає heartbeat pings через канали мережі. Із зв'язкою каналів Ethernet, багато каналів Ethernet виглядають як один, зменшуючи ризик втрати зв'язку в типічній топології Ethernet між двома системами.
- Захист від збоїв кластерних сервісів
- Коли відбувається апаратний чи програмний збій на котромусь вузлі, кластер проводить відповідні дії для забеспечення доступності сервісів та цілісності даних.
- коли вузол перевантажеться він приєднується до кластеру та в залежності від налаштування кластерних сервісів може здійснитись перебалансування кластерних сервісів між вузлами.
- Ручний перерозподіл сервісів
- На додачу до автоматичного перерозподілу сервісів між вузлами у випадку збою, кластер дозволяє вам спинити сервіс на одному вузлі та запустити на іншому для проведення якихось планових робіт на вузлі без зупинки сервісу.
- Журналізація подій
- Для впевненості, що проблеми визначаються та розв'язуються сервіс кластеру журналізує події використовуєчи зручний системний журналізатор події.
- Моніторинг програм
- Інфраструктура кластеру проводить моніторинг стану та роботи програм. Тобто коли якийсь сервіс зупиняється, кластер автоматично його перевантажить. Спочатку кластер зробить спробу перезапустити сервіс/програмау на тому вузлі котрому вона працювала, а після невдачі запустить на іншому вузлі кластеру. Можна вказувати на котрих саме вузлах кластер має запускати сервіс включивши їх до домену захисту від збоїв.
GFS поверху GNBD
|
На малюнку зображено найдешевшу реалізацію GFS котра не вимагає спеціалізованого кластерного обладнання та працює на звичайних комп'ютерах з'єднаних мережю. |
Планування GFS
- Визначити кількість файлових систем, для початку. Звичайно, потім можна додати ще!
- Унікальну назву для кожної файлової системи. Кожна назва файлової системи вимагається у формі параметру.
- Визначити кількість журналів для файлової системи GFS. Для кожного вузла що монтує файлову систему GFS потрібно свій персональний журнал. Врахуйте також пару журналів для майбутнього розширення вузлів.
- Визначити котрі вузли в кластері будуть монтувати файлову систему GFS.
- Визначити скільки необхідно серверних вузлів GNBD. Помітити їх імена та IP адреси для подальшого налаштування клієнтів.
- Визначити пристрої накопичення та розділи для створення їх LVM2 на файловій системі GFS.


