什么是KVM虚拟化技术?
KVM(Kernel-based Virtual Machine),主流虚拟化技术之一,集成与Linux2.6之后版本中,通过linux内核提供任务调度及管理。
kvm,在实现虚拟化之前,需要先检查硬件cpu是否支持虚拟化,如果是在wmwave上实现的虚拟化,需要在关机状态下设置cpu支持虚拟化。然后在命令行下检测
egrep 'vmx|svm' --color=always /proc/cpuinfo
半虚拟化(xen),需要修改虚拟机内核,全虚拟化不需要直接可以进行虚拟化
使用yum安装相关软件
yum -y install qemu-kvm qemu-img virt-viewer virt-manager libvirt python-virtinst qemu-kvm #kvm只对cpu、内存虚拟化,qemu-kvm在此基础上模拟I/O设备 qemu-img #磁盘镜像管理工具 virt-manager #图形界面虚拟机管理工具 virt-viewer #连接虚拟机控制台 libvirt #提供一套管理虚拟化工具的接口,支持主流的虚拟化技术,如KVM、XEN、LXC等,用于命令行管理虚拟机 python-virtinst #python写的脚本,用于virt-install安装虚拟机
lsmod | grep kvm(检查kvm模块是否加载)
如果上步检查没有加载的话,用modprobe kvm进行检查是否加载
关闭NetworkManager服务,避免虚拟机与主机网络出现问题
# service NetworkManager stop # chkconfig NetworkManager off
桥接网络
qemu支持的网络模式:
桥接 #基于网桥的虚拟网卡,与主机同网段IP地址
NAT #共享主机的IP地址
主机模式 #主机之间专用网络
添加桥接,网卡不配置IP信息
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=54:39:DF:D0:AD:10 TYPE=Ethernet UUID=7fd81a50-9ee4-41f2-aa53-b73acb45a913 ONBOOT=yes NM_CONTROLLED=yes BRIDGE=br0 #添加桥接
创建ifcfg-br0,里面配置真实物理IP信息
# vi /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=static IPADDR=192.168.3.10 NETMASK=255.255.255.0 GATEWAY=192.168.3.1 DNS1=8.8.8.8
service libvirtd start(启动libvirtd,提供一套管理虚拟化工具的接口) chkconfig libvirtd on(设置libvirtd开机自启动)
可以设置vnc登录实际的物理机,需要在服务器上面装vnc,可以直接使用yum安装,也可以用linux系统自带的rpm包进行安装)
iptables -I INPUT -p tcp -d port 5901 -j ACCEPT /etc/rc.d/init.diptables save
然后需要在实际的物理机上面有一块新的磁盘专门用来放镜像,首先这块磁盘需要做lvm,然后在磁盘上创建一个镜像目录,将镜像上传到这个目录下。
vitmanager是用来在图形操作界面里面进行安装虚拟机的,在安装虚拟机的时候需要选择镜像,这个时候选择刚才上传上来的镜像就好了
virinstall是用来在命令行创建虚拟机的。
qemu-img create -f qcow2 vm1-disk1.qcow2 10G virt-install --name=vm1 --disk path=/vm/vm1-disk1.qcow2 --vcpus=1 --ram=1024 --cdrom=/iso/Centos-6.4-i386-bin-DVD1.iso --network network=default --graphics vnc,listen=0.0.0.0 --os-type=linux --os-variant=rhel6