KVM

Материал из pNp Wiki
Перейти к: навигация, поиск

Установка системы

Устанавливать будем на в качестве хост системы 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