Диск виртуальной машины (ВМ) является образом жёсткого диска. Он может находиться на локальном или сетевом устройстве — хранилище.
VMmanager поддерживает следующие форматы дисков ВМ:
- RAW — содержит необработанные или обработанные в минимальной степени данные. В этом формате ВМ занимает столько места на диске, сколько для неё было выделено при создании;
- Qcow2 — формат дискового образа программы QEMU. В этом формате место на диске, занимаемое ВМ, зависит от реального объёма данных на ней.
При создании кластера вы выбираете хранилища, которые будут в нём использоваться.
VMmanager поддерживает следующие типы хранилищ:
- Файловое хранилище — файловая система узла кластера;
- LVM — менеджер логических томов. Позволяет использовать разные области одного жёсткого диска и/или области с разных жёстких дисков как один логический том;
- Ceph — программно-определяемое отказоустойчивое распределённое сетевое хранилище. Позволяет организовать масштабируемый кластер на нескольких узлах;
- ZFS — файловая система с поддержкой большого объёма данных;
- Сетевое LVM — LVM в сети хранения данных SAN. Узлы кластера работают с хранилищем как с блочным устройством по протоколу iSCSI;
- NAS — сетевое хранилище, обеспечивающее доступ к данным на уровне файлов. NAS может быть использовано для хранения образов ВМ и связанных клонов.
Поддержка форматов для каждого типа хранилища в кластерах с KVM-виртуализацией:
В кластерах с KVM-виртуализацией вы можете использовать файловое хранилище, LVM, Ceph или NAS, в кластерах с LXD-виртуализацией — только ZFS. К кластеру с KVM-виртуализацией можно подключить несколько хранилищ с разными типами. Например, вы можете создать кластер с двумя файловыми хранилищами, одним хранилищем LVM и одним хранилищем Ceph.
При создании кластера одно из хранилищ вы выбираете в качестве основного. Это хранилище будет использоваться по умолчанию для размещения ВМ. Если узел кластера потеряет доступ к основному хранилищу, VMmanager присвоит узлу статус "Повреждён".
Файловое хранилище
В качестве хранилища используется файловая система узла кластера. Размер хранилища ограничивается одним разделом одного диска.
При выборе этого типа хранилища вы можете указать:
- название хранилища;
- директорию для ВМ. По умолчанию — /vm;
- директорию для хранения образов и резервных копий. По умолчанию — /image;
- директорию для хранения операционных систем (ОС). По умолчанию — /share.
LVM
Менеджер логических томов (LVM) — подсистема, позволяющая использовать разные области одного жёсткого диска и/или области с разных жёстких дисков как один логический том.
Размер файловых систем логических томов не ограничивается одним диском, так как том может располагаться на разных дисках и разделах.
Основные обозначения LVM:
- физический том (PV) — раздел диска или диск целиком;
- группа томов (VG) — набор физических томов, объединённый в одно виртуальное устройство;
- логический раздел (LV) — раздел, созданный в группе томов.
При выборе этого типа хранилища вы можете указать:
- название хранилища;
- имя группы томов для ВМ. По умолчанию — lvm0;
- директорию для хранения образов и резервных копий. По умолчанию — /image;
-
директорию для хранения ОС. По умолчанию — /share.
Имена групп томов и директорий для хранения на всех узлах кластера должны быть одинаковые.
При добавлении узла в кластер с LVM VMmanager считает количество VG на узле и ищет VG с указанным именем:
- если есть одна или несколько VG с подходящим именем, то узел будет добавлен;
- если нет ни одной VG, то будет выведена ошибка и добавление узла завершится.
Хранилище LVM может поддерживать только формат образа виртуальных дисков RAW. Подробнее об LVM см. в официальной документации.
Ceph
Ceph — программно-определяемое отказоустойчивое распределённое сетевое хранилище.
С помощью Ceph вы можете организовать масштабируемый кластер узлов. При выходе из строя любого диска, узла или группы узлов Ceph автоматически восстанавливает копию утраченных данных на других узлах. Процесс восстановления данных не вызывает простоя в работе кластера.
Ceph предоставляет для клиента различные варианты доступа к данным: блочное устройство, файловая система или объектное хранилище. VMmanager поддерживает RBD — распределённое блочное устройство с клиентом kernel и QEMU/KVM драйвером. При использовании RBD виртуальные диски распределяются на несколько объектов и в таком виде хранятся в распределённом хранилище Ceph (RADOS). RBD поддерживает только формат образа виртуальных дисков RAW.
Существует два способа хранения данных в Сeph RBD: репликация (replication) и избыточность (erasure). Выбранный способ определяет размер частей данных и количество их копий.
При репликации создаются копии входящих данных — реплики. Реплики хранятся на разных узлах кластера.
При избыточности входящие данные разбиваются на K частей одинакового размера. Дополнительно создаётся M частей того же размера для восстановления данных. Все части распределяются среди K+M узлов кластера — одна часть на узел кластера. Кластер будет поддерживать работоспособность и сохранность данных, пока количество отказавших узлов меньше или равно M.
Функциональность и работоспособность Ceph-кластера поддерживается Ceph-службами:
- MON — служба мониторинга;
- OSD — служба хранилища;
- MDS — сервер метаданных. Необходим, только в случае использования CephFS.
В небольших кластерах допускается использование одного сервера в качестве двух ролей, например, в качестве хранилища данных, а также в качестве монитора. В больших кластерах рекомендуется запускать службы на отдельных серверах.
Подробнее о подключении Ceph см. в разделе Настройка Ceph RBD.
ZFS
ZFS — это файловая система, объединённая с менеджером логических томов. Преимущества ZFS:
- работа с файлами и разделами больших размеров;
- возможность хранения файлов на нескольких устройствах;
- проверка контрольных сумм файлов "на лету";
- возможность создания снапшотов.
Подробнее о ZFS см. в официальной документации.
ZFS использует виртуальные пулы хранения данных. Пул создаётся из виртуальных устройств — физических дисков или RAID-массивов.
VMmanager использует ZFS только в кластерах с LXD-виртуализацией. Образы ВМ хранятся на узле кластера, LXD-контейнеры с ВМ и операционные системы — в пуле ZFS.
Перед подключением сервера к кластеру на сервере нужно настроить ZFS-пул:
- Перед установкой ОС оставьте на диске сервера неразмеченное пространство.
-
Установите утилиту zfsutils-linux:
sudo apt install zfsutils-linux
-
Создайте ZFS-пул:
zpool create <zpool_name> <device>
Пояснения к команде
Сетевое LVM
Для подключения сетевых LVM-хранилищ VMmanager использует сети хранения данных SAN. SAN (Storage Area Network) — технология для подключения внешних устройств хранения данных к серверам. Операционные системы серверов работают с подключёнными устройствами как с локальными: узлы кластера определяют хранилище как блочное устройство.
VMmanager автоматически настраивает LVM-хранилище на блочном устройстве: создаёт PV и VG.
NAS
Подробную информацию см. в статье NAS.