KVM — различия между версиями
Материал из pNp Wiki
(→Установка системы) |
Suser (обсуждение | вклад) |
||
| (не показано 14 промежуточных версий 5 участников) | |||
| Строка 9: | Строка 9: | ||
==Настройка системы== | ==Настройка системы== | ||
| + | * отключаем установку рекомендуемых пакетов в 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 и установим ОС. | ||
==Бэкап виртуальной машины== | ==Бэкап виртуальной машины== | ||
| Строка 17: | Строка 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