Виртуальный сервер linux настройка

Содержание
  1. Создаем виртуальный сервер на базе KVM
  2. Шаг 1. Устанавливаем ОС и необходимое программное обеспечение
  3. Установка операционной системы и программного обеспечения
  4. Определяем, поддерживает ли процессор работу с KVM
  5. Проверяем правильность установки программного обеспечения
  6. Шаг 2. Создаем виртуальный сервер
  7. Создаем образ диска в формате raw
  8. Устанавливаем операционную систему на образ диска
  9. Теперь запустите ваш виртуальный сервер
  10. Шаг 3: Конфигурирование сетевых настроек виртуального сервера
  11. Установка пакета bridge-util
  12. Создание сетевого интерфейса типа «мост»
  13. Создание скрипта управления сетью
  14. Запуск гостевой операционной системы
  15. Конфигурирование сетевых настроек гостевой операционной системы
  16. Настройка KVM на Ubuntu Server
  17. Проверка поддержки гипервизора
  18. Подготовка сервера
  19. Установка и запуск
  20. Настройка сети на сервере KVM
  21. Создание виртуальной машины
  22. Подключение к виртуальной машине
  23. Управление виртуальной машиной из командной строки
  24. Управление дисками
  25. Добавление диска
  26. Увеличение размера виртуального диска
  27. Управление сетевыми настройками виртуальной машины
  28. Резервирование IP на DHCP

Создаем виртуальный сервер на базе KVM

Краткое содержание: С помощью трех сравнительно простых шагов вы можете с помощью технологии полной виртуализации создать виртуальный сервер на Linux-гипервизоре KVM.

Виртуальная машина, созданная на базе ядра Linux (KVM), является бесплатным программным обеспечением для Linux, имеющим открытый код и предназначенным для использовании технологии виртуализации. KVM основывается на расширенных возможностях, реализованных аппаратно (Intel VT-X и AMD-V), и на модифицированной версии QEMU. KVM является загружаемым модулем ядра kvm.ko, с помощью которого реализуется основная инфраструктура виртуализации серверов, а модули, реализованные под конкретные процессоры — kvm-intel.ko и kvm-amd.ko, разработаны для обеспечения полной аппаратной эмуляции, что требуется для загрузки большого количества операционных систем в немодифицированном виде.

С помощью KVM можно запустить несколько виртуальных машин, которые сами могут быть немодифицированными образами Linux, Windows или Mac OS X. Каждая виртуальная машина имеет свои собственные виртуальные аппаратные средства, такие как сетевая карта, диск, графический адаптер и т.д.

В настоящей статье используется сервер IBM® Blade Server HS21 с SUSE 11 в качестве операционной системы. В сервере HS21 поддерживается расширенная технология Intel VT, а версия ядра, используемая в SUSE 11, — 2.6.27.13, в котором уже есть гипервизор KVM (гипервизор KVM входит в ядро начиная с версии 2.6.20).

Для того, чтобы создать виртуальных сервер, нужно выполнить следующие три шага:

  1. Установить операционную систему и необходимое программное обеспечение
  2. Создать виртуальный сервер
  3. Сконфигурировать сеть виртуального сервера

Шаг 1. Устанавливаем ОС и необходимое программное обеспечение

В этой части рассматриваются следующие вопросы:

  1. Установка операционной системы и требуемого программного обеспечения
  2. Определение, поддерживает ли процессор работу с KVM
  3. Проверка правильности установки программного обеспечения

Установка операционной системы и программного обеспечения

После того, как вы установите операционную систему, вы можете с помощью следующей команды проверить установленную версию ядра Linux:

Затем выберите и установите пакеты kvm и kvm-kmp-default (в состав которых уже входит модифицированный QEMU для эмуляции аппаратных средств ввода/вывода). Смотрите рис.1, выберите эти пакеты и щелкните по Accept для того, чтобы их установить:

Рис.1. Поиск модулей установленного ядра

Версия kvm-kmp-default — 78_2.6.27.13_1-11.3 (78 — это версия KVM , а остальная часть указывает версию ядра).

Типичный вариант гипервизора KVM содержит следующие компоненты:

  • Драйвер устройств для управления виртуальным аппаратным обеспечением; этот драйвер предоставляет свои возможности через символьное устройство /dev/kvm
  • Компонента пользовательского пространства для эмуляции аппаратного обеспечения персонального компьютера; в настоящий момент она обрабатывается в пользовательском пространстве и является слегка модифицированным процессом QEMU
  • Модель ввода/вывода, которая непосредственно следует из модели QEMU с поддержкой образов копирования и записи на диск и других особенностей QEMU

Определяем, поддерживает ли процессор работу с KVM

KVM зависит от наличия расширенных команд виртуализации x86. Для того, чтобы проверить совместимость, запустите команду grep vmx /proc/cpuinfo (на AMD, запустите команду grep svm /proc/cpuinfo ). Если результат выдачи будет похож на листинг 1, то это означает, что ваш процессор поддерживает использование KVM; в противном случае ваш процессор не поддерживает работу KVM.

Листинг 1. Проверка процессора на предмет поддержки KVM

Проверяем правильность установки программного обеспечения

Запустите команду lsmod | grep kvm для того, чтобы проверить, что модуль KVM установлен успешно. Если результат аналогичен тому, что показан ниже, то модуль KVM установлен успешно:

Шаг 2. Создаем виртуальный сервер

В этой части рассматриваются следующие вопросы:

  1. Создаем образ диска в формате raw
  2. Устанавливаем ОС на этот образ
  3. Запускаем виртуальный сервер
Читайте также:  Подмена shell windows 10

Создаем образ диска в формате raw

Для того, чтобы создать образ диска, используйте следующую команду:

С помощью этой команды вы создаете образ размером 10 Гбайт и с именем kvmtest.img.

Устанавливаем операционную систему на образ диска

Для того, чтобы получить операционную систему, установленную на этом образе, используйте следующую команду:

Поскольку вы устанавливаете пакет KVM, а не создаете модуль KVM из исходного кода самостоятельно, вы должны использовать команду qemu-kvm , а не команду qemu-system-x86_64 .

-boot d означает, что мы будем создавать виртуальный сервер, загружая его с CDROM. -m 1024 означает, что мы выделяем для виртуального сервера 1 Гбайт памяти.

После того, как эта команда будет запущена, появится экран установки операционной системы, такой как показано на рис.2:

Рис.2. Экран установки ОС

Далее установите операционную систему так, как вы это обычно делаете.

Теперь запустите ваш виртуальный сервер

После того, как операционная система будет успешно установлена, вы сможете запустить виртуальный сервер с помощью следующей команды:

Ваш сервер должен работать точно также, как обычный сервер работает на физически реализованном аппаратном обеспечении.

Шаг 3: Конфигурирование сетевых настроек виртуального сервера

Теперь вы знаете, как правильно создавать виртуальный сервер, но не сетевое соединение для виртуального сервера. Рассмотрим, как создать виртуальное соединение типа «мост»:

  1. Устанавливаем пакет bridge-util
  2. Создаем сетевой интерфейс типа «мост»
  3. Создаем скрипт для управления сетью
  4. Запускаем сеть гостевой операционной системы
  5. Конфигурируем сеть гостевой операционной системы

Установка пакета bridge-util

Нам нужно создать сетевое соединение типа «мост», поэтому нам нужно в операционной системе в разделе управления программным обеспечением выбрать для установки пакет bridge-util.

Рис.3. Установка пакета bridge-util

Создание сетевого интерфейса типа «мост»

На экране настройки сетевых соединений щелкните по ссылке Add a new network interface (Добавить новый сетевой интерфейс) (см.рис.4):

Рис.4. Добавление нового сетевого интерфейса

Должно появиться диалоговое окно настройки аппаратного обеспечения, такое как изображено на рис.5:

Рис.5. Диалог настройки аппаратного обеспечения, используемого для нового сетевого интерфейса

Выберите Bridge («Мост») в качестве типа устройства; щелкните по ссылке Next («Далее») для того, чтобы продолжить конфигурирование сети. Вы должны увидеть экран конфигурирования такой, как изображено на рис. 6:

Рис.6. Экран конфигурирования сети

В разделе «Bridged Devices» выберите вариант eth0 и укажите статический IP адрес для интерфейса типа «мост», который должен быть такой же, как и у eth0 (см. рис. 7).

Рис.7. Конфигурирование статического IP адреса для интерфейса типа «мост»

После того, как вы это сделаете, конфигурация для eth0 должна быть сброшена, поэтому щелкните по ссылке Next («Далее») для того, чтобы продолжить, и вы вернетесь в экран конфигурирования сетевых настроек. Вы увидите, что был создан новый сетевой интерфейс типа «мост» и что интерфейс eth0 был очищен.

Создание скрипта управления сетью

Содержимое скрипта управления сетью должно выглядеть приблизительно так, как показано на листинге 2:

Листинг 2. Скрипт управления сетью

Запуск гостевой операционной системы

Запустите гостевую операционную систему с сетевым интерфейсом с помощью следующей команды:

Когда вы запускаете виртуальный сервер, вы можете указать сетевой интерфейс.

Конфигурирование сетевых настроек гостевой операционной системы

После того, как гостевая операционная система будет загружена, сконфигурируйте ее сетевые настройки так, как вы это делаете обычно.

Поздравляем! Вы успешно создали виртуальный сервер, построенный на основе KVM.

Ссылки на другие статьи по теме виртуализации вы найдете в разделе «Технологии и средства виртуализации» нашей Библиотеки.

Источник

Настройка KVM на Ubuntu Server

Инструкция написана на примере Linux Ubuntu Server 18.04.3 LTS. Она подойдет для большинства дистрибутивов на основе Debian.

Проверка поддержки гипервизора

Проверяем, что сервер поддерживает технологии виртуализации:

cat /proc/cpuinfo | egrep «(vmx|svm)»

В ответ должны получить что-то наподобие:

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 popcnt aes lahf_lm epb tpr_shadow vnmi flexpriority ept vpid dtherm ida arat

В противном случае, заходим в БИОС, находим опцию для включения технологии виртуализации (имеет разные названия, например, Intel Virtualization Technology или Virtualization) и включаем ее — задаем значение Enable.

Читайте также:  Windows kms server address

Также проверить совместимость можно командой:

* если команда вернет ошибку «kvm-ok command not found», установите соответствующий пакет: apt-get install cpu-checker.

INFO: /dev/kvm exists
KVM acceleration can be used

значит поддержка со стороны аппаратной части есть.

Подготовка сервера

Для нашего удобства, создадим каталог, в котором будем хранить данные для KVM:

* будет создано два каталога: /kvm/vhdd (для виртуальных жестких дисков) и /kvm/iso (для iso-образов).

timedatectl set-timezone Europe/Moscow

* данная команда задает зону в соответствии с московским временем.

apt-get install chrony

systemctl enable chrony

* устанавливаем и запускаем утилиту для синхронизации времени.

Установка и запуск

Устанавливаем KVM и необходимые утилиты управления.

а) Ubuntu после версии 18.10

apt-get install qemu qemu-kvm libvirt-daemon-system virtinst libosinfo-bin

б) Ubuntu до 18.10:

apt-get install qemu-kvm libvirt-bin virtinst libosinfo-bin

* где qemu-kvm — гипервизор; libvirt-bin — библиотека управления гипервизором; virtinst — утилита управления виртуальными машинами; libosinfo-bin — утилита для просмотра списка вариантов операционных систем, которые могут быть в качестве гостевых.

Настроим автоматический запуск сервиса:

systemctl enable libvirtd

Настройка сети на сервере KVM

Виртуальные машины могут работать за NAT (в качестве которого выступает сервер KVM) или получать IP-адреса из локальной сети — для этого необходимо настроить сетевой мост. Мы настроим последний.

Используя удаленное подключение, внимательно проверяйте настройки. В случае ошибки соединение будет прервано.

apt-get install bridge-utils

а) настройка сети в старых версиях Ubuntu (/etc/network/interfaces).

Открываем конфигурационный файл для настройки сетевых интерфейсов:

И приведем его к виду:

#iface eth0 inet static
# address 192.168.1.24
# netmask 255.255.255.0
# gateway 192.168.1.1
# dns-nameservers 192.168.1.1 192.168.1.2

auto br0
iface br0 inet static
address 192.168.1.24
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1 192.168.1.2
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

* где все, что закомментировано — старые настройки моей сети; br0 — название интерфейса создаваемого моста; eth0 — существующий сетевой интерфейс, через который будет работать мост.

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

systemctl restart networking

б) настройка сети в новых версиях Ubuntu (netplan).

* в зависимости от версии системы, конфигурационной файл yaml может иметь другое название.

Приводим его к виду:

network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: false
dhcp6: false
wakeonlan: true

bridges:
br0:
macaddress: 2c:6d:45:c3:55:a7
interfaces:
— eth0
addresses:
— 192.168.1.24/24
gateway4: 192.168.1.1
mtu: 1500
nameservers:
addresses:
— 192.168.1.2
— 192.168.1.3
parameters:
stp: true
forward-delay: 4
dhcp4: false
dhcp6: false

* в данном примере мы создаем виртуальный бридж-интерфейс br0; в качестве физического интерфейса используем eth0. 2c:6d:45:c3:55:a7 — физический адрес интерфейса, через который мы будем настраивать бридж; 192.168.1.24 — IP-адрес нашего сервера KVM; 192.168.1.1 — адрес шлюза; 192.168.1.2 и 192.168.1.3 — адреса серверов DNS.

Применяем сетевые настройки:

Настаиваем перенаправления сетевого трафика (чтобы виртуальные машины с сетевым интерфейсом NAT могли выходить в интернет):

sysctl -p /etc/sysctl.d/99-sysctl.conf

Создание виртуальной машины

Для создания первой виртуальной машины вводим следующую команду:

virt-install -n VM1 \
—autostart \
—noautoconsole \
—network=bridge:br0 \
—ram 2048 —arch=x86_64 \
—vcpus=2 —cpu host —check-cpu \
—disk path=/kvm/vhdd/VM1-disk1.img,size=16 \
—cdrom /kvm/iso/ubuntu-18.04.3-server-amd64.iso \
—graphics vnc,listen=0.0.0.0,password=vnc_password \
—os-type linux —os-variant=ubuntu18.04 —boot cdrom,hd,menu=on

  • VM1 — имя создаваемой машины;
  • autostart — разрешить виртуальной машине автоматически запускаться вместе с сервером KVM;
  • noautoconsole — не подключается к консоли виртуальной машины;
  • network — тип сети. В данном примере мы создаем виртуальную машину с интерфейсом типа «сетевой мост». Для создания внутреннего интерфейса с типом NAT вводим —network=network:default,model=virtio;
  • ram — объем оперативной памяти;
  • vcpus — количество виртуальных процессоров;
  • disk — виртуальный диск: path — путь до диска; size — его объем;
  • cdrom — виртуальный привод с образом системы;
  • graphics — параметры подключения к виртуальной машины с помощью графической консоли (в данном примере используем vnc); listen — на какой адресе принимает запросы vnc (в нашем примере на всех); password — пароль для подключения при помощи vnc;
  • os-variant — гостевая операционная система (весь список мы получали командой osinfo-query os, в данном примере устанавливаем Ubuntu 18.04).

Подключение к виртуальной машине

На компьютер, с которого планируем работать с виртуальными машинами, скачиваем VNC-клиент, например, TightVNC и устанавливаем его.

На сервере вводим:

virsh vncdisplay VM1

команда покажет, на каком порту работает VNC для машины VM1. У меня было:

* :1 значит, что нужно к 5900 прибавить 1 — 5900 + 1 = 5901.

Запускаем TightVNC Viewer, который мы установили и вводим данные для подключения:

Читайте также:  Hp scanjet 3770 mac os

Кликаем по Connect. На запрос пароля вводим тот, что указали при создании ВМ, (vnc_password). Мы подключимся к виртуальной машине удаленной консолью.

Если мы не помним пароль, открываем настройку виртуальной машины командой:

И находим строку:

* в данном примере для доступа к виртуальной машине используется пароль 12345678.

Управление виртуальной машиной из командной строки

Примеры команд, которые могут пригодиться при работе с виртуальными машинами.

1. Получить список созданных машин:

2. Включить виртуальную машину:

virsh start VMname

* где VMname — имя созданной машины.

3. Выключить виртуальную машину:

virsh shutdown VMname

4. Включить автозапуск виртуальной машины:

virsh autostart VMname

5. Редактирование конфигурации виртуальной машины:

virsh edit VMname

6. Работа с сетевыми интерфейсами.

Добавить обычный сетевой интерфейс (default или NAT) виртуальной машине:

virsh attach-interface —domain VMname —type network —source default —model virtio —config —live

Добавить интерфейс типа bridge:

virsh attach-interface —domain VMname —type bridge —source br0 —model rtl8139 —config —live

Удалить сетевой интерфейс:

virsh detach-interface VMname —type bridge —mac 52:54:00:2e:a9:4d

* где bridge — тип сетевого интерфейса (также может быть network); 52:54:00:2e:a9:4d — MAC-адрес сетевого адаптера (узнать данный адрес можно в конфигурации виртуальной машины или в самой гостевой операционной системы).

7. Посмотреть IP-адреса, выданные виртуальным машинам автоматически:

virsh net-dhcp-leases default

* где default — виртуальная сеть, создаваемая по умолчанию при установке KVM.

8. Работа со снапшотами

Теневые копии или снапшоты позволяют нам быстро вернуть определенное состояние системы виртуальной машины. Рассмотрим процесс создания снапшота и управления им.

а) Создать снимок виртуальной машины можно командой:

virsh snapshot-create-as —domain VMname —name VMname_snapshot_2020-03-21

* где VMname — название виртуальной машины; VMname_snapshot_2021-05-03 — название для снапшота.

б) Список снапшотов можно посмотреть командой:

virsh snapshot-list —domain VMname

* данной командой мы просмотрим список всех снапшотов для виртуальной машины VMname.

в) Для применения снапшота, сначала мы должны остановить виртуальную машину. Для этого можно либо выполнить выключение в операционной системе или ввести команду:

virsh shutdown VMname

virsh snapshot-revert —domain VMname —snapshotname VMname_snapshot_2020-03-21 —running

* где VMname — имя виртуальной машины; VMname_snapshot_2021-05-03 — имя созданного снапшота.

г) Удалить снапшот можно так:

virsh snapshot-delete —domain VMname —snapshotname VMname_snapshot_2020-03-21

Управление дисками

Отдельно рассмотрим процесс работы с виртуальными дисками.

Добавление диска

Создаем файл для нового диска:

qemu-img create -f raw /data/kvm/vhdd/VMname-disk2.img 4G

* в данном примере мы создадим файл формата raw по полному пути /data/kvm/vhdd/VMname-disk2.img размером 4 Гб.

Теперь подключим данный диск к виртуальной машине:

virsh attach-disk VMname /data/kvm/vhdd/VMname-disk2.img vdb —cache none

* в данном примере мы подключили его к машине VMname в качестве диска vdb.

Готово. Подключаемся к виртуальной машине и проверяем, что у нас появился новый диск. Например, в Linux можно посмотреть командой:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 24G 0 disk
??vda1 252:1 0 24G 0 part
??ubuntu—vg-root 253:0 0 23G 0 lvm /
??ubuntu—vg-swap_1 253:1 0 980M 0 lvm [SWAP]
vdb 252:16 0 4G 0 disk

Увеличение размера виртуального диска

Получаем список дисков для виртуальной машины:

virsh domblklist VMname

* в данном примере путь до диска — /data/kvm/vhdd/VMname-disk1.img.

Останавливаем виртуальную машину:

virsh shutdown VMname

* или завершаем работу в самой операционной системе.

Увеличиваем размер диска:

qemu-img resize /data/kvm/vhdd/VMname-disk1.img +100G

* данной командой мы расширим дисковое пространство виртуального диска /data/kvm/vhdd/VMname-disk1.img на 100 Гигабайт.

Мы должны увидеть:

Получаем информацию о виртуальном диске:

qemu-img info /data/kvm/vhdd/VMname-disk1.img

Запускаем виртуальную машину:

virsh start VMname

Меняем размер блочного устройства:

virsh blockresize UBU /data/kvm/vhdd/VMname-disk1.img 200G

* где 200G — общий размер виртуального диска после расширения.

После необходимо поменять размер диска в самой операционной системе. Пример того, как это можно сделать можно прочитать в инструкции Добавление дискового пространства виртуальной машине в VMware (раздел «Настройка операционной системы»).

Управление сетевыми настройками виртуальной машины

В данном подразделе рассмотрим примеры работы с сетевыми настройками виртуальных машин.

Резервирование IP на DHCP

Если мы раздаем IP-адреса виртуальным машинам с помощью встроенного в KVM сервера DHCP, мы можем привязать определенный IP по mac-адресу. Для этого смотрим список наших виртуальных сетей:

Мы увидим список сетей, например:

Name State Autostart Persistent
———————————————————-
br0 active yes yes
default active yes yes

В моем случае, необходимо настроить сеть default — вводим:

Источник

Оцените статью