目录
一、虚拟化技术
通过虚拟化技术将一 台计算机虚拟为多台逻辑计算机,在一 台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可运行不同的操作系统,应用程序都可以在相互独立的空间内运行而互相不影响,从而提高计算机的工作效率
二、虚拟化类型
1、全虚拟化:将物理硬件资源全部通过软件的方式抽象化,最后进行调用
使用的方法:使用hypervisor (VMM)软件,其原理是在底层硬件和服务器之间建立一个抽象层,
而基于核心的虚拟机是面向Linux系统的开源产品hypervisor(VMM)可以捕捉CPU的指令,
为指令访问硬件控制器和外设充当中介。
2、半虚拟化:需要修改操作系统
3、直通:直接使用物理硬件资源(需要支持,还不完善)
三、KVM原理
1、Guest: 客户机系统,包括CPU (vCPU) 、内存驱动(Console、 网卡、I/O设备驱动等),被KVM置于-种受限制的CPU 模式下运行。
2、KVM内核模块模拟处理器和内存以支持虚拟机运行
3、Qemu 主要处理I/O以及为客户提供一个用户空间/dev/kvm 工具ibvirt来进行虚拟机管理
ioctl (定义) 专用于设备输入输出操作的系统调用
libvirt: KVM管理工具
kvm虚拟化物理资源
qemu在虚拟化层控制libkvm工具,来调用物理虚拟化资源(调用虚拟化资源的方式是ioctl)通过API接口供给应用层
四、虚拟化特性
1、优势
- 集中化管理(远程管理、维护)
- 提高硬件利用率(物理资源利用率低,例如峰值,虚拟化解决了“空闲”容量)
- 动态调整机器/资源配置(虚拟化把系统的应用程序和服务硬件分离、提高了灵活性)
- 高可靠(可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境)
2、劣势
- 前期高额费用(初期的硬件支持)
- 降低硬件利用率(特定场景,例:极度吃资源的应用不一定适合虚拟化)
- 更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同时可能虚拟机中文件全部损坏)
- 实施配置复杂、管理复杂(管理人员运维、排障困难)
- 一定的限制性(虚拟化技术涉及各种限制,必须与支持/兼容虚拟化的服务器、应用程序以及供应商结合使用)
- 安全性(虚拟化技术自身的安全隐患)
实验准备
1、修改主机名
hostnamectl set-hostname kvm
su
2、将镜像光盘设为自动/永久挂载
vim /etc/fstab
/dev/cdrom /mnt iso9660 defaults 0 0
mount -a
df -hT
3、环境优化
设置DNS反向解析
是否反解DNS,设置为NO可以让客户端连接服务器更快
vim /etc/ssh/sshd_config
#115行;取消DNS注释,改为NO
UseDNS no
4、制作本地YUM仓库
cd /etc/yum.repos.d/
mkdir repos.bak
mv CentOS-* repos.bak
vim kvm.repo
[kvm]
name=kvm
baseurl=file:///mnt
gpgcheck=0
enabled=1
yum clean all && yum repolist
5、关闭防火墙、核心防护
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
开始实验
1、安装KVM基本组件
yum groupinstall -y "GNOME Desktop"
yum -y install qemu-kvm
yum -y install qemu-kvm-tools
yum -y install virt-install
yum -y install qemu-img
yum -y install bridge-utils
yum -y install libvirt
yum -y install virt-manager
#----------------------命令解释---------------------
# 安装 GNOME 桌面环境 如果装了图形界面可以不需要装
yum groupinstall -y "GNOME Desktop"
# KVM 模块
yum -y install qemu-kvm
# 安装KVM 调试工具,可不安装
yum -y install qemu-kvm-tools
# 构建虚拟机的命令行工具
yum -y install virt-install
# qemu 组件,创建磁盘、启动虚拟机等
yum -y install qemu-img
# 网络支持工具
yum -y install bridge-utils
# 虚拟机管理工具
yum -y install libvirt
# 图形界面管理虚拟机
yum -y install virt-manager
2、检测CPU是否支持虚拟化
# 查看CPU是否支持虚拟化
cat /proc/cpuinfo | grep vmx
3、查看KVM模块是否已安装
lsmod | grep kvm #Lsmod:显示已载入的系统模块
4、设置开启启动界面的显示模式
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
5、设置KVM网络
KVM网络的两种模式:
- NAT: 默认设置,数据包由 NAT 方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络
- 网桥:这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持(一般有线网卡都支持)
使用Bridge网桥模式进行部署
vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=none
IPV6INIT=no
ONBOOT=yes
BRIDGE=br0 #删除原先地址,设置为网桥模式,关联br0网卡
创建、编辑桥接网卡
#创建、编辑桥接网卡br0
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.109.00
NETMASK=255.255.255.0
GATEWAY=192.168.109.2
systemctl restart network.service
6、KVM部署与管理
window共享文件给centos
window
右击我的电脑选择管理–>本地用户和组–>在用户项中双击Guest用户–>取消账号已禁用选项
右击共享目录点属性–>在共享页面中点击共享选项–>下拉选择共享对象为Everyone–>点击共享按钮
打开命令框–>输入secpol.msc–>选择本地策略
用户权限分配–>拒绝从网络访问这台计算机–>把Guest用户删除
安全选项–>网络访问:本地账户的共享和安全模型–>下拉选择仅来宾
删除Guest用户
创建KVM存储和镜像数据的目录、上传centos7镜像
centos
smbclient -L//192.168.109.1/ #windows端的IP地址
#创建kvm存放iso的目录和之后创建虚拟机的目录
mkdir -p /data_kvm/iso
mkdir -p /data_kvm/store
#挂载本机共享目录
mount.cifs //192.168.109.1/软件包 /mnt/
#查看挂载
cd /mnt
cp -p CentOS-7-x86_64-DVD-1810-7.6.iso /data_kvm/iso/
ll /data_kvm/iso/
7、使用虚拟系统管理器管理虚拟机
创建思路:
- 创建存储池(ISO、STORE)
- 添加存储卷
- 创建虚拟机
virt-manager
创建存储池
创建存储卷
创建虚拟机