KVM虚拟化的作用:
虚拟化就是把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的一项技术。
KVM虚拟化的优势:
- 减少服务器数量,降低硬件采购成本。
- 资源利用率最大化。
- 降低机房空间、散热、用电消耗的成本。
- 硬件资源可动态调整,提高企业IT业务灵活性。
- 高可用性。
- 在不中断服务的情况下进行物理硬件调整。
- 降低管理成本
- 具备更高效的灾备能力。
(一)、准备工作
1、一台CentOS 7 虚拟机 (图形化),4G 内存 ,添加一块60 G硬盘,开启虚拟化功能,可将此虚拟机CPU 内核数调整为2
2、开机后,连上Xshell ,检查KVM模块是否安装
[root@localhost ~]# lsmod | grep kvm
检测CPU 是否支持;vmx 代表Intel CPU ; svm 代表 AMD 的CPU
[root@localhost ~]# grep -E '(vmx|svm)' /proc/cpuinfo
3、将新加的60G 的硬盘分,并扩容到"/"分区里
[root@localhost ~]# fdisk /dev/sdb (进入sdb磁盘里)
n (创建)
p (创建主分区)
回车
回车
回车
wq (保存退出)
(二)、安装软件包 (yum 安装)
[root@localhost ~]# mount /dev/cdrom /media/cdrom (挂光盘)
[root@localhost ~]# yum -y install qemu-kvm libvirt virt-install virt-manager
##用户空间的工具、管理kvm虚拟机、安装kvm虚拟机、图形化虚拟机管理器
[root@localhost ~]# systemctl start libvirtd (启用)
[root@localhost ~]# systemctl enable libvirtd (开启自启)
(三)、设置KVM网络
1)宿主服务器安装了KVM,首先要设定网络,在libvirt中运行KVM网络有两种方法NAT和Bridge,默认是NAT。下面以桥接为例
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-ens33
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
#IPADDR=192.168.1.110
#NETMASK=255.255.255.0
BRIDGE="br0"
[root@localhost network-scripts]# vim ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.110
NETMASK=255.255.255.0
[root@localhost network-scripts]# systemctl restart network (重启网卡)
重启之后,会发现Xshell掉了;重新连接一下就好
[root@localhost ~]# ifconfig ens33 (查看ens33接口地址)
[root@localhost ~]# ifconfig br0 (查看br0接口地址)
如果br0网卡显示有地址,表示桥接成功
(四)、KVM管理
1)打开KVM管理控制台
应用程序–系统工具—终端
[root@localhost ~]# virt-manager
或者
应用程序—系统工具—虚拟系统管理器
2)双击localhost(qemu/kvm)
3)创建两个目录分别用来存储虚拟机和iso镜像
[root@localhost ~]# mkdir -p /data_kvm/store (用来存储虚拟机)
[root@localhost ~]# mkdir /data_kvm/iso (用来存储镜像文件)
[root@localhost ~]# cd /data_kvm/iso/ (cd进入刚才创建的iso目录)
将CentOS7镜像文件传进去
4)选择存储,点击+(新建存储池) 名称设置为ajbn 输入/data_kvm/store 这个位置用于存储后创建的虚拟机
浏览——其他位置——计算机——刚才创建的/data_kvm/store目录
5)按照上面的做法在创建一个镜像存储池,用来存储系统的镜像,方便安装
存储池:ajbn_iso—目录:/data_kvm/iso
浏览——其他位置——计算机——刚才创建的/data_kvm/iso目录
完成以上步骤就可以创建虚拟机了
然后等待一会直接弹出centos7安装界面,就和光盘安装一样了
然后安装一个最小安装就可以了,因为一会要进行测试
(五)、使用KVM命令集管理虚拟机
1.KVM基本功能管理
1)查看命令帮助信息
[root@localhost ~]# virsh -h
2)显示配置文档位置
[root@localhost ~]# ls /etc/libvirt/qemu
centos7.0.xml networks
3)查看虚拟机状态
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
4 centos7.0 running
4)关机
[root@localhost ~]# virsh shutdown centos7.0 (后面是虚拟机的名字)
域 centos7.0 被关闭
[root@localhost ~]# virsh list --all (进行查看)
Id 名称 状态
----------------------------------------------------
- centos7.0 关闭
5)开机
[root@localhost ~]# virsh start centos7.0
域 centos7.0 已开始
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
5 centos7.0 running
6)关闭电源
[root@localhost ~]# virsh destroy centos7.0 (相当于强制关机)
域 centos7.0 被删除
7)通过配置文件启动虚拟机
[root@localhost ~]# virsh create /etc/libvirt/qemu/centos7.0.xml
域 centos7.0 被创建(从 /etc/libvirt/qemu/centos7.0.xml)
8)挂起
[root@localhost ~]# virsh suspend centos7.0
域 centos7.0 被挂起
9)恢复
[root@localhost ~]# virsh resume centos7.0
域 centos7.0 被重新恢复
10)自动随宿主机一起启动
[root@localhost ~]# virsh autostart centos7.0
域 centos7.0标记为自动开始
11)导出虚拟机配置
[root@localhost ~]# virsh dumpxml centos7.0 > /etc/libvirt/qemu/centos7.1.xml
得关闭虚拟机
[root@localhost ~]# virsh shutdown centos7.0
域 centos7.0 被关闭
12)删除虚拟机
[root@localhost ~]# virsh undefine centos7.0
域 centos7.0 已经被取消定义
[root@localhost ~]# ll /etc/libvirt/qemu/ (查看备份文件)
[root@localhost ~]# virsh list --all (查看虚拟机状态)
重命名文件:
[root@localhost ~]# mv /etc/libvirt/qemu/centos7.1.xml /etc/libvirt/qemu/centos7.0.xml
13)通过备份的配置文件重新定义虚拟机
[root@localhost ~]# virsh define /etc/libvirt/qemu/centos7.0.xml (重新定义虚拟机)
[root@localhost ~]# virsh list --all (查看状态)
14)下面两种都可以编辑配置文档
[root@localhost ~]# vim /etc/libvirt/qemu/centos7.0.xml
或:
[root@localhost ~]# virsh edit centos7.0
2.虚拟机克隆
尽量关闭虚拟机进行克隆:
[root@localhost ~]# virt-clone -o centos7.0 -n centos7.1 -f /data_kvm/store/ajbn1.qcow2
3.虚拟机快照
kvm虚拟机使用镜像功能,磁盘格式必须为qcow2.
1)创建快照
[root@localhost ~]# virsh snapshot-create centos7.0
已生成域快照 1601066670
2)查看快照版本信息
[root@localhost ~]# virsh snapshot-current centos7.0
3)查看快照信息
[root@localhost ~]# virsh snapshot-list centos7.0
4)恢复快照到指定
[root@localhost ~]# virsh snapshot-revert centos7.0 1601066670
5)删除快照
[root@localhost ~]# virsh snapshot-delete centos7.0 1601066670
已删除域快照 1601066670