gluster libgfapi HA

Я исследовал KVM_qemu с распределенным устройством хранения данных gluster. Моя цель состояла в том, чтобы создать тестовый кластер с полным HA. т.е. HA для VMs, а также gluster устройства хранения данных. Я планирую установить 3 узла gluster кластер и использовать qemu gluster драйвер с libgfapi вместо старого метода FUSE. Но затем я замечаю, что в vm XML-файле или изображении qemu создают команду, мы можем только указать один gluster IP сервера!! Таким образом, если тот сервер понизится, то устройство хранения данных будет недоступно? Затем, Каков должен быть подход для обеспечения HA в то время как использование qemu libgfapi метод? Присвоение виртуального плавающего IP к gluster серверам с keeplived?

Совет..Спасибо

2
задан 22 January 2015 в 06:11
2 ответа
<driver name='qemu' type='qcow2' cache='none'/>
     <source protocol='gluster' name='kvm/test.img'>
        <host name='192.168.60.11' port='24007'/>
        <host name='192.168.60.12' port='24007'/>
        <host name='192.168.60.13' port='24007'/>
     </source>
      <target dev='vda' bus='virtio'/>      
</disk> 

Вы можете установить gluster в kvm-узле и сделать kvm-хост с gluster peer probe. После этого kvm хост становится членом кластера, и xml config

<driver name='qemu' type='qcow2' cache='none'/>
     <source protocol='gluster' name='kvm/test.img'>
        <host name='127.0.0.1' port='24007'/>
     </source>
      <target dev='vda' bus='virtio'/>      
</disk> 
1
ответ дан 3 December 2019 в 10:44

Это меньшая проблема, чем кажется на первый взгляд.

Прежде всего, когда вы указываете IP-адрес хоста Gluster во время монтирования клиента (с FUSE или libgfapi), вы только используя это для однорангового зондирования. Как только это зондирование завершено, libfgapi обрабатывает связь между всеми зондируемыми одноранговыми узлами на IP-адресах, которые они предоставляют при зондировании.

Все это хорошо, пока хост, который вы зондируете по явному IP-адресу, не выйдет из строя. Есть несколько вещей, которые вы можете сделать, чтобы этого не произошло. Keepalived или ctdb могут предоставить плавающий IP-адрес, который вы будете использовать только для проверки клиент-сервер. В качестве альтернативы, циклический перебор DNS выполнит это с помощью имен.

Это имя или плавающий IP-адрес не будет использоваться для фактической отправки данных на тома Gluster, а будет только для гарантии того, что зондирование всегда может происходить даже в ухудшенном состоянии environment.

В libvirt это выглядит так:

<driver name='qemu' type='qcow2' cache='none'/>
 <source protocol='gluster' name='kvm/test.img'>
    <host name='gluster-probe' port='24007'/>
 </source>
  <target dev='vda' bus='virtio'/>      
</disk> 

В этом случае я реализовал циклический перебор DNS вне libvirt, так что я могу быть уверен, что это имя всегда преобразуется в хост в gluster одноранговый пул при условии, что хотя бы один активен. После того, как он свяжется с одним, он получает полный список, подключается к хостам в этом списке через IP,и затем счастливо уходит.

2
ответ дан 3 December 2019 в 10:44

Теги

Похожие вопросы