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。
KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。
使用 KVM ,可允许运行多个虚拟机,包括 Linux 和 Windows操作系统。 每个虚拟机有私有的硬件,包括网卡、磁盘以及图形适配卡等。
——安装KVM
(1.检查一下 CPU 是否提供了虚拟技术的支持(Intel VT 或 AMD SVM)
[[email protected] ~]# egrep ‘vmx|svm‘ /proc/cpuinfo 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 ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt xsave avx f16c hypervisor lahf_lm arat epb pln pts dts tpr_shadow vnmi ept vpid fsgsbase smep 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 ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt xsave avx f16c hypervisor lahf_lm arat epb pln pts dts tpr_shadow vnmi ept vpid fsgsbase smep
(2.添加host主机
[[email protected] ~]# echo "127.0.0.1 `hostname`" >> /etc/hosts
(3.安装 KVM 所需要的软件包
[[email protected] ~]# yum install kvm virt-viewer virt-manager libvirt libvirt-python python-virtinst bridge-utils tunctl -y
(4.启动kvm服务
[[email protected] ~]# /etc/init.d/libvirtd start #有输出信息说明启动成功 [[email protected] ~]# lsmod | grep kvm kvm_intel 54285 0 kvm 333172 1 kvm_intel
(5.设置桥接网络
#br1 [[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-br1 DEVICE=br1 TYPE=Bridge ONBOOT=yes BOOTPROTO=static IPADDR=192.168.64.128 NETMASK=255.255.255.0 GATEWAY=192.168.64.2 #eth0 [[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BRIDGE=br1 [[email protected] ~]# /etc/init.d/network restart
(6.修改配置文件qemu.conf
[[email protected] ~]# sed -i ‘s/^#vnc_listen = "0.0.0.0"/vnc_listen = "0.0.0.0"/‘ /etc/libvirt/qemu.conf #vnc登录密码 [[email protected] ~]# sed -i ‘s/^#vnc_password = "XYZ12345"/vnc_password = "vnc2015"/‘ /etc/libvirt/qemu.conf [[email protected] ~]# sed -i ‘s/^#user = "root"/user = "root"/‘ /etc/libvirt/qemu.conf [[email protected] ~]# sed -i ‘s/^#group = "root"/group = "root"/‘ /etc/libvirt/qemu.conf
(7.重启kvm和network
[[email protected] ~]# service network restart [[email protected] ~]# service libvirtd restart
——安装虚拟机 [利用kickstart批量安装]
(1.建立qcow2格式磁盘文件
[[email protected] ~]# mkdir -p /datadir/kvm/vhosts [[email protected] ~]# cd /datadir/kvm/vhosts [[email protected] vhosts]# qemu-img create -f qcow2 YunWei-201.qcow2 200G Formatting ‘YunWei-201.qcow2‘, fmt=qcow2 size=214748364800 encryption=off cluster_size=65536 [[email protected] vhosts]# qemu-img info YunWei-201.qcow2 image: YunWei-201.qcow2 file format: qcow2 virtual size: 200G (214748364800 bytes) disk size: 136K cluster_size: 65536
(2.安装虚拟机 [参数详解:virt-install --help]
[[email protected] vhosts]# virt-install --name YunWei-201 > --ram 1024 --vcpus=2 --os-variant=rhel6 #kickstart访问地址(iso镜像目录) > --location=http://192.168.64.254/os/CentOS-6.5 #kickstart访问地址(ks配置文件) > --extra-args="ks=http://192.168.64.254/CentOS-6.5.cfg" #磁盘文件路径 > --disk path=/datadir/kvm/vhosts/YunWei-150.qcow2,size=200,format=qcow2,bus=virtio > --bridge=br1,model=virtio #网卡mac信息 > --mac=00:50:56:3E:20:AE > --mac=00:50:56:3E:21:AE #vnc访问端口 > --vnc --vncport=5900 --vnclisten=0.0.0.0 开始安装...... 搜索文件 vmlinuz...... | 7.9 MB 00:00 ... 搜索文件 initrd.img...... | 64 MB 00:00 ... 创建域...... | 0 B 00:00 无法打开显示: 运行 ‘virt-viewer --help‘ 来查看可用命令行选项的完整列表 域安装仍在进行。您可以重新连接 到控制台以便完成安装进程。
(3.使用vnc工具登录控制台,查看安装进度...
至此,KVM利用kickstart批量安装操作系统部署完成,不足之处请指出,相互学习。