部署KVM虚拟化平台

                                              部署KVM虚拟化平台

Xen(半虚):资源共享化

KVM(全虚):资源独立化

案例概述

1、公司部分Linux服务器利用率不高,为充分利用这些Linux服务器,可以部署KVM,在物理机上运行多个业务系统

2、例如在运行Nginx的服务器.上部署KVM,然后在虚拟机上运行Tomcat

 

案例前知识点

1、KVM虚拟化架构

KVM模块直接整合在Linux内核中

部署KVM虚拟化平台

2、KVM组成

(1)KVM Driver

·虚拟机创建

·虚拟机内存分配

·虚拟CPU寄存器读写

·虚拟CPU运行

(2)QEMU (经过简化与修改)

·模拟PC硬件的用户控件组件

·提供I/O设备模型及访问外设的途径

3、KVM虚拟化三种模式

·客户模式

·用户模式(工具层)

·内核模式

部署KVM虚拟化平台

4、KVM工作原理

部署KVM虚拟化平台

5、实施

(1)安装KVM

部署KVM虚拟化平台

(2)设置KVM网络

·KVM网络包括:用户模式与桥接模式

·本案例中使用桥接模式

(3)KVM图像化管理

部署KVM虚拟化平台

(4)安装虚拟机

使用Xshell远程控制

(5) KVM基本功能管理

·查看命令帮助

·查看KVM的配置文件存放目录

·查看虚拟机状态

·虚拟机关机与开机

·强制实例系统关闭电源

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

(6)KVM基本功能管理(续)

·挂起虚拟机

·恢复虚拟机.

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

·导出虚拟机配置

·虚拟机的删除与添加

·修改虚拟机配置信息

(7)KVM文件管理

·查看当前磁盘格式

·virt-cat命令

·virt-edit命令

·virt-df命令

(8)虚拟机克隆

(9)虚拟机快照

部署

一、先添加一块磁盘

1、分区
[[email protected] ~]# fdisk /dev/sdb

2、查看
[[email protected] ~]# fdisk -l
//省略部分内容
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   83  Linux

3、格式化
[[email protected] ~]# mkfs /dev/sdb1

4、创建目录并挂载
[[email protected] ~]# mkdir /data
[[email protected] ~]# mount /dev/sdb1 /data


二、共享文件夹

[[email protected] ~]# smbclient -L //192.168.100.7/
[[email protected] ~]# mount.cifs //192.168.100.7/ISO /mnt/
[[email protected] ~]# cd /mnt/
[[email protected] mnt]# yum list

1、配置环境包
yum groupinstall "GNOME Desktop" -y         //安装桌面环境组件包

yum install qemu-kvm -y            //KVM模块

yum install qemu-kvm-tools -y          //KVM调试工具

yum install virt-install -y         //构建虚拟机的命令行工具

yum install qemu-img -y        //qemu组件,创建磁盘,启动虚拟机

yum install bridge-utils -y         //网络支持工具

yum install libvirt -y          //虚拟机管理工具

yum install virt-manager -y        //图像化管理虚拟机

2、验证:查看CPU是否支持虚拟化(虚拟机需要在配置中开启虚拟化功能)

AMD服务器可用:cat /proc/cpuinfo | grep smv

Intel服务器可用:cat /proc/cpuinfo | grep vmx

两者皆可判断:egrep '(vmx|svm)' /proc/cpuinfo

(1)检查是否安装
[[email protected] mnt]# lsmod | grep kvm
kvm_intel             170086  0 
kvm                   566340  1 kvm_intel
irqbypass              13503  1 kvm

(2)开启服务
[[email protected] mnt]# systemctl start libvirtd          //开启服务
[[email protected] mnt]# systemctl status libvirtd        //查看开启状态
[[email protected] mnt]# systemctl enable libvirtd        //设为开机自启

三、KVM网络

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

关于两种模式的说明:

用户模式——即NAT方式,这种方式是默认网络,数据包由NAT 方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络。

桥接模式——这种模式允许虚拟机像. 一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持。


以配置桥接为例:

1、先创建两个目录(防止远程挂载挂掉)
[[email protected] mnt]# cd /data
[[email protected] data]# ls
lost+found
[[email protected] data]# mkdir vdisk viso
[[email protected] data]# ls
lost+found  vdisk  viso

//拷贝镜像到新创建的目录中,并放至后台运行,不影响接下来的操作
[[email protected] data]# cp -r /mnt/CentOS-7-x86_64-DVD-1708.iso /data/viso/ &
[1] 118636

[[email protected] data]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# cp -p ifcfg-ens33 ifcfg-br0

[[email protected] network-scripts]# vim ifcfg-ens33 
//在末行插入
BRIDGE=br0

[[email protected] network-scripts]# vim ifcfg-br0 
TYPE=bridge                  
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static                
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                   
DEVICE=br0    
             
ONBOOT=yes
IPADDR=192.168.35.175
NETMASK=255.255.255.0
GATEWAY=192.168.35.1

UUID行删掉

//重启网卡
[[email protected] network-scripts]# service network restart 
Restarting network (via systemctl):                        [  确定  ]

//多一块网卡
[[email protected] network-scripts]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.35.175  netmask 255.255.255.0  broadcast 192.168.35.255
        inet6 fe80::98c4:6183:9245:7154  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:60:1a:79  txqueuelen 1000  (Ethernet)
        RX packets 108  bytes 7536 (7.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 125  bytes 19579 (19.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:60:1a:79  txqueuelen 1000  (Ethernet)
        RX packets 3478684  bytes 4934924607 (4.5 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 373374  bytes 37009910 (35.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 80  bytes 6960 (6.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 80  bytes 6960 (6.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:4d:73:2e  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

四、KVM管理

virt-manager是基于libvirt的图像化虚拟机管理软件。

请注意,不同发行版上virt-manager的版本可能不同,图形界面和操作方法也可能不同。

创建KVM虚拟机最简单的方法是通过virt-manager接口。以root身份输入virt-manager命令。

切换到图形化界面

[[email protected] ~]# virt-manager

创建存储池,双击QEMU/KVM,选择“存储”选项卡,然后单击“+”按钮新建存储池。

单击“前进”按钮,根据提示输入或浏览用以设置存储目录,如/data_kvm/store,最后单击“完成”按钮即可。

以下操作步骤:

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台

 

部署KVM虚拟化平台