Can I enable cephx authentication using a pool in qemu/kvm?

Из 20 или около того, по крайней мере, часть занимает установка ОС, и у вас, вероятно, также есть один или несколько гигабайт дискового пространства, занятого пространством подкачки (размер для этот раздел зависит от объема оперативной памяти, выделенной для виртуальной машины).

Если вы увеличите размер диска виртуальной машины, это не приведет к увеличению размера файловой системы, созданной во время установки Ubuntu. Вам нужно будет переразбить диск из Ubuntu (что не совсем тривиально, особенно если на диске есть раздел подкачки после основного), а затем изменить размер файловой системы. Без подробной информации о том, как разбит ваш текущий диск, было бы гадать, как это описать.

Я рекомендую создать новую виртуальную машину Virtualbox. Выделите 50Гб или даже больше.В настройках по умолчанию фактический файл, который является диском для виртуальной машины, получает только тот размер, который используется. Итак, предполагая, что вы устанавливаете 12 ГБ в программном обеспечении после установки Ubuntu (что мне кажется много) и имеете раздел подкачки 2 ГБ, у вас будет файл размером около 14 ГБ, а после установки Xilinx он должен вырасти до максимум 35 ГБ. или около того (вероятно, меньше). Так что остается немного места для роста.

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

4
07.01.2016, 15:04
2 ответа

Как вы говорите, XML не включает раздел auth , поэтому установка домена не удалась, но вы можете добавить auth руководство по части
Отредактируйте /usr/share/virt-manager/virtinst/guest.py следующим образом

#vim /usr/share/virt-manager/virtinst/guest.py
import re
...
#define the auth 
auth_secret = '''
      <auth username='libvirt'>
        <secret type='ceph' uuid='e63e4b32-280e-4b00-982a-9d3xxxxxxx'/>
      </auth>
'''
ceph_monitors = '''
        <host name='172.16.200.104' port='6789'/>
        <host name='172.16.200.105' port='6789'/>
        <host name='172.16.200.106' port='6789'/>
'''

#change func: _build_xml 
    def _build_xml(self, is_initial):
        log_label = is_initial and "install" or "continue"
        disk_boot = not is_initial

        start_xml = self._get_install_xml(install=True, disk_boot=disk_boot)
        final_xml = self._get_install_xml(install=False)

#add------------start
        rgx_qemu = re.compile('(<driver name="qemu"[^>]*?>)')
        rgx_auth = re.compile('(?<=<source protocol="rbd" name=")([^>]*?">).*?(?= *?</source>)',re.S)

        start_xml = rgx_qemu.sub('\\1' + auth_secret,start_xml)
        start_xml = rgx_auth.sub('\\1' + ceph_monitors,start_xml)

        final_xml = rgx_qemu.sub('\\1' + auth_secret,final_xml)
        final_xml = rgx_auth.sub('\\1' + ceph_monitors,final_xml)
#add------------end

        logging.debug("Generated %s XML: %s",
                      log_label,
                      (start_xml and ("\n" + start_xml) or "None required"))
        logging.debug("Generated boot XML: \n%s", final_xml)

        return start_xml, final_xml

Затем запустите virt-install снова

sudo virt-install \
  --connect qemu:///system \
  --virt-type kvm \
  --name $NAME \
  --ram $RAM \
  --vcpus=$VCPUS \
  --disk vol=$POOL/$FILE \
  --location /var/lib/libvirt/images/$IMAGE \
  --vnc \
  --noautoconsole \
  --os-type linux \
  --os-variant rhel7 \
  --network=bridge:virbr0,model=virtio,mac=52:54:00:00:00:$MACLAST_HEX \
  --autostart

Подробнее http://www.isjian.com/ceph/virt-install-create-vm-use-rbd-pool/

2
27.01.2020, 20:59

Текущий способ сделать это (по-прежнему не работает -в версии 3.1):

  1. Секреты установки такие же, как и для любого другого метода
  2. Создайте пул носителей с помощью rbd. XML будет выглядеть примерно так:
 <pool type='rbd'>
 <name>volumes</name> <!-- libvirt pool name -->
 <source>
  <host name='10.1.1.1' port='6789'/>
  <host name='10.1.1.2' port='6789'/>
  <host name='10.1.1.3' port='6789'/>
  <name>volumes</name><!-- ceph pool name -->
  <auth type='ceph' username='hypervisor'>
    <secret uuid='ff831b04-65a6-4b1b-ae53-9318e65158e6'/>
  </auth>
</source>
</pool>

Вероятно, для простоты нужно оставить имена пулов libvirt и ceph одинаковыми

  1. добавьте его (копирование XML в /etc/libvirt/storageи создание ссылки в каталоге ./autostartтакже работает, если вы хотите автоматизировать это, просто нужно перезапустить libvirtd)
virsh pool-define volumes.xml 
virsh pool-start volumes
  1. С этого момента вы можете просто передать vol=poolname/volumenameв параметр --diskдля virt-install, чтобы указать его.
1
26.11.2020, 08:26

Теги

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