KVM -> 虚拟化简介&虚拟机安装_01
什么是虚拟化?
在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分区、组合为一个或多个电脑配置环境。
简单的来说:虚拟化就是通过模拟计算机的硬件,来实现在同一台计算机上同事运行多个不同的操作系统的技术。
为什么要用虚拟化?
场景1:同一台物理机运行多个php版本 php5.3 php5.5 php7.2
场景2:机房的迁移,解决了硬件和系统的依赖
场景3:openstack环境,软件发布体检
场景4:开发环境和测试环境,使用虚拟化
场景5:业务的快速部署,从头安装系统,安装服务,配置
虚拟化:提高了资源的利用率,服务的安全性隔离,解决了系统和硬件之间的依赖
虚拟化技术的优势
1.降低运营成本
服务器虚拟化降低了IT基础设施的运营成本,令系统管理员摆脱了繁重的物理服务器、OS、中间件及兼容性的管理工作,减少人工干预频率,使管理更加强大、便捷。
2.提高应用兼容性
服务器虚拟化提供的封装性和隔离性使大量应用独立运行于各种环境中,管理人员不需频繁根据底层环境调整应用,只需构建一个应用版本并将其发布到虚拟化后的不同类型平台上即可。
3.加速应用部署
采用服务器虚拟化技术只需输入激活配置参数、拷贝虚拟机、启动虚拟机、激活虚拟机即可完成部署,大大缩短了部署时间,免除人工干预,降低了部署成本。
4.提高服务可用性
用户可以方便地备份虚拟机,在进行虚拟机动态迁移后,可以方便的恢复备份,或者在其他物理机上运行备份,大大提高了服务的可用性。
5.提升资源利用率
通过服务器虚拟化的整合,提高了CPU、内存、存储、网络等设备的利用率,同时保证原有服务的可用性,使其安全性及性能不受影响。
6.动态调度资源
在服务器虚拟化技术中,数据中心从传统的单一服务器变成了统一的资源池,用户可以即时地调整虚拟机资源,同时数据中心管理程序和数据中心管理员可以灵活根据虚拟机内部资源使用情况灵活分配调整给虚拟机的资源。
7.降低能源消耗
通过减少运行的物理服务器数量,减少CPU以外各单元的耗电量,达到节能减排的目的。
1、虚拟化软件
qemu: 软件纯模拟全虚拟化软件,特别慢!AIX,兼容性好!
xen(半) : 性能特别好,需要使用专门修改之后的内核,兼容性差!
KVM(linux): 虚拟机,它有硬件支持cpu,基于内核,而且不需要使用专门的内核性能较好,兼容较好
1、KVM简介
KVM,基于内核的虚拟机(英语:Kernel-based Virtual Machine,缩写为 KVM),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。KVM在2007年2月被导入Linux 2.6.20核心中,以可加载核心模块的方式被移植到FreeBSD及illumos上。
KVM在具备Intel VT或AMD-V功能的x86平台上运行。它也被移植到S/390,PowerPC与IA-64平台上。在Linux内核3.9版中,加入ARM架构的支持。
KVM目前由Red Hat等厂商开发,对CentOS/Fedora/RHEL等Red Hat系发行版支持极佳。
2、其他虚拟化软件
🍪 Xen
Xen是一个开放源代码虚拟机监视器,由XenProject开发。它打算在单个计算机上运行多达128个有完全功能的操作系统。
在旧(无虚拟硬件)的处理器上执行Xen,操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。
🍪 QEMU
QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件。它与Bochs,PearPC近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性。经由KVM(早期为kqemu加速器,现在kqemu已被KVM取代)这个开源的加速器,QEMU能模拟至接近真实电脑的速度。QEMU有两种主要运作模式:
User mode模拟模式,亦即是用户模式。
QEMU能引导那些为不同中央处理器编译的Linux程序。而Wine及Dosemu是其主要目标。
System mode模拟模式,亦即是系统模式。
QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为系统源代码进行测试及除错工作变得容易。其亦能用来在一部主机上模拟数部不同虚拟电脑。
2、KVM部署与使用
事先制作好虚拟机模板机,导出,然后再用模板机导入vmware,再进行克隆
1、系统环境说明:
[root@kvm ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@kvm ~]# uname -r 3.10.0-693.el7.x86_64 [root@kvm ~]# sestatus SELinux status: disabled [root@kvm ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) [root@kvm ~]# hostname -I 10.0.0.11
kvm主机内存不能低于4GB
打开虚拟机 -> 虚拟化设置
2、安装依赖包(可以使用本地yum源):
使用光盘搭建本地yum源连接 -> https://www.cnblogs.com/tim1blog/p/9915295.html
如要使用本地yum源,需要挂载光盘到本地
3、安装依赖包:
yum install libvirt* virt-* qemu-kvm* -y //安装依赖包
安装软件内容说明:
libvirt 作用: 虚拟机的管理软件 -> 安装,启动等
virt virt-install virt-clone 作用:虚拟机的安装和克隆 -> 向导的作用
qemu-kvm qemu-img 作用: 复制管理虚拟机的磁盘 -> 核心,磁盘的管理工具
4、安装VNC软件:
下载vnc软件方法,tightvnc官网:http://www.tightvnc.com
为什么安装VNC:因为命令行是无法安装系统的,需要VNC将虚拟机图形化,进行安装系统操作,也是安装完成后,类xshell功能登录虚拟机。
VNC软件,用于VNC(Virtual Network Computing),为一种使用RFB协议的显示屏画面分享及远程操作软件。此软件借由网络,可发送键盘与鼠标的动作及即时的显示屏画面。
VNC与操作系统无关,因此可跨平台使用,例如可用Windows连接到某Linux的电脑,反之亦同。甚至在没有安装客户端程序的电脑中,只要有支持JAVA的浏览器,也可使用。
安装VNC时,使用默认安装即可,无需安装server端。如下图:客户端
只需注意:操作中只用到客户端,所以在安装选择自定义,然后就可以一路下一步。装好打开之后,如下图所示连接:
VNC连接虚拟机界面如下图所示:
3、配置第一台KVM虚拟机(宿主机)
1、搭建虚拟机,需要VNC也需要一个光盘镜像。(注意:超过4G的文件无法直接rz拉取)
1、可使用XFTP传输:
2、也可直接dd复制光盘的镜像到/opt目录下
复制光盘镜像,首先切换到/opt目录下,存放光盘镜像,然后使用dd从挂载的光盘中拉取镜像
cd /opt/ time dd if=/dev/cdrom of=/opt/CentOS-7.4-x86_64-DVD-1708.iso
2、启动服务:
[root@kvm ~]# systemctl start libvirtd.service
[root@kvm ~]# systemctl status libvirtd.service
不启动服务,直接安装的话会报错
3、安装命令:
1 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7.4-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
--virt-type kvm : 虚拟化类型要指定,因为virt支持多种虚拟化类型,如果不指定的话,默认指向qemu。
--os-type=linux : 系统的类型 linux
--os-variant rhel7 : 客户机的操作系统类型
注:为什么会有两次指定系统的类型?
解释:打开vmware,在安装的时候,会发现安装linux系统的版本,那vmware作为虚拟机是一个版本,安装的操作系统也要选择一个版本,所以,安装命令要指定两个系统版本。理解图如下:
--name centos7 : 虚拟机的名字
--memory 1024 : 内存大小
--vcpus 1 : CPU的数量
--disk /opt/centos2.raw,format=raw,size=10 : 硬盘的路径,格式raw,大小10
--cdrom /opt/CentOS-7.4-x86_64-DVD-1708.iso :光盘镜像的路径
--network network=default : 网络默认,NAT模式
--graphics vnc,listen=0.0.0.0 : 显示器,是VNC输出
--noautoconsole : 不自动连接控制台
使用参数说明:
4、查看5900端口是否开启,同时在60秒内的时间连接VNC
在启动的同时使用vnc连接,如下图格式:
安装步骤1,如果超过60秒也没关系,只是会选择第2种,检测光盘
然后进入到安装系统界面,进行如下操作:
时区:上海 系统分区:手动分区,如果出现警告,选择接受警告,继续安装只需要安装一个/分区,没有swap分区,因为虚拟技术中,已经是使用虚拟化克隆技术,会占用资源,降低效率,如果加上swap在加上一层虚拟技术,会功效更低 KDUMP:关闭,因为备份机制会占用内存 network:进去直接选择on 打开之后,就是会分配一个地址
修改如下选项:
1、选择手动分区
选择标准分区
只给/分区,不给swap分区,因为本身就是虚拟化出来的机器,如果在虚拟化的基础上再虚拟化一层,性能更低。
在第一次提交done的时候,会提示警告,忽略提示,选择接受。
2、去掉内核备份功能,当内核崩溃的时候会把内核备份下来,但是会消耗内存。所以不选
3、自动获取ip地址
4、时区:亚洲/上海
5、设置虚拟机的登录密码。
4、网络安装KVM
如果不是光盘镜像进行安装,使用网路的地址进行安装,进行如下操作。
5、第一次安装后,reboot,会出现掉线
因为当安装后,宿主机没有了5900端口,因为虚拟机的当前状态为关闭状态,那再次启动虚拟机,即可登录。
基础命令:
virsh start centos7 //开启虚拟机 , virsh list --all //查看状态,如是running 则在运行
查找5900端口开启
之后,打开VNC,输入ip加端口,进入虚拟机。