虚拟化概述

虚拟化就是把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用最大化和灵活管理的一项技术。

虚拟化的优势

  • 减少服务器数量,降低硬件采购成本。
  • 资源利用率最大化。
  • 减低机房空间、散热、用电消耗的成本。
  • 硬件资源可动态调整,提高企业IT业务灵活性。
  • 高可用性。
  • 在不中断服务的情况下进行物理硬件调整。
  • 降低成本管理。
  • 具备更高效的灾备能力。

KVM虚拟化

kvm自Linux2.6.20版本后就直接整合到Linux内核中,它依托CPU虚拟化指令集实现高性能的虚拟化支持。由于与Linux内核高度整合,因此在性能、安全性、兼容性、稳定性上都有很好的表现。

在KVM环境中运行的每一个虚拟化操作系统都将表现为单个独立的系统进程。因此它可以很方便地与Linux系统中的安全模块进行整合(SELinux),可以灵活地实现资源的管理及分配。如图所示,简单的描绘了KVM虚拟化架构:
在CentOS7上部署KVM虚拟化平台

实验要求

  • 虚拟机的内存4~6G左右,便于后续的安装工作。
  • 是否支持虚拟化。

实验环境

采用CentOS-7.4-x86_64,开启CPU虚拟化支持
在CentOS7上部署KVM虚拟化平台

安装步骤

1.添加一块新的磁盘,磁盘大小40G(自定义),进行分区并挂载到/opt/vdir目录中。

[root@localhost ~]# mkdir /opt/vdir   #创建挂载目录(可自定义)
[root@localhost ~]# fdisk /dev/sdb 
命令(输入 m 获取帮助):n    #创建分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):
将使用默认值 83886079
分区 1 已设置为 Linux 类型,大小设为 40 GiB

命令(输入 m 获取帮助):w     #保存
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# mkfs -t xfs /dev/sdb1    #磁盘格式化
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=2621376 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10485504, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5119, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mount /dev/sdb1 /opt/vdir    #挂载磁盘
[root@localhost ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        10G  8.7G  1.4G   87% /
devtmpfs        2.0G     0  2.0G    0% /dev
tmpfs           2.0G     0  2.0G    0% /dev/shm
tmpfs           2.0G  9.0M  2.0G    1% /run
tmpfs           2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda6       9.0G   33M  9.0G    1% /opt
/dev/sda2        16G   37M   16G    1% /home
/dev/sda1      1014M  158M  857M   16% /boot
tmpfs           394M   20K  394M    1% /run/user/0
/dev/sr0        4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb1        40G   33M   40G    1% /opt/vdir       #挂载成功

2.在已有的系统基础上,安装KVM所需软件。

[root@localhost ~]# yum install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install -y
注释:
qemu-kvm 虚拟化软件 虚拟网络和硬盘等 用户态
libvirt 虚拟化工具统一接口
virsh virt-manager virt-viewer virt-install other-tools是libvirt用户态的工具

3.查看是否支持虚拟化

[root@localhost ~]# egrep '(vmx|svm)' /proc/cpuinfo

在CentOS7上部署KVM虚拟化平台
4.创建虚拟机的磁盘镜像

[root@localhost opt]# qemu-img create -f raw /opt/CentOS-7.4-x86_64.img 10G

[root@localhost opt]# lsmod | grep kvm   #检查kvm模块是否安装
kvm_amd                69849  0 
kvm                   566340  1 kvm_amd
irqbypass              13503  1 kvm

5.开启libvirtd服务(默认情况下libvirtd服务是开启的)

[root@localhost opt]# systemctl status libvirtd.service
● libvirtd.service - Virtualization daemon
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: active (running) since 一 2018-08-06 16:10:19 CST; 1h 22min ago
.....//省略

[root@localhost opt]# systemctl restart libvirtd.service
[root@localhost opt]# systemctl stop firewalld.service 
[root@localhost opt]# setenforce 0

6.把CentOS-7-x86_64-DVD-1708.iso镜像文件复制到/opt目录下

[root@localhost KM]# cp CentOS-7-x86_64-DVD-1708.iso /opt/

7.安装虚拟机

[root@localhost opt]# virt-install --name CentOS7.4-x86_64 \   #名称
> --virt-type kvm \       # 指定创建类型
> --ram 2048 \      #内存
> --cdrom=/opt/CentOS-7-x86_64-DVD-1708.iso \  #镜像文件
> --disk path=/opt/CentOS-7.4-x86_64.img \     #指定磁盘文件
> --network network=default \       #默认网卡类型
> --graphics vnc,listen=0.0.0.0 \   #启用图像化加载,监听地址。
> --noautoconsole   #支持console连接

开始安装......
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。

8.在windows上安装TightVNC Viewer工具,使用TightVNC Viewer工具完成安装虚拟机。

1)设置内核参数
在CentOS7上部署KVM虚拟化平台
在CentOS7上部署KVM虚拟化平台
在CentOS7上部署KVM虚拟化平台
在CentOS7上部署KVM虚拟化平台

9.重启后 需要去centos7上开启这个虚拟机 才能使用VNC连接。

[root@localhost opt]# virsh start CentOS7.4-x86_64   #启动虚拟机
域 CentOS7.4-x86_64 已开始

在CentOS7上部署KVM虚拟化平台
在CentOS7上部署KVM虚拟化平台
安装成功