centos7部署KVM虚拟化平台详解

心已赠人 2021-11-10 11:28 577阅读 0赞

KVM自Linux 2.6.20版本后就直接整合到Linux内核,它依托CPU虚拟化指令集实现高性能的虚拟化支持。它与Linux内核高度整合,因此在性能、安全性、兼容性、稳定性上都有很好的表现。
在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程。因此它可以很方便地与Linux系统中的安全模块进行整合(SELinux),可以灵活的实现硬件资源的管理和分配,KVM虚拟化的架构图如下:

centos7部署KVM虚拟化平台详解

话不多说,开始搭建KVM虚拟化平台:

1、安装:

  1. [root@localhost media]# yum -y groupinstall "GNOME Desktop" #安装GNOME桌面环境
  2. [root@localhost media]# yum -y install qemu-kvm #KVM模块
  3. [root@localhost media]# yum -y install qemu-kvm-tools #KVM调试工具,可不安装
  4. [root@localhost media]# yum -y install virt-install #构建虚拟机的命令行工具
  5. [root@localhost media]# yum -y install qemu-img #qemu组件,创建磁盘、启动虚拟机等
  6. [root@localhost media]# yum -y install bridge-utils #网络支持工具
  7. [root@localhost media]# yum -y install libvirt #虚拟机管理工具
  8. [root@localhost media]# yum -y install virt-manager #图形界面管理虚拟机
  9. [root@localhost media]# yum -y install libguestfs-tools #用来管理虚拟机磁盘格式
  10. [root@localhost ~]# ls -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
  11. #将系统默认运行的target更改为graphical.target,若不执行该命令,重启时可能会报错。

2、安装完毕后,需重启系统,执行下面命令对系统进行检查:

  1. [root@localhost ~]# cat /proc/cpuinfo | grep vmx
  2. #查看Intel的CPU是否支持虚拟化,若是AMD的CPU,需 “cat /proc/cpuinfo | grep smv”
  3. [root@localhost ~]# lsmod | grep kvm #检查KVM模块是否安装
  4. kvm_intel 170181 0
  5. kvm 554609 1 kvm_intel
  6. irqbypass 13503 1 kvm
  7. [root@localhost ~]# systemctl start libvirtd #启动libvirtd服务
  8. [root@localhost ~]# systemctl enable libvirtd

3、设置KVM网络:

在libvirt中运行KVM网络有两种方法:NAT和Bridge,默认是NAT。
关于两种模式的说明如下:
(1)NAT模式:也是用户模式,数据包由NAT方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络,所以一般不会用到。
(2)Bridge:也就是桥接模式,这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持。

我这里以Bridge(桥接模式)为例:

  1. [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
  2. TYPE=Ethernet
  3. BOOTPROTO=none #将这项改为none
  4. DEFROUTE=yes
  5. PEERDNS=yes
  6. PEERROUTES=yes
  7. IPV4_FAILURE_FATAL=no
  8. IPV6INIT=yes
  9. IPV6_AUTOCONF=yes
  10. IPV6_DEFROUTE=yes
  11. IPV6_PEERDNS=yes
  12. IPV6_PEERROUTES=yes
  13. IPV6_FAILURE_FATAL=no
  14. IPV6_ADDR_GEN_MODE=stable-privacy
  15. NAME=ens33
  16. DEVICE=ens33
  17. ONBOOT=yes
  18. BRIDGE=br0 #添加该行,若有UUID的配置项,建议删除。
  19. #将网卡ens33的文件复制一份改名为br0
  20. [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
  21. TYPE=Bridge #将type改为Bridge
  22. BOOTPROTO=static #这里根据实际情况改为static或dhcp
  23. DEFROUTE=yes
  24. PEERDNS=yes
  25. PEERROUTES=yes
  26. IPV4_FAILURE_FATAL=no
  27. IPV6INIT=yes
  28. IPV6_AUTOCONF=yes
  29. IPV6_DEFROUTE=yes
  30. IPV6_PEERDNS=yes
  31. IPV6_PEERROUTES=yes
  32. IPV6_FAILURE_FATAL=no
  33. IPV6_ADDR_GEN_MODE=stable-privacy
  34. NAME=br0 #改名字
  35. DEVICE=br0 #改名字
  36. ONBOOT=yes
  37. IPADDR=192.168.1.1 #该ip将为宿主机的IP地址
  38. GATEWAY=192.168.1.254
  39. [root@localhost ~]# systemctl restart network #重启网络服务
  40. [root@localhost ~]# ifconfig #确认IP地址信息
  41. br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  42. inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
  43. inet6 fe80::db0f:ab79:54a1:241b prefixlen 64 scopeid 0x20<link>
  44. ether 00:0c:29:1a:e0:46 txqueuelen 1000 (Ethernet)
  45. RX packets 50 bytes 4155 (4.0 KiB)
  46. RX errors 0 dropped 0 overruns 0 frame 0
  47. TX packets 58 bytes 7046 (6.8 KiB)
  48. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  49. ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  50. ether 00:0c:29:1a:e0:46 txqueuelen 1000 (Ethernet)
  51. RX packets 1062 bytes 95264 (93.0 KiB)
  52. RX errors 0 dropped 0 overruns 0 frame 0
  53. TX packets 688 bytes 81579 (79.6 KiB)
  54. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

4、管理KVM:

  1. [root@localhost /]# virt-manager #打开图形管理软件,执行该命令后出现以下界面

centos7部署KVM虚拟化平台详解

创建存储池:
centos7部署KVM虚拟化平台详解

centos7部署KVM虚拟化平台详解centos7部署KVM虚拟化平台详解

再以同样的操作创建一个iso镜像存储池,完成后如下:

centos7部署KVM虚拟化平台详解

创建存储卷:
centos7部署KVM虚拟化平台详解

完成后,如下点击来创建虚拟机:
[root@localhost ~]# cp /dev/cdrom /kvm/iso/centos7.iso #先复制光盘镜像到指定目录下

centos7部署KVM虚拟化平台详解

centos7部署KVM虚拟化平台详解
centos7部署KVM虚拟化平台详解
centos7部署KVM虚拟化平台详解

根据需求给硬件资源:

centos7部署KVM虚拟化平台详解

创建自定义存储:

centos7部署KVM虚拟化平台详解

centos7部署KVM虚拟化平台详解

定义虚拟机名称,并单击“完成”:
centos7部署KVM虚拟化平台详解

单击“完成”后,会自动弹出该虚拟机的窗口,安装系统吧,这里和平时安装系统一样,就省略了:

centos7部署KVM虚拟化平台详解

KVM虚拟化平台至此已部署完成,下面附加一些常用的管理命令:

  1. [root@localhost ~]# virsh -h #查看命令帮助
  2. [root@localhost ~]# ls /etc/libvirt/qemu #查看KVM的配置文件存放目录
  3. test01.xml是虚拟机系统实例的配置文件)
  4. networks test01.xml
  5. [root@localhost ~]# virsh list --all #查看虚拟机状态
  6. Id 名称 状态
  7. ----------------------------------------------------
  8. 2 test01 running
  9. [root@localhost ~]# virsh shutdown test01 #关闭虚拟机
  10. [root@localhost ~]# virsh start test01 #开启虚拟机
  11. [root@localhost ~]# virsh destroy test01 #强制关机
  12. [root@localhost ~]# virsh create /etc/libvirt/qemu/test01.xml #通过配置文件启动虚拟机
  13. [root@localhost ~]# virsh suspend test01 #挂起虚拟机
  14. [root@localhost ~]# virsh resume test01 #从挂起状态恢复运行虚拟机
  15. [root@localhost ~]# virsh autostart test01 #设置虚拟机伴随宿主机自动启动
  16. #虚拟机的删除与添加:
  17. [root@localhost ~]# virsh dumpxml test01 > /etc/libvirt/qemu/test02.xml #导出虚拟机配置
  18. #删除虚拟机:
  19. [root@localhost ~]# virsh shutdown test01
  20. [root@localhost ~]# virsh undefine test01
  21. [root@localhost ~]# virsh list --all #查看虚拟机是否被删除
  22. Id 名称 状态
  23. ----------------------------------------------------
  24. #通过备份的配置文件重新定义虚拟机:
  25. [root@localhost ~]# cd /etc/libvirt/qemu/
  26. [root@localhost qemu]# mv test02.xml test01.xml
  27. [root@localhost qemu]# virsh define test01.xml
  28. #修改虚拟机配置(内存大小等)信息:
  29. [root@localhost qemu]# vim /etc/libvirt/qemu/test01.xml
  30. [root@localhost qemu]# virt-df -h test01 #在宿主机上查看虚拟机磁盘信息

克隆虚拟机:

  1. [root@localhost qemu]# virt-clone -o test01 -n test02 -f /kvm/store/test02.qcow2
  2. #将test01克隆为test02
  3. [root@localhost qemu]# virsh list --all #查看现有虚拟机
  4. Id 名称 状态
  5. ----------------------------------------------------
  6. - test01 关闭
  7. - test02 关闭

虚拟机创建快照:
KVM虚拟机要使用快照功能,磁盘格式必须为qcow2

  1. [root@localhost qemu]# virsh snapshot-create test01 #对虚拟机test01创建快照
  2. [root@localhost qemu]# virsh snapshot-list test01 #查看快照信息
  3. 名称 生成时间 状态
  4. ------------------------------------------------------------
  5. 1560191837 2019-06-11 02:37:17 +0800 shutoff
  6. [root@localhost qemu]# virsh snapshot-revert test01 1560191837
  7. #恢复虚拟机状态至1560191837
  8. [root@localhost qemu]# virsh snapshot-delete test01 1560191837 #删除快照

发表评论

表情:
评论列表 (有 0 条评论,577人围观)

还没有评论,来说两句吧...

相关阅读

    相关 KVM虚拟平台搭建!!!

    一、虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模 拟多CPU并