заметки об администрировании и программировании (python, ruby, php). Траблшутинг в «примерах» и HOWTO.

😎 О себе | 📚 Литература и ресурсы | ⚡ Все посты | 📮 E-mail
5 заметок с тегом

kvm

KVM virtualization: Открыть порт с гостевой ОС

Данные правила необходимы для проброса в мир определенного порта с гостевой машины. Зачем? У каждого свои потребности связанные с архитектурой сервиса.


iptables -t nat -I PREROUTING -p tcp -d $EXTERNAL_IP --dport $PORT -j DNAT --to-destination $GUEST_VM_IP:$PORT
iptables -I FORWARD -m state -d $GUEST_VM_IP/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT 


где:

$EXTERNAL_IP — внешний IP
$GUEST_VM_IP — локальный IP гостевой машины
$PORT — порт, который нужно пробросить в интернет

 Нет комментариев    48   4 мес   iptables   kvm   port

Управление KVM-нодой Ubuntu 16.04/18.04 LTS

Наткнулся на интересную утилитку virt-manager. По сути GUI для управления системой, можно подключать и удаленные хосты. Что понравилось — не нужно заморачиваться с подключением по VNC, открывает в один клик, как и управление некоторыми параметрами. Чуть ранее был пост о SystemRescueCd — незаменимая вещь для KVM, так вот его подключил тоже в пару кликов. Для подобных целей мегаудобная штука, советую!

Устанавливается просто: 


sudo apt-get install virt-manager


Сетапить виртуалку в моем случае проще, через консоль, т. к. подкидываю LVM-раздел, хотя такое вроде бы тоже можно.

SystemRescueCd — незаменимая вещь для KVM

SystemRescueCd - незаменимая вещь для KVM

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


cd /var/lib/libvirt/boot/ && sudo wget https://osdn.net/projects/systemrescuecd/storage/releases/6.0.3/systemrescuecd-6.0.3.iso


меню SystemRescueCd
 Нет комментариев    72   6 мес   kvm   Rescue   SystemRescueCd

Настройка ноды с KVM-виртуализацией Ubuntu 16.04 LTS: часть 2

Настройка ноды с KVM-виртуализацией Ubuntu 16.04 LTS: часть 2

В качестве «дисков», буду использовать логические тома (LV) в LVM. От qcow2 решили отказаться, поэтому будем использовать блочные устройства. Ничего сложного в этом нет.

Краткий экскурс в LVM можно почитать по ссылке Краткая заметка по работе с LVM в Linux

Кратко как сделать:


sudo pvcreate /dev/sda2
sudo vgcreate sas-storage /dev/sda2


Создаем устройство на 12G, для DNS-сервера, который будет рулить dns-именами во внутренней сети — за глаза.
Создаем командой:


sudo lvcreate -L 12G -n lv_dns sas-storage


или


sudo lvcreate -n lv_dns --size 12G sas-storage


где 12G размер логические тома (LV), sas-storage — имя группы томов (VG) и dns-disk имя логического тома (LV)

итог создания логические тома Logical Volumes (LV)

Далее запускаем установку системы на Ubuntu 16.04 LTS следующей командой


sudo virt-install --autostart --virt-type=kvm --name dns-server --description "DNS-server" --ram 1024 --vcpus=1 --os-type=linux --os-variant=ubuntu16.04 --hvm --cdrom=/var/lib/libvirt/boot/ubuntu-16.04.6-server-amd64.iso --network=bridge=br0,model=virtio --graphics vnc --disk path=/dev/sas-storage/lv_dns,bus=virtio


в моем сллучае dns-server это название виртуальной машины (оно будет мелькать ниже)
описание параметров virt-install:

--autostart
  • задает параметр автозагрузки виртуального сервера, при перезапуске ноды с виртуальными серверами
--virt-type=kvm
--cdrom
  • подключаем виртуальный CD-привод с образом ОС, которую будем устанавливать
--name
  • имя виртуальной машины, которое будет отображаться при выводе
virsh list all
--description
  • описание сервера
--ram
  • количество оперативной памяти для сервера
--vcpus

указываем количество «ядер» для виртуального сервера

--disk path
  • указываем диск для установки, в моем случае используется LVM, поэтому я не указываю размер диска, иначе через запятую указываем его размер, пример

--disk path=/var/lib/libvirt/images/ubuntu1604.img,size=100G,bus=virtio


--os-variant
  • указывает гипервизору под какую ОС нужно адаптировать настройки. Смотрим список доступных оптимизаций для гостевых ОС:

sudo virt-install --os-variant list


запуск установки виртуальной машины (VPS/VDS) KVM виртуализацией

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


sudo virsh dumpxml dns-server | grep vnc


получение доступа к vnc на ноде с KVM виртуализацией

Это даст нам информацию, к какому порту с помощью VNC мы можем подключиться для установке системы

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


ssh user@server.com -L 5900:127.0.0.1:5900


Я использую Remmina. Для примера приведу скриншот

подключение по vnc на ноде с виртуализацией KVM (VDS/VPS)

Далее, просто производим установку Ubuntu 16.04 LTS.

роизводим установку Ubuntu 16.04 LTS на VDS/VPS с виртуализацией KVM

На всякий случай указываю как добавить дополнительный диск виртуальному серверу


virsh attach-disk dns-server --source /dev/sas-storage/lv_dns-2 --target vdb --persistent


где /dev/sas-storage/lv_dns-2 путь к диску или блочномуц устройству, vdb имя диска внутри системы (для виртуальных систем обычно указывается c с приставкой vd вместо sd как у реальных машин)

проверяем в виртуальной машине


fdisk -l | grep vd


Или убираем дополнительный диск командой


virsh detach-disk dns-server vdb


И еще дополнительные команды, которые могут пригодиться в работе:
Просмотр всех серверов


sudo virsh list --all


Просмотр инфо о сервере


sudo virsh dominfo SERVER


Ребут-старт-стоп-выключение сервера


sudo virsh reboot SERVER 
sudo virsh start SERVER 
sudo virsh stop SERVER 
sudo virsh shutdown SERVER 


 Нет комментариев    71   6 мес   kvm   linux   lvm   Ubuntu   Ubuntu 16.04

Настройка ноды с KVM-виртуализацией Ubuntu 16.04 LTS: часть 1

Настройка ноды с KVM-виртуализацией Ubuntu 16.04 LTS: часть 1

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

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

  1. Вносим правку в /etc/sysctl.conf

net.ipv4.ip_forward = 1


  1. Устанавливаем утилиту

apt install bridge-utils


  1. Конфигурируем бридж в файле /etc/network/interfaces
    пример конфигурации

auto br0
iface br0 inet static
        address 10.10.64.100
        netmask 255.255.255.0
        gateway 10.10.64.1
        dns-nameservers 10.10.64.2
        bridge_ports eno4
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0


где eno4 имя сетевого интерфейса куда подключен линк.
После правок производим перезагрузку системы


sudo reboot


  1. Устанавливаем пакеты KVM

sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker


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

sudo kvm-ok


  1. Загружаем образ системы для дальнейшей установки Ubuntu 16.04 LTS

cd /var/lib/libvirt/boot/
sudo wget https://ubuntu.volia.net/ubuntu-releases/16.04.6/ubuntu-16.04.6-server-amd64.iso


Чуть позже будет и часть 2, в которой будет описано подключение блочных устройств и запуск виртуальной машины

 Нет комментариев    55   6 мес   kvm   Ubuntu   Ubuntu 16.04