Product SiteDocumentation Site

Глава 31. Работа с хранилищами в OpenNebula

31.1. Типы хранилищ
31.2. Хранилища по умолчанию
31.3. Создание хранилищ
31.3.1. Локальное хранилище
31.3.2. Хранилище NFS/NAS
31.3.3. NFS/NAS и локальное хранилище
31.3.4. Хранилище SAN
31.3.5. Хранилище файлов и ядер

31.1. Типы хранилищ

OpenNebula использует три типа хранилищ данных:
  • хранилище образов (Images Datastore) — используется для хранения образов ВМ, которые можно использовать для создания ВМ;
  • системное хранилище (System Datastore) — используется для хранения дисков ВМ, работающих в текущий момент. Образы дисков перемещаются, или клонируются, в хранилище образов или из него при развертывании и отключении ВМ, при подсоединении или фиксировании мгновенного состояния дисков;
  • хранилище файлов и ядер (Files & Kernels Datastore) — используется для хранения простых файлов, используемых в контекстуализации, или ядер ВМ, используемых некоторыми гипервизорами.
В зависимости от назначения выделяют два типа образов:
  • постоянные (persistent) — предназначены для хранения пользовательских данных (например, БД). Изменения, внесенные в такие образы, будут сохранены после завершения работы ВМ. В любой момент времени может быть только одна ВМ, использующая постоянный образ.
  • непостоянные (non-persistent) — используются для хранения дисков ВМ, работающих в текущий момент. Образы дисков копируются, или клонируются, в хранилище образов или из него при развертывании и отключении ВМ, при подсоединении или фиксировании мгновенного состояния дисков. После удаления ВМ копия образа в системном хранилище также удаляется.
Схема взаимодействия хранилищ
Образы дисков передаются между хранилищем образов и системным хранилищем с помощью драйверов Transfer Manager (TM). Эти драйверы представляют собой специальные элементы ПО, которые выполняют низкоуровневые операции хранения.
Образы сохраняются в соответствующий каталог хранилища (/var/lib/one/datastores/<идентификатор_хранилища>). Кроме того, для каждой работающей ВМ существует каталог /var/lib/one/datastores/<идентификатор_хранилища>/<идентификатор_ВМ> в соответствующем системном хранилище. Эти каталоги содержат диски ВМ и дополнительные файлы, например, контрольные точки или снимки.
Например, система с хранилищем образов (1) с тремя образами и тремя ВМ (ВМ 0 и 2 работают, 7 — остановлена), развернутыми на системном хранилище (0), будет иметь следующую структуру:
/var/lib/one/datastores
|-- 0/
|   |-- 0/
|   |   |-- disk.0
|   |   `-- disk.1
|   |-- 2/
|   |   `-- disk.0
|   `-- 7/
|       |-- checkpoint
|       `-- disk.0
`-- 1
|-- 19217fdaaa715b04f1c740557826514b
|-- 99f93bd825f8387144356143dc69787d
`-- da8023daf074d0de3c1204e562b8d8d2
Драйвер передачи ssh использует локальную файловую систему узлов для размещения образов работающих ВМ. Все файловые операции выполняются локально, но образы всегда приходится копировать на узлы, что может оказаться очень ресурсоемкой операцией.
Драйвер передачи ssh
Драйвер shared предполагает, что на всех узлах установлена и настроена распределенная файловая система, например, NFS. Все файловые операции (ln, cp и т.д.) выполняются на узле виртуализации. Данный метод передачи сокращает время развертывания ВМ и обеспечивает возможность динамического перемещения.
Драйвер передачи shared
Драйвер lvm рекомендуется использовать при наличии высокопроизводительной сети SAN. Один и тот же LUN можно экспортировать на все узлы, а ВМ будут работать непосредственно из SAN. При этом образы хранятся как обычные файлы (в /var/lib/one/datastores//<идентификатор_хранилища>) в хранилище образов, но при создании ВМ они будут сброшены в логические тома (LV). ВМ будут запускаться с логических томов узла.
Драйвер передачи lvm