KVM虚拟化

  • 概念
  • 应用数据化的原因
  • 虚拟化的优势
  • KVM
  • Virtual Machine Manager
  • KVM虚拟化平台部署
  • 总结



概念

将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象 、转换后呈现出来并可供分区、组合为一个或多个电脑配置环境。

应用数据化的原因

1)同一台物理机运行多个不同版本应用软件

2)硬件依赖性较低

3)便于数据迁移

虚拟化的优势

1)提高应用兼容性

2)降低运营成本

3)加速应用部署

4)提高服务器可用性

5)提高资源利用率

6)动态调度资源

7)降低能源消耗

KVM

1)KVM是开源软件

2)是x86架构且硬件支持虚拟化技术(如intel VT或AMD-V)的Linux全虚拟化解决方案

3)包含为处理器提供底层虚拟化可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)

4)需要经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面

5)能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)同时KVM还能够使用ksm技术帮助宿主服务器节约内存。

Virtual Machine Manager

1)虚拟机管理员,可以让用户管理多个虚拟机

2)创建、编辑、引导或停止虚拟机

3)查看并控制每个虚拟机的控制台

4)查看每部虚拟机的性能及使用率

5)查看每部正在运行中的虚拟机以及主控端的即时性及使用率信息

6)无论在本机或远程,皆可使用KVM、Xen、QEMU

KVM虚拟化平台部署

KVM 虚拟化 价值点 kvm虚拟化优势_虚拟化

[root@localhost ~]# hostnamectl set-hostname kvm			#修改主机名
[root@localhost ~]# su
[root@kvm ~]# mkdir /mount
[root@kvm ~]# vim /etc/fstab								#永久性挂载镜像光盘
/dev/cdrom /mount iso9660 defaults 0 0
[root@kvm ~]# mount -a
[root@kvm ~]# vim /etc/ssh/sshd_config 						#将sshd配置文件中的反解DNS设置为NO
UseDNS no
[root@kvm ~]# systemctl restart sshd


##制作本地yum仓库
[root@kvm yum.repos.d]# mv CentOS-* bak
[root@kvm yum.repos.d]# ls
bak
[root@kvm yum.repos.d]# vim local.repo
[local]
name=kvm
baseurl=file:///mount
gpgcheck=0
enabled=1
[root@kvm yum.repos.d]# yum clean all
[root@kvm yum.repos.d]# yum makecache

##安装qemu及其它所需的工具
[root@kvm yum.repos.d]# yum install -y qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager
注释:qemu-kvm为KVM模块,qemu-kvm-tools是KVM调试工具,virt-install是虚拟机的命令行工具,qemu-img是qemu的组件,
bridge-utils桥接网络支持工具,libvirt为虚拟机管理工具,virt-manager图形界面管理虚拟机

查看cpu是否支持虚拟化

[root@kvm yum.repos.d]# cat /proc/cpuinfo | grep vmx		#看到又vmx,说明可以支持
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 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat pku ospke spec_ctrl intel_stibp flush_l1d arch_capabilities
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 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat pku ospke spec_ctrl intel_stibp flush_l1d arch_capabilities
[root@kvm yum.repos.d]# lsmod | grep kvm			#查看已经载入的kvm模块
kvm_intel             183621  0 
kvm                   586948  1 kvm_intel
irqbypass              13503  1 kvm
[root@kvm yum.repos.d]# ls -sf /lib/systemd/system/graphical.target 	/etc/systemd/system/default.target
##设置开启启动界面的显示模式

设置Bridge桥接模式

[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
 TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none						#改为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=9c1fe1a3-6fd0-45fc-93d3-4c112430fc53
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.8.153						#注释掉原本IP地址等信息
#NETMASK=255.255.255.0		
#GATEWAY=192.168.8.2
#DNS1=114.114.114.114
BRIDGE=br0										#设置网桥模式,管理br0网卡
[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0		#创建桥接网卡
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=yes
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.8.153                                              
NETMASK=255.255.255.0           
GATEWAY=192.168.8.2
DNS1=114.114.114.114
[root@kvm ~]# mkdir -p /data_kvm/iso
[root@kvm ~]# mkdir -p /data_kvm/store
[root@kvm ~]# cd /abc
[root@kvm abc]# ls					
CentOS-7-x86_64-DVD-1810-7.6.iso			#这里的镜像文件先下载好
[root@kvm abc]# cp -p CentOS-7-x86_64-DVD-1810-7.6.iso /data_kvm/iso/		#复制镜像文件到/data_kvm/iso/目录下
[root@kvm abc]# systemctl restart network									#重启网卡
[root@kvm abc]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.118.55  netmask 255.255.255.0  broadcast 192.168.118.255
        inet6 fe80::8b77:e9af:5e0c:d6db  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:95:cd:9a  txqueuelen 1000  (Ethernet)
        RX packets 37  bytes 6605 (6.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 46  bytes 6017 (5.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

KVM 虚拟化 价值点 kvm虚拟化优势_KVM 虚拟化 价值点_02


KVM 虚拟化 价值点 kvm虚拟化优势_KVM 虚拟化 价值点_03


KVM 虚拟化 价值点 kvm虚拟化优势_KVM 虚拟化 价值点_04


KVM 虚拟化 价值点 kvm虚拟化优势_IPV6_05


KVM 虚拟化 价值点 kvm虚拟化优势_IPV6_06


KVM 虚拟化 价值点 kvm虚拟化优势_vim_07


KVM 虚拟化 价值点 kvm虚拟化优势_IPV6_08


KVM 虚拟化 价值点 kvm虚拟化优势_KVM 虚拟化 价值点_09


KVM 虚拟化 价值点 kvm虚拟化优势_KVM 虚拟化 价值点_10


KVM 虚拟化 价值点 kvm虚拟化优势_vim_11

总结

1、虚拟化类型**
全虚拟化:将物理硬件资源全部通过软件的方式抽象化,最后进行调用
半虚拟化:需要修改操作系统(以软件形式模拟物理硬件功能+物理硬件资源的加强型支持)
直通:直接使用物理硬件资源(需要支持,还不完善)
2、KVM虚拟化架构(三种模式**
客户模式(guestOs)
用户模式
linux内核模式
3、安装KVM平台的流程**
yum install 安装Qemu-img、qemu-kvm 图形化工具 安装virsh(管理虚拟机的工具) libvirt
上传你们所需要的镜像文件(上传到准备的目录中)
①:镜像目录
/data/iso-win10
/data/iso-centos7
②:卷目录
/data/store_dis
/data/store_rep
/data/store_dis_rep
图形化安装的时候,指定需要使用的卷
图形化安装内需要注意的:
①:创建存储池和镜像池
②:创建对应的卷(dis、rep、stripe)
安装虚拟机时,可以直接在界面中选择分配的内存、cpu、磁盘、镜像等等(类似于VMware workstation 中正常安装虚拟机的步骤)
最后在启动开始安装时,点击引导选项,勾选启动时开启虚拟机