预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN112035063A(43)申请公布日2020.12.04(21)申请号202010882455.6(22)申请日2020.08.28(71)申请人浪潮云信息技术股份公司地址250100山东省济南市高新区浪潮路1036号浪潮科技园S01号楼(72)发明人王新雨张晖高传集蒋方文王铭锐张金生丁瑞孙继赟(74)专利代理机构济南信达专利事务所有限公司37100代理人阚恭勇(51)Int.Cl.G06F3/06(2006.01)权利要求书2页说明书4页附图3页(54)发明名称一种基于云平台的硬盘及文件系统热扩容的方法(57)摘要本发明提供一种基于云平台的硬盘及文件系统热扩容的方法,属于云计算技术领域,包括:添加udev硬盘扩容规则及相应的执行脚本,并制作虚机镜像用于创建用户虚机;用户发送扩容请求,调度到虚机所在物理节点,执行相应命令扩容。udev监听内核发送的uevent消息,如果满足硬盘扩容相应的规则,则执行准备好的脚本。脚本执行,完成相应的磁盘分区及文件系统的扩容功能。该硬盘及文件系统热扩容机制相比现有扩容方法相比,可以实现热扩容而无需重启操作,而且可以实现同时支持系统盘、数据盘的扩容。CN112035063ACN112035063A权利要求书1/2页1.一种基于云平台的硬盘及文件系统热扩容的方法,其特征在于,包括:1)添加udev硬盘扩容规则及相应的执行脚本,并制作虚机镜像用于创建用户虚机;2)用户发送扩容请求,调度到虚机所在物理节点,执行相应命令扩容;3)运行在云服务器内的udev守护进程,监听到内核发出的uevent;当监听到与定义的硬盘扩容规则相符合的uevent,调用相应的脚本;4)脚本执行,完成相应的磁盘分区及文件系统的扩容功能。2.根据权利要求1所述的方法,其特征在于,udev检测硬盘的变化;当满足定义的规则时,执行相应的操作;预置硬盘扩容后,分区和文件系统扩容的相应脚本;将规则和脚本都写入到云服务器镜像当中,供给用户创建云服务器。3.根据权利要求1所述的方法,其特征在于,用户提出对现有的云服务器进行硬盘热扩容请求,服务端程序调度到用户云服务器所在计算主机上,并执行libvirt的blockresize命令,此命令调用具体hypervisordriver来实际热扩容操作。4.根据权利要求2所述的方法,其特征在于,所述的udev硬盘扩容规则的添加与镜像的制作过程,udev硬盘热扩容规则匹配键,设置规则中ACTION(uevent事件的行为)为change表示当硬盘发生变动时,此规则生效;设备的子系统名称SUBSYSTEM设置为block;DEVPATH设置为对应硬盘的内核设备路径;当以上的匹配键与内核发送的uevent中的完全匹配时,才会执行后续的赋值键。5.根据权利要求4所述的方法,其特征在于,dev硬盘热扩容规则赋值键,设置规则udev键RUN为执行预置的脚本。6.根据权利要求5所述的方法,其特征在于,预置脚本的内容为对扩容硬盘对应的分区及文件系统进行扩容;分区扩容使用growpart工具,文件系统的扩容使用resize2fs工具。7.根据权利要求5所述的方法,其特征在于,镜像的制作过程中,需要预置准备好的udev硬盘热扩容规则和脚本;并保证添加的规则已经装载到udev中并生效;镜像的制作过程中,需要保证根分区为系统盘的最后一个分区,以保证系统盘扩容时,可以成功扩容根分区。8.根据权利要求7所述的方法,其特征在于,硬盘热扩容请求处理过程如下:(1)用户使用以上制作的镜像已创建云服务器;用户针对此云服务器的,提出热扩容请求;(2)服务端验证用户请求,进行权限验证。验证通过后执行后续操作;(3)服务端响应请求,并将请求通过消息队列发送到云服务器所在的计算节点上;(4)计算节点上对应程序响应请求,并通过云服务器块设备映射查找该磁盘id对应的设备名;调用libvirtAPI传入云服务器ID,设备名及新的磁盘大小;(5)Libvirt调用具体的driver执行磁盘扩容操作。2CN112035063A权利要求书2/2页9.根据权利要求8所述的方法,其特征在于,分区及文件系统的扩容的步骤如下:(1)磁盘大小发生变化,内核会发出action为change的uevent事件;(2)udev守护进程监听到该uevent消息,并将该uevent与现有的rules进行匹配,如果所有的匹配键都符合该规则的要求,则执行对应的赋值键;(3)如果该uevent符合硬盘热扩容规则,则执行预置的脚本;(4)调用growpart扩容对应磁盘的最后一个分区;如果扩容的是系统盘,脚本会查找挂载点“/”所在的分区,即根分区进行扩容;如果磁盘已挂载到文件系统中,调用resize2fs扩