10.01.2019 testsoft

Установка Kernel-based Virtual Machine (KVM) на CentOS7

Перед началом установки поясню теорию происходящего на этой странице. Как-то при обновлении парка машин в офисе, я нашел старый компьютер и решил попрактиковаться в создании среды визуализации. Понятное дело, что ни о каком ESXI или Hyper-V и речи быть не могло при таком «железе» и мой выбор пал на KVM сервер на базе CentOS 7 в минимальной установке. Что меня привлекло? Отсутствие тяжелых GUI, практика настройки KVM в консоли и спортивный интерес: насколько быстро или медленно будет работать система. Так как в работе я часто сталкиваюсь с Bitrix, то выбор пал на нее. Платформа тоже построена на CentOS, есть готовая SQL база и монитор производительности в «попугаях». Именно «линукс-попугаев» я и собирался замерить чтобы сравнить как быстро будет работать система при таком железе. В теории тестовому KVM серверу ничего не должно мешать «крутить» Bitrix, будет только минимальная установка CentOS с virsh, черный экран и моргающий курсор. Итак, к делу!

Качаем с сайта CentOS последнюю версию операционной системы в минимальной установке. Берем USB «флэшку», запускаем Rufus и создаем из скаченного образа загрузочный диск. Грузимся с USB и cтавим CentOS на «железо». Настаиваем сетевой интерфейс, чтобы CentOS «увидел мир» (IP-адрес, маску сети, шлюз и DNS). Проверяем возможность использование виртуализации:
cat /proc/cpuinfo | egrep "(vmx|svm)"

Далее создаем каталоги в корне операционной системы (можно придумать другие, но тогда поменяйте пути во всех командах на свои):
mkdir -p /kvm/{vm,iso}
vm — папка для хранения виртуальных машин
iso — образы операционных систем для установки

Установка
yum install qemu-kvm libvirt virt-install

Разрешаем автозапуск
systemctl enable libvirtd

Запуск KVM
systemctl start libvirtd

ip a
узнаем имя интерфейса физического сетевого адаптера. На моем CentOS: «ens33»

Настройка сети
vi /etc/sysconfig/network-scripts/ifcfg-ens33

ONBOOT=yes
BRIDGE=br0
TYPE=Ethernet
DEVICE=ens33
BOOTPROTO=none

Создаем интерфейс для сетевого моста:
vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.77.33.247
NETMASK=255.255.255.0
GATEWAY=10.77.33.1
DNS1=8.8.8.8
DNS2=8.8.4.4

Перезапускаем сетевую службу:

systemctl restart network

Перенаправления сетевого трафика:
vi /etc/sysctl.conf

Прописываем строчку
net.ipv4.ip_forward=1

Применяем настройки:
sysctl -p /etc/sysctl.conf

Перезапускаем libvirtd:
systemctl restart libvirtd

Подключаемся через WINCSP и заливаем образ диска с операционной системой. Например: CentOS-7-x86_64-Minimal-1810.iso

Запуск установки виртуальной машины
virt-install -n bitrix \
--noautoconsole \
--network=bridge:br0 \
--ram 2048 --arch=x86_64 \
--vcpus=1 --cpu host --check-cpu \
--disk path=/kvm/vm/bitrix.img,size=20 \
--cdrom /kvm/iso/CentOS-7-x86_64-Minimal-1810.iso \
--graphics vnc,listen=0.0.0.0,password=12345678 \
--os-type linux --os-variant=rhel7 --boot cdrom,hd,menu=on


Нажимаем «Enter» и создаем виртуальную машину с именем «bitrix». Параметры: выделить 1 процессор, оперативная память — 2048 Mb, размер жесткого диска 20 Gb, загрузиться с cdrom и загрузить iso образ из папки «/kvm/iso/», использовать vnc с паролем «12345678»

Указываем, что виртуальная машина должна грузиться автоматически
virsh autostart bitrix

Устанавливаем tightvnc.
http://www.tightvnc.com/download.php

Просмотр параметров виртуальной машины для VNC
virsh vncdisplay bitrix

Видим значение «:0», значит нужно использовать порт «5900» для подключения к виртуальной машине

Настраиваем параметры firewall
firewall-cmd --permanent --add-port=5900-5905/tcp

Перезапускаем межсетевой экран
service firewalld restart

Подключаемся по VNC
10.77.33.247::5900
Используем пароль: 12345678 и производим установку CentOS

Так как я занимаюсь тестированием программного обеспечения, то всегда делаю «снапшот» «чистой» системы, перед началом ее настройки. Просматриваем статус виртуальной машины:
virsh list
Виртуальная машина bitrix доступна и работает.

Проверим что виртуальная машина bitrix использует qcow2
virsh dumpxml freebsd | grep -i qemu

Выполняем команду для создания «снапшота»:
virsh snapshot-create-as --domain bitrix \
--name "FirstUP" \
--description "Snapshot before install Bitrix"

Просмотр созданного «снапшота»:
virsh snapshot-list --domain bitrix

Вывод подробной информации о сделанном «снапшоте»:
virsh snapshot-info --domain bitrix --snapshotname FirstUP

Теперь установим bitrix и присвоим ему IP-адрес 10.77.33.248

Сделаем еще один «снапшот» после окончания установки Bitrix
virsh snapshot-create-as --domain bitrix \
--name "AfterInstall" \
--description "Snapshot after install Bitrix"

Просмотр созданных «снапшотов»
virsh snapshot-list --domain bitrix

Все готово, можно экспериментировать. Возвращаемся к состоянию до установки:
virsh snapshot-revert --domain bitrix --snapshotname FirstUP --running

Проверяем, действительно появляется предложение установить Bitrix. Теперь вернемся к состоянию после установки:
virsh snapshot-revert --domain bitrix --snapshotname AfterInstall --running
Все работает отлично, перерь можно пользоваться тестовым сервером для платформы Bitrix
Заходим в панель управления платформы Bitrix и производим тест производительности:

Для тестовой системы со старым процессором очень даже неплохо получается.

, , , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code