目录
(3)将Linux系统的ISO文件拷贝到/opt目录下,并关闭存储设置
(12)修改虚拟机配置信息(用来修改系统内存大小、磁盘文件等信息)
KVM组成
- KVM Driver
- 虚拟机创建
- 虚拟机内存分配
- 虚拟CPU寄存器读写
- 虚拟CPU运行
QUME
- 模拟pc硬件的用户控件组件
- 提供I/O设备模型及访问外设的途径
KVM三大模式
- 客户模式(客户是你的虚拟机)
- 用户模式(qemu)
- 内核模式(模拟cpu,内存等)
注意:客户模式饱和用户模式和内核模式,用户模式和内核模式也可以单独看待组成三大模式
部署KVM虚拟化平台
准备 kvm 虚拟化环境
1.安装
(1)YUM 安装 KVM
yum -y install qemu-kvm
yum -y install qemu-kvm-tools
yum -y install virt-install
yum -y install qemu-img
yum -y install bridge-utils
yum -y install libvirt
yum -y install virt-manager
yum -y install libguestfs-tools
备注:
qemu-kvm : kvm核心包–虚拟操作系统模拟器加速模块
qemu-kvm-tools :qemu-kvm的工具包
virt-install:虚拟机安装工具
qemu-img :是QEMU的磁盘管理工具
bridge-utils:虚拟机与外界通信的命令管理工具
libvirt:必须要装的核心工具
virt-manager:虚拟机图形管理工具(宿主机有桌面环境时可以考虑安装,命令操作或者远程控制则不需要)
QEMU是“Quick Emulator”的缩写,是一个用C语言编写的开源虚拟化软件。
QEMU(Quick Emulator)快速仿真器
libguestfs-tools:用于访问虚拟机的磁盘映像文件提供的一组命令
(2)关机,设置CPU支持虚拟化,然后开机
(3)开机后验证
[root@kvm01 ~]# cat /proc/cpuinfo | grep vmx //查看cpu是否支持虚拟化技术
[root@kvm01 ~]# lsmod | grep kvm //查看内核是否支持虚拟化技术
(4)开启 libvirtd 服务
安装完成后还需要开启 libvirtd 服务,以开启相关支持。
[root@kvm01 ~]# systemctl start libvirtd
[root@kvm01 ~]# systemctl enable libvirtd
2.设置 KVM 网络
这里以 Bridge(桥接)为例进行操作演示
[root@kvm01 ~]# cd /etc/sysconfig/network-scripts/
[root@kvm01 network-scripts]# cp ifcfg-ens33 ifcfg-br0
[root@kvm01 ~]# vim ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.10.108
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=223.6.6.6
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0 //将物理网卡修改为桥接模式(作用类似于交换机)
[root@kvm01 ~]# vim ifcfg-br0
TYPE=Bridge //将虚拟网卡设置为桥接模式
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.10.108 //注意设置IP地址
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=223.6.6.6
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0 //修改网卡名称
DEVICE=br0
ONBOOT=yes
[root@kvm01 ~]# systemctl restart network //重启网络服务
[root@kvm01 ~]# ifconfig
备注:
在此处做个快照,为后面章节做好实验环境
在另一台kvm主机上重复以上操作,最后也做个快照
3.KVM 管理
[root@kvm01 ~]# virt-manager //启动虚拟系统管理器
双击蓝色选中部分会弹出一个页面(右键点击会出现创建选项,下方会进行创建虚拟机操作)
点击做下角蓝色"+"号创建存储池
(1)创建存储池
存储池的名称为:bdqn
存储池的目录为:/data_kvm/store
(2)创建存储卷
在bdqn的存储池中添加存储卷
存储卷名称为:test01
卷最大容量10G
(3)将Linux系统的ISO文件拷贝到/opt目录下,并关闭存储设置
可以使用xshell的ftp传输,速度较快
(4)在kvm01的主机上新建虚拟机,名称为test01
使用 KVM 命令集管理虚拟机
1:KVM 基本功能管理
(1)查看命令帮助
[root@kvm01 ~]# virsh -h
(2)查看 KVM 的配置文件存放目录
[root@kvm01 ~]# ls /etc/libvirt/qemu/
(3)查看虚拟机状态
[root@kvm01 ~]# virsh list --all
(4)虚拟机关机与开机
[root@kvm01 ~]# virsh shutdown test01
[root@kvm01 ~]# virsh start test01
(5)强制实例系统关闭电源
[root@kvm01 ~]# virsh destroy test01
(6)通过配置文件启动虚拟机系统实例
[root@kvm01 ~]# virsh create /etc/libvirt/qemu/test01.xml
[root@kvm01 ~]# virsh list --all
(7)挂起虚拟机
[root@kvm01 ~]# virsh suspend test01
[root@kvm01 ~]# virsh list --all
(8)恢复虚拟机
[root@kvm01 ~]# virsh resume test01
[root@kvm01 ~]# virsh list --all
(9)配置虚拟机实例伴随宿主机自动启动
[root@kvm01 ~]# virsh autostart test01
(10)导出虚拟机配置
[root@kvm01 ~]# virsh dumpxml test01 > /etc/libvirt/qemu/test02.xml
(11)虚拟机的删除与添加
删除虚拟机。
[root@kvm01 ~]# virsh shutdown test01
[root@kvm01 ~]# virsh undefine test01
查看删除结果,test01 的配置文件被删除,但是磁盘文件不会被删除。
[root@kvm01 ~]# ls /etc/libvirt/qemu/
通过 virsh list --all 查看不到 test01 的信息,说明此虚拟机被删除。
[root@kvm01 ~]# virsh list --all
通过备份的配置文件重新定义虚拟机。
[root@kvm01 ~]# cd /etc/libvirt/qemu
[root@bdqn qemu]# mv test02.xml test01.xml
重新定义虚拟机。
[root@bdqn qemu]# virsh define test01.xml
查看虚拟机信息。
[root@bdqn qemu]# virsh list --all
(12)修改虚拟机配置信息(用来修改系统内存大小、磁盘文件等信息)
直接通过 vim 命令修改。
[root@kvm01 ~]# vim /etc/libvirt/qemu/test01.xml
通过 virsh 命令修改。
[root@kvm01 ~]# virsh edit test01
3. KVM 文件管理
(1)查看当前磁盘格式
[root@kvm01 ~]# qemu-img info /data_kvm/store/test01.qcow2
备注:
如果虚拟机磁盘文件不是 qcow2 格式,可以通过 qemu-img 命令转换磁盘文件格式,
如执行以下操作可以将 test01 虚拟机 raw 格式磁盘转换至 qcow2 格式。
[root@kvm01 ~]# virsh shutdown test01
[root@kvm01 ~]# qemu-img convert -f raw -O qcow2 /data_kvm/store/test01.img /data_kvm/store/test01.qcow2
执行转换磁盘格式的命令后还需要修改 test01 的 xml 配置文件中磁盘的类型与磁盘文件名。
[root@kvm01 ~]# virsh edit test01
…… //省略部分内容
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/data_KVM/store/test01.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
(2)virt-cat 命令,类似于 cat 命令
使用这个命令需要安装 libguestfs-tools-c 工具包。
[root@kvm01 ~]# virt-cat -a /data_kvm/store/test01.qcow2 /etc/sysconfig/grub
(3)virt-edit 命令
virt-edit 命令,用于编辑文件,用法与 vim 基本一致。
[root@kvm01 ~]# virt-edit -a /data_kvm/store/test01.qcow2 /etc/resolv.conf
(4)virt-df 命令
virt-df 命令用于查看虚拟机磁盘信息。
[root@kvm01 ~]# virt-df -h test01
4. 虚拟机克隆
(1)查看虚拟机状态
[root@kvm01 ~]# virsh list --all
(2)从 test01 克隆 test02
[root@kvm01 ~]# virt-clone -o test01 -n test02 -f /data_kvm/store/test02.qcow2
(3)查看虚拟机状态
[root@kvm01 ~]# virsh list --all
(4)启动虚拟机
[root@kvm01 ~]# virsh start test02
5. 虚拟机快照
KVM 虚拟机要使用镜像功能,磁盘格式必须为 qcow2。下面介绍 KVM 虚拟机快照备
份的过程。
(1)对 test01 创建快照
[root@kvm01 ~]# virsh snapshot-create test01
已生成域快照 1503494464
(2)查看虚拟机快照版本信息
[root@kvm01 ~]# virsh snapshot-current test01
(3)查看快照信息
[root@kvm01 ~]# virsh snapshot-list test01
(4)创建新快照
[root@kvm01 ~]# virsh snapshot-create test01
(5)查看快照信息
[root@kvm01 ~]# virsh snapshot-list test01
(6)恢复虚拟机状态
[root@kvm01 ~]# virsh snapshot-revert test01 1503494464
(7)查看虚拟机快照版本信息
[root@kvm01 ~]# virsh snapshot-current test01
(8)删除快照
[root@kvm01 ~]# virsh snapshot-delete test01 1503494464