Инструменты пользователя

Инструменты сайта


kvm

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

kvm [2018/12/12 02:37] (текущий)
Строка 1: Строка 1:
 +====== Виртуализации при помощи KVM ======
 +
 +{{htmlmetatags>​
 +metatag-description=(Технология виртуализации KVM (Kernel-based Virtual Machine) позволяет использовать немодифицированные образы операционных систем.)
 +}}
 +
 +Homepage: [[http://​www.linux-kvm.org|Kernel Based Virtual Machine]]
 +
 +Для работы KVM необходима поддержка виртуализации вашим процессором. Это означает,​ что требуются расширения процессора Intel-­VT(Virtualization Technology) либо AMD SVM (Secure Virtual Machine). Чтобы убедиться,​ поддерживает ли процессор одно из них, выполните команду:<​code>#​ egrep '​(vmx|svm)'​ /​proc/​cpuinfo</​code>​
 +<note important>​[[RHEL]] исключил из дистрибутива [[XEN]]. RHEL использует KVM.</​note>​
 +
 +KVM позволяет виртуальным машинам использовать немодифицированные образы дисков QEMU, [[VMware]] и других,​ содержащие операционные системы. Каждая виртуальная машина имеет своё собственное виртуальное аппаратное обеспечение:​ сетевые карты, диск, видеокарту и т. д.
 +
 +===== KVM разное =====
 +  * Логи работы виртуальных машин под KVM хранятся здесь: /​var/​log/​libvirt/​qemu
 +  * Конфигурация виртуальных машин хранится в xml файлах в каталоге /​etc/​libvirt/​qemu/<​имя.xml>​
 +====== Использование virsh ======
 +  * [[Virt-manager]] (Virtual Machine Manager) - приложение для управления виртуальными машинами
 +  * Подключение к удаленному хост- серверу:<​file>​
 +# virsh --connect qemu+ssh://​darkfire@xxx.xxx.xxx.xxx/​system
 +WARNING: gnome-keyring::​ couldn'​t connect to: /​tmp/​keyring-otUBG2/​pkcs11:​ Нет такого файла или каталога
 +darkfire@195.26.95.238'​s password: ​
 +Добро пожаловать в virsh — интерактивный терминал виртуализации.
 +
 +Введите ​ «help» для получения справки по командам
 +       ​«quit» для выхода
 +
 +virsh #
 +</​file>​
 +  * Выведем список всех доступных виртуальных машин с помощью virsh:<​file>​
 +$ virsh 'list --all'
 +</​file>​
 +  * Автоматический запуск/​останов виртуальных машин, при включении хостового сервера<​file>​
 +# virsh autostart TestServer
 +Domain TestServer marked as autostarted
 +
 +# virsh autostart --disable TestServer
 +Domain TestServer unmarked as autostarted
 +</​file>​
 +  * [[http://​website-humblec.rhcloud.com/​how-to-removedelete-virbr0/​|How to remove/​delete virbr0?​]]<​file>​
 +ip link
 +virsh net-destroy default
 +</​file>​
 +====== Backup KVM ======
 +  - При сохранении виртуальных машин KVM обязательно нужно сохранить XML файл с настройками. Обычно это файл находится /​etc/​libvirt/​qemu,​ но проще и правильней выполнить команду virsh:<​file>​
 +# virsh dumpxml имя_машины > имя_машины.xml
 +</​file>​
 +  - Останавливаем нужную виртуальную машину<​file>​
 +virsh shutdown имя_машины
 +</​file>​Имена всех машин и их состояния можно вывести так<​file>​
 +virsh list --all
 +</​file>​
 +  - Сжимаем файл имя_машины.img при помощи [[lzop]].
 +  - Запускаем виртуальную машину<​file>​
 +virsh start имя_машины
 +</​file>​
 +  - Копируем файл имя_машины.img.lzo любым удобным образом на сервер бекапов.
 +====== libvirt и iptables ======
 +  * [[https://​www.redhat.com/​archives/​libvir-list/​2010-June/​msg00762.html|IPtables / firewall usage in libvirt]] - правила iptables определены в исходном коде libvirt ​
 +
 +Чтобы расширить правила [[iptables]],​ подгружаемые libvirt, можно создать файл с нужными правилами и прописать путь к этом файлу в rc.local. Файлы запускаемые при помощи rc.local запускаются в последнюю очередь,​ после инициализации всех служб. Так как способ запуска при помощи rc.local считается устаревшим,​ проверьте чтобы этот способ запуска не был отключен в вашем дистрибутиве,​ например при помощи [[sysv-rc-conf]].<​file>​
 +# nano /​etc/​rc.local
 +#!/bin/sh -e
 +
 +/​etc/​network/​iptables_rules
 +exit 0
 +</​file><​file>​
 +# nano /​etc/​network/​iptables_rules
 +
 +#!/bin/sh
 +
 +IPT="/​sbin/​iptables"​
 +IFACE_LOC="​lo"​
 +
 +
 +$IPT -I INPUT 1 -m conntrack --ctstate ESTABLISHED,​RELATED -j ACCEPT
 +$IPT -A OUTPUT -m conntrack --ctstate ESTABLISHED,​RELATED -j ACCEPT
 +
 +$IPT -I INPUT 2 -i $IFACE_LOC -j ACCEPT
 +
 +#log
 +$IPT -A INPUT -m limit --limit 3/m --limit-burst 5  -j ULOG --ulog-prefix "​IN_xxx:​ "
 +</​file>​
 +====== Ссылки ======
 +  * [[wpru>​Kernel-based Virtual Machine]]
 +  * [[http://​rus-linux.net/​nlib.php?​name=/​MyLDP/​vm/​KVM/​kvm_introduction.html|Введение в основы виртуализации с KVM]]
 +  * [[http://​wiki.libvirt.org/​page/​Main_Page#​Networking|Read This First - Introduces the concepts and ideas used in libvirts'​ networking for guests]]
 +  * [[http://​wiki.libvirt.org/​page/​VirtualNetworking|Virtual Networking]]
  
kvm.txt · Последние изменения: 2018/12/12 02:37 (внешнее изменение)