This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
решение_hast [2010/11/03 10:03] val |
решение_hast [2016/04/22 11:48] val [Инициализация] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Решение HAST ====== | ====== Решение HAST ====== | ||
- | [[http://wiki.freebsd.org/HAST]] | + | * [[http://wiki.freebsd.org/HAST|HAST - Highly Available Storage]] |
+ | |||
+ | ===== Подготовка узлов ===== | ||
+ | |||
+ | Добавляем жесткие диски, создаем точки монтирования | ||
- | ===== Подготовка стенда ===== | ||
<code> | <code> | ||
- | gateN# mkdir /opt | + | nodeN# dmesg | grep ada1 |
+ | |||
+ | nodeN# mkdir /disk2 | ||
</code> | </code> | ||
===== Настройка узлов ===== | ===== Настройка узлов ===== | ||
<code> | <code> | ||
- | gateN# cat /etc/hast.conf | + | nodeN# cat /etc/hast.conf |
</code><code> | </code><code> | ||
resource r0 { | resource r0 { | ||
- | on gate1 { | + | on node1 { |
- | local /dev/ad1 | + | local /dev/ada1 |
- | remote 10.0.0.2 | + | remote 10.5.Z.200+X |
} | } | ||
- | on gate2 { | + | on node2 { |
- | local /dev/ad1 | + | local /dev/ada1 |
- | remote 10.0.0.1 | + | remote 10.5.Z.100+X |
} | } | ||
} | } | ||
</code><code> | </code><code> | ||
- | gateN# cat /etc/rc.conf | + | nodeN# service hastd rcvar |
- | ... | + | |
- | hastd_enable=yes | + | |
- | gateN# /etc/rc.d/hastd start | + | nodeN# service hastd start |
</code> | </code> | ||
===== Инициализация ===== | ===== Инициализация ===== | ||
<code> | <code> | ||
- | gateN# hastctl create r0 | + | nodeN# hastctl status |
- | gate1# hastctl role primary r0 | + | nodeN# hastctl create r0 |
- | gate2# hastctl role secondary r0 | + | node1# hastctl role primary r0 |
- | gateN# hastctl status | + | node2# hastctl role secondary r0 |
- | gate1# newfs /dev/hast/r0 | + | nodeN# hastctl status |
- | gate1# mount /dev/hast/r0 /opt | + | node1# newfs /dev/hast/r0 |
+ | |||
+ | node1# mount /dev/hast/r0 /disk2 | ||
+ | |||
+ | node1# cp /etc/rc.conf /disk2/ | ||
</code> | </code> | ||
===== Смена ролей узлов кластера ===== | ===== Смена ролей узлов кластера ===== | ||
<code> | <code> | ||
- | gate1# umount /opt | + | node1# umount /disk2 |
- | gate1# hastctl role secondary r0 | + | node1# hastctl role secondary r0 |
- | gate2# hastctl role primary r0 | + | node2# hastctl role primary r0 |
- | gate2# fsck -y -t ufs /dev/hast/r0 | + | node2# fsck -y -t ufs /dev/hast/r0 |
- | gate2# mount /dev/hast/r0 /opt | + | node2# mount /dev/hast/r0 /disk2 |
</code> | </code> | ||
- | ===== Остановка заркалирования ===== | + | ===== Отключение зеркалируемого раздела ===== |
<code> | <code> | ||
- | gate2# umount /opt | + | node2# umount /disk2 |
- | gate2# hastctl role secondary r0 | + | node2# hastctl role secondary r0 |
</code> | </code> | ||
- | ===== Решение ситуации split brain ===== | + | ===== Дополнительные материалы ===== |
+ | |||
+ | ==== Решение ситуации split brain ==== | ||
Выбираем узел, данные которого будут затерты. | Выбираем узел, данные которого будут затерты. | ||
<code> | <code> | ||
- | gateZ# /etc/rc.d/hastd stop | + | nodeZ# hastctl create r0 |
- | + | ||
- | gateZ# hastctl create r0 | + | |
- | gateZ# /etc/rc.d/hastd start | + | nodeZ# hastctl role secondary r0 |
- | gateZ# hastctl role secondary r0 | + | nodeM# hastctl role primary r0 |
- | gateZ# hastctl status | + | nodeZ# hastctl status |
- | gateM# hastctl status | + | nodeM# hastctl status |
</code> | </code> | ||