Редакция сентябрь, 2023
Аннотация
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.1-x86_64.iso of=/dev/sdc bs=1M status=progress; sync
# pv /iso/alt-server-v-10.1-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
Предупреждение
eject /dev/sdX
и дождаться ее успешного завершения.
sudo dd if=
alt-server-v-10.1-x86_64.iso
of=/dev/rdiskX bs=10Msync
alt-server-v-10.1-x86_64.iso
— образ диска ISO, а /dev/rdiskX — flash-диск.
diskutil list
Предупреждение
$ du -b alt-server-v-10.1-x86_64.iso | cut -f1
2529380352
$ md5sum alt-server-v-10.1-x86_64.iso
5288a3e87b897a9b73f144c2e2e09ed1 alt-server-v-10.1-x86_64.iso
# head -c 2529380352 /dev/sdd | md5sum
5288a3e87b897a9b73f144c2e2e09ed1
где размер после -c — вывод в п.1, а /dev/sdd — устройство DVD или USB Flash, на которое производилась запись.
Предупреждение
Примечание
vncviewer --listen
):
[root@localhost /]#
Примечание
Примечание
Примечание
Примечание
Примечание
/var
;
/var
. Если результат вас по каким-то причинам не устраивает, прямо сейчас можно его отредактировать.
Примечание
/home
) или с другими операционными системами. С другой стороны, отформатировать можно любой раздел, который вы хотите «очистить» (удалить все данные).
Предупреждение
Примечание
Примечание
Важно
Примечание
Предупреждение
/boot/efi
, в которую нужно смонтировать vfat раздел с загрузочными записями. Если такого раздела нет, то его надо создать вручную. При разбивке жёсткого диска в автоматическом режиме такой раздел создаёт сам установщик;
/boot/efi
);
Примечание
/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.
Важно
Примечание
Примечание
Содержание
Таблица 25.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" ] # Sample configuration for MySQL DB = [ BACKEND = "mysql", SERVER = "localhost", PORT = 0, USER = "oneadmin", PASSWD = "<thepassword>", DB_NAME = "opennebula", CONNECTIONS = 50 ]
#systemctl start opennebula
#systemctl start 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 host01 >> /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 host01
User oneadmin
ForwardAgent yes
Host host02
User oneadmin
ForwardAgent yes
Примечание
Примечание
# apt-get install opennebula-node-kvm
И добавить службу libvirtd в автозапуск и запустить её:
# systemctl enable --now libvirtd
# passwd oneadmin
и настроить доступ по SSH (см. раздел Ключи для доступа по SSH).
Важно
Примечание
# apt-get install opennebula-node-lxd
# systemctl enable --now lxd.socket
/usr/share/doc/opennebula-node-lxd-5.10.5/README.opennebula-lxd
;
# systemctl enable --now libvirtd.socket
# passwd oneadmin
и настроить доступ по SSH (см. раздел Ключи для доступа по SSH).
Примечание
onehost
— это инструмент управления узлами в OpenNebula. Описание всех доступных опций утилиты onehost
можно получить, выполнив команду:
$ man onehost
$ onehost create host01 --im kvm --vm kvm
ID: 1
$ onehost create host03 --im lxd --vm lxd
ID: 3
$ onehost list
ID NAME CLUSTER TVM ALLOCATED_CPU ALLOCATED_MEM STAT
1 host01 default 0 0 / 400 (0%) 0K / 7.6G (0%) on
Примечание
/var/log/one/oned.log
.
$ onehost delete 1
или имени:
$ onehost delete host01
$onehost disable host01
// деактивировать узел $onehost enable host01
// активировать узел $onehost offline host01
// полностью выключить узел
$ onehost show host01
onedatastore
— инструмент управления хранилищами в OpenNebula. Описание всех доступных опций утилиты onedatastore
можно получить, выполнив команду:
$ man onedatastore
$ onedatastore list
ID NAME SIZE AVA CLUSTERS IMAGES TYPE DS TM STAT
2 files 104.8G 32% 0 1 fil fs ssh on
1 default 104.8G 32% 0 8 img fs ssh on
0 system - - 0 0 sys - ssh on
Информация о хранилище:
$ onedatastore show default
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
Примечание
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 22
VM ID: 9
Примечание
spice://192.168.0.190:5909где 192.168.0.190 — IP-адрес хоста с ВМ, а 9 — идентификатор ВМ (номер порта 5900 + 9).
# 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 9
Примечание
$oneimage chtype 33 OS
$oneimage nonpersistent 33
oneuser
— инструмент командной строки для управления пользователями в OpenNebula.
$ oneuser list
ID NAME GROUP AUTH VMS MEMORY CPU
1 serveradmin oneadmin server_c 0 / - 0M / 0.0 / -
0 oneadmin oneadmin core - - -
$ oneuser create <user_name> <password>
$ oneuser chgrp <user_name> oneadmin
Что бы удалить пользователя из группы, необходимо переместить его обратно в группу users.
$ oneuser delete <user_name>
Примечание
onegroup
— инструмент командной строки для управления группами в OpenNebula.
$ onegroup list
ID NAME USERS VMS MEMORY CPU
1 users 0 0 / - 0M / - 0.0 / -
0 oneadmin 2 - - -
$ 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>
$ onetemplate show 3
TEMPLATE 3 INFORMATION
ID : 3
NAME : SL
USER : oneadmin
GROUP : oneadmin
LOCK : None
REGISTER TIME : 08/25 15:02:02
PERMISSIONS
OWNER : um-
GROUP : ---
OTHER : ---
…
В данном примере показаны права на шаблон с ID=3.
chmod
. Права записываются в числовом формате. Пример изменения прав:
$onetemplate chmod 3 607
$onetemplate show 3
… 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: dc.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
Таблица 36.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: Thu Jul 8 14:21:44 2021
Quorum provider: corosync_votequorum
Nodes: 1
Node ID: 0x00000001
Ring ID: 1.d6
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/
.
Таблица 37.1. Доступные типы хранилищ
Хранилище
|
PVE тип
|
Уровень
|
Общее (shared)
|
Снимки (snapshots)
|
---|---|---|---|---|
ZFS (локальный)
|
zfspool
|
файл
|
нет
|
да
|
Каталог
|
dir
|
файл
|
нет
|
нет (возможны в формате qcow2)
|
BTRFS
|
btrfs
|
файл
|
нет
|
да
|
NFS
|
nfs
|
файл
|
да
|
нет (возможны в формате qcow2)
|
CIFS
|
cifs
|
файл
|
да
|
нет (возможны в формате qcow2)
|
GlusterFS
|
glusterfs
|
файл
|
да
|
нет (возможны в формате qcow2)
|
CephFS
|
cephfs
|
файл
|
да
|
да
|
LVM
|
lvm
|
блок
|
нет
|
нет
|
LVM-thin
|
lvmthin
|
блок
|
нет
|
да
|
iSCSI/kernel
|
iscsi
|
блок
|
да
|
нет
|
iSCSI/libiscsi
|
iscsidirect
|
блок
|
да
|
нет
|
Ceph/RBD
|
rbd
|
блок
|
да
|
да
|
ZFS over iSCSI
|
zfs
|
блок
|
да
|
да
|
Proxmox Backup
|
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.
Таблица 37.2. Параметры хранилищ
Свойство
|
Описание
|
---|---|
nodes
|
Список узлов кластера, где хранилище можно использовать/доступно. Можно использовать это свойство, чтобы ограничить доступ к хранилищу.
|
content
|
Хранилище может поддерживать несколько типов содержимого. Это свойство указывает, для чего используется это хранилище.
Доступные опции:
|
shared
|
Пометить хранилище как общее
|
disable
|
Отключить хранилище
|
maxfiles
|
Устарело, следует использовать свойство prune-backups. Максимальное количество файлов резервных копий на ВМ
|
prune-backups
|
Варианты хранения резервных копий
|
format
|
Формат образа по умолчанию (raw|qcow2|vmdk)
|
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>]
Таблица 37.3. Структура каталогов
Тип данных
|
Подкаталог
|
---|---|
Образы дисков ВМ
|
images/<VMID>/
|
ISO образы
|
template/iso/
|
Шаблоны контейнеров
|
template/cache/
|
Резервные копии
|
dump/
|
Snippets
|
snippets/
|
/mnt/iso
:
path
для указания каталога. Это должен быть абсолютный путь к файловой системе.
/etc/pve/storage.cfg
):
dir: backup path /mnt/backup content backup prune-backups keep-last=7 shared 0
/mnt/backup/dump/...
.
VM-<VMID>-<NAME>.<FORMAT>где:
# ls /var/lib/vz/images/101
vm-101-disk-0.qcow2 vm-101-disk-1.qcow2
base-<VMID>-<NAME>.<FORMAT>
shared
, который всегда установлен. Кроме того, для настройки NFS используются следующие свойства:
pvesm scan nfs <server>
);
/mnt/pve/<STORAGE_ID>/
);
/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
Примечание
# 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 content rootdir,images nodes pve02 prune-backups keep-all=1
/mnt/data
:
pvesm
:
# pvesm add btrfs btrfs-storage --path /mnt/data/btrfs-storage --is_mountpoint --content images,rootdir
Примечание
shared
, который всегда установлен. Кроме того, для настройки CIFS используются следующие свойства:
pvesm scan cifs <server>
);
/etc/pve/priv/<STORAGE_ID>.cred
);
/mnt/pve/<STORAGE_ID>/
).
/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
/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
.
/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
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
#lvcreate -n lv01 -L 10G vg
Logical volume "lv01" created. #lvcreate -n lv02 -L 5G vg
Logical volume "lv02" 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
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv01 vg -wi-a----- 10,00g
lv02 vg -wi-a----- 5,00g
# pvesm lvmscan
vg
# pvesm add lvm myspace --vgname vg --nodes pve03
/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
/etc/pve/storage.cfg
):
iscsi: test1-iSCSI portal 192.168.0.105 target iqn.2021-7.local.omv:test content images
Примечание
# systemctl enable --now iscsid
# pvesm scan iscsi <HOST[:PORT]>
/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.
/mnt/pve/<STORAGE_ID>/
);
/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
/etc/pve/priv/storage/<STORAGE-ID>.pw
, доступном только суперпользователю;
proxmox-backup-manager cert info
;
/etc/pve/priv/storage/<STORAGE-ID>.enc
, доступном только суперпользователю;
/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
/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
Таблица 38.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
).
Таблица 38.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
.
Примечание
Таблица 38.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=yes 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
Таблица 39.1. Каталоги локального хранилища
Каталог
|
Тип шаблона
|
---|---|
/var/lib/vz/template/iso/
|
ISO-образы
|
/var/lib/vz/template/cache/
|
Шаблоны контейнеров LXC
|
Таблица 39.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
.
Таблица 40.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> [ОПЦИИ]
|
Установить параметры ВМ.
Некоторые опции:
|
qm showcmd <vmid> [ОПЦИИ]
|
Показать командную строку, которая используется для запуска ВМ (информация для отладки).
|
qm shutdown <vmid> [ОПЦИИ]
|
Выключение ВМ (эмуляция нажатия кнопки питания). Гостевой ОС будет отправлено событие ACPI.
|
qm snapshot <vmid> <snapname> [ОПЦИИ]
|
Сделать снимок ВМ.
|
qm start <vmid> [ОПЦИИ]
|
Запустить ВМ.
|
qm status <vmid> [ОПЦИИ]
|
Показать статус ВМ.
|
qm stop <vmid> [ОПЦИИ]
|
Останов ВМ (эмуляция выдергивания вилки). Процесс qemu немедленно завершается.
|
qm suspend <vmid> [ОПЦИИ]
|
Приостановить ВМ.
|
qm template <vmid> [ОПЦИИ]
|
Создать шаблон.
|
qm terminal <vmid> [ОПЦИИ]
|
Открыть терминал с помощью последовательного устройства (на ВМ должно быть настроено последовательное устройство, например, Serial0: Socket).
|
qm unlink
|
Псевдоним для
qm disk unlink .
|
qm unlock <vmid>
|
Разблокировать ВМ.
|
qm vncproxy <vmid>
|
Проксировать VNC-трафик ВМ на стандартный ввод/вывод.
|
qm wait <vmid> [ОПЦИИ]
|
Подождать, пока ВМ не будет остановлена.
|
qm
:
# qm create 300 -ide0 local-lvm:21 -net0 e1000 -cdrom local:iso/alt-server-10.0-x86_64.iso
# qm start 109
# qm shutdown 109 && qm wait 109
# qm sendkey 109 ctrl-shift
#qm monitor 109
qm>help
args: -vnc 0.0.0.0:55Или, чтобы включить защиту паролем:
args: -vnc 0.0.0.0:55,password=on
set_password vnc newvnc -d vnc2
В данном примере, при подключении будет запрашиваться пароль: newvnc. Максимальная длина пароля VNC: 8 символов. После перезапуска ВМ указанную выше команду необходимо повторить, чтобы снова установить пароль.
Примечание
Примечание
qemu-img
— утилита для манипулирования с образами дисков машин QEMU. qemu-img
позволяет выполнять операции по созданию образов различных форматов, конвертировать файлы-образы между этими форматами, получать информацию об образах и объединять снимки ВМ для тех форматов, которые это поддерживают. (подробнее см. раздел «Утилита qemu-img»).
qemu-img
:
# qemu-img convert -f vmdk test.vmdk -O qcow2 test.qcow2
# qemu-img create -f raw test.raw 40G
# qemu-img resize -f raw test.raw 80G
# qemu-img info test.raw
# qm resize <vm_id> <virtual_disk> [+]<size>
Примечание
# qm resize 100 scsi1 80G
# qm move-disk <vm_id> <virtual_disk> <storage>
# qm move-disk <vm_id> <virtual_disk> --target-vmid <vm_id>--target-disk <virtual_disk>
# qm move-disk 107 scsi0 --target-vmid 10007--target-disk scsi1
Примечание
Примечание
# qm set VMID -spice_enhancements foldersharing=1,videostreaming=all
Примечание
http://localhost:9843
.
Примечание
Примечание
dav://localhost:9843/
).
lsusb
).
lsusb -t
).
Примечание
info usb
или info usbhost
:
Предупреждение
# qm set <vm_id> -efdisk0 <storage>:1,format=<format>,efitype=4m,pre-enrolled-keys=1
где:
efitype
— указывает, какую версию микропрограммы OVMF следует использовать. Для новых ВМ необходимо указывать 4м (это значение по умолчанию в графическом интерфейсе);
pre-enroll-keys
— указывает, должен ли efdisk поставляться с предварительно загруженными ключами безопасной загрузки для конкретного дистрибутива и Microsoft Standard Secure Boot. Включает безопасную загрузку по умолчанию.
# qm set <vm_id> -tpmstate0 <storage>:1,version=<version>
где:
Примечание
intel_iommu=on
(для процессоров AMD он должен быть включен автоматически).
/etc/modules
):
vfio vfio_iommu_type1 vfio_pci vfio_virqfd
# dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
/etc/modprobe.d/vfio.conf
строку:
options vfio-pci ids=1234:5678,4321:8765где 1234:5678 и 4321:8765 — идентификаторы поставщика и устройства.
# lspci -nn
/etc/modprobe.d/blacklist.conf
:
blacklist DRIVERNAME
# qm set VMID -hostpci0 00:02.0
# qm set VMID -hostpci0 02:00,device-id=0x10f6,sub-vendor-id=0x0000
/etc/pve/qemu-server/<VMID>.conf
). Как и другие файлы, находящиеся в /etc/pve/
, они автоматически реплицируются на все другие узлы кластера.
Примечание
boot: order=scsi0;scsi7;net0 cores: 1 memory: 2048 name: newVM net0: virtio=3E:E9:24:FF:85:D9,bridge=vmbr0,firewall=1 numa: 0 ostype: l26 sata2: local-iso:iso/slinux-10.1-x86_64.iso,media=cdrom,size=4586146K scsi0: local:100/vm-100-disk-0.qcow2,size=42G scsihw: virtio-scsi-pci smbios1: uuid=ee9db068-5427-4934-bf7a-5895c377b5af sockets: 1 usb0: host=1-1.2 vmgenid: dfec8e3b-d391-40cb-8983-b4938461b79a
OPTION: value
qm
для генерации и изменения этих файлов, либо выполнять такие действия в веб-интерфейсе.
bootdisk: scsi0 … parent: snapshot … vmgenid: dfec8e3b-d391-40cb-8983-b4938461b79a [snapshot] boot: order=scsi0;sata2;net0 cores: 1 memory: 2048 meta: creation-qemu=7.1.0,ctime=1671708251 name: NewVM net0: virtio=3E:E9:24:FF:85:D9,bridge=vmbr0,firewall=1 numa: 0 ostype: l26 runningcpu: kvm64,enforce,+kvm_pv_eoi,+kvm_pv_unhalt,+lahf_lm,+sep runningmachine: pc-i440fx-7.1+pve0 sata2: local-iso:iso/slinux-10.1-x86_64.iso,media=cdrom,size=4586146K scsi0: local:100/vm-100-disk-0.qcow2,size=42G scsihw: virtio-scsi-pci smbios1: uuid=ee9db068-5427-4934-bf7a-5895c377b5af snaptime: 1671724448 sockets: 1 usb0: host=1-1.2 vmgenid: dfec8e3b-d391-40cb-8983-b4938461b79a vmstate: local:100/vm-100-state-first.raw
parent
при этом используется для хранения родительских/дочерних отношений между снимками, а snaptime
— это отметка времени создания снимка (эпоха Unix).
pct
для создания контейнера:
#!/bin/bash hostname="pve02" vmid="104" template_path="/var/lib/vz/template/cache" storage="local" description="alt-p10" template="alt-p10-rootfs-systemd-x86_64.tar.xz" ip="192.168.0.93/24" nameserver="8.8.8.8" ram="1024" rootpw="password" rootfs="4" gateway="192.168.0.1" bridge="vmbr0" if="eth0" #### Execute pct create using variable substitution #### pct create $vmid \ $template_path/$template \ -description $description \ -rootfs $rootfs \ -hostname $hostname \ -memory $ram \ -nameserver $nameserver \ -storage $storage \ -password $rootpw \ -net0 name=$if,ip=$ip,gw=$gateway,bridge=$bridge
tty
— открывать соединение с одним из доступных tty-устройств (по умолчанию);
shell
— вызывать оболочку внутри контейнера (без входа в систему);
/dev/console
— подключаться к /dev/console.
Примечание
pct
— утилита управления контейнерами LXC в PVE. Чтобы просмотреть доступные для контейнеров команды PVE, можно выполнить следующую команду:
# pct help
# pct set <ct_id> [options]
# pct set 101 -net0 name=eth0,bridge=vmbr0,ip=192.168.0.17/24,gw=192.168.0.1
# pct set <ct_id> -memory <int_value>
# pct set <ct_id> -rootfs <volume>,size=<int_value for GB>
Например, изменить размер диска контейнера #101 до 10 ГБ:
# pct set 101 -rootfs local:101/vm-101-disk-0.raw,size=10G
# pct config <ct_id>
# pct unlock <ct_id>
# pct list
VMID Status Lock Name
101 running newLXC
102 stopped pve01
103 stopped LXC2
#pct start <ct_id>
#pct stop <ct_id>
/etc/pve/lxc
, а файлы конфигураций ВМ — в /etc/pve/qemu-server/
.
pct
. Эти параметры могут быть настроены только путём внесения изменений в файл конфигурации с последующим перезапуском контейнера.
/etc/pve/lxc/101.conf
:
arch: amd64 cmode: shell console: 0 cores: 1 features: nesting=1 hostname: newLXC memory: 512 net0: name=eth0,bridge=vmbr0,firewall=1,gw=192.168.0.1,hwaddr=C6:B0:3E:85:03:C9,ip=192.168.0.30/24,type=veth ostype: altlinux rootfs: local:101/vm-101-disk-0.raw,size=8G swap: 512 tty: 3 unprivileged: 1
# pct start 102
# pct stop 102
# pct enter <ct_id>
[root@pve01 ~]# pct enter 105
[root@newLXC ~]#
exit
.
Предупреждение
Insecure $ENV{ENV} while running with...необходимо закомментировать строку:
ENV=$HOME/.bashrcв файле
/root/.bashrc
.
# pct exec <ct_id> -- <command>
#pct exec 105 mkdir /home/demouser
#pct exec 105 ls /home
demouser
pct
, добавив --
после идентификатора контейнера:
# pct exec 105 -- df -H /
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
/dev/loop0 8,4G 516M 7,4G 7% /
Примечание
rsync
.
Примечание
# qm migrate <vmid> <target> [OPTIONS]
--online
.
# pct migrate <ctid> <target> [OPTIONS]
--restart
. Например:
# pct migrate 101 pve02 --restart
Примечание
$ oneimage show 14
IMAGE 14 INFORMATION
ID : 14
NAME : ALT Linux p9
USER : oneadmin
GROUP : oneadmin
LOCK : None
DATASTORE : default
TYPE : OS
REGISTER TIME : 04/30 11:00:42
PERSISTENT : Yes
SOURCE : /var/lib/one//datastores/1/f811a893808a9d8f5bf1c029b3c7e905
FSTYPE : save_as
SIZE : 12G
STATE : used
RUNNING_VMS : 1
PERMISSIONS
OWNER : um-
GROUP : ---
OTHER : ---
IMAGE TEMPLATE
DEV_PREFIX="vd"
DRIVER="qcow2"
SAVED_DISK_ID="0"
SAVED_IMAGE_ID="7"
SAVED_VM_ID="46"
SAVE_AS_HOT="YES"
где /var/lib/one//datastores/1/f811a893808a9d8f5bf1c029b3c7e905
— адрес образа жёсткого диска ВМ.
Примечание
$ onevm disk-saveas
<vmid> <diskid> <img_name> [--type type --snapshot snapshot]
где --type <type>
— тип нового образа (по умолчанию raw); --snapshot <snapshot_id>
— снимок диска, который будет использован в качестве источника нового образа (по умолчанию текущее состояние диска).
$ onevm disk-saveas 125 0 test.qcow2
Image ID: 44
Информация об образе диска ВМ:
$ oneimage show 44
MAGE 44 INFORMATION
ID : 44
NAME : test.qcow2
USER : oneadmin
GROUP : oneadmin
LOCK : None
DATASTORE : default
TYPE : OS
REGISTER TIME : 07/12 21:34:42
PERSISTENT : No
SOURCE : /var/lib/one//datastores/1/9d6336a88d6ab62ea1dce65d81e55881
FSTYPE : save_as
SIZE : 12G
STATE : rdy
RUNNING_VMS : 0
PERMISSIONS
OWNER : um-
GROUP : ---
OTHER : ---
IMAGE TEMPLATE
DEV_PREFIX="vd"
DRIVER="qcow2"
SAVED_DISK_ID="0"
SAVED_IMAGE_ID="14"
SAVED_VM_ID="125"
SAVE_AS_HOT="YES"
VIRTUAL MACHINES
Информация о диске:
$ qemu-img info /var/lib/one//datastores/1/9d6336a88d6ab62ea1dce65d81e55881
image: /var/lib/one//datastores/1/9d6336a88d6ab62ea1dce65d81e55881
file format: qcow2
virtual size: 12 GiB (12884901888 bytes)
disk size: 3.52 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
# qm create 120 --bootdisk scsi0 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci
# qm importdisk
<vmid> <source> <storage> [OPTIONS]
Импорт диска f811a893808a9d8f5bf1c029b3c7e905 в хранилище local, для ВМ с ID 120 (подразумевается, что образ импортируемого диска находится в каталоге, из которого происходит выполнение команды):
# qm importdisk 120 f811a893808a9d8f5bf1c029b3c7e905 local --format qcow2
importing disk 'f811a893808a9d8f5bf1c029b3c7e905' to VM 120 ...
…
Successfully imported disk as 'unused0:local:120/vm-120-disk-0.qcow2'
# qm set 120 --scsi0 local:120/vm-120-disk-0.qcow2
update VM 120: -scsi0 local:120/vm-120-disk-0.qcow2
"C:\Program Files\VMware\VMware Server\vmware-vdiskmanager" -r win7.vmdk -t 0 win7-pve.vmdk
где win7.vmdk
— файл с образом диска.
win7-pve.vmdk
в каталог с образами ВМ /var/lib/vz/images/VMID
, где VMID — VMID, созданной виртуальной машины (можно воспользоваться WinSCP);
win7-pve.vmdk
в qemu формат:
# qemu-img convert -f vmdk win7-pve.vmdk -O qcow2 win7-pve.qcow2
/etc/pve/nodes/pve02/qemu-server/VMID.conf
) строку:
unused0: local:100/win7-pve.qcow2где 100 — VMID, а local — хранилище в PVE.
# qemu-img info win7-pve.vmdk
image: win7-pve.vmdk
file format: vmdk
virtual size: 127G (136365211648 bytes)
disk size: 20.7 GiB
cluster_size: 65536
Format specific information:
cid: 3274246794
parent cid: 4294967295
create type: streamOptimized
extents:
[0]:
compressed: true
virtual size: 136365211648
filename: win7-pve.vmdk
cluster size: 65536
format:
В данном случае необходимо создать диск в режиме IDE размером не меньше 127GB.
win7-pve.vmdk
в каталог с образами ВМ /var/lib/vz/images/VMID
, где VMID — VMID, созданной виртуальной машины (можно воспользоваться WinSCP);
# lvscan
ACTIVE '/dev/sharedsv/vm-101-disk-1' [130,00 GiB] inherit
# qemu-img convert -f vmdk win7-pve.vmdk -O raw /dev/sharedsv/vm-101-disk-1
# qemu-img info win7-pve.vmdk
win7-pve.vmdk
в каталог с образами ВМ /var/lib/vz/images/VMID
, где VMID — VMID, созданной ВМ;
# rbd map rbd01/vm-100-disk-1
/dev/rbd0
Примечание
# qemu-img convert -f vmdk win7-pve.vmdk -O raw /dev/rbd0
# qm importovf 999 WinDev2212Eval.ovf local-lvm
Примечание
Примечание
Полное клонирование
и Связанная копия
;
Примечание
vzdump
.
lzop
). Особенностью этого алгоритма является скоростная распаковка. Следовательно, любая резервная копия, созданная с помощью этого алгоритма, может при необходимости быть развернута за минимальное время.
Zip
, использующей мощный алгоритм Deflate. Упор делается на максимальное сжатие данных, что позволяет сократить место на диске, занимаемое резервными копиями. Главным отличием от LZO является то, что процедуры компрессии/декомпрессии занимают достаточно большое количество времени.
--tmpdir
). Затем контейнер приостанавливается и rsync
копирует измененные файлы. После этого контейнер возобновляет свою работу. Это приводит к минимальному времени простоя, но требует дополнительное пространство для хранения копии контейнера. Когда контейнер находится в локальной файловой системе и хранилищем резервной копии является сервер NFS, необходимо установить --tmpdir
также и на локальную файловую систему, так как это приведет к повышению производительности. Использование локального tmpdir также необходимо, если требуется сделать резервную копию локального контейнера с использованием списков контроля доступа (ACL) в режиме ожидания, если хранилище резервных копий — сервер NFS;
prune-backups
команды vzdump
):
keep-all=<1|0>
) — хранить все резервные копии (если отмечен этот пункт, другие параметры не могут быть установлены);
keep-last=<N>
) — хранить <N> последних резервных копий;
keep-hourly=<N>
) — хранить резервные копии за последние <N> часов (если за один час создается более одной резервной копии, сохраняется только последняя);
keep-daily=<N>
) — хранить резервные копии за последние <N> дней (если за один день создается более одной резервной копии, сохраняется только самая последняя);
keep-weekly=<N>
) — хранить резервные копии за последние <N> недель (если за одну неделю создается более одной резервной копии, сохраняется только самая последняя);
keep-monthly=<N>
) — хранить резервные копии за последние <N> месяцев (если за один месяц создается более одной резервной копии, сохраняется только самая последняя);
keep-yearly=<N>
) — хранить резервные копии за последние <N> лет (если за один год создается более одной резервной копии, сохраняется только самая последняя);
max-protected-backups
) — количество защищённых резервных копий на гостевую систему, которое разрешено в хранилище. Для указания неограниченного количества используется значение -1. Значение по умолчанию: неограниченно для пользователей с привилегией Datastore.Allocate и 5 для других пользователей.
# vzdump 777 --prune-backups keep-last=3,keep-daily=13,keep-yearly=9
/etc/cron.d/vzdump
.
man 7 systemd.time
).
[WEEKDAY] [[YEARS-]MONTHS-DAYS] [HOURS:MINUTES[:SECONDS]]
Таблица 44.1. Специальные значения
Расписание
|
Значение
|
Синтаксис
|
---|---|---|
minutely
|
Каждую минуту
|
*-*-* *:*:00
|
hourly
|
Каждый час
|
*-*-* *:00:00
|
daily
|
Раз в день
|
*-*-* 00:00:00
|
weekly
|
Раз в неделю
|
mon *-*-* 00:00:00
|
monthly
|
Раз в месяц
|
*-*-01 00:00:00
|
yearly или annually
|
Раз в год
|
*-01-01 00:00:00
|
quarterly
|
Раз в квартал
|
*-01,04,07,10-01 00:00:00
|
semiannually или semi-annually
|
Раз в полгода
|
*-01,07-01 00:00:00
|
Таблица 44.2. Примеры
Расписание
|
Эквивалент
|
Значение
|
---|---|---|
mon,tue,wed,thu,fri
|
mon..fri
|
Каждый будний день в 00:00
|
sat,sun
|
sat..sun
|
В субботу и воскресенье в 00:00
|
mon,wed,fri
|
-
|
В понедельник, среду и пятницу в 00:00
|
12:05
|
12:05
|
Каждый день в 12:05
|
*/5
|
0/5
|
Каждые пять минут
|
mon..wed 30/10
|
mon,tue,wed 30/10
|
В понедельник, среду и пятницу в 30, 40 и 50 минут каждого часа
|
mon..fri 8..17,22:0/15
|
-
|
Каждые 15 минут с 8 часов до 18 и с 22 до 23 в будний день
|
fri 12..13:5/20
|
fri 12,13:5/20
|
В пятницу в 12:05, 12:25, 12:45, 13:05, 13:25 и 13:45
|
12,14,16,18,20,22:5
|
12/2:5
|
Каждые два часа каждый день с 12:05 до 22:05
|
*
|
*/1
|
Ежеминутно (минимальный интервал)
|
*-05
|
-
|
Пятого числа каждого месяца
|
Sat *-1..7 15:00
|
-
|
Первую субботу каждого месяца в 15:00
|
2023-10-22
|
-
|
22 октября 2023 года в 00:00
|
/etc/pve/jobs.cfg
):
Предупреждение
dump
. Имя файла резервной копии будет иметь вид:
pct restore
— утилита восстановления контейнера;
qmrestore
— утилита восстановления ВМ.
per-restore limit
— максимальный объем полосы пропускания для чтения из архива резервной копии;
per-storage write limit
— максимальный объем полосы пропускания, используемый для записи в конкретное хранилище.
Примечание
0
для параметра bwlimit
. Это может быть полезно, если требуется как можно быстрее восстановить ВМ.
# pvesm set STORAGEID --bwlimit restore=KIBs
/etc/vzdump.conf
. Каждая строка файла имеет следующий формат (пустые строки в файле игнорируются, строки, начинающиеся с символа #, рассматриваются как комментарии и также игнорируются):
OPTION: value
Таблица 44.3. Параметры файла конфигурации
Опция
|
Описание
|
---|---|
bwlimit: integer (0 — N) (default=0)
|
Ограничение пропускной способности ввода/вывода (Кб/с)
|
compress: (0|1|gzip|lzo|zstd) (default=0)
|
Сжатие файла резервной копии
|
dumpdir: string
|
Записать результирующие файлы в указанный каталог
|
exclude-path: string
|
Исключить определенные файлы/каталоги
|
ionice: integer (0 — 8) (default=7)
|
Установить CFQ приоритет ionice
|
lockwait: integer (0 — N) (default=180)
|
Максимальное время ожидания для глобальной блокировки (в минутах)
|
mailnotification: (always|failure) (default=always)
|
Указание, когда следует отправлять отчет по электронной почте
|
mailto: string
|
Разделенный запятыми список адресов электронной почты, на которые будут приходить уведомления
|
maxfiles: integer (1 — N) (default=1)
|
Максимальное количество файлов резервных копий ВМ
|
mode: (snapshot|stop|suspend) (default=snapshot)
|
Режим резервного копирования
|
pigz: integer (default=0)
|
Использует pigz вместо gzip при N>0. N=1 использует половину ядер (uses half of cores), при N>1 N — количество потоков
|
prune-backups
|
Использовать эти параметры хранения вместо параметров из конфигурации хранилища
|
remove: boolean (default=1)
|
Удалить старые резервные копии, если их больше, чем установлено опцией maxfiles
|
script: string
|
Использовать указанный скрипт
|
stdexcludes: boolean (default=1)
|
Исключить временные файлы и файлы журналов
|
stopwait: integer (0 — N) (default=10)
|
Максимальное время ожидания до остановки ВМ (минуты)
|
storage: string
|
Хранить полученный файл в этом хранилище
|
tmpdir: string
|
Хранить временные файлы в указанном каталоге
|
zstd: integer (default = 1)
|
Количество потоков zstd. N = 0 использовать половину доступных ядер, N > 0 использовать N как количество потоков
|
vzdump.conf
:
tmpdir: /mnt/fast_local_disk storage: my_backup_storage mode: snapshot bwlimit: 10000
Примечание
vzdump
по умолчанию пропускает следующие файлы (отключается с помощью опции --stdexcludes 0
):
/tmp/?* /var/tmp/?* /var/run/?*pid
# vzdump 777 --exclude-path /tmp/ --exclude-path '/var/foo*'
# vzdump 777 --exclude-path bar
исключает любые файлы и каталони с именами /bar, /var/bar, /var/foo/bar и т.д.
/etc/vzdump/
) и будут корректно восстановлены.
/var/lib/vz/dump/
):
# vzdump 103
rsync
и режим приостановки для создания снимка (минимальное время простоя):
# vzdump 103 --mode suspend
# vzdump --all --mode suspend --mailto root --mailto admin
/mnt/backup
:
# vzdump 103 --dumpdir /mnt/backup --mode snapshot
# vzdump 101 102 103 --mailto root
# vzdump --mode suspend --exclude 101,102
# pct restore 600 /mnt/backup/vzdump-lxc-104.tar
# qmrestore /mnt/backup/vzdump-qemu-105.vma 601
# vzdump 101 --stdout | pct restore --rootfs 4 300 -
boot: order=scsi0;sata2;net0 cores: 1 memory: 2048 meta: creation-qemu=7.1.0,ctime=1671708251 name: NewVM net0: virtio=3E:E9:24:FF:85:D9,bridge=vmbr0,firewall=1 numa: 0 ostype: l26 parent: first sata2: local-iso:iso/slinux-10.1-x86_64.iso,media=cdrom,size=4586146K scsi0: local:100/vm-100-disk-0.qcow2,size=42G scsihw: virtio-scsi-pci smbios1: uuid=ee9db068-5427-4934-bf7a-5895c377b5af sockets: 1 vmgenid: dfec8e3b-d391-40cb-8983-b4938461b79a [first] #clear system boot: order=scsi0;sata2;net0 cores: 1 memory: 2048 meta: creation-qemu=7.1.0,ctime=1671708251 name: NewVM net0: virtio=3E:E9:24:FF:85:D9,bridge=vmbr0,firewall=1 numa: 0 ostype: l26 runningcpu: kvm64,enforce,+kvm_pv_eoi,+kvm_pv_unhalt,+lahf_lm,+sep runningmachine: pc-i440fx-7.1+pve0 sata2: local-iso:iso/slinux-10.1-x86_64.iso,media=cdrom,size=4586146K scsi0: local:100/vm-100-disk-0.qcow2,size=42G scsihw: virtio-scsi-pci smbios1: uuid=ee9db068-5427-4934-bf7a-5895c377b5af snaptime: 1671724448 sockets: 1 vmgenid: dfec8e3b-d391-40cb-8983-b4938461b79a vmstate: local:100/vm-100-state-first.raw
parent
используется для хранения родительских/дочерних отношений между снимками, snaptime
— это отметка времени создания снимка (эпоха Unix).
# smartctl -a /dev/sdX
где /dev/sdX
— это путь к одному из локальных дисков.
# smartctl -s on /dev/sdX
/dev
каждые 30 минут на наличие ошибок и предупреждений, а также отправляет сообщение электронной почты пользователю root в случае обнаружения проблемы (для пользователя root в PVE должен быть введен действительный адрес электронной почты).
Примечание
/etc/modprobe.d/nohpwdt.conf
со следующим содержимым:
# Do not load the 'hpwdt' module on boot. blacklist hpwdtДля применения изменений следует перезагрузить систему.
# ha-manager status
quorum OK
master pve01 (active, Wed Aug 23 13:26:31 2023)
lrm pve01 (active, Wed Aug 23 13:26:31 2023)
lrm pve02 (active, Wed Aug 23 13:26:33 2023)
lrm pve03 (active, Wed Aug 23 13:26:26 2023)
service ct:105 (pve01, started)
service vm:100 (pve01, stopped)
restart
и relocate
. Если все попытки окажутся неудачными, HA PVE поместит ресурсы в ошибочное состояние и не будет выполнять для них никаких задач.
/etc/pve/user.cfg
:
# cat /etc/pve/user.cfg
user:root@pam:1:0::::::
user:test@pve:1:0::::::
user:testuser@pve:1:0::::Just a test::
user:user@pam:1:0::::::
group:admin:user@pam::
group:testgroup:test@pve::
/etc/pve/domains.cfg
.
adduser
) на всех узлах, на которых пользователю разрешено войти в систему. Если пользователи PAM существуют в хост-системе PVE, соответствующие записи могут быть добавлены в PVE, чтобы эти пользователи могли входить в систему, используя свое системное имя и пароль.
/etc/pve/priv/shadow.cfg
). Пароль шифруется с использованием метода хеширования SHA-256.
# pveum useradd testuser@pve -comment "Just a test"
# pveum passwd testuser@pve
# pveum usermod testuser@pve -enable 0
# pveum groupadd testgroup
# pveum roleadd PVE_Power-only -privs "VM.PowerMgmt VM.Console"
Примечание
# pveum realm sync example.test
Для автоматической синхронизации пользователей и групп можно добавить команду синхронизации в планировщик задач.
Примечание
# pveum realm sync test.alt
Для автоматической синхронизации пользователей и групп можно добавить команду синхронизации в планировщик задач.
oathkeygen
), который печатает случайный ключ в нотации Base32. Этот ключ можно использовать непосредственно с различными инструментами OTP, такими как инструмент командной строки oathtool
, или приложении FreeOTP и в других подобных приложениях.
Примечание
Примечание
Таблица 47.1. Привилегии используемые в PVE
Привилегия
|
Описание
|
---|---|
Привилегии узла/системы
|
|
Permissions.Modify
|
Изменение прав доступа
|
Sys.PowerMgmt
|
Управление питанием узла (запуск, остановка, сброс, выключение)
|
Sys.Console
|
Консольный доступ к узлу
|
Sys.Syslog
|
Просмотр Syslog
|
Sys.Audit
|
Просмотр состояния/конфигурации узла, конфигурации кластера Corosync и конфигурации HA
|
Sys.Modify
|
Создание/удаление/изменение параметров сети узла
|
Group.Allocate
|
Создание/удаление/изменение групп
|
Pool.Allocate
|
Создание/удаление/изменение пулов
|
Realm.Allocate
|
Создание/удаление/изменение областей аутентификации
|
Realm.AllocateUser
|
Назначение пользователю области аутентификации
|
User.Modify
|
Создание/удаление/изменение пользователя
|
Права, связанные с ВМ
|
|
VM.Allocate
|
Создание/удаление ВМ
|
VM.Migrate
|
Миграция ВМ на альтернативный сервер в кластере
|
VM.PowerMgmt
|
Управление питанием (запуск, остановка, сброс, выключение)
|
VM.Console
|
Консольный доступ к ВМ
|
VM.Monitor
|
Доступ к монитору виртуальной машины (kvm)
|
VM.Backup
|
Резервное копирование/восстановление ВМ
|
VM.Audit
|
Просмотр конфигурации ВМ
|
VM.Clone
|
Добавление/изменение/удаление дисков ВМ
|
VM.Config.Disk
|
Создание/удаление/изменение областей аутентификации
|
VM.Config.CDROM
|
Извлечь/изменить CDROM
|
VM.Config.CPU
|
Изменение настроек процессора
|
VM.Config.Memory
|
Изменение настроек памяти
|
VM.Config.Network
|
Добавление/изменение/удаление сетевых устройств
|
VM.Config.HWType
|
Изменение типа эмуляции
|
VM.Config.Options
|
Изменение любой другой конфигурации ВМ
|
VM.Snapshot
|
Создание/удаление снимков ВМ
|
Права, связанные с хранилищем
|
|
Datastore.Allocate
|
Создание/удаление/изменение хранилища данных
|
Datastore.AllocateSpace
|
Выделить место в хранилище
|
Datastore.AllocateTemplate
|
Размещение/загрузка шаблонов контейнеров и ISO-образов
|
Datastore.Audit
|
Просмотр хранилища данных
|
/nodes/<node>
— доступ к серверам PVE;
/vms
— все ВМ;
/vms/<vmid>
— доступ к определенным ВМ;
/storage/<storeid>
— доступ к хранилищам;
/access/groups
— администрирование групп;
/access/realms/<realmid>
— административный доступ.
virt-install
, virt-clone
, virsh
и других. Для управления из графической оболочки можно воспользоваться virt-manager
.
Содержание
Примечание
Примечание
#apt-get update
#apt-get install libvirt-kvm virt-install
# systemctl enable --now libvirtd
# gpasswd -a user vmusers
/etc/libvirt/
— каталог с файлами конфигурации libvirt;
/var/lib/libvirt/
— рабочий каталог сервера виртуализации libvirt;
/var/log/libvirt
— файлы журналов libvirt.
qemu-img
— управление образами дисков ВМ. Позволяет выполнять операции по созданию образов различных форматов, конвертировать файлы-образы между этими форматами, получать информацию об образах и объединять снимки ВМ для тех форматов, которые это поддерживают;
virsh
— консольный интерфейс управления ВМ, виртуальными дисками и виртуальными сетями;
virt-clone
— клонирование ВМ;
virt-install
— создание ВМ с помощью опций командной строки;
virt-xml
— редактирование XML-файлов описаний ВМ.
virsh
— утилита для командной строки, предназначенная для управления ВМ и гипервизорами KVM.
virsh
использует libvirt API и служит альтернативой графическому менеджеру виртуальных машин (virt-manager
).
virsh
можно сохранять состояние ВМ, переносить ВМ между гипервизорами и управлять виртуальными сетями.
virsh
, можно используя команду:
$ virsh help
Таблица 49.1. Утилита командной строки virsh. Команды управления виртуальными машинами
Команда
|
Описание
|
---|---|
help
|
Краткая справка
|
list
|
Просмотр всех ВМ
|
dumpxml
|
Вывести файл конфигурации XML для заданной ВМ
|
create
|
Создать ВМ из файла конфигурации XML и ее запуск
|
start
|
Запустить неактивную ВМ
|
destroy
|
Принудительно остановить работу ВМ
|
define
|
Определяет файл конфигурации XML для заданной ВМ
|
domid
|
Просмотр идентификатора ВМ
|
domuuid
|
Просмотр UUID ВМ
|
dominfo
|
Просмотр сведений о ВМ
|
domname
|
Просмотр имени ВМ
|
domstate
|
Просмотр состояния ВМ
|
quit
|
Закрыть интерактивный терминал
|
reboot
|
Перезагрузить ВМ
|
restore
|
Восстановить сохраненную в файле ВМ
|
resume
|
Возобновить работу приостановленной ВМ
|
save
|
Сохранить состояние ВМ в файл
|
shutdown
|
Корректно завершить работу ВМ
|
suspend
|
Приостановить работу ВМ
|
undefine
|
Удалить все файлы ВМ
|
migrate
|
Перенести ВМ на другой узел
|
Таблица 49.2. Утилита командной строки virsh. Параметры управления ресурсами ВМ и гипервизора
Команда
|
Описание
|
---|---|
setmem
|
Определяет размер выделенной ВМ памяти
|
setmaxmem
|
Ограничивает максимально доступный гипервизору объем памяти
|
setvcpus
|
Изменяет число предоставленных ВМ виртуальных процессоров
|
vcpuinfo
|
Просмотр информации о виртуальных процессорах
|
vcpupin
|
Настройка соответствий виртуальных процессоров
|
domblkstat
|
Просмотр статистики блочных устройств для работающей ВМ
|
domifstat
|
Просмотр статистики сетевых интерфейсов для работающей ВМ
|
attach-device
|
Подключить определенное в XML-файле устройство к ВМ
|
attach-disk
|
Подключить новое дисковое устройство к ВМ
|
attach-interface
|
Подключить новый сетевой интерфейс к ВМ
|
detach-device
|
Отключить устройство от ВМ (принимает те же определения XML, что и attach-device)
|
detach-disk
|
Отключить дисковое устройство от ВМ
|
detach-interface
|
Отключить сетевой интерфейс от ВМ
|
virt-install
— это инструмент для создания ВМ, основанный на командной строке.
virt-install
можно получить, выполнив команду:
$ man virt-install
Таблица 49.3. Параметры команды virt-install
Команда
|
Описание
|
---|---|
-n NAME, --name=NAME
|
Имя новой ВМ. Это имя должно быть уникально внутри одного гипервизора
|
--memory MEMORY
|
Определяет размер выделенной ВМ памяти (в МБ)
|
--vcpus VCPUS
|
Определяет количество виртуальных ЦПУ. Например:
|
--cpu CPU
|
Модель ЦП и его характеристики. Например:
|
--metadata METADATA
|
Метаданные ВМ
|
Метод установки
|
|
--cdrom CDROM
|
Установочный CD-ROM. Может указывать на файл ISO-образа или на устройство чтения CD/DVD-дисков
|
-l LOCATION, --location LOCATION
|
Источник установки, например,
https://host/path
|
--pxe
|
Выполнить загрузку из сети используя протокол PXE
|
--import
|
Пропустить установку ОС, и создать ВМ на основе существующего образа диска
|
--boot BOOT
|
Параметры загрузки ВМ. Например:
|
--os-type=DISTRO_TYPE
|
Оптимизирует настройки ВМ для заданного типа ОС
|
--os-variant=DISTRO_VARIANT
|
Дополнительная оптимизация ВМ для конкретного варианта ОС
|
--disk DISK
|
Настройка пространства хранения данных. Например:
|
-w NETWORK, --network NETWORK
|
Конфигурация сетевого интерфейса ВМ. Например:
|
--graphics GRAPHICS
|
Настройки экрана ВМ. Например:
|
--input INPUT
|
Конфигурация устройства ввода. Например:
|
--hostdev HOSTDEV
|
Конфигурация физических USB/PCI и других устройств хоста для совместного использования ВМ
|
-filesystem FILESYSTEM
|
Передача каталога хоста гостевой системе. Например:
|
Параметры платформы виртуализации
|
|
-v, --hvm
|
Эта ВМ должна быть полностью виртуализированной
|
-p, --paravirt
|
Эта ВМ должна быть паравиртуализированной
|
--container
|
Тип ВМ — контейнер
|
--virt-type VIRT_TYPE
|
Тип гипервизора (kvm, qemu и т.п.)
|
--arch ARCH
|
Имитируемая архитектура процессора
|
--machine MACHINE
|
Имитируемый тип компьютера
|
Прочие параметры
|
|
--autostart
|
Запускать домен автоматически при запуске хоста
|
--transient
|
Создать временный домен
|
--noautoconsole
|
Не подключаться к гостевой консоли автоматически
|
-q, --quiet
|
Подавлять вывод (за исключением ошибок)
|
-d, --debug
|
Вывести отладочные данные
|
virt-install
.
virt-install
поддерживает как графическую установку операционных систем при помощи VNC и Spice, так и текстовую установку через последовательный порт. Гостевая система может быть настроена на использование нескольких дисков, сетевых интерфейсов, аудиоустройств и физических USB- и PCI-устройств.
virt-install
получает минимальный набор файлов для запуска установки и позволяет установщику получить отдельные файлы. Поддерживается также загрузка по сети (PXE) и создание виртуальной машины/контейнера без этапа установки ОС или загрузка по сети предустановленной системы.
virt-install
поддерживает большое число опции, позволяющих создать полностью независимую ВМ, готовую к работе, что хорошо подходит для автоматизации установки ВМ.
qemu-img
— инструмент для манипулирования с образами дисков машин QEMU.
qemu-img [standard options] command [command options]
create
— создание нового образа диска;
check
— проверка образа диска на ошибки;
convert
— конвертация существующего образа диска в другой формат;
info
— получение информации о существующем образе диска;
snapshot
— управляет снимками состояний (snapshot) существующих образов дисков;
commit
— записывает произведенные изменения на существующий образ диска;
rebase
— создает новый базовый образ на основании существующего.
qemu-img
работает со следующими форматами:
qemu-img info
или ls -ls
;
# qemu-img info /var/lib/libvirt/images/alt-server.qcow2
mage: /var/lib/libvirt/images/alt-server.qcow2
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 3.32 MiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: true
refcount bits: 16
corrupt: false
extended l2: false
# qemu-img create -f qcow2 /var/lib/libvirt/images/hdd.qcow2 20G
# qemu-img convert -f raw -O qcow2 disk_hd.img disk_hd.qcow2
virt-manager
предоставляет графический интерфейс для доступа к гипервизорам и ВМ в локальной и удаленных системах. С помощью virt-manager
можно создавать ВМ. Кроме того, virt-manager
выполняет управляющие функции:
Примечание
$где 192.168.0.147 — IP-адрес сервера с libvirt.ssh-keygen -t ed25519
$ssh-copy-id user@192.168.0.147