第十四章——部署KVM虚拟化平台(应用——linux高级管理)

三期总目录链接

目录

 一、准备工作

二、安装软件包  (用本地yum  安装)

三、使用KVM 命令集管理虚拟机

kvm基本功能管理


KVM:是Kernel Virtual Machine的简写,目前Linux发行版必须在64位的系统环境才能运行KVM,同时硬件需要支持VT技术。KVM的前身是QEMU,2008年被 Red Hat公司收购并获得一项hypervisor技术,不过 Red Hat的KVM被认为将成为未来Linux hypervisor的主流。准确来说,KVM 仅仅是 Linux内核的一个模块。管理和创建完整的KVM虚拟机,需要更多的辅助工具。

 一、准备工作

 1、一台CentOS 7 虚拟机 (图形化),4G 内存 ,添加一块90 G硬盘,开启虚拟化功能,可将此虚拟机CPU 内核数调整为4(CPU根据自己真实机进行分配

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第1张图片

2、 开机检测主机的KVM内核模块

[root@C7--01 ~]# lsmod | grep kvm
kvm_intel             170086  0 
kvm                   566340  1 kvm_intel
irqbypass              13503  1 kvm

 检测CPU 是否支持;vmx 代表Intel CPU ; svm 代表 AMD 的CPU

[root@C7--01 ~]# grep -E '(vmx|svm)'  /proc/cpuinfo
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat

3、将新加的80G 的硬盘分区格式化

[root@C7--01 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x4b6ea466 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n                           #添加一个新的分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)    #  p 表示创建主分区
   e   extended                                   #  e 表示创建扩展分区
Select (default p): p
分区号 (1-4,默认 1):1                           #  使用 1~4 的编号
起始 扇区 (2048-188743679,默认为 2048):         #这里把空间全部给主分区1直接两下回车
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-188743679,默认为 188743679):
将使用默认值 188743679
分区 1 已设置为 Linux 类型,大小设为 90 GiB
命令(输入 m 获取帮助):w                          #保存硬盘的分区操作
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

[root@C7--01 ~]# mkfs.xfs /dev/sdb1               #格式化为XFS 文件系统
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=5898176 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=23592704, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=11519, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0





 4、将新分区挂载给/opt, /opt  一会当我们KVM的存储池使用

[root@C7--01 ~]# mount /dev/sdb1 /opt          #手动挂载
[root@C7--01 ~]# vim /etc/fstab                #配置自动挂载


#
# /etc/fstab
# Created by anaconda on Tue Jan 26 18:58:23 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=2b70c6b4-0bdd-4f24-a6ca-955e58d6c91b /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sr0 /mesia/cdrom iso9660 defaults 0 0 
/dev/sdb1 /opt xfs defaults 0 0                #写入内容 保存退出

二、安装软件包  (用本地yum  安装)

[root@C7--01 ~]# yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager        #kvm模块、kvm调试工具、构建虚拟机的命令工具、qemu组件,创建磁盘,启动虚拟机、网络支持工具、虚拟机管理工具、图形界面管理虚拟机

.........省略
.....

已安装:
  libvirt.x86_64 0:3.2.0-14.el7                     qemu-kvm-tools.x86_64 10:1.5.3-141.el7                
  virt-install.noarch 0:1.4.1-7.el7                 virt-manager.noarch 0:1.4.1-7.el7                     

作为依赖被安装:
  gnutls-dane.x86_64 0:3.3.26-9.el7                      gnutls-utils.x86_64 0:3.3.26-9.el7               
  ldns.x86_64 0:1.6.16-10.el7                            libvirt-client.x86_64 0:3.2.0-14.el7             
  libvirt-daemon-config-nwfilter.x86_64 0:3.2.0-14.el7   libvirt-daemon-driver-lxc.x86_64 0:3.2.0-14.el7  
  libvirt-python.x86_64 0:3.2.0-3.el7                    python-ipaddr.noarch 0:2.1.11-1.el7              
  unbound-libs.x86_64 0:1.4.20-34.el7                    virt-manager-common.noarch 0:1.4.1-7.el7         

完毕!

[root@C7--01 ~]# systemctl start libvirtd            #启动
[root@C7--01 ~]# systemctl enable libvirtd           #开机自启

1、准备镜像文件  (把CentOS 7 的镜像和Windows 7 的镜像传到/tmp 目录下)

ctrl + e 打开隧道窗格  进入到/tmp文件夹上传

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第2张图片

 2、设置kvm网络

宿主服务器安装完成KVM,首先要设定网络,在libvirt中运行KVM网络有两种方法:NAT和Bridge默认是NAT

两种模式:
用户模式:即NAT方式,这种方式是默认网络,数据包由NAT方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络。
桥接模式:这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持。

 下面以BRIDGE(桥接)的案例

[root@C7--01 ~]# cd /etc/sysconfig/network-scripts/
[root@C7--01 network-scripts]# vim ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
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
UUID=fce4936b-1ad4-4641-8bd8-138a6492c47a
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.1.1                           #注释掉
#PREFIX=24                                    #注释掉
#GATEWAY=192.168.1.254                        #注释掉
IPV6_PRIVACY=no 
BRIDGE=br0                                    #设置桥接为br0,保存退出


[root@C7--01 network-scripts]# cp ifcfg-ens33 ifcfg-br0         #复制ens33重命名为br0
[root@C7--01 network-scripts]# vim ifcfg-br0                    #配置br0

TYPE=bridge                                                     #修改为bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
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                                                        #修改为br0,删除UUID行
DEVICE=br0                                                      #修改为br0
ONBOOT=yes
IPADDR=192.168.1.1                                              #设置ip
PREFIX=24                                                       #子网掩码
GATEWAY=192.168.1.254                                           #网关  保存退出
IPV6_PRIVACY=no
~                    


[root@C7--01 network-scripts]# systemctl restart network        #重启网卡
[root@C7--01 network-scripts]# ip a                             #查看网卡是否是设置的ip
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33:  mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000          
    link/ether 00:0c:29:6d:c2:f2 brd ff:ff:ff:ff:ff:ff                   #没有地址
3: virbr0:  mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:12:4f:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic:  mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:12:4f:00 brd ff:ff:ff:ff:ff:ff
5: br0:  mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 00:0c:29:6d:c2:f2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global br0                #有地址
       valid_lft forever preferred_lft forever
    inet6 fe80::71fa:bbd7:fa37:6ff7/64 scope link 
       valid_lft forever preferred_lft forever

注意:

[root@C7--01 ~]#        #发现没有反应
(virt-manager:4236): Gtk-WARNING **: cannot open display: localhost:10.0

打开我们的属性面板选择   隧道   Xmanager选择就可以打开了

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第3张图片

[root@C7--01 ~]# virt-manager       #启动虚拟机管理器

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第4张图片

 双击: QEMU/KVM ,设置“存储”

2、把镜像文件所在的目录/tmp  添加到存储池中,命名为ISO

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第5张图片

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第6张图片

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第7张图片

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第8张图片

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第9张图片

 3、将/opt  目录 添加到存储池中,命名为KVM,用来当所安装虚拟机的存储目录

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第10张图片

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第11张图片

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第12张图片

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第13张图片

 添加存储卷 (存储卷就是所创建的虚拟机的硬盘空间目录)

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第14张图片

添加俩个c7-01 和c7-02 格式 raw 和 qcow2   分配大小是20 G 的存储卷    点“完成”

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第15张图片

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第16张图片

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第17张图片

4、 新建虚拟机       右击——新建

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第18张图片

 设置安装类型

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第19张图片

 选择安装镜像文件

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第20张图片

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第21张图片

 设置虚拟机的内存和CPU大小(建议给内存 512MB CPU:1

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第22张图片

  设置存储,选中前面在/opt这个存储池中所添加的存储卷

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第23张图片

 第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第24张图片

 进行自定义设置

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第25张图片

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第26张图片

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第27张图片

c7-02的方式和c7-01一样......略    在设置存储卷选择c7-02。qcow2

  设置完成后,点“应用”,点“开始安装”,依次按照步骤安装CentOS 7 系统(目的:能够正常使用键盘)

第十四章——部署KVM虚拟化平台(应用——linux高级管理)_第28张图片

三、使用KVM 命令集管理虚拟机

kvm基本功能管理

1)查看命令帮助

[root@C7--01 ~]# virsh -h

virsh [options]... []
virsh [options]...  [args...]

  options:
    -c | --connect=URI      hypervisor connection URI
    -d | --debug=NUM        debug level [0-4]
    -e | --escape     set escape sequence for console
    -h | --help             this help
    -k | --keepalive-interval=NUM
                            keepalive interval in seconds, 0 for disable
    -K | --keepalive-count=NUM
                            number of possible missed keepalive messages
    -l | --log=FILE         output logging to file
    -q | --quiet            quiet mode
    -r | --readonly         connect readonly
    -t | --timing           print timing information
    -v                      short version
    -V                      long version
         --version[=TYPE]   version, TYPE is short or long (default short)
.......
....省略输出内容

2)查看KVM的配置文件存放目录(centos7.0.xml是虚拟机系统实例的配置文件)

[root@C7--01 ~]# ls /etc/libvirt/qemu
centos7.0.xml  networks

3)查看虚拟机状态

[root@C7--01 ~]# virsh list --all            #查看虚拟机状态
 Id    名称                         状态
----------------------------------------------------
 4     centos7.0                      running

4)虚拟机关机与开机

首先需要确认acpid服务安装并运行

[root@C7--01 ~]# yum -y install acpid           #安装acpid
已加载插件:fastestmirror, langpacks
aaa                                                                                | 3.6 kB  00:00:00     
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 acpid.x86_64.0.2.0.19-8.el7 将被 安装
--> 解决依赖关系完成
......
..
已安装:
  acpid.x86_64 0:2.0.19-8.el7                                                                             

完毕!

[root@C7--01 ~]# virsh shutdown centos7.0    #关机centos7.0虚拟机
域 centos7.0 被关闭

[root@C7--01 ~]# virsh start centos7.0       #开机centos7.0虚拟机
域 centos7.0 已开始

5)强制实例系统关闭电源

[root@C7--01 ~]# virsh destroy centos7.0
域 centos7.0 被删除

[root@C7--01 ~]# virsh list --all            #查看虚拟机状态
 Id    名称                         状态
----------------------------------------------------
 -     centos7.0                      关闭

6)通过配置文件启动虚拟机系统实例

[root@C7--01 ~]# virsh create /etc/libvirt/qemu/centos7.0.xml
域 centos7.0 被创建(从 /etc/libvirt/qemu/centos7.0.xml)

[root@C7--01 ~]# virsh list --all               #查看虚拟机状态
 Id    名称                         状态
----------------------------------------------------
 6     centos7.0                      running

7)挂起虚拟机

[root@C7--01 ~]# virsh suspend centos7.0
域 centos7.0 被挂起

[root@C7--01 ~]# virsh list --all          #查看虚拟机状态
 Id    名称                         状态
----------------------------------------------------
 6     centos7.0                      暂停

8)恢复虚拟机

[root@C7--01 ~]# virsh resume centos7.0
域 centos7.0 被重新恢复

[root@C7--01 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 6     centos7.0                      running

9)配置虚拟机实例伴随宿主机自动启动

[root@C7--01 ~]# virsh autostart centos7.0
域 centos7.0标记为自动开始

[root@C7--01 ~]# cd /etc/libvirt/qemu/autostart/
[root@C7--01 autostart]# ls
centos7.0.xml

上述命令将创建/etc/libvirt/qemu/autostart/目录,目录内容为开机自动启动的系统.

10)导出虚拟机配置

[root@C7--01 autostart]# virsh dumpxml centos7.0 > /etc/libvirt/qemu/centos7.0.xml

11)虚拟机的删除与添加

删除虚拟机

[root@C7--01 opt]# virsh shutdown centos7.0
域 centos7.0 被关闭

[root@C7--01 opt]# virsh undefine centos7.0
域 centos7.0 已经被取消定义



查看删除结果,centos7.0 的配置文件被删除,但是磁盘文件不会被删除

[root@C7--01 opt]# ls /etc/libvirt/qemu/
autostart  networks  cenos7.1.xml

通过“virsh list-all”查看不到test01的信息说明此虚拟机被删除。

[root@C7--01 opt]# virsh list --all
 Id    名称                         状态
----------------------------------------------------

通过备份的配置文件重新定义虚拟机:

[root@C7--01 ~]# cd /etc/libvirt/qemu
[root@C7--01 qemu]# mv centos7.1.xml centos7.0.xml
[root@C7--01 qemu]# virsh define centos7.0.xml

查看虚拟机信息

[root@C7--01 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     centos7.0                      关闭


12)修改虚拟机配置信息(用来修改系统内存大小,磁盘文件等信息)

[root@C7--01 qemu]# vim /etc/libvirt/qemu/centos7.0.xml       #直接通过vim命令修改

 通过virsh命令修改

[root@C7--01 qemu]# virsh edit centos7.0


  centos7.0
  a7629ed3-d72b-4b97-80ac-a5d8903e0390
  2097152
  2097152
  2
  
    hvm
    

你可能感兴趣的:(第十四章——部署KVM虚拟化平台(应用——linux高级管理))