Современный сервер без системы виртуализации является скорее исключением, чем правилом. И это неудивительно, ведь преимуществ его использования действительно множество. Производственная мощность оборудования постоянно растет, и у админа появляется возможность распределять ресурсы сервера для выполнения различных задач. А также появляется возможность сэкономить средства, используя один более мощный сервер с виртуализацией вместо нескольких менее производительных. И вдобавок — удобная для администрирования система управления с полным доступом к виртуальному серверу на расстоянии. Все эти преимущества обеспечивают спрос на технологии виртуализации в современном ИТ мире и их неоспоримые перспективы.
Исходные дыни
Для выполнения настройки необходимо иметь сервер с двумя жесткими дисками для RAID-1. Все команды будут выполняться от пользователя root. Текстовый редактор nano.
1. Первоочередная настройка
Есть несколько вариантов настройки системы виртуализации KVM. Рассмотрим два из них. В первом случае развернем виртуальный сервер на lvm-разделе, во втором – используем файл-образ .
Для первого варианта разметка нашего RAID-массива должна выглядеть следующим образом:
PART swap PART /boot ext3 PART/ext4 PART /data ext4
Из раздела /data мы впоследствии сделаем раздел lvm.
Для установки на файл-образ все проще:
PART swap PART /boot ext3 PART/ext4
Устанавливаем операционную систему Linux Debian 10 (buster) на зеркало (RAID-1).
Устанавливаем дополнительные пакеты:
#apt install nmap tcpdump mc hdparm fail2ban smartmontools parted texinfo exim4-config mailutils host bridge-utils
Добавляем в файл /etc/sysctl.conf следующие строки:
#nano /etc/sysctl.conf net.ipv4.ip_forward=1 net.ipv4.conf.all.rp_filter=1 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.conf.default.proxy_arp=1 net.ipv4.conf.all.forwarding=1 net.ipv4.conf.all.proxy_arp=1
Применяем изменения:
#sysctl -p
2. Конфигурируем интерфейсы
Если виртуальная машина будет иметь локальный ip-адрес, необходимо добавить следующие строки в файл /etc/network/interfaces:
#nano /etc/network/interfaces
. . . auto br0 iface br0 inet static bridge_ports none bridge_maxwait 0 address локальный ip-адрес netmask 255.255.255.0
В случае, если виртуальная машина будет иметь внешний ip-адрес, конфигурация моста будет выглядеть иначе:
. . . auto br0 iface br0 inet static address ip-адрес хостовой операционной системы netmask 255.255.255.255 bridge_ports none bridge_stp off bridge_fd 0 pre-up brctl addbr br0 up ip route add ip-адрес хостовой ОС/32 dev br0 down ip route del ip-адрес хостовой ОС/32 dev br0
3. Создание раздела LVM (Первый вариант)
Данный раздел статьи предназначен для варианта установки виртуальной машины на lvm. Если вы предпочитаете использовать файл-образ для установки, пропустите этот раздел.
Размонтируем раздел, который мы создали для LVM и удалим информацию о нем из fstab (в нашем случае это раздел /dev/md3):
#umount /data/ #nano /etc/fstab proc /proc proc defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 /dev/md/0 none swap sw 0 0 /dev/md/1 /boot ext3 defaults 0 0 /dev/md/2 / ext4 defaults 0 0
Инициализируем поддержку LVM этим разделом:
#pvcreate /dev/md3
Создадим группу томов, которую назовем vgvm:
#vgcreate vgvm /dev/md3
Чтобы получить данные о точном объеме (в TiB) свободного дискового пространства, выполните следующую команду:
#pvdisplay
Создадим логический раздел LVM на 1Тб:
#lvcreate –L 1Т -n lvmpart vgvm
Проверим, что все хорошо:
#lvdisplay
4. Создание файла-образа (второй вариант)
Альтернативный вариант – это создание файла-образа:
#dd if=/dev/zero of=/home/img/guest.img bs=1024k count=150000
В данном примере создается файл /home/img/guest.img размером 150 ГБ.
5. Установка KVM
Устанавливаем необходимые пакеты:
#apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils libguestfs-tools genisoimage virtinst libosinfo-bin
Вводим в состав пользователя root в группы libvirt и kvm:
#adduser `id -un` libvirt #adduser `id -un` kvm
Перезагружаем систему:
#shutdown -r now
После перезагрузки проверяем работоспособность:
#virsh -c qemu:///system list root@server1:~# virsh -c qemu:///system list Id Name | ----------------------------------
6. Пример установки гостевой системы Linux Debian 10 (buster)
Для проверки списка операционных систем, поддерживаемых системой виртуализации kvm, выполните следующие команды:
#apt install libosinfo-bin #osinfo-query os
Для первого варианта (инсталляция на lvm-раздел), запуск установок виртуальной машины будет выглядеть следующим образом:
#virt-install --connect qemu:///system --arch=x86_64 -n debian10 -r 32000 --vcpus=6 --disk /dev/vgvm/lvmpart,device=disk,bus=virtio - c /home/iso/debian10.iso --vnc --noautoconsole --os-type linux --os-variant debian10 --network=bridge:br0,model=virtio
Для файла-образа:
#virt-install --connect qemu:///system --arch=x86_64 -n debian10 -r 32000 --vcpus=6 --disk /home/img/guest.img,device=disk,bus= virtio -c /home/iso/debian10.iso --vnc --noautoconsole --os-type linux --os-variant debian10 --network=bridge:br0,model=virtio
где:
--connect qemu:///system URL, по которому идет подключение к KVM, -n debian10- имя хостинговой системы, -r 32000 – объем оперативной памяти, выделяемый в мегабайтах, --arch=x86_64 - ¦архитектура гостевой системы, --vcpus=6 - количество виртуальных процессов, открытых гостю, --disk /dev/vgvm/lvmpart,device=disk,bus=virtio - раздел lvm, на который устанавливаем виртуальную машину, --disk /home/img/guest.img,device=disk,bus=virtio - файл-образ, на который устанавливаем гостевую систему, --os-type=linux - тип операционной системы, --os-variant debian10 - версия операционной системы, --network=bridge:br0,model=virtio – мост для нашей гостевой системы. --vnc Запускаем VNC для подключения к текстовой консоли.
Осталось добавить доступ к виртуальной машине по vnc:
#nano /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0" vnc_password = "passwd"
Применяем изменения:
#service libvirtd restart
Устанавливайте операционную систему и пользуйтесь преимуществами системы виртуализации.
Удачи!
Компания ООО «ИНФОТЕК.УА» предоставляет профессиональные услуги по обслуживанию компьютеров организаций
22 августа, 2019