一、KVM(Kernel-based Virtual Machine)基于内核的虚拟机
KVM是Linux kernel的一个模块。可以用命令modprobe去加载KVM模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有KVM模块是远远不够的,因为用户无法直接控制内核模块去作事情,你还必须有一个运行在用户空间的工具才行。这个用户空间的工具,kvm开发者选择了已经成型的开源虚拟化软件 QEMU。
二、安装kvm
1、查看CPU是否支持虚拟化技术,cat /proc/cpuinfo | egrep 'vmx|svm' (手打)
2、需求内核(rhel6以上),uname -r查看
3、如之前安装过虚拟化需清理环境
yum erase `rpm -qa | egrep 'qemu|virt|kvm'`
rm -rf /var/lib/libvirt /etc/libvirt/
4、安装软件
centos6 yum groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools" -y
centos7 yum install *qemu* *virt* *kvm* -y
5、启动服务
centos6:# /etc/init.d/libvirtd start
centos7:# systemctl start libvirtd
三、安装虚拟机
1、图形界面安装,virt-manager选择新建虚拟机,选择安装镜像
2、文本模式安装(手动配置虚拟机的规格)
virt-install --connect qemu:///system -n vm9 -r 2050 --disk path=/virhost/vmware/vm9.img,size=7 --os-type=linux --os-variant=centos7.0 --vcpus=1 --location=ftp://192.168.100.230/centos7u3 -x console=ttyS0 --nographics
解释:--connect qemu:///system 连接qemu模块;-n vm9虚拟机名字vm9;-r 2050内存大小;--disk path=/virhost/vmware/vm9.img磁盘镜像路径;size=7磁盘大小7G;--os-type=linux系统类型;--os-variant=centos7.0操作系统;--vcpus=1,cpu个数;--location=ftp://192.168.100.230/centos7u3安装源需先下好镜像挂载到/var/ftp/下;-x console=ttyS0 执行终端--nographics无图形,文本模式
3、命令行模式安装(模板镜像+配置文件配置+创建)
①拷贝模板镜像和配置文件
cp /var/lib/libvirt/images/vm2.img /var/lib/libvirt/images/vm3.img 拷贝磁盘镜像
cp /etc/libvirt/qemu/vm2.xml /etc/libvirt/qemu/vm3.xml 拷贝虚拟机配置文件,必须.xml文件
②修改虚拟机配置文件
vim /etc/libvirt/qemu/vm3.xml
必须修改的选项:
虚拟机名称:<name>vm2</name>
uuid:<uuid>d0bc50b6-6acc-432b-9953-bc47b2b4aa87</uuid>
磁盘镜像文件名称:<source file='/var/lib/libvirt/images/vm2.qcow2'/>
mac地址:<mac address='52:54:00:04:63:6a'/>
其他可以修改的内容:
cpu:<vcpu placement='static'>2</vcpu>
memory:<memory unit='KiB'>1024000</memory>
disk:可以添加新的虚拟硬盘,需要先创建出磁盘镜像文件。
network:可以添加新的虚拟网卡,复制<interface type='network'>段,修改mac后三位,修改slot(插槽)
cdrom:可以添加新的虚拟光驱
③创建虚拟机,virsh define /etc/libvirt/qemu/vm3.xml
四、kvm基本命令
1、虚拟机配置文件的存储位置/etc/libvirt/qemu;磁盘镜像的存储位置/var/lib/libvirt/images/
2、基本管理命令
①查看
virsh list,查看正在运行的虚拟机
virsh list --all 查看所有的虚拟机,包括关机的
virsh dumpxml name 查看kvm虚拟机配置文件
virsh edit name 修改node6的配置文件,如果使用vim修改需要重启libvirtd服务
②启动
virsh start vm1 开启vm1虚拟机
virsh suspend vm1 暂停 vm1虚拟机
virsh resume vm1 恢复vm1虚拟机
③关闭
virsh shutdown vm1
④重启
virsh reboot vm1 重启,有关机过程
⑤重置
virsh reset vm1 强制重启,没有关机过程
⑥删除
virsh undefine vm1,虚拟机开机时无法删除
⑦开机自动
virsh autostart vm1
virsh autostart --disable vm1 取消开机启动
3、给虚拟机添加新硬件
①图形方式
首先,关闭要添加硬件的虚拟机,双击虚拟机,在打开的对话框点击上方的View,点击Details,点击Add Hardware可以选择要添加的虚拟硬件。
②修改配置文件方式
在配置文件内增加虚拟硬件的标签,例如虚拟硬盘,修改加粗内容
4、虚拟机克隆
①图形界面
Applications(左上角)-----> System Tools ------>Virtual Machine Manager,关闭要克隆的虚拟机,右键选择Clone
②字符终端,命令克隆
virt-clone -o vm1 --auto-clone -o(origin源) 要克隆的虚拟机
virt-clone -o vm1 -n vm2 --auto-clone -n 克隆出的虚拟机的名字
virt-clone -o vm1 -n vm2 -f /var/lib/libvirt/images/vm2.img 指定磁盘镜像
5、虚拟机磁盘镜像文件
①磁盘镜像文件格式:
raw 原始格式,性能最好。直接分配指定的空间。
qcow2 性能上还是不如raw,但是raw不支持快照,qcow2支持快照。用多少空间分配多少空间。
默认安装好的用的是raw格式,所有做快照要把他转换成qcow2格式
qemu-img convert -f raw -O qcow2 /var/lib/libvirt/images/rhel5u8-1.img /var/lib/libvirt/images/rhel5u8-1_qcow2.img
②建立qcow2格式磁盘文件: qemu-img create -f qcow2 test.qcow2 20G -f指定格式
建立raw格式磁盘文件: qemu-img create -f raw test.raw 20G 大小20G
③查看已经创建的虚拟磁盘文件: qemu-img info test.qcow2
6、快照
创建快照:virsh snapshot-create-as rhel5u8-1 rhel5u8-1.snap
恢复快照:先关虚拟机,virsh snapshot-revert rhel5u8-1 rhel5u8-1.snap
删除快照:virsh snapshot-delete --snapshotname rhel5u8-1.snap2 rhel5u8-1
查看快照:virsh snapshot-list rhel5u8-1
7、热迁移
两个虚拟机在同一网段,并且要做互相解析,同一个大版本的系统,从高版本系统上不可以往低版本系统上迁移,反过来可以
比如从6.5不能迁移到6.4,但是从6.4可以迁移到6.5。镜像池都用nfs共享存储 。
①在图形界面上操作,在KVM-A上用虚拟机管理器连接KVM-B,File---------> Add Connection
②右键点击要迁移的虚拟机,选择 Migrate