Добро пожаловать на форум, Гость!
Войдите или зарегистрируйтесь!
Имя пользователя:   Пароль:  
Запомнить меня 




Начать новую тему Ответить на тему   [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 10 мар 2012, 16:26 
Бородатый сис
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 2920
Откуда: Из серверной
Зарегистрирован: 03 мар 2010, 15:12
Благодарил (а): 19 раз.
Поблагодарили: 122 раз.
ОС: RHEL 7
Бывает так, что стоит у вас где-нибудь в локалке сторадж, к которому нужно прицепить несколько машин в режиме rw без ограничений на чтение и запись соответственоо. Если на сторадже несколько хардов и клиентов надо цеплять к ним по-отдельности, то тут проблем нету. Ну а как быть если раздел один? Nfs? SMB? SSH? а как быть с проседающей сеткой? с отваливающимися коннектами с nfs, ssh, а тем более smb!
Тут нам приходит на помощь протокол iSCSI, поверх которого можно практически без потерь гонять инфу, монтируя харды со стораджа на узлах как локальную фс. Предположим iscsi-target и iscsi-initiator мы уже настроили, на конечных узлах у нас появилось новое устройство /dev/sd* (возьмем за пример /dev/sdg), на котором мы parted'ом или fdisk'ом создали раздел. Итак, надо его форматнуть, но тут образуется затык - при использовании стандартных ФС писать на смонтированый раздел сможет только один узел - тот который первым его подхватит. А так как нам это не интересно, будем искать выход. Погуглив по поводу кластерных файловых систем находим в гугле огромную кучу оных. Сразу откидываем распределенные ФС - у нас будет 1 сторадж а не несколько.

Далее откинем RedHat GFS2 - во-первых она тащит за собой кучу мусора (cman, clvm, corosync, fenced), который кстати тоже нужно настраивать, во-вторых блокировка выпавшей ноды у нее работает через демон fenced, который нет-нет да пришибет рабочий узел, а нет-нет и на выпавший узел забьет, вызывая тем самым deadlock в файловой системе и как результат kernel-panic.

Для данного эксперимента остановимся на файловой системе OCFS2 - она так же как и GFS2 асинхронна, и не тащит за собой кучу его родимого. Однако как и с любой ФС нужно озадачиться одним вопросом - а есть ли ее поддержка в ядре? Если нет в ядре и в репах - пересобираем ведро включив опции поддержки сабжа. Для АльтЛинукс готовое ядро есть в репозитории. Мне гораздо проще - я использую OracleLinux, а в нем она одна из родных ФС.

Ставим тулзу:

Код:
# yum -y install ocfs2-tools


Если ваша машина - десктоп, можно также поставить гуй для этого хозяйства:
Код:
# yum -y install ocfs2console


Конфигурим:
Предположим что у нас к разделу цепляются 4 клиента - 192.168.1.1, 192.168.1.2, 192.168.1.3 и 192.168.1.4. Конфиг будет такой:

# cat /etc/ocfs2/cluster.conf
Код:
cluster:
  node_count = 4
  name = my_mount

node:
  ip_port = 7777
  ip_address = 192.168.1.1
  number = 0
  name = node1.example.com
  cluster = my_mount

node:
  ip_port = 7777
  ip_address = 192.168.1.2
  number = 1
  name = node2.example.com
  cluster = my_mount

node:
  ip_port = 7777
  ip_address = 192.168.1.3
  number = 2
  name = node3.example.com
  cluster = my_mount

node:
  ip_port = 7777
  ip_address = 192.168.1.4
  number = 3
  name = node7.example.com
  cluster = my_mount


Обратите внимание на 3 параметра данного конфига (это очень важно!)
1. строки после слов node и cluster обязательно должны начинаться с пробела или табуляции - это критично!
2. name - реальный хостнейм сервера. если вы забьете имя сервера в хосты вам это ничего не даст!
3. параметр cluster = my_mount долен быть одинаковым для всех узлов кластера а также должен соответствовать значению записи O2CB_BOOTCLUSTER= в файле o2cb (у меня в /etc/sysconfig лежит)

Настраиваем o2cb:

Код:
# cat /etc/sysconfig/o2cb
#
# This is a configuration file for automatic startup of the O2CB
# driver.  It is generated by running /etc/init.d/o2cb configure.
# On Debian based systems the preferred method is running
# 'dpkg-reconfigure ocfs2-tools'.
#

# O2CB_ENABLED: 'true' means to load the driver on boot.
O2CB_ENABLED=true

# O2CB_STACK: The name of the cluster stack backing O2CB.
O2CB_STACK=o2cb

# O2CB_BOOTCLUSTER: If not empty, the name of a cluster to start.
O2CB_BOOTCLUSTER= my_mount

# O2CB_HEARTBEAT_THRESHOLD: Iterations before a node is considered dead.
O2CB_HEARTBEAT_THRESHOLD=31

# O2CB_IDLE_TIMEOUT_MS: Time in ms before a network connection is considered dead.
O2CB_IDLE_TIMEOUT_MS=30000

# O2CB_KEEPALIVE_DELAY_MS: Max time in ms before a keepalive packet is sent
O2CB_KEEPALIVE_DELAY_MS=2000

# O2CB_RECONNECT_DELAY_MS: Min time in ms between connection attempts
O2CB_RECONNECT_DELAY_MS=2000



Стартуем:

Код:
# service o2cb load
# service o2cb online
# service o2cb start
# service ocfs2 start


Форматим диск (только на одном узле!)
Код:
# mkfs.ocfs2 -N 4 -v /dev/sdg1


Поскольку iscsi любит присваивать на разных узлах разные идентификаторы диска, мы будем цеплять его по UUID. Смотрим идентификатор диска (ls -la /dev/disk/by-uuid) и добавляем строчку в /etc/fstab
Код:
UUID=52db50c3-2f2c-4b3a-a04a-e395155bbfe5 /srv/shared             ocfs2   defaults,_netdev      0 1


И перезапускаем ocfs2 на всех узлах.
Код:
# service ocfs2 restart

* Важно! Первым всегда должен запускаться узел с наименьшим номером в /etc/ocfs2/cluster.conf, ибо он признается мастером и назначается арбитром dlm - механизма блокировок чтения-записи.

И смотрим примонтируется-ли раздел и наслаждаемся результатом. Если что-то пошло не так советую перечитать все с начала)))


Я не злопамятный, я просто часто ковыряю логи
Изображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 мар 2012, 19:10 
Красноглазик
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 659

Зарегистрирован: 26 мар 2010, 11:43
Благодарил (а): 1 раз.
Поблагодарили: 5 раз.
очень даже здраво и полезно. спасибо *COOL*


OS: Gentoo Linux 3.6.6, KDE 4.9.3/Fluxbox


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 19 ноя 2018, 16:52 
Юзер
Аватар пользователя
Статус: Не в сети

GeoIP: Thailand

Сообщений: 2

Зарегистрирован: 19 ноя 2018, 15:57
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
ОС: MSDOS
The feeling of me now is very glad to be with everyone here.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
   Похожие темы   Автор   Ответов   Просмотров   Последнее сообщение 
Перенесенная ^_^

в форуме Linux

root

3

38

02 мар 2010, 16:15

Gen1us2k Перейти к последнему сообщению

Нет новых непрочитанных сообщений в этой теме создание базы данных

в форуме Куплю/Продам

Veronika Zolotova

0

946

26 ноя 2015, 14:18

Veronika Zolotova Перейти к последнему сообщению

Нет новых непрочитанных сообщений в этой теме USBDiskSecurity, Auto run killer, usbsafelyremov

в форуме Антивирусы

zaka

0

2893

26 май 2010, 11:44

zaka Перейти к последнему сообщению



Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Собрано Raven. Русская поддержка phpBB
phpBB SEO