Глава 3. Под капотом Proxmox
Содержание
- Глава 3. Под капотом Proxmox
- Файловая система Proxmox
- Структура каталога Proxmox
- Препарирование файлов настройки
- Файл настройки кластера
- Файл настройки хранилища
- Файл настройки пользователя
- Файл настройки паролей
- Файл настройки виртуальной машины KVM
- Параметры в файле настройки KVM
- Файл настройки контейнера LXC
- Файл настройки версии
- Узлы участники
- Файл перечня виртуальных машин
- Файл журнала кластера
- Файл настройки Ceph
- Файл настройки межсетевого экрана
- Выводы
В предыдущей главе мы увидели как выглядит GUI Proxmox и как отображается его функциональность. В этой
главе мы рассмотрим как файлы настройки удерживают платформу виртуализации Proxmox вместе, файлы, которые
следует применять для расширенной настройки и то, как искать неисправности платформы Proxmox. Proxmox
строится на Debian Linux, который является очень стабильным и обладает большим активным сообществом.
Поэтому он наследует сильную зависимость от файлов .conf
в качестве
первичного средства хранения различных настроек. GUI Proxmox снабжает вас возможностью управления кластером,
однако не обеспечивает прямым доступом ни к каким файлам настроек. Любые прямые изменения продвинутым
пользователем должны выполняться через интерфейс командной
строки (CLI,
command-line interface). Обычно применяемые сценарии, например, добавление специальных параметров в
файлы настроек выполняются с применением CLI. В этой главе мы охватим следующие темы:
-
Файловую систему кластера Proxmox, или pmxcfs
-
Структуру каталога Proxmox
-
Месторасположение файлов настройки и их функции
-
Аргументы и синтаксис используемые в файлах настройки
Proxmox является гипервизором на основе кластера. Это означает, что он будет использоваться на различных серверных узлах. Применяя множество узлов в кластере мы предоставляем избыточность или высокую доступность (HA, High Availability) своей платформе поскольку увеличиваем время непрерывной работы. Промышленная виртуальная среда может иметь от десятков до нескольких сотен узлов в кластере. Для администратора может оказаться нереальным изменение файлов настройки в его кластере на каждом узле за раз. В зависимости от числа узлов в этом кластере, замена одного небольшого параметра в файле настройки может занять несколько часов для всех узлов. Для сохранения драгоценного времени Proxmox реализует кластерную файловую систему для поддержания всех файлов настройки или любых других общих файлов, совместно используемых всеми узлами в данном кластере в синхронном состоянии. Официально она именуется как Proxmox Cluster file system (pmxcfs). pmxcfs является движимой базой данных файловой системой, используемой для хранения файлов настроек. Любые изменения сделанные в любых файлах или копирование/ удаление файлов в этой файловой системе получает репликацию в реальном времени на все узлы с применением Corosync. Механизм кластера Corosync является системой взаимодействия групп, применяемой для реализации высокой доступности (HA) в пределах приложения. Вы можете получить дополнительную информацию о Corosync посетив http://corosync.github.io/corosync/.
Всякий добавленный в эту файловую систему файл почти немедленно реплицируется на все узлы в данном кластере, тем самым сохраняя значительное количество времени системному администратору.
Замечание | |
---|---|
Файловая система pmxcfs является управляемой базой данных файловой системой, используемой для хранения файлов настройки кластера Proxmox или любых других других используемых обычно совместно файлов на всех узлах в вашем кластере Proxmox. Чтобы узнать больше о pmxcfs, посетите wiki Proxmox по адресу: http://pve.proxmox.com/wiki/Proxmox_Cluster_file_system_(pmxcfs). |
Файловая система pmxcfs монтируется в следующем пути:
# /etc/pve
Все относящиеся к кластеру файлы хранятся в этой папке пути.
Proxmox поставляется с выраженной в явном виде структурой каталогов в которой хранятся все файлы настроек и прочие необходимые файлы. Это делает очень удобным поиск таких файлов настройки в то время, когда они понадобились. Следующая таблица отображает местоположение хранимых файлов и их функции:
Путь каталога | тип данных |
---|---|
|
Файл настройки Proxmox VE datacenter. Применяется для изменения таких параметров как язык по умолчанию, раскладка клавиатуры, консоль по умолчанию и т.п. |
|
Главный файл настройки кластера. В более ранних версиях до Proxmox VE 4.0 назывался |
|
Файл настройки хранилища PVE. Содержит всю информацию по локальным или совместно используемым хранилищам данных. |
|
Перечень пользователей и настройки прав доступа для всех пользователей и групп в кластере. |
|
Общедоступные ключи для системы квитанций. |
|
Если кластер Ceph встроен в Proxmox, для Ceph сздаётся этот файл настроек. |
|
Задачи резервного копирования по всему кластеру, которые не являются специфичными для отдельного узла. Это файл нельзя изменять вручную. Все его элементы автоматически создаются в меню вашего GUI Backup. |
|
Теневой файл паролей для пользователей. |
|
Частные ключи авторизации применяемые для системы квитанций. |
|
Кольцо ключей используемое для подключения хранилищ Ceph RBD. Мы рассмотрим Ceph в Главе 4. Системы хранения. |
|
Правила межсетевого экрана для всех ВМ. |
|
Общедоступные (public) ключи SSL для веб- сервера кластера. Применяются для доступа к Proxmox WebGUI. |
|
Частный (private) ключ SSL. |
|
Правила межсетевого экрана для хоста Proxmox. |
|
Данные настроек виртуальных машин для ВМ KVM. |
|
Данные настроек виртуальных машин для контейнеров LXC. |
|
Файл данных версии для определения изменений файла. |
|
Информация об узлах, которые являются членами данного кластера. |
|
Список всех ВМ в данном кластере. |
|
Последние 50 записей в журнале кластера. |
|
Самые последние записи в данных RRD. |
Все изменения сделанные в этих файлах или любых других файлах внутри pmxcfs
смонтированные в каталоге /etc/pve
получают репликации автоматически.
По этой причине мы должны быть особенно аккуратными с тем, что мы делаем с данными файлами. Например,
мы удалили файл .conf
на одном из узлов по ошибке. он также будет
удалён со всех остальных узлов в кластере Proxmox.
Замечание | |
---|---|
Обычной практикой должно стать резервное копирование папки |
При обычной ежедневной работе у системных администраторов нет необходимости доступа к этим файлам из командной строки поскольку почти все они редактируются из GUI Proxmox. Однако знание местоположения этих файлов и того, что они содержат может сохранить ваш день когда GUI становится недоступным по какой- либо причине.
Теперь мы знаем где хранятся все важные файлы, которые сохраняют кластер Proxmox единым целым. Мы
рассмотрим подробности некоторых из этих файлов для лучшего понимания того что они делают и какие параметры
команд используют. Вы можете использовать любой редактор Linux для просмотра/ изменения этих файлов настроек.
В данной книге мы применяем для просмотра и внесения изменений #nano
.
В процессе обучения будет неплохо делать резервные копии файлов настройки перед их изменением. В случае, если что- то пойдёт не так, вы сможете заместить его первоначальным работающим файлом. Просто скопируйте этот файл настройки при помощи следующей команды:
# cp /etc/pve/<config_file> /home/<any_folder>
Также мы можем применить команду SCP
для резервного копирования
файлов на другой узел:
# scp /etc/pve/<config_file> <user>@<ip_or_hostname>:/<folder>
Файл настройки corosync.conf
хранит параметры, необходимые
для работы кластера. Любая пустая строка, или строка, начинающаяся с символа #
полностью игнорируется. Следующий код является тем, как наш файл corosync.conf
в настоящее время выглядит в нашем примере кластера с двумя узлами Proxmox. Файл настройки кластера Proxmox
расположен в /etc/pve/corosync.conf
.
logging {
debug: off
to_syslog: yes
}
nodelist {
node {
nodeid: 2
quorun_votes: 1
ring0_addr: pm4-2
}
node {
nodeid: 1
guorun_votes: 1
ring0_addr: pm4-1
}
}
quorum {
provider: corosyne_votequorum
}
totem {
cluster_name: MasterPmx2ndEd
config_version: 2
ip_version: ipv4
secauth: on
version: 2
interface {
bindnetaddr: 172.16.0.171
ringnumber: 0
}
Теперь вы собираетесь углубиться в corosync.conf
для
отображения функций его параметров. Этот файл настройки автоматически создаётся при создании нового
кластера Proxmox. В этом файле имеется четыре сегмента, а именно:
-
logging { }
-
nodelist { }
-
quorum { }
-
totem { }
logging { }
Этот раздел содержит параметры настройки для протоколирования. Согласно параметрам в нашем примере,
отладка выключена и журнальные записи передаются в в syslog
. Если
мы хотим включить отладку и передавать журнальные записи в logfile
вместо syslog
, наши параметры будут выглядеть следующим образом.
Мы также можем присоединять ко всем элементам протокола timestamp
:
logging {
debug: on
to_logfile : yes
to_syslog : no
timestamp : on
}
/var/log/<filename>.log {
daily
rotate 5
copytruncate
}
Отметим, что мы хотим если мы хотим передавать ведение журнала в logfile
,
нам необходим дополнительный сегмент logfile { }
наряду с параметрами
logrotate
и copytruncate
.
nodelist { }
Как и подразумевает его назввание, этот сегмент является местом, где перечисляются все узлы участники
кластера Proxmox. Каждый узел подразделяется отдельным подразделом node { }
.
Далее следуют три главных параметра в том порядке, как они идут в файле настроек нашего кластера.
nodeid
Этот параметр показывает порядковый номер узла- участника по мере его добавления в общий кластер. Он
факультативен для IPv4, однако обязателен при применении IPv6. Каждый nodeid
должен быть уникальным в вашем файле настроек кластера. Если не используется никакой параметр
nodeid
при применении IPv4, кластер автоматически вычисляет этот
ID из 32-битного адреса IPv4. При применении IPv6 такое вычисление не производится, так как IPv6 содержит
более 32 бит.
Предостережение | |
---|---|
Никогда не применяйте |
quorum_votes
Данная опция отображает число голосов, которое этот узел должен подавать для формирования
quorum
. В кластере Proxmox не существует более одного голоса на узел.
Раз уж это число присутствует, оно должно быть одинаковым для всех узлов. Просто не существует причины
использовать что- то отличное от 1
.
ring0_addr
Эта строка в основном описывает IP адрес или имя хоста данного узла. Действительный формат этой опции
выглядит как ringX_addr
, где X
является номером кольца. Когда для целей избыточности применяется множество сетевых интерфейсов, в
corosync
реализуется протокол избыточных колец. Каждому из
этих интерфейсов назначается уникальный ringnumber
. Этот уникальный
ringnumber
просит интерфейс соединиться с соответствующим протоколом
кольца. Например, в нашем примере кластера, если мы применяем второй интерфейс для избыточности, сегмент
node { }
будет выглядеть следующим образом:
node {
nodeid: 2
quorum_votes: 1
ring0_addr: 172.16.0.71
ring1_addr: 192.168.0.71
}
quorum { }
Этот сегмент сообщает кластеру какой алгоритм кворума применять для формирования quorum
.
Для версии corosync
2.3.5 существует только один доступный поставщик,
а именно, votequorum
. Этот алгоритм гарантирует что не существует
ситуации раздвоения сознания и quorum
формируется только когда
подаётся большинство голосов. Не существует никаких дополнительных параметров для этого сегмента.
totem { }
Этот сегмент определяет параметры для протокола totem. Corosync
состоит из Totem Single Ring Protocol
(SRP) и Totem Redundant Ring Protocol(RRP).
Этот сегмент также содержит интерфейс подраздела { }
для определения
адреса сцепления (bind) и номера кольца.
Совет | |
---|---|
Когда используется только один интерфейс для кластерного взаимодействия, реализуется Totem SRP.
В этом протоколе используется только |
В процессе создания нашего примера кластера proxmox вырабатывает следующие параметры:
cluster_name: MasterPmx2ndEd
Этот параметр определяет имя кластера, которое вводится при создании нами кластера Proxmox с применением следующей команды:
# pvecm create <cluster_name>
config_version: 2
Этот параметр определяет номер версии файла настройки после каждого изменения по всему кластеру, например, добавление или удаление узла- участника. Когда какие- либо изменения выполняются вручную, напрямую в файл, обязательно также выполнять вручную увеличение этого номера версии. Значение должно увеличиваться только инкрементально.
ip_version: IPv4
Этот параметр определяет используемую версию IP. По умолчанию применяется IPv4. Чтобы использовать версию 6 для IP, просто воспользуйтесь параметром IPv6.
secauth: on
Этот параметр сообщает кластеру о необходимости применять аутентификацию SHA1 для шифрования всех передаваемых сообщений. Хотя этот параметр добавляет дополнительные накладные расходы для всех передаваемых сообщений, тем самым уменьшая общую пропускную способность, очень важно применять шифрование для защиты кластера от посягательств. Этот параметр является значением по умолчанию в Proxmox.
Отметим, что параметр secauth
для corosync
не рекомендуется. Для поддержки corosync
рекомендуется применять
crypto_hash
и crypto_cipher
.
Однако в Proxmox 4.1 secauth
всё-таки используется по умолчанию.
Ниже приводится пример того, как рекомендуемые установки должны выглядеть в сегменте
totem
:
totem {
crypto_hash: sha1
crypto_cipher: aes256
}
На момент написания этой книги разработчики Proxmox не подтвердили можно ли будет безопасно применять
crypto_hash
и crypto_cipher
вместо secauth
.
version: 2
Этот параметр определяет вашу версию настроек. В настоящий момент единственной версией для данного
параметра является 2
. Она не является инкрементальной версией
файла настройки, которая изменяется при каждом изменении.
Помимо упомянутых ранее параметров существуют некоторые другие параметры, доступные в сегменте totem для различных целей. Следующая таблица отображает некоторые из этих параметров и их функции:
Параметр | Описание |
---|---|
|
Доступные значения: Этот параметр определяет режим избыточности протокола. Когда существует только один интерфейс,
|
|
Доступные значения: от Определяет MTU интерфейса. Полезен в случае применения кадров jumbo. Linux добавляет 18-байтовый заголовок к пакетам сетевых данных. Поэтому даже несмотря на то, что аппаратура может поддерживать MTU 9000, будет предусмотрительным устанавливать MTU в значение 8982. Таким образом, после добавления Linux дополнительных заголовков, общее значение MTU не превысит 9000 и оборудование будет вести себя как следует. Эти советы MTU применимы всякий раз, когда применяются кадры jumbo. |
|
Доступные значения: Определяет транспортный протокол. По умолчанию |
interface { }
Это подраздел сегмента totem
, в котором определяется информация,
относящаяся к сетевому интерфейсу. По умолчанию Proxmox вводит в этом подразделе только параметры
bindnetaddr
и ringnumber
:
bindnetaddr : <ip/network_address>
Данный параметр определяет адрес IP или сетевой адрес, с которым должен сцепляться
Corosync
. Это может быть любой IP адрес узла в вашем кластере.
Обычно это IP адрес адрес того узла, на котором выполнялась команда первоначального создания кластера
Proxmox.
ringnumber: 0
Это параметр, определяющий отдельный номер кольца для каждого сетевого интерфейса. Уникальный
ringnumber
для каждого интерфейса позволяет определять какое
кольцо должно применяться для какого интерфейса. Например, в одиночном интерфейсе, в котором определён
Totem RRP, существует только одно кольцо с ringnumber 0
.
При дуальном интерфейсе существуют два кольца с ringnumber 0
и
ringnumber 1
. Отметим, что нумерация колец должна начинаться с
0
.
Существует ряд других дополнительных доступных параметров, которые не применяются по умолчанию. Следующая таблица отображает эти параметры и их функции:
Параметр | Описание |
---|---|
|
Определяет адрес группового обмена, используемый |
|
Определяет номер порта |
Если мы разместим все обсуждаемые до сих пор параметры totem
вместе, corosync.conf
для нашего примера кластера будет выглядеть
следующим образом, в случае применения избыточного интерфейса:
totem {
cluster_name: MasterPmx2ndEd
config_version: 4
ip_version: ipv4
crypto_hash: sha1
crypto_cipher: aes256
version: 2
rrp_mode: passive
interface {
bindnetaddr: 172.16.0.71
ringnumber: 0
mcastaddr: 224.1.1.1
mcastport: 5405
}
Interface {
bindnetaddr: 172.16.1.71
ringnumber: 1
mcastaddr: 224.1.1.2
mcastport: 5408
}
}
Это файл настройки, в котором определяется система хранения, которая будет применяться в Proxmox.
Файл настройки расположен в /etc/pve/storage.cfg
. Мы рассмотрим
различные системы хранения в Главе 4. Системы хранения.
Ниже приводится содержимое нашего файла настройки хранилища в нашем примере кластера. В настоящее время у нас
есть совместно используемые хранилища local
,
nfs
, iscsi
и
lvm
, а также хранилище ZFS, подключённые к нашему кластеру
Proxmox:
dir: local
path /var/lib/vz
content images,iso,vztmpl,rootdir
maxfiles 0
nfs: ISO-nfs-01
path /mnt/pve/ISO-nfs-01
server 192.165.145.11
export /mnt/pmxnas01
options vers=3
content iso,vztmpl
maxfiles 1
iscsi: nas-iscsi-01
target iqn.2015-12.org.example.istgt:pmxtgt01
portal 192.165.145.11
content none
lvm: nas-lvm-01
vgname nas-lvm-01
base nas-iscsi-01:0.0.0.scsi-330000000391132dd
shared
content images
nfs: vm-nfs-01
path /mnt/pve/vm-nfs-01
server 192.165.145.11
export /mnt/pmxnas01
options vers=3
content images,vztmpl,backup,rootdir
maxfiles 1
zfspool: zfs-01
enable
pool zfs_pool
content images, rootdir
Почти все настройки в storage.cfg
могут быть изменены в GUI
Proxmox без использования каких- либо средств CLI.
Подключаемые хранилища соблюдают следующий общий формат в storage.cfg
:
storage_type : storage_name
path </путь к папке>
target <имя файла таргета> (for iSCSI)
portal <адрес IP сервера> (for iSCSI)
vgname <имя группы томов> (for LVM)
base <база группы томов> (for LVM)
server <IP адрес сервера хранения>
export </совместный ресурс на сервере NFS>
content <тип файлов, которые может размещать данное хранилище>
maxfile <макс. число подлежащих хранению старых резервных копий>>
Файл user.cfg
содержит полную информацию о пользователях, группах,
а также управлении доступом в вашем кластере и размещается в /etc/pve/user.cfg
.
Он следует приводимому ниже формату для хранения всей информации о пользователях:
-
Для информации о пользователях формат таков:
<type>:<user>@realm:enable:expiry:f_name:l_name:email:comment
-
Для информации о группах формат таков:
<type>:<group_name>:user@realm:comment
-
Для информации о пуле формат таков:
<type>:<pool_name>:<assigned_resource>:user@realm:comment
-
Для информации об управлении доступом формат таков:
<type>:<assigned_resource>:user@realm:comment:<assigned_role>
Основываясь на этом формате, следующий снимок экрана показывает как выглядит наш файл
user.cfg
для нашего примера кластера:
user:demo1@pve:1:0:Demo:User 1:demouser1@symmcom.com:::
user:root@pam:1:0:::wahmed@symmcom.com:::
user:wahmed@pve:1:0:Wasim:Ahmed:wahmed@symmcom.com:::
poo1:Win_VMs:All Windows VMs:::
poo1:Lab_1:VMs used in Lab environment:110,100:local:
pool:Linux_VMs:All Linux VMs:::
acl:1:/pool/Lab_1:wahmed@pve:PVEPoolAdmin:
acl:1:/vms/110:wahmed@pve:PVEVMAdmin:
acl:1:/vms/110:demo1@pve:PVEVMUser:
Отметим, что файл user.cfg
не содержит никакие пароли пользователей.
Эта информация хранится в /etc/pve/priv/shadow.cfg
в зашифрованном
виде. Всё содержимое в этом файле настроек может управляться через GUI Proxmox. Всякий раз, когда мы создаём
новых пользователя/ группу или назначаем роль, обновляется данный файл настроек. Если GUI становится
недоступным, данный файл можно изменять вручную.
Файл настроек паролей размещается в /etc/pve/priv/shadow.cfg
и хранит все пароли для пользователей в вашем кластере. Его формат достаточно прост, однако функция этого
файла очень критична. Формат хранения информации о пароле таков:
<user_name>:<encrypted_password>
Отметим, что файл паролей размещается в каталоге /priv
внутри
/etc/pve
. Чувствительная информация, такая как пароли, частные ключи
авторизации и известные хосты хранятся в папке /etc/pve/priv
.
При создании нового пользователя в GUI Proxmox сюда добавляется новая запись.
Файл vmid.conf
хранит информацию о настройке для каждой виртуальной
машины и расположен в /etc/pve/nodes/<name>/qemu-server/<vmid>.conf
.
Структура каталога подразделяет все файлы настройки ВМ на категории на основе узлов. Например,
файл настройки для нашей ВМ с ID#110
хранится в следующем
местоположении:
# /etc/pve/nodes/pm4-1/qemu-server/110.conf
При миграции ВМ с одного узла на другой Proxmox просто перемещает файл настройки на узел назначения.
Если данная ВМ включена в процессе миграции, то всё содержимое памяти этой ВМ также мигрирует на указанный
узел назначения. Для нашей ВМ 110
если мы перемещаем её на
pm4-2
, второй узел в кластере, то местоположение файла
110.conf
станет следующим:
# /etc/pve/nodes/pm4-2/qemu-server/110.conf
Совет | |
---|---|
Если узел с виртуальной машиной на нём становится недоступным, простое перемещение файлов
|
Теперь мы рассмотрим файл <vmid>.conf
сам по себе, чтобы
рассмотреть что формирует виртуальную машину за пределами сцены. данный файл настройки следует простому
формату OPTION: value
. Ниже приводится файл настройки для нашей ВМ
110
:
balloon: 128
bootdisk: virtio0
cores: 1
ide2: none,media=cdrom
kvm: 0
memory: 512
name: Ubuntu-1
net0: virtio=06:4B:8B:5C:B5:3D,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
parent: Clean_Install
smbios1: uuid=a80ce6f7-9f21-4ab2-b5ac-6daacade3199
sockets: 1
virtio0: local:110/vm-110-disk-1.qcow2,size=5G
Почти все параметры в этом файле могут быть установлены посредством GUI Proxmox в меню закладки параметров виртуальной машины KVM. Некоторые значения опций, такие как аргументы, должны быть добавления с применением CLI. Следующая таблица показывает некоторые из таких возможных опций. Эти значения могут применяться в качестве настроек виртуальной машины:
Параметр | Описание | Возможные значения | |
---|---|---|---|
|
Разрешает/ запрещает ACPI для ВМ. |
|
|
|
Предоставляет вам возможность передавать аргументы в ВМ. При помощи аргументов KVM может быть активирована функциональность подобная звуку. Отсылаем к разделу Параметры в файле настройки KVM за подробностями по используемым в KVM параметрам. |
см. раздел Параметры в файле настройки KVM |
|
|
Автоматически повторно запускает виртуальную машину после её крушения. Значение
по умолчанию |
|
|
|
Назначение ОЗУ для ВМ в МБ. |
Целое число |
|
|
Загрузочное устройство по умолчанию. |
| |
|
Делает возможной загрузку со специфического диска. |
|
|
|
Число ядер на сокет. Значение по умолчанию равно |
Целое число |
|
|
Типы эмулируемых ЦПУ. Значение по умолчанию равно |
|
|
|
Это весовое значение вашего ЦПУ для данной ВМ. Данное значение применяется планировщиком
равноправия ядра. Чем больше это значение, тем больше времени ЦПУ будет получено ВМ.
Отметим, что это значение является относительным к весам всех остальных работающих в кластере ВМ.
Значение по умолчанию равно |
Целое число от |
|
|
Описание данной ВМ. |
Простой текст |
|
|
Приостанавливать ЦПУ при запуске. |
|
|
|
Эта опция делает возможным прямой доступ к оборудованию хоста для ВМ. Когда применяется эта опция, миграция данной ВМ не возможна. Данную опцию следует применять с предосторожностью, поскольку она пока находится в экспериментальном режиме. Не рекомендуется к применению в промышленных средах. |
Синтаксис для
Получите |
|
|
Делает возможной горячую замену для диска или сетевого устройства. Значение по умолчанию
равно |
|
|
|
Делает возможным использование тома в качестве IDE диска или CD-ROM.
N в |
[ |
|
|
Разрешает/ запрещает аппаратную виртуализацию KVM. Этот параметр запрещает любое аппаратное
ускорение в пределах ВМ. Возможным сценарием применения может быть случай когда вы настраиваете
встроенный кластер виртуализации. Значение по умолчанию равно |
|
|
|
Включает/ выключает блокировку ВМ. |
|
|
|
Выделенный объём ОЗУ для ВМ. |
Целое число от 16 до N {Прим. пер.: так в тексте книги.} |
|
|
Значение в секундах для допускаемого максимума простоя при миграции.
Значение по умолчанию равно |
Число от 0 до N |
|
|
Значение для максимальной скорости в МБ/с для миграции ВМ. Установка в значение
|
Целое число от |
|
|
Имя ВМ. |
Текст |
|
|
Определённое сетевое устройство.
|
|
|
|
Разрешает/ запрещает автоматический запуск ВМ в процессе перезагрузки узла хоста. |
|
|
|
Делает возможным использование тома в качестве SATA диска или CD-ROM.
N в |
[ |
|
|
Делает возможным использование тома в качестве SCSI диска или CD-ROM.
N в |
[ |
|
|
Тип контроллера SCSI. Значение по умолчанию равно |
|
|
|
Это значение стоимости ОЗУ для автоматического расширения. Чем больше это значение, тем больше
ОЗУ получит данная ВМ. Значение |
Целое число от |
|
|
Число сокетов ЦПУ. Значение по умолчанию равно
|
Целое число от |
|
|
Опция устанавливает начальную дату в реальном значении времени. |
|
|
|
Эта опция устанавливает поведение для запуска и останова ВМ. Очерёдность устанавливается
положительным целым числом, которое устанавливает порядок, в котором будут запускаться ВМ.
Отключение следует этим значениям очерёдности в обратном порядке. Через значения
|
[ |
|
|
Разрешает/ запрещает устройства USB в ВМ. Когда на одном хосте выполняется большое число
ВМ только с консолью, запрет этого свойства может экономить переключения контекста. Значение
по умолчанию равно |
|
|
|
Неиспользуемые тома в ВМ. при удалении виртуальных дисков в ВМ, тома не удаляются немедленно. Вместо этого их состояние изменяется на неиспользуемое ( |
|
|
|
Эта опция делает возможным проброс (pass-through) прямого доступа к устройству USB.
N может быть установлено в диапазоне от |
Синтаксис для
Получите |
|
|
Тип дисплея ВМ. |
|
|
|
|||
|
Делает возможным использование тома в качестве диска virtio.
N в |
[ |
Параметры в файле настроек виртуальной машины являются способом расширить возможности этой ВМ за пределы только того, что установлено по умолчанию. Например, по умолчанию звук не доступен для ВМ. Чтобы дать возможность для ВМ проигрывать аудио/ видео, в файле настроек этой ВМ должны быть проброшены (pass through) параметры (arguments). Ниже приводятся примеры некоторых параметров, которые могут применяться в файле настроек ВМ Proxmox. Параметры можно добавить в следующем формате:
args: -<device_arguments_1> -<device_arguments_2> . . . .
ballon: 512
bootdisk: virtio0
cores: 1
ide2: none,media=cdrom
. . . .
. . . .
Чтобы сделать доступным последовательное устройство в ВМ примените следующий код:
args: -serial /dev/ttyS0
Чтобы сделать доступным звук в ВМ Windows XP примените следующий код:
args: -device AC97,addr=0x18
Чтобы сделать доступным звук в ВМ Windows 7 примените следующий код:
args -device intel-hda,id=sound5,bus=pci.0,addr=0x18 –device had-micro,id=sound5-codec0,bus=sound5.0,cad=0 –device had-duplex,id=sound5-codec1,bus=sound5.0,cad=1
Чтобы сделать доступным UUID в ВМ примените следующий код:
args –uuid fl234a93-20d32-2398-129032ds-2322
Чтобы сделать доступной поддержку для aio=native
в ВМ,
поступите так:
args: -drive file=/dev/VGGRP/VOL,if=virtio,index=1,cache=none,aio=native
Начиная с Proxmox VE 4.0, OpenVZ были отброшены в пользу контейнеров LXC. LXC ответвились от OpenVZ в основной поток ядра. Одним из основных преимуществ LXC является то, что их можно применять поверх стандартного ядра Linux без необходимости специального ядра, как это было в случае OpenVZ.
Замечание | |
---|---|
При использовании LXC имейте в виду, что миграция контейнеров в реальном времени не возможна для Proxmox VE 4.1. Контейнеры должны быть выключены для выполнения миграции в отключённом состоянии. |
Ниже приводится файл настройки LXC контейнера #100
в нашем
примере кластера:
#Ubuntu Demo LXC Container
arch: amd64
cpulimit: 1
cpuunits: 1024
hostname: Ubuntu-DC
memory: 284
nameserver: 208.67.222.222 8.8.8.8
net0: bridge=vmbr0,firewall=1,gw=172.16.3.254.hwadrr=3A:30:36:38:66:63,ip=172.16.0.186/20,name=eth0,tag=10,type=veth
ostype: ubuntu
rootfs: local:100/vm-100-disk-1.raw.size=4G
serchdomain: symmcom.com
swap: 256
Настройка контейнера LXC намного проще чем OpenVZ. В LXC нет User Bean
Counters
в отличие от OpenVZ. Следует отметить, что у если существующий у вас кластер
имеет версию Proxmox до 4.0 и на нём работают контейнеры OpenVZ, они не могут быть плавно обновлены в
процессе обновления Proxmox. Все контейнеры OpenVZ должны быть выключены, для них должна быть
зафиксирована полная резервная копия, после чего они должны быть восстановлены в обновлённом
Proxmox VE 4. Мы подробно рассмотрим процесс обновления в Главе 11,
Обновление/ модернизация Proxmox. {Прим. пер.: см. также
наш перевод официального руководства Преобразование OpenVZ в LXC.}
Как и файл настройки KVM, LXC также использует варианты: конкретные значения компонуют определённую настройку в его файле. Добавляемые по умолчанию в процессе создания LXC параметры в основном не требуют объяснений. Большинство этих параметров для LXC могут быть изменены с применением GUI Proxmox. LXC сам по себе имеет немало параметров настройки, которые не могут управляться в GUI, однако они могут добавляться вручную с применением CLI, в зависимости от потребностей. Исчерпывающий перечень всех возможных параметров настройки для LXC можно найти по ссылке http://man7.org/linux/man-pages/man5/lxc.container.conf.5.html
{
"starttime": 1450035295,
"clinfo": 4,
"vmlist": 21,
"corosync.conf": 2,
"corosync.conf.new": 2,
"storage.cfg": 3,
"user.cfg": 10,
"domains.cfg": 3,
"priv/shadow.cfg": 4,
"datacenter.cfg": 2,
"vzdump.cron": 2,
"ha/crm_commands": 2,
"ha/manager_status": 2,
"ha/resources.cfg": 2,
"ha/groups.cfg": 2,
"ha/fence.cfg": 2,
"status.cfg": 2,
"kvstore": {
"pm4-2": {
"tasklist": 90257}
,
"pm4-1": {
"tasklist": 89511}
}
}
В этом файле не требуется настраивать вручную или править.
Размещаемый в /etc/pve/.members
, файл узлов- участников отображает
все узлы- участники, которые являются частью кластера Proxmox. Это прекрасный способ просмотра состояния
кластера, если по какой- либо причине GUI Proxmox становится недоступным. Ниже приводится файл
.members
нашего базового кластера:
{
"nodename" "pm4-2",
"version": 4 ,
"cluster": {"name" : "MasterPmx2ndEd", "version" : 2, "nodes": 2, "quorate": 1 },
"nodelist" {
"pm4-2": { "id": 2, "online": 1, "ip": "172.16.0.172"},
"pm4-1": { "id": 1, "online": 1, "ip": "172.16.0.171"}
}
}
Предыдущий снимок экрана показывает текущий узел, с которого был осуществлён доступ к файлу
.members
.
"version": 4
Файл .members
имеет свою собственную систему нумерации версий. Как
и для файла .version
, при всяком изменении
.members
текущая версия инкрементально увеличивается. Например,
когда добавляется или удаляется узел из кластера, текущий номер версии продвигается вперёд:
"cluster": { "name": "MasterPmx2ndEd", "version": 2, "nodes": 2, "quorate": 1 },
Предыдущий код показывает информацию о нашем кластере такую как имя кластера, версия кластера, число узлов- участников и число голосов (quorate), необходимое для получения кворума.
"pm4-2": { "id": 2, "online": 1, "ip": "172.16.0.172"}
Узлы, перечисляемые в разделе списка узлов предоставляют относящуюся к каждому узлу информацию, например, идентификатор, состояние включён/ выключен и IP адрес.
Размещающийся в /etc/pve/.vmlist
, файл списка виртуальных машин
хранит перечень всех наших виртуальных машин в пределах кластера Proxmox. Файл
.vmlist
для хранения списка применяет следующий формат:
"<vmid>": { "node": "<nodename>", "type": "<vm_type>", "version":<int> }
В нашем базовом кластере у нас есть две виртуальные машины и один шаблон. Показанный ниже экранный снимок
отображает информацию, хранящуюся в файле .vmlist
:
{
"version": 21,
"ids": {
"100": { "node": "pm4-1", "type": "lxc", "version": 23 },
"110": { "node": "pm4-1", "type": "gemu", "version": 11 }}
}
Этот список предоставляет вам другой способ просмотра перечня виртуальных машин в кластере на всех его узлах. Мы можем иметь распечатку на случай возникновения катастрофы, которая сделала бы кластер недоступным, или в случае, если нам необходимо перестроить виртуальную среду.
Для саого по себе кластера существует файл журнала и он располагается в
/etc/pve/.clusterlog
. В основном он сопровождает аутентификацию
регистраций пользователей. Ниже приводится часть нашего файла .clusterlog
:
{
"data" {
("uid": 322, "time": 1450316440, "pri": 6, "tag": "pvedaemon", "pid": 15540, "node": "pm4-1", "user": "root@pam", "msg": "successfu1 auth for user 'root@p
("uid": 321, "time": 1450315540, "pri": 6, "tag": "pvedaemon", "pid": 21688, "node": "pm4-1", "user": "root@pam", "msg": "successfu1 auth for user 'root@p
("uid": 320, "time": 1450314639, "pri": 6, "tag": "pvedaemon", "pid": 19540, "node": "pm4-1", "user": "root@pam", "msg": "successfu1 auth for user 'root@p
("uid": 319, "time": 1450313739, "pri": 6, "tag": "pvedaemon", "pid": 12837, "node": "pm4-1", "user": "root@pam", "msg": "successfu1 auth for user 'root@p
("uid": 318, "time": 1450312839, "pri": 6, "tag": "pvedaemon", "pid": 12837, "node": "pm4-1", "user": "root@pam", "msg": "successfu1 auth for user 'root@p
("uid": 317, "time": 1450311939, "pri": 6, "tag": "pvedaemon", "pid": 12837, "node": "pm4-1", "user": "root@pam", "msg": "successfu1 auth for user 'root@p
("uid": 316, "time": 1450311039, "pri": 6, "tag": "pvedaemon", "pid": 6182, "node": "pm4-1", "user": "root@pam", "msg": "successfu1 auth for user 'root@pa
("uid": 315, "time": 1450310138, "pri": 6, "tag": "pvedaemon", "pid": 6182, "node": "pm4-1", "user": "root@pam", "msg": "successfu1 auth for user 'root@pa
("uid": 314, "time": 1450309238, "pri": 6, "tag": "pvedaemon", "pid": 25841, "node": "pm4-1", "user": "root@pam", "msg": "successfu1 auth for user 'root@p
("uid": 313, "time": 1450308338, "pri": 6, "tag": "pvedaemon", "pid": 24353, "node": "pm4-1", "user": "root@pam", "msg": "successfu1 auth for user 'root@p
("uid": 312, "time": 1450307438, "pri": 6, "tag": "pvedaemon", "pid": 25841, "node": "pm4-1", "user": "root@pam", "msg": "successfu1 auth for user 'root@p
Ceph является разновидностью распределённой системы хранения объектов и файлов, которая полностью интегрируется
с Proxmox. В своей поставке Proxmox приходит с опцией управления кластером Ceph через свой GUI и
полным массивом функциональности чтобы сделать интеграцию настолько бесшовной, насколько это возможно.
Мы изучим глубже Ceph в Главе 4, Системы хранения.
{Прим. пер.: желающих получить более полную информацию по Ceph отсылаем
к нашим переводам обеих имеющихся на данный момент книг Карана Сингха Книга рецептов Ceph (март 2016) и
Изучаем Ceph
(январь 2016). Список дополнительных материалов, посвящённых Ceph вы можете найти по ссылке
CloudComputing#Ceph на нашем сайте.} Ceph может быть установлена на своё
собственное оборудование с применением операционной системы, например Ubuntu, или сосуществовать с
Proxmox на том же самом узле. Вне зависимости от того, будет ли она сосуществовать или будет располагаться
в собственном кластере, узлам Proxmox необходимо для соединения осуществлять доступ к файлу настройки
этой Ceph. Для сосуществующего узла Proxmox+Ceph
файл настройки
расположен в /etc/pve/ceph.conf
. В случае работающих по отдельности
узлов Proxmox, этот файл должен храниться в /etc/ceph/ceph.conf
.
В случае сосуществующего узла Proxmox создаёт символическую ссылку на файл настройки Ceph в
/etc/ceph/ceph.conf
.
Помимо файла настройки Ceph также применяет ключи аутентификации, которые хранятся в следующих каталогах:
/etc/pve/priv/ceph.client.admin.keyring
/etc/pve/priv/ceph.mon.keyring
/etc/pve/priv/ceph/<rbd_storage_id>.keyring
Для соединения с хранилищем Ceph RBD
(Rados Block Device), Proxmox нуждается в
отдельном кольце ключей. <rbd_storage_id>.keyring
является
просто скопированной и переименованной версией ceph.client.admin.keyring
.
Без этого кольца ключей Proxmox не сможет соединиться с Ceph.
Что касается Proxmox 4.1, полностью функциональный межсетевой экран встроен в кластер Proxmox. Он очень мощный и поставляется с гранулированной персонализацией вниз вплоть до отдельной виртуальной машины. Правила межсетевого экрана могут создаваться отдельно для кластера, узла и виртуальной машины. Следующая таблица отображает местоположения файлов правил межсетевого экрана:
Наименование правил | Путь каталога |
---|---|
Правила межсетевого экрана всего кластера |
|
Правила межсетевого экрана узла |
|
Правила межсетевого экрана VM/CT |
|
Все правила межсетевого экрана могут управляться с помощью меню межсетевого экрана GUI Proxmox/ без их редактирования с применением командной строки. Мы рассмотрим подробнее межсетевой экран в Главе 8, Межсетевой экран Proxmox.
Следует отметить, что межсетевым экраном Proxmox не следует замещать главный межсетевой шлюз, в который приходят возможности Интернета. Должен присутствовать выделенный межсетевой экран между WAN и локальной сетевой средой. Межсетевой экран Proxmox расширяет безопасность позволяя вам предотвращать взаимодействие между виртуальными машинами и более тонкую настройку входящего и исходящего сетевого обмена.
В этой главе мы рассмотрели местоположение важных файлов настройки необходимых для работы кластера Proxmox. Мы также заглянули вовнутрь этих файлов настройки для лучшего понимания применяемых параметров и других допустимых значений для различных параметров. Как уже упоминалось ранее, большинство этих файлов настройки могут изменяться из GUI Proxmox. Однако если GUI становится недоступным по какой- либо причине, знание того, где расположены эти файлы может сохранить значительное количество времени для доступа к ним из CLI.
В следующей главе мы рассмотрим различные системы хранения которые могут применяться с Proxmox, а также различные типы образов дисков и варианты их применения. Мы также увидим как строить распределённую систему хранения корпоративного уровня с помощью Ceph и как присоединять её к кластеру Proxmox.