KVM — различия между версиями
Материал из pNp Wiki
(→Установка виртуальной машины) |
Suser (обсуждение | вклад) |
||
(не показано 10 промежуточных версий 5 участников) | |||
Строка 9: | Строка 9: | ||
==Настройка системы== | ==Настройка системы== | ||
+ | * отключаем установку рекомендуемых пакетов в aptitude | ||
+ | запускаем её > ctrl+t > параметры > предпочтения > снимаем галгу в пункте "автоматически устанавливать рекомендуемые пакеты" | ||
* Установим все нужные пакеты в систему | * Установим все нужные пакеты в систему | ||
− | aptitude install ntp virtinst libvirt-bin kvm | + | aptitude install lvm2 openssh-server openssh-blacklist-extra ntp virtinst libvirt-bin kvm htop iotop hddtemp smartmontools |
+ | * отключим возможность логинится рутом по ssh | ||
+ | nano /etc/ssh/sshd_config | ||
+ | |||
+ | PermitRootLogin no | ||
+ | * создаим группу wheel и разрешим только членам этой группы повышать права до root'а | ||
+ | addgroup -gid 200 wheel | ||
+ | |||
+ | * раскомментируем в файле /etc/pam.d/su | ||
+ | |||
+ | auth required pam_wheel.so | ||
+ | |||
* Настроим мост: | * Настроим мост: | ||
nano /etc/network/interfaces | nano /etc/network/interfaces | ||
Строка 23: | Строка 36: | ||
bridge_maxwait 5 | bridge_maxwait 5 | ||
− | * Создадим раздел для хранения образов установочных дисков | + | * Настроим файрвол |
− | lvcreate --name image --size | + | * Создадим группу томов |
+ | vgcreate virt /dev/md2 | ||
+ | * Создадим раздел для хранения образов установочных дисков. | ||
+ | lvcreate --name image --size 40G virt | ||
fsck.ext4 /dev/vg/image | fsck.ext4 /dev/vg/image | ||
* Пропишем его в fstab | * Пропишем его в fstab | ||
Строка 49: | Строка 65: | ||
==Клонирование виртуальных машин== | ==Клонирование виртуальных машин== | ||
+ | |||
+ | Yup, that'll do it. You have my appecritaion. | ||
+ | |||
+ | ==Описание ключей утилиты virsh== | ||
+ | list просмотр всех запущеных виртуальных машин | ||
+ | list --all просмотр всех вирт машин. | ||
+ | start virt_name запуск машины с именем virt_name | ||
+ | help print help | ||
+ | attach-device attach device from an XML file | ||
+ | attach-disk attach disk device | ||
+ | attach-interface attach network interface | ||
+ | autostart autostart a domain | ||
+ | capabilities capabilities | ||
+ | cd change the current directory | ||
+ | connect (re)connect to hypervisor | ||
+ | console connect to the guest console | ||
+ | cpu-baseline compute baseline CPU | ||
+ | cpu-compare compare host CPU with a CPU described by an XML file | ||
+ | create create a domain from an XML file | ||
+ | start start a (previously defined) inactive domain | ||
+ | destroy destroy a domain | ||
+ | detach-device detach device from an XML file | ||
+ | detach-disk detach disk device | ||
+ | detach-interface detach network interface | ||
+ | define define (but don't start) a domain from an XML file | ||
+ | domid convert a domain name or UUID to domain id | ||
+ | domuuid convert a domain name or id to domain UUID | ||
+ | dominfo domain information | ||
+ | domjobinfo domain job information | ||
+ | domjobabort abort active domain job | ||
+ | domname convert a domain id or UUID to domain name | ||
+ | domstate domain state | ||
+ | domblkstat get device block stats for a domain | ||
+ | domifstat get network interface stats for a domain | ||
+ | dommemstat get memory statistics for a domain | ||
+ | domblkinfo domain block device size information | ||
+ | domxml-from-native Convert native config to domain XML | ||
+ | domxml-to-native Convert domain XML to native config | ||
+ | dumpxml domain information in XML | ||
+ | edit edit XML configuration for a domain | ||
+ | find-storage-pool-sources discover potential storage pool sources | ||
+ | find-storage-pool-sources-as find potential storage pool sources | ||
+ | freecell NUMA free memory | ||
+ | hostname print the hypervisor hostname | ||
+ | list list domains | ||
+ | migrate migrate domain to another host | ||
+ | migrate-setmaxdowntime set maximum tolerable downtime | ||
+ | net-autostart autostart a network | ||
+ | net-create create a network from an XML file | ||
+ | net-define define (but don't start) a network from an XML file | ||
+ | net-destroy destroy a network | ||
+ | net-dumpxml network information in XML | ||
+ | net-edit edit XML configuration for a network | ||
+ | net-list list networks | ||
+ | net-name convert a network UUID to network name | ||
+ | net-start start a (previously defined) inactive network | ||
+ | net-undefine undefine an inactive network | ||
+ | net-uuid convert a network name to network UUID | ||
+ | iface-list list physical host interfaces | ||
+ | iface-name convert an interface MAC address to interface name | ||
+ | iface-mac convert an interface name to interface MAC address | ||
+ | iface-dumpxml interface information in XML | ||
+ | iface-define define (but don't start) a physical host interface from an XML file | ||
+ | iface-undefine undefine a physical host interface (remove it from configuration) | ||
+ | iface-edit edit XML configuration for a physical host interface | ||
+ | iface-start start a physical host interface (enable it / "if-up") | ||
+ | iface-destroy destroy a physical host interface (disable it / "if-down") | ||
+ | managedsave managed save of a domain state | ||
+ | managedsave-remove Remove managed save of a domain | ||
+ | nodeinfo node information | ||
+ | nodedev-list enumerate devices on this host | ||
+ | nodedev-dumpxml node device details in XML | ||
+ | nodedev-dettach dettach node device from its device driver | ||
+ | nodedev-reattach reattach node device to its device driver | ||
+ | nodedev-reset reset node device | ||
+ | nodedev-create create a device defined by an XML file on the node | ||
+ | nodedev-destroy destroy a device on the node | ||
+ | nwfilter-define define or update a network filter from an XML file | ||
+ | nwfilter-undefine undefine a network filter | ||
+ | nwfilter-dumpxml network filter information in XML | ||
+ | nwfilter-list list network filters | ||
+ | nwfilter-edit edit XML configuration for a network filter | ||
+ | pool-autostart autostart a pool | ||
+ | pool-build build a pool | ||
+ | pool-create create a pool from an XML file | ||
+ | pool-create-as create a pool from a set of args | ||
+ | pool-define define (but don't start) a pool from an XML file | ||
+ | pool-define-as define a pool from a set of args | ||
+ | pool-destroy destroy a pool | ||
+ | pool-delete delete a pool | ||
+ | pool-dumpxml pool information in XML | ||
+ | pool-edit edit XML configuration for a storage pool | ||
+ | pool-info storage pool information | ||
+ | pool-list list pools | ||
+ | pool-name convert a pool UUID to pool name | ||
+ | pool-refresh refresh a pool | ||
+ | pool-start start a (previously defined) inactive pool | ||
+ | pool-undefine undefine an inactive pool | ||
+ | pool-uuid convert a pool name to pool UUID | ||
+ | secret-define define or modify a secret from an XML file | ||
+ | secret-dumpxml secret attributes in XML | ||
+ | secret-set-value set a secret value | ||
+ | secret-get-value Output a secret value | ||
+ | secret-undefine undefine a secret | ||
+ | secret-list list secrets | ||
+ | pwd print the current directory | ||
+ | quit quit this interactive terminal | ||
+ | exit quit this interactive terminal | ||
+ | reboot reboot a domain | ||
+ | restore restore a domain from a saved state in a file | ||
+ | resume resume a domain | ||
+ | save save a domain state to a file | ||
+ | schedinfo show/set scheduler parameters | ||
+ | dump dump the core of a domain to a file for analysis | ||
+ | shutdown gracefully shutdown a domain | ||
+ | setmem change memory allocation | ||
+ | setmaxmem change maximum memory limit | ||
+ | setvcpus change number of virtual CPUs | ||
+ | suspend suspend a domain | ||
+ | ttyconsole tty console | ||
+ | undefine undefine an inactive domain | ||
+ | update-device update device from an XML file | ||
+ | uri print the hypervisor canonical URI | ||
+ | vol-create create a vol from an XML file | ||
+ | vol-create-from create a vol, using another volume as input | ||
+ | vol-create-as create a volume from a set of args | ||
+ | vol-clone clone a volume. | ||
+ | vol-delete delete a vol | ||
+ | vol-wipe wipe a vol | ||
+ | vol-dumpxml vol information in XML | ||
+ | vol-info storage vol information | ||
+ | vol-list list vols | ||
+ | vol-pool returns the storage pool for a given volume key or path | ||
+ | vol-path returns the volume path for a given volume name or key | ||
+ | vol-name returns the volume name for a given volume key or path | ||
+ | vol-key returns the volume key for a given volume name or path | ||
+ | vcpuinfo domain vcpu information | ||
+ | vcpupin control domain vcpu affinity | ||
+ | version show version | ||
+ | vncdisplay vnc display | ||
+ | snapshot-create Create a snapshot | ||
+ | snapshot-current Get the current snapshot | ||
+ | snapshot-delete Delete a domain snapshot | ||
+ | snapshot-dumpxml Dump XML for a domain snapshot | ||
+ | snapshot-list List snapshots for a domain | ||
+ | snapshot-revert Revert a domain to a snapshot | ||
+ | |||
+ | [[Категория:Cеверное ПО]] |
Текущая версия на 11:25, 23 мая 2012
Содержание
Установка системы
Устанавливать будем на в качестве хост системы Debian 6
- создадим 3 RAID 10 на двух дисках (почему не зеркало? Так в данном случае на читать будет сразу с двух винтов)
- разделы разобьём следующем образом:
md0 - 20Gb / fs ext4 md1 - 1|2*RAM+1GB swap md3 - всё остальное под LVM
- систему установим базовою.
Настройка системы
- отключаем установку рекомендуемых пакетов в aptitude
запускаем её > ctrl+t > параметры > предпочтения > снимаем галгу в пункте "автоматически устанавливать рекомендуемые пакеты"
- Установим все нужные пакеты в систему
aptitude install lvm2 openssh-server openssh-blacklist-extra ntp virtinst libvirt-bin kvm htop iotop hddtemp smartmontools
- отключим возможность логинится рутом по ssh
nano /etc/ssh/sshd_config
PermitRootLogin no
- создаим группу wheel и разрешим только членам этой группы повышать права до root'а
addgroup -gid 200 wheel
- раскомментируем в файле /etc/pam.d/su
auth required pam_wheel.so
- Настроим мост:
nano /etc/network/interfaces
auto br0 iface br0 inet static address xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx gateway xxx.xxx.xxx.xxx bridge_ports eth0 bridge_stp off bridge_maxwait 5
- Настроим файрвол
- Создадим группу томов
vgcreate virt /dev/md2
- Создадим раздел для хранения образов установочных дисков.
lvcreate --name image --size 40G virt fsck.ext4 /dev/vg/image
- Пропишем его в fstab
Установка виртуальной машины
- Создадим раздел для виртульной машины
lvcreate --name vds1 --size 60G vg
- Создадим виртульную машину
virt-install --name vds1\ --ram 1024\ --vcpus=2\ --cpuset=1,2\ --disk path=/dev/vg/vds1,bus=virtio --cdrom /srv/image/debian-6.0.1a-amd64-CD-1.iso\ --network bridge=br0,model=virtio\ --os-variant=debiansqueeze \ --vnc --vncport=5900 \ --autostart
- Подключимся по VNC и установим ОС.
Бэкап виртуальной машины
Восстановление из бэкапов
Клонирование виртуальных машин
Yup, that'll do it. You have my appecritaion.
Описание ключей утилиты virsh
list просмотр всех запущеных виртуальных машин list --all просмотр всех вирт машин. start virt_name запуск машины с именем virt_name help print help attach-device attach device from an XML file attach-disk attach disk device attach-interface attach network interface autostart autostart a domain capabilities capabilities cd change the current directory connect (re)connect to hypervisor console connect to the guest console cpu-baseline compute baseline CPU cpu-compare compare host CPU with a CPU described by an XML file create create a domain from an XML file start start a (previously defined) inactive domain destroy destroy a domain detach-device detach device from an XML file detach-disk detach disk device detach-interface detach network interface define define (but don't start) a domain from an XML file domid convert a domain name or UUID to domain id domuuid convert a domain name or id to domain UUID dominfo domain information domjobinfo domain job information domjobabort abort active domain job domname convert a domain id or UUID to domain name domstate domain state domblkstat get device block stats for a domain domifstat get network interface stats for a domain dommemstat get memory statistics for a domain domblkinfo domain block device size information domxml-from-native Convert native config to domain XML domxml-to-native Convert domain XML to native config dumpxml domain information in XML edit edit XML configuration for a domain find-storage-pool-sources discover potential storage pool sources find-storage-pool-sources-as find potential storage pool sources freecell NUMA free memory hostname print the hypervisor hostname list list domains migrate migrate domain to another host migrate-setmaxdowntime set maximum tolerable downtime net-autostart autostart a network net-create create a network from an XML file net-define define (but don't start) a network from an XML file net-destroy destroy a network net-dumpxml network information in XML net-edit edit XML configuration for a network net-list list networks net-name convert a network UUID to network name net-start start a (previously defined) inactive network net-undefine undefine an inactive network net-uuid convert a network name to network UUID iface-list list physical host interfaces iface-name convert an interface MAC address to interface name iface-mac convert an interface name to interface MAC address iface-dumpxml interface information in XML iface-define define (but don't start) a physical host interface from an XML file iface-undefine undefine a physical host interface (remove it from configuration) iface-edit edit XML configuration for a physical host interface iface-start start a physical host interface (enable it / "if-up") iface-destroy destroy a physical host interface (disable it / "if-down") managedsave managed save of a domain state managedsave-remove Remove managed save of a domain nodeinfo node information nodedev-list enumerate devices on this host nodedev-dumpxml node device details in XML nodedev-dettach dettach node device from its device driver nodedev-reattach reattach node device to its device driver nodedev-reset reset node device nodedev-create create a device defined by an XML file on the node nodedev-destroy destroy a device on the node nwfilter-define define or update a network filter from an XML file nwfilter-undefine undefine a network filter nwfilter-dumpxml network filter information in XML nwfilter-list list network filters nwfilter-edit edit XML configuration for a network filter pool-autostart autostart a pool pool-build build a pool pool-create create a pool from an XML file pool-create-as create a pool from a set of args pool-define define (but don't start) a pool from an XML file pool-define-as define a pool from a set of args pool-destroy destroy a pool pool-delete delete a pool pool-dumpxml pool information in XML pool-edit edit XML configuration for a storage pool pool-info storage pool information pool-list list pools pool-name convert a pool UUID to pool name pool-refresh refresh a pool pool-start start a (previously defined) inactive pool pool-undefine undefine an inactive pool pool-uuid convert a pool name to pool UUID secret-define define or modify a secret from an XML file secret-dumpxml secret attributes in XML secret-set-value set a secret value secret-get-value Output a secret value secret-undefine undefine a secret secret-list list secrets pwd print the current directory quit quit this interactive terminal exit quit this interactive terminal reboot reboot a domain restore restore a domain from a saved state in a file resume resume a domain save save a domain state to a file schedinfo show/set scheduler parameters dump dump the core of a domain to a file for analysis shutdown gracefully shutdown a domain setmem change memory allocation setmaxmem change maximum memory limit setvcpus change number of virtual CPUs suspend suspend a domain ttyconsole tty console undefine undefine an inactive domain update-device update device from an XML file uri print the hypervisor canonical URI vol-create create a vol from an XML file vol-create-from create a vol, using another volume as input vol-create-as create a volume from a set of args vol-clone clone a volume. vol-delete delete a vol vol-wipe wipe a vol vol-dumpxml vol information in XML vol-info storage vol information vol-list list vols vol-pool returns the storage pool for a given volume key or path vol-path returns the volume path for a given volume name or key vol-name returns the volume name for a given volume key or path vol-key returns the volume key for a given volume name or path vcpuinfo domain vcpu information vcpupin control domain vcpu affinity version show version vncdisplay vnc display snapshot-create Create a snapshot snapshot-current Get the current snapshot snapshot-delete Delete a domain snapshot snapshot-dumpxml Dump XML for a domain snapshot snapshot-list List snapshots for a domain snapshot-revert Revert a domain to a snapshot