Подключение хранилища

Материал из ISPWiki
Перейти к: навигация, поиск

Иерархия: VMmanager KVM -> Настройка кластера
VMmanager Cloud -> Настройка кластера

Хранилище образов виртуальных дисков

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

Подключение хранилища к узлам кластера осуществляется в разделе "Настройки кластера" -> "Шаблоны хранилищ". По умолчанию создан шаблон хранилища с типом “Файловая система” и наименованием File. VMmanager придерживается принципа гомогенности, согласно которому, все узлы кластера должны оперировать одинаковым набором хранилищ. Поэтому, при добавлении хранилища, панель управления автоматически подключает его ко всем узлам кластера, если это сетевое хранилище, и создает хранилище на всех узлах кластера, если это локальное хранилище.

Создание хранилища осуществляется по нажатию кнопки "Создать".

«Подключение хранилища»

Необходимо указать следующие данные:

  • Наименование — название хранилища;
  • Тип — тип хранилища:
    • Файловая система;
    • LVM;
    • Сетевой LVM;
    • iSCSI;
    • RBD;
    • GlusterFS;
    • NFS.
  • Директория на узле кластера — путь к директории, в которой будут храниться образы виртуальных дисков;
  • Формат диска — формат виртуальных дисков, которые будут располагаться в хранилище;
    • qcow2;
    • raw.
  • Зарезервировано — часть хранилища, зарезервированная для системных нужд;
  • Единицы измерения — единицы измерения, в которых указывается зарезервированное место:
    • Проценты;
    • MiB;
    • GiB.
  • Тип кэширования — метод кэширования, используемый для виртуальных машин, диски которых расположены в хранилище:
    • по умолчанию — writethrough;
    • none — кэширование отсутствует;
    • writethrough — сквозная запись. Запись производится непосредственно в основную память (и дублируется в кэш), то есть кэш используется для чтения;
    • writeback — отложенная запись. Запись данных производится в кэш. Запись в основную память производится позже (при вытеснении или по истечении времени), группируя в одной операции несколько операций записи в соседние ячейки;
    • directsync — дочерняя система использует тип writethrough, хост не использует кэширования. Каждая операция записи выполняет fsync. Необходимо, чтобы установленная версия QEMU поддерживала данный тип кеширования;
    • unsafe — данные кэшируются гипервизором и запросы от гостевой машины на синхронизацию данных игнорируются. Большая вероятность потери данных.
  • Режим A|O — режим работы асинхронного ввода-вывода:
    • по умолчанию — режим "native". Требует отключения кэширования на хост-сервере (тип кэширования "none" или "directsync");
    • threads — рекомендуется использовать для файловых хранилищ.
  • Описание — дополнительная информация. Отображается в списке шаблонов хранилищ в столбце "Состояние".

Для сетевых хранилищ также требуется указать данные доступа.

Рекомендуется создавать основной виртуальный диск, на котором будет располагаться операционная система и маловажные данные, на локальном хранилище; все важные данные хранить на виртуальных дисках, располагающихся на сетевом хранилище. Основное отличие сетевых хранилищ состоит в их удаленном расположении, что позволяет экономить место на узлах кластера, обеспечивать большую отказоустойчивость, упростить процесс миграции виртуальных машин. Однако, как правило, по скорости работы с диском сетевое хранилище уступает локальному.

Форматы хранилищ

Панель управления поддерживает следующие форматы виртуальных дисков виртуальных машин:

  • RAW — формат данных, содержащий необработанные (или обработанные в минимальной степени) данные. При использовании формата RAW виртуальная машина занимает столько места на диске, сколько выделено при создании;
  • Qcow2 — формат дискового образа программы QEMU. При использовании формата Qcow2 виртуальная машина занимает столько места на диске, сколько реально на ней данных.

Рекомендуется использовать формат Qcow2.

Существует возможность конвертации виртуальных дисков из хранилища с форматом RAW в хранилище с форматом Qcow2.

Локальные хранилища

Файловая система (DIR)

Как правило, создаваемое хранилище ограничивается одним разделом одного диска.

LVM

Менеджер логических томов — подсистема, позволяющая использовать разные области одного жесткого диска и/или области с разных жестких дисков, как один логический том.

Размер файловых систем логических томов не ограничивается одним диском, так как том может располагаться на разных дисках и разделах.

Основные обозначения LVM:

  • PV (Physical Volume) — физические тома (разделы дисков или целые «неразбитые» диски);
  • VG (Volume Group) — группа томов (набор физических томов (PV), объединенный в группу, составляющую единый диск);
  • LV (Logical Volume) — логические разделы (раздел, созданный на физическом пространстве группы томов (VG)).

При создании LVM-хранилища панель управления проверяет наличие группы томов (VG) с указанным именем хранилища. Если группа томов с таким именем существует, то хранилище инициализируется. Если группа томов не найдена, то VMmanager ищет разделы и жесткие диски на сервере, на которых можно создать группу томов. Разделы или жесткие диски, на которых можно разместить группу томов:

  • Жесткий диск, на котором нет ни одного раздела;
  • Раздел жесткого диска с файловой системой linux-lvm внутри.

Если такие разделы или жесткие диски не найдены, то VMmanager не позволит создать хранилище типа LVM на физическом сервере.

Хранилище LVM может поддерживать только формат образа виртуальных дисков RAW.

Документация LVM доступна на сайте


Особенности форматов DIR и LVM:


DIR LVM
RAW Qcow2 RAW
Размер тома Выделяется сразу целиком Может быть увеличен при необходимости по мере заполнения Может быть увеличен или уменьшен по мере необходимости
Управление Легкое Легкое Сложное
Поддержка снапшотов Нет Есть Есть
Производительность Немного выше DIR-Qcow2 Немного ниже DIR-RAW Немного выше DIR-RAW


О производительности локальных типов хранилищ смотрите раздел документации "Сравнение производительности локальных хранилищ".

Сетевые хранилища

В качестве сетевых хранилищ данных используются iSCSI, NFS, сетевое LVM-хранилище, RBD, GlusterFS. RBD и GlusterFS могут быть выделены отдельно как отказоустойчивые сетевые хранилища. При создании шаблона сетевого хранилища обязательно указываются настройки доступа (hostname или IP-адрес сервера, в зависимости от типа сетевого хранилища - директория расположения образов виртуальных дисков).

iSCSI

В качестве хранилища используется удаленный сервер, доступ к которому осуществляется по протоколу блочного уровня - iSCSI. Протокол iSCSI описывает передачу SCSI-пакетов по стеку протоколов TCP/IP.


SCSI (the Small Computer Systems Interface) - семейство протоколов, предназначенных для взаимодействия с устройствами ввода/вывода, в особенности с устройствами хранения информации. Архитектура SCSI - клиент-серверная. Клиенты, называемые "инициаторами", выполняют SCSI-команды для создания запросов к компонентам (логическим единицам) серверов, называемых "таргетами" (или "целевыми устройствами").

VMmanager работает с реализацией iSCSI-протокола для GNU/Linux - Open-iSCSI.

Документация iSCSI доступна на сайте

Настройка iSCSI-хранилища подробно описана в разделе документации iSCSI-хранилище.

NFS

В качестве хранилища используется удаленный сервер, доступ к которому осуществляется по протоколу файлового уровня - NFS (the Network File System).

NFS в своей основе использует систему удаленного вызова процедур ONC RPC (Open Network Computing Remote Procedure Call), разработанную на основе протокола вызова удаленных процедур RPC (Procedure Call Model).

Модель удаленного вызова процедур описывается следующим образом: поток управления связывает процесс вызова сервера от клиента и процесс сервера. Процесс клиента сначала отправляет сообщение с вызовом и запросом серверному процессу и ждет ответное сообщение. Запрос включает параметры процедуры, а ответное сообщение включает в себя результаты процедуры. После получения ответного сообщения результаты процедуры извлекаются и передаются клиенту. На стороне сервера процесс неактивен, ожидая вызова. При вызове серверный процесс извлекает параметры процедуры, вычисляет результаты, отправляет ответное сообщение, а затем ожидает следующий вызов.

Транспортная передача в ONC RPC осуществляется по протоколам TCP, UDP, XDR.

Актуальная версия NFS - NFSv4.

Документация NFS доступна на сайте

Установка и настройка NFS-хранилища подробно описана в разделе документации NFS-хранилище.

Сетевое LVM-хранилище

Сетевое LVM-хранилище представляет собой аналог обычного LVM, но физический том, на котором находится группа томов, является сетевым устройством.

Доступ к удаленному серверу осуществляется по протоколу iSCSI.

Установка и настройка сетевого LVM-хранилища подробно описана в разделе документации Сетевое LVM-хранилище.

Отказоустойчивые сетевые хранилища

Ceph и GlusterFS - распределенные файловые системы, представляющие из себя легко масштабируемый кластер узлов, выполняющих различные функции, обеспечивая хранение и репликацию данных, а также распределение нагрузки, что гарантирует высокую доступность и надежность. При выходе любого диска, узла или группы узлов из строя Ceph и GlusterFS обеспечивают сохранность данных и в автоматическом режиме восстанавливают утраченные копии на других узлах до тех пор, пока вышедшие из строя узлы или диски не будут заменены на рабочие. При этом работоспособность поддерживается без секунды простоя и прозрачно для клиентов.

Ceph RBD

Ceph предоставляет для клиента различные варианты доступа к данным: блочное устройство, файловая система или объектное хранилище. VMmanager поддерживает RBD - распределенное блочное устройство с клиентом kernel и QEMU/KVM драйвером. При использовании RBD виртуальные диски распределяются на несколько объектов и в таком виде хранятся в распределенном хранилище Ceph (RADOS). Функциональность и работоспособность Ceph-кластера поддерживают службы, устанавливаемые поверх операционной системы:

  • Monitors (MON): служба Ceph-mon поддерживает карты состояния кластера, включая MON, MGR, OSD, CRUSH карты. Данные карты требуются для координации служб Ceph друг с другом. Также Ceph-mon отвечает за процесс аутентификации между службами и клиентами. Рекомендуется использовать как минимум 3 MON;
  • Managers (MGR): служба Ceph-mgr отвечает за отслеживание показателей времени выполнения и текущего состояния кластера Ceph, включая использование хранилища, текущие показатели производительности и загрузки системы. Также Сeph-mgr используется для размещения плагинов на основе python для отображения и управления информацией Ceph-кластера. Рекомендуется использовать как минимум 2 MGR;
  • Object Storage Daemon (OSD): служба Ceph-osd отвечает за хранение, репликацию, восстановление, перебалансировку данных, взаимодействует со службами MON и MGR, предоставляя им информацию о наличии и отсутствии других OSD. Рекомендуется использовать как минимум 3 OSD;
  • Metadata Server (MDS): служба ceph-mds обеспечивает хранение метаданных Ceph Filesystem. Обратите внимание, что MDS не требуется для Ceph Block Devices и Ceph Object Storage.

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

В качестве узла кластера Ceph может быть использован узел кластера VMmanager. Однако это не рекомендуется, так как приводит к высокой нагрузке на сервер и, в случае выхода такого сервера из строя, к необходимости восстановления как хранилища, так и узла кластера VMmanager.

Хранилище RBD может поддерживать только формат образа виртуальных дисков RAW.

Документация Ceph доступна на сайте

Для настройки хранения виртуальных машин в распределенном хранилище Ceph сиспользованием RBD требуется:

GlusterFS

Обратите внимание, что GlusterFS можно подключить только к кластеру VMmanager, который работает на операционной системе CentOS 7.

При использовании GlusterFS виртуальные диски распределяются на несколько объектов и в таком виде хранятся в распределенном хранилище. Распределенное хранилище состоит из томов, физически расположенных на разных серверах. Существуют следующие способы записи данных на тома:

  • Distributed — распределенный том, данные распределяются равномерно по всем серверам без дублирования. Такие тома никак не защищены средствами GlusterFS. В случае выхода из строя сервера или его дисков, данные находящиеся на нем будут недоступны.
  • Replicated — том с репликацией, данные записываются минимум на два сервера.
  • Striped — том с чередованием, все поступающие данные разбиваются на части и параллельно записываются на разные сервера. При запросе данные в обратном порядке считываются с серверов. В результате выхода из строя одного сервера или его диска, том приходит в негодность до восстановления неисправного узла.
  • Distributed Striped — распределение с чередованием, данные распределяются равномерно между подтомами; в рамках каждого подтома данные разбиваются на части и параллельно записываются на разные сервера.
  • Distributed Replicated — распределение с репликацией, данные распределяются равномерно между подтомами; в рамках каждого подтома данные записываются минимум на два сервера. Такой вариант обладает повышенной надежностью.

GlusterFS не требует централизованного сервера метаданных.

Хранилище GlusterFS может поддерживать как формат образа виртуальных дисков RAW, так и Qcow2.

Документация Gluster FS доступна на сайте.

Подробно о настройке хранилища GlusterFS смотрите раздел документации "GlusterFS хранилище".