Редакция январь, 2025
Аннотация
apt-get
и её графическая оболочка synaptic позволяют пользователям легко обновлять свои системы и быть в курсе актуальных новостей мира свободных программ.
Содержание
SCDWriter.exe
;
Предупреждение
Предупреждение
Предупреждение
Предупреждение
dd
:
#где <файл-образа.iso> — образ диска ISO, аdd
oflag=direct if=<файл-образа.iso> of=/dev/sdX bs=1M status=progress;sync
/dev/sdX
— устройство, соответствующее flash-диску.
#где <файл-образа.iso> — образ диска ISO, аpv
<файл-образа.iso> | dd oflag=direct of=/dev/sdX bs=1M;sync
/dev/sdX
— устройство, соответствующее flash-диску.
lsblk
или (если такой команды нет) blkid
.
$ lsblk | grep disk
sda 8:0 0 931,5G 0 disk
sdb 8:16 0 931,5G 0 disk
sdc 8:32 1 7,4G 0 disk
flash-диск имеет имя устройства sdc.
# dd oflag=direct if=/iso/alt-server-v-10.4-x86_64.iso of=/dev/sdc bs=1M status=progress; sync
# pv /iso/alt-server-v-10.4-x86_64.iso | dd oflag=direct of=/dev/sdc bs=1M;sync
dd: warning: partial read (524288 bytes); suggest iflag=fullblock
3GiB 0:10:28 [4,61MiB/s] [===================================> ] 72% ETA 0:04:07
Предупреждение
sudo dd if=
alt-server-v-10.4-x86_64.iso
of=/dev/rdiskX bs=10Msync
alt-server-v-10.4-x86_64.iso
— образ диска ISO, а /dev/rdiskX — flash-диск.
diskutil list
Предупреждение
$ du -b alt-server-v-10.4-x86_64.iso | cut -f1
2939768832
$ md5sum alt-server-v-10.4-x86_64.iso
96517af90bf017af388e9010055ac30e alt-server-v-10.4-x86_64.iso
# head -c 2939768832 /dev/sdd | md5sum
96517af90bf017af388e9010055ac30e
где размер после -c — вывод в п.1, а /dev/sdd — устройство DVD или USB Flash, на которое производилась запись.
Предупреждение
Примечание
vncviewer --listen
):
[root@localhost /]#
Примечание
Примечание
Примечание
Примечание
Примечание
/var
;
/var
.
Примечание
/home
) или с другими операционными системами. С другой стороны, отформатировать можно любой раздел, который вы хотите «очистить» (удалить все данные).
Предупреждение
/boot/efi
, в которую нужно смонтировать vfat раздел с загрузочными записями. Если такого раздела нет, то его надо создать вручную. При разбивке жёсткого диска в автоматическом режиме такой раздел создаёт сам установщик. Особенности разбиения диска в UEFI-режиме:
/boot/efi
);
Примечание
Важно
Важно
Примечание
Примечание
Примечание
/boot/efi
).
Важно
Важно
Примечание
Примечание
Предупреждение
/
и /home
создаются подтома с именами @ и @home. Это означает, что для монтирования подтомов необходимы определенные параметры вместо корня системы BtrFS по умолчанию:
/
с помощью опции subvol=@;
/home
с помощью параметра монтирования subvol=@home.
Примечание
/etc/fstab
).
/root/.install-log
, после чего из неё будут удалены все загрузочные записи, что приведёт к восстановлению полностью заполненной NVRAM и гарантирует загрузку вновь установленной ОС;
Примечание
Примечание
Важно
Важно
Важно
Примечание
Примечание
Примечание
Примечание
Примечание
Важно
Примечание
/home
, то во время загрузки системы будет необходимо ввести пароль для этого раздела, иначе вы не сможете получить доступ в систему под своим именем пользователя.
#apt-get update
#apt-get dist-upgrade
#update-kernel
#apt-get clean
#reboot
Примечание
$ su -
или зарегистрировавшись в системе (например, на второй консоли Ctrl+Alt+F2) под именем root. Про режим суперпользователя можно почитать в главе Режим суперпользователя.
Примечание
Важно
Важно
nomodeset
— не использовать modeset-драйверы для видеокарты;
vga=normal
— отключить графический экран загрузки установщика;
xdriver=vesa
— явно использовать видеодрайвер vesa. Данным параметром можно явно указать нужный вариант драйвера;
acpi=off noapic
— отключение ACPI (управление питанием), если система не поддерживает ACPI полностью.
apm=off acpi=off mce=off barrier=off vga=normal
). В безопасном режиме отключаются все параметры ядра, которые могут вызвать проблемы при загрузке. В этом режиме установка будет произведена без поддержки APIC. Возможно, у вас какое-то новое или нестандартное оборудование, но может оказаться, что оно отлично настраивается со старыми драйверами.
[root@localhost /]#
. Начиная с этого момента, система готова к вводу команд.
fixmbr
без параметров. Программа попытается переустановить загрузчик в автоматическом режиме.
Важно
/home
, то для того, чтобы войти в систему под своим именем пользователя, вам потребуется ввести пароль этого раздела и затем нажать Enter.
Важно
Примечание
Примечание
Содержание
Таблица 26.1. Минимальные требования к серверу управления
Ресурс
|
Минимальное значение
|
---|---|
Оперативная память
|
2 ГБ
|
CPU
|
1 CPU (2 ядра)
|
Диск
|
100 ГБ
|
Сеть
|
2 интерфейса
|
Примечание
/var/lib/one/.one/one_auth
будет создан со случайно сгенерированным паролем. Необходимо поменять этот пароль перед запуском OpenNebula.
# passwd oneadmin
/var/lib/one/.one/one_auth
. Он должен содержать следующее: oneadmin:<пароль>. Например:
$ echo "oneadmin:mypassword" > ~/.one/one_auth
Примечание
# mysql_secure_installation
$mysql -u root -p
Enter password: MariaDB >GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin' IDENTIFIED BY '<thepassword>';
Query OK, 0 rows affected (0.003 sec) MariaDB >SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
Query OK, 0 rows affected (0.001 sec) MariaDB >quit
/etc/one/oned.conf
:
#DB = [ BACKEND = "sqlite" ] # TIMEOUT = 2500 ] # Sample configuration for MySQL DB = [ BACKEND = "mysql", SERVER = "localhost", PORT = 0, USER = "oneadmin", PASSWD = "<thepassword>", DB_NAME = "opennebula", CONNECTIONS = 25, COMPARE_BINARY = "no" ]
#systemctl enable --now opennebula
#systemctl enable --now opennebula-sunstone
$ oneuser show
USER 0 INFORMATION
ID : 0
NAME : oneadmin
GROUP : oneadmin
PASSWORD : 3bc15c8aae3e4124dd409035f32ea2fd6835efc9
AUTH_DRIVER : core
ENABLED : Yes
USER TEMPLATE
TOKEN_PASSWORD="ec21d27e2fe4f9ed08a396cbd47b08b8e0a4ca3c"
VMS USAGE & QUOTAS
VMS USAGE & QUOTAS - RUNNING
DATASTORE USAGE & QUOTAS
NETWORK USAGE & QUOTAS
IMAGE USAGE & QUOTAS
http://<внешний адрес>:9869
. Если все в порядке, будет предложена страница входа.
/var/lib/one/.one/one_auth
):
Примечание
/var/lib/one/.ssh/authorized_keys
на всех машинах.
$ ssh-keyscan <сервер_управления> <узел1> <узел2> <узел3> ... >> /var/lib/one/.ssh/known_hosts
Примечание
ssh-keyscan
необходимо выполнить, как для имён, так и для IP-адресов узлов/сервера управления:
$ ssh-keyscan <IP-узел1> <hostname-узел1> ... >> /var/lib/one/.ssh/known_hosts
Например:
$ ssh-keyscan 192.168.0.185 server 192.168.0.190 host-01 >> /var/lib/one/.ssh/known_hosts
/var/lib/one/.ssh
на все узлы. Самый простой способ — установить временный пароль для oneadmin на всех узлах и скопировать каталог с сервера управления:
$scp -rp /var/lib/one/.ssh <узел1>:/var/lib/one/
$scp -rp /var/lib/one/.ssh <узел2>:/var/lib/one/
$scp -rp /var/lib/one/.ssh <узел3>:/var/lib/one/
...
# от сервера управления к самому серверу управления ssh <сервер_управления> exit # от сервера управления к узлу1, обратно на сервер управления и к другим узлам ssh <узел1> ssh <сервер_управления> exit ssh <узел2> exit ssh <узел3> exit exitИ так далее для всех узлов.
/var/lib/one/.ssh/config
на сервере управления и добавления параметра ForwardAgent к узлам гипервизора для пересылки ключа:
$ cat /var/lib/one/.ssh/config
Host host-01
User oneadmin
ForwardAgent yes
Host host-02
User oneadmin
ForwardAgent yes
Примечание
Примечание
# apt-get install opennebula-node-kvm
И добавить службу libvirtd в автозапуск и запустить её:
# systemctl enable --now libvirtd
# passwd oneadmin
и настроить доступ по SSH (см. раздел Ключи для доступа по SSH).
Важно
Примечание
# apt-get install opennebula-node-lxc
# systemctl enable --now lxc
# passwd oneadmin
и настроить доступ по SSH (см. раздел Ключи для доступа по SSH).
Примечание
onehost
— это инструмент управления узлами в OpenNebula. Описание всех доступных опций утилиты onehost
можно получить, выполнив команду:
$ man onehost
$ onehost create host-01 --im kvm --vm kvm
ID: 0
$ onehost create host-02 --im lxс --vm lxс
ID: 1
$ onehost list
ID NAME CLUSTER TVM ALLOCATED_CPU ALLOCATED_MEM STAT
1 host-02 default 0 0 / 100 (0%) 0K / 945M (0%) on
0 host-01 default 0 0 / 10000 (0%) 0K / 7.6G (0%) on
Примечание
/var/log/one/oned.log
.
$ onehost delete 1
или имени:
$ onehost delete host-02
$onehost disable host-01
// деактивировать узел $onehost enable host-01
// активировать узел $onehost offline host-01
// полностью выключить узел
Примечание
onehost disable
и onehost offline
не меняют состояние уже работающих на узле ВМ. Если необходимо автоматически перенести работающие ВМ, следует использовать команду onehost flush
.
onehost flush
перенесет все активные ВМ с указанного узла на другой сервер с достаточной емкостью. При этом указанный узел будет отключен. Эта команда полезна для очистки узла от активных ВМ. Процесс миграции можно выполнить с помощью переноса (resched) или действия восстановления, удаления и воссоздания. Это поведение можно настроить в /etc/one/cli/onehost.yaml
, установив в поле default_actions\flush
значение delete-recreate или resched. Например:
:default_actions: - :flush: resched
$ onehost show host-01
onevnet
— инструмент управления виртуальными сетями в OpenNebula. Описание всех доступных опций утилиты onevnet
можно получить, выполнив команду:
$ man onevnet
$ onevnet list
ID USER GROUP NAME CLUSTERS BRIDGE LEASES
2 oneadmin oneadmin VirtNetwork 0 onebr2 0
0 oneadmin oneadmin LAN 0 vmbr0 1
Вывести информацию о сети:
$ onevnet show 0
Таблица 30.1. Параметры виртуальной сети в режиме Bridged
Параметр
|
Значение
|
Обязательный
|
---|---|---|
NAME
|
Имя виртуальной сети
|
Да
|
VN_MAD
|
Режим:
|
Да
|
BRIDGE
|
Имя сетевого моста в узлах виртуализации
|
Нет
|
PHYDEV
|
Имя физического сетевого устройства (на узле виртуализации), которое будет подключено к мосту
|
Нет
|
AR
|
Диапазон адресов, доступных в виртуальной сети
|
Нет
|
net-bridged.conf
со следующим содержимым:
NAME = "VirtNetwork" VN_MAD = "bridge" BRIDGE = "vmbr0" PHYDEV = "enp3s0" AR=[ TYPE = "IP4", IP = "192.168.0.140", SIZE = "5" ]
$ onevnet create net-bridged.conf
ID: 1
Примечание
/etc/one/oned.conf
:
VLAN_IDS = [ START = "2", RESERVED = "0, 1, 4095" ]Драйвер сначала попытается выделить VLAN_IDS[START] + VNET_ID где
Таблица 30.2. Параметры виртуальной сети в режиме 802.1Q
Параметр
|
Значение
|
Обязательный
|
---|---|---|
NAME
|
Имя виртуальной сети
|
Да
|
VN_MAD
|
802.1Q
|
Да
|
BRIDGE
|
Имя сетевого моста (по умолчанию onebr<net_id> или onebr.<vlan_id>)
|
Нет
|
PHYDEV
|
Имя физического сетевого устройства (на узле виртуализации), которое будет подключено к мосту
|
Да
|
VLAN_ID
|
ID сети VLAN (если не указан и AUTOMATIC_VLAN_ID = "YES", то идентификатор будет сгенерирован)
|
Да (если AUTOMATIC_VLAN_ID = "NO")
|
AUTOMATIC_VLAN_ID
|
Генерировать VLAN_ID автоматически
|
Да (если не указан VLAN_ID)
|
MTU
|
MTU для тегированного интерфейса и моста
|
Нет
|
AR
|
Диапазон адресов, доступных в виртуальной сети
|
Нет
|
net-vlan.conf
со следующим содержимым:
NAME = "VLAN" VN_MAD = "802.1Q" BRIDGE = "vmbr1" PHYDEV = "enp3s0" AUTOMATIC_VLAN_ID = "Yes" AR=[ TYPE = "IP4", IP = "192.168.0.150", SIZE = "5" ]
$ onevnet create net-vlan.conf
ID: 6
Примечание
/etc/one/oned.conf
:
VXLAN_IDS = [ START = "2" ]
Таблица 30.3. Параметры виртуальной сети в режиме VXLAN
Параметр
|
Значение
|
Обязательный
|
---|---|---|
NAME
|
Имя виртуальной сети
|
Да
|
VN_MAD
|
vxlan
|
Да
|
BRIDGE
|
Имя сетевого моста (по умолчанию onebr<net_id> или onebr.<vlan_id>)
|
Нет
|
PHYDEV
|
Имя физического сетевого устройства, которое будет подключено к мосту
|
Нет
|
VLAN_ID
|
ID сети VLAN (если не указан и AUTOMATIC_VLAN_ID = "YES", то идентификатор будет сгенерирован)
|
Да (если AUTOMATIC_VLAN_ID = "NO")
|
AUTOMATIC_VLAN_ID
|
Генерировать VLAN_ID автоматически
|
Да (если не указан VLAN_ID)
|
MTU
|
MTU для тегированного интерфейса и моста
|
Нет
|
AR
|
Диапазон адресов, доступных в виртуальной сети
|
Нет
|
net-vxlan.conf
со следующим содержимым:
NAME = "vxlan" VN_MAD = "vxlan" BRIDGE = "vxlan50" PHYDEV = "enp3s0" VLAN_ID = 50 AR=[ TYPE = "IP4", IP = "192.168.0.150", SIZE = "5" ]
$ onevnet create net-vxlan.conf
ID: 7
Примечание
# apt-get install openvswitch
Запупущена и добавлена в автозагрузку служба openvswitch:
# systemctl enable --now openvswitch.service
/etc/one/oned.conf
:
VLAN_IDS = [ START = "2", RESERVED = "0, 1, 4095" ]
Таблица 30.4. Параметры виртуальной сети в режиме Open vSwitch
Параметр
|
Значение
|
Обязательный
|
---|---|---|
NAME
|
Имя виртуальной сети
|
Да
|
VN_MAD
|
ovswitch
|
Да
|
BRIDGE
|
Имя сетевого моста Open vSwitch
|
Нет
|
PHYDEV
|
Имя физического сетевого устройства, которое будет подключено к мосту
|
Нет (если не используются VLAN)
|
VLAN_ID
|
ID сети VLAN (если не указан и AUTOMATIC_VLAN_ID = "YES", то идентификатор будет сгенерирован)
|
Нет
|
AUTOMATIC_VLAN_ID
|
Генерировать VLAN_ID автоматически (игнорируется, если определен VLAN_ID)
|
Нет
|
MTU
|
MTU для моста Open vSwitch
|
Нет
|
AR
|
Диапазон адресов, доступных в виртуальной сети
|
Нет
|
net-ovs.conf
со следующим содержимым:
NAME = "OVS" VN_MAD = "ovswitch" BRIDGE = "vmbr1" AR=[ TYPE = "IP4", IP = "192.168.0.150", SIZE = "5" ]
$ onevnet create net-ovs.conf
ID: 8
Таблица 30.5. Параметры виртуальной сети в режиме Open vSwitch VXLAN
Параметр
|
Значение
|
Обязательный
|
---|---|---|
NAME
|
Имя виртуальной сети
|
Да
|
VN_MAD
|
ovswitch_vxlan
|
Да
|
BRIDGE
|
Имя сетевого моста Open vSwitch
|
Нет
|
PHYDEV
|
Имя физического сетевого устройства, которое будет подключено к мосту
|
Да
|
OUTER_VLAN_ID
|
ID внешней сети VXLAN (если не указан и AUTOMATIC_OUTER_VLAN_ID = "YES", то идентификатор будет сгенерирован)
|
Да (если AUTOMATIC_OUTER_VLAN_ID = "NO")
|
AUTOMATIC_OUTER_VLAN_ID
|
Генерировать ID автоматически (игнорируется, если определен OUTER_VLAN_ID)
|
Да (если не указан OUTER_VLAN_ID)
|
VLAN_ID
|
Внутренний идентификатор VLAN 802.1Q. (если не указан и AUTOMATIC_VLAN_ID = "YES", то идентификатор будет сгенерирован)
|
Нет
|
AUTOMATIC_VLAN_ID
|
Генерировать VLAN_ID автоматически (игнорируется, если определен VLAN_ID)
|
Нет
|
MTU
|
MTU для интерфейса и моста VXLAN
|
Нет
|
AR
|
Диапазон адресов, доступных в виртуальной сети
|
Нет
|
net-ovsx.conf
со следующим содержимым:
NAME = "private" VN_MAD = "ovswitch_vxla" PHYDEV = "eth0" BRIDGE = "ovsvxbr0.10000" OUTER_VLAN_ID = 10000 VLAN_ID = 50 AR=[ TYPE = "IP4", IP = "192.168.0.150", SIZE = "5" ]
$ onevnet create net-ovsx.conf
ID: 11
/var/lib/one/datastores/<идентификатор_хранилища>
). Кроме того, для каждой работающей ВМ существует каталог /var/lib/one/datastores/<идентификатор_хранилища>/<идентификатор_ВМ>
в соответствующем системном хранилище. Эти каталоги содержат диски ВМ и дополнительные файлы, например, контрольные точки или снимки.
/var/lib/one/datastores |-- 0/ | |-- 0/ | | |-- disk.0 | | `-- disk.1 | |-- 2/ | | `-- disk.0 | `-- 7/ | |-- checkpoint | `-- disk.0 `-- 1 |-- 19217fdaaa715b04f1c740557826514b |-- 99f93bd825f8387144356143dc69787d `-- da8023daf074d0de3c1204e562b8d8d2
/var/lib/one/datastores//<идентификатор_хранилища>
) в хранилище образов, но при создании ВМ они будут сброшены в логические тома (LV). ВМ будут запускаться с логических томов узла.
/var/lib/one/datastores/<идентификатор_хранилища>
). При этом для передачи данных между хранилищем образов и системным хранилищем используется метод ssh.
Примечание
/var/lib/one/datastores/
можно изменить, указав нужный путь в параметре DATASTORE_LOCATION
в конфигурационном файле /etc/one/oned.conf
.
onedatastore
— инструмент управления хранилищами в OpenNebula. Описание всех доступных опций утилиты onedatastore
можно получить, выполнив команду:
$ man onedatastore
$ onedatastore list
ID NAME SIZE AVA CLUSTERS IMAGES TYPE DS TM STAT
2 files 95.4G 91% 0 1 fil fs ssh on
1 default 95.4G 91% 0 8 img fs ssh on
0 system - - 0 0 sys - ssh on
$ onedatastore show default
DATASTORE 1 INFORMATION
ID : 1
NAME : default
USER : oneadmin
GROUP : oneadmin
CLUSTERS : 0
TYPE : IMAGE
DS_MAD : fs
TM_MAD : ssh
BASE PATH : /var/lib/one//datastores/1
DISK_TYPE : FILE
STATE : READY
DATASTORE CAPACITY
TOTAL: : 95.4G
FREE: : 55.9G
USED: : 34.6G
LIMIT: : -
PERMISSIONS
OWNER : um-
GROUP : u--
OTHER : ---
DATASTORE TEMPLATE
ALLOW_ORPHANS="YES"
CLONE_TARGET="SYSTEM"
DISK_TYPE="FILE"
DS_MAD="fs"
LN_TARGET="SYSTEM"
RESTRICTED_DIRS="/"
SAFE_DIRS="/var/tmp"
TM_MAD="ssh"
TYPE="IMAGE_DS"
IMAGES
0
1
2
17
$ onedatastore show system
DATASTORE 0 INFORMATION
ID : 0
NAME : system
USER : oneadmin
GROUP : oneadmin
CLUSTERS : 0
TYPE : SYSTEM
DS_MAD : -
TM_MAD : ssh
BASE PATH : /var/lib/one//datastores/0
DISK_TYPE : FILE
STATE : READY
DATASTORE CAPACITY
TOTAL: : -
FREE: : -
USED: : -
LIMIT: : -
PERMISSIONS
OWNER : um-
GROUP : u--
OTHER : ---
DATASTORE TEMPLATE
ALLOW_ORPHANS="YES"
DISK_TYPE="FILE"
DS_MIGRATE="YES"
RESTRICTED_DIRS="/"
SAFE_DIRS="/var/tmp"
SHARED="NO"
TM_MAD="ssh"
TYPE="SYSTEM_DS"
IMAGES
Примечание
onehost show
.
Таблица 31.1. Общие атрибуты хранилищ
Атрибут
|
Описание
|
---|---|
Description
|
Описание
|
RESTRICTED_DIRS
|
Каталоги, которые нельзя использовать для размещения образов. Список каталогов, разделенный пробелами.
|
SAFE_DIRS
|
Разрешить использование каталога, указанного в разделе RESTRICTED_DIRS, для размещения образов. Список каталогов, разделенный пробелами.
|
NO_DECOMPRESS
|
Не пытаться распаковать файл, который нужно зарегистрировать.
|
LIMIT_TRANSFER_BW
|
Максимальная скорость передачи при загрузке образов с URL-адреса http/https (в байтах/секунду). Могут использоваться суффиксы K, M или G.
|
DATASTORE_CAPACITY_CHECK
|
Проверять доступную емкость хранилища данных перед созданием нового образа.
|
LIMIT_MB
|
Максимально допустимая емкость хранилища данных в МБ.
|
BRIDGE_LIST
|
Список мостов узла, разделенных пробелами, которые имеют доступ к хранилищу для добавления новых образов в хранилище.
|
STAGING_DIR
|
Путь на узле моста хранения для копирования образа перед его перемещением в конечный пункт назначения. По умолчанию
/var/tmp .
|
DRIVER
|
Применение специального драйвера сопоставления изображений. Данный атрибут переопределяет DRIVER образа, установленный в атрибутах образа и шаблоне ВМ.
|
COMPATIBLE_SYS_DS
|
Только для хранилищ образов. Установить системные хранилища данных, которые можно использовать с данным хранилищем образов (например, «0,100»).
|
CONTEXT_DISK_TYPE
|
Указывает тип диска, используемый для контекстных устройств: BLOCK или FILE (по умолчанию).
|
Примечание
$onedatastore disable system
$onedatastore show system
DATASTORE 0 INFORMATION ID : 0 NAME : system ... STATE : DISABLED ...
/var/lib/one/datastores/
должно быть достаточно места для:
/var/lib/one/datastores/
должно быть достаточно места для хранения дисков ВМ, работающих на этом узле.
systemds.conf
со следующим содержимым:
NAME = local_system TM_MAD = ssh TYPE = SYSTEM_DSИ выполнить команду:
$ onedatastore create systemds.conf
ID: 101
Примечание
imageds.conf
со следующим содержимым:
NAME = local_image TM_MAD = ssh TYPE = IMAGE_DS DS_MAD = fsИ выполнить команду:
$ onedatastore create imageds.conf
ID: 102
Примечание
/var/lib/one/datastores/
можно смонтировать каталог с любого сервера NAS/SAN в сети.
systemds.conf
со следующим содержимым:
NAME = nfs_system TM_MAD = shared TYPE = SYSTEM_DSИ выполнить команду:
$ onedatastore create systemds.conf
ID: 101
Примечание
imageds.conf
со следующим содержимым:
NAME = nfs_images TM_MAD = shared TYPE = IMAGE_DS DS_MAD = fsИ выполнить команду:
$ onedatastore create imageds.conf
ID: 102
/var/lib/one/datastores/
) будут созданы два каталога: 101
и 102
. На узлах виртуализации эти каталоги автоматически не создаются, поэтому на узлах виртализации требуется создать каталоги с соответствующими идентификаторами:
$mkdir /var/lib/one/datastores/101
$mkdir /var/lib/one/datastores/102
/var/lib/one/datastores/<идентификатор_хранилища>
на узле управления и узлах виртуализации необходимо смонтировать удалённый каталог NFS. Например:
# mount -t nfs 192.168.0.157:/export/storage /var/lib/one/datastores/102
Для автоматического монтирования к NFS-серверу при загрузке необходимо добавить следующую строку в файл /etc/fstab
:
192.168.0.157:/export/storage /var/lib/one/datastores/102 nfs intr,soft,nolock,_netdev,x-systemd.automount 0 0
Примечание
# systemctl enable --now nfs-client.target
Получить список совместных ресурсов с сервера NFS можно, выполнив команду:
# showmount -e 192.168.0.157
Важно
/etc/fstab
и перезагрузки ОС, необходимо назначить на каталог этого хранилища владельца oneadmin. Например:
# chown oneadmin: /var/lib/one/datastores/102
TM_MAD_SYSTEM="ssh"
/var/lib/one/datastores/<идентификатор_хранилища>
. В случае режима NFS каталог необходимо смонтировать с сервера NAS. В режиме SSH можно смонтировать любой носитель данных в каталог хранилища.
systemds.conf
со следующим содержимым:
NAME = lvm-system TM_MAD = fs_lvm_ssh TYPE = SYSTEM_DS BRIDGE_LIST = "host-01 host-02"И выполнить команду:
$ onedatastore create systemds.conf
ID: 101
imageds.conf
со следующим содержимым:
NAME = lvm-images TM_MAD = fs_lvm_ssh TYPE = IMAGE_DS DISK_TYPE = "BLOCK" DS_MAD = fsИ выполнить команду:
$ onedatastore create imageds.conf
ID: 102
Примечание
/var/lib/one/datastores/
) будут созданы два каталога: 101
и 102
. На узлах виртуализации эти каталоги автоматически не создаются, поэтому требуется создать каталоги с соответствующими идентификаторами:
$mkdir /var/lib/one/datastores/101
$mkdir /var/lib/one/datastores/102
Примечание
systool
из пакета sysfsutils.
# apt-get install sysfsutils
# systool -c fc_host -A port_name
Class = "fc_host"
Class Device = "host1"
port_name = "0x10000090fa59a61a"
Device = "host1"
Class Device = "host16"
port_name = "0x10000090fa59a61b"
Device = "host16"
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 59G 0 disk
sdb 8:16 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sdc 8:32 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sdd 8:48 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sde 8:64 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
В данном примере один LUN на 1000GB виден по четырем путям.
node.startup
значение automatic. Значение по умолчанию для параметра node.session.timeo.replacement_timeout
составляет 120 секунд. Рекомендуется использовать значение — 15 секунд.
/etc/iscsi/iscsid.conf
(по умолчанию). Если iSCSI target уже подключен, то необходимо изменить настройки по умолчанию для конкретной цели в файле /etc/iscsi/nodes/<TARGET>/<PORTAL>/default
.
#apt-get install open-iscsi
#systemctl enable --now iscsid
/etc/iscsi/iscsid.conf
:
node.startup = automatic node.session.timeo.replacement_timeout = 15
#iscsiadm -m discovery -t sendtargets -p <iscsi-target-1-ip>
#iscsiadm -m discovery -t sendtargets -p <iscsi-target-2-ip>
#iscsiadm -m node --login
/etc/iscsi/iscsid.conf
:
node.startup = automatic
/var/lib/iscsi/send_targets/<TargetServer>,<Port>/st_config
:
discovery.sendtargets.use_discoveryd = Yes
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 59G 0 disk
sdb 8:16 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sdc 8:32 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sdd 8:48 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sde 8:64 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
В данном примере один LUN на 1000GB виден по четырем путям.
Примечание
iscsiadm
:
# iscsiadm -m node --logout
# iscsiadm -m node --targetname "iscsi-target-1.test.alt:server.target1" --logout
# iscsiadm -m node -R
# iscsiadm -m session
# apt-get install multipath-tools
И запущена служба multipathd:
# systemctl enable --now multipathd && sleep 5; systemctl status multipathd
Примечание
multipath
используется для обнаружения и объединения нескольких путей к устройствам.
multipath
:
-l
— отобразить текущую multipath-топологию, полученную из sysfs и устройства сопоставления устройств;
-ll
— отобразить текущую multipath-топологию, собранную из sysfs, устройства сопоставления устройств и всех других доступных компонентов системы;
-f device
— удалить указанное multipath-устройство;
-F
— удалить все неиспользуемые multipath-устройства;
-w device
— удалить WWID указанного устройства из файла wwids;
-W
— сбросить файл wwids, чтобы включить только текущие многопутевые устройства;
-r
— принудительная перезагрузка multipath-устройства.
# multipath -ll
mpatha (3600c0ff00014f56ee9f3cf6301000000) dm-0 HP,P2000 G3 FC
size=931G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| |- 1:0:0:1 sdb 8:16 active ready running
| `- 16:0:1:1 sde 8:64 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
|- 1:0:1:1 sdc 8:32 active ready running
`- 16:0:0:1 sdd 8:48 active ready running
# multipath -v3
/etc/multipath.conf
:
defaults { find_multipaths yes user_friendly_names yes }
user_friendly_names
установлено значение no, то для имени multipath-устройства задается значение World Wide Identifier (WWID). Имя устройства будет /dev/mapper/WWID
и /dev/dm-X
:
#Если для параметраls /dev/mapper/
3600c0ff00014f56ee9f3cf6301000000 #lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 59G 0 disk sdb 8:16 0 931,3G 0 disk └─3600c0ff00014f56ee9f3cf6301000000 253:0 0 931,3G 0 mpath sdc 8:32 0 931,3G 0 disk └─3600c0ff00014f56ee9f3cf6301000000 253:0 0 931,3G 0 mpath sdd 8:48 0 931,3G 0 disk └─3600c0ff00014f56ee9f3cf6301000000 253:0 0 931,3G 0 mpath sde 8:64 0 931,3G 0 disk └─3600c0ff00014f56ee9f3cf6301000000 253:0 0 931,3G 0 mpath
user_friendly_names
установлено значение yes, то для имени multipath-устройства задаётся алиас (псевдоним), в форме mpathХ. Имя устройства будет /dev/mapper/mpathХ
и /dev/dm-X
:
#Однако не гарантируется, что имя устройства будет одинаковым на всех узлах, использующих это multipath-устройство.ls /dev/mapper/
mpatha #lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 59G 0 disk sdb 8:16 0 931,3G 0 disk └─mpatha 253:0 0 931,3G 0 mpath sdc 8:32 0 931,3G 0 disk └─mpatha 253:0 0 931,3G 0 mpath sdd 8:48 0 931,3G 0 disk └─mpatha 253:0 0 931,3G 0 mpath sde 8:64 0 931,3G 0 disk └─mpatha 253:0 0 931,3G 0 mpath
/dev/mapper/mpatha
). Для этого в файл /etc/multipath.conf
добавить секции:
blacklist { wwid .* } blacklist_exceptions { wwid "3600c0ff00014f56ee9f3cf6301000000" }Данная настройка предписывается внести в черный список любые найденные устройства хранения данных, за исключением нужного.
multipaths { multipath { wwid "3600c0ff00014f56ee9f3cf6301000000" alias mpatha } }В этом случае устройство всегда будет доступно только по имени /dev/mapper/mpatha. Вместо mpatha можно вписать любое желаемое имя устройства.
Примечание
# /lib/udev/scsi_id -g -u -d /dev/sdb
3600c0ff00014f56ee9f3cf6301000000
Для устройств в одном multipath WWID будут совпадать.
/etc/multipath.conf
может также потребоваться внести рекомендованные производителем СХД параметры.
/etc/multipath.conf
необходимо перезапустить службу multipathd для активации настроек:
# systemctl restart multipathd.service
Примечание
/etc/multipath.conf
на наличие ошибок можно, выполнив команду:
# multipath -t
# apt-get install ocfs2-tools
Примечание
/etc/ocfs2/cluster.conf
. Этот файл должен быть одинаков на всех узлах кластера, при изменении в одном месте его нужно скопировать на остальные узлы. При добавлении нового узла в кластер, описание этого узла должно добавлено быть на всех остальных узлах до монтирования раздела ocfs2 с нового узла.
/etc/ocfs2/cluster.conf
.
# o2cb_ctl -C -n mycluster -t cluster -a name=mycluster
# o2cb_ctl -C -n <имя_узла> -t node -a number=0 -a ip_address=<IP_узла> -a ip_port=7777 -a cluster=mycluster
/etc/ocfs2/cluster.conf
:
cluster: node_count = 3 heartbeat_mode = local name = mycluster node: ip_port = 7777 ip_address = <IP_узла-01> number = 0 name = <имя_узла-01> cluster = mycluster node: ip_port = 7777 ip_address = <IP_узла-02> number = 1 name = <имя_узла-02> cluster = mycluster node: ip_port = 7777 ip_address = <IP_узла-03> number = 2 name = <имя_узла-03> cluster = mycluster
Примечание
/etc/hostname
.
/etc/init.d/o2cb
:
# /etc/init.d/o2cb configure
Для ручного запуска кластера нужно выполнить:
#/etc/init.d/o2cb load
checking debugfs... Loading filesystem "ocfs2_dlmfs": OK Creating directory '/dlm': OK Mounting ocfs2_dlmfs filesystem at /dlm: OK #/etc/init.d/o2cb online mycluster
checking debugfs... Setting cluster stack "o2cb": OK Registering O2CB cluster "mycluster": OK Setting O2CB cluster timeouts : OK
/dev/mapper/mpatha-part1
на диске /dev/mapper/mpatha
:
# fdisk /dev/mapper/mpatha
# mkfs.ocfs2 -b 4096 -C 4k -L DBF1 -N 3 /dev/mapper/mpatha-part1
mkfs.ocfs2 1.8.7
Cluster stack: classic o2cb
Label: DBF1
…
mkfs.ocfs2 successful
Таблица 31.2. Параметры команды mkfs.ocfs2
Параметр
|
Описание
|
---|---|
-L метка_тома
|
Метка тома, позволяющая его однозначно идентифицировать при подключении на разных узлах. Для изменения метки тома можно использовать утилиту
tunefs.ocfs2
|
-C размер_кластера
|
Размер кластера — это наименьшая единица пространства, выделенная файлу для хранения данных. Возможные значения: 4, 8, 16, 32, 64, 128, 256, 512 и 1024 КБ. Размер кластера невозможно изменить после форматирования тома
|
-N количество_узлов_кластера
|
Максимальное количество узлов, которые могут одновременно монтировать том. Для изменения количества узлов можно использовать утилиту
tunefs.ocfs2
|
-b размер_блока
|
Наименьшая единица пространства, адресуемая ФС. Возможные значения: 512 байт (не рекомендуется), 1 КБ, 2 КБ или 4 КБ (рекомендуется для большинства томов). Размер блока невозможно изменить после форматирования тома
|
Примечание
# dd if=/dev/zero of=/dev/mapper/mpathX bs=512 count=1 conv=notrunc
# blkid
/dev/mapper/mpatha-part1: LABEL="DBF1" UUID="df49216a-a835-47c6-b7c1-6962e9b7dcb6" BLOCK_SIZE="4096" TYPE="ocfs2" PARTUUID="15f9cd13-01"
/etc/fstab
:
UUID=<uuid> /var/lib/one/datastores/<идентификатор_хранилища> ocfs2 _netdev,defaults 0 0Например:
UUID=df49216a-a835-47c6-b7c1-6962e9b7dcb6 /var/lib/one/datastores/102 ocfs2 _netdev,defaults 0 0
# mount -a
Результатом выполнения команды должен быть пустой вывод без ошибок.
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 59G 0 disk
`-sda1 8:1 0 255M 0 part /boot/efi
sdb 8:16 0 931.3G 0 disk
`-mpatha 253:0 0 931.3G 0 mpath
`-mpatha-part1 253:1 0 931.3G 0 part /var/lib/one/datastores/102
sdc 8:32 0 931.3G 0 disk
|-sdc1 8:33 0 931.3G 0 part
`-mpatha 253:0 0 931.3G 0 mpath
`-mpatha-part1 253:1 0 931.3G 0 part /var/lib/one/datastores/102
sdd 8:48 0 931.3G 0 disk
`-mpatha 253:0 0 931.3G 0 mpath
`-mpatha-part1 253:1 0 931.3G 0 part /var/lib/one/datastores/102
sde 8:64 0 931.3G 0 disk
`-mpatha 253:0 0 931.3G 0 mpath
`-mpatha-part1 253:1 0 931.3G 0 part /var/lib/one/datastores/102
Примечание
_netdev
позволяет монтировать данный раздел только после успешного старта сетевой подсистемы.
Важно
/etc/fstab
и перезагрузки ОС, необходимо назначить на каталог этого хранилища владельца oneadmin. Например:
# chown oneadmin: /var/lib/one/datastores/102
Примечание
#mounted.ocfs2 -f
Device Stack Cluster F Nodes /dev/mapper/mpatha-part1 o2cb server, host-02, host-01 #mounted.ocfs2 -d
Device Stack Cluster F UUID Label /dev/mapper/mpatha-part1 o2cb DF49216AA83547C6B7C16962E9B7DCB6 DBF
use_lvmetad = 0
в /etc/lvm/lvm.conf
(в разделе global) и отключить службу lvm2-lvmetad.service, если она запущена.
# gpasswd -a oneadmin disk
Примечание
/dev/mapper/
.
# wipefs -fa /dev/mapper/[LUN_WWID]
# pvcreate /dev/mapper/mpathb
Physical volume "/dev/mapper/mpathb" successfully created.
# vgcreate vg-one-101 /dev/mapper/mpathb
Volume group "vg-one-101" successfully created
# pvs
PV VG Fmt Attr PSize PFree
/dev/mapper/mpathb vg-one-101 lvm2 a-- 931.32g 931.32g
#где 52 — идентификатор ВМ.lvscan
ACTIVE '/dev/vg-one-101/lv-one-52-0' [50,00 GiB] inherit #lsblk
sde 8:64 0 931.3G 0 disk └─mpathb 253:1 0 931.3G 0 mpath └─vg--one--101-lv--one--52--0 253:3 0 51G 0 lvm
fileds.conf
со следующим содержимым:
NAME = local_file DS_MAD = fs TM_MAD = ssh TYPE = FILE_DSИ выполнить команду:
$ onedatastore create fileds.conf
ID: 105
Примечание
$ onedatastore update <идентификатор_хранилища> <имя_файла>
oneimage
.
Примечание
Примечание
$ oneimage create
-d 1 --name "ALT Workstation ISO" \
--path /var/tmp/alt-workstation-10.0-x86_64.iso --type CDROM
ID: 31
Создать пустой образ диска (тип образа — DATABLOCK, размер 45 ГБ, драйвер qcow2):
$ oneimage create
-d 1 --name "ALT Workstation" \
--type DATABLOCK --size 45G --persistent --driver qcow2
ID: 33
Примечание
template
со следующим содержимым:
NAME = "ALT Workstation" CONTEXT = [ NETWORK = "YES", SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]" ] CPU = "1" DISK = [ IMAGE = "ALT Workstation ISO", IMAGE_UNAME = "oneadmin" ] DISK = [ DEV_PREFIX = "vd", IMAGE = "ALT Workstation", IMAGE_UNAME = "oneadmin" ] GRAPHICS = [ LISTEN = "0.0.0.0", TYPE = "SPICE" ] HYPERVISOR = "kvm" INPUTS_ORDER = "" LOGO = "images/logos/alt.png" MEMORY = "1024" MEMORY_UNIT_COST = "MB" NIC = [ NETWORK = "VirtNetwork", NETWORK_UNAME = "oneadmin", SECURITY_GROUPS = "0" ] NIC_DEFAULT = [ MODEL = "virtio" ] OS = [ BOOT = "disk1,disk0" ] SCHED_REQUIREMENTS = "ID=\"0\""
$ onetemplate create template
ID: 22
Примечание
$ onetemplate instantiate 9
VM ID: 5
Примечание
spice://192.168.0.180:5905где 192.168.0.180 — IP-адрес узла с ВМ, а 5 — идентификатор ВМ (номер порта 5900 + 5).
# apt-get update && apt-get install opennebula-context
# apt-get install systemd-timesyncd
/etc/systemd/network/lan.network
со следующим содержимым:
[Match] Name = * [Network] DHCP = ipv4
# systemctl disable network NetworkManager && systemctl enable systemd-networkd systemd-timesyncd
Примечание
$ onevm terminate 5
Примечание
$oneimage chtype 1 OS
$oneimage nonpersistent 1
$ onemarket list
ID NAME SIZE AVAIL APPS MAD ZONE STAT
3 DockerHub 0M - 175 dockerh 0 on
2 TurnKey Linux Containers 0M - 0 turnkey 0 on
1 Linux Containers 0M - 0 linuxco 0 on
0 OpenNebula Public 0M - 54 one 0 on
Примечание
# apt-get install docker-engine
# gpasswd -a oneadmin docker
и выполнить повторный вход в систему
# systemctl enable --now docker
# systemctl restart opennebula
oneimage create
), используя в качестве PATH (или опции --path
) URL-адрес следующего формата:
docker://<image>?size=<image_size>&filesystem=<fs_type>&format=raw&tag=<tag>&distro=<distro>где:
Примечание
/etc/os-release
. Если эта информация недоступна внутри контейнера, необходимо использовать аргумент distro
.
$ oneimage create --name alt-p10 --path 'docker://alt?size=3072&filesystem=ext4&format=raw&tag=p10' --datastore 1
ID: 22
Примечание
oneuser
— инструмент командной строки для управления пользователями в OpenNebula.
$ oneuser list
ID NAME ENAB GROUP AUTH VMS MEMORY CPU
1 serveradmin yes oneadmin server_c 0 / - 0M / 0.0 / -
0 oneadmin yes oneadmin core - - -
$ oneuser create <user_name> <password>
$ oneuser chgrp <user_name> oneadmin
Что бы удалить пользователя из группы, необходимо переместить его обратно в группу users.
$ oneuser disable <user_name>
Включить отключённого пользователя:
$ oneuser enable <user_name>
Удалить пользователя:
$ oneuser delete <user_name>
Примечание
onegroup
— инструмент командной строки для управления группами в OpenNebula.
$ onegroup list
ID NAME USERS VMS MEMORY CPU
1 users 1 0 / - 0M / - 0.0 / -
0 oneadmin 3 - - -
$ onegroup create group_name
ID: 100
Новая группа получила идентификатор 100, чтобы отличать специальные группы от созданных пользователем.
$ onegroup create
--name testgroup \
--admin_user testgroup-admin --admin_password somestr \
--resources TEMPLATE+VM
При выполнении данной команды также будет создан администратор группы.
$ onegroup addadmin <groupid_list> <userid>
$ onevm show 8
VIRTUAL MACHINE 8 INFORMATION
ID : 8
NAME : test
USER : oneadmin
GROUP : oneadmin
STATE : POWEROFF
LCM_STATE : LCM_INIT
LOCK : None
RESCHED : No
HOST : host-01
CLUSTER ID : 0
CLUSTER : default
START TIME : 04/08 16:12:53
END TIME : -
DEPLOY ID : 69ab21c2-22ad-4afb-bfc1-7b4e4ff2364f
VIRTUAL MACHINE MONITORING
ID : 8
TIMESTAMP : 1712756284
PERMISSIONS
OWNER : um-
GROUP : ---
OTHER : ---
…
В данном примере показаны права на ВМ с ID=8.
chmod
. Права записываются в числовом формате. Пример изменения прав:
$onevm chmod 8 607
$onevm show 8
… PERMISSIONS OWNER : um- GROUP : --- OTHER : uma
Примечание
oned.conf
(атрибут DEFAULT_UMASK
);
oneuser umask
.
$ oneacl list
ID USER RES_VHNIUTGDCOZSvRMAPt RID OPE_UMAC ZONE
0 @1 V--I-T---O-S----P- * ---c *
1 * ----------Z------- * u--- *
2 * --------------MA-- * u--- *
3 @1 -H---------------- * -m-- #0
4 @1 --N--------------- * u--- #0
5 @1 -------D---------- * u--- #0
6 #3 ---I-------------- #30 u--- #0
Данные правила соответсвуют следующим:
@1 VM+IMAGE+TEMPLATE+DOCUMENT+SECGROUP/* CREATE * * ZONE/* USE * * MARKETPLACE+MARKETPLACEAPP/* USE * @1 HOST/* MANAGE #0 @1 NET/* USE #0 @1 DATASTORE/* USE #0 #3 IMAGE/#30 USE *Первые шесть правил были созданы при начальной загрузке OpenNebula, а последнее — с помощью
oneacl
:
$ oneacl create "#3 IMAGE/#30 USE"
ID: 6
oneacl list
:
$ oneacl delete <ID>
Примечание
Важно
/etc/one/oned.conf
добавить строку DEFAULT_AUTH = "ldap":
… AUTH_MAD = [ EXECUTABLE = "one_auth_mad", AUTHN = "ssh,x509,ldap,server_cipher,server_x509" ] DEFAULT_AUTH = "ldap" …
Важно
/etc/one/sunstone-server.conf
для параметра :auth
должно быть указано значение opennebula:
:auth: opennebula
/etc/one/auth/ldap_auth.conf
необходимо указать:
:user
— пользователь AD с правами на чтение (пользователь указывается в формате opennebula@test.alt);
:password
— пароль пользователя;
:host
— IP-адрес или имя сервера AD (имя должно разрешаться через DNS или /etc/hosts
);
:base
— базовый DN для поиска пользователя;
:user_field
— для этого параметра следует установить значение sAMAccountName;
:rfc2307bis
— для этого параметра следует установить значение true.
/etc/one/auth/ldap_auth.conf
:
server 1: :user: 'opennebula@test.alt' :password: 'Pa$$word' :auth_method: :simple :host: dc1.test.alt :port: 389 :base: 'dc=test,dc=alt' :user_field: 'sAMAccountName' :mapping_generate: false :mapping_timeout: 300 :mapping_filename: server1.yaml :mapping_key: GROUP_DN :mapping_default: 100 :rfc2307bis: true :order: - server 1
Примечание
:order
указывается порядок, в котором будут опрошены настроенные серверы. Элементы в :order
обрабатываются по порядку, пока пользователь не будет успешно аутентифицирован или не будет достигнут конец списка. Сервер, не указанный в :order
, не будет опрошен.
Примечание
/etc/one/auth/ldap_auth.conf
для настройки аутентификации в домене FreeIPA (домен example.test):
server 1: :user: 'uid=admin,cn=users,cn=accounts,dc=example,dc=test' :password: '12345678' :auth_method: :simple :host: ipa.example.test :port: 389 :base: 'dc=example,dc=test' :user_field: 'uid' :mapping_generate: false :mapping_timeout: 300 :mapping_filename: server1.yaml :mapping_key: GROUP_DN :mapping_default: 100 :rfc2307bis: true :order: - server 1
:mapping_file
(файл должен находиться в каталоге /var/lib/one/
).
:mapping_generate
должно быть установлено значение true). Если в шаблон группы добавить строку:
GROUP_DN="CN=office,CN=Users,DC=test,DC=alt"И в файле
/etc/one/auth/ldap_auth.conf
для параметра :mapping_key
установить значение GROUP_DN, то поиск DN сопоставляемой группы будет осуществляться в этом параметре шаблона. В этом случае файл /var/lib/one/server1.yaml
будет сгенерирован со следующим содержимым:
--- CN=office,CN=Users,DC=test,DC=alt: '100'и пользователи из группы AD office, будут сопоставлены с группой ALT (ID=100).
:mapping_generate
равным false, и выполнить сопоставление вручную. Файл сопоставления имеет формат YAML и содержит хеш, где ключ — это DN группы AD, а значение — идентификатор группы OpenNebula. Например, если содержимое файла /var/lib/one/server1.yaml
:
CN=office,CN=Users,DC=test,DC=alt: '100' CN=Domain Admins,CN=Users,DC=test,DC=alt: '101'то пользователи из группы AD office, будут сопоставлены с группой ALT (ID=100), а из группы AD Domain Admin — с группой Admin (ID=101):
/etc/one/oned.conf
);
$onezone list
C ID NAME ENDPOINT FED_INDEX * 0 OpenNebula http://localhost:2633/RPC2 -1 $onezone server-add 0 --name opennebula --rpc http://192.168.0.186:2633/RPC2
$onezone show 0
ZONE 0 INFORMATION ID : 0 NAME : OpenNebula ZONE SERVERS ID NAME ENDPOINT 0 opennebula http://192.168.0.186:2633/RPC2 HA & FEDERATION SYNC STATUS ID NAME STATE TERM INDEX COMMIT VOTE FED_INDEX 0 opennebula solo 0 -1 0 -1 -1 ZONE TEMPLATE ENDPOINT="http://localhost:2633/RPC2"
/etc/one/oned.conf
:
FEDERATION = [ MODE = "STANDALONE", ZONE_ID = 0, SERVER_ID = 0, # изменить с -1 на 0 (0 — это ID сервера) MASTER_ONED = "" ]
/etc/one/oned.conf
):
RAFT_LEADER_HOOK = [ COMMAND = "raft/vip.sh", ARGUMENTS = "leader enp0s3 192.168.0.200/24" ] # Executed when a server transits from leader->follower RAFT_FOLLOWER_HOOK = [ COMMAND = "raft/vip.sh", ARGUMENTS = "follower enp0s3 192.168.0.200/24" ]
$ onezone show 0
ZONE 0 INFORMATION
ID : 0
NAME : OpenNebula
ZONE SERVERS
ID NAME ENDPOINT
0 opennebula http://192.168.0.186:2633/RPC2
HA & FEDERATION SYNC STATUS
ID NAME STATE TERM INDEX COMMIT VOTE FED_INDEX
0 opennebula leader 1 5 5 0 -1
ZONE TEMPLATE
ENDPOINT="http://localhost:2633/RPC
Сервер opennebula стал Leader-сервером, так же ему был присвоен плавающий адрес (Floating IP):
$ ip -o a sh enp0s3
2: enp0s3 inet 192.168.0.186/24 brd 192.168.0.255 scope global enp0s3\ valid_lft forever preferred_lft forever
2: enp0s3 inet 192.168.0.200/24 scope global secondary enp0s3\ valid_lft forever preferred_lft forever
2: enp0s3 inet6 fe80::a00:27ff:fec7:38e6/64 scope link \ valid_lft forever preferred_lft forever
Предупреждение
Предупреждение
/var/lib/one/.one/
:
$onedb backup -u oneadmin -d opennebula -p oneadmin
MySQL dump stored in /var/lib/one/mysql_localhost_opennebula_2021-6-23_13:43:21.sql Use 'onedb restore' or restore the DB using the mysql command: mysql -u user -h server -P port db_name < backup_file $scp /var/lib/one/mysql_localhost_opennebula_2021-6-23_13\:43\:21.sql <ip>:/tmp
$ssh <ip> rm -rf /var/lib/one/.one
$scp -r /var/lib/one/.one/ <ip>:/var/lib/one/
$ onedb restore -f -u oneadmin -p oneadmin -d opennebula /tmp/mysql_localhost_opennebula_2021-6-23_13\:43\:21.sql
MySQL DB opennebula at localhost restored.
$ onezone server-add 0 --name server02 --rpc http://192.168.0.187:2633/RPC2
Проверить зону на Leader-сервере:
$ onezone show 0
ZONE 0 INFORMATION
ID : 0
NAME : OpenNebula
ZONE SERVERS
ID NAME ENDPOINT
0 opennebula http://192.168.0.186:2633/RPC2
1 server02 http://192.168.0.187:2633/RPC2
HA & FEDERATION SYNC STATUS
ID NAME STATE TERM INDEX COMMIT VOTE FED_INDEX
0 opennebula leader 4 22 22 0 -1
1 server02 error - - - - -
ZONE TEMPLATE
ENDPOINT="http://localhost:2633/RPC2"
Новый сервер находится в состоянии ошибки, так как OpenNebula на новом сервере не запущена. Следует запомнить идентификатор сервера, в этом случае он равен 1.
/etc/one/oned.conf
, (указать в качестве SERVER_ID значение из предыдущего шага). Включить Raft-обработчики, как это было выполнено на Leader.
$ onezone show 0
ZONE 0 INFORMATION
ID : 0
NAME : OpenNebula
ZONE SERVERS
ID NAME ENDPOINT
0 opennebula http://192.168.0.186:2633/RPC2
1 server02 http://192.168.0.187:2633/RPC2
HA & FEDERATION SYNC STATUS
ID NAME STATE TERM INDEX COMMIT VOTE FED_INDEX
0 opennebula leader 4 28 28 0 -1
1 server02 follower 4 28 28 0 -1
ZONE TEMPLATE
ENDPOINT="http://localhost:2633/RPC2""
Примечание
$ onezone show 0
ZONE 0 INFORMATION
ID : 0
NAME : OpenNebula
ZONE SERVERS
ID NAME ENDPOINT
0 opennebula http://192.168.0.186:2633/RPC2
1 server02 http://192.168.0.187:2633/RPC2
2 server03 http://192.168.0.188:2633/RPC2
HA & FEDERATION SYNC STATUS
ID NAME STATE TERM INDEX COMMIT VOTE FED_INDEX
0 opennebula leader 4 35 35 0 -1
1 server02 follower 4 35 35 0 -1
2 server03 follower 4 35 35 0 -1
ZONE TEMPLATE
ENDPOINT="http://localhost:2633/RPC2"
/var/log/one/oned.log
), как в текущем Leader (если он есть), так и в узле, который находится в состоянии Error. Все сообщения Raft будут регистрироваться в этом файле.
$ onezone server-add <zoneid>
параметры:
-n, --name
— имя сервера зоны;
-r, --rpc
— конечная точка RPC сервера зоны;
-v, --verbose
— подробный режим;
--user name
— имя пользователя, используемое для подключения к OpenNebula;
--password password
— пароль для аутентификации в OpenNebula;
--endpoint endpoint
— URL конечной точки интерфейса OpenNebula xmlrpc.
$ onezone server-del <zoneid> <serverid>
параметры:
-v, --verbose
— подробный режим;
--user name
— имя пользователя, используемое для подключения к OpenNebula;
--password password
— пароль для аутентификации в OpenNebula;
--endpoint endpoint
— URL конечной точки интерфейса OpenNebula xmlrpc.
$ onezone server-reset <zone_id> <server_id_of_failed_follower>
Содержание
https://<имя-компьютера>:8006
. Потребуется пройти аутентификацию (логин по умолчанию: root, пароль указывается в процессе установки ОС):
Примечание
Примечание
# apt-get install pve-manager
Все необходимые компоненты при этом будут установлены автоматически.
Важно
Важно
brctl
для настройки моста, и, если утилита не установлена, то при перезапуске системы сеть станет недоступна.
sleep 500 && reboot
.
#mkdir /etc/net/ifaces/vmbr0
#cp /etc/net/ifaces/enp0s3/* /etc/net/ifaces/vmbr0/
#rm -f /etc/net/ifaces/enp0s3/{i,r}*
#cat
<<EOF > /etc/net/ifaces/vmbr0/options BOOTPROTO=static CONFIG_WIRELESS=no CONFIG_IPV4=yes HOST='enp0s3' ONBOOT=yes TYPE=bri EOF
/etc/net/ifaces/enp0s3/ipv4address
.
HOST
файла /etc/net/ifaces/vmbr0/options
нужно указать те интерфейсы, которые будут входить в мост. Если в него будут входить интерфейсы, которые до этого имели IP-адрес (например, enp0s3), то этот адрес должен быть удален (например, можно закомментировать содержимое файла /etc/net/ifaces/enp0s3/ipv4address
).
# systemctl restart network
Примечание
#apt-get install alterator-fbi
#systemctl start ahttpd
#systemctl start alteratord
Важно
#control sshd-permit-root-login without_password
#systemctl restart sshd
#А после того, как сервер будет добавлен, снова отключить.control sshd-permit-root-login enabled
#systemctl restart sshd
Таблица 38.1. Используемые порты
Порт
|
Функция
|
---|---|
TCP 8006
|
Веб-интерфейс PVE
|
TCP 5900-5999
|
Доступ к консоли VNC
|
TCP 3128
|
Доступ к консоли SPICE
|
TCP 22
|
SSH доступ
|
UDP 5404, 5405
|
Широковещательный CMAN для применения настроек кластера
|
/etc/hosts
:
#echo "192.168.0.186 pve01.test.alt pve01" >> /etc/hosts
#echo "192.168.0.90 pve02.test.alt pve02" >> /etc/hosts
#echo "192.168.0.70 pve03.test.alt pve03" >> /etc/hosts
Примечание
Примечание
/etc/hosts
разрешающимся в 127.0.0.1.
# pvecm create <cluster_name>
#systemctl start pve-cluster
#pvecm create pve-cluster
# pvecm status
Cluster information
-------------------
Name: pve-cluster
Config Version: 1
Transport: knet
Secure auth: on
Quorum information
------------------
Date: Mon Apr 1 10:32:25 2024
Quorum provider: corosync_votequorum
Nodes: 1
Node ID: 0x00000001
Ring ID: 1.5
Quorate: Yes
Votequorum information
----------------------
Expected votes: 1
Highest expected: 1
Total votes: 1
Quorum: 1
Flags: Quorate
Membership information
----------------------
Nodeid Votes Name
0x00000001 1 192.168.0.186 (local)
/etc/pve/corosync.conf
. По мере добавления узлов в кластер файл настройки будет автоматически пополняться информацией об узлах.
# pvecm add <existing_node_in_cluster>
где existing_node_in_cluster
— адрес уже добавленного узла (рекомендуется указывать самый первый).
# pvecm add pve01
где pve01 — имя или IP-адрес «головного» узла.
# pvecm add pve01
Please enter superuser (root) password for 'pve01': ***
Establishing API connection with host 'pve01'
Login succeeded.
Request addition of this node
Join request OK, finishing setup locally
stopping pve-cluster service
backup old database to '/var/lib/pve-cluster/backup/config-1625747072.sql.gz'
waiting for quorum...OK
(re)generate node files
generate new node certificate
merge authorized SSH keys and known hosts
generated new node certificate, restart pveproxy and pvedaemon services
successfully added node 'pve03' to cluster.
/etc/pve/corosync.conf
должен содержать информацию об узлах кластера.
#systemctl start pve-cluster pveproxy pvedaemon pvestatd pve-firewall pvefw-logger pve-ha-crm pve-ha-lrm spiceproxy lxc lxcfs lxc-net lxc-monitord qmeventd pvescheduler pve-lxc-syscalld
#systemctl enable pve-cluster pveproxy pvedaemon pvestatd pve-firewall corosync pvefw-logger pve-guests pve-ha-crm pve-ha-lrm spiceproxy lxc lxcfs lxc-net lxc-monitord qmeventd pvescheduler pve-lxc-syscalld
pvecm nodes
, чтобы определить идентификатор узла, который следует удалить:
# pvecm nodes
Membership information
----------------------
Nodeid Votes Name
1 1 pve01 (local)
2 1 pve02
3 1 pve03
# pvecm delnode pve02
# pvecm nodes
Membership information
----------------------
Nodeid Votes Name
1 1 pve01 (local)
3 1 pve03
# pvecm status
…
Votequorum information
----------------------
Expected votes: 5
Highest expected: 5
Total votes: 5
Quorum: 3
Flags: Quorate
…
В выводе команды видно, что в кластере пять узлов (Expected votes
), из них для кворума необходимо не менее трёх (Quorum
), сейчас все пять узлов активны (Total votes
), кворум соблюден (Flags: Quorate
).
Примечание
Важно
#А после того, как QDevice будет добавлен, отключить:control sshd-permit-root-login enabled
#systemctl restart sshd
#control sshd-permit-root-login without_password
#systemctl restart sshd
# apt-get install corosync-qnetd
corosync-qnetd
:
# systemctl enable --now corosync-qnetd
# apt-get install corosync-qdevice
# pvecm qdevice setup 192.168.0.88
где 192.168.0.88 — IP-адрес арбитра (внешнего сервера).
# pvecm status
…
Votequorum information
----------------------
Expected votes: 5
Highest expected: 5
Total votes: 5
Quorum: 3
Flags: Quorate Qdevice
Membership information
----------------------
Nodeid Votes Qdevice Name
0x00000001 1 A,V,NMW 192.168.0.186 (local)
0x00000002 1 A,V,NMW 192.168.0.90
0x00000003 1 A,V,NMW 192.168.0.70
0x00000004 1 A,V,NMW 192.168.0.91
0x00000000 1 Qdevice
# pvecm qdevice remove
/etc/pve/priv/
и /etc/pve/nodes/${NAME}/priv/
доступны только root.
/etc/pve/
.
Таблица 39.1. Доступные типы хранилищ
Хранилище
|
PVE тип
|
Уровень
|
Общее (shared)
|
Снимки (snapshots)
|
---|---|---|---|---|
ZFS (локальный)
|
zfspool
|
файл
|
нет
|
да
|
dir
|
файл
|
нет
|
нет (возможны в формате qcow2)
|
|
btrfs
|
файл
|
нет
|
да
|
|
nfs
|
файл
|
да
|
нет (возможны в формате qcow2)
|
|
cifs
|
файл
|
да
|
нет (возможны в формате qcow2)
|
|
glusterfs
|
файл
|
да
|
нет (возможны в формате qcow2)
|
|
cephfs
|
файл
|
да
|
да
|
|
lvm
|
блок
|
нет*
|
нет
|
|
lvmthin
|
блок
|
нет
|
да
|
|
iscsi
|
блок
|
да
|
нет
|
|
iscsidirect
|
блок
|
да
|
нет
|
|
rbd
|
блок
|
да
|
да
|
|
ZFS over iSCSI
|
zfs
|
блок
|
да
|
да
|
pbs
|
файл/блок
|
да
|
-
|
Примечание
/etc/pve/storage.cfg
. Поскольку этот файл находится в /etc/pve/
, он автоматически распространяется на все узлы кластера. Таким образом, все узлы имеют одинаковую конфигурацию хранилища.
<type>: <STORAGE_ID> <property> <value> <property> <value> ...
/etc/pve/storage.cfg
:
# cat /etc/pve/storage.cfg
dir: local
path /var/lib/vz
content images,rootdir,iso,snippets,vztmpl
maxfiles 0
nfs: nfs-storage
export /export/storage
path /mnt/nfs-vol
server 192.168.0.105
content images,iso,backup,vztmpl
options vers=3,nolock,tcp
/var/lib/vz
, и описание NFS-хранилища nfs-storage.
Таблица 39.2. Параметры хранилищ
Свойство
|
Описание
|
---|---|
nodes
|
Список узлов кластера, где хранилище можно использовать/доступно. Можно использовать это свойство, чтобы ограничить доступ к хранилищу.
|
content
|
Хранилище может поддерживать несколько типов содержимого. Это свойство указывает, для чего используется это хранилище.
Доступные опции:
|
shared
|
Указать, что это единое хранилище с одинаковым содержимым на всех узлах (или на всех перечисленных в опции
nodes ). Данное свойство не делает содержимое локального хранилища автоматически доступным для других узлов, он просто помечает как таковое уже общее хранилище!
|
disable
|
Отключить хранилище
|
maxfiles
|
Устарело, следует использовать свойство prune-backups. Максимальное количество файлов резервных копий на ВМ
|
prune-backups
|
Варианты хранения резервных копий
|
format
|
Формат образа по умолчанию (raw|qcow2|vmdk)
|
preallocation
|
Режим предварительного выделения (off|metadata|falloc|full) для образов raw и qcow2 в файловых хранилищах. По умолчанию используется значение metadata (равносильно значению off для образов raw). При использовании сетевых хранилищ в сочетании с большими образами qcow2, использование значения off может помочь избежать таймаутов.
|
Примечание
local:iso/slinux-10.2-x86_64.iso local:101/vm-101-disk-0.qcow2 local:backup/vzdump-qemu-100-2023_08_22-21_12_33.vma.zst nfs-storage:vztmpl/alt-p10-rootfs-systemd-x86_64.tar.xz
# pvesm path <VOLUME_ID>
Например:
#pvesm path local:iso/slinux-10.2-x86_64.iso
/var/lib/vz/template/iso/slinux-10.2-x86_64.iso #pvesm path nfs-storage:vztmpl/alt-p10-rootfs-systemd-x86_64.tar.xz
/mnt/pve/nfs-storage/template/cache/alt-p10-rootfs-systemd-x86_64.tar.xz
pvesm
(PVE Storage Manager), позволяет выполнять общие задачи управления хранилищами.
#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>]
# pvesm alloc local <VMID> '' 4G
# pvesm free <VOLUME_ID>
# pvesm status
# pvesm list <STORAGE_ID> [--vmid <VMID>]
# pvesm list <STORAGE_ID> --iso
Примечание
Таблица 39.3. Структура каталогов
Тип данных
|
Подкаталог
|
---|---|
Образы дисков ВМ
|
images/<VMID>/
|
ISO-образы
|
template/iso/
|
Шаблоны контейнеров
|
template/cache/
|
Резервные копии VZDump
|
dump/
|
Фрагменты (сниппеты)
|
snippets/
|
Примечание
/etc/fstab
, а затем определить хранилище каталогов для этой точки монтирования. Таким образом, можно использовать любую файловую систему (ФС), поддерживаемую Linux.
Примечание
/mnt/iso
:
path
— указание каталога (это должен быть абсолютный путь к файловой системе);
content-dirs
(опционально) — позволяет изменить макет по умолчанию. Состоит из списка идентификаторов, разделенных запятыми, в формате:
vtype=pathгде vtype — один из разрешенных типов контента для хранилища, а path — путь относительно точки монтирования хранилища.
/etc/pve/storage.cfg
):
dir: backup path /mnt/backup content backup prune-backups keep-last=7 shared 0 content-dirs backup=custom/backup
/mnt/backup/custom/backup
.
Примечание
shared
(Общий доступ) можно установить только для кластерных ФС (например, ocfs2).
VM-<VMID>-<NAME>.<FORMAT>где:
# ls /var/lib/vz/images/101
vm-101-disk-0.qcow2 vm-101-disk-1.qcow2
base-<VMID>-<NAME>.<FORMAT>
/etc/fstab
).
shared
, который всегда установлен. Кроме того, для настройки NFS используются следующие свойства:
server
— IP-адрес сервера или DNS-имя. Предпочтительнее использовать IP-адрес вместо DNS-имени (чтобы избежать задержек при поиске DNS);
export
— совместный ресурс с сервера NFS (список можно просмотреть, выполнив команду pvesm scan nfs <server>
);
path
— локальная точка монтирования (по умолчанию /mnt/pve/<STORAGE_ID>/
);
content-dirs
(опционально) — позволяет изменить макет по умолчанию. Состоит из списка идентификаторов, разделенных запятыми, в формате:
vtype=pathгде vtype — один из разрешенных типов контента для хранилища, а path — путь относительно точки монтирования хранилища;
options
— параметры монтирования NFS (см. man nfs
).
/etc/pve/storage.cfg
):
nfs: nfs-storage export /export/storage path /mnt/pve/nfs-storage server 192.168.0.105 content images,backup,vztmpl,iso options vers=3,nolock,tcp
Примечание
soft
, в этом случае будет выполняться только три запроса.
Примечание
# systemctl enable --now nfs-client.target
/export/storage
.
pvesm
:
# pvesm add nfs nfs-storage --path /mnt/nfs-vol --server 192.168.0.105 --options vers=3,nolock,tcp --export /export/storage --content images,iso,vztmpl,backup
# pvesm nfsscan <server>
Примечание
Примечание
is_mountpoint
.
/etc/pve/storage.cfg
):
btrfs: btrfs-storage path /mnt/data/btrfs-storage content rootdir,images is_mountpoint /mnt/data nodes pve02 prune-backups keep-all=1В данном примере файловая система BTRFS смонтирована в
/mnt/data
, а в качестве пула хранения данных добавляется её подкаталог btrfs-storage/
.
/mnt/data
:
pvesm
:
# pvesm add btrfs btrfs-storage --path /mnt/data/btrfs-storage --is_mountpoint /mnt/data/ --content images,rootdir
# mkfs.btrfs -m single -d single -L My-Storage /dev/sdd
Параметры -m
и -d
используются для установки профиля для метаданных и данных соответственно. С помощью необязательного параметра -L
можно установить метку.
# mkfs.btrfs -m raid1 -d raid1 -L My-Storage /dev/sdb1 /dev/sdc1
#mkdir /mnt/data
#mount /dev/sdd /mnt/data
/etc/fstab
. Рекомендуется использовать значение UUID (выведенное командой mkfs.btrf
), например:
UUID=5a556184-43b2-4212-bc21-eee3798c8322 /mnt/data btrfs defaults 0 0Выполнить проверку монтирования:
# mount -a
Результатом выполнения команды должен быть пустой вывод без ошибок.
Примечание
# blkid
/dev/sdd: LABEL="My-Storage" UUID="5a556184-43b2-4212-bc21-eee3798c8322" BLOCK_SIZE="4096" TYPE="btrfs"
# btrfs subvolume create /mnt/data/btrfs-storage
# btrfs subvolume delete /mnt/data/btrfs-storage
# btrfs subvolume snapshot -r /mnt/data/btrfs-storage /mnt/data/new
Будет создан доступный только для чтения «клон» подтома /mnt/data/btrfs-storage
. Чтобы из снимка, доступного только для чтения, создать его версию, доступную для записи, следует просто создать его снимок без опции -r
.
# btrfs subvolume list /mnt/data
ID 256 gen 17 top level 5 path btrfs-storage
ID 257 gen 14 top level 5 path new
# btrfs filesystem usage /mnt/data
или:
$ btrfs filesystem df /mnt/data
Примечание
shared
, который всегда установлен. Кроме того, для настройки CIFS используются следующие свойства:
server
— IP-адрес сервера или DNS-имя. Предпочтительнее использовать IP-адрес вместо DNS-имени (чтобы избежать задержек при поиске DNS);
share
— совместный ресурс с сервера CIFS (список можно просмотреть, выполнив команду pvesm scan cifs <server>
);
username
— имя пользователя для хранилища CIFS (опционально, по умолчанию «guest»);
password
— пароль пользователя (опционально). Пароль будет сохранен в файле, доступном только для чтения root-пользователю (/etc/pve/priv/storage/<STORAGE-ID>.pw
);
domain
— устанавливает домен пользователя (рабочую группу) для этого хранилища (опционально);
smbversion
— версия протокола SMB (опционально, по умолчанию 3). Версия 1 не поддерживается;
path
— локальная точка монтирования (по умолчанию /mnt/pve/<STORAGE_ID>/
);
content-dirs
(опционально) — позволяет изменить макет по умолчанию. Состоит из списка идентификаторов, разделенных запятыми, в формате:
vtype=pathгде vtype — один из разрешенных типов контента для хранилища, а path — путь относительно точки монтирования хранилища;
options
— дополнительные параметры монтирования CIFS (см. man mount.cifs
). Некоторые параметры устанавливаются автоматически, и их не следует задавать в этом параметре. PVE всегда устанавливает опцию soft;
subdir
— подкаталог общего ресурса, который необходимо смонтировать (опционально, по умолчанию используется корневой каталог общего ресурса).
/etc/pve/storage.cfg
):
cifs: newCIFS path /mnt/pve/newCIFS server 192.168.0.105 share smb_data smbversion 2.1
# pvesm cifsscan <server> [--username <username>] [--password]
# pvesm add cifs <storagename> --server <server> --share <share> [--username <username>] [--password]
Примечание
# pvesm add cifs newCIFS --server 192.168.0.105 --share smb_data --smbversion 2.1
Примечание
server
— IP-адрес или DNS-имя сервера GlusterFS;
server2
— IP-адрес или DNS-имя резервного сервера GlusterFS;
volume
— том GlusterFS;
transport
— транспорт GlusterFS: tcp, unix или rdma.
/etc/pve/storage.cfg
):
glusterfs: gluster-01 server 192.168.0.105 server2 192.168.0.110 volume glustervol content images,iso
Примечание
# modprobe zfs
#zfsв файле
/etc/modules-load.d/zfs.conf
.
pool
— пул/файловая система ZFS;
blocksize
— размер блока;
sparse
— использовать тонкое выделение ресурсов;
mountpoint
— точка монтирования пула/файловой системы ZFS. Изменение этого параметра не влияет на свойство точки монтирования набора данных, видимого zfs. По умолчанию /<pool>.
/etc/pve/storage.cfg
):
zfspool: vmdata pool vmdata content images,rootdir mountpoint /vmdata nodes pve03
Примечание
cannot destroy 'data/vm-101-disk-0': dataset is busyЧтобы избежать этой ситуации следует исключить ZFS-диски из области сканирования LVM, добавив в конфигурацию LVM (файл
/etc/lvm/lvm.conf
) в секцию devices{} строки:
# Do not scan ZFS zvols (to avoid problems on ZFS zvols snapshots) filter = [ "r|^/dev/zd*|" ] global_filter = [ "r|^/dev/zd*|" ]
zfs
и zpool
.
# zpool
create -f -o ashift=12 <pool> <device1> <device2>
# zpool
create -f -o ashift=12 <pool> mirror <device1> <device2>
# zpool
create -f -o ashift=12 <pool> mirror <device1>
<device2> mirror <device3> <device4>
# zpool
create -f -o ashift=12 <pool> raidz1 <device1> <device2> <device3>
# zpool
create -f -o ashift=12 <pool> raidz2 <device1>
<device2> <device3> <device4>
# zpool
replace -f <pool> <old device> <new device>
# zfs
set compression=on <pool>
# pvesm
zfsscan
# zpool
create -f vmdata mirror sdb sdc
# zpool
list
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
vmdata 17,5G 492K 17,5G - - 0% 0% 1.00x ONLINE -
Просмотреть статус пула:
# zpool
status
pool: vmdata
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
vmdata ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
errors: No known data errors
vgname
— имя группы томов LVM (должно указывать на существующую группу томов);
base
— базовый том. Этот том автоматически активируется перед доступом к хранилищу. Это особенно полезно, когда группа томов LVM находится на удаленном сервере iSCSI;
saferemove
— обнуление данных при удалении LV (гарантирует, что при удалении тома все данные будут удалены);
saferemove_throughput
— очистка пропускной способности (значение параметра cstream -t
).
/etc/pve/storage.cfg
):
lvm: vg vgname vg content rootdir,images nodes pve03 shared 0
Примечание
/dev/sdd
:
# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created.
# vgcreate vg /dev/sdd
Volume group "vg" successfully created
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdd vg lvm2 a-- <18,00g <3,00g
# vgs
VG #PV #LV #SN Attr VSize VFree
vg 1 2 0 wz--n- <18,00g <3,00g
# pvesm lvmscan
vg
# pvesm add lvm myspace --vgname vg --nodes pve03
vgname
— имя группы томов LVM (должно указывать на существующую группу томов);
thinpool
— название тонкого пула LVM.
/etc/pve/storage.cfg
):
lvmthin: vmstore thinpool vmstore vgname vmstore content rootdir,images nodes pve03
Примечание
# lvcreate -L 80G -T -n vmstore vg
# pvesm lvmthinscan vg
vmstore
# pvesm add lvmthin vmstore --thinpool vmstore --vgname vg --nodes pve03
portal
— IP-адрес или DNS-имя сервера iSCSI;
target
— цель iSCSI.
/etc/pve/storage.cfg
):
iscsi: test1-iSCSI portal 192.168.0.105 target iqn.2021-7.local.omv:test content images
Примечание
content noneВ этом случае нельзя будет создавать ВМ с использованием iSCSI LUN напрямую.
Примечание
# systemctl enable --now iscsid
# pvesm scan iscsi <IP-адрес сервера[:порт]>>
# pvesm add iscsi <ID> --portal <Сервер iSCSI> --target <Цель iSCSI> --content none
Примечание
/etc/pve/storage.cfg
):
iscsidirect: test1-iSCSi portal 192.168.0.191 target dc1.test.alt:server.target
monhost
— список IP-адресов демона монитора (только если Ceph не работает на кластере PVE);
pool
— название пула Ceph (rbd);
username
— идентификатор пользователя Ceph (только если Ceph не работает на кластере PVE);
krbd
(опционально) — обеспечивает доступ к блочным устройствам rados через модуль ядра krbd.
Примечание
krbd
.
/etc/pve/storage.cfg
):
rbd: new content images krbd 0 monhost 192.168.0.105 pool rbd username admin
/root
узла:
# scp <external cephserver>:/etc/ceph/ceph.client.admin.keyring /root/rbd.keyring
# pvesm add rbd <name> --monhost "10.1.1.20 10.1.1.21 10.1.1.22" --content images --keyring /root/rbd.keyring
/etc/pve/priv/ceph/<STORAGE_ID>.keyring
.
Примечание
monhost
— список IP-адресов демона монитора (только если Ceph не работает на кластере PVE);
path
— локальная точка монтирования (по умолчанию используется /mnt/pve/<STORAGE_ID>/
);
username
— идентификатор пользователя (только если Ceph не работает на кластере PVE);
subdir
— подкаталог CephFS для монтирования (по умолчанию /);
fuse
— доступ к CephFS через FUSE (по умолчанию 0).
/etc/pve/storage.cfg
):
cephfs: cephfs-external content backup monhost 192.168.0.105 path /mnt/pve/cephfs-external username admin
Примечание
# ceph fs ls
/root
узла:
# scp <external cephserver>:/etc/ceph/cephfs.secret /root/cephfs.secret
# pvesm add cephfs <name> --monhost "10.1.1.20 10.1.1.21 10.1.1.22" --content backup --keyring /root/cephfs.secret
/etc/pve/priv/ceph/<STORAGE_ID>.secret
.
# ceph auth get-key client.userid > cephfs.secret
server
— IP-адрес или DNS-имя сервера резервного копирования;
username
— имя пользователя на сервере резервного копирования (например, root@pam, backup_u@pbs);
password
— пароль пользователя. Значение будет сохранено в файле /etc/pve/priv/storage/<STORAGE-ID>.pw
, доступном только суперпользователю;
datastore
— идентификатор хранилища на сервере резервного копирования;
fingerprint
— отпечаток TLS-сертификата API Proxmox Backup Server. Требуется, если сервер резервного копирования использует самоподписанный сертификат. Отпечаток можно получить в веб-интерфейсе сервера резервного копирования или с помощью команды proxmox-backup-manager cert info
;
encryption-key
— ключ для шифрования резервной копии. В настоящее время поддерживаются только те файлы, которые не защищены паролем (без функции получения ключа (kdf)). Ключ будет сохранен в файле /etc/pve/priv/storage/<STORAGE-ID>.enc
, доступном только суперпользователю. Опционально;
master-pubkey
— открытый ключ RSA, используемый для шифрования копии ключа шифрования (encryption-key
) в рамках задачи резервного копирования. Зашифрованная копия будет добавлена к резервной копии и сохранена на сервере резервного копирования для целей восстановления. Опционально, требуется encryption-key
.
/etc/pve/storage.cfg
):
pbs: pbs_backup datastore store2 server 192.168.0.123 content backup fingerprint 42:5d:29:20:…:d1:be:bc:c0:c0:a9:9b:b1:a8:1b prune-backups keep-all=1 username root@pam
# pvesm add pbs pbs_backup --server 192.168.0.123 --datastore store2 --username root@pam --fingerprint 42:5d:29:20:…:d1:be:bc:c0:c0:a9:9b:b1:a8:1b --password
encryption-key
, либо через веб-интерфейс:
/etc/pve/priv/storage/<STORAGE-ID>.enc
, который доступен только пользователю root.
Примечание
proxmox-backup-client key
. Например, сгенерировать ключ:
# proxmox-backup-client key create --kdf none <path>
Сгенерировать мастер-ключ:
# proxmox-backup-client key create-master-key
Важно
Важно
Примечание
Примечание
Примечание
systool
из пакета sysfsutils.
# apt-get install sysfsutils
# systool -c fc_host -A port_name
Class = "fc_host"
Class Device = "host1"
port_name = "0x10000090fa59a61a"
Device = "host1"
Class Device = "host16"
port_name = "0x10000090fa59a61b"
Device = "host16"
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 59G 0 disk
sdb 8:16 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sdc 8:32 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sdd 8:48 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sde 8:64 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
В данном примере один LUN на 1000GB виден по четырем путям.
node.startup
значение automatic. Значение по умолчанию для параметра node.session.timeo.replacement_timeout
составляет 120 секунд. Рекомендуется использовать значение — 15 секунд.
/etc/iscsi/iscsid.conf
(по умолчанию). Если iSCSI target уже подключен, то необходимо изменить настройки по умолчанию для конкретной цели в файле /etc/iscsi/nodes/<TARGET>/<PORTAL>/default
.
#apt-get install open-iscsi
#systemctl enable --now iscsid
/etc/iscsi/iscsid.conf
:
node.startup = automatic node.session.timeo.replacement_timeout = 15
#iscsiadm -m discovery -t sendtargets -p <iscsi-target-1-ip>
#iscsiadm -m discovery -t sendtargets -p <iscsi-target-2-ip>
#iscsiadm -m node --login
/etc/iscsi/iscsid.conf
:
node.startup = automatic
/var/lib/iscsi/send_targets/<TargetServer>,<Port>/st_config
:
discovery.sendtargets.use_discoveryd = Yes
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 59G 0 disk
sdb 8:16 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sdc 8:32 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sdd 8:48 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sde 8:64 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
В данном примере один LUN на 1000GB виден по четырем путям.
Примечание
iscsiadm
:
# iscsiadm -m node --logout
# iscsiadm -m node --targetname "iscsi-target-1.test.alt:server.target1" --logout
# iscsiadm -m node -R
# iscsiadm -m session
# apt-get install multipath-tools
И запущена служба multipathd:
# systemctl enable --now multipathd && sleep 5; systemctl status multipathd
Примечание
multipath
используется для обнаружения и объединения нескольких путей к устройствам.
multipath
:
-l
— отобразить текущую multipath-топологию, полученную из sysfs и устройства сопоставления устройств;
-ll
— отобразить текущую multipath-топологию, собранную из sysfs, устройства сопоставления устройств и всех других доступных компонентов системы;
-f device
— удалить указанное multipath-устройство;
-F
— удалить все неиспользуемые multipath-устройства;
-w device
— удалить WWID указанного устройства из файла wwids;
-W
— сбросить файл wwids, чтобы включить только текущие многопутевые устройства;
-r
— принудительная перезагрузка multipath-устройства.
# multipath -ll
mpatha (3600c0ff00014f56ee9f3cf6301000000) dm-0 HP,P2000 G3 FC
size=931G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| |- 1:0:0:1 sdb 8:16 active ready running
| `- 16:0:1:1 sde 8:64 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
|- 1:0:1:1 sdc 8:32 active ready running
`- 16:0:0:1 sdd 8:48 active ready running
# multipath -v3
/etc/multipath.conf
:
defaults { find_multipaths yes user_friendly_names yes }
user_friendly_names
установлено значение no, то для имени multipath-устройства задается значение World Wide Identifier (WWID). Имя устройства будет /dev/mapper/WWID
и /dev/dm-X
:
#Если для параметраls /dev/mapper/
3600c0ff00014f56ee9f3cf6301000000 #lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 59G 0 disk sdb 8:16 0 931,3G 0 disk └─3600c0ff00014f56ee9f3cf6301000000 253:0 0 931,3G 0 mpath sdc 8:32 0 931,3G 0 disk └─3600c0ff00014f56ee9f3cf6301000000 253:0 0 931,3G 0 mpath sdd 8:48 0 931,3G 0 disk └─3600c0ff00014f56ee9f3cf6301000000 253:0 0 931,3G 0 mpath sde 8:64 0 931,3G 0 disk └─3600c0ff00014f56ee9f3cf6301000000 253:0 0 931,3G 0 mpath
user_friendly_names
установлено значение yes, то для имени multipath-устройства задаётся алиас (псевдоним), в форме mpathХ. Имя устройства будет /dev/mapper/mpathХ
и /dev/dm-X
:
#Однако не гарантируется, что имя устройства будет одинаковым на всех узлах, использующих это multipath-устройство.ls /dev/mapper/
mpatha #lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 59G 0 disk sdb 8:16 0 931,3G 0 disk └─mpatha 253:0 0 931,3G 0 mpath sdc 8:32 0 931,3G 0 disk └─mpatha 253:0 0 931,3G 0 mpath sdd 8:48 0 931,3G 0 disk └─mpatha 253:0 0 931,3G 0 mpath sde 8:64 0 931,3G 0 disk └─mpatha 253:0 0 931,3G 0 mpath
/dev/mapper/mpatha
). Для этого в файл /etc/multipath.conf
добавить секции:
blacklist { wwid .* } blacklist_exceptions { wwid "3600c0ff00014f56ee9f3cf6301000000" }Данная настройка предписывается внести в черный список любые найденные устройства хранения данных, за исключением нужного.
multipaths { multipath { wwid "3600c0ff00014f56ee9f3cf6301000000" alias mpatha } }В этом случае устройство всегда будет доступно только по имени /dev/mapper/mpatha. Вместо mpatha можно вписать любое желаемое имя устройства.
Примечание
# /lib/udev/scsi_id -g -u -d /dev/sdb
3600c0ff00014f56ee9f3cf6301000000
Для устройств в одном multipath WWID будут совпадать.
/etc/multipath.conf
может также потребоваться внести рекомендованные производителем СХД параметры.
/etc/multipath.conf
необходимо перезапустить службу multipathd для активации настроек:
# systemctl restart multipathd.service
Примечание
/etc/multipath.conf
на наличие ошибок можно, выполнив команду:
# multipath -t
# apt-get install ocfs2-tools
Примечание
/etc/ocfs2/cluster.conf
. Этот файл должен быть одинаков на всех узлах кластера, при изменении в одном месте его нужно скопировать на остальные узлы. При добавлении нового узла в кластер, описание этого узла должно добавлено быть на всех остальных узлах до монтирования раздела ocfs2 с нового узла.
/etc/ocfs2/cluster.conf
.
# o2cb_ctl -C -n mycluster -t cluster -a name=mycluster
# o2cb_ctl -C -n <имя_узла> -t node -a number=0 -a ip_address=<IP_узла> -a ip_port=7777 -a cluster=mycluster
/etc/ocfs2/cluster.conf
:
cluster: node_count = 3 heartbeat_mode = local name = mycluster node: ip_port = 7777 ip_address = <IP_узла-01> number = 0 name = <имя_узла-01> cluster = mycluster node: ip_port = 7777 ip_address = <IP_узла-02> number = 1 name = <имя_узла-02> cluster = mycluster node: ip_port = 7777 ip_address = <IP_узла-03> number = 2 name = <имя_узла-03> cluster = mycluster
Примечание
/etc/hostname
.
/etc/init.d/o2cb
:
# /etc/init.d/o2cb configure
Для ручного запуска кластера нужно выполнить:
#/etc/init.d/o2cb load
checking debugfs... Loading filesystem "ocfs2_dlmfs": OK Creating directory '/dlm': OK Mounting ocfs2_dlmfs filesystem at /dlm: OK #/etc/init.d/o2cb online mycluster
checking debugfs... Setting cluster stack "o2cb": OK Registering O2CB cluster "mycluster": OK Setting O2CB cluster timeouts : OK
/dev/mapper/mpatha-part1
на диске /dev/mapper/mpatha
:
# fdisk /dev/mapper/mpatha
# mkfs.ocfs2 -b 4096 -C 4k -L DBF1 -N 3 /dev/mapper/mpatha-part1
mkfs.ocfs2 1.8.7
Cluster stack: classic o2cb
Label: DBF1
…
mkfs.ocfs2 successful
Таблица 39.4. Параметры команды mkfs.ocfs2
Параметр
|
Описание
|
---|---|
-L метка_тома
|
Метка тома, позволяющая его однозначно идентифицировать при подключении на разных узлах. Для изменения метки тома можно использовать утилиту
tunefs.ocfs2
|
-C размер_кластера
|
Размер кластера — это наименьшая единица пространства, выделенная файлу для хранения данных. Возможные значения: 4, 8, 16, 32, 64, 128, 256, 512 и 1024 КБ. Размер кластера невозможно изменить после форматирования тома
|
-N количество_узлов_кластера
|
Максимальное количество узлов, которые могут одновременно монтировать том. Для изменения количества узлов можно использовать утилиту
tunefs.ocfs2
|
-b размер_блока
|
Наименьшая единица пространства, адресуемая ФС. Возможные значения: 512 байт (не рекомендуется), 1 КБ, 2 КБ или 4 КБ (рекомендуется для большинства томов). Размер блока невозможно изменить после форматирования тома
|
Примечание
# dd if=/dev/zero of=/dev/mapper/mpathX bs=512 count=1 conv=notrunc
/mnt/ocfs2
):
#mkdir /mnt/ocfs2
#mount /dev/mapper/mpatha-part1 /mnt/ocfs2
/etc/fstab
строку (каталог /mnt/ocfs2
должен существовать):
/dev/mapper/mpatha-part1 /mnt/ocfs2 ocfs2 _netdev,defaults 0 0Выполнить проверку монтирования:
# mount -a
Результатом выполнения команды должен быть пустой вывод без ошибок.
Примечание
_netdev
позволяет монтировать данный раздел только после успешного старта сетевой подсистемы.
Примечание
/etc/fstab
по его уникальному идентификатору, а не по имени /dev/mapper/mpatha
:
UUID=<uuid> /<каталог> ocfs2 _netdev,defaults 0 0Например, определить UUID uuid разделов:
# blkid
/dev/mapper/mpatha-part1: LABEL="DBF1" UUID="df49216a-a835-47c6-b7c1-6962e9b7dcb6" BLOCK_SIZE="4096" TYPE="ocfs2" PARTUUID="15f9cd13-01"
Добавить монтирование этого UUID в /etc/fstab
:
UUID=df49216a-a835-47c6-b7c1-6962e9b7dcb6 /mnt/ocfs2 ocfs2 _netdev,defaults 0 0
# pvesm add dir mpath --path /mnt/ocfs2 --shared 1
или в веб-интерфейсе PVE ( → , нажать кнопку → ):
Примечание
Примечание
/etc/lvm/lvm.conf
, например:
filter = [ "a|/dev/mapper/|", "a|/dev/sda.*|", "r|.*|" ]В данном примере принимаются только multipath-устройства и
/dev/sda.*
, все остальные устройства отклоняются:
/dev/mapper
;
/dev/sda
;
# fdisk -l /dev/mapper/mpatha
Disk /dev/mapper/mpatha: 931.32 GiB, 999999995904 bytes, 1953124992 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 1048576 bytes
Disklabel type: dos
Disk identifier: 0x2221951e
Device Boot Start End Sectors Size Id Type
/dev/mapper/mpatha-part1 2048 1953124991 1953122944 931.3G 83 Linux
# pvcreate /dev/mapper/mpatha-part1
Physical volume "/dev/mapper/mpatha-part1" successfully created.
# vgcreate VG1 /dev/mapper/mpatha-part1
Volume group "VG1" successfully created
# pvs
PV VG Fmt Attr PSize PFree
/dev/mapper/mpatha-part1 VG1 lvm2 a-- 931.32g 931.32g
# pvesm lvmscan
VG1
# pvesm add lvm mpath-lvm --vgname VG1 --content images,rootdir
# pvs
PV VG Fmt Attr PSize PFree
/dev/mapper/mpatha-part1 VG1 lvm2 a-- 931.32g 931.32g
# vgs
VG #PV #LV #SN Attr VSize VFree
VG1 1 0 0 wz--n- 931.32g 931.32g
# lvcreate -L 100G -T -n vmstore VG1
Logical volume "vmstore" created.
# pvesm lvmthinscan VG1
vmstore
# pvesm add lvmthin mpath-lvmthin --thinpool vmstore --vgname VG1 --nodes pve01
# multipath -l
mpatha (3600c0ff00014f56ee9f3cf6301000000) dm-0 HP,P2000 G3 FC
size=465G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| |- 1:0:1:1 sdc 8:32 active undef running
| `- 16:0:1:1 sde 8:64 active undef running
`-+- policy='service-time 0' prio=0 status=enabled
|- 1:0:0:1 sdb 8:16 active undef running
`- 16:0:0:1 sdd 8:48 active undef running
# echo 1 > /sys/block/<path_device>/device/rescan
#echo 1 > /sys/block/sdb/device/rescan
#echo 1 > /sys/block/sdc/device/rescan
#echo 1 > /sys/block/sdd/device/rescan
#echo 1 > /sys/block/sde/device/rescan
# dmesg -wHT
# multipathd -k"resize map 3600c0ff00014f56ee9f3cf6301000000"
где 3600c0ff00014f56ee9f3cf6301000000 — WWID multipath-устройства;
# pvresize /dev/mapper/mpatha
# resize2fs /dev/mapper/mpatha
Примечание
pveceph
— инструмент для установки и управления службами Ceph на узлах PVE.
ls
, find
и т.д.), не создавая огромной нагрузки на кластер хранения Ceph.
Таблица 39.5. Системные требования к оборудованию для Ceph
Процесс
|
Критерий
|
Требования
|
---|---|---|
Монитор Ceph
|
Процессор
|
2 ядра минимум, 4 рекомендуется
|
ОЗУ
|
5ГБ+ (большим/производственным кластерам нужно больше)
|
|
Жёсткий диск
|
100 ГБ на демон, рекомендуется SSD
|
|
Сеть
|
1 Гбит/с (рекомендуется 10+ Гбит/с)
|
|
Менеджер Ceph
|
Процессор
|
1 ядро
|
ОЗУ
|
1 ГБ
|
|
OSD Ceph
|
Процессор
|
|
ОЗУ
|
|
|
Жёсткий диск
|
1 SSD накопитель на демон
|
|
Сеть
|
1 Гбит/с (рекомендуется агрегированная сеть 10+ Гбит/с)
|
|
Сервер метаданных Ceph
|
Процессор
|
2 ядра
|
ОЗУ
|
2 ГБ+ (для производственных кластеров больше)
|
|
Жёсткий диск
|
1 ГБ на демон, рекомендуется SSD
|
|
Сеть
|
1 Гбит/с (рекомендуется 10+ Гбит/с)
|
Примечание
Примечание
# pveceph init --network 192.168.0.0/24
/etc/pve/ceph.conf
с выделенной сетью для Ceph. Файл /etc/pve/ceph.conf
автоматически распространяется на все узлы PVE с помощью pmxcfs
. Будет также создана символическая ссылка /etc/ceph/ceph.conf
, которая указывает на файл /etc/pve/ceph.conf
. Таким образом, можно запускать команды Ceph без необходимости указывать файл конфигурации.
Примечание
# pveceph mon create
# pveceph mon destroy
Примечание
# pveceph mgr create
# pveceph mgr destroy
# ceph-volume lvm zap /dev/[X] --destroy
Предупреждение
# pveceph osd create /dev/[X]
-db_dev
и -wal_dev
:
# pveceph osd create /dev/[X] -db_dev /dev/[Y] -wal_dev /dev/[Z]
Если диск для журналирования не указан, WAL размещается вместе с DB.
-db_size
и -wal_size
соответственно. Если эти параметры не указаны, будут использоваться следующие значения (по порядку):
Примечание
#Первая команда указывает Ceph не включать OSD в распределение данных. Вторая команда останавливает службу OSD. До этого момента данные не теряются.ceph osd out <ID>
#systemctl stop ceph-osd@<ID>.service
-cleanup
, чтобы дополнительно уничтожить таблицу разделов):
# pveceph osd destroy <ID>
Предупреждение
pveceph pool create
):
-size
) — количество реплик на объект. Ceph всегда пытается иметь указанное количество копий объекта (по умолчанию 3);
-pg_autoscale_mode
) — автоматический режим масштабирования PG пула. Если установлено значение warn
, выводится предупреждающее сообщение, если в пуле неоптимальное количество PG (по умолчанию warn
);
-add_storages
) — настроить хранилище с использованием нового пула. Доступно только при создании пула (по умолчанию true);
-min_size
) — минимальное количество реплик для объекта. Ceph отклонит ввод-вывод в пуле, если в PG меньше указанного количества реплик (по умолчанию 2);
-crush_rule
) — правило, используемое для сопоставления размещения объектов в кластере. Эти правила определяют, как данные размещаются в кластере;
-pg_num
) — количество групп размещения, которые должен иметь пул в начале (по умолчанию 128);
-target_size_ratio
) — соотношение ожидаемых данных в пуле. Автомасштабирование PG использует соотношение относительно других наборов соотношений. Данный параметр имеет приоритет над целевым размером, если установлены оба;
-target_size
) — предполагаемый объем данных, ожидаемых в пуле. Автомасштабирование PG использует этот размер для оценки оптимального количества PG;
-pg_num_min
) — минимальное количество групп размещения. Этот параметр используется для точной настройки нижней границы количества PG для этого пула. Автомасштабирование PG не будет объединять PG ниже этого порогового значения.
Примечание
min_size
равным 1. Реплицированный пул с min_size
равным 1 разрешает ввод-вывод для объекта, при наличии только одной реплики, что может привести к потере данных, неполным PG или ненайденным объектам.
# pveceph pool create <pool-name> -add_storages
size
), тогда как в пуле EC данные разбиваются на k
фрагментов данных с дополнительными m
фрагментами кодирования (проверки). Эти фрагменты кодирования можно использовать для воссоздания данных, если фрагменты данных отсутствуют.
m
определяет, сколько OSD может быть потеряно без потери данных. Общее количество хранимых объектов равно k + m
.
pveceph
. При планировании пула EC необходимо учитывать тот факт, что они работают иначе, чем реплицированные пулы.
min_size
для пула EC зависит от параметра m
. Если m = 1
, значение min_size
для пула EC будет равно k
. Если m > 1
, значение min_size
будет равно k + 1
. В документации Ceph рекомендуется использовать консервативное значение min_size
, равное k + 2
.
min_size
OSD, любой ввод-вывод в пул будет заблокирован до тех пор, пока снова не будет достаточно доступных OSD.
Примечание
min_size
, так как он определяет, сколько OSD должно быть доступно. В противном случае ввод-вывод будет заблокирован.
k = 2
и m = 1
будет иметь size = 3, min_size = 2
и останется работоспособным, если один OSD выйдет из строя. Если пул настроен с k = 2, m = 2
, будет иметь size = 4
и min_size = 3
и останется работоспособным, если один OSD будет потерян.
# pveceph pool create <pool-name> --erasure-coding k=<integer> ,m=<integer>
\
[,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]
--add_storages 0
. При настройке конфигурации хранилища вручную необходимо будет задать параметр data-pool
, только тогда пул EC будет использоваться для хранения объектов данных.
Примечание
--size
, --min_size
и --crush_rule
будут использоваться для реплицированного пула метаданных, но не для пула данных EC. Если нужно изменить min_size
в пуле данных, это можно будет сделать позже. Параметры size
и crush_rule
нельзя изменить в пулах EC.
profile
. Например:
# pveceph pool create <pool-name> --erasure-coding profile=<profile-name>
Существующий пул EC можно добавить в качестве хранилища в PVE:
# pvesm add rbd <storage-name> --pool <replicated-pool> --data-pool <ec-pool>
Примечание
keyring
и monhost
.
# pveceph pool destroy <name>
-cleanup
, чтобы дополнительно уничтожить таблицу разделов):
# pveceph osd destroy <ID>
Чтобы также удалить связанное хранилище следует указать опцию -remove_storages
.
Примечание
Примечание
# ceph mgr module enable pg_autoscaler
Список запущенных модулей можно посмотреть, выполнив команду:
# ceph mgr module ls
warn
— предупреждение о работоспособности выдается, если предлагаемое значение pg_num слишком сильно отличается от текущего значения;
on
— pg_num настраивается автоматически без необходимости ручного вмешательства;
off
— автоматические корректировки pg_num не производятся, и предупреждение не выдается, если количество PG не является оптимальным.
target_size
, target_size_ratio
и pg_num_min
.
# ceph osd crush tree --show-shadow
ID CLASS WEIGHT TYPE NAME
-6 nvme 0.09760 root default~nvme
-5 nvme 0 host pve01~nvme
-9 nvme 0.04880 host pve02~nvme
1 nvme 0.04880 osd.1
-12 nvme 0.04880 host pve03~nvme
2 nvme 0.04880 osd.2
-2 ssd 0.04880 root default~ssd
-4 ssd 0.04880 host pve01~ssd
0 ssd 0.04880 osd.0
-8 ssd 0 host pve02~ssd
-11 ssd 0 host pve03~ssd
-1 0.14639 root default
-3 0.04880 host pve01
0 ssd 0.04880 osd.0
-7 0.04880 host pve02
1 nvme 0.04880 osd.1
-10 0.04880 host pve03
2 nvme 0.04880 osd.2
# ceph osd crush rule create-replicated <rule-name> <root> <failure-domain> <class>
Где:
rule-name
— имя политики;
root
— корень отказа (значение default — корень Ceph);
failure-domain
— домен отказа, на котором должны распределяться объекты (обычно host);
class
— какой тип хранилища резервных копий OSD использовать (например, nvme, ssd).
# ceph osd crush rule create-replicated my_rule default host nvme
# ceph osd crush rule dump
# ceph osd pool set <pool-name> crush_rule <rule-name>
Примечание
Примечание
hotstandby
при создании сервера, или, после его создания, установив в соответствующем разделе MDS в /etc/pve/ceph.conf
параметр:
mds standby replay = trueЕсли этот параметр включен, указанный MDS будет находиться в состоянии warm, опрашивая активный, чтобы в случае возникновения каких-либо проблем быстрее взять на себя управление.
Примечание
# pveceph mds create
pveceph
, например:
# pveceph fs create --pg_num 128 --add-storage
--add-storage
(опция Добавить как хранилище) добавит CephFS в конфигурацию хранилища PVE.
Предупреждение
# umount /mnt/pve/<STORAGE-NAME>
где <STORAGE-NAME> — имя хранилища CephFS в PVE.
# pveceph stop --service mds.NAME
чтобы остановить их, или команду:
# pveceph mds destroy NAME
чтобы уничтожить их.
# pveceph fs destroy NAME --remove-storages --remove-pools
Это автоматически уничтожит базовые пулы Ceph, а также удалит хранилища из конфигурации PVE.
Примечание
size + 1
. Причина этого в том, что балансировщик объектов Ceph CRUSH по умолчанию использует полный узел в качестве «домена отказа».
# ceph osd out osd.<id>
# ceph osd safe-to-destroy osd.<id>
#systemctl stop ceph-osd@<id>.service
#pveceph osd destroy <id>
fstrim
(discard) на ВМ и контейнерах. Это освобождает блоки данных, которые файловая система больше не использует. В результате снижается нагрузка на ресурсы. Большинство современных ОС регулярно отправляют такие команды discard своим дискам. Нужно только убедиться, что ВМ включают опцию disk discard.
#Эти команды также предоставляют обзор действий, которые необходимо предпринять если кластер находится в неработоспособном состоянии.ceph -s
# однократный вывод #ceph -w
# непрерывный вывод изменений статуса
/var/log/ceph/
.
/etc/net/ifaces
.
Примечание
ovs_ports
;
en
для сетевых устройств Ethernet. Следующие символы зависят от драйвера устройства и того факта, какая схема подходит первой:
Примечание
#mkdir /etc/net/ifaces/vmbr1
#cat
<<EOF > /etc/net/ifaces/vmbr1/options BOOTPROTO=static CONFIG_IPV4=yes HOST= ONBOOT=yes TYPE=bri EOF
Примечание
HOST
.
#mkdir /etc/net/ifaces/vmbr1
#cp /etc/net/ifaces/enp0s8/* /etc/net/ifaces/vmbr1/
#rm -f /etc/net/ifaces/enp0s8/{i,r}*
#cat
<<EOF > /etc/net/ifaces/vmbr1/options BOOTPROTO=static CONFIG_WIRELESS=no CONFIG_IPV4=yes HOST='enp0s8' ONBOOT=yes TYPE=bri EOF
/etc/net/ifaces/enp0s8/ipv4address
.
#Пример настройки моста vmbr1 на интерфейсе enp0s8:mkdir /etc/net/ifaces/vmbr1
#cat
<<EOF > /etc/net/ifaces/vmbr1/options BOOTPROTO=static CONFIG_IPV4=yes ONBOOT=yes TYPE=ovsbr EOF
#mkdir /etc/net/ifaces/vmbr1
#cp /etc/net/ifaces/enp0s8/* /etc/net/ifaces/vmbr1/
#rm -f /etc/net/ifaces/enp0s8/{i,r}*
#cat
<<EOF > /etc/net/ifaces/vmbr1/options BOOTPROTO=static CONFIG_IPV4=yes ONBOOT=yes HOST='enp0s8' TYPE=ovsbr EOF
# systemctl restart network
или перезагрузить узел:
# reboot
Таблица 40.1. Режимы агрегации Linux Bond
Режим
|
Название
|
Описание
|
Отказоустойчивость
|
Балансировка нагрузки
|
---|---|---|---|---|
balance-rr или mode=0
|
Round-robin
|
Режим циклического выбора активного интерфейса для трафика. Пакеты последовательно передаются и принимаются через каждый интерфейс один за другим. Данный режим не требует применения специальных коммутаторов.
|
Да
|
Да
|
active-backup или mode=1
|
Active Backup
|
В этом режиме активен только один интерфейс, остальные находятся в режиме горячей замены. Если активный интерфейс выходит из строя, его заменяет резервный. MAC-адрес интерфейса виден извне только на одном сетевом адаптере, что предотвращает путаницу в сетевом коммутаторе. Это самый простой режим, работает с любым оборудованием, не требует применения специальных коммутаторов.
|
Да
|
Нет
|
balance-xor или mode=2
|
XOR
|
Один и тот же интерфейс работает с определённым получателем. Передача пакетов распределяется между интерфейсами на основе формулы ((MAC-адрес источника) XOR (MAC-адрес получателя)) % число интерфейсов. Режим не требует применения специальных коммутаторов. Этот режим обеспечивает балансировку нагрузки и отказоустойчивость.
|
Да
|
Да
|
broadcast или mode=3
|
Широковещательный
|
Трафик идёт через все интерфейсы одновременно.
|
Да
|
Нет
|
LACP (802.3ad) или mode=4
|
Агрегирование каналов по стандарту IEEE 802.3ad
|
В группу объединяются одинаковые по скорости и режиму интерфейсы. Все физические интерфейсы используются одновременно в соответствии со спецификацией IEEE 802.3ad. Для реализации этого режима необходима поддержка на уровне драйверов сетевых карт и коммутатор, поддерживающий стандарт IEEE 802.3ad (коммутатор требует отдельной настройки).
|
Да
|
Да
|
balance-tlb или mode=5
|
Адаптивная балансировка нагрузки при передаче
|
Исходящий трафик распределяется в соответствии с текущей нагрузкой (с учетом скорости) на интерфейсах (для данного режима необходима его поддержка в драйверах сетевых карт). Входящие пакеты принимаются только активным сетевым интерфейсом.
|
Да
|
Да (исходящий трафик)
|
balance-alb или mode=6
|
Адаптивная балансировка нагрузки
|
Включает в себя балансировку исходящего трафика, плюс балансировку на приём (rlb) для IPv4 трафика и не требует применения специальных коммутаторов (балансировка на приём достигается на уровне протокола ARP, перехватом ARP ответов локальной системы и перезаписью физического адреса на адрес одного из сетевых интерфейсов, в зависимости от загрузки).
|
Да
|
Да
|
xmit_hash_policy
).
Таблица 40.2. Режимы выбора каналов при организации балансировки нагрузки
Режим
|
Описание
|
---|---|
layer2
|
Канал для отправки пакета однозначно определяется комбинацией MAC-адреса источника и MAC-адреса назначения. Весь трафик между определённой парой узлов всегда идёт по определённому каналу. Алгоритм совместим с IEEE 802.3ad. Этот режим используется по умолчанию.
|
layer2+3
|
Канал для отправки пакета определяется по совокупности MAC- и IP-адресов источника и назначения. Трафик между определённой парой IP-хостов всегда идёт по определённому каналу (обеспечивается более равномерная балансировка трафика, особенно в случае, когда большая его часть передаётся через промежуточные маршрутизаторы). Для протоколов 3 уровня, отличных от IP, данный алгоритм равносилен layer2. Алгоритм совместим с IEEE 802.3ad.
|
layer3+4
|
Канал для отправки пакета определяется по совокупности IP-адресов и номеров портов источника и назначения (трафик определённого узла может распределяться между несколькими каналами, но пакеты одного и того же TCP/UDP-соединения всегда передаются по одному и тому же каналу). Для фрагментированных пакетов TCP и UDP, а также для всех прочих протоколов 4 уровня, учитываются только IP-адреса. Для протоколов 3 уровня, отличных от IP, данный алгоритм равносилен layer2. Алгоритм не полностью совместим с IEEE 802.3ad.
|
options
, ipv4address
. В файле options
следует указать тип интерфейса (TYPE) bond, в переменной HOST
перечислить родительские интерфейсы, которые будут входить в агрегированный интерфейс, в переменной BONDMODE
указать режим (по умолчанию 0), а опции для модуля ядра bonding — в BONDOPTIONS
.
Примечание
Таблица 40.3. Параметры OVS Bond
Параметр
|
Описание
|
---|---|
bond_mode=active-backup
|
В этом режиме активен только один интерфейс, остальные находятся в режиме горячей замены. Если активный интерфейс выходит из строя, его заменяет резервный. MAC-адрес интерфейса виден извне только на одном сетевом адаптере, что предотвращает путаницу в сетевом коммутаторе. Это самый простой режим, работает с любым оборудованием, не требует применения специальных коммутаторов.
|
bond_mode=balance-slb
|
Режим простой балансировки на основе MAC и VLAN. В этом режиме нагрузка трафика на интерфейсы постоянно измеряется, и если один из интерфейсов сильно загружен, часть трафика перемещается на менее загруженные интерфейсы. Параметр
bond-rebalance-interval определяет, как часто OVS должен выполнять измерение нагрузки трафика (по умолчанию 10 секунд). Этот режим не требует какой-либо специальной настройки на коммутаторах.
|
bond_mode=balance-tcp
|
Этот режим выполняет балансировку нагрузки, принимая во внимание данные уровней 2-4 (например, MAC-адрес, IP -адрес и порт TCP). На коммутаторе должен быть настроен LACP. Этот режим похож на режим mode=4 Linux Bond. Всегда, когда это возможно, рекомендуется использовать этот режим
|
lacp=[active|passive|off]
|
Управляет поведением протокола управления агрегацией каналов (LACP). На коммутаторе должен быть настроен протокол LACP. Если коммутатор не поддерживает LACP, необходимо использовать
bond_mode=balance-slb или bond_mode=active-backup .
|
other-config:lacp-fallback-ab=true
|
Устанавливает поведение LACP для переключения на
bond_mode=active-backup в качестве запасного варианта
|
other_config:lacp-time=[fast|slow]
|
Определяет, с каким интервалом управляющие пакеты LACPDU отправляются по каналу LACP: каждую секунду (fast) или каждые 30 секунд (slow). По умолчанию slow
|
other_config:bond-detect-mode=[miimon|carrier]
|
Режим определения состояния канала. По умолчанию carrier
|
other_config:bond-miimon-interval=100
|
Устанавливает периодичность MII мониторинга в миллисекундах
|
other_config:bond_updelay=1000
|
Задает время задержки в миллисекундах, перед тем как поднять линк при обнаружении восстановления канала
|
other_config:bond-rebalance-interval=10000
|
Устанавливает периодичность выполнения измерения нагрузки трафика в миллисекундах (по умолчанию 10 секунд).
|
Примечание
#где:mkdir /etc/net/ifaces/bond0
#rm -f /etc/net/ifaces/eno1/{i,r}*
#rm -f /etc/net/ifaces/eno2/{i,r}*
#cat
<<EOF > /etc/net/ifaces/bond0/options BOOTPROTO=static CONFIG_WIRELESS=no CONFIG_IPV4=yes HOST='eno1 eno2' ONBOOT=yes TYPE=bond BONDOPTIONS='miimon=100' BONDMODE=0 EOF
BONDMODE=1
— режим агрегации Round-robin;
HOST='eno1 eno2'
— интерфейсы, которые будут входить в объединение;
miimon=100
— определяет, как часто производится мониторинг MII (Media Independent Interface).
/etc/net/ifaces/bond0/ipv4address
, указать IP-адрес для интерфейса bond0:
# echo
"192.168.200.20/24" > /etc/net/ifaces/bond0/ipv4address
# systemctl restart network
Примечание
bond0
и нажать кнопку :
#где:mkdir /etc/net/ifaces/bond0
#cat
<<EOF > /etc/net/ifaces/bond0/options BOOTPROTO=static CONFIG_WIRELESS=no CONFIG_IPV4=yes HOST='enp0s3 enp0s8' ONBOOT=yes TYPE=bond BONDOPTIONS='xmit_hash_policy=layer2+3 lacp_rate=1 miimon=100' BONDMODE=4 EOF
BONDMODE=4
— режим агрегации LACP (802.3ad);
HOST='enp0s3 enp0s8'
— интерфейсы, которые будут входить в объединение;
xmit_hash_policy=layer2+3
— определяет режим выбора каналов;
lacp_rate=1
— определяет, что управляющие пакеты LACPDU отправляются по каналу LACP каждую секунду;
miimon=100
— определяет, как часто производится мониторинг MII (Media Independent Interface).
/etc/net/ifaces/vmbr0/options
) в опции HOST
указать интерфейс bond0:
BOOTPROTO=static BRIDGE_OPTIONS="stp_state 0" CONFIG_IPV4=yesq HOST='bond0' ONBOOT=yes TYPE=bri
# systemctl restart network
# ovs-vsctl show
6b1add02-fb20-48e6-b925-260bf92fa889
Bridge vmbr0
Port enp0s3
Interface enp0s3
Port vmbr0
Interface vmbr0
type: internal
ovs_version: "2.17.6"
/etc/net/ifaces/enp0s3/options
) к виду:
TYPE=eth CONFIG_WIRELESS=no BOOTPROTO=static CONFIG_IPV4=yes
#где:mkdir /etc/net/ifaces/bond0
#cat
<<EOF > /etc/net/ifaces/bond0/options BOOTPROTO=static BRIDGE=vmbr0 CONFIG_IPV4=yes HOST='enp0s3 enp0s8' OVS_OPTIONS='other_config:bond-miimon-interval=100 bond_mode=balance-slb' TYPE=ovsbond EOF
bond_mode=balance-slb
— режим агрегации;
HOST='enp0s3 enp0s8'
— интерфейсы, которые будут входить в объединение;
BRIDGE=vmbr0
— мост, в который должен добавиться созданный интерфейс;
other_config:bond-miimon-interval=100
— определяет, как часто производится мониторинг MII (Media Independent Interface).
HOST
настроек моста vmbr0 (файл /etc/net/ifaces/vmbr0/options
) указать bond0:
BOOTPROTO=static CONFIG_IPV4=yes HOST=bond0 ONBOOT=yes TYPE=ovsbr
# systemctl restart network
# ovs-vsctl show
6b1add02-fb20-48e6-b925-260bf92fa889
Bridge vmbr0
Port bond0
Interface enp0s3
Interface enp0s8
Port vmbr0
Interface vmbr0
type: internal
ovs_version: "2.17.6"
Примечание
Trunk
выставляется на это новом интерфейсе.
#В опцииmkdir /etc/net/ifaces/enp0s8.100
#cat
<<EOF > /etc/net/ifaces/enp0s8.100/options BOOTPROTO=static CONFIG_WIRELESS=no CONFIG_IPV4=yes HOST=enp0s8 ONBOOT=yes TYPE=vlan VID=100 EOF
HOST
нужно указать тот интерфейс, на котором будет настроен VLAN.
#В опцииmkdir /etc/net/ifaces/vmbr1
#cat
<<EOF > /etc/net/ifaces/vmbr1/options BOOTPROTO=static CONFIG_WIRELESS=no CONFIG_IPV4=yes HOST='enp0s8.100' ONBOOT=yes TYPE=bri EOF
HOST
нужно указать VLAN-интерфейс.
/etc/net/ifaces/vmbr1/ipv4address
, если это необходимо, можно указать IP-адрес для интерфейса моста:
# echo
"192.168.10.3/24" > /etc/net/ifaces/vmbr1/ipv4address
# systemctl restart network
Примечание
# pveam update
# pveam update
update successful
# pveam available
mail proxmox-mailgateway-7.3-standard_7.3-1_amd64.tar.zst
mail proxmox-mailgateway-8.0-standard_8.0-1_amd64.tar.zst
system almalinux-8-default_20210928_amd64.tar.xz
system almalinux-9-default_20221108_amd64.tar.xz
system alpine-3.16-default_20220622_amd64.tar.xz
…
# pveam download local almalinux-9-default_20221108_amd64.tar.xz
# pveam list local
NAME SIZE
local:vztmpl/almalinux-9-default_20221108_amd64.tar.xz 97.87MB
Таблица 41.1. Каталоги локального хранилища
Каталог
|
Тип шаблона
|
---|---|
/var/lib/vz/template/iso/
|
ISO-образы
|
/var/lib/vz/template/cache/
|
Шаблоны контейнеров LXC
|
Таблица 41.2. Каталоги общих хранилищ
Каталог
|
Тип шаблона
|
---|---|
/mnt/pve/<storage_name>/template/iso/
|
ISO-образы
|
/mnt/pve/<storage_name>/template/cache/
|
Шаблоны контейнеров LXC
|
Примечание
Примечание
Примечание
# qm set <vmid> -onboot 1
Примечание
Порядок запуска и отключения
всегда будут запускаться после тех, для которых этот параметр установлен . Кроме того, этот параметр может применяться только для ВМ, работающих на одном хосте, а не в масштабе кластера.
qm
qm
— это инструмент для управления ВМ Qemu/KVM в PVE. Утилиту qm
можно использовать для создания/удаления ВМ, для управления работой ВМ (запуск/остановка/приостановка/возобновление), для установки параметров в соответствующем конфигурационном файле, а также для создания виртуальных дисков.
qm <КОМАНДА> [АРГУМЕНТЫ] [ОПЦИИ]Чтобы просмотреть доступные для управления ВМ команды можно выполнить следующую команду:
# qm help
qm
.
Таблица 42.1. Команды qm
Команда
|
Описание
|
---|---|
qm agent
|
Псевдоним для
qm guest cmd
|
qm block <vmid>
|
Заблокировать ВМ.
|
qm cleanup <vmid> <clean-shutdown> <guest-requested>
|
Очищает ресурсы, такие как сенсорные устройства, vgpu и т.д. Вызывается после выключения, сбоя ВМ и т. д.
|
qm clone <vmid> <newid> [ОПЦИИ]
|
Создать копию ВМ/шаблона.
|
qm cloudinit dump <vmid> <type>
|
Получить автоматически сгенерированную конфигурацию cloud-init.
|
qm cloudinit pending <vmid>
|
Получить конфигурацию cloud-init с текущими и ожидающими значениями.
|
qm cloudinit update <vmid>
|
Восстановить и изменить диск конфигурации cloud-init.
|
qm config <vmid> <ОПЦИИ>
|
Вывести конфигурацию ВМ с применёнными ожидающими изменениями конфигурации. Для вывода текущей конфигурации следует указать параметр
current .
|
qm create <vmid> <ОПЦИИ>
|
Создать или восстановить ВМ.
Некоторые опции:
|
qm delsnapshot <vmid> <snapname> <ОПЦИИ>
|
Удалить снимок ВМ.
|
qm destroy <vmid> [ОПЦИИ]
|
Уничтожить ВМ и все её тома (будут удалены все разрешения, специфичные для ВМ).
|
qm disk import <vmid> <source> <storage> [ОПЦИИ]
|
Импортировать образ внешнего диска в неиспользуемый диск ВМ. Формат образа должен поддерживаться qemu-img.
|
qm disk move <vmid> <disk> <storage> [ОПЦИИ]
|
Переместить том в другое хранилище или в другую ВМ.
|
qm disk rescan [ОПЦИИ]
|
Пересканировать все хранилища и обновить размеры дисков и неиспользуемые образы дисков.
|
qm disk resize <vmid> <disk> <size> [ОПЦИИ]
|
Увеличить размер диска.
|
qm disk unlink <vmid> --idlist <строка> [ОПЦИИ]
|
Отсоединить/удалить образы дисков.
|
qm guest cmd <vmid> <команда>
|
Выполнить команды гостевого агента QEMU.
|
qm guest exec <vmid> [<extra-args>] [ОПЦИИ]
|
Выполнить данную команду через гостевой агент.
|
qm guest exec-status <vmid> <pid>
|
Получить статус данного pid, запущенного гостевым агентом.
|
qm guest passwd <vmid> <username> [ОПЦИИ]
|
Установить пароль для данного пользователя.
|
qm help [extra-args] [ОПЦИИ]
|
Показать справку по указанной команде.
|
qm importdisk
|
Псевдоним для
qm disk import .
|
qm importovf <vmid> <manifest> <storage> [ОПЦИИ]
|
Создать новую ВМ, используя параметры, считанные из манифеста OVF.
|
qm list [ОПЦИИ]
|
Вывести список ВМ узла.
|
qm listsnapshot <vmid>
|
Вывести список снимков ВМ.
|
qm migrate <vmid> <target> [ОПЦИИ]
|
Перенос ВМ. Создаёт новую задачу миграции.
|
qm monitor <vmid>
|
Войти в интерфейс монитора QEMU.
|
qm move-disk
|
Псевдоним для
qm disk move .
|
qm move_disk
|
Псевдоним для
qm disk move .
|
qm nbdstop <vmid>
|
Остановить встроенный сервер NBD.
|
qm pending <vmid>
|
Получить конфигурацию ВМ с текущими и ожидающими значениями.
|
qm reboot <vmid> [ОПЦИИ]
|
Перезагрузить ВМ. Применяет ожидающие изменения.
|
qm remote-migrate <vmid> [<target-vmid>] <target-endpoint> --target-bridge <строка> --target-storage <строка> [ОПЦИИ]
|
Перенос ВМ в удалённый кластер. Создаёт новую задачу миграции. ЭКСПЕРИМЕНТАЛЬНАЯ функция!
|
qm rescan
|
Псевдоним для
qm disk rescan .
|
qm reset <vmid> [ОПЦИИ]
|
Сбросить ВМ.
|
qm resize
|
Псевдоним для
qm disk resize .
|
qm resume <vmid> [ОПЦИИ]
|
Возобновить работу ВМ.
|
qm rollback <vmid> <snapname> [ОПЦИИ]
|
Откат состояния ВМ до указанного снимка.
|
qm sendkey <vmid> <ключ> [ОПЦИИ]
|
Послать нажатия клавиш на ВМ.
|
qm set <vmid> [ОПЦИИ]
|
Установить параметры ВМ.
Некоторые опции:
|