OCFS2
Материал из Xgu.ru
Oracle Cluster Filesystem 2 (OCFS2) — файловая система, предназначенная для совместного
использования двумя или более Linux-системами, одновременно работающими с одним и тем же разделяемым хранилищем
(shared storage). Обладает высокой производительностью и надёжностью. Разрабатывается компанией Oracle. Является свободным программным обеспечением. Входит в состав ядра Linux, начиная с 2.6.16 (март 2006).
Файловая система обладает семантикой локальной файловой системы и не требует никакой специальной модификации программного обеспечения, использующего её.
В настоящий момент файловая система OCFS2 используется в продукте компании Oracle — Real Application Cluster. Кроме этого, её часто применяют при построении масштабируемых Web-серверов, файловых, почтовых систем, а также для хранения образов виртуальных машин.
Файловая система работает поверх разделяемого хранилища, доступ к которому может осуществляться при помощи таких протоколов как iSCSI, AoE или DRBD.
Содержание |
[править] Возможности файловой системы OCFS2
- Блоки переменного размера;
- Гибкое выделение пространства (экстенты, разреженные файлы (с 2.6.22), незаписанные экстенты с возможностью создания дырок);
- Журналирование (поддерживаются режимы ordered и writeback);
- В системах различных аппаратных платформ работает одинаково (x86, x86_64, ia64 и ppc64);
- Поддержка встроенного Clusterstack с распределённой системой управления блокировками (Distributed Lock Manager);
- Поддержка буферизованного, прямого, асинхронного, splice() ввода/вывода, а также возможность отображения памяти на файловую систему (Memory Mapped I/Os);
- Разнообразные утилиты, обеспечивающие всестороннюю поддержку файловой системы.
[править] Программы
- mkfs.ocfs2 — создать файловую систему OCFS2;
- mount.ocfs2 — примонтировать файловую систему OCFS2;
- mounted.ocfs2 — найти все файловые системы OCFS2 на данном узле;
- fsck.ocfs2 — проверить целостность файловой системы OCFS2;
- o2cb — остановка, запуск, настройка кластера (стек OCFS2); включает в свой состав несколько компонентов (o2nm, o2hb, o2net, o2dlm).
- ocfs2console — графический интерфейс для управления OCFS2.
Компоненты o2cb:
- o2nm — менеджер узлов (node manager);
- o2hb — heratbeat agent;
- o2net — сетевой агент;
- o2dlm — распределённый менеджер блокировок (distributed lock manager).
[править] Настройка
Конфигурационный файл:
/etc/ocfs2/cluster.conf /etc/sysconfig/o2cb
Пример:
node: ip_port = 7777 ip_address = 192.168.2.100 number = 0 name = linux1 cluster = ocfs2 node: ip_port = 7777 ip_address = 192.168.2.101 number = 1 name = linux2 cluster = ocfs2 cluster: node_count = 2 name = ocfs2
Конфигурационный файл описывает инсталляцию из двух узлов (linux1, linux2), их адреса и порты, на которых доступны служба.
Величины таймаутов описываются в файле /etc/sysconfig/o2cb. Сконфигурировать таймауты можно с помощью инициализационного скрипта o2cb.
После того как конфигурация кластера описана, можно создать файловую систему:
mkfs.ocfs2 /dev/drbd1
Здесь мы предполагаем, что на узлах доступно разделяемое хранилище /dev/drbd1.
Прописать её в /etc/fstab:
/dev/drbd1 /ocfs2/vol1 ocfs2 defaults 0 0
Запуск:
/etc/init.d/o2cb online CLUSTER-NAME
[править] Настройка квот
Квоты настраивались на Debian 6 2.6.32-5-686
[править] Информации о квотах ocfs2
Квоты в ocfs2 хранятся в мета данных и автоматически синхронизируются каждые 10 сек с мастер нодой, потому файлов aquota.group и aquota.user вы не увидите. quotacheck и repquota у вас так же не будет работать. Мастер нодой в данном контексте является любая нода которая добавляет квоту. ocfs не использует модуль ядра quota_v2.
Требования: ocfs2-tools >= 1.6, пакет можно скачать с нестабильной ветки Debian. Размонтируем ocfs2 на всех нодах.
На мастере делаем:
tunefs.ocfs2 --fs-features=usrquota /dev/sdb && tunefs.ocfs2 --fs-features=grpquota /dev/sdb
добавляем на всех нодах в /etc/fstab
/dev/sdb /stor ocfs2 defaults,usrquota,grpquota 0 0
монтируем
mount /stor
Если по каким-то причинам вам не достаточно времени синхронизации раз в 10 сек. Вы это можете изменить
tunefs.ocfs2 --usrquota-sync-interval=5 /dev/sdb && tunefs.ocfs2 --grpquota-sync-interval=5 /dev/sdb
Пакет quota не обязательно должен стоять на всех нодах, достаточно на мастере и бекапном мастере. Добавляются квоты как обычно это делается edquota либо setquota. Просмотр так же как обычно quota -v -u имя
[править] Дополнительная информация
- Build Your Own Oracle RAC 10g Release 2 Cluster on Linux and FireWire (англ.) — очень мощный документ, описывающий процедуру построения кластера на OCFS2
- Distributed filesystem for Debian clusters? (англ.) — заметка и обсуждение на Debian Administration
- The OCFS2 filesystem (англ.)
- Using Quotas on OCFS2 File Systems (англ.)