Как сделать сервер виртуальных машин

Обновлено: 06.07.2024

Инструкция написана на примере 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.

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

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).

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

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

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

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

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

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

virsh vncdisplay VM1

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

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

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

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

Кликаем по 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 — общий размер виртуального диска после расширения.

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

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

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

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

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

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

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


2. Пока только скачиваем Debian (о скачивании и установке Debian можно прочесть здесь).

3. Открываем наш VirtualBox и создаем новую виртуальную машину, выставляем необходимые параметры и т. д.

Пример параметров моей виртуальной машины:
Имя: Debian_Server
Тип: Linux
Версия: Debian
Объем оперативной памяти: 512 mb
Жесткий диск: vdi, динамический, 30 gb
Подключенные носители: контроллер IDE — образ с Debian, контроллер SATA — наш жесткий диск .
Остальные параметры пока не трогаем.

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

5. Debian установили, перезагружаемся и логинимся (можно под рутом).
Перед нами полноценная, рабочая ОС.

параметр -h (halt) выключение, now — сейчас.


Подтверждаем нажатием ОК.



Ваш ip-адрес показан после inet addr: например inet addr: 192.168.0.7 , запомните его.

Для того, чтобы удаленно управлять сервером, нужно настроить ssh.
Так как у меня роутер (D-link), то мне необходимо пробросить 22-ой порт для SSH. Для этого нужно залогиниться в админку роутера и добавить виртуальный сервер.

Гуглите на тему «проброс портов роутер 'имя вашего роутера'".
Вот инструкция на русском языке для роутеров D-link.
Это возможно только тогда, когда вы имеете так называемый "белый" адрес, об этом Вы можете узнать у своего провайдера.

Я же покажу свои параметры:



На этом настройка сети закончена.

Проверяем наш сервер. В браузере компьютера пишем адрес вашего сервера, пример:


Сервер функционирует. У нас там пока ничего нет, поэтому идем дальше.

12. Проверяем работоспособность php.
Каталогом нашего сайта является /var/www/

Как создать виртуальный сервер на своём компьютере

Многие вебмастера озадачены вопросом о том, как создать виртуальный сервер на компьютере. Зачастую имеется в виду домашний компьютер или какая-то простаивающая машина, которую можно было бы с большей пользой эксплуатировать. Вопрос о том, как создать виртуальный сервер на компьютере решается различными способами. Мы подробно рассмотрим один из них с пошаговым порядком действий.

Необходимая подготовка

Для тех, кому хочется создать полноценную виртуальную машину, на домашнем компьютере есть возможность лишь однажды всё настроить и затем уже свободно пользоваться этим. Прежде чем начинать следовать алгоритму, нужно произвести некоторую подготовку. Речь идёт о том, чтобы подготовить образ операционной системы, которая будет инсталлироваться на виртуальную машину. Кроме того, необходимо установить специализированную программу, которая именуется VirtualBox. Вместе с программой потребуется скачать для неё Extension Pack, а сам процесс установки этого софта является вполне стандартным и не вызывает затруднений.

Как сделать VPS на своём компьютере

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

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

VirtualBox

Итак, чтобы решить вопрос как создать VPS сервер на своём компьютере нужно выполнить следующие шаги:

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

Настройка сетевого адаптера

Дальнейшим этапом решения вопроса о том, как сделать VPS на своём компьютере является настройка сетевого адаптера:

VPS на своём компьютере

После этого решение вопроса, как создать VDS сервер на своём компьютере будет решён. При желании можно создать несколько дополнительных машин. А подключаться к ним можно любым удобным способом, например, используя Remote Desktop Protocol.

Наш рейтинг

Итак, теперь вы знаете, как можно организовать свой VDS сервер на компьютере без особых усилий с нуля. Однако, если вы хотите использовать более серьёзный сервер от профессиональной хостинговой компании, то потребуется внимательно выбирать провайдера. Мы предлагаем обратить внимание на те варианты, что опубликованы в таблице.

Здесь представлен наш рейтинг, который мы составляли, предъявляя к компаниям серьёзные, но объективные требования и оценивая их по многим параметрам.

В панели управления вы можете за несколько минут создать стандартный виртуальный сервер.
Но в некоторых случаях нужны предварительные настройки. Краткий их список собран в таблице, информация продублирована в инструкции.

Опции, для которых нужны предварительные настройки:

По умолчанию серверы создаются на SSD-диске.
Чтобы создать сервер с HDD-дискoм, воспользуйтесь инструкцией.

По умолчанию вы можете создать сервер из более, чем 20 готовых образов с операционными системами Windows и Linux.
Но также можно загрузить в виртуальный дата-центр свой образ (как загрузить образ).

Создание сервера. Пошаговая инструкция


В открывшемся окне происходит создание сервера:


Далее рассмотрим каждую вкладку окна.

NOVA — с гарантированной производительностью 100%.
STANDARD — c производительностью не менее 30%.
Подробней о типах ядер Nova и Standart.


Будьте внимательны, выбирая тип ядер NOVA или STANDART. Чтобы изменить их после создания виртуального сервера, понадобится обращение в техподдержку и остановка сервера.

В этой вкладке выберите основу для сервера и задайте размер диска для будущего сервера.


Самый простой вариант — создать сервер на основе готового образа.

Далее рассмотрим каждый способ отдельно:

Образ



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

Чтобы создать сервер на HDD-диске, используйте инструкцию.

По умолчанию список доступных дисков будет пуст:


Если вы заранее создали диск, на его основе можно развернуть сервер. Это чаще всего используется:



Снимок диска



Как можно использовать снимки дисков:

Например, вы создали снимок, а после внесли на сервер изменения. Затем вам понадобился еще один сервер в состоянии до внесенных изменений. На основе имеющегося снимка можно создать виртуальную машину.

Во вкладке Тип инстанса вам требуется выбрать количество оперативной памяти и ядер процессора для сервера.




Конфигурация выбрана, на её основе будет создан сервер.


Если вы не нашли в списке подходящий шаблон, обратитесь в техподдержку – мы добавим кастомную конфигурацию.


Доступны варианты подключения в любых комбинациях:

Подключение сетей (назначить IP из диапазона сети) — простой способ, рекомендуем использовать по умолчанию. IP-адрес будет назначен серверу по DHCP.

Подключения портов (назначить IP-адрес через порт) — для назначения выбранного IP-адреса.

Далее рассмотрим каждый вариант отдельно:

Подключение сетей

По умолчанию доступна сеть external_network c белыми IP-адресами. Используйте её для быстрого создания виртуального сервера с доступом в интернет.

На скриншоте сеть external_network выбрана для виртуального сервера.


Сервер с сетью external_network будет иметь выделенный белый IP-адрес и доступен для входящих и исходящих подключений через Интернет.

Также можно заранее создать частную сеть с кастомными настройками. Удобно для построения развитой серверной инфраструктуры. Например, когда нужно связать несколько виртуальных машин.

Подключение портов



Теперь порт будет назначен для сервера.



все входящие пинги

все исходящие пинги

Подробнее о настройке межсетевых экранов вы можете почитать в этом инструкции.

В целях безопасности, рекомендуем изменить правила межсетевого экрана после создания сервера и выполнения сетевых настроек.

SSH-ключи необходимы для первого доступа к виртуальным серверам, созданым из готовых образов. В этой вкладке сгенерируйте или загрузите свои SSH-ключи с помощью соттветствующих кнопок.





Вы можете загрузить свой shell-script или скопировать его в текстовое поле. При копировании важно, чтобы в начале каждой строки отсутствовали пробелы.


Функция доступна только только для новых дисков, создаваемых на основе образа.

Системный раздел равен размеру образа. Остальное место на диске можно будет разметить вручную, средствами операционной системы сервера.

Завершение



Читайте также: