Правильно ли создавать lvm-mirror на SAN вольюмах?
Коллеги,
Помогите, пожалуйста, определиться с наиболее подходящим решением:
Дано:
2 сервера (RHEL 6.6), на которые одновременно поданы 2 LUN'а - 1 со стораджа, стоящего в 1 датацентре, второй со стораджа во 2-ом датацентре. Со стороны серверов все управляется при помощи dm-multipath.
Требуется:
по необходимости (плановое обслуживание или авария на сервере, либо проблема с оптикой на FC-фабрике), использовать LUN'ы либо на одном, либо на другом сервере ( но НЕ на обоих одновременно). Плюс обеспечение отказоустойчивости.
Метод реализации задачи:
Построен lvm типа raid1 на поданных вольюмах. Физические устройства, группа томов и зеркальный логический том видны с обоих серверов. На логическом томе построена файловая система ext4. Подмонтирована файловая система только на 1 из серверов.
Выявленные проблемы:
Во время тестирования отказоусточивости - отключения 1 из поданных вольюмов с 1 из стораджей, неожиданно повредилась файловая система на логическом томе. e2fsck ситуацию выправил, но генерируемые данные были утеряны.
Гугление по ошибкам из /var/log/messages показало, что такие проблемы характерны для кластерных сред, когда файловая система используется более чем 1 сервером. В качестве решения предлагается исключение возможности монтирования файловой системы для более чем 1 сервера.
Собственно вопрос:
Означает ли все это, что для выполнения поставленной задачи необходимо строить "правильный" кластер и использовать HA-LVM, или какие-либо аналогичные иструменты? Если да, то какие именно, кроме платных от Red Hat?
Собственно, ради немногих подписавшихся, отвечаю сам на свой вопрос:
В данной конфигурации не годится использовать LVM и ext4 и в качестве файловой системы, ибо ввиду особенностей работы ext4:
1) при переключении на резервный сервер, теряются данные примерно за 60 секунд (а потеря данных БД за такое время может привести к печальным последствиям)
2) при проведении в момент аварии многочисленных операций записи/чтения, существует вероятность повреждения файловой системы, что может привести к еще более печальным последствиям чем в п.1
3) собственно скорость выполнения многочисленных операций записи/чтения на зеркальном логическом томе LVM падает в 2 раза, по сравнению с использованием линейного тома.
Что же делать?
1) Использовать кластерные решения: платные, бесплатные - все зависит от вашей ОС и финансовых возможностей.
2) Обеспечивать отказоустойчивость средствами стораджа. Причем просто репликация не годится, ибо происходит все та же задержка записи. Необходимо создание HA-пар томов на двух стораджах (такая технология предлагается, например, на дорогущих стораджах Hitachi VSP)
3) Использовать Солярис и его замечательный ZFS (вариант опять-таки не для бедных).
Как-то так. Если у кого-то будут конкретные вопросы - не стесняемся, пишем в комментах.