From 5c08efd1f72ee220c9d1442fdb36e7ef8edfc8e8 Mon Sep 17 00:00:00 2001 From: Amet13 Date: Thu, 28 Jul 2016 23:46:44 +0300 Subject: =?UTF-8?q?=D0=90=D0=BD=D0=BE=D0=BD=D1=81=20OpenVZ=207?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 89 ++++++++++++------------------------- images/vz-install/anaconda.png | Bin 134140 -> 72562 bytes images/vz-install/grub-vz.png | Bin 4834 -> 0 bytes images/vz-install/grub.png | Bin 4303 -> 4351 bytes images/vz-install/install-vz.png | Bin 13176 -> 16157 bytes images/vz-install/partitioning.png | Bin 64307 -> 73593 bytes images/vz-install/user.png | Bin 154865 -> 107555 bytes images/vz7-architect.png | Bin 125124 -> 114654 bytes 8 files changed, 28 insertions(+), 61 deletions(-) delete mode 100644 images/vz-install/grub-vz.png diff --git a/README.md b/README.md index 9ff8472..02ec38e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Руководство по созданию и управлению контейнерами и виртуальными машинами на базе Virtuozzo +# Руководство по созданию и управлению контейнерами и виртуальными машинами на базе Virtuozzo/OpenVZ 7 ## Содержание 1. [Введение в виртуализацию](#intro) @@ -6,11 +6,10 @@ - [Полная виртуализация](#full-virt) - [Паравиртуализация](#paravirt) - [Контейнерная виртуализация (виртуализация уровня ОС)](#cont-virt) - - [Virtuozzo — объединение технологий виртуализации уровня ОС и полной виртуализации](#vz7) -2. [Краткая история проекта Virtuozzo](#history) + - [OpenVZ — объединение технологий виртуализации уровня ОС и полной виртуализации](#vz7) +2. [Краткая история проектов Virtuozzo/OpenVZ](#history) 3. [Установка и подготовительные действия](#install) - - [Установка Virtuozzo с помощью ISO-образа (bare-metal installation)](#bare-metal) - - [Установка Virtuozzo на заранее установленный дистрибутив](#exists-distro) + - [Установка OpenVZ с помощью ISO-образа (bare-metal installation)](#bare-metal) - [Подготовительные действия](#prepare) 4. [Управление шаблонами контейнеров](#templates-ct) - [Шаблоны гостевых ОС](#guest-os) @@ -72,7 +71,7 @@ * эмуляция оборудования (QEMU, Bochs, Dynamips) * полная виртуализация (KVM, Hyper-V, VirtualBox, VMware ESXi) * паравиртуализация (Xen, L4, Trango) -* виртуализация уровня ОС (LXC, Virtuozzo, Jails, Solaris Zones) +* виртуализация уровня ОС (LXC, OpenVZ, Jails, Solaris Zones) ### Эмуляция оборудования Эмуляция аппаратных средств является одним из самых сложных методов виртуализации. @@ -131,15 +130,15 @@ QEMU обеспечивает динамическую трансляцию пр Для систем на базе UNIX эта технология может рассматриваться как улучшенная реализация механизма chroot. Ядро обеспечивает полную изолированность контейнеров, поэтому программы из разных контейнеров не могут воздействовать друг на друга. -### Virtuozzo — объединение технологий виртуализации уровня ОС и полной виртуализации -Virtuozzo позволяет создавать множество защищенных, изолированных друг от друга контейнеров на одном узле. +### OpenVZ — объединение технологий виртуализации уровня ОС и полной виртуализации +OpenVZ позволяет создавать множество защищенных, изолированных друг от друга контейнеров на одном узле. Помимо этого разрабатываются возможности по созданию виртуальных машин на базе QEMU/KVM. Управление контейнерами и виртуальными машинами происходит с помощью специализированных утилит. - +*Архитектура OpenVZ 7* +![Архитектура OpenVZ 7](https://raw.githubusercontent.com/Amet13/virtuozzo-tutorial/master/images/vz7-architect.png) Каждый контейнер ведет себя так же, как автономный сервер и имеет собственные файлы, процессы, сеть (IP-адреса, правила маршрутизации). -В отличие от KVM или Xen, Virtuozzo использует одно ядро, которое является общим для всех виртуальных сред. +В отличие от KVM или Xen, OpenVZ использует одно ядро, которое является общим для всех виртуальных сред. Контейнеры можно разделить на две составляющие: * ядро (namespaces, cgroups, CRIU, ploop, vcmmd...) @@ -167,9 +166,9 @@ CRIU (Checkpoint/Restore In Userspace) — обеспечивает создан В разработке также находится миграция TCP соединений. VCMM (Virtuozzo containers memory management) — сервис управления механизмом memory cgroups в пространстве пользователя. -Менеджер памяти 4 поколения управляет memory cgroups, который присутствует в ванильном ядре, поэтому не требует сторонних патчей со стороны Virtuozzo. +Менеджер памяти 4 поколения управляет memory cgroups, который присутствует в ванильном ядре, поэтому не требует сторонних патчей со стороны OpenVZ. -Проведенные тестирования показывают, что OpenVZ (Virtuozzo) является одним из наиболее актуальных решений на рынке виртуализации, так как показывает внушительные результаты в различных тестированиях. +Проведенные тестирования показывают, что OpenVZ является одним из наиболее актуальных решений на рынке виртуализации, так как показывает внушительные результаты в различных тестированиях. *График времени отклика системы* ![Время отклика системы](https://raw.githubusercontent.com/Amet13/virtuozzo-tutorial/master/images/response-time.png) @@ -183,7 +182,7 @@ VCMM (Virtuozzo containers memory management) — сервис управлен На втором графике — результаты тестирования пропускной способности сети. На графике можно наблюдать, что OpenVZ обеспечивает практическую нативную пропускную способность 10Gb сети (9.7Gbit/s отправка и 9.87Gbit/s прием). -## [[⬆]](#toc) Краткая история проекта Virtuozzo +## [[⬆]](#toc) Краткая история проектов Virtuozzo/OpenVZ В 1999 году возникла идея создания Linux-контейнеров, а уже в 2002 году компания SWsoft представила первый релиз коммерческой версии Virtuozzo. В том же 2002 году появились первые клиенты в Кремниевой долине. @@ -203,25 +202,26 @@ VCMM (Virtuozzo containers memory management) — сервис управлен В марте 2016 года анонсирован выход Virtuozzo 7.0 Beta, с измененной архитектурой, а также с такими нововведениями, как дополнения гостевых ОС для Linux и Windows. Также представлена "живая" миграция для контейнеров, реализованная с помощью инструментария CRIU и P.Haul. +25 июля 2016 года анонсирован окончательный релиз продукта под именем OpenVZ 7.0. +В релизе объявлены такие события как отказ от развития SimFS, также объявлено что со следующей версии OpenVZ утилита vzctl будет объявлена устаревшей, рекомендуется вместо нее использовать prlctl или virsh. + ## [[⬆]](#toc) Установка и подготовительные действия -Существует два способа установки Virtuozzo: -* с помощью ISO-образа дистрибутива -* с помощью установки пакетов и ядра на заранее установленный дистрибутив +Начиная с версии OpenVZ 7.0 доступен только один вариант установки с помощью ISO-образа дистрибутива. -Установка Virtuozzo с помощью PXE (Preboot Execution Environment) подробно описана в [документации](https://docs.openvz.org/virtuozzo_7_installation_using_pxe_guide.webhelp/). +Установка OpenVZ с помощью PXE (Preboot Execution Environment) подробно описана в [документации](https://docs.openvz.org/virtuozzo_7_installation_using_pxe_guide.webhelp/). -### Установка Virtuozzo с помощью ISO-образа (bare-metal installation) -Дистрибутив Virtuozzo Linux с патчами для ядра RHEL 7, утилитами управления и модифицированным установщиком, является самым простым способом установки Virtuozzo на сервер. +### Установка OpenVZ с помощью ISO-образа (bare-metal installation) +Дистрибутив Virtuozzo Linux (VzLinux) с патчами для ядра RHEL 7, утилитами управления и модифицированным установщиком доступен для скачивания в виде стандартного ISO-образа с доступными локально пакетами и в виде netinstall-образа. -Текущая последняя версия ISO-образа доступна по адресу: https://download.openvz.org/virtuozzo/releases/7.0-rtm/x86_64/iso/ +Текущие последние версии ISO-образов доступны по адресу: https://download.openvz.org/virtuozzo/releases/7.0/x86_64/iso/ -После записи дистрибутива на носитель, можно приступать к установке Virtuozzo. +После записи дистрибутива на носитель, можно приступать к установке OpenVZ. Для этого необходимо загрузиться с носителя. -*Экран установки Virtuozzo после загрузки с носителя* -![Экран установки Virtuozzo](https://raw.githubusercontent.com/Amet13/virtuozzo-tutorial/master/images/vz-install/install-vz.png) +*Экран установки OpenVZ после загрузки с носителя* +![Экран установки OpenVZ](https://raw.githubusercontent.com/Amet13/virtuozzo-tutorial/master/images/vz-install/install-vz.png) -Установка Virtuozzo ничем не отличается от установки обычного Linux-дистрибутива. +Установка OpenVZ ничем не отличается от установки обычного Linux-дистрибутива. Установщик Anaconda предложит установить дату и время, раскладку клавиатуры, языковые параметры. Также необходимо будет произвести разметку диска и настроить сеть. По умолчанию включен kdump, который позволяет в будущем выяснить причины сбоев в ядре, поэтому рекомендуется его не отключать. @@ -234,7 +234,7 @@ VCMM (Virtuozzo containers memory management) — сервис управлен Необходимо для раздела `/` выделить не менее 8GB доступного дискового пространства. Размер раздела `swap` равен примерно половине объема оперативной памяти. -Все остальное дисковое пространство выделяется под раздел `/vz` с файловой системой ext4. +Все остальное дисковое пространство (рекомендуется не менее 30GB) выделяется под раздел `/vz` с файловой системой ext4. *Настройки сетевого интерфейса и имени хоста* ![Настройки сети](https://raw.githubusercontent.com/Amet13/virtuozzo-tutorial/master/images/vz-install/network.png) @@ -246,9 +246,9 @@ VCMM (Virtuozzo containers memory management) — сервис управлен После установки необходимо перезагрузиться. -На этом установка Virtuozzo с помощью ISO-образа завершена. +На этом установка OpenVZ с помощью ISO-образа завершена. -*Меню загрузчика Grub после установки Virtuozzo* +*Меню загрузчика Grub после установки OpenVZ* ![Grub](https://raw.githubusercontent.com/Amet13/virtuozzo-tutorial/master/images/vz-install/grub.png) Первый вход в систему осуществляется от пользователя `vzuser`, по SSH. @@ -262,38 +262,6 @@ Password: пароль_пользователя_root [root@virtuozzo ~]# ``` -### Установка Virtuozzo на заранее установленный дистрибутив -Поддерживаемые дистрибутивы: -* CloudLinux 7 -* CentOS 7 -* Scientific Linux 7 -* прочие дистрибутивы, основанные на RHEL 7 - -Установка пакетов на примере дистрибутива CentOS 7. - -Пакет `virtuozzo-release` содержит метаинформацию и yum-репозитории, необходимые для установки пакетов: -``` -[root@virtuozzo ~]# yum localinstall https://download.openvz.org/virtuozzo/releases/7.0-rtm/x86_64/os/Packages/v/virtuozzo-release-7.0.0-40.vz7.x86_64.rpm -``` - -Установка необходимых RPM-пакетов: -``` -[root@virtuozzo ~]# yum install prlctl prl-disp-service vzkernel -``` - -В качестве зависимостей также установятся такие пакеты как `criu`, `libvirt`, `lvm2`, `nfs-utils`, `quota`, `vcmmd`, `vzctl`, `vztt` и другие. - -По окончании установки пакетов необходимо перезагрузиться: -``` -[root@virtuozzo ~]# reboot -``` - -В меню загрузчика должен появиться новый пункт `Virtuozzo 7`. -Необходимо загрузиться с этого ядра. - -*Меню загрузчика Grub после установки Virtuozzo* -![Grub](https://raw.githubusercontent.com/Amet13/virtuozzo-tutorial/master/images/vz-install/grub-vz.png) - ### Подготовительные действия На сервере важно всегда обновлять программное обеспечение, так как в новых версиях не только могут добавлять новые возможности, но и исправлять уязвимости. Указанная ниже команда обновляет все существующие в системе пакеты: @@ -1737,7 +1705,6 @@ T STATUS NAME HOSTNAME DIST IP_ADDR CT running ct2 ct2.virtuozzo.localhost debian 192.168.0.162 FE80:0:0:0:20C:29FF:FE01:FB09 CT running ct1 ct1.virtuozzo.localhost debian 192.168.0.161 FE80:0:0:0:20C:29FF:FE01:FB08 VM stopped vm1 vm1.virtuozzo.localhost rhel7 192.168.0.163 FE80:0:0:0:20C:29FF:FE01:FB07 - ``` Список всех доступных полей: diff --git a/images/vz-install/anaconda.png b/images/vz-install/anaconda.png index b4cb221..6e7617f 100644 Binary files a/images/vz-install/anaconda.png and b/images/vz-install/anaconda.png differ diff --git a/images/vz-install/grub-vz.png b/images/vz-install/grub-vz.png deleted file mode 100644 index 9b45b09..0000000 Binary files a/images/vz-install/grub-vz.png and /dev/null differ diff --git a/images/vz-install/grub.png b/images/vz-install/grub.png index 1b689e4..070fe51 100644 Binary files a/images/vz-install/grub.png and b/images/vz-install/grub.png differ diff --git a/images/vz-install/install-vz.png b/images/vz-install/install-vz.png index 6f8a6c2..d61a7cb 100644 Binary files a/images/vz-install/install-vz.png and b/images/vz-install/install-vz.png differ diff --git a/images/vz-install/partitioning.png b/images/vz-install/partitioning.png index 92cbfe7..71ad191 100644 Binary files a/images/vz-install/partitioning.png and b/images/vz-install/partitioning.png differ diff --git a/images/vz-install/user.png b/images/vz-install/user.png index 0f81484..8aece75 100644 Binary files a/images/vz-install/user.png and b/images/vz-install/user.png differ diff --git a/images/vz7-architect.png b/images/vz7-architect.png index a92ac42..133f7ef 100644 Binary files a/images/vz7-architect.png and b/images/vz7-architect.png differ -- cgit v1.2.3