cent os的KVM虚拟化部署

给linux基础比较弱的童鞋和我写的一篇基础教程

前言引述一下什么是云计算

相关:虚拟机下cent os开启ssh

什么是虚拟化

kernel-based virtual machine(基于内核的虚拟机)

虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。

虚拟化分类

1. 完全虚拟化

最流行的虚拟化方法,使用Hypervisor这种中间层软件,在虚拟服务器和底层硬件之间建立一个抽象层。

Hypervisor可以捕获CPU指令,为指令访问硬件控制器和外设充当中介。因而,完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,而它们不知道自己运行在虚拟化环境下。主要缺点是,性能方面不如裸机,因为Hypervisor需要占用一些资源,给处理器带来开销。

在完全虚拟化的环境下,Hypervisor运行在裸硬件上,充当主机操作系统,而由Hypervisor管理的虚拟服务器运行客户端操作系统(Guest OS)。

2. 准虚拟化

完全虚拟化是处理器密集型技术,因为它要求Hypervisor管理各个虚拟服务器,并让它们彼此独立。减轻这种负担的一种方法就是,改动客户操作系统,让它以为自己运行在虚拟环境下,能够与Hypervisor协同工作,这种方法就叫准虚拟化。

准虚拟化技术的优点是性能高。经过准虚拟化处理的服务器可与Hypervisor协同工作,其响应能力几乎不亚于未经过虚拟化处理的服务器。它的客户操作系统(Guest OS)集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。

3. 操作系统层虚拟化

实现虚拟化还有一个方法,那就是在操作系统层面增添虚拟服务器功能。就操作系统层的虚拟化而言,没有独立的Hypervisor层。相反主机操作系统本身就负责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统。

虽然操作系统层虚拟化的灵活性比较差,但本机速度性能比较高。此外,由于架构在所有虚拟服务器上使用单一、标准的操作系统,管理起来比异构环境要容易。

4. 桌面虚拟

服务器虚拟化主要针对服务器而言,而虚拟化最接近用户的还是要算的上桌面虚拟化了,桌面虚拟化主要功能是将分散的桌面环境集中保存并管理起来,包括桌面环境的集中下发,集中更新,集中管理。桌面虚拟化使得桌面管理变得简单,不用每台终端单独进行维护,每台终端进行更新。终端数据可以集中存储在中心机房里,安全性相对传统桌面应用要高很多。桌面虚拟化可以使得一个人拥有多个桌面环境,也可以把一个桌面环境供多人使用,节省了license。另外,桌面虚拟化依托于服务器虚拟化。没有服务器虚拟化,这个桌面虚拟化的优势将完全没有了。不仅如此,还浪费了许多管理资本。

5. 硬件虚拟化

英特尔虚拟化技术(IVT,Intel Virtualization Technology)是由英特尔开发的一种虚拟化技术,利用IVT可以对在系统上的客操作系统,通过虚拟机查看器(VMM,Virtual Machine Monitor)来虚拟一套硬件设备,以供客操作系统使用。这些技术以往在VMware与Virtual PC上都通过软件实现,而通过IVT的硬件支持可以加速此类软件的进行。

AMD虚拟化(AMD Virtualization),缩写为“AMD-V”,是AMD为64位的x86架构提供的虚拟化扩展的名称,但有时仍然会用“Pacifica”(AMD开发这项扩展时的内部项目代码)来指代它。

各类型虚拟化的区别

典型的代表有:Xen,KVM,WMware,Hyper-V、Docker容器等。

Xen是开源免费的虚拟化软件;WMware是付费的虚拟化软件;Hyper-V微软的收费虚拟化技术;Docker是一种容器技术,属于一种轻量级虚拟化技术。

1. KVM(Kernel-based Virtual Machine)基于内核的虚拟

KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。

2. Xen

Xen是第一类运行在裸机上的虚拟化管理程序(Hypervisor)。它支持全虚拟化和准虚拟化,Xen支持hypervisor和虚拟机互相通讯,而且提供在所有Linux版本上的免费产品,包括Red Hat Enterprise Linux和SUSE Linux Enterprise Server。

Xen最重要的优势在于准虚拟化,此外未经修改的操作系统也可以直接在Xen上运行(如Windows),能让虚拟机有效运行而不需要仿真,因此虚拟机能感知到Hypervisor,而不需要模拟虚拟硬件,从而能实现高性能。

配置环境

一些名词解释

  • libvirt作用:虚拟化的管理软件

  • libvirt : kvm.xen.qemu.lxc

  • virt virt-install virt-clone 作用:虚拟机的安装工具和克隆工具

  • qemu-kvm qemu-img (qcow2.raw)作用,管理虚拟化的虚拟磁盘


安装vmware,创建cent os虚拟机,这里不赘述了,这个就太基础了,不值得说,不会可以百度。

vmware环境配置要求:

  1. 虚拟机分配内存4g以上
  2. vmware开启虚拟化
  3. 开启ssh

相关:虚拟机下cent os开启ssh

xshell连接虚拟机:ssh软件怎么使用不用教了吧?

劫持yum源(这一步也可以不做,只是速度会慢一点)

xshell菜单栏>>>查看>>>快速命令>>>右侧勾选快速命令栏

在下方弹出的窗口双击(不同版本可能有区别),在新弹出的窗口键入标签名,在字串输入框键入命令

1
2
//参考命令,视你的交换机决定前置IP地址,保存,点击,回车。
echo '192.168.37.127 mirrors.aliyun.com' >>/etc/hosts

然后替换阿里云yum源,也可以保存为快速命令

1
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

安装kvm虚拟化管理工具

1
yum install libvirt virt-install qemu-kvm -y

ftp push一个cent 7的包到虚拟机作为kvm虚拟机的镜像包,我没有配置ftp,直wget下载,或者也可以按照这里配置ftp

1
2
3
4
5
6
7
//先检查有没有安装wget
yum list installed | grep wget
//没有的话输入以下命令安装
yum install wget

//然后wget下载链接到指定目录
参考命令 wget http://mirrors.njupt.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso /opt/cdrom

启动libvirt的命令

1
2
systemctl start libvirtd.service
systemctl status libvirtd.service

创建虚拟机的命令

1
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos_kvm.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-Minimal-2009.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

嗯,这里我出了一个的错误:ERROR 主机不支持 任意虚拟化选项

我重新装了一下虚拟化环境,提示没有可用软件包 qemu-kym-y。这里各位童鞋抄代码的时候一定注意不要写错了啊。

virt命令的参数详解

–virt-type kvm 虚拟化的类型 (xen kvm或qemu为默认)

–os-type=linux 系统类型

–OS-variant rhel7 系统版本

–name centos7 虚拟机名字

–memory 1024 虚拟机的内存

–vcpus 1 虚拟机cpu的核心数

–disk /opt/centos2.raw,format=raw size:10 虚拟机硬盘保存名和类型(qcow2或raw)与位置,格式化保存的类型 硬盘空间(单位G)

–cdrom /opt/centos-7-X86_64-11-1-08150.iso 虚拟机镜像的位置

–network network=default 默认使用NAT

–graphics vnc,listen=0.0.0.0 显示类型,需要监听的地址4个0为全网段监听

–noautoconsole 不知道什么意思,无影响,英文字面是不自动控制

continue>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  • 引述一下vnc viewer

VNC是一款很实用的可以实现远程桌面控制的小工具,VNC Viewer软件可以帮助用户从其他的计算机或者移动设备上通过 Internet查看或者完全控制你的计算机。VNC是跨平台的,它能够在不同类型的计算机上交互操作,还支持Java客户端,如果没有安装指定的客户端也可以成功进行vpc的访问。

这里有的童鞋可以先去下载一个vnc viewer用于创建虚拟机后的操作

使用vnc连接虚拟机ip,默认回车就可以,出现图形就代表成功了

  • 继续,修改系统挂载分区项(仅供参考,我虚拟机装在了机械硬盘,所以关闭swap分区),点由我配置分区,点击完成后弹出窗口选择标准分区,在下面点击加号,挂载点选择根/,点击添加挂载点,完成

kdump

看文字描述,笔记本内存小,我把它关了

网卡

打开开机自启

然后最小化安装,注意一下时区等配置就行了,点击开始安装,配置root密码等待安装完成


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!