Приложение F. HA-LVM

Red Hat High Availability обеспечивает поддержку томов HA-LVM (High Availability LVM), что существенно отличается от активных структур CLVM (Clustered Logical Volume Manager). CLVM предоставляет расширения к системе управления томами совместного хранилища.
Решение в пользу CLVM или HA-LVM принимается исходя из потребностей приложений и служб.
  • Если приложения поддерживают кластер и могут одновременно выполняться на нескольких узлах в кластере, следует выбрать CLVM. Если узлы кластера обращаются к совместному хранилищу, которое доступно активным узлам, необходимо использовать CLVM. CLVM позволяет создавать логические тома в общем хранилище, блокируя доступ к физическому хранилищу на время настройки томов. Подробную информацию о CLVM можно найти в руководстве по администрированию LVM.
  • Если работоспособность приложений оптимальна в активно-пассивных схемах, где активен только узел, обращающийся к хранилищу, рекомендуется выбрать агенты HA-LVM (High Availability Logical Volume Management).
Большинство приложений будет лучше работать в активно-пассивной схеме, так как они изначально не предназначены для параллельной работы. При выполнении приложений, не поддерживающих кластер, на кластерных логических томах их производительность значительно снизится, особенно при создании зеркального отображения логических томов. И наоборот, производительность приложений с поддержкой кластера в целом возрастет. Индивидуальные требования кластера и необходимость дополнительной оптимизации помогут сделать выбор в пользу HA-LVM или CLVM. Обычно HA-LVM позволяет добиться лучших результатов.
Сходство HA-LVM и CLVM состоит в том, что они позволяют предотвратить повреждение метаданных и логических томов при изменении одних и тех же данных разными компьютерами. Так, в любой момент времени HA-LVM разрешает активацию тома только на одной машине, что, в свою очередь, гарантирует использование только локальных (не кластерных) драйверов хранилища. Так как операции выполняются локально, производительность такой организации довольно высокая. В свою очередь, CLVM не накладывает таких ограничений, то есть разрешается активации логических томов на любых машинах. Это требует использования драйверов с поддержкой кластерной функциональности.
Существует два основных метода конфигурации HA-LVM:
  • Первый и более предпочтительный подход заключается в использовании CLVM для эксклюзивной активации логических томов. Достоинством этого метода является простота настройки и снижение риска ошибок администратора (например, при удалении находящегося в работе тома). Для нормальной работы CLVM необходимо, чтобы в системе работали комплекты High Availability, Resilient Storage и процесс clvmd.
    Раздел F.1, «Восстановление HA-LVM в CLVM» содержит информацию об этом методе конфигурации.
  • Второй подход подразумевает использование тегов LVM и блокирование локальной машины. Преимущество этого метода состоит в отсутствии необходимости установки пакетов кластера LVM, но при этом процедура конфигурации не исключает риск удаления неактивного логического тома. Раздел F.2, «Теги восстановления HA-LVM» содержит подробную информацию.

F.1. Восстановление HA-LVM в CLVM

Ниже рассматривается порядок настройки восстановления HA-LVM при помощи предпочитаемого варианта CLVM.
  1. Убедитесь, что система поддерживает CLVM, то есть должны удовлетворяться следующие условия:
    • Установлены комплекты High Availability и Resilient Storage, а также пакет cmirror (для зеркальной организации логических томов CLVM)/
    • В файле /etc/lvm/lvm.conf значение параметра locking_type должно быть равно 3.
    • Должны быть запущены программы High Availability и Resilient Storage, включая clvmd и дополнительно cmirrord (для зеркальной организации).
  2. Создайте логический том и файловую систему:
    # pvcreate /dev/sd[cde]1
    
    # vgcreate -cy shared_vg /dev/sd[cde]1
    
    # lvcreate -L 10G -n ha_lv shared_vg
    
    # mkfs.ext4 /dev/shared_vg/ha_lv
    
    # lvchange -an shared_vg/ha_lv
    Подробную информацию о создании томов LVM можно найти в руководстве по администрированию LVM.
  3. В /etc/cluster/cluster.conf добавьте определение нового тома в виде ресурса (ресурсы также могут быть настроены с помощью Conga и ccs). Пример:
    
    <rm>  
       <failoverdomains>
           <failoverdomain name="FD" ordered="1" restricted="0">
              <failoverdomainnode name="neo-01" priority="1"/>
              <failoverdomainnode name="neo-02" priority="2"/>
           </failoverdomain>
       </failoverdomains>
       <resources>
           <lvm name="lvm" vg_name="shared_vg" lv_name="ha-lv"/>
           <fs name="FS" device="/dev/shared_vg/ha-lv" force_fsck="0" force_unmount="1" fsid="64050" fstype="ext4" mountpoint="/mnt" options="" self_fence="0"/>
       </resources>
       <service autostart="1" domain="FD" name="serv" recovery="relocate">
           <lvm ref="lvm"/>
           <fs ref="FS"/>
       </service>
    </rm>