EL6.6 x64 下部署 KVM虚拟化
KVM 是Kernel Virtual Machine的简写,目前RedHat只支持在RHEL5.4及以上的64位系统平台上运行,同时需要硬件(CPU)支持VT技术,KVM的前身是QEMU,2008年被RedHat收购并获得一项hypervisor技术,不过RedHat的KVM被认为将成为未来的Linux hypervisor的主流,准确的来说,KVM仅仅是linux内核的一个模块,管理和创建完整的KVM虚拟机需要更过的辅助工具。
KVM 从2.6.20版本后就直接整合到linux 内核,它依托CPU虚拟化指令集(如Inter-VT AMD-V)实现高性能的虚拟化支持,由于与Linux内核高度整合,因此在性能,安全性,兼容性,稳定性上有很好的实现,每个虚拟化操作系统表现为单个系统进程并与linux安全模块(selinux)有很好的整合。
KVM架构图
KVM虚拟化硬性条件:
1、真机64位操作系统,RHEL5.4及以上的系统平台
2、CPU支持VT技术(BIOS中开启)
注:VMware 虚拟机中 linux 开启前需要勾选Inter VT-x/EPT 或 AMD/RVI(v)
安装前要查看CPU是否支持虚拟化
Inter CPU
cat /proc/cpuinfo |grep vmx
AMD CPU
cat /proc/cpuinfo |grep smv
[root@Localhost ~]# cat /proc/cpuinfo |grep vmx –color=auto
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 rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes hypervisor lahf_lm ida arat dts tpr_shadow vnmi ept vpid
KVM安装方式
安装前关闭iptables防火墙与selinux
[root@localhost ~]# service iptables stop
[root@localhost ~]# setenforce 0
1、可在安装系统时选择桌面与虚拟化选项
2、在已有的系统上安装KVM软件
可用yum源安装以下软件包:配置yum源
[root@localhost ~]# mount /dev/cdrom /media
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv *.repo bak/
[root@localhost yum.repos.d]# vim yum.repo
[base]
name=base
baseurl=file:///media/cdrom/
gpgcheck=1
[root@localhost ~]# yum -y groupinstall “Desktop” #安装GNOME桌面环境
[root@localhost ~]# yum -y install qemu-kvm.x86_64 #KVM模块
[root@localhost ~]# yum -y install qemu-kvm-tools.x86_64 #KVM调试工具,可不安装
[root@localhost ~]# yum -y install python-virtinst.noarch #python组件,记录创建VM时的xml文件
[root@localhost ~]# yum -y install qemu-img.x86_64 #qemu组件,创建磁盘,启动虚拟机
[root@localhost ~]# yum -y install bridge-utils.x86_64 # 络支持工具
[root@localhost ~]# yum -y install libvirt #虚拟机管理工具
[root@localhost ~]# yum -y install virt-manager #图形界面管理虚拟机
检测安装是否成功
[root@Localhost ~]# lsmod | grep kvm
kvm_intel 55496 0
kvm 337772 1 kvm_intel
设置KVM 络
宿主服务器安装完成KVM,首先要设定 络,在libvirt中运行KVM 络有两种方法,NAT和Bridge,默认是NAT。
1、用户模式,即NAT方式,这种方式是默认 络,数据包由NAT方式通过主机接口进行传送,可以访问外 ,但是无法从外部访问虚拟机 络
Bridge案例:
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
HWADDR=00:0c:29:3c:f7:d9
BRIDGE=”br0″
[root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
BOOTPROTO=static
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.200.200
NETMASK=255.255.255.0
[root@localhost ~]# service network restart
[root@localhost ~]# ifconfig
br0 Link encap:Ethernet HWaddr 00:0C:29:3C:F7:D9
inet addr:192.168.200.211 Bcast:192.168.200.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe3c:f7d9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:496 (496.0 b)
eth0 Link encap:Ethernet HWaddr 00:0C:29:3C:F7:D9
inet6 addr: fe80::20c:29ff:fe3c:f7d9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:236 errors:0 dropped:0 overruns:0 frame:0
TX packets:171 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29331 (28.6 KiB) TX bytes:16011 (15.6 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:1072 (1.0 KiB) TX bytes:1072 (1.0 KiB)
virbr0 Link encap:Ethernet HWaddr 52:54:00:0F:9C:6B
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)
出现以上信息说明 卡桥接成功。
KVM管理工具virt-manager
virt-manager是基于libvirt 的图形化虚拟机管理软件,不同版本的virt-manager的界面和操作方法可能不同,是使用KVM虚拟机最简单的方法
配置linux的图形窗口转移到windows上:
[root@Localhost ~]# tail -1 /etc/profile
export DISPLAY=192.168.200.1:0.0 #192.168.200.1为windows主机IP地址
[root@Localhost ~]# source /etc/profile
windows开启 Xmanager 中的 Passive
创建虚拟机:
1、创建存储池并创建存储卷:
双击localhost(QEMU)–> 存储–> 单击 + 按钮新建存储池,创建两个存储池 KVM ISO 将RHEL6.6安装镜像上传到服务器目录/virtual/ISO中
2、创建存储卷,单击KVM,单击对话框右下角的新建卷,设置最大容量与分配容量。
3、回到虚拟机系统管理器,右键localhost(QEMU),新建–> 设置相应的名字,浏览镜像位置,选择操作系统类型及版本
4、分配内存和CPU资源,选择立即分配整个磁盘,选择管理或其他现有存储,选择文件
勾选 在安装前自定义配置
在Overview视图中:
机器设置 把机器设置-时钟偏移-改为localtime 应用
Boot Options 主机引导时启动虚拟机,宿主机启动后,vm也会启动
显示VNC 将Keymap设置为Copy Local Keymap 单击 Begin Installation
安装操作系统
KVM基本功能管理
1、查看命令帮助
[root@localhost ~]# virsh -h
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
2、查看KVM的配置文件存放目录(KVM01.xml是虚拟系统实例的配置文件)
[root@Localhost ~]# ls /etc/libvirt/qemu
autostart KVM01.xml networks
3、查看虚拟机状态
[root@Localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
7 KVM01 running
4、虚拟机的关机与开机,首先确保acpid服务安装并运行,在虚拟机中:
[root@Localhost ~]# virsh shutdown KVM01
域 KVM01 被关闭
[root@Localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
– KVM01 关闭
[root@Localhost ~]# virsh start KVM01
域 KVM01 已开始
[root@Localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
9 KVM01 running
5、强制实例系统关闭电源
[root@Localhost ~]# virsh destroy KVM01
域 KVM01 被删除
6、通过配置文件启动虚拟机系统
[root@Localhost ~]# virsh create /etc/libvirt/qemu/KVM01.xml
域 KVM01 被创建(从 /etc/libvirt/qemu/KVM01.xml)
[root@Localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
10 KVM01 running
7、挂起虚拟机
[root@Localhost ~]# virsh suspend KVM01
域 KVM01 被挂起
[root@Localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
10 KVM01 暂停
8、恢复虚拟机
[root@Localhost ~]# virsh resume KVM01
域 KVM01 被重新恢复
[root@Localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
10 KVM01 running
9、配置虚拟机实例伴随宿主机自动启动
[root@Localhost ~]# virsh autostart KVM01
域 KVM01标记为自动开始
上述命令将创建 /etc/libvirt/qemu/autostart/ 目录,目录内容为开机自动启动的系统
[root@Localhost ~]# ls /etc/libvirt/qemu/autostart/
KVM01.xml
10、导出(备份)虚拟机配置
[root@Localhost ~]# virsh dumpxml KVM01 > /etc/libvirt/qemu/KVM02.xml
[root@Localhost ~]# ls /etc/libvirt/qemu
autostart KVM01.xml KVM02.xml networks
11、虚拟机的删除与添加,删除虚拟机:
[root@Localhost ~]# virsh destroy KVM01
域 KVM01 被删除
[root@Localhost ~]# virsh undefine KVM01
域 KVM01 已经被取消定义
[root@Localhost ~]# ls /etc/libvirt/qemu
autostart KVM02.xml networks
[root@Localhost ~]# ls /virtual/KVM/
KVM01.img
查看删除结果,KVM01的配置文件被删除,但是磁盘文件不会被删除
通过virsh list –all 查看不到centos6.5的信息,说明此虚拟机被删除
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
12、通过备份的配置文件重新定义虚拟机:
[root@Localhost ~]# ls /etc/libvirt/qemu
autostart KVM02.xml networks
[root@Localhost ~]# mv /etc/libvirt/qemu/KVM02.xml /etc/libvirt/qemu/KVM01.xml
重新定义虚拟机
[root@Localhost ~]# cd /etc/libvirt/qemu
[root@Localhost qemu]# virsh define KVM01.xml
定义域 KVM01(从 KVM01.xml)
[root@Localhost qemu]# virsh list –all
Id 名称 状态
—————————————————-
– KVM01 关闭
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!