优化虚拟机启动加载的技术

2019-07-20 13:24麦剑谭伟良胡新勇
电子技术与软件工程 2019年10期
关键词:虚拟机存储云计算

麦剑 谭伟良 胡新勇

摘要:云主机(虚拟机)是一种在物理主机上通过虚拟化技术再运行一个操作系统实例。下文将对如何优化虚拟机启动加载展开研究讨论。

[关键词]云计算 虚拟机 存储 优化启动

云计算基础服务IAAS主要由三大块组成:计算虚拟化(提供CPU服务)、网络虚拟化(提供网络服务)和存储虚拟化(提供磁盘服务),这块正是本文所讨论研究的。

存储架构可分以下几种:

(1)本地存储,磁盘服务是由虛拟机所

在的物理机提供,由物理机磁盘划分空间给虚拟机用,该方式成本低,传输读写效率高,但存在单点故障,数据安全性差;

(2)集中式存储,通常是一个存储硬件设备,内置若千个物理磁盘组成阵列,提供一个很大的存储空间,并用网络方式供虚拟机使用。该方式数据安全性较高,服务稳定,但成本高昂,且设备往往比较固话,不易于扩展,也存在单点故障问题;

(3)分布式存储,通常是由多台物理服务器组成集群,每台服务器由多个物理硬盘组成,服务器之间通过网络连接起来,再由软件实现对多台设备的硬盘组成整列,虚拟成一个大的存储空间供虚拟机使用。该方式架构灵活,容易扩展,成本选择性大,整体可控性好。数据安全性方面,选择较为灵活,可以选择冗余数量。该架构需要较高的技术运维、开发能力才能有效运营。

根据上面介绍,得知每种存储方式都有自身优缺点,没有一个完美的方案,有没有一种可以方案技术可以拥有以上描述的优点,又能解决对应的缺点,做到鱼和熊掌兼得呢,下面着重讨论研究。

1虚拟机加载机制方式

现有云提供商存储方式一般都只会选择中心存储或者分布式存儲,因此,我们只讨论目前流行的虚拟机加载机制方式,如图1所示。

无论中心存储还是分布式存储,他们都通过网络的方式来连接,如图所示,在网络存储划分一个空间给虚拟机A用,划分另外一个空间给虚拟机B用。虚拟机在物理机开机时需要通过网络远程加载系统盘,并读取引导信息、操作系统内核、应用程序等数据到物理机内存并运行。

2目前存在的问题

通过上面的加载启动方式得知,虚拟机每次启动的时候都需要通过网络的方式远程获取引导数据信息、内核数据信息等到本地物理设备内存,这个比传统的直接读取本地磁盘效率要低得多。除此之外,在短时间内如果当有大量虚拟机同时创建开机,会对存储设备、网络及网络设备造成瞬间的冲击力,容易会影响存储服务和网络的通讯质量。

3改进的思路

虚拟机开机的流程可以大概描述成以下几个顺序从系统盘加载引导区数据进行引导,从引导区转入加载系统内核,由此进入内核启动流程,最后把相关应用数据等加载完毕后,操作系统正式可用。下面我们以Linux操作系统为例,描述对应的改进思路。

Linux操作系统有专门的启动分区(/boot),在启动分区里面存放的是系统内核镜像及相关配置文件,是操作系统引导必须且核心关键所在,其他分区则存放应用程序及用户数据。

Linux操作系统内核及启动分区/boot是比较固化的内容,每个发行版本有所对应的版本内核,那么假如把这些内核公共的部分都整理出来放在虚拟机所在物理机的物理硬盘上,既可以缩短虚拟机的开机加载速度,又能减低大批量虚拟机同时开机对存储和网络产生的瞬间冲击力。详见下面的具体实施方案。

4具体实施方案

如图2所示,假如现在有两台使用同一发行版的Linux虚拟机A和B,我们把这两个虚拟机对应Linux发行版的内核及相关配置内容存放在物理机磁盘之上,虚拟机原有的磁盘不变继续存放在网络存储空间中。

当虚拟机A或者B在物理机上开机启动时,加载Linux内核部分的内容直接从本地磁盘读取(因为是单机内部通讯,不涉及网络,所以速度非常快)内核数据到内存进行加载启动等正常流程。操作系统会从原有的网络存储空间读取和加载应用程序和数据,跟原有的流程机制一样。

通过这种方式的调整,使得虚拟机开机加载启动速度变快,而且在大量虚拟机同时开机时因为内核加载部分都是直接在本地物理设备上读取,所以不会对存储和网络造成冲击。

5结语

云计算一个很重要的特性是弹性,代表着用户可以随时购买云资源,购买数量没有明显限制,即买即用。本论文所讨论的方案,即是有助于提升虚拟机的交付效率,缩短交付时间,同时能够解决大量资源创建所带来的冲击。

参考文献

[1](德)WolfgangMauerer,郭旭(译).深入Linux内核架构[M].人民邮电出版社,2010.

[2]叶毓睿主编.软件定义存储:原理、实践与生态[M].机械工业出版社,2016.

猜你喜欢
虚拟机存储云计算
档案管理中电子文件的存储探究
实验云:理论教学与实验教学深度融合的助推器