KVM虚拟化有两种网络模式:
1)Bridge网桥模式
2)NAT网络地址转换模式
Bridge方式适用于服务器主机的虚拟化。NAT方式适用于桌面主机的虚拟化。
环境:
本次实验要开启VMWare中对应CentOS6.5虚拟机的虚拟化功能--在虚拟机设置--处理器--虚拟化引擎--勾选虚拟化Intel VT-x/EPT 或 AMD-V/RVI(V)
1、安装方式
图形化安装CentOS6.5--采用最小化安装系统--选择桌面安装--选择虚拟化选项
2,安装kvm所需软件
[[email protected] ~]# yum -y groupinstall "Desktop" [[email protected] ~]# yum -y install qemu-kvm.x86_64 qemu-kvm-tools.x86_64 python-virtinst.noarch qemu-img.x86_64 bridge-utils.x86_64 libvirt virt-manager
3、验证--安装好以上RPM包后,最好重启一下系统,再查看CPU是否支持虚拟化
1)查看以下两种类型CPU支持虚拟化的相关信息
inter:
[[email protected] ~]# cat /proc/cpuinfo | grep vmx flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dts tpr_shadow vnmi ept vpid fsgsbase smep
AMD:
[[email protected] ~]# cat /proc/cpuinfo | grep smv
4、设置KVM网络
在libvirt中运行KVM网络有两种:用户模式-NAT和桥接模式-Bridge,默认是NAT模式
,根据实际的需求我们采用桥接模式。
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 //修改配置文件ifcfg-eth0 DEVICE=eth0 HWADDR=00:0c:29:8e:ac:f7 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=n0 BOOTPROTO=none BRIDGE="br0" ~ ~ ~
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0 //新建bro DEVICE=br0 TYPE=Bridge ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=172.16.1.2 NETMASK=255.255.0.0
重启network服务
[[email protected] ~]# service network restart 正在关闭接口 eth0: bridge br0 does not exist! [确定] 关闭环回接口: [确定] 弹出环回接口: [确定] 弹出界面 eth0: [确定] 弹出界面 br0: Determining if ip address 172.16.1.2 is already in use for device br0... [确定]
确认IP地址信息
[[email protected] ~]# ifconfig br0 Link encap:Ethernet HWaddr 00:0C:29:8E:AC:F7 inet addr:172.16.1.2 Bcast:172.16.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fe8e:acf7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:17 errors:0 dropped:0 overruns:0 frame:0 TX packets:21 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1546 (1.5 KiB) TX bytes:2546 (2.4 KiB) eth0 Link encap:Ethernet HWaddr 00:0C:29:8E:AC:F7 inet6 addr: fe80::20c:29ff:fe8e:acf7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:550 errors:0 dropped:0 overruns:0 frame:0 TX packets:457 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:51927 (50.7 KiB) TX bytes:60623 (59.2 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1244 (1.2 KiB) TX bytes:1244 (1.2 KiB) virbr0 Link encap:Ethernet HWaddr 52:54:00:4D:35:53 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
输出以上信息,说明网卡桥接成功了!
5、KVM管理
virt-manager是基于libvirt的图形化虚拟机管理软件,该软件不同的版本,图形界面和操作方法也可能不同,在Shell环境下,以root身份输入命令:virt-manager 即可调出虚拟化管理器。
[[email protected] ~]# virt-manager
Xlib: extension "RANDR" missing on display "localhost:10.0".
6、虚拟化管理的步骤如下:
1)创建存储池
双击localhost(QEMU)--选择“储存”选项卡--单击“+”新建储存池:名称“baishuchao”;目录
注:这是存储池路径,我现在这里是实验环境选择默认即可,如在实际环境中需要添加到后台存储服务器上
2)再创建一个镜像储存池
双击localhost(QEMU)--选择“储存”选项卡--单击“+”新建储存池:名称“baishuchao_iso”;目录“/data_kvm/iso”--单击“完成”。
上传iso镜像文件
注:这里是利用xftp第三方软件进行网络上传的
3)创建存储卷
单击刚创建好的“bdqn”存储池--单击对话框右下角“新建卷”按钮建立一个储存卷:名称:“baishuchao_kvm”;设置存储卷的最大容量和分配容量“10240MB”--单击“完成”。
4)创建虚拟机
虚拟系统管理器--右击“Localhost(QEMU)”--单击“新建”选项--虚拟机名称“CentOS6.5”--打击“前进”按钮--分配内存和CPU资源--单击“前进”按钮--勾选“立即分配整个磁盘”,点选“管理的或者其他现有存储”,单击“浏览”按钮选择文件--单击“前进”按钮--勾选“在安装前自定义配置”--单击“完成”。在“Overview”视图,定位到“机器设置”-时钟偏移-改为“localtime”,单击应用;定位到“Boot Option”,勾选“主机引导时启动虚拟机”复选框-单击应用;在“显示VNC”中,将Keymap设置为“Copy Local Keymap”。
设置完毕后,单击“Begin Installation”按钮即可,整个虚拟机配置过程完成。下面就是一步一步安装系统了。
第二部分 使用KVM命令集管理虚拟机 1、安装Linux虚拟机 虚拟机172.16.1.12宿主机(当作物理机)已安装,使用Xshell远程控制该宿主机。 2、KVM基本功能管理 1)查看命令帮助 [root@localhost ~]# ls /etc/libvirt/qemu autostart CentOS6.5.xml networks 2)查看KVM的配置文件存放目录(CentOS6.5.xml是虚拟机系统实例的配置文件) ls /etc/libvirt/qemu 3)查看虚拟机状态 [root@localhost ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- 3 CentOS6.5 running 4)虚拟机关机与开机 注意:首先要确认acpid服务已安装并运行 [root@localhost ~]# rpm -qa acpid acpid-1.0.10-2.1.el6.x86_64 [root@localhost ~]# /etc/rc.d/init.d/acpid start 启动 acpi 守护进程: [确定] [root@localhost ~]# virsh shutdown CentOS6.5 域 CentOS6.5 被关闭 [root@localhost ~]# virsh start CentOS6.5 域 CentOS6.5 已开始 5)强制实例系统关闭电源 [root@localhost ~]# virsh destroy CentOS6.5 域 CentOS6.5 被删除 [root@localhost ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- - CentOS6.5 关闭 6)通过配置文件启动虚拟机系统实例 [root@localhost ~]# virsh create /etc/libvirt/qemu/CentOS6.5.xml 域 CentOS6.5 被创建(从 /etc/libvirt/qemu/CentOS6.5.xml) [root@localhost ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- 5 CentOS6.5 running 7)挂起虚拟机 [root@localhost ~]# virsh suspend CentOS6.5 域 CentOS6.5 被挂起 [root@localhost ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- 5 CentOS6.5 暂停 8)恢复虚拟机 [root@localhost ~]# virsh resume CentOS6.5 域 CentOS6.5 被重新恢复 [root@localhost ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- 5 CentOS6.5 running 9)配置虚拟机实例伴随宿主机自动启动 [root@localhost ~]# virsh autostart CentOS6.5 域 CentOS6.5标记为自动开始 该目录内容为开机自动启动的系统 [root@localhost ~]# ls -hl /etc/libvirt/qemu/autostart/ 总用量 0 lrwxrwxrwx 1 root root 31 9月 24 17:18 CentOS6.5.xml -> /etc/libvirt/qemu/CentOS6.5.xml 10)导出虚拟机配置 virsh dumpxml CentOS6.5 >/etc/libvirt/qemu/test02.xml [root@localhost ~]# ls /etc/libvirt/qemu autostart CentOS6.5.xml networks test02.xml 11)虚拟机的删除和添加 [root@localhost ~]# virsh shutdown CentOS6.5 域 CentOS6.5 被关闭 [root@localhost ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- - CentOS6.5 关闭 [root@localhost ~]# virsh undefine CentOS6.5 域 CentOS6.5 已经被取消定义 [root@localhost ~]# ls /etc/libvirt/qemu autostart networks test02.xml 注意:CentOS6.5的配置文件被删除,但是磁盘文件不会被删除 通过virsh list --all 查看不到CentOS6.5的信息,说明此虚拟机被删除。 [root@localhost ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- 通过备份配置文件重新定义虚拟机 cd /etc/libvirt/qemu mv test02.xml CentOS6.5.xml [root@localhost qemu]# virsh define CentOS6.5.xml 定义域 CentOS6.5(从 CentOS6.5.xml) [root@localhost ~] virsh list --all Id 名称 状态 ---------------------------------------------------- - CentOS6.5 关闭 12)修改虚拟机的配置信息(可修改系统内存大小、磁盘文件等信息) vim /etc/libvirt/qemu/CentOS6.5.xml 通过virsh命令修改 virsh edit CentOS6.5 第三部分 KVM文件的管理 注意:首先安装文件格式转换的命令行工具 [root@localhost Packages]# yum -y install libguestfs-tools 1、转换raw格式磁盘文件至qcow2格式 查看当前磁盘文件格式 [root@localhost ~] qemu-img info /data_kvm/store/baishuchao_kvm.img image: /data_kvm/store/baishuchao_kvm.img file format: raw virtual size: 10G (10737418240 bytes) disk size: 10G 关闭虚拟机CentOS6.5 [root@localhost qemu]# virsh shutdown CentOS6.5 域 CentOS6.5 被关闭 转换磁盘文件格式 qemu-img convert -f raw -O qcow2 /data_kvm/store/baishuchao_kvm.img /data_kvm/store/baishuchao_kvm.qcow2 2、修改CentOS6.5的xml配置文件 [root@localhost ~]# virsh edit CentOS6.5 <disk type=‘file‘ device=‘disk‘> <driver name=‘qemu‘ type=‘qcow2‘ cache=‘none‘/> <source file=‘/data_kvm/store/baishuchao_kvm.qcow2‘/> <target dev=‘vda‘ bus=‘virtio‘/> <address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x05‘ function=‘0x0‘/> </disk> 编辑了域 CentOS6.5 XML 配置。 3、virt-cat命令,类似于cat命令 virt-cat -a /data_kvm/store/baishuchao_kvm.qcow2 /etc/sysconfig/network 4、virt-edit命令,用于编辑文件,用法与vim基本一致。 virt-edit -a /data_kvm/store/baishuchao_kvm.qcow2 /etc/resolv.conf 5、virt-df命令查看虚拟磁盘信息 virt-df -h [root@localhost ~]# virt-df -h CentOS6.5 Filesystem Size Used Available Use% CentOS6.5:/dev/sda1 1008M 57M 900M 6% 第四部分 虚拟机的克隆 1、查看虚拟机的状态 [root@localhost ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- - CentOS6.5 关闭 2、从CentOS6.5克隆test01 virt-clone -o CentOS6.5 -n test01 -f /data_kvm/store/baishuchao_kvm.qcow2 [root@localhost ~]# virt-clone -o CentOS6.5 -n test01 -f /data_kvm/store/test01.qcow2 正在分配 ‘test01.qcow2‘ | 10 GB 00:05 Clone ‘test01‘ created successfully. 3、查看虚拟机状态 [root@localhost ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- - CentOS6.5 关闭 - test01 关闭 4、启动虚拟机 [root@localhost ~]# virsh start test01 域 test01 已开始 [root@localhost ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- 7 test01 running - CentOS6.5 关闭 第五部分 虚拟机快照 KVM虚拟机要使用镜像功能,磁盘格式必须为qcow2. [root@localhost ~]# qemu-img info /data_kvm/store/test01.qcow2 image: /data_kvm/store/test01.qcow2 file format: qcow2 virtual size: 10G (10737418240 bytes) disk size: 607M cluster_size: 65536 KVM虚拟机快照备份过程如下: 1)对CentOS6.5创建快照 [root@localhost ~]virsh snapshot-create CentOS6.5 2)查看虚拟机快照版本信息 [root@localhost ~]virsh snapshot-current CentOS6.5 3)查看快照信息 [root@localhost ~]virsh snapshot-list CentOS6.5 4)创建新快照 [root@localhost ~]virsh snapshot-create CentOS6.5 5)查看快照信息 [root@localhost ~]virsh snapshot-list CentOS6.5 6)恢复虚拟机至某个快照状态 [root@localhost ~]virsh snapshot-revert CentOS6.5 1282572963 7)查看虚拟机快照版本信息 [root@localhost ~]virsh snapshot-current CentOS6.5 8)删除快照 [root@localhost ~]virsh snapshot-delete CentOS6.5 1282572963