Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Amet13/vz-tutorial.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmet13 <admin@amet13.name>2016-03-26 22:05:37 +0300
committerAmet13 <admin@amet13.name>2016-03-26 22:05:37 +0300
commitd644cee816298cd0d96b3dc9ac7bb940f4efcc99 (patch)
treeee49877003df48017e8b888e5921ed32ddafef73 /README.md
parent57a024729bd4779c48e6dafb8299a1e826e408e5 (diff)
Много поправок в тексте и коде
Diffstat (limited to 'README.md')
-rw-r--r--README.md143
1 files changed, 66 insertions, 77 deletions
diff --git a/README.md b/README.md
index e616246..5c69582 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
- [Установка Virtuozzo с помощью ISO-образа (bare-metal installation)](#bare-metal)
- [Установка Virtuozzo на заранее установленный дистрибутив](#exists-distro)
- [Подготовительные действия](#prepare)
-4. [Управление шаблонами гостевых ОС и приложений контейнеров](#templates-ct)
+4. [Управление шаблонами контейнеров](#templates-ct)
- [Шаблоны гостевых ОС](#guest-os)
- [Шаблоны приложений](#app-templates)
5. [Создание и настройка контейнеров](#ct)
@@ -50,50 +50,54 @@
15. [Лицензия](#license)
## [[⬆]](#toc) <a name='intro'></a>Введение в виртуализацию
-Виртуализация — предоставление наборов вычислительных ресурсов или их логического объединения, абстрагированное от аппаратной реализации, и обеспечивающее изоляцию вычислительных процессов.
+Виртуализация — предоставление наборов вычислительных ресурсов или их логического объединения, абстрагированных от аппаратной реализации, и обеспечивающих изоляцию вычислительных процессов.
Виртуализацию можно использовать в:
-* консолидации серверов (позволяет мигрировать с физических серверов на виртуальные, тем самым увеличивается коэффициент использования аппаратуры, что позволяет существенно сэкономить на аппаратуре, электроэнергии и обслуживании)
-* разработке и тестировании приложений (возможность одновременно запускать несколько различных ОС, это удобно при разработке кроссплатформенного ПО, таким образом значительно повышается качество, скорость разработки и тестирования приложений)
+* консолидации серверов (возможность мигрировать с физических серверов на виртуальные, тем самым увеличивая коэффициент использования аппаратуры, что позволяет существенно сэкономить на аппаратуре, электроэнергии и обслуживании)
+* разработке и тестировании приложений (возможность одновременно запускать несколько различных операционных систем (ОС), это удобно при разработке кроссплатформенного программного обеспечения (ПО), таким образом значительно повышается качество, скорость разработки и тестирования приложений)
* бизнесе (использование виртуализации в бизнесе растет с каждым днем и постоянно находятся новые способы применения этой технологии, например, возможность безболезненно сделать снапшот)
* организации виртуальных рабочих станций (так называемых "тонких клиентов")
-*Общая схема взаимодействия виртуализации с аппаратурой и программным обеспечением*
-![Общая схема взаимодействия виртуализации с аппаратурой и программным обеспечением](https://raw.githubusercontent.com/Amet13/virtuozzo-tutorial/master/images/virt-scheme.png)
+*Общая схема взаимодействия виртуализации с аппаратным и программным обеспечением*
+![Общая схема взаимодействия виртуализации с аппаратным и программным обеспечением](https://raw.githubusercontent.com/Amet13/virtuozzo-tutorial/master/images/virt-scheme.png)
Понятие виртуализации можно условно разделить на две категории:
-* виртуализация платформ, продуктом этого вида виртуализации являются виртуальные машины
-* виртуализация ресурсов преследует целью комбинирование или упрощение представления аппаратных ресурсов для пользователя и получение неких пользовательских абстракций оборудования, пространств имен, сетей
+* виртуализация платформ (продуктом этого вида виртуализации являются виртуальные машины)
+* виртуализация ресурсов (преследует целью комбинирование или упрощение представления аппаратных ресурсов для пользователя и получение неких пользовательских абстракций оборудования, пространств имен, сетей)
-Взаимодействие приложений и операционной системы (ОС) с аппаратным обеспечением осуществляется через абстрагированный слой виртуализации.
+Взаимодействие приложений и операционной системы с аппаратным обеспечением осуществляется через абстрагированный слой виртуализации.
Существует несколько подходов организации виртуализации:
* эмуляция оборудования (QEMU, Bochs, Dynamips)
-* полная виртуализация (KVM, HyperV, VirtualBox)
+* полная виртуализация (KVM, HyperV, VirtualBox, ESXi)
* паравиртуализация (Xen, L4, Trango)
* виртуализация уровня ОС (LXC, Virtuozzo, Jails, Solaris Zones)
### <a name='emulation'></a>Эмуляция оборудования
Эмуляция аппаратных средств является одним из самых сложных методов виртуализации.
-Главной проблемой при эмуляции аппаратных средств является низкая скорость работы, в связи с тем, что каждая команда моделируется на основных аппаратных средствах.
+В то же время главной проблемой при эмуляции аппаратных средств является низкая скорость работы, в связи с тем, что каждая команда моделируется на основных аппаратных средствах.
В процессе эмуляции оборудования используется механизм динамической трансляции, то есть каждая из инструкций эмулируемой платформы заменяется на заранее подготовленный фрагмент инструкций физического процессора.
-Эмуляция позволяет использовать виртуализированные аппаратные средства еще до выхода реальных.
-Например, управление неизмененной ОС, предназначенной для PowerPC на системе с ARM процессором.
-
*Эмуляция оборудования моделирует аппаратные средства*
![Схема эмуляции оборудования](https://raw.githubusercontent.com/Amet13/virtuozzo-tutorial/master/images/emulation.png)
+Динамический транслятор позволяет во время исполнения переводить инструкции целевого (гостевого) процессора в инструкции центрального процессора хоста для обеспечения эмуляции.
+QEMU обеспечивает динамическую трансляцию преобразованием целевой инструкции в микрооперации, эти микрооперации представляют собой элементы C-кода, которые компилируются в объекты.
+Затем запускается основной транслятор, который отображает целевые инструкции на микрооперации для динамической трансляции.
+Такой подход не только эффективен, но и обеспечивает переносимость.
+
### <a name='full-virt'></a>Полная виртуализация
Полная виртуализация использует гипервизор, который осуществляет связь между гостевой ОС и аппаратными средствами физического сервера.
В связи с тем, что вся работа с гостевой операционной системой проходит через гипервизор, скорость работы данного типа виртуализации ниже чем в случае прямого взаимодействия с аппаратурой.
-Основным преимуществом является то, что в ОС не вносятся никакие изменения, единственное ограничение — операционная система должна поддерживать основные аппаратные средства.
+Основным преимуществом полной виртуализации является то, что в ОС не вносятся никакие изменения, единственное ограничение — операционная система должна поддерживать основные аппаратные средства (AMD SVM или Intel VT).
*Полная виртуализация использует гипервизор*
![Схема полной виртуализации](https://raw.githubusercontent.com/Amet13/virtuozzo-tutorial/master/images/full-virt.png)
-Полная виртуализация возможна исключительно при условии правильной комбинации оборудования и программного обеспечения.
+В архитектуре KVM виртуальная машина выполняется как обычный Linux-процесс, запланированный стандартным планировщиком Linux.
+На самом деле, виртуальный процессор представляется как обычный Linux-процесс, это позволяет KVM пользоваться всеми возможностями ядра Linux.
+Эмуляцией устройств управляет модифицированная версия QEMU, которая обеспечивает эмуляцию BIOS, шины PCI, шины USB, а также стандартный набор устройств, таких как дисковые контроллеры IDE и SCSI, сетевые карты и другие.
### <a name='paravirt'></a>Паравиртуализация
Паравиртуализация имеет некоторые сходства с полной виртуализацией.
@@ -180,7 +184,8 @@ VCMM (Virtuozzo containers memory management) — сервис управлен
На графике можно наблюдать, что OpenVZ обеспечивает практическую нативную пропускную способность 10Gb сети (9.7Gbit/s отправка и 9.87Gbit/s прием).
## [[⬆]](#toc) <a name='history'></a>Краткая история проекта Virtuozzo
-В 1999 году возникла идея создания Linux-контейнеров, а уже в 2002 году компания SWsoft представила первый релиз коммерческой версии Virtuozzo. В том же 2002 году появились первые клиенты в Кремниевой долине.
+В 1999 году возникла идея создания Linux-контейнеров, а уже в 2002 году компания SWsoft представила первый релиз коммерческой версии Virtuozzo.
+В том же 2002 году появились первые клиенты в Кремниевой долине.
В 2004 году выпуск Virtuozzo для Windows.
В 2005 году было принято решение о разделении Virtuozzo на два отдельных проекта, свободный OpenVZ (под лицензией GNU GPL) и проприетарный Virtuozzo.
@@ -191,7 +196,7 @@ VCMM (Virtuozzo containers memory management) — сервис управлен
В 2011 году появилась идея создания проекта CRIU, OpenVZ портирован на RHEL 6.
В 2012 году стала доступна CRIU v0.1.
-В конце 2014 года компания Odin анонсировала открытие кодовой базы Parallels Cloud Server и объединение ее с открытой OpenVZ.
+В конце 2014 года компания Odin анонсировала открытие кодовой базы Parallels Cloud Server и объединение ее с открытым кодом OpenVZ.
В апреле 2015 года открыт репозиторий с ядром RHEL 7 (3.10), в мае были открыты исходные коды пользовательских утилит, а в июне выложены тестовые сборки ISO-образов и RPM-пакеты.
@@ -206,7 +211,7 @@ VCMM (Virtuozzo containers memory management) — сервис управлен
Установка Virtuozzo с помощью PXE (Preboot Execution Environment) подробно описана в [документации](https://docs.openvz.org/virtuozzo_7_installation_using_pxe_guide.webhelp/).
### <a name='bare-metal'></a>Установка Virtuozzo с помощью ISO-образа (bare-metal installation)
-Дистрибутив Virtuozzo Linux с патчами для ядра RHEL 7, утилитами управления и модифицированным установщиком является самым простым способом установки Virtuozzo на сервер.
+Дистрибутив Virtuozzo Linux с патчами для ядра RHEL 7, утилитами управления и модифицированным установщиком, является самым простым способом установки Virtuozzo на сервер.
Текущая последняя версия ISO-образа доступна по адресу: https://download.openvz.org/virtuozzo/releases/7.0-rtm/x86_64/iso/
@@ -308,7 +313,7 @@ Password: пароль_пользователя_root
[root@virtuozzo ~]# systemctl enable ntpd
```
-## [[⬆]](#toc) <a name='templates-ct'></a>Управление шаблонами гостевых ОС и приложений контейнеров
+## [[⬆]](#toc) <a name='templates-ct'></a>Управление шаблонами контейнеров
### <a name='guest-os'></a>Шаблоны гостевых ОС
Шаблоны гостевых ОС используются для создания контейнеров.
@@ -334,6 +339,7 @@ ubuntu-15.04-x86_64
```
[root@virtuozzo ~]# vzpkg list --available --with-summary | xargs vzpkg install template
```
+
Альтернативный вариант установки шаблонов:
```
[root@virtuozzo ~]# yum install debian-8.0-x86_64-ez fedora-22-x86_64-ez ubuntu-14.04-x86_64-ez ubuntu-14.10-x86_64-ez ubuntu-15.04-x86_64-ez
@@ -382,7 +388,7 @@ centos-6-x86_64 2015-10-19 00:43:44
Просмотр списка шаблонов приложений для `centos-7-x86_64`:
```
[root@virtuozzo ~]# vzpkg list centos-7-x86_64
-centos-7-x86_64 2016-02-09 17:01:05
+centos-7-x86_64 2016-02-09 17:01:05
centos-7-x86_64 mod_ssl
centos-7-x86_64 jsdk
centos-7-x86_64 cyrus-imap
@@ -435,7 +441,6 @@ centos-7-x86_64 jre 2016-02-09 20:03:50
### <a name='configs'></a>Конфигурационные файлы
В старых версиях OpenVZ основным идентификатором контейнера является CTID, который вручную указывался при создании контейнера.
Сейчас в этом нет необходимости, на смену CTID пришел UUID, который создается автоматически.
-Однако существует возможность указания UUID вручную.
Каждый контейнер имеет свой конфигурационный файл, который хранится в каталоге `/etc/vz/conf/`.
Именуются конфиги по UUID контейнера.
@@ -528,7 +533,7 @@ DEF_OSTEMPLATE=".centos-7"
[root@virtuozzo ~]# prlctl set ct1 --hostname ct1.virtuozzo.localhost
```
-Установка поискового домена (если требуется):
+Установка поискового домена:
```
[root@virtuozzo ~]# prlctl set ct1 --searchdomain 192.168.0.1
```
@@ -561,14 +566,14 @@ esxrcH7dyoA46LY
```
### <a name='run-enter'></a>Запуск и вход
-После настроек нового контейнера. его можно запустить:
+Запуск контейнера:
```
[root@virtuozzo ~]# prlctl start ct1
Starting the CT...
The CT has been successfully started.
```
-Проверяем сетевые интерфейсы внутри гостевой ОС:
+Проверка сетевых интерфейсов внутри гостевой ОС:
```
[root@virtuozzo ~]# prlctl exec ct1 ip addr show venet0
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
@@ -583,13 +588,13 @@ The CT has been successfully started.
valid_lft forever preferred_lft forever
```
-Также проверим корректность hostname:
+Проверка корректности hostname:
```
[root@virtuozzo ~]# prlctl exec ct1 hostname
ct1.virtuozzo.localhost
```
-Проверяем доступность контейнера в сети и корректность пароля суперпользователя:
+Проверка доступности контейнера в сети и корректность пароля суперпользователя:
```
[root@virtuozzo ~]# ssh root@192.168.0.161
root@192.168.0.161's password: eVjfsDkTE63s5Nw
@@ -600,11 +605,6 @@ root@ct1:~#
```
[root@virtuozzo ~]# prlctl enter ct1
entered into CT
-root@ct1:/#
-```
-
-Выход из контейнера:
-```
root@ct1:/# exit
logout
[root@virtuozzo ~]#
@@ -620,7 +620,7 @@ CT ct1 exist running
CT ct2 exist stopped
```
-По выводу команды можно наблюдать, что контейнер `ct1` существует и запущен, а контейнер `ct2` существует и остановлен.
+По выводу команды можно увидеть, что контейнер `ct1` запущен, а контейнер `ct2` остановлен.
Остановка контейнера:
```
@@ -629,8 +629,8 @@ Stopping the CT...
The CT has been successfully stopped.
```
-Иногда нужно выключить контейнер как можно быстрее, например если контейнер был подвержен взлому.
-Для того чтобы срочно выключить контейнер, нужно использовать ключ `--kill`:
+Иногда нужно выключить контейнер как можно быстрее, например если он был подвержен взлому или создает критическую нагрузку на хост-ноду.
+Для того чтобы срочно выключить контейнер, нужно использовать параметр `--kill`:
```
[root@virtuozzo ~]# prlctl stop ct1 --kill
Stopping the CT...
@@ -658,9 +658,9 @@ Resuming the CT...
The CT has been successfully resumed.
```
-Для удаления контейнера существует команда `delete`, перед удалением, контейнер нужно сначала остановить:
+Для удаления контейнера существует команда `delete` (перед удалением, контейнер нужно сначала остановить):
```
-[root@virtuozzo ~]# prlctl stop
+[root@virtuozzo ~]# prlctl stop ct1
Stopping the CT...
The CT has been successfully stopped.
[root@virtuozzo ~]# prlctl delete ct1
@@ -668,21 +668,17 @@ Removing the CT...
The CT has been successfully removed.
```
-Команда выполняет удаление частной области сервера (`/vz/private/$UUID`) и переименовывает файл конфигурации (`/etc/vz/conf/$UUID.conf`), дописывая к нему `.destroyed`.
+Команда выполняет удаление частной области сервера (`/vz/private/$UUID`) и переименовывает файл конфигурации (`/etc/vz/conf/$UUID.conf`), дописывая к его имени окончание `.destroyed`.
### <a name='reinstall-ct'></a>Переустановка контейнера
Для переустановки ОС в контейнере, существует команда `vzctl reinstall`.
-Прежде чем переустанавливать контейнер его нужно сначала остановить:
+Переустановка и старт контейнера (для переустановки нужно сначала остановить контейнер):
```
[root@virtuozzo ~]# prlctl stop ct1
Stopping the CT...
The CT has been successfully stopped.
-```
-
-Переустановка и старт контейнера:
-```
-[root@virtuozzo ~]# vzctl reinstall ct1
+[root@virtuozzo ~]# vzctl reinstall ct1 --skipbackup
...
Container was successfully reinstalled
[root@virtuozzo ~]# prlctl start ct1
@@ -691,10 +687,7 @@ The CT has been successfully started.
```
По умолчанию, `vzctl reinstall` без дополнительных параметров, сохраняет все файлы (частную область) прошлого контейнера в каталог `/old` нового контейнера.
-Для того, чтобы не копировать частную область предыдущего контейнера, необходимо использовать ключ `--skipbackup`:
-```
-[root@virtuozzo ~]# vzctl reinstall ct1 --skipbackup
-```
+Для того, чтобы не копировать частную область предыдущего контейнера, необходимо использовать параметр `--skipbackup`:
### <a name='clone-ct'></a>Клонирование контейнера
Virtuozzo позволяет клонировать контейнеры:
@@ -728,6 +721,7 @@ Failed to start the Container
[root@virtuozzo ~]# prlctl set ct2 --ipadd 192.168.0.162/24
[root@virtuozzo ~]# prlctl set ct2 --ipadd fe80::20c:29ff:fe01:fb09
```
+
Смена hostname:
```
[root@virtuozzo ~]# prlctl set ct2 --hostname ct2.virtuozzo.localhost
@@ -761,7 +755,7 @@ Debian GNU/Linux 8 \n \l
```
### <a name='extra-info'></a>Расширенная информация о контейнерах
-Подробная информация о контейнере:
+Подробную информацию о контейнере можно получить командой `list` с параметром `-i`:
```
[root@virtuozzo ~]# prlctl list -i ct4
INFO
@@ -850,7 +844,7 @@ ha_prio HA_PRIO
Все эти параметры можно редактировать в файлах шаблонов, в каталоге `/etc/vz/conf/`.
Их можно установить вручную, редактируя соответствующие конфиги или используя утилиты Virtuozzo.
-Параметры контроля ресурсов условно разделяют на группы:
+Параметры контроля ресурсов контейнеров условно разделяют на группы:
* дисковые квоты
* процессор
* операции ввода/вывода
@@ -1136,12 +1130,7 @@ Disks stats 0.000 0.000
`vzpid` позволяет узнать к какому контейнеру принадлежит процесс, это может быть полезно при просмотре списка процессов с хост-ноды и поиска "процесса-грузчика":
```
[root@virtuozzo ~]# top
-top - 20:43:26 up 33 min, 1 user, load average: 0.00, 0.01, 0.05
-Tasks: 178 total, 1 running, 176 sleeping, 1 stopped, 0 zombie
-%Cpu(s): 1.7 us, 3.6 sy, 0.0 ni, 88.5 id, 0.0 wa, 0.0 hi, 6.2 si, 0.0 st
-KiB Mem : 1013704 total, 382912 free, 138656 used, 492136 buff/cache
-KiB Swap: 975868 total, 975868 free, 0 used. 688028 avail Mem
-
+...
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5625 33 20 0 364432 6232 1284 S 26.2 0.6 0:03.20 apache2
...
@@ -1329,7 +1318,7 @@ crw------- 1 root root 10, 229 Feb 10 13:42 /dev/fuse
[root@virtuozzo ~]# prlctl exec ct3 mount -t davfs https://webdav.yandex.ru /mnt/
Please enter the username to authenticate with server
https://webdav.yandex.ru or hit enter for none.
- Username: username
+ Username: user
Please enter the password to authenticate user username with server
https://webdav.yandex.ru or hit enter for none.
Password: pass
@@ -1337,7 +1326,7 @@ https://webdav.yandex.ru or hit enter for none.
## [[⬆]](#toc) <a name='vm'></a>Работа с виртуальными машинами
Помимо создания контейнеров, Virtuozzo 7 поддерживает создание и управление виртуальными машинами на базе QEMU/KVM.
-Утилита `prlctl` имеет возможно создавать и управлять виртуальными машинами, помимо этого также доступно управление ВМ с помощью libvirt.
+Утилита `prlctl` имеет возможно создавать и управлять виртуальными машинами, помимо этого также доступно управление ВМ с помощью `libvirt`.
### <a name='create-vm'></a>Создание и запуск ВМ
Создание виртуальной машины практически ничем не отличается от создания контейнера:
@@ -1353,18 +1342,18 @@ The VM has been successfully created.
```
[root@virtuozzo ~]# prlctl create vm1 -d list
The following values are allowed:
-win-2000 win-xp win-2003 win-vista
-win-2008 win-7 win-8 win-2012
-win-8.1 win rhel rhel7
-suse debian fedora-core fc
-xandros ubuntu mandriva mandrake
-centos centos7 psbm redhat
-opensuse linux-2.4 linux-2.6 linux
-mageia mint freebsd-4 freebsd-5
-freebsd-6 freebsd-7 freebsd-8 freebsd
+win-2000 win-xp win-2003 win-vista
+win-2008 win-7 win-8 win-2012
+win-8.1 win rhel rhel7
+suse debian fedora-core fc
+xandros ubuntu mandriva mandrake
+centos centos7 psbm redhat
+opensuse linux-2.4 linux-2.6 linux
+mageia mint freebsd-4 freebsd-5
+freebsd-6 freebsd-7 freebsd-8 freebsd
```
-Для каждой виртуальной машины в каталоге `/vz/vmprivate/` создается собственная директория с именем `ВМ.pvm`:
+Для каждой виртуальной машины в каталоге `/vz/vmprivate/` создается собственная директория с именем `$NAME.pvm`:
```
[root@virtuozzo ~]# ls /vz/vmprivate/vm1.pvm/
config.pvs config.pvs.backup harddisk.hdd
@@ -1586,7 +1575,7 @@ Boot order: hdd0 cdrom0
memory_guarantee auto
hdd0 (+) scsi:0 image='/vz/vmprivate/vm3.pvm/harddisk.hdd' type='expanded' 65536Mb subtype=virtio-scsi
[root@virtuozzo ~]# prlctl set vm3 --applyconfig config-1024MB-centos7
-[root@virtuozzo ~]# prlctl list vm3 -i | grep Hardware -A9
+[root@virtuozzo ~]# prlctl list vm3 -i | grep "cpu\|memory\|video\|hdd0"
Boot order: hdd0 cdrom0
cpu cpus=2 VT-x accl=high mode=32 cpuunits=1000 cpulimit=1024Mhz ioprio=4 iolimit='0' mask=0-1
memory 1024Mb
@@ -1596,7 +1585,12 @@ Boot order: hdd0 cdrom0
```
### <a name='devices-vm'></a>Добавление и удаление устройств в ВМ
-Для каждой виртуальной машины доступно максимум 4 IDE или 8 SCSI (HDD, CD/DVD-ROM) устройств, 16 сетевых адаптеров, 4 последовательных порта и по одному USB-контроллеру и FDD.
+Для каждой виртуальной машины доступно максимальное количество устройств:
+* 4 IDE или 8 SCSI (HDD, CD/DVD-ROM) устройств
+* 16 сетевых адаптеров
+* 4 последовательных (COM) порта
+* один USB-контроллер
+* одно FDD устройство
Добавление дополнительного HDD для виртуальной машины с Linux:
```
@@ -1631,11 +1625,6 @@ First sector (2048-4194303, default 2048): <Enter>
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): <Enter>
Command (m for help): w
[root@vm1 /]# mkfs -t ext4 /dev/sdb1
-...
-Allocating group tables: done
-Writing inode tables: done
-Creating journal (8192 blocks): done
-Writing superblocks and filesystem accounting information: done
[root@vm1 /]# mount /dev/sdb1 /mnt/
[root@vm1 /]# tail -1 /etc/mtab >> /etc/fstab
```
@@ -1665,10 +1654,10 @@ Remove the cdrom1 device.
Изменение приоритета загрузки устройств:
```
-[root@virtuozzo ~]# prlctl list vm1 -i | grep 'Boot order'
+[root@virtuozzo ~]# prlctl list vm1 -i | grep "Boot order"
Boot order: hdd0 hdd1
[root@virtuozzo ~]# prlctl set vm1 --device-bootorder "hdd1 hdd0"
-[root@virtuozzo ~]# prlctl list vm1 -i | grep 'Boot order'
+[root@virtuozzo ~]# prlctl list vm1 -i | grep "Boot order"
Boot order: hdd1 hdd0
```