KVM虚拟化
实验材料
centos7(最好有图形化界面)一台,centos7或其他镜像一个,
准备工作
1)安装方式
首先开启虚拟机的虚拟化功能
我这里演示一些没有图形界面的操作
Xshell连接,然后配置yum,mount就不说了
[root@CentOS7-02 ~]# yum groupinstall -y "GNOME Desktop"
(上面这部是安装图形化界面,如果你有就不用执行这条了)
有的包会提示已安装不用管他
[root@CentOS7-02 ~]# yum -y install qemu-kvm
[root@CentOS7-02 ~]# yum -y install qemu-kvm-tools
[root@CentOS7-02 ~]# yum -y install virt-install
[root@CentOS7-02 ~]# yum -y install qemu-img
[root@CentOS7-02 ~]# yum -y install bridge-utils
[root@CentOS7-02 ~]# yum -y install libvirt
[root@CentOS7-02 ~]# yum -y install virt-manager
2)查看CUP虚拟化
这一步,一般真的服务器才可以看到,如果你是vm虚拟机做的,只要打开了上面那个虚拟化功能就行了
intel类型
[root@CentOS7-02 ~]# cat /proc/cpuinfo | grep vmx
AMD类型
[root@CentOS7-02 ~]# cat /proc/cpuinfo | grep smv
具体你是那种类型,取决你的真机,
真机中"计算机右机,属性查看, 处理器那项"
3)图形界面
刚刚安装了图形界面,现在要优化一下,要执行如下命令,要不然启动时会报错的
[root@CentOS7-02 ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target (默认启动将变为图形界面)
重启后进行简单配置就可以进入图形界面了
它会让创建用户,可以随意创建
打开一个终端
[zhangsan@CentOS7-02 ~]$ su root (下面输入原来的root密码)
密码:
4)开启libvirtd服务,需要这个服务支持
[root@CentOS7-02 ~]# systemctl start libvirtd
[root@CentOS7-02 ~]# systemctl enable libvirtd
5)设置KVM网络
有两种模式
用户模式:NAT方式,可以访问外网但是,外部无法访问虚拟机网络
桥接模式: 独立主机,外部可以访问内部虚拟机,需要有限网卡支持,一般网卡都支持
这里使用桥接模式
[root@CentOS7-02 ~]# ifconfig (查看现在使用的网卡名称,我这是ens33)
[root@CentOS7-02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
滑倒最后添加一项
BRIDGE=br0
[root@CentOS7-02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
添加如下配置项,除了ip网关什么的可以改其他,不要乱写,最按照我这里来
TYPE=Bridge
BOOTPROTO=static
PEERNS=yes
PEERROUTES=yes
IPV4_FALLURE_FATAL=no
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.254
[root@CentOS7-02 ~]# /etc/init.d/network restart
会发现Xshell断了,因为ip改变了,当然如果上面那个配置文件中的ip和你原来的一样就不会断掉
重新连新的网卡地址100.100就ok
KVM新建虚拟机
首先关掉虚拟机,添加一块30G磁盘(一会用来做存放虚拟机的磁盘)
[root@CentOS7-02 ~]# fdisk -l (就可以看到新的磁盘名称,一般第二块都是“ /dev/sdb")
[root@CentOS7-02 ~]# fdisk /dev/sdb
输入n
p (主分区)
后面一直回车,当然我这里是使用了全部磁盘空间,你可以自己设置
w (保存退出)
[root@CentOS7-02 ~]# mkfs -t xfs /dev/sdb1 (格式化,)
[root@CentOS7-02 ~]# mkdir /kvm (这是一个挂载点)
[root@CentOS7-02 ~]# vim /etc/fstab (添加如下)/dev/sdb1 /kvm xfs defaults 0 0
[root@CentOS7-02 ~]# reboot
[root@CentOS7-02 ~]# df -hT/dev/sdb1 xfs 30G 33M 30G 1% /kvm
[root@CentOS7-02 ~]# mkdir /kvm/disk (存放虚拟机磁盘文件位置,磁盘文件一会创建)
[root@CentOS7-02 ~]# mkdir /kvm/iso (存放iso镜像文件的位置)
使用Xshell连接,进入/kvm/iso目录中,包centos7镜像拖入,速度较慢请耐心等待
进入到图形化界面中,打开一个终端
[root@CentOS7-02 ~]# virt-manager (打开图形化管理软件)
名称下面有个 GEMU/KVM 双击这个
存储,然后按我下图来
然后,记得下面这部要点击完成
然后以相同的方法,就是名字有变化,创建一个叫centos7_iso名字,类型还是默认,
路径填写/kvm/iso
(这个是一会安装系统要的的镜像目录位置,镜像我们前面已经提前拖进去了)创建存储池按下图来就行,这个只创建一个
上面记得按完成
然后关掉那个连接详情的总窗口打开到最初的那个界面,如果没有可以再次执行
[root@CentOS7-02 ~]# virt-manager
点击小电脑图标
按我下图来,点击浏览
这步简单,我就不给图片了,内存和CUP可以自定义,CPU一般是一个,点击完成,进到下图界面
勾选“选择或创建自定义,管理,选择刚刚的存储池”
名称自定义,你也可以勾选“在安装前自定义配置"最一些简单的配置,我这里直接点击完成"
然后等待一会直接弹出centos7安装界面,就和光盘安装一样了
选择最长的那个,是图形界面安装系统
这里因为是测试,所以你安装的时候软件选择就选择最小安装就可以了
等待安装成功即可
使用kvm命令集管理虚拟机
1.KVM基本功能管理
1)查看命令帮助
[root@CentOS7-02 ~]# virsh -h
2)查看KVM的配置文件存放目录
[root@CentOS7-02 ~]# ls /etc/libvirt/qemu (这个位置不会变,和前面的配置的位置没有关系)
centos7.0.xml
networks
(centos7.0.xml是虚拟机系统实例的配置文件)
3)查看虚拟机状态
[root@CentOS7-02 ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
1 centos7.0 running
4)虚拟机的开机和运行
要确保acpid服务运行 acpid左右是KVM的进程,只要安装了KVM服务一般没有问题
[root@CentOS7-02 ~]# virsh shutdown centos7.0 (后面的是虚拟机的名字)
域 centos7.0 被关闭
[root@CentOS7-02 ~]# virsh start centos7.0
域 centos7.0 已开始
5),有时候普通关闭会关不上,可以通过电源强制关闭虚拟机
[root@CentOS7-02 ~]# virsh destroy centos7.0
域 centos7.0 被删除
6)通过配置文件启动虚拟机系统实例
[root@CentOS7-02 ~]# virsh list --all (确保虚拟机是关闭状态)
Id 名称 状态
----------------------------------------------------
- centos7.0 关闭
如果关不上运行这个命令
[root@CentOS7-02 ~]# virsh destroy centos7.0
[root@CentOS7-02 ~]# virsh create /etc/libvirt/qemu/centos7.0.xml
域 centos7.0 被创建(从 /etc/libvirt/qemu/centos7.0.xml)
[root@CentOS7-02 ~]# virsh list --all
7)挂起虚拟机
[root@CentOS7-02 ~]# virsh suspend centos7.0
域 centos7.0 被挂起
查看
[root@CentOS7-02 ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
4 centos7.0 暂停
8)恢复虚拟机
[root@CentOS7-02 ~]# virsh resume centos7.0
域 centos7.0 被重新恢复
[root@CentOS7-02 ~]# virsh list --all
9)配置虚拟机实例伴随宿主机自动启动
[root@CentOS7-02 ~]# reboot (等系统起来,不要手动打开虚拟机,查看)
[root@CentOS7-02 ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
1 centos7.0 running
[root@CentOS7-02 ~]# cd /etc/libvirt/qemu/autostart/ (这个目录中是要开机自启的项)
[root@CentOS7-02 autostart]# ls
centos7.0.xml
10)导出虚拟机配置
[root@CentOS7-02 autostart]# virsh dumpxml centos7.0 > /etc/libvirt/centos7.2.xml
11)虚拟机删除与添加,通过配置文件
12)修改虚拟机配置信息(内存大小)
[root@CentOS7-02 qemu]# virsh shutdown centos7.0
[root@CentOS7-02 qemu]# vim /etc/libvirt/qemu/centos7.0.xml
[root@CentOS7-02 qemu]# virsh start centos7.0
你也可以去图形界面,虚拟机运行时的框,那点击那个小灯泡改,改磁盘也是如下
2.KVM文件管理
1)查看当前磁盘格式
[root@CentOS7-02 ~]# qemu-img info /kvm/disk/centos7_kvm.qcow2image: /kvm/disk/centos7_kvm.qcow2
file format: qcow2
virtual size: 9.0G (9663676416 bytes)
disk size: 1.2G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
2)转换格式,适用于上面的磁盘raw格式转换qcow2,不可以倒着转换,如果你的也是qcow2的就不要执行,因为已经是qocw2的了.img文件不会存在的
[root@CentOS7-02 ~]# qemu-img convert -f raw -o qcow2 /kvm/disk/ceontos7.img /kvm/disk/centos7.qocw2
3)virt-cat命令,类似cat命令
[root@CentOS7-02 ~]# virt-cat /kvm/disk/centos7_kvm.qcow2 /etc/sysconfig/grubGRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
3)virt-edit,可以直接编辑KVM虚拟机中的文件,如下是DNS文件
[root@CentOS7-02 ~]# virt-edit -a /kvm/disk/centos7_kvm.qcow2 /etc/resolv.conf
4)查看虚拟机磁盘信息
[root@CentOS7-02 ~]# virt-df -h centos7.0文件系统 大小 已用空间 可用空间 使用百分比%
centos7.0:/dev/sda1 1014M 92M 922M 10%
centos7.0:/dev/centos/root 7.1G 864M 6.2G 12%
3.虚拟机克隆
1)查看虚拟机状态,保证虚拟机是关闭状态
[root@CentOS7-02 ~]# virsh list --all
2)从centos7.0克隆一个叫centos7.1,-f指定克隆后磁盘放的位置
[root@CentOS7-02 ~]# virt-clone -o centos7.0 -n centos7.1 -f /kvm/disk/centos7.1.qcow2
3)查看状态
[root@CentOS7-02 ~]# virsh list --allId 名称 状态
----------------------------------------------------
- centos7.0 关闭
- centos7.1 关闭
4) 启动克隆机7.1
[root@CentOS7-02 ~]# virsh start centos7.1域 centos7.1 已开始
4.虚拟机快照
KVM虚拟机使用快照功能,磁盘必须是qcow2格式,
1)对centos7.0创建快照
[root@CentOS7-02 ~]# virsh shutdown centos7.1 (关闭克隆机)
[root@CentOS7-02 ~]# virsh start centos7.0
我这是开机快照,你也可以把虚拟机关机做快照
[root@CentOS7-02 ~]# virsh snapshot-create centos7.0
已生成域快照 1568237944
2)查看虚拟机快照版本
[root@CentOS7-02 ~]# virsh snapshot-current centos7.0
3)列出所有快照
[root@CentOS7-02 ~]# virsh snapshot-create centos7.0 (又做了一个快照,方便看效果)
[root@CentOS7-02 ~]# virsh snapshot-list centos7.0
名称 生成时间 状态
------------------------------------------------------------
1568237944 2019-09-12 05:39:04 +0800 running
1568238564 2019-09-12 05:49:24 +0800 running
4)恢复至1568237944 (这里的号我们的是肯定不一样的,按你们的快照列表来)
[root@CentOS7-02 ~]# virsh snapshot-revert centos7.0 1568237944
5)删除快照,如果你现在是恢复了那个快照了的,删除了快照不影响你使用现在的虚拟机
实验完毕