понедельник, 16 декабря 2019 г.

Руководство администратора Proxmox VE R 6.0 Глава 8.

Proxmox VE Administration Guide

Хранилище Proxmox VE

  1. Типы хранилищ
  2. Конфигурация хранилища
  3. Тома
  4. Использование интерфейса командной строки
  5. Directory Backend
  6. NFS Backend
  7. CIFS Backend
  8. GlusterFS Backend
  9. Local ZFS Pool Backend
  10. LVM Backend
  11. LVM thin Backend
  12. Open-iSCSI initiator
  13. User Mode iSCSI Backend
  14. Ceph RADOS Block Devices (RBD)
  15. Ceph Filesystem (CephFS)
Модель хранения Proxmox VE очень гибкая. Образы виртуальных машин могут храниться в одном или нескольких локальных хранилищах или в общем хранилище, например NFS или iSCSI (NAS, SAN). Ограничений нет,и вы можете настроить любое количество пулов хранения. Вы можете использовать все технологии хранения, доступные для Debian Linux.

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

Библиотека хранения (пакет libpve-storage-perl) использует гибкую систему плагинов для обеспечения общего интерфейса для всех типов хранения. Она может быть адаптирована для включения дополнительных типов хранения в будущем.
  1. Типы хранилищ

    Существует в основном два различных класса типов хранилищ:
    Хранилище файлового уровня
    Технологии хранения на уровне файлов позволяют получить доступ к полнофункциональной файловой системе (POSIX). Они в целом более гибкие, чем любое хранилище уровня блока (см. ниже), и позволяют хранить контент любого типа. ZFS, вероятно, самая продвинутая система, и она имеет полную поддержку снимков и клонов.
    Хранилище блочного уровня
    Позволяет хранить большие необработанные образы. Обычно невозможно хранить другие файлы (ISO, резервные копии, ..) на таком типе хранилища. Большинство современных реализаций блочных хранилищ поддерживают моментальные снимки и клоны. RADOS и GlusterFS с распределенной системой хранения, реплицируют данные на различные узлы.
    Таблица 8.1: Доступные типы хранения 
    ОписаниеPVE типУровеньSharedСоздание снимковСтабильный
    ZFS (local)zfspoolfileнетдада
    Directorydirfileнетнет1да
    NFSnfsfileданет1да
    CIFScifsfileданет1да
    glusterfsglusterfsfileданет1да
    cephfscephfsfileдадада
    LVMlvmblockнет2нетда
    LVM-thinlvmthinblockнетдада
    iSCSI/kerneliscsiblockданетда
    iSCSI/libiscsiiscsidirectblockданетда
    Ceph/RBDrbdblockдадада
    ZFS over iSCSIzfsblockдадада
    1: В файловых хранилищах моментальные снимки возможны в формате qcow2.
    2: Можно использовать LVM поверх хранилища iSCSI. Таким образом, вы получаете общее хранилище LVM.
    1. Тонкая Настройка

      Ряд хранилищ, и образы QEMU в формате qcow2 , поддерживает динамическое выделение памяти. При активированной тонкой настройке в хранилище будут записаны только те блоки, которые фактически используются гостевой системой.

      Скажем, например, вы создаете виртуальную машину с жестким диском 32 ГБ, и после установки операционной системы гостевой системы корневая файловая система виртуальной машины содержит 3 ГБ данных. В этом случае только 3 ГБ записываются в хранилище, даже если гостевая виртуальная машина видит жесткий диск 32 ГБ. Таким образом, тонкая настройка позволяет создавать образы дисков, которые больше, чем доступные в настоящее время блоки хранения. Можно создавать большие образы дисков для виртуальных машин, а при необходимости добавлять дополнительные диски в хранилище без изменения размера файловых систем виртуальных машин.

      Все типы хранилищ, которые имеют функцию “моментальные снимки”, также поддерживают тонкую настройку.
      Осторожно!
      Если хранилище заполнено, все гости, использующие Тома в этом хранилище, получают ошибки ввода-вывода. Это может привести к несогласованности файловой системы и повреждению данных. Поэтому рекомендуется избегать чрезмерного использования тонкой настройки ресурсов в вашем хранилище или внимательно следить за свободным пространством, чтобы избежать таких ситуаций.

  2. Конфигурация хранилища

    Все связанные с Proxmox VE конфигурации хранилища хранятся в одном текстовом файле по адресу /etc/pve/storage.cfg

    Поскольку этот файл находится в папке /etc/pve/, он автоматически распределяется по всем узлам кластера. Таким образом, все узлы имеют одинаковую конфигурацию хранилища. Совместное использование конфигурации хранилища имеет смысл для общего хранилища, поскольку одно и то же «общее» хранилище доступно со всех узлов. Но это также полезно для локальных типов хранения. В этом случае такое локальное хранилище доступно на всех узлах, но оно физически отличается и может иметь совершенно разное содержимое.
    1. Пулы Хранения

      Каждый пул хранения имеет <type> и однозначно идентифицируется по его <storage_id>.
      Конфигурация пула выглядит следующим образом:
      <type>: <STORAGE_ID>
      <property> <value>
      <property> <value>
      ...
      
      Строкой <Тип>: <storage_id> начинается определение пула, затем следует список свойств. Большинство свойств требуют значения, но некоторые имеют разумные значения по умолчанию. В этом случае вы можете опустить значение.

      Чтобы быть более конкретным, взгляните на конфигурацию хранилища по умолчанию после установки. Он содержит один специальный локальный пул хранения с именем local, который ссылается на каталог /var/lib/vz и всегда доступен. Программа установки Proxmox VE создает дополнительные записи хранилища в зависимости от типа хранилища, выбранного во время установки.

      Конфигурация хранилища по умолчанию (/etc/pve/storage.cfg)
    2. Общие свойства хранилищ

      Некоторые свойства хранилищ являются общими для различных типов хранения.
      nodes
      Список имен узлов кластера, где это хранилище может использоваться / доступно. Это свойство можно использовать для ограничения доступа к хранилищу для определенного набора узлов.
      content
      Хранилище может поддерживать несколько типов содержимого, например образы виртуальных дисков, образы cdrom iso, шаблоны контейнеров или корневые каталоги контейнеров. Не все типы хранения поддерживают все типы содержимого. Можно установить это свойство, чтобы выбрать, для чего используется это хранилище.
      images
      Образы виртуальных машин KVM-Qemu.
      rootdir
      Разрешить хранить данные контейнеров.
      vztmpl
      Шаблоны контейнеров.
      backup
      Файлы резервных копий (vzdump).
      iso
      ISO-образы
      snippets
      Сниппет файлы, например guest hook скрипты
      shared
      Отметить хранилище как общее.
      disable
      Этот флаг можно использовать для полного отключения хранилища.
      maxfiles
      Максимальное количество резервных копий файлов на виртуальную машину. Используйте 0 для неограниченного.
      format
      Формат образа по умолчанию (raw|qcow2|vmdk)

      Внимание!
      Не рекомендуется использовать один и тот же пул хранения для разных кластеров Proxmox VE. Некоторые операции хранения требуют эксклюзивного доступа к хранилищу, поэтому требуется надлежащая блокировка. Хотя это реализовано в кластере, оно не работает между различными кластерами.

  3. Тома

    Мы используем специальную нотацию для обращения к данным хранилища. При выделении данных из пула хранения он возвращает такой идентификатор Тома. Том идентифицируется символом <STORAGE_ID>, за которым следует имя Тома, зависящее от типа хранилища, разделенное двоеточием. Допустимый <VOLUME_ID> выглядит так:
    local:230/example-image.raw
    local:iso/debian-501-amd64-netinst.iso
    local:vztmpl/debian-5.0-joomla_1.5.9-1_i386.tar.gz
    iscsi-storage:0.0.2.scsi-14f504e46494c4500494b5042546d2d646744372d31616d61
    Чтобы получить путь к файловой системе для <VOLUME_ID>, используйте:
    pvesm путь <VOLUME_ID>
    1. Владелец тома

      Существует отношение собственности для томов типа образ. Каждый такой Том принадлежит виртуальной машине или контейнеру. Например, том local:230/example-image.raw принадлежит VM 230. Большинство серверных систем хранения данных кодирует эту информацию о владельце в имя Тома.

      При удалении виртуальной машины или контейнера система также удаляет все связанные Тома, принадлежащие этой виртуальной машине или контейнеру.
  4. Использование интерфейса командной строки

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

    Тем не менее, существует инструмент командной строки под названием pvesm (“Proxmox VE Storage Manager”), который способен выполнять общие задачи управления хранилищем.
    1. Примеры

      Добавление пулов хранения
      pvesm add <TYPE> <STORAGE_ID > <OPTIONS>
      pvesm add dir <STORAGE_ID> --path <PATH>
      pvesm add nfs <STORAGE_ID> --path <PATH> --server <SERVER> --export <EXPORT>
      pvesm add lvm <STORAGE_ID> --vgname <VGNAME>
      pvesm add iscsi <STORAGE_ID> --portal <HOST[:PORT]> --target <TARGET>
      Отключить пулы хранения
      pvesm set <STORAGE_ID> --disable 1
      Включение пулов хранения
      pvesm set <STORAGE_ID> --disable 0
      Изменение/настройка параметров хранилища
      pvesm set <STORAGE_ID> <OPTIONS>
      pvesm set <STORAGE_ID> --shared 1
      pvesm set local --format qcow2
      pvesm set <STORAGE_ID> --content iso
      Удаление пула хранения.
      Это не удаляет никаких данных, а также не отключает и не размонтирует ничего. Просто удаляется конфигурация хранилища.
      pvesm remove <STORAGE_ID>
      Выделение томов
      pvesm alloc <STORAGE_ID> <VMID > <name> <size> [--format <raw|qcow2>]
      Выделите том 4G в локальном хранилище. Имя генерируется автоматически, если вы передаете пустую строку в качестве <name>
      pvesm alloc local <VMID> '' 4G
      Очистить тома
      pvesm free <VOLUME_ID>

      Внимание!
      Это действительно уничтожает все данные Тома.

      Список статусов хранилищ
      pvesm status
      Список содержимого хранилища
      pvesm list <STORAGE_ID> [--vmid <VMID>]
      Список томов, выделенных VMID
      pvesm list <STORAGE_ID> --vmid <VMID>
      Список iso образов
      pvesm list <STORAGE_ID> --iso
      Список шаблонов контейнеров
      pvesm list <STORAGE_ID> --vztmpl
      Показать путь к файловой системе для Тома
      pvesm path <VOLUME_ID>


2 комментария:

  1. Александр, спасибо огромное за труды по переводу!! Ждал именно эту главу потому как наиболее мне сейчас нужная из оставшихся (ну кроме разве что главы про резервное копирование и восстановление - та вообще особо необходимая). Ещё раз благодарю за упорство и постоянство!

    ОтветитьУдалить