前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >部署 KVM 虚拟化平台

部署 KVM 虚拟化平台

作者头像
小手冰凉
发布2019-09-10 10:47:48
1.2K0
发布2019-09-10 10:47:48
举报
文章被收录于专栏:小手冰凉小手冰凉

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

部署 KVM 虚拟化平台
部署 KVM 虚拟化平台

下面开始安装,在 Centos 的光盘中,已经提供了安装 KVM 所需软件,只需要部署基于光盘镜像的本地 yum 源,直接使用 yum 安装软件即可: yum groupinstall -y “GNOME DeskTop” // 安装 GNOME 桌面环境,如果是的话,则可以省略

代码语言:javascript
复制
yum -y install qemu-kvm                                 // kvm 模块
yum -y install qemu-kvm-tools                        // kvm 调试工具,可不安装
yum -y install virt-install                                  // 构建虚拟机的命令行工具
yum -y install qemu-img                                 // qemu 组件,创建磁盘、启动虚拟机等
yum -y install bridge-utils                                // 网络支持工具
yum -y install libvirt                                        // 虚拟机管理工具
yum -y install virt-manager                            // 图形界面管理虚拟机

注意:在使用 yum 安装完毕桌面后执行“ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target” 命令,将系统默认运行的 target 更改为 graphical.targe。重启后将进入图形界面,若不执行,则重启可能会报错。 安装完毕后,重启系统,查看 CPU 是否支持虚拟化:

代码语言:javascript
复制
[root@localhost /]# cat /proc/cpuinfo | grep vmx            # 对于 Intel 的服务器可以使用此命令查看,只要有输出就说明 CPU 支持虚拟化
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 
.........省略部分
对于 AMD 服务器可以使用如下命令查看:
[root@localhost /]# cat /proc/cpuinfo | grep smv

检查 KVM 模块是否安装:

代码语言:javascript
复制
[root@localhost /]# lsmod | grep kvm
kvm_intel             170181  0 
kvm                   554609  1 kvm_intel
irqbypass              13503  1 kvm

开启服务:

代码语言:javascript
复制
[root@localhost /]# systemctl start libvirtd
[root@localhost /]# systemctl enable libvirtd

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

代码语言:javascript
复制
[root@localhost /]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
BOOTPROTO=none                       // 此处改为 none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=b9f932a2-0dad-4119-a05e-e03322ff94d1
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0                                // 在末尾添加此行
代码语言:javascript
复制
[root@localhost /]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-br0 
[root@localhost /]# vim /etc/sysconfig/network-scripts/ifcfg-br0            # 复制一个网卡配置,并修改
TYPE=Bridge                                // 将类型改为桥接
BOOTPROTO=static                     // 静态
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0                                   // 网卡名称
DEVICE=br0                                
ONBOOT=yes 
IPADDR=192.168.1.10                 // 配置 IP 及网关
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

重启 network 服务:

代码语言:javascript
复制
[root@localhost /]# /etc/init.d/network restart 
Restarting network (via systemctl):                        [  OK  ]       // 输出为 OK 表示成功,反之则为 no 失败。

KVM 管理:

代码语言:javascript
复制
[root@localhost /]# virt-manager                # 打开 图形化虚拟机管理软件
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台

创建存储池:

部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台

以同样的操作创建一个镜像存储池,命名为 iso,目录为/data_kvm/iso/,然后将系统光盘上传到此目录:

部署 KVM 虚拟化平台
部署 KVM 虚拟化平台

在 test 上创建存储卷

部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台
部署 KVM 虚拟化平台

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

代码语言:javascript
复制
[root@localhost ~]# virsh -h                #查看命令帮助
[root@localhost ~]# ls /etc/libvirt/qemu               #查看KVM的配置文件存放目录
(test01.xml是虚拟机系统实例的配置文件)
networks  test01.xml
[root@localhost ~]# virsh list --all               #查看虚拟机状态
 Id    名称                         状态
----------------------------------------------------
 2     test01                         running

[root@localhost ~]# virsh shutdown test01              #关闭虚拟机
[root@localhost ~]# virsh start test01                       #开启虚拟机
[root@localhost ~]# virsh destroy test01                 #强制关机
[root@localhost ~]# virsh create /etc/libvirt/qemu/test01.xml             #通过配置文件启动虚拟机
[root@localhost ~]# virsh suspend test01                 #挂起虚拟机
[root@localhost ~]# virsh resume test01                  #从挂起状态恢复运行虚拟机
[root@localhost ~]# virsh autostart test01                 #设置虚拟机伴随宿主机自动启动

#虚拟机的删除与添加:
[root@localhost ~]# virsh dumpxml test01 > /etc/libvirt/qemu/test02.xml            #导出虚拟机配置
#删除虚拟机:
[root@localhost ~]# virsh  shutdown test01   
[root@localhost ~]# virsh  undefine test01
[root@localhost ~]# virsh list --all             #查看虚拟机是否被删除
 Id    名称                         状态
----------------------------------------------------

#通过备份的配置文件重新定义虚拟机:
[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# mv test02.xml test01.xml 
[root@localhost qemu]# virsh define test01.xml

 #修改虚拟机配置(内存大小等)信息:
 [root@localhost qemu]# vim /etc/libvirt/qemu/test01.xml 

[root@localhost qemu]# virt-df -h test01         #在宿主机上查看虚拟机磁盘信息
克隆虚拟机:

[root@localhost qemu]# virt-clone -o test01 -n test02 -f /kvm/store/test02.qcow2
#将test01克隆为test02
[root@localhost qemu]# virsh list --all                 #查看现有虚拟机
 Id    名称                         状态
----------------------------------------------------
 -     test01                         关闭
 -     test02                         关闭
虚拟机创建快照:
KVM虚拟机要使用快照功能,磁盘格式必须为qcow2

[root@localhost qemu]# virsh snapshot-create test01      #对虚拟机test01创建快照
[root@localhost qemu]# virsh snapshot-list test01                   #查看快照信息
 名称               生成时间              状态
------------------------------------------------------------
 1560191837           2019-06-11 02:37:17 +0800 shutoff
[root@localhost qemu]# virsh snapshot-revert test01 1560191837
#恢复虚拟机状态至1560191837
[root@localhost qemu]# virsh snapshot-delete test01 1560191837                   #删除快照
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档