Проверка возможности установки KVM:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
egrep -c '(vmx|svm)' /proc/cpuinfo - проверка процессора egrep '(vmx|svm)' --color /proc/cpuinfo - проверка процессора egrep -q '^flags.*(svm|vmx)' /proc/cpuinfo && echo virtualization extensions available - проверка процессора kvm-ok - проверка процессора egrep -c ' lm ' /proc/cpuinfo - количество потоков uname -m - архитектура установленной системы free -h - количество памяти fdisk -l - вывести список разделов и дисков df -h - показать занятое пространство dmesg | grep -i -e iommu -e dmar cat /proc/cpuinfo | grep svm - проверка процессора dmesg | grep AMD-Vi - проверка процессора lsmod | grep kvm - проверка процессора lsmod | grep vfio - устройства vfio (проброс pci, etc..) dmesg | grep vfio - устройства vfio (проброс pci, etc..) dmesg | grep VFIO - устройства vfio (проброс pci, etc..) dmesg | grep -i vfio - устройства vfio (проброс pci, etc..) lspci -k | grep -i -A 3 vga - показать видео карту |
Файлы:
1 2 3 4 |
/etc/libvirt/ - здесь в основном хранятся конфигурационные файлы /etc/libvirt/qemu.conf - главный конфиг /var/lib/libvirt/ - здесь будут хранится образы жестких дисков, мгновенные снимки системы и многое другое. /var/lib/libvirt/qemu/snapshot/ - резервные копии файлов конфигураций снапшотов |
Установка:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
apt-get install cpu-checker - установить программу для проверки процессора apt-get install qemu-kvm libvirt-bin bridge-utils - установка apt-get install virt-manager - установка virt-manager apt-get install libosinfo-bin - установить информацию об ос nano /etc/network/interfaces - конфиг сети adduser user_name libvirt - добавить user_name в группу libvirtd adduser user_name kvm - добавить user_name в группу kvm sudo adduser `id -un` libvirtd - добавить себя в группу libvirtd groups - группы cat /etc/group - посмотреть составы групп cat /etc/passwd - посмотреть пользователей ls /etc/libvirt/qemu/ - здесь находятся конфиги ВМ virsh --connect qemu:///system version - версия virsh --connect qemu:///system list - virsh -c qemu:///system list - список ВМ virsh list --all - вывести список ВМ (вкл/выкл) virsh pool-list --all - вывести список хранилищ virsh list --all - вывести список всех виртуалок virsh net-list --all - вывести список всех виртуальных сетей virsh sysinfo - все о хосте (cpu,mem,etc..) virsh capabilities - свойства хоста dpkg -L ovmf - список каталогов ovmf (bios и т.д.) |
Настройка сети static:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
nano /etc/network/interfaces ---------------------------------------- auto lo iface lo inet loopback auto eno1 iface eno1 inet manual dns-nameserver 192.168.15.1 dns-nameserver 8.8.8.8 auto br0 iface br0 inet static address 192.168.15.253 broadcast 192.168.15.255 netmask 255.255.255.0 gateway 192.168.15.1 bridge_ports eno1 bridge_stp off ------------------------------------- |
Настройка сети dhcp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
nano /etc/network/interfaces ---------------------------------------- auto lo iface lo inet loopback auto eno1 iface eno1 inet manual dns-nameservers 192.168.15.1 dns-nameservers 8.8.8.8 auto br0 iface br0 inet dhcp bridge_ports eno1 bridge_stp off ------------------------------------- |
Применить настройки сети без перезагрузки:
1 2 3 4 |
/etc/init.d/networking restart - перезагрузка сети (пере читается конфигурация сети) systemctl stop NetworkManager.service - остановить сеть systemctl start NetworkManager.service - запустить (пере читается конфигурация сети) systemctl restart networking - перезагрузка сети (пере читается конфигурация сети) |
Настройка bridge:
1 2 |
brctl show - посмотреть доступные бриджи brctl addif br0 eno1 - добавить сетевую карту eno1 в br0 |
sysctl настройка
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
включаем forward,proxy_arp и отключаем ipv6: sysctl net.ipv4.conf.all.forwarding=1 sysctl net.ipv4.conf.all.proxy_arp=1 sysctl net.ipv6.conf.all.disable_ipv6=1 sysctl net.ipv6.conf.default.disable_ipv6=1 sysctl net.ipv6.conf.lo.disable_ipv6=1 можно улучшить быстродействие соединения bridge (хз и так вроде норм sysctl net.bridge.bridge-nf-call-ip6tables = 0 sysctl net.bridge.bridge-nf-call-iptables = 0 sysctl net.bridge.bridge-nf-call-arptables = 0 nano /etc/sysctl.conf - файл sysctl sysctl -p - применяем изменения без перезагрузки |
Сеть доп:
1 2 3 4 5 6 7 8 9 |
При настройки bridge+forward сеть заработает На хосте буду создаваться интерфейсы vnet. В гостях будет интернет. Команды для виртуальных сетей: virsh net-list --all - вывести список всех виртуальных сетей virsh net-info Network_NAME - подробная информация об ВС Network_NAME virsh net-destroy default - остановить сеть virsh net-start default - включить сеть netstat -nap | grep kvm - определение номер порта VNC для виртуальной машины |
Сеть виртуальная. команды:
1 2 |
virsh net-list --all - список виртуальных сетей virsh net-edit default - редактирование сети по умолчанию |
Отключение сети default:
1 2 3 |
ip link - посмотреть все линки virsh net-destroy default - выключить сеть default virsh net-autostart --disable default - отключение автозагрузки сети default |
Включение сети default:
1 2 |
virsh net-list --all - показать все сети virsh net-autostart default - включение автозагрузки сети default |
Отключаем firewalld
1 2 3 4 |
systemctl stop firewalld systemctl disable firewalld rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service' rm '/etc/systemd/system/basic.target.wants/firewalld.service' |
iptables:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
---------------------------------------------- iptables -L -n -v - показать все правила (посмотреть текущие правила) iptables -n -t nat -L - настройки firewall nat iptables -n -L -v --line-numbers - для просмотра правил с номером строки iptables -L INPUT -n -v - для просмотра INPUT правил iptables -L OUTPUT -n -v --line-numbers - для просмотра OUTPUT правил --------------------------------------------- Чтобы отчистить правила iptables его собственными средствами введите: iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT --------------------------------------------- F: Удаление всех правил (flushing). X: Удаление цепочки t <таблица>: Выбрать таблицу и удалить правила. P: Установить политику по умолчанию (например DROP, REJECT или ACCEPT). --------------------------------------------- |
Задаем нужный ip для гостя:
1 |
Виртуальная сетевая карта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
на хосте: tunctl -b -u username -t debian_guest - создадим виртуальную сетевую карту и поднимем устройство ifconfig debian_guest 0.0.0.0 up - включим сетевушку ip route add 10.10.10.100 dev debian_guest - cсоздадим маршрут на нужное нам устройство с нужного IP-адреса virsh edit VM_name - редактировать настройки ВМ --------------------------------------------- <interface type='ethernet'> <mac address='52:54:00:ef:40:1d'/> <ip address='10.10.10.100'/> <target dev='debian_guest'/> <model type='virtio'/> </interface> --------------------------------------------- Настройки на госте ifconfig eth0 10.10.10.100 netmask 255.255.255.0 - задаем ip route add default gw 10.10.10.10 - задаем маршрут |
vlan:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<network> <name>ovs-net</name> <forward mode='bridge'/> <bridge name='ovsbr0'/> <virtualport type='openvswitch'> <parameters interfaceid='09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f'/> </virtualport> <vlan trunk='yes'> <tag id='42' nativeMode='untagged'/> <tag id='47'/> </vlan> <portgroup name='dontpanic'> <vlan> <tag id='42'/> </vlan> </portgroup> </network> |
console:
1 2 3 4 5 6 7 8 |
Я получил ошибку, когда пытался запустить консоль своей виртуальной машины: $ virsh console alice error: internal error: cannot find character device <null> Эта ошибка возникает потому, что вы не определили устройство консоли в XML-файле виртуальной машины. Добавьте приведенные ниже строки в раздел "device" XML-файла. <console type='pty'> <target port='0'/> </console> |
VNC:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
--------------------------------------------- Проверяем вкл VNC: virsh dumpxml debian8 | grep vnc видим <graphics type='vnc' port='5904' autoport='yes' listen='127.0.0.1'> --------------------------------------------- Так выглядит настройка: <graphics type='vnc' port='5914' autoport='no' listen='0.0.0.0' passwd='some.password.here'> <listen type='address' address='0.0.0.0'/> </graphics> --------------------------------------------- virsh vncdisplay VMName_1 - узнаем порт VNC(для подключения используем внешний VNC клиент) где VMName_1 — имя ВМ, :3 — номер по порядку порта, начиная с 5900, то есть подключаться надо на порт 5903, но в программе UltraVNC сработает и так 10.110.10.15:3 --------------------------------------------- |
Хранилища команды:
1 2 3 4 5 6 7 8 9 10 11 12 |
virsh pool-list - вывести список хранилищ mkdir -p /mnt/temp1/datastore1 - создать каталог /mnt/temp1/datastore1 (параметр -p создаст каталог temp1 если его нету) virsh pool-define-as Имя_пула тип - - - - "/путь" - создать пул хранилища Имя_пула virsh pool-define-as storage dir - - - - "/mnt/temp1/datastore1" - создать пул хранилища storage virsh pool-build Имя_хранилища - собираем хранилище Имя_хранилища virsh pool-build storage - собираем хранилище storage virsh pool-start storage - включаем хранилище storage virsh pool-autostart storage - включаем авто включение хранилище storage virsh pool-info storage - информация о хранилище (емкость и свободное место) virsh pool-destroy storage - отключить хранилище с именем storage virsh pool-delete storage - удалить хранилище virsh pool-undefine storage - удалить определение(настройки) хранилища |
Создание хранилища:
1 2 3 4 5 6 7 8 |
0) virsh pool-define-as datastore1 dir - - - - "/mnt/datastore1" - обозначаем хранилище datastore1 1) virsh pool-build datastore1 - собираем хранилище datastore1 2) virsh pool-start datastore1 - запускаем хранилище datastore1 3) virsh pool-autostart datastore1 - включаем авто загрузку хранилища datastore1 !!! Иногда короткие команды не работают !!! пример создание пула с именем vagrant, тип директория, точка монтирования (/kvm/500gb/vagrant/) virsh pool-define-as --name vagrant --type dir --target /kvm/500gb/vagrant/ |
Создание хранилища(:
1 2 3 4 5 6 7 |
0) virsh - входим в virsh 1) pool-create-as iso1 dir - - - - "/mnt/datastore2/iso1/" - создаем настройки для хранилища (XML-конфигурация пула) 2) pool-refresh iso1 - собираем хранилище ошибка: Не удалось собрать пул iso1 ошибка: Запрошена недопустимая операция: пул «iso1» уже активен 3) pool-refresh iso1 - перечитываем конфигурацию для хранилища iso1 4) virsh pool-autostart iso1 - включаем авто включение хранилища iso1 |
Отключение хранилища:
1 2 3 4 |
0) virsh pool-stop datastore1 - остановка хранилища 1) virsh pool-autostart --disable datastore1 - отключаем авто включение хранилища 2) virsh pool-undefine datastore - удалить определение(настройки) хранилища (убирается из автозагрузки) !!! файлы должны остаться |
Установочные файлы:
1 2 3 4 5 6 |
wget https://mirrors.kernel.org/centos/7.2.1511/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso - CentOS 7.x wget ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/10.3/FreeBSD-10.3-RELEASE-amd64-disc1.iso - FreeBSD 10 wget ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/11.0/FreeBSD-11.0-RELEASE-amd64-disc1.iso - FreeBSD 11 wget http://mirror.esc7.net/pub/OpenBSD/5.9/amd64/install59.iso - OPENBSD 5.9 wget https://mirrors.kernel.org/debian-cd/current/amd64/iso-dvd/debian-8.5.0-amd64-DVD-1.iso - DEBIAN 8.X wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.1.0-amd64-netinst.iso - DEBIAN 9.x |
Подключаем диск гостю:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
!!! рекомендуется диск подключать по его UUID !!! использую путь /dev/disk/by-id/UUID_DISK fdisk -l - показать все диски и разметку lshw -class disk -class storage - показать все устройства хранения blkid - программа показывает UUID дисков и разделов ls -l /dev/disk/by-id/ - показывает UUID дисков и разделов ls -l /dev/disk/by-id/ |grep sdb - показывает UUID диска/разделов sdb Физический диск virtio: --------------------------------------------- <disk type='block' device='disk'> - подключаем блочное устройство <driver name='qemu' type='raw' cache='none'/> - драйвер,тип данных, кеш <source dev='/dev/sdc'/> - источник (наш диск) <target dev='vdb' bus='virtio'/> - "буква" диска и шина <address type='pci' domain='0x0000' bus='0x02' slot='0x08' function='0x0'/> - контролер </disk> --------------------------------------------- Физический диск virtio: --------------------------------------------- <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source dev='/dev/disk/by-id/ata-PLEXTOR_PX-128M6S_P02448110395'/> <target dev='sda' bus='sata'/> <boot order='2'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> --------------------------------------------- Физический диск virtio: --------------------------------------------- <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source dev='/dev/disk/by-id/ata-Hitachi_HDS722020ALA330_JK11A8B9J8D3BF'/> <target dev='vdb' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x08' function='0x0'/> </disk> --------------------------------------------- Виртуальный диск virtio: --------------------------------------------- <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/mnt/datastore2/backup/mywin-backup1.qcow2'/> <target dev='vdc' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x0a' function='0x0'/> </disk> контроллер virtio: --------------------------------------------- --------------------------------------------- диск sata: --------------------------------------------- --------------------------------------------- контролер sata: --------------------------------------------- <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> --------------------------------------------- |
Управление VM:
1 2 3 4 5 6 7 8 9 10 |
osinfo-query os - список поддерживаемых ос virsh list --all - показать все доступные ВМ virsh start VM_name - запустить ВМ virsh reboot VM_name - перезагрузка VM virsh shutdown VM_NAME - выключить ВМ (нажать кнопку выкл) virsh destroy VM_name - выключить насильно ВМ (как вытащить вилку из розетки) virsh undefine VM_name - удалить ВМ virsh autostart VM_name - включить автозагрузку для ВМ virsh autostart --disable VM_name - отключить автозагрузку ВМ virsh edit VM_name - отредактировать настройки ВМ |
Клонирование ВМ:
1 2 |
virt-clone --help - клонирует существующую виртуалку и изменяет host-sensitive данные, например, mac address virt-clone -o VM_name -n vm_name_clone --file /mnt/tmp/vm_name_clone.img |
Изменение диска:
1 2 3 |
qemu-img resize /mnt/datastore/name_disk.img -2G - уменьшить размер диска qemu-img resize /mnt/datastore/name_disk.img +2G - увеличить размер диска qemu-img info /mnt/datastore/name_disk.img - информация о диске |
Еще команды для диска:
1 2 3 |
qemu-img create -f qcow2 /home/dev/images/alice.img 5G - создание диска qcow2 qemu-img create -o preallocation=metadata -f qcow2 name_disk.qcow2 20G - создание диска qcow2 kvm-img convert -O qcow2 zimbra-000001.vmdk zimbra.qcow2 - конвертация |
Команды изменение привода ( CD-ROM DVD ISO):
1 2 3 4 |
change-media guest01 vdd --eject - извлечение образа change-media guest01 vdd /pool/disc.iso - вставка нового образа: Общий формат команды: change-media <domain> <path> [<source>] [--eject] [--insert] [--update] [--current] [--live] [--config] [--force] |
Снапшоты:
1 2 3 4 |
snapshot-create-as VM_name - создать снимок для VM_name virsh snapshot-list VM_name - просмотреть снимки virsh snapshot-revert VM_name 1360593244 - восстановить из снимка virsh snapshot-delete VM_name 1360593244 - удалить снимок |
Время хоста:
1 2 3 4 5 6 7 8 |
!!!! аппаратные часы идут по UTC !!! nano /etc/syscomfig/clock - воспринимает только одно значение UTC - это UTC=no или UTC=false, а его наличие UTC=yes или UTC=true или как таковое отсутствие (это по дефолту) подразумевает что аппаратные часы выставлены как положено (в UTC) hwclock -w --localtime - установить время dpkg-reconfigure tzdata - изменить временную зону dpkg-reconfigure locales - настроить локали (язык) dpkg-reconfigure console-data - настройки раскладки клавиатуры |
Время гостя:
1 2 3 4 5 6 7 8 9 10 11 12 |
virsh list -all - список ВМ virsh dumpxml instance-xxxx | grep clock virsh edit VM_name - редактирование файла конфигурации virsh domtime $name_vm --now - синхронизировать время гостя с хоста ---------------------------------------- <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='no'/> <timer name='hypervclock' present='yes'/> </clock> ---------------------------------------- |
NTP — сервер времени:
1 2 |
nano /etc/default/ntp nano /etc/default/ntpdate |
Миграция ВМ:
1 2 |
virsh migrate --live vm_NAME qemu+ssh://host2.com/system - миграция virsh qemu+ssh://host2.com/system list - проверка результата |
Backup VM с остановкой:
1 2 3 4 5 6 7 8 |
0) virsh list --all - узнаем имена всех машин 1) virsh dumpxml имя_машины > имя_машины.xml - сохраняем конфигурацию VM 2) virsh shutdown имя_машины - останавливаем нужную виртуальную машину 3) Сжимаем файл имя_машины.img при помощи Lzop. lzop -c -1 4) Запускаем виртуальную машину virsh start имя_машины 5) Копируем файл имя_машины.img.lzo любым удобным образом на сервер бекапов. |
Распаковка Lzo:
1 2 |
lzop -dc disk1.lzo > /new/path/disk1.img lzop -dc disk1.lzo > /dev/vg_name/vm_disk1 |
Агент QEMU установка (Tools) \ qemu guest agent:
1 2 3 4 5 6 7 8 9 10 11 12 |
------------------------------------------- Установка на госте: # в Debian - apt-get install qemu-guest-agent # в CentOS - yum install qemu-guest-agent # В Windows - с диска virtio-win установить пакет qemu-ga из папки guest-agent ------------------------------------------- Установка на хосте для гостя: <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/f16x86_64.agent'/> <target type='virtio' name='org.qemu.guest_agent.1'/> </channel> ------------------------------------------- |
Установка drivers windows:
1 2 |
0) Подключаем диск с драйверами 1) В диспетчере устройств -> устройство -> обновить драйвер -> папка с драйверами |
Установка Balloon
1 2 3 4 5 6 7 8 9 |
0) Копируем balloon из virtio.iso в "c:/Program files/Balloon" 1) Запускаем CMD от Администратора 2) Создаем каталог Balloon cd "c:\Program Files\" mkdir Balloon 3) Переходим в каталог c:\Program Files\Balloon cd "c:\Program Files\Balloon" 4) Ставим BLNSVR.exe BLNSVR.exe -i |
Backup VM без остановки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
В клиенте устанавливаем Агент QEMU! ------------------------------------------- Информация: virsh domblklist vm-name - узнаем имена дисков виртуальной машины virsh list --all - вывести список всех виртуалок vm-name - имя виртуальной машины backup-snapshot - название снэпшота, может быть любым vda -имя диска, для которого указываем адрес снепшота /snapshot/vm-name-backup.qcow2 - путь и имя файла для снепшота ------------------------------------------- На сервере: 0) virsh snapshot-create-as --domain vm-name backup-snapshot -diskspec vda,file=/snapshot/vm-name-backup.qcow2 --disk-only --atomic --quiesce --no-metadata - выполняем снимок виртуалки 1) pigz -c /virt/vm-name.qcow2 > /backup-vm/vm-name.qcow2.gz - архивируем основной файл виртуальной машины 2) virsh blockcommit vm-name vda --active --verbose --pivot - выполняем слияние снапшота + диск 3) rm /snapshot/vm-name-backup.qcow2 - удаляем снапшот 4) virsh dumpxml vm-name > /backup-vm/vm-name.xml - бэкапим настройки виртуалки |
Скрипт бэкапа:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#!/bin/bash # Дата год-месяц-день data=`date +%Y-%m-%d` # Папка для бэкапов backup_dir=/backup-vm # Список работающих VM vm_list=`virsh list | grep running | awk '{print $2}'` # Список VM, заданных вручную, через пробел #vm_list=(vm-1 vm-2) # Лог файл logfile="/var/log/kvmbackup.log" # Использовать это условие, если список VM задается вручную #for activevm in "${vm_list[@]}"; # Использовать это условие, если список работающих VM берется автоматически for activevm in $vm_list do mkdir -p $backup_dir/$activevm # Записываем информацию в лог с секундами echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup $activevm" >> $logfile # Бэкапим конфигурацию virsh dumpxml $activevm > $backup_dir/$activevm/$activevm-$data.xml echo "`date +"%Y-%m-%d_%H-%M-%S"` Create snapshots $activevm" >> $logfile # Список дисков VM disk_list=`virsh domblklist $activevm | grep vd | awk '{print $1}'` # Адрес дисков VM disk_path=`virsh domblklist $activevm | grep vd | awk '{print $2}'` # Делаем снепшот диcков virsh snapshot-create-as --domain $activevm snapshot --disk-only --atomic --quiesce --no-metadata sleep 2 for path in $disk_path do echo "`date +"%Y-%m-%d_%H-%M-%S"` Create backup $activevm $path" >> $logfile # Вычленяем имя файла из пути filename=`basename $path` # Бэкапим диск pigz -c $path > $backup_dir/$activevm/$filename.gz sleep 2 done for disk in $disk_list do # Определяем путь до снепшота snap_path=`virsh domblklist $activevm | grep $disk | awk '{print $2}'` echo "`date +"%Y-%m-%d_%H-%M-%S"` Commit snapshot $activevm $snap_path" >> $logfile # Объединяем снепшот virsh blockcommit $activevm $disk --active --verbose --pivot sleep 2 echo "`date +"%Y-%m-%d_%H-%M-%S"` Delete snapshot $activevm $snap_path" >> $logfile # Удаляем снепшот rm $snap_path done echo "`date +"%Y-%m-%d_%H-%M-%S"` End backup $activevm" >> $logfile done |
Очистка папки с бэкапами:
1 2 |
Данная команда удалит все файлы старше 90 дней: /usr/bin/find /backup-vm/*/ -type f -mtime +90 -exec rm -rf {} \; |
Установка и настройка ВМ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
!!! Перед выполнением этих команд убедитесь, что вы создали образ диска. ------------------------------------------- virt-install \ --name debian8 \ --ram 1024 \ --disk path=./debian8.qcow2,size=8 \ --vcpus 1 \ --os-type linux \ --os-variant generic \ --network bridge=virbr0 \ --graphics none \ --console pty,target_type=serial \ --location 'http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/' \ --extra-args 'console=ttyS0,115200n8 serial ------------------------------------------- virt-install \ --name centos7 \ --ram 1024 \ --disk path=./centos7.qcow2,size=8 \ --vcpus 1 \ --os-type linux \ --os-variant centos7 \ --network bridge=virbr0 \ --graphics none \ --console pty,target_type=serial \ --location 'http://mirror.i3d.net/pub/centos/7/os/x86_64/' \ --extra-args 'console=ttyS0,115200n8 serial' ------------------------------------------- virt-install \ --name ubuntu1404 \ --ram 1024 \ --disk path=./ubuntu1404.qcow2,size=8 \ --vcpus 1 \ --os-type linux \ --os-variant generic \ --network bridge=virbr0 \ --graphics none \ --console pty,target_type=serial \ --location 'http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/' \ --extra-args 'console=ttyS0,115200n8 serial' ------------------------------------------- wget http://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.1/FreeBSD-10.1-RELEASE-amd64-dvd1.iso virt-install \ --name freebsd10 \ --ram 1024 \ --disk path=./freebsd10.qcow2,size=8 \ --vcpus 1 \ --os-type generic \ --os-variant generic \ --network bridge=virbr0 \ --graphics vnc,port=5999 \ --console pty,target_type=serial \ --cdrom ./FreeBSD-10.1-RELEASE-amd64-dvd1.iso \ ------------------------------------------- |
Источники:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
https://fedoraproject.org/wiki/Windows_Virtio_Drivers - драйверы для windows https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso - драйверы для windows iso http://goodigy.ru/kvm_na_ubuntu_server_14.04 http://goodigy.ru/ustanovka_mashin_virt-install https://help.ubuntu.com/community/KVM/Networking http://www.linux-kvm.org/page/Main_Page http://xgu.ru/wiki/Linux_Bridge https://habrahabr.ru/post/168791/ https://linux.die.net/man/1/virt-install https://khashtamov.com/ru/kvm-setup-server/ https://davidyat.es/2016/09/08/gpu-passthrough/ https://ycnrg.org/vga-passthrough-with-ovmf-vfio/ http://libvirt.org/formatdomain.html#elementsTime https://www.cyberciti.biz/faq/installing-kvm-on-ubuntu-16-04-lts-server/ https://serveradmin.ru/kvm-backup/ http://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Deployment_and_Administration_Guide/chap-QEMU_Guest_Agent.html http://rus-linux.net/MyLDP/vm/kvm-v-debian.html |