本文共 3304 字,大约阅读时间需要 11 分钟。
一、前言
KVM,即Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学 术界的主流VMM之一。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,
新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列也是基于软件模拟的Para-Virtualization。
二、环境系统:rhel6.6 64位
软件包组:
virtualization 提供虚拟机的环境,主要包含qemu-kvm
virtualization-client 管理和安装虚拟机实例的客户端,主要有python-virtinst,virt-manager,virt-viewer
virtualization-platform 提供访问和控制虚拟客户端的接口,主要有libvirt,libvirt-client
virtualization-tools 管理离线虚拟机镜像的工具,主要有libguestfs
根据需求选择软件包,一般都安装前三个,也可以只安装个别主要的包。
为了减少不必要的麻烦,请关闭防火墙和SELinux
# cat /proc/cpuinfo |grep flags 需要全虚拟化支持为vmx(Inter)或svm(AMD)
如果确定物理机支持cpu虚拟化技术,而使用上述命令查找不到相应指令。
三、安装与配置# yum groupinstall "Virtualization""Virtualization Client""Virtualization Platform"
# yum install qemu-kvm virt-managerlibvirt //也可只安装个别主要的包
# lsmod |grep kvm //kvm模块一定要加载
kvm_intel 53484 0
kvm 316506 1 kvm_intel
# service libvirtd start //启动libvirt服务
Starting libvirtd daemon: [ OK ]
四、配置桥接网络
1、复制文件 # cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0 2、修改ifcfg-eth0文件 # vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" NM_CONTROLLED="no" BOOTPROTO=static HWADDR="00:22:19:B8:D9:FE" IPV6INIT="yes" MTU="1500" ONBOOT=yes TYPE="Ethernet" BRIDGE="br0" UUID="f2f96e91-9957-43bf-97b7-0cd67d8bb1e2" 去掉IP,netmask,把NM_controlled修改成no表示网络不用networkmanager管理,用network管理 3、修改ifcfg-br0文件 # vi /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE="br0" BOOTPROTO=static IPV6INIT="no" MTU="1500" NM_CONTROLLED="no" ONBOOT=yes TYPE="Bridge" IPADDR=xx.xx.xx.xx GATEWAY=xx.xx.xx.xx NETMASK=xx.xx.xx.xx DNS1=xx.xx.xx.xx 4、重启服务 因为刚才我们把网络的管理改成network(默认使用networkmanager管理),现在重启network服务,service network restart. 5、确认配置 ifconfig && brctl show [root@cdsh2950b ~]# brctl show bridge name bridge idSTP enabledinterfaces br0 8000.002219b8d9fenoeth2 vnet0 virbr0 8000.525400c835f0yesvirbr0-nic 四、创建kvm虚拟机(图形界面)1.可以利用vnc远程连接kvm宿主机,进行管理。Application→System Tools→VirtualMachine Manager
2.进入Virtual Machine Manager管理界面,新建一个虚拟机。
3.输入虚拟机名称,选择“Local Install media”
4.选择“Use CDROM or DVD”,及使用vmware的虚拟光驱
5.选择内存及cpu,依机器性能本身而定
6.选择虚拟机磁盘大小,及存储位置
7.新建虚拟机信息预览
五、命令行方式
#virt-install \
--name=vm01 --ram=512 --vcpus=1 --cdrom=/media/_6.2_final.iso --os-type=rhel6 --disk /var/lib/libvirt/imgages/vm01.img,size=8,bus=virtio,cache=writeback --network bridge=br0,model=virtio 下面对上面的命令进行解读: --name 给虚拟机起个名字 --ram 分配给虚拟机的内存,单位MB --vcpus 分配给虚拟机的cpu个数 --cdrom 指定安装文件的全路径 --disk 指定虚拟机img文件路径,如果虚拟机使用lvm分区,这里就指向到lvm的分区就行 size 虚拟机文件大小,单位GB bus 虚拟机磁盘使用的总线类型,为了使虚拟机达到好的性能,这里使用virtio cache 虚拟机磁盘的cache类型 --network bridge 指定桥接网卡 model 网卡模式,这里也是使用性能更好的virtio --graphics 图形参数 可以用man virt-install 指令查看帮助,最后有很多示例。 五、管理kvm虚拟机常用命令:
virsh list 显示虚拟机运行状态
virsh console system_name 使用文本方式连接虚拟系统
virsh start system_name 开启虚拟系统
virsh shutdown system_name 关闭虚拟系统
注:虚拟机和宿主机之间切换使用ctrl+】(右方括号)
# virsh console vm01
Connected to domain vm01
Escape character is ^]
六、克隆kvm虚拟机# virt-clone -o vm01 -n vm02 -f/var/lib/libvirt/imgages/vm02 //vm01需要关机
# ll -h /var/lib/libvirt/imgages
-rwxr-xr-x 1 root root 8.0G Oct 13 17:40 vm01.img
-rwxr-xr-x 1 root root 8.0G Oct 13 17:42 vm02.img
本文转自戴柏阳的博客博客51CTO博客,原文链接http://blog.51cto.com/daibaiyang119/1703717如需转载请自行联系原作者
daibaiyang119