Centos 7.2 KVM 配置
来源:互联网 发布:海湾设备现场编程 编辑:程序博客网 时间:2024/06/05 07:53
z
[root@dlp ~]# lsmod | grep kvm
[2]Configure Bridge networking for KVM virtual machine.
Replace the interface name "eno16777736" for your own environment's one.
[root@dlp ~]# nmcli c add type bridge autoconnect yes con-name br0 ifname br0
Connection 'br0' (0f4b7bc8-8c7a-461a-bff1-d516b941a6ec) successfully added.
[root@dlp ~]#nmcli c modify br0 ipv4.addresses 10.0.0.30/24 ipv4.method manual
[root@dlp ~]#nmcli c modify br0 ipv4.gateway 10.0.0.1
[root@dlp ~]#nmcli c modify br0 ipv4.dns 10.0.0.1
[root@dlp ~]#nmcli c delete eno16777736
[root@dlp ~]#nmcli c add type bridge-slave autoconnect yes con-name eno16777736 ifname eno16777736 master br0
[root@dlp ~]#reboot[root@dlp ~]#ip addr
[root@dlp ~]# virt-install \
Move to HostOS to GuestOS with a command 'virsh console (name of virtual machine)'.
Connected to domain www
[4]Because after installing GuestOS from network, it is minimum settings,so it's useful to save it as a template in order to create new virtual machines later.[root@dlp ~]# virt-clone --original centos7 --name template --file /var/kvm/images/template.img
-rwxr-xr-x 1 root root 32212254720 Jul 11 23:34 /var/kvm/images/template.img
[root@dlp ~]# ll /etc/libvirt/qemu/template.xml
-rw------- 1 root root 1843 Jul 11 23:32 /etc/libvirt/qemu/template.xml[5]
[root@dlp ~]# virsh pool-define /etc/libvirt/storage/disk01.xml
[root@dlp ~]# virsh pool-start disk01
[root@dlp ~]# virsh pool-autostart disk01
[root@dlp ~]# virsh pool-list
[root@dlp ~]# virsh pool-info disk01
Domain centos7 started
Connected to domain centos7[2]Stop Virtual Machine
Domain centos7 destroyed[3]Set auto-start for Virtual MachinesDomain centos7 unmarked as autostarted[4]List all Virtual Machines[root@dlp ~]# virsh list
Move to GuestOS to HostOS with Ctrl + ] key.
Move to HostOS to GuestOS with a command 'virsh console (name of virtual machine)'.[root@dlp ~]# virsh console centos7
Last login: Sat Jul 12 20:51:10 2014
[root@localhost ~]# # Ctrl + ] key
[root@dlp ~]# # just switched on Host
[6]For Other options below, there are many options, please try to execute them.
[root@dlp ~]# ll /media
[root@kvm02 ~]# virsh list
[root@kvm02 ~]# virsh migrate --live centos7 qemu+ssh://10.0.0.21/system
root@10.0.0.21's password:[root@kvm02 ~]# virsh list
Domain centos7 started[3]
[root@dlp ~]# firewall-cmd --reload
⇒ http://www.spice-space.org/download.html
After installing and starting "Virt-Viewer", following screen is shown. Then, input "spice://server name(IP address:Port" in the URL field and click "Connect" button.[7]Input [server name or IP address:set port] for "URL" field and then click "Connect" button.[8]Input the password you set and click "OK" button.[9]After successing authentication, it's possible to connect like follows.
[root@dlp ~]# modprobe -r kvm_intel
[root@dlp ~]# modprobe kvm_intel
[root@dlp ~]# cat /sys/module/kvm_intel/parameters/nestedY[2]Edit the configuration of a virtual machine you'd like to set nested like follows.
It's OK to configure nested KVM and you can create virtual machines on the virtual machine nested.
It's Virtualization with KVM ( Kernel-based Virtual Machine ) + QEMU.
This requires that the CPU on your computer which has a function Intel VT or AMD-V.
[1]Install KVM.This requires that the CPU on your computer which has a function Intel VT or AMD-V.
[root@dlp ~]# yum -y install qemu-kvm libvirt virt-install bridge-utils
# make sure modules are loaded
[root@dlp ~]# lsmod | grep kvm
kvm_intel 138567 0kvm 441119 1 kvm_intel
[root@dlp ~]# lsmod | grep kvm
Replace the interface name "eno16777736" for your own environment's one.
# add bridge "br0"
[root@dlp ~]# nmcli c add type bridge autoconnect yes con-name br0 ifname br0
Connection 'br0' (0f4b7bc8-8c7a-461a-bff1-d516b941a6ec) successfully added.
# set IP for br0
[root@dlp ~]#nmcli c modify br0 ipv4.addresses 10.0.0.30/24 ipv4.method manual
# set Gateway for br0
[root@dlp ~]#nmcli c modify br0 ipv4.gateway 10.0.0.1
# set DNS for "br0"
[root@dlp ~]#nmcli c modify br0 ipv4.dns 10.0.0.1
# remove the current setting
[root@dlp ~]#nmcli c delete eno16777736
# add an interface again as a member of br0
[root@dlp ~]#nmcli c add type bridge-slave autoconnect yes con-name eno16777736 ifname eno16777736 master br0
# restart
[root@dlp ~]#reboot
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000 link/ether 00:0c:29:9f:9b:d3 brd ff:ff:ff:ff:ff:ff3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 22:f8:64:25:97:44 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 00:0c:29:9f:9b:d3 brd ff:ff:ff:ff:ff:ff inet 10.0.0.30/24 brd 10.0.0.255 scope global br0 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe9f:9bd3/64 scope link valid_lft forever preferred_lft forever
Install GuestOS and create a Virtual Machine. This example shows to install CentOS 7.
[1]Install GuestOS on text mode via network, it's OK on Console or remote connection with Putty and so on.Furthermore, Virtual Machine's images are placed at /var/lib/libvirt/images by default as a Storage Pool,but this example shows to create and use a new Storage Pool.[root@dlp ~]# mkdir -p /var/kvm/images # create a new Storage Pool--name centos7 \
Starting install...--ram 4096 \
--disk path=/var/kvm/images/centos7.img,size=30 \
--vcpus 2 \
--os-type linux \
--os-variant rhel7 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location 'http://ftp.iij.ad.jp/pub/linux/centos/7/os/x86_64/' \
--extra-args 'console=ttyS0,115200n8 serial'
--disk path=/var/kvm/images/centos7.img,size=30 \
--vcpus 2 \
--os-type linux \
--os-variant rhel7 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location 'http://ftp.iij.ad.jp/pub/linux/centos/7/os/x86_64/' \
--extra-args 'console=ttyS0,115200n8 serial'
# start installation
The example of options above means like follows. There are many options for others, make sure with "man virt-install".
--namespecify the name of Virtual Machine
--ramspecify the amount of memories of Virtual Machine
--disk path=xxx ,size=xxx'path=' ⇒ specify the location of disks of Virtual Machine
'size=' ⇒ specify the amount of disks of Virtual Machine
--vcpus'size=' ⇒ specify the amount of disks of Virtual Machine
specify the virtual CPUs
--os-typespecify the type of GuestOS
--os-variantspecify the kind of GuestOS - possible to confirm the list with the command below
# osinfo-query os
--network# osinfo-query os
specify network types of Virtual Machine
--graphicsspecify the kind of graphics. if set 'none', it means nographics.
--consolespecify the console type
--locationspecify the location of installation where from
--extra-argsspecify parameters that is set in kernel
[2]Install on text mode, it's the same with common procedure of installation.After finishing installation, reboot first and then login prompt is shown like follwos.CentOS Linux 7 (Core)Kernel 3.10.0-123.el7.x86_64 on an x86_64localhost login:[3]Move to GuestOS to HostOS with Ctrl + ] key.
Move to HostOS to GuestOS with a command 'virsh console (name of virtual machine)'.
[root@localhost ~]# # push Ctrl + ]
[root@dlp ~]# # Host's console
[root@dlp ~]# virsh console centos7[root@dlp ~]# # Host's console
# move to Guest
Connected to domain www
Escape character is ^] # Enter key
[root@localhost ~]# # Guest's consoleAllocating 'template.img'
| 20 GB 01:44
Clone 'template' created successfully.
[root@dlp ~]# ll /var/kvm/images/template.img# disk image
-rwxr-xr-x 1 root root 32212254720 Jul 11 23:34 /var/kvm/images/template.img
[root@dlp ~]# ll /etc/libvirt/qemu/template.xml
# xml file
-rw------- 1 root root 1843 Jul 11 23:32 /etc/libvirt/qemu/template.xml[5]
Set basic initial configuration to GuestOS first before using it.
[6]Define a new Storage Pool.[root@dlp ~]# mkdir /etc/libvirt/storage[root@dlp ~]# vi /etc/libvirt/storage/disk01.xml
# create new
<pool type='dir'>
<name>disk01</name>
<capacity>0</capacity>
<allocation>0</allocation>
<available>0</available>
<source>
</source>
<target>
<path>/var/kvm/images</path>
<permissions>
<mode>0700</mode>
<owner>-1</owner>
<group>-1</group>
</permissions>
</target>
</pool>
# any name you like
<name>disk01</name>
<capacity>0</capacity>
<allocation>0</allocation>
<available>0</available>
<source>
</source>
<target>
# specify a pool directory
<path>/var/kvm/images</path>
<permissions>
<mode>0700</mode>
<owner>-1</owner>
<group>-1</group>
</permissions>
</target>
</pool>
# define the pool
[root@dlp ~]# virsh pool-define /etc/libvirt/storage/disk01.xml
Pool disk01 defined from /etc/libvirt/storage/disk01.xml
# start the pool
[root@dlp ~]# virsh pool-start disk01
Pool disk01 started
# set auto-start
[root@dlp ~]# virsh pool-autostart disk01
Pool disk01 marked as autostarted
# confirm to show the pool list
[root@dlp ~]# virsh pool-list
Name State Autostart-----------------------------------------disk01 active yes
# confirm to show the details
[root@dlp ~]# virsh pool-info disk01
Name: disk01UUID: 2de62477-7132-4512-b5d8-003e28da105cState: runningPersistent: yesAutostart: yesCapacity: 197.17 GiBAllocation: 2.90 GiBAvailable: 194.27 GiB
If you installed Desktop Environment,it's possible to create a Virtual machine on GUI.This example shows to install Windows Server 2012 R2 on GUI.
[1]Install virt-manager first.[root@dlp ~]#yum -y install virt-manager
[2]Start Desktop and run 'Virtual Machine Manager'.[3]Click 'New' button (it's just the PC-icon on upper-left) and open a wizard to create a new Virtual Machine.[4]Specify the name of virtual machine and installation source. This example selects local media.[5]Select Installation media or ISO image, and specify OS type and version. Windows Server 2012 in not listed, but it's possible to install it to select Windows 2008.[6]Specify the amount of memories and number of virtual CPUs.[7]Specify the amount of disks.[8]Open 'Advanced options' and make sure the settings for networking or architecture are correct.[9]Windows Server 2012 R2 Installation starts.[10]Installation finished and Windows Server 2012 R2 is running.
Basic Operarions with virsh command
[1]Start Virtual Machine[root@dlp ~]# virsh start centos7Domain centos7 started
[root@dlp ~]# virsh start centos7 --console# Start Virtual Machine 'centos7'
# start and connect to console of 'centos7'
Connected to domain centos7[2]Stop Virtual Machine
[root@dlp ~]# virsh shutdown centos7
Domain centos7 is being shutdown
[root@dlp ~]# virsh destroy centos7# Stop Virtual Machine 'centos7'
Domain centos7 is being shutdown
# Stop fourcely Virtual Machine 'centos7'
Domain centos7 destroyed[3]Set auto-start for Virtual Machines
[root@dlp ~]# virsh autostart centos7Domain centos7 marked as autostarted
[root@dlp ~]# virsh autostart --disable centos7# Enable auto-start for 'centos7'
# Disable auto-start for 'centos7'
# List all active Virtual Machines
Id Name State---------------------------------------- 2 centos7 running[root@dlp ~]# virsh list --all
# List all Virtual Machines included inactives
Id Name State---------------------------------------- - centos7 shut off - template shut off - Win2k12 shut off[5]Switch console
Move to GuestOS to HostOS with Ctrl + ] key.
Move to HostOS to GuestOS with a command 'virsh console (name of virtual machine)'.[root@dlp ~]# virsh console centos7
# connect to 'centos7'
Connected to domain centos7
Escape character is ^] # Enter
Escape character is ^] # Enter
CentOS Linux 7 (Core)
Kernel 3.10.0-123.el7.x86_64 on an x86_64
Kernel 3.10.0-123.el7.x86_64 on an x86_64
localhost login:
Password:# just switched on Guest
Last login: Sat Jul 12 20:51:10 2014
[root@localhost ~]# # Ctrl + ] key
[root@dlp ~]# # just switched on Host
[root@dlp ~]# virsh --help
virsh [options]... [<command_string>]virsh [options]... <command> [args...] options: -c | --connect=URI hypervisor connection URI -r | --readonly connect readonly -d | --debug=NUM debug level [0-4] -h | --help this help -q | --quiet quiet mode -t | --timing print timing information -l | --log=FILE output logging to file -v short version -V long version --version[=TYPE] version, TYPE is short or long (default short) -e | --escape <char> set escape sequence for console commands (non interactive mode): Domain Management (help keyword 'domain') attach-device attach device from an XML file attach-disk attach disk device attach-interface attach network interface autostart autostart a domain blkdeviotune Set or query a block device I/O tuning parameters. blkiotune Get or set blkio parameters blockcommit Start a block commit operation. blockcopy Start a block copy operation. blockjob Manage active block operations blockpull Populate a disk from its backing image. blockresize Resize block device of domain. change-media Change media of CD or floppy drive console connect to the guest console cpu-baseline compute baseline CPU cpu-compare compare host CPU with a CPU described by an XML file cpu-stats show domain cpu statistics create create a domain from an XML file define define (but don't start) a domain from an XML file desc show or set domain's description or title destroy destroy (stop) a domain detach-device detach device from an XML file detach-disk detach disk device detach-interface detach network interface domdisplay domain display connection URI domfstrim Invoke fstrim on domain's mounted filesystems. domhostname print the domain's hostname domid convert a domain name or UUID to domain id domif-setlink set link state of a virtual interface domiftune get/set parameters of a virtual interface domjobabort abort active domain job domjobinfo domain job information domname convert a domain id or UUID to domain name dompmsuspend suspend a domain gracefully using power management functions dompmwakeup wakeup a domain from pmsuspended state domuuid convert a domain name or id to domain UUID domxml-from-native Convert native config to domain XML domxml-to-native Convert domain XML to native config dump dump the core of a domain to a file for analysis dumpxml domain information in XML edit edit XML configuration for a domain inject-nmi Inject NMI to the guest send-key Send keycodes to the guest send-process-signal Send signals to processes lxc-enter-namespace LXC Guest Enter Namespace managedsave managed save of a domain state managedsave-remove Remove managed save of a domain maxvcpus connection vcpu maximum memtune Get or set memory parameters migrate migrate domain to another host migrate-setmaxdowntime set maximum tolerable downtime migrate-compcache get/set compression cache size migrate-setspeed Set the maximum migration bandwidth migrate-getspeed Get the maximum migration bandwidth numatune Get or set numa parameters qemu-attach QEMU Attach qemu-monitor-command QEMU Monitor Command qemu-agent-command QEMU Guest Agent Command reboot reboot a domain reset reset 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 save-image-define redefine the XML for a domain's saved state file save-image-dumpxml saved state domain information in XML save-image-edit edit XML for a domain's saved state file schedinfo show/set scheduler parameters screenshot take a screenshot of a current domain console and store it into a file setmaxmem change maximum memory limit setmem change memory allocation setvcpus change number of virtual CPUs shutdown gracefully shutdown a domain start start a (previously defined) inactive domain suspend suspend a domain ttyconsole tty console undefine undefine a domain update-device update device from an XML file vcpucount domain vcpu counts vcpuinfo detailed domain vcpu information vcpupin control or query domain vcpu affinity emulatorpin control or query domain emulator affinity vncdisplay vnc display Domain Monitoring (help keyword 'monitor') domblkerror Show errors on block devices domblkinfo domain block device size information domblklist list all domain blocks domblkstat get device block stats for a domain domcontrol domain control interface state domif-getlink get link state of a virtual interface domiflist list all domain virtual interfaces domifstat get network interface stats for a domain dominfo domain information dommemstat get memory statistics for a domain domstate domain state list list domains Host and Hypervisor (help keyword 'host') capabilities capabilities freecell NUMA free memory hostname print the hypervisor hostname node-memory-tune Get or set node memory parameters nodecpumap node cpu map nodecpustats Prints cpu stats of the node. nodeinfo node information nodememstats Prints memory stats of the node. nodesuspend suspend the host node for a given time duration sysinfo print the hypervisor sysinfo uri print the hypervisor canonical URI version show version Interface (help keyword 'interface') iface-begin create a snapshot of current interfaces settings, which can be later committed (iface-commit) or restored (iface-rollback) iface-bridge create a bridge device and attach an existing network device to it iface-commit commit changes made since iface-begin and free restore point iface-define define (but don't start) a physical host interface from an XML file iface-destroy destroy a physical host interface (disable it / "if-down") iface-dumpxml interface information in XML iface-edit edit XML configuration for a physical host interface iface-list list physical host interfaces iface-mac convert an interface name to interface MAC address iface-name convert an interface MAC address to interface name iface-rollback rollback to previous saved configuration created via iface-begin iface-start start a physical host interface (enable it / "if-up") iface-unbridge undefine a bridge device after detaching its slave device iface-undefine undefine a physical host interface (remove it from configuration) Network Filter (help keyword 'filter') nwfilter-define define or update a network filter from an XML file nwfilter-dumpxml network filter information in XML nwfilter-edit edit XML configuration for a network filter nwfilter-list list network filters nwfilter-undefine undefine a network filter Networking (help keyword 'network') 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 (stop) a network net-dumpxml network information in XML net-edit edit XML configuration for a network net-info network information 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-update update parts of an existing network's configuration net-uuid convert a network name to network UUID Node Device (help keyword 'nodedev') nodedev-create create a device defined by an XML file on the node nodedev-destroy destroy (stop) a device on the node nodedev-detach detach node device from its device driver nodedev-dumpxml node device details in XML nodedev-list enumerate devices on this host nodedev-reattach reattach node device to its device driver nodedev-reset reset node device Secret (help keyword 'secret') secret-define define or modify a secret from an XML file secret-dumpxml secret attributes in XML secret-get-value Output a secret value secret-list list secrets secret-set-value set a secret value secret-undefine undefine a secret Snapshot (help keyword 'snapshot') snapshot-create Create a snapshot from XML snapshot-create-as Create a snapshot from a set of args snapshot-current Get or set the current snapshot snapshot-delete Delete a domain snapshot snapshot-dumpxml Dump XML for a domain snapshot snapshot-edit edit XML for a snapshot snapshot-info snapshot information snapshot-list List snapshots for a domain snapshot-parent Get the name of the parent of a snapshot snapshot-revert Revert a domain to a snapshot Storage Pool (help keyword 'pool') find-storage-pool-sources-as find potential storage pool sources find-storage-pool-sources discover potential storage pool sources pool-autostart autostart a pool pool-build build a pool pool-create-as create a pool from a set of args pool-create create a pool from an XML file pool-define-as define a pool from a set of args pool-define define (but don't start) a pool from an XML file pool-delete delete a pool pool-destroy destroy (stop) 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 Storage Volume (help keyword 'volume') vol-clone clone a volume. vol-create-as create a volume from a set of args vol-create create a vol from an XML file vol-create-from create a vol, using another volume as input vol-delete delete a vol vol-download download volume contents to a file vol-dumpxml vol information in XML vol-info storage vol information vol-key returns the volume key for a given volume name or path vol-list list vols vol-name returns the volume name for a given volume key or path vol-path returns the volume path for a given volume name or key vol-pool returns the storage pool for a given volume key or path vol-resize resize a vol vol-upload upload file contents to a volume vol-wipe wipe a vol Virsh itself (help keyword 'virsh') cd change the current directory connect (re)connect to hypervisor echo echo arguments exit quit this interactive terminal help print help pwd print the current directory quit quit this interactive terminal (specify help <group> for details about the commands in the group) (specify help <command> for details about the command)
Install useful tools for virt management.
[1]Install virt tools.[root@dlp ~]# yum -y install libguestfs-tools virt-top[2]"ls" a directory in a virtual machine.[root@dlp ~]# virt-ls -l -d centos7 /roottotal 36dr-xr-x---. 2 root root 4096 Jan 8 22:38 .drwxr-xr-x. 17 root root 4096 Jan 8 22:36 ..-rw-------. 1 root root 61 Jan 8 22:38 .bash_history-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc...[3]"cat" a file in a virtual machine.[root@dlp ~]# virt-cat -d centos7 /etc/passwd
root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/sync...[4]Edit a file in a virtual machine.[root@dlp ~]# virt-edit -d centos7 /etc/fstab
## /etc/fstab# Created by anaconda on Thu Jan 8 13:20:43 2015## Accessible filesystems, by reference, are maintained under '/dev/disk'# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#/dev/mapper/centos-root / xfs defaults 1 1UUID=537b215f-30a1-4e82-b05d-f480aa8e1034 /boot xfs defaults 1 2/dev/mapper/centos-swap swap swap defaults 0 0[5]Display disk usage in a virtual machine.[root@dlp ~]# virt-df -d centos7
Filesystem 1K-blocks Used Available Use%centos7:/dev/sda1 508588 72348 436240 15%centos7:/dev/centos/root 8910848 779252 8131596 9%[6]Mount a disk for a virtual machine.[root@dlp ~]# guestmount -d centos7 -i /media
total 32lrwxrwxrwx. 1 root root 7 Jan 8 22:22 bin -> usr/bindr-xr-xr-x. 4 root root 4096 Jan 8 22:37 bootdrwxr-xr-x. 2 root root 6 Jan 8 22:20 devdrwxr-xr-x. 74 root root 8192 Jan 8 22:36 etc...[7]Display the status of virtual machines.[root@dlp ~]# virt-top
virt-top 22:32:virt-top14 - x86_64 4/4CPU 2801MHz 11968MB2 domains, 1 active, 1 running, 0 sleeping, 0 paused, 1 inactive D:0 O:0 X:0CPU: 0.2% Mem: 500 MB (500 MB by guests) ID S RDRQ WRRQ RXBY TXBY %CPU %MEM TIME NAME 6 R 0 0 0.2 4.0 0:09.14 guestfs-o7nss1p3kxvyl1r5 - (centos7)
This is the example to use Live Migration function for virtual machines.
This requires 2 KVM host server and a storage server like follows.
Please set DNS or hosts to resolve names or IP addresses normally, first.
Please set DNS or hosts to resolve names or IP addresses normally, first.
+----------------------+ | [ NFS Servver ] | | nfs.srv.world | | | +-----------+----------+ |10.0.0.30 |+----------------------+ | +----------------------+| [ KVM Host #1 ] |10.0.0.21 | 10.0.0.22| [ KVM Host #2 ] || +----------+----------+ || kvm01.srv.world | | kvm02.srv.world |+----------------------+ +----------------------+[1]
Configure Storage server which has virtual machine images. For Storage server, it's OK to useNFS,iSCSI,GlusterFS and so on. This example usesNFS Storage server.
[2]Configure 2 KVM host server and mount a directory provided from Storage server on the same mount point on both KVM server. This example mounts on [/var/kvm/images].
[3]Create and start a virtual machine on a KVM host server.
[4]It's OK all, execute Live Migration like follows on server which virtual machine is running. After finishing it, virtual machine is migrated on another KVM host like follows.[root@kvm01 ~]# virsh listId Name State-------------------------------------- 3 centos7 running
[root@kvm01 ~]# virsh migrate --live centos7 qemu+ssh://10.0.0.22/system
root@10.0.0.22's password:
[root@kvm01 ~]# virsh listroot@10.0.0.22's password:
# root password
Id Name State--------------------------------------
# just migrated
### on another KVM Host ###
[root@kvm02 ~]# virsh list
Id Name State--------------------------------------- 1 centos7 running
# back to the KVM Host again like follows
[root@kvm02 ~]# virsh migrate --live centos7 qemu+ssh://10.0.0.21/system
root@10.0.0.21's password:
Id Name State--------------------------------------
Install Desktop Virtualization "SPICE ( Simple Protocol for Independent Computing Environment )".It's possible to connect to virtual machines from remote client computer.
[1]Install SPICE Server if it's not installed yet. ( Normally it's already installed with KVM for dependency )[root@dlp ~]#yum -y install spice-server spice-protocol
[2]Edit existing virtual machine's xml-file and start virtual machine with SPICE like follows.This site's example has created a virtual machine without graphics, so it's OK to change settings like follows,but if you created virtual machine with a graphics, Remove "<graphics>***" and "<video>***" sections in xml file because qxl is used for graphics.[root@dlp ~]#
virsh edit centos7
# edit the configration of "centos7"
<domain type='kvm'> <name>centos7</name> <uuid>b38a50ca-a1ae-4d37-ba10-caf1e05b43ce</uuid> <memory unit='KiB'>4194304</memory> <currentMemory unit='KiB'>4194304</currentMemory> <vcpu placement='static'>2</vcpu> . . .
# add follows
# set any password for "passwd=***" section
# specify a uniq number for "sound" section "slot='0x06'"
# the "slot='0x02'" in video section is fixed number for graphics
<graphics type='spice' port='5900' autoport='no' listen='0.0.0.0' passwd='password'> <listen type='address' address='0.0.0.0'/> </graphics> <sound model='ac97'> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </sound> <video> <model type='qxl' ram='65536' vram='32768' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video>
<memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </memballoon> </devices></domain>Domain centos7 XML configuration edited.[root@dlp ~]# virsh start centos7
# start VM
Domain centos7 started[3]
Configuration is all OK.See next page to connect to SPICE server from SPICE client.
[4]By the way, if you'd like to enable SPICE on initial creating of virtual machine, specify like follows. Then, it's possible to install Systems with SPICE which requires GUI like Windows without installing Desktop Environment on KVM Host computer.[root@dlp ~]# virt-install \--name Win2k12R2 \
--ram 6144 \
--disk path=/var/kvm/images/Win2k12R2.img,size=100 \
--vcpus=4 \
--os-type windows \
--os-variant=win2k8 \
--network bridge=br0 \
--graphics spice,listen=0.0.0.0,password=password \
--video qxl \
--cdrom /tmp/X64FRE_SERVER_EVAL_JA-JP-IRM_SSS_X64FREE_JA-JP_DV5.ISO
[5]If Firewalld is running, allow SPICE port which you asgined to a virtual machine.[root@dlp ~]# firewall-cmd --add-port=5900/tcp --permanent--ram 6144 \
--disk path=/var/kvm/images/Win2k12R2.img,size=100 \
--vcpus=4 \
--os-type windows \
--os-variant=win2k8 \
--network bridge=br0 \
--graphics spice,listen=0.0.0.0,password=password \
--video qxl \
--cdrom /tmp/X64FRE_SERVER_EVAL_JA-JP-IRM_SSS_X64FREE_JA-JP_DV5.ISO
[root@dlp ~]# firewall-cmd --reload
Connect to a virtual machine that is running with SPICE. This example uses CentOS 7 for SPICE client.
[1]Start "Remote Desktop Viewer" like follows.[2]Click "Connect" button.[3]Select "SPICE" for "Protocol" field and input [server name or IP address:set port] for "Host" field and then click "Connect" button.[4]Input the password you set and click "Authenticate" button.[5]After successing authentication, it's possible to connect like follows.
SPICE Client : Windows
SPICE client for Windows is also provided, so it's possible to connect from Windows.This example uses Windows 7 (x64) for SPICE client.
[6]Download Virt-Viewer Installer from the site below. ⇒ http://www.spice-space.org/download.html
After installing and starting "Virt-Viewer", following screen is shown. Then, input "spice://server name(IP address:Port" in the URL field and click "Connect" button.[7]Input [server name or IP address:set port] for "URL" field and then click "Connect" button.[8]Input the password you set and click "OK" button.[9]After successing authentication, it's possible to connect like follows.
Configure nested KVM. It's possible to install KVM and create virtual machines as nested KVM on KVM host.
[1]Enable the setting for Nested KVM.[root@dlp ~]# vi /etc/modprobe.d/kvm-nested.conf
# create new
options kvm_intel nested=1
# unload
[root@dlp ~]# modprobe kvm_intel
# reload again
[root@dlp ~]# cat /sys/module/kvm_intel/parameters/nestedY
# just enabled
It's OK to configure nested KVM and you can create virtual machines on the virtual machine nested.
[root@dlp ~]# virsh edit centos7
# edit a virtual machine "centos7"
# change like folows for "cpu mode" section
<cpu mode='host-passthrough
'> 0 1
- Centos 7.2 KVM 配置
- centos kvm配置
- CentOS 6.4 配置 KVM虚拟机
- CentOS 7 下配置KVM
- Centos 6.3上安装配置KVM
- CentOS 6.5系统安装配置KVM虚拟机
- 在 CentOS 上安装和配置 KVM
- kvm安装配置,创建虚拟机,centos环境
- Centos 6.3上安装配置KVM
- CentOS-6.x86_64 上安装和配置 KVM
- 在 CentOS 6.2 上安装和配置 KVM
- CentOS 6.5下配置Ceph作为KVM后端存储
- Centos 6下配置KVM使用virtio-scsi
- CentOS 6系统kvm虚拟机中配置桥接网络
- CentOS安装KVM环境并配置网桥
- KVM虚拟机在线迁移环境配置(CentOS 7.0)
- CentOS 6系统kvm虚拟机中配置桥接网络
- CentOS 5.4安装KVM
- 笔试面试题1
- 设置QT鼠标右击菜单
- Android学习笔记二:TabHost控件的使用说明收集
- 电路交换与分组交换的优缺点
- Linux常用命令(七)整盘备份与恢复(镜像)
- Centos 7.2 KVM 配置
- iOS对象间传值
- phpcms v9 修改文件时空白
- 《Motion Design for iOS》(十六)
- ios开发控制器-UIViewController
- Autocomplete 自动补全JQuery
- recv函数的MSG_PEEK标志介绍
- java基础--实现MD5加密
- Selenium实现元素的拖拽(java版)