Linux目前流行的开源虚拟化技术解决方案:
主机虚拟化:xen, kvm, virtualbox
容器级:lxc, libcontainer, runC, openvz
模拟器:qemu
KVM模块load进内存之后,系统的运行模式:
内核模式:GuestOS执行IO类的操作时,或其它的特殊指令操作时的模式;它也被称为“Guest-Kernel”模式;
用户模式:Host OS的用户空间,用于代为GuestOS发出IO请求;
来宾模式:GuestOS的用户模式;所有的非IO类请求;
Qemu:
处理器模拟器
仿真各种IO设备
将仿真设备连接至主机的物理设备
提供用户接口
qemu-kvm 可以完成虚拟机创建,安装,启动运行
qemu-img 辅助对磁盘镜像的管理
qemu-IO 对IO使用情况管理
运行中的一个kvm虚拟机就是一个qemu-kvm进程,运行qemu-kvm程序并传递给它合适的选项及参数即能完成虚拟机启动,终止此进程即能关闭虚拟机;
安装使用KVM:
判断CPU是否支持硬件虚拟化:
grep -i -E '(vmx|svm|lm)' /proc/cpuinfo
modprobe kvm
yum install qemu-kvm
ln -sv /usr/libexec/qemu-kvm /usr/bin
mkdir /VMs/c{1,2,3} -pv
cp cirros-no_cloud-i386.img /VMs/c1/ ## cirros 是一个微型镜像文件 用来测试
brctl addbr br-and ##创建虚拟网桥
ip link set br-and up ##启动网桥
编写启动虚拟机时要执行的脚本,默认为/etc/qemu-ifup
vim /etc/qemu-ifup
#!/bin/bash
bridge=br0
if [ -n "$1" ];then
ip link set $1 up
sleep 1
brctl addif $bridge $1
[ $? -eq 0 ] && exit 0 || exit 1
else
echo "Error: no interface specified."
exit 2
fi
chmod +x /etc/qemu-ifup