kvm | Частин https://chast.in Свободной памяти нет - приходится записывать Mon, 23 Aug 2021 14:32:37 +0000 ru-RU hourly 1 https://wordpress.org/?v=6.2.5 Qemu-KVM на host FreeBSD 13 https://chast.in/qemu-kvm-in-freebsd-13.html https://chast.in/qemu-kvm-in-freebsd-13.html#respond Mon, 23 Aug 2021 14:31:34 +0000 https://chast.in/?p=1709 Использование FreeBSD в качестве хостовой ОСи имеет многочисленные преимущества.. Во первых это мощный и гибкий файервол ipfw. Во-вторых специально созданная для снапшотов файловая система ZFS. В третьих — малая прожорливость и легендарная надежность фряхи существенно повышет аптайм ноды..Во FreeBSD есть виртуализация KVM, а не только jail. И работает вполне бодро, на момент написания доступна только ...

The post Qemu-KVM на host FreeBSD 13 first appeared on Частин.]]>

Использование FreeBSD в качестве хостовой ОСи имеет многочисленные преимущества.. Во первых это мощный и гибкий файервол ipfw. Во-вторых специально созданная для снапшотов файловая система ZFS. В третьих — малая прожорливость и легендарная надежность фряхи существенно повышет аптайм ноды..
Во FreeBSD есть виртуализация KVM, а не только jail. И работает вполне бодро, на момент написания доступна только 5-ая версия. В общем, если нужно быстро поднять виртуалку на Фре, действую так, как написано ниже

Устанавливаем нужное программное обеспечение:

pkg install qemu-devel

Создаем тестовую виртуальную машину:

# создаем диск для виртуальной машины
qemu-img create -f qcow2 hdd100.img 10G
# скачиваем образ ОСи для виртуальной машины
fetch https://download.grml.org/grml64-small_2021.07.iso -O grml.iso
# стартуем машину, устанавливаем через VNC на IP хостовой тачки, порт 5900
qemu-system-x86_64 -machine q35 -m size=4096 -cdrom grml.iso -hda hdd100.img -boot d -net nic,model=e1000,macaddr=00:e0:e1:12:13:fe -vnc :0

На этом уже всё! Виртуальная машина работает! Можно далее настраивать сеть, пробрасывать внутрь виртуалки интернет..

The post Qemu-KVM на host FreeBSD 13 first appeared on Частин.]]>
https://chast.in/qemu-kvm-in-freebsd-13.html/feed 0
Переезд виртуалки c CentOS 6 из OpenVZ в KVM https://chast.in/centos-6-openvz-kvm.html https://chast.in/centos-6-openvz-kvm.html#respond Thu, 11 Feb 2021 21:41:40 +0000 https://chast.in/?p=1642 Потребовалось сделать перенос виртуальной машины c OS CentOS 6 (OpenVZ CT) на ноду с KVM. Ранее переносили виртуалку с Ubuntu 16 — сложности возникли, но справились довольно быстро. А вот с CentOS 6 появились проблемы… Все знают — хорошее быстро заканчивается. В том числе и поддержка ОС CentOS 6 истекла в ноябре 2020. Соответственно, репозитории ...

The post Переезд виртуалки c CentOS 6 из OpenVZ в KVM first appeared on Частин.]]>

Потребовалось сделать перенос виртуальной машины c OS CentOS 6 (OpenVZ CT) на ноду с KVM. Ранее переносили виртуалку с Ubuntu 16 — сложности возникли, но справились довольно быстро. А вот с CentOS 6 появились проблемы…

Все знают — хорошее быстро заканчивается. В том числе и поддержка ОС CentOS 6 истекла в ноябре 2020. Соответственно, репозитории mirror.centos.org переехали на vault.centos.org. Для нас эта информация очень важна, так как нам нужно будет установить ядро для виртуалки.

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

  • перенос файлов виртуальной машины
  • установка ядра гостевой системы
  • установка загрузчика
  • исправление fstab
  • изменение настроек сети

Первый пункт плана проблем не вызывает: создается новая машина на ноде с KVM, на ноде с OpenVZ выключаем виртуалку, затем монтируем ее и переносим файлы:

# На источнике - ноде с OpenVZ
prlctl stop CT1
prlctl mount CT1
# Смотрим, что получилось:
mount | grep vz
/dev/md2 on /vz type ext4 (rw,noatime,lazytime,data=ordered)
/dev/ploop13775p1 on /vz/root/89e81c92-2ca6-4321-9869-6aa1c2fc895d type ext4 (rw,relatime,data=ordered,balloon_ino=12)

Видим путь и ID исходной машины —

ID: 89e81c92-2ca6-4321-9869-6aa1c2fc895d
SOURCE PATH: /vz/root/89e81c92-2ca6-4321-9869-6aa1c2fc895d

Забегая вперед скажу: на созданной в KVM машине грузимся в LiveCD CentOS 6 или другой ОС со старым ядром. Иначе нельзя будет сделать chroot в перенесенную ОС CentOS 6. Будет появляться сообщение:

 segmentation fault  chroot /mnt /bin/bash

В LiveCD создаем раздел, форматируем и монтируем диск:

fdisk /dev/sda
mkfs.ext3 /dev/sda1
mount /dev/sda1 /mnt

Копируем файлы на новую машину одной командой:

rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} IP_OpenVZ:/vz/root/89e81c92-2ca6-4321-9869-6aa1c2fc895d/ /mnt

Первый пункт завершен успешно. Но самое веселое еще впереди. Пункт 2: для установки ядра в гостевую ОС нам потребуется сделать chroot и накатить ядро. Но здесь нас ждет неудача — репозитории не хотят скачиваться — их не существует уже. И curl к тому же валится сс сообщением:

PYCURL ERROR 77 - "Problem with the SSL CA cert (path? access rights?)

Поэтому, если у вас, как и у меня LiveCD CentOS 6, можно накатить ядро так:

# Меняем репозитории base и epel на vault в LiveCD
curl https://www.getpagespeed.com/files/centos6-eol.repo --output /etc/yum.repos.d/CentOS-Base.repo
curl https://www.getpagespeed.com/files/centos6-epel-eol.repo --output /etc/yum.repos.d/epel.repo

# Устанавливаем ядро и заголовки
yum install kernel.x86_64  -c /etc/yum.repos.d/CentOS-Base.repo --installroot=/mnt
yum install kernel-headers.x86_64  -c /etc/yum.repos.d/CentOS-Base.repo --installroot=/mnt

Другой способ установки гостевого ядра, который тоже работает. Можно сделать chroot после монтирования /proc /sys и /dev:

mount /dev/sda1 /mnt
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
chroot /mnt 
# В таком случае все работает прямо на гостевой ОСи без проблем:
yum install kernel.x86_64
yum install kernel-headers.x86_64
yum install dracut

Не забываем про генерацию initramfs:

# У меня в  гостевой ОС установилось ядро 2.6.32-754.35.1
# Поэтому ставим именно его:
dracut -f /boot/initramfs-2.6.32-754.35.1.el6.x86_64.img 2.6.32-754.35.1.el6.x86_64

Переходим к пункту 3. Здесь было много всего сделано, в частности — безуспешные попытки завести grub 0.какой то версии. Поэтому было принято решение его удалить и собрать из сырцов grub 2. Для этого в гостевой ОСи устанавливаем компилятор, удаляем grub и злодействуем:

# Установка компилятора
yum -y install gcc bison flex make
# Качаем исходники отсюда:
# http://ftp.gnu.org/gnu/grub/
wget http://ftp.gnu.org/gnu/grub/grub-2.04.tar.gz
tar xf grub-2.04.tar.gz
cd grub-2.04
# Компилируем и ставим:
./configure
make
make install
# Создаем конфиг grub2 для CentOS
/usr/local/sbin/grub-mkconfig -o /boot/grub/grub.cfg
/usr/local/sbin/grub-install /dev/sda
# Жестоко удаляем  grub
yum -y remove grub

У нас еще пара пунктов:

# Исправляем fstab: vim /etc/fstab

/dev/sda1 /  ext3 errors=remount-ro 0       1

# Исправляем конфиг сети - у нас виртуалки получают IP по dhcp
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
NAME="System eth0"

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

И в заключении: действительно отличная новость! Беспрецедентный тариф на виртуалки — от 90 рублей предлагает компания vps-server.ru. При необходимости поможем с переездом на наши серверы от других провайдеров.

The post Переезд виртуалки c CentOS 6 из OpenVZ в KVM first appeared on Частин.]]>
https://chast.in/centos-6-openvz-kvm.html/feed 0