CN118210441A - 一种磁盘扩容方法、计算设备及计算设备集群 - Google Patents
一种磁盘扩容方法、计算设备及计算设备集群 Download PDFInfo
- Publication number
- CN118210441A CN118210441A CN202410236653.3A CN202410236653A CN118210441A CN 118210441 A CN118210441 A CN 118210441A CN 202410236653 A CN202410236653 A CN 202410236653A CN 118210441 A CN118210441 A CN 118210441A
- Authority
- CN
- China
- Prior art keywords
- disk
- target
- capacity
- disks
- capacity expansion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000012795 verification Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 85
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000003339 best practice Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 239000007787 solid Substances 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 206010063385 Intellectualisation Diseases 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种磁盘扩容方法、计算设备及计算设备集群,涉及服务器技术领域。该方法包括获取用户的扩容请求;其中,扩容请求包括待扩容的目标磁盘的磁盘类型和数量,磁盘类型为缓存盘或容量盘;响应于扩容请求,基于预设的扩容规则和磁盘地图得到目标扩容策略;其中,预设的扩容规则包括不同的磁盘配置所对应的扩容策略,磁盘地图用于记录计算设备集群中已有磁盘的配置信息,配置信息包括已有磁盘的参数、已有磁盘在磁盘组中的磁盘类型,以及已有磁盘所在槽位与磁盘阵列卡和磁盘组之间的对应关系;目标扩容策略包括目标磁盘的参数和目标槽位;该方案可以实现自动化扩容的,并能够提高扩容成功率。
Description
技术领域
本申请涉及服务器技术领域,尤其涉及一种磁盘扩容方法、计算设备及计算设备集群。
背景技术
虚拟存储区域网(virtual storage area networking,vSAN)是一种基于软件的、可扩展的分布式存储架构。通常构建vSAN存储层的原理是:集群内服务器各个节点内的固态硬盘和机械硬盘等聚合在一起,形成一个共享存储池,该存储池中的多个磁盘被组成逻辑阵列(即磁盘组),从而使数据分散地保存在多个磁盘中,实现高效的读写和数据冗余,避免单个磁盘故障引起的数据丢失。vSAN存储层一般包括多个磁盘组,每个磁盘组包括一个缓存磁盘(简称为缓存盘)和多个容量磁盘(简称为容量盘)。
随着科技的不断发展,用户对数据存储的需求也越来越大,因此常常需要对集群进行磁盘扩容。但是,用户对磁盘扩容的方式大多是手动操作,主要通过集群虚拟化的管理页面查看vSAN的配置情况,从而自行判断要如何创建磁盘组或者对哪个磁盘组添加容量设备,这就需要用户必须十分了解vSAN存储层的硬件情况,否则很容易扩容失败,或者即使扩容成功也会导致整体存储性能下降。故而,这种扩容方式对用户很不友好,扩容操作的便捷性差。
发明内容
本申请实施例提供了一种磁盘扩容方法、计算设备及计算设备集群,能够降低扩容操作难度;可以实现自动化扩容的,并能够提高扩容成功率。
第一方面,本申请实施例提供一种磁盘扩容方法,方法包括:获取用户的扩容请求;其中,扩容请求包括待扩容的目标磁盘的磁盘类型和数量,磁盘类型为缓存盘或容量盘;响应于扩容请求,基于预设的扩容规则和磁盘地图得到目标扩容策略;其中,预设的扩容规则包括不同的磁盘配置所对应的扩容策略,磁盘地图用于记录计算设备集群中已有磁盘的配置信息,配置信息包括已有磁盘的参数、已有磁盘在磁盘组中的磁盘类型,以及已有磁盘所在槽位与磁盘阵列卡和磁盘组之间的对应关系;目标扩容策略包括目标磁盘的参数和目标槽位。
在本实施例中,预先针对计算设备集群中所有计算设备上的磁盘、磁盘所在磁盘阵列(raid)卡、以及磁盘形成的磁盘组等,创建磁盘地图,记录当前磁盘硬件本身的配置信息、与raid卡、磁盘组之间的对应关系,并构建扩容规则。这样,当计算设备集群(或者用于管理该集群的设备、平台等)获取到用户的扩容请求之后,可以直接根据该扩容请求和磁盘地图,遍历扩容规则,从而生成相应的目标扩容策略,指导用户根据该目标扩容策略在目标槽位插入指定参数的目标磁盘。其中,该参数可以包括但不限于目标磁盘的介质类型、容量、协议类型,等等。这样,可以降低用户的人工参与,利于降低人工扩容的难度,并利于保障扩容之后vSAN存储层的高可用性。
在一些可能的实施例中,响应于扩容请求,基于预设的扩容规则和磁盘地图得到目标扩容策略之前,方法还包括:从虚拟存储区域网获取第一信息,第一信息包括磁盘组的数量,以及每个磁盘组中的缓存盘和容量盘的序列号、数量和参数;从计算设备集群获取中第二信息,第二信息包括计算设备集群中已有磁盘的数量,每个已有磁盘的序列号、参数及其所在槽位与磁盘阵列卡的对应关系;融合第一信息和第二信息,得到磁盘地图。
在本实施例中,可以从计算设备集群的软件层面获取虚拟存储区域网vSAN中磁盘组的相关信息(第一信息),并通过计算设备集群中各计算设备的基板管理控制器BMC获取磁盘硬件本身的配置信息(第二信息),从而融合得到磁盘地图以记录磁盘全面的信息,尤其是作为缓存/容量盘的磁盘所在的槽位,便于后续生成最佳扩容路径的目标扩容策略,提高扩容操作的自动化、智能化程度。
在一些可能的实施例中,融合第一信息和第二信息,得到磁盘地图,包括:将缓存盘和容量盘的序列号与已有磁盘的序列号进行匹配,确定每个缓存盘和每个容量盘所在的槽位;根据每个缓存盘和每个容量盘所在的槽位,确定缓存盘和容量盘与磁盘阵列卡的对应关系,以及磁盘阵列卡上槽位的使用状态,得到磁盘地图;其中,使用状态包括空闲或被使用。
这样,基于磁盘组中容量盘和缓存盘的序列号与磁盘的序列号之间的一致性匹配,可以将各硬件磁盘与磁盘组关联起来,融合为信息更全面的磁盘地图。
在一些可能的实施例中,在获取用户的扩容请求之前,方法包括:将磁盘地图转换为物理视图;输出物理视图;其中,物理视图用于供用户确定扩容请求。
这样,用户可以将物理视图作为扩容参考,确定自己需要扩容何种类型(容量盘或缓存盘)的磁盘。
在一些可能的实施例中,目标磁盘包括目标缓存盘和第一容量盘,第一容量盘为在扩容缓存盘时需随之扩容的容量盘;响应于扩容请求,基于预设的扩容规则和磁盘地图确定目标扩容策略,包括:
确定磁盘组的数量是否达到磁盘组数量阈值;在磁盘组的数量未达到磁盘组数量阈值的情况下,根据磁盘地图确定是否存在第一目标磁盘阵列卡;其中,第一目标磁盘阵列卡的空闲槽位数量大于或等于1+n,n表示磁盘组设定的容量盘数量,n≥1;在存在第一目标磁盘阵列卡的情况下,将第一目标磁盘阵列卡的空闲槽位作为目标槽位;目标槽位为插入目标缓存盘和第一容量盘的槽位,第一容量盘的数量为n;根据已有磁盘组中缓存盘和容量盘的参数确定目标缓存盘和第一容量盘的参数;基于目标缓存盘和第一容量盘的参数以及目标槽位,生成目标扩容策略。
这样,在请求扩容缓存盘类型时,可以通过扩容策略,可以先在同一个磁盘阵列(raid)卡上扩容目标缓存盘和相应的容量盘(即第一容量盘),创建得到新的磁盘组,使得该磁盘组中的所有目标磁盘具有最佳的扩容路径,达到扩容的最佳实践要求,提升集群整体的存储性能。
在一些可能的实施例中,目标槽位包括第一目标槽位和第二目标槽位;响应于扩容请求,基于预设的扩容规则和磁盘地图得到目标扩容策略,还包括:在不存在第一目标磁盘阵列卡的情况下,确定第二目标磁盘阵列卡和第三目标磁盘阵列卡;其中,第二目标磁盘阵列卡的空闲槽位数量小于1+n,且大于1;第二目标磁盘阵列卡的空闲槽位和第三目标磁盘阵列卡的空闲槽位之和大于或等于第一目标磁盘阵列卡的空闲槽位;将第二目标磁盘阵列卡的空闲槽位作为第二目标槽位,及将第三目标磁盘阵列卡的空闲槽位作为第三目标槽位;其中,第二目标槽位为插入目标缓存盘和r个第一容量盘的槽位,r<n;第三目标槽位为插入n-r个第一容量盘的槽位;根据已有磁盘组中缓存盘和容量盘的参数确定目标缓存盘和第一容量盘的参数;基于目标缓存盘和第一容量盘的参数以及所有目标槽位,生成目标扩容策略。
这样,若不能在同一个raid卡上执行扩容,则可以将大部分目标磁盘插入同一个raid卡,以尽可能地提升扩容成功率。
在一些可能的实施例中,在目标磁盘包括目标容量盘;响应于扩容请求,基于预设的扩容规则和磁盘地图确定目标扩容策略,包括:
确定目标磁盘的数量以及已有磁盘组的容量盘的一致性;在目标磁盘为一个,且已有磁盘组之间的容量盘数量不一致的情况下,从已有磁盘组中确定第一目标磁盘组;其中,第一目标磁盘组为容量盘最少的磁盘组;在目标磁盘为一个,且已有磁盘组之间容量盘数量一致,确定第二目标磁盘组;第二目标磁盘组为磁盘组列表中的起始磁盘组;基于磁盘地图,从第一目标磁盘组或第二目标磁盘组所位于的磁盘阵列卡的空闲槽位中,确定目标槽位;目标槽位为插入目标容量盘的槽位;根据已有磁盘组的容量盘的参数,确定目标容量盘的参数;基于目标容量盘的参数和目标槽位,生成目标扩容策略。
这样,在请求扩容容量盘类型时,可以通过扩容策略,先在容量盘较少的磁盘组中执行扩容,便于实现磁盘组的磁盘数量均衡,利于达到扩容的最佳实践要求,提升集群整体的存储性能。
在一些可能的实施例中,目标槽位包括第三目标槽位和第四目标槽位;响应于扩容请求,基于预设的扩容规则和磁盘地图确定目标扩容策略,还包括:
在目标磁盘为m(m>1)个,且已有磁盘组之间的容量盘数量不一致的情况下,对第一目标磁盘组扩容s(0<s<m)个目标容量盘;确定每个磁盘组之间的容量盘数量是否一致;在每个磁盘组之间的容量盘数量一致的情况下,将剩余m-s个目标容量盘均等扩容至所有磁盘组,其中,0<s<m;根据磁盘地图,将第一目标磁盘组所位于的磁盘阵列卡上的s个空闲槽位,确定为第三目标槽位,第三目标槽位为待插入s个目标容量盘的槽位;从其余磁盘阵列卡中确定m-s个空闲槽位作为第四目标槽位;第四目标槽位为待插入m-s个目标容量盘的槽位;根据已有磁盘组的容量盘的参数,确定目标容量盘的参数;基于目标容量盘的参数和目标槽位,生成目标扩容策略。以便于实现磁盘组的磁盘数量均衡,利于达到扩容的最佳实践要求,提升集群整体的存储性能。
在一些可能的实施例中,,方法还包括:在检测到目标槽位插入目标磁盘的情况下,获取目标磁盘的物理配置信息;根据物理配置信息,校验物理配置信息与目标扩容策略的一致性;在校验通过的情况下,对目标磁盘执行扩容操作。
这样,通过校验,可以防止用户未按照目标扩容策略插入磁盘而导致不能达到最佳实践要求、导致集群存储性能下降、或者目标磁盘不兼容等问题。
第二方面,本申请实施例提供一种磁盘扩容装置,该装置包括:获取模块,用于获取用户的扩容请求;其中,扩容请求包括待扩容的目标磁盘的磁盘类型和数量,磁盘类型为缓存盘或容量盘;处理模块,用于响应于扩容请求,基于预设的扩容规则和磁盘地图得到目标扩容策略;其中,预设的扩容规则包括不同的磁盘配置所对应的扩容策略,磁盘地图用于记录计算设备集群中已有磁盘的配置信息,配置信息包括已有磁盘的参数、已有磁盘在磁盘组中的磁盘类型,以及已有磁盘所在槽位与磁盘阵列卡和磁盘组之间的对应关系;目标扩容策略包括目标磁盘的参数和目标槽位。
第三方面,本申请实施例提供一种计算设备,包括:存储器和处理器,存储器和处理器耦合;其中,存储器用于存储程序指令;处理器用于调用存储器存储的程序指令,以执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
第四方面,本申请实施例提供一种计算设备集群,计算设备集群包括至少一个如第三方面所描述的计算设备。
第五方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
第六方面,本申请实施例提供一种计算机程序产品,其特征在于,当计算机程序产品在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
第七方面,本申请实施例提供一种芯片,其特征在于,包括至少一个处理器和接口;至少一个处理器通过接口获取程序指令或者数据;至少一个处理器用于执行程序行指令,以实现第一方面或第一方面的任一种可能的实现方式所描述的方法。
可以理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1是本申请实施例提供的一种计算设备集群的架构示意图;
图2是本申请实施例的计算设备集群中生成磁盘的物理视图的示意图;
图3A是本申请一具体实施例中的磁盘地图的示意图;
图3B是本申请一具体实施例中磁盘地图转换为物理视图的界面示意图;
图4是本申请实施例提供的一种磁盘扩容方法的流程示意图;
图5是本申请一具体实施例提供的一种磁盘扩容方法的流程示意图;
图6是本申请一具体示例中生成扩容策略的示意图;
图7是本申请一具体示例中生成扩容策略的示意图;
图8是本申请一具体示例中生成扩容策略的示意图;
图9是本申请实施例提供的一种磁盘扩容装置的结构示意图;
图10是本申请实施例提供的一种芯片的结构示意图。
具体实施方式
本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中符号“/”表示关联对象是或者的关系,例如A/B表示A或者B。并且,本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
为便于理解本申请的技术方案,下面对本文中涉及的术语进行解释。
ESXi:全称为“VMware ESXi”,威睿(VMware)公司提供的一款可直接安装在物理服务器上的裸机管理系统,其实为Linux内核的操作系统(operating system,OS),可以便捷地在其所在物理服务器上创建、运行虚拟机。
虚拟存储区域网(virtual storage area networking,vSAN):一种以vSphere(一套服务器虚拟化解决方案)内核为基础进行开发、可扩展的分布式存储架构。
磁盘阵列(redundant arrays of independent disk,RAID):是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。
磁盘阵列卡,即RAID卡,用于构成磁盘阵列的板卡。
磁盘组:VMware定义的vSAN中的磁盘的逻辑组,用于让多块容量层机械硬盘(harddisk drive,HDD)或固态硬盘(solid state disk,SSD)共享一个缓存层SSD。
vCenter,即VMware vCenter Server(或者vCenter Server),是一个可伸缩、可扩展的服务器管理平台,为虚拟化管理奠定了基础,可集中管理VMware vSphere(是一套服务器虚拟化套件)环境。
服务器智能管理系统(intelligent baseboard management controller,iBMC):是面向服务器全生命周期的服务器嵌入式管理系统,提供硬件状态监控、部署、节能、安全等系列管理工具,运行在服务器的基板管理控制器(baseboard management controller,BMC)。
虚拟机监视器(hypervisor),又称为VMM(virtual machine monitor),是用来建立与执行虚拟机器的软件、固件或硬件。
vSAN是以vSphere内核为基础进行开发、可扩展的分布式存储架构,其中间架构在hypervisor中,支持VMware vSphere的所有共享存储的特性。而VMware vSphere只提供虚拟化平台,偏向计算、网络、存储的虚拟化和池化,不关注集群服务器硬件本身的管理,无法形成有效的软硬一体化管理界面,虽然VMware vSphere在管理界面提供了扩容容量盘和扩容磁盘组(缓存盘)的能力,供用户根据扩容诉求和查看当前vSAN的配置情况来判断要将哪些磁盘创建为一个磁盘组,或者向哪个磁盘组中添加容量设备,但是,用户必须对当前vSAN存储层相关的硬盘配置要了然于胸,即用户要能准确了解各个磁盘的介质类型、接口形式、型号、和是否存在脏分区、已有磁盘组下容量盘数量是否均等情况,否则在管理界面强行进行扩容操作的话可能会导致磁盘组创建或容量盘添加失败,即使成功也有可能导致整体存储性能的下降。
为了能够提高对vSAN存储层中磁盘扩容操作的便捷性,并保障磁盘扩容的高效性,本申请实施例中提供了一种磁盘扩容方法。该方法主要是通过服务器带内管理和带外管理相结合,全面获取服务器硬件配置情况和vSAN存储层中磁盘组配置情况,然后通过预置的扩容规则,基于这些配置情况自动生成最佳的扩容策略。这样,可以降低用户的人工参与,利于降低人工扩容的难度,并利于保障扩容之后vSAN存储层的高可用性。
为便于理解本申请实施例的技术方案,下面结合附图对本申请实施例提供的一种计算设备集群进行介绍。
示例性的,图1示出的是一种计算设备集群的架构示意图。如图1所示,计算设备集群1中可以包括多个服务器(11,12,13,…),各个服务器(11,12,13,…)之间可以通过内部网络进行通信交互。具体地,每个服务器(11,12,13,…)中均包括处理器(centralprocessing unit,CPU)110、存储器(包括内存120、磁盘130)和网卡140,以提供相应的计算资源、存储资源和网络资源。并且,每个服务器(11,12,13,…)的硬件层还包括基板管理控制器BMC150,BMC150能够对所在硬件层的硬件进行状态监测和控制。可以理解的是,用户可以操作终端(如个人计算机PC、平板电脑等)2通过浏览器远程登录访问服务器智能管理系统iBMC(运行在BMC150上),从而可以查看BMC150对硬件层中各硬件的监控情况。
在本实施例中,每个服务器(11,12,13,…)中均可以部署有ESXi OS20,并且可以通过运行在各自ESXi OS20上的虚拟机监视器(hypervisor)21创建、和运行一个或多个虚拟机VM,以及为虚拟机VM调用硬件层的计算资源、存储资源和网络资源。可以理解,各虚拟机VM之间可以运行相同或不同的应用程序以提供相应的服务,虚拟机也可以称为云服务器(elastic compute service,ECS))、弹性实例。
在本实施例中,可以通过服务器管理平台vCenter server22统一管理计算设备集群1中的各虚拟机VM,例如监控虚拟机VM的运行状态、调整虚拟机VM的资源以及迁移虚拟机VM等。示例性的,该服务器管理平台vCenter server22可以运行在通用服务器上或者是运行在云上的基础设施,例如图1中所示的部署在计算设备集群1中的一个虚拟机VM中。在本示例中,服务器管理平台vCenter server22可以部署为B/S架构,用户可以操作终端2(如个人计算机PC、平板电脑等)来通过浏览器远程接入服务器管理平台vCenter server22的网页客户端(vCenter Client),从而登录服务器管理平台vCenter server22,进行对各个虚拟机VM的管理操作。
在本实施例中,计算设备集群1中还部署有集群管理平台Center23,用于管理各服务器(11,12,13,…)的物理资源(包括硬件层提供的资源)和虚拟化资源(包括各虚拟机VM使用的资源)。示例性的,用户可以操作终端2通过浏览器远程接入集群管理平台Center23提供的访问接口(如界面UI或API),从而登录集群管理平台Center23,进行对计算设备集群1的资源配置管理操作。该集群管理平台Center23可以运行在通用服务器上或者是运行在云上的基础设施,例如图1中所示的与服务器管理平台vCenter server22部署在不同的虚拟机VM上。
在本实施例中,请参考图2所示的,计算设备集群1中各个服务器(11,12,13,…)中均可以设有一个或多个raid卡30,每个raid卡30上可以管理多个磁盘130,这些磁盘130可以包括至少一个固态硬盘SSD和多个机械硬盘HDD,但不限于此。该计算设备集群1中的所有磁盘130提供的存储资源被服务器管理平台vCenter server22聚合至共享的vSAN存储层40,以提供给该集群1中的虚拟机VM使用。其中,vSAN存储层40中可以构建多个磁盘组,每个磁盘组中包括一个缓存盘(cache,本文中也简称为CAC)和多个容量盘(capacity,本文中也简称为CAP),作为具体示例而非限定,构建磁盘组时可以将固态硬盘SSD作为缓存盘,将机械硬盘HDD作为容量盘。这样,当用户具有高存储需求,或者当计算设备集群1中的vSAN存储层40的存储容量即将耗尽或群集性能降低时,用户可以通过对磁盘组增加存储设备(容量盘和/或缓存盘)或者创建新磁盘组来扩展vSAN存储层40的存储容量,防止由于存储不足而导致集群业务受损。
接下来,对本申请实施例对vSAN存储层40的扩容原理进行详细介绍。
继续参考图2所示的,本实施例中,通过集群管理平台Center23执行vSAN存储层40的扩容流程。具体地,一方面,集群管理平台Center23可以对接至服务器管理平台vCenterserver22,调用服务器管理平台vCenter server22执行S1步骤管理各个服务器(11,12,13,…)的ESXi OS20,从而使服务器管理平台vCenter server22通过带内管理获取各磁盘130的接口类型(遵循的通信协议)、介质类型(如SSD或HDD)、序列号和容量,以及磁盘130的数量、vSAN存储层40中基于这些磁盘130所构建的磁盘组的数量、各磁盘组中容量盘和缓存盘的型号等,为便于描述,本文中也将服务器管理平台vCenter server22通过带内管理获取的这些关于磁盘130和磁盘组的所有信息称为“第一信息”。接着,集群管理平台Center23接收从服务器管理平台vCenter server22传递的该第一信息,执行步骤S2进入对vSAN存储层40的磁盘组管理,其中,对磁盘组管理包括但不限于:对当前磁盘组添加缓存盘/容量盘,以及创建磁盘组。
并且,另一方面,集群管理平台Center23还能够通过访问BMC150上运行的iBMC,执行步骤S3管理iBMC,以通过带外管理获取各个服务器(11,12,13,…)上的raid卡30序列号、硬盘槽位号、以及raid卡30与硬盘槽位号之间的关系,还获取raid卡30所接入磁盘的数量、型号、序列号、以及介质类型等数据,为便于描述,本文中也将通过带外管理获取的这些关于raid卡30和磁盘130的所有信息称为“第二信息”。接着,集群管理平台Center23可以接收从iBMC传递的该第二信息,执行步骤S4进入对磁盘130的硬件管理。
在本实施例中,集群管理平台Center23获取第一信息和第二信息之后,将第一信息和第二信息融合,形成该集群1的磁盘地图。作为一个具体示例,该磁盘地图可以依据服务器(11,12,13,…)进行信息记录,从而表征如图3A所示的各个主机(即服务器)上所有磁盘130与相应raid卡30以及磁盘组的关联关系。然后,集群管理平台Center23可以执行S7步骤将该磁盘地图转化为多个主机的物理视图,并通过步骤S8将该物理视图以插件化的方式注册到服务器管理平台vCenter server22的浏览器客户端vCenter Client24,呈现在相应的界面(本文中也称为“存储层扩容界面UI”),呈现效果可以参考图3B所示。在图3B中,该存储层扩容界面UI中展示的物理视图包括一个服务器的前视图310和后视图320,并在前视图310中展示了槽位号(如图3B中的0-8号槽位)以及槽位当前插入的磁盘130的介质类型(如SSD或HHD)等,其他服务器的物理视图类似。此外,该存储层扩容界面UI还提供相应的磁盘扩容接口(Add Disk),这样,用户结合该物理视图从磁盘扩容接口输入自己的扩容请求。示例性的,该扩容请求可以是表征创建新磁盘组的指令或者对某个已有磁盘组添加容量盘的指令。
需说明的是,由于在创建缓存盘的同时必须创建相应的容量盘,因此可以将用户创建缓存盘的需求视为是创建新的磁盘组的操作。举例说明,如果当前vSAN存储层40的磁盘组中包括一个缓存盘和两个容量盘,则如果当前要创建一个缓存盘则必须同步创建两个容量盘,相当于创建了一个新的磁盘组。
在本实施例中,在集群管理平台Center23接收到用户的扩容请求之后,可以根据该扩容请求输出目标扩容策略,以实现磁盘的最佳扩容实践。最佳扩容实践是指,当vSAN存储层40中各磁盘组之间的缓存盘和容量盘的类型、容量、协议、数量等都一致时,可以认为vSAN存储层40所在的计算设备集群1达到了vSAN的最佳实践要求,此时vSAN存储层40的输入/输出(Input/Output,IO)均衡,整体存储性能较强。
具体地,集群管理平台Center23输出目标扩容策略的原理包括:
预先构建规则库,该规则库中针对创建磁盘组、创建缓存盘以及创建容量盘等场景定义了若干项扩容规则,每项扩容规则描述了一种或多种扩容条件下应执行的扩容策略。例如,通过扩容规则定义:结合已有磁盘组中容量盘的类型、协议、容量信息给出待扩容容量盘的槽位号、磁盘类型、容量、协议;在增加1个容量盘时,若已有磁盘组容量盘数量不一致,则先推荐向容量盘少的磁盘组扩容;并且在推荐槽位时,参考磁盘地图并遵循磁盘组、槽位及raid卡30之间的关系,当前磁盘组位于同一个raid卡30下时,先在此raid卡30下空余槽位扩容,等等。
接着,集群管理平台Center23可以根据用户的扩容请求,基于获取的第一信息和第二信息遍历规则库中的所有规则,最终输出对应该扩容请求的目标扩容策略。例如,集群管理平台Center23根据扩容请求对磁盘组A扩容1个容量盘,则通过磁盘地图中记录的当前该磁盘组A、槽位及raid卡30的关系,遍历规则库的扩容规则,得出在目标槽位(其与磁盘组A已有容量盘所在的槽位处于同一个raid卡30下)插入指定规格(与磁盘组A已有容量盘的规格相同)的机械硬盘HHD。
这样,用户根据目标扩容策略插入新的磁盘130之后能够使该集群1达到vSAN的最佳实践要求,并且可以在创建磁盘组和增加容量盘时尽可能地避免了跨raid卡30扩容,以避免扩容之后的磁盘130之间因跨raid卡30存在读写效率不一致、磁盘130至CPU110的通信路径有差异等问题,导致扩容后的vSAN存储层40存储性能下降,也可以极大地避免跨raid卡30的磁盘组因某个raid卡30出现故障,而导致该磁盘组的数据丢失,利于提高数据存储可靠性。
接下来,基于上文所描述的内容,对本申请实施例提供的一种磁盘扩容方法进行介绍。可以理解的是,该方法是基于上文所描述的内容提出,该方法中的部分或全部内容可以参见上文中的描述。
请参阅图4,图4是本申请实施例提供的一种磁盘扩容方法的流程示意图。可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。例如通过图1中服务器12上部署的集群管理平台Center23执行,下文也以此为例进行阐述。
如图4所示,该方法可以包括:
S410,获取用户的扩容请求。
在本实施例中,扩容请求中包括待扩容的目标磁盘的磁盘类型和数量,磁盘类型为缓存盘或容量盘,例如扩容请求表示扩容一个缓存盘,或表示扩容一个或者多个容量盘。
示例性的,用户可以在终端2侧与集群管理平台Center23交互,将扩容请求传递至集群管理平台Center23进行处理。
S420,响应于扩容请求,基于预设的扩容规则和磁盘地图得到目标扩容策略。
在本实施例中,预先创建多项扩容规则,这些扩容规则分别用于定义对不同的磁盘配置应执行的扩容策略,其中,磁盘配置可以包括磁盘130的数量、规格、其所在槽位与raid卡30的对应关系、磁盘130与磁盘组的对应关系等,但不限于此。
示例性的,该磁盘地图用于记录计算设备集群1中各计算设备中已有磁盘130的当前配置,该当前配置包括已有磁盘130的规格,以及已有磁盘130所在槽位与raid卡30卡和磁盘组之间的对应关系,等等,可以理解的是,已有磁盘130在磁盘组中作为缓存盘或容量盘。
根据已有磁盘130的当前配置遍历扩容规则,从而生成对应该扩容请求的目标扩容策略,目标扩容策略为扩容策略之一,具体可以包括目标磁盘的规格和目标槽位等。这样,不必用户过多参与,就可以根据用户需求自动生成适合的目标扩容策略,指导用户在相应槽位插入指定规格的目标磁盘,实现扩容自动化、智能化,减少人为因素造成的扩容错误。
下面结合附图对本申请一个具体实施例提供的磁盘扩容方法进行详细阐述。
示例性的,如图5示出是本申请一个具体实施例中提供的磁盘扩容方法的流程示意图。
如图5所示,该方法可以包括:
在S710,获取虚拟存储网络中磁盘组的第一信息。
在本实施例中,第一信息包括计算设备集群1的虚拟存储网络vSAN存储层40中磁盘组的数量,以及各个磁盘组中容量盘/缓存盘的序列号、数量和规格信息,规格信息包括型号、接口类型、介质类型((如SSD或HDD)和容量等,但不限于此。
示例性的,该集群1中的服务器管理平台vCenter server22能够对各个服务器(11,12,13,…)的ESXi OS20的管理,将ESXi OS20所感知的磁盘130提供的存储资源聚合为vSAN存储层40,并具有对vSAN存储层40的磁盘组创建、删除、扩容的能力。因此本示例中,集群管理平台Center23可以调用服务器管理平台vCenter server22,通过带内管理获取该第一信息。
S720,通过每个计算设备的基板管理控制器BMC获取计算设备集群中磁盘的第二信息。
在本实施例中,磁盘130的第二信息包括该计算设备集群1中各个磁盘130的序列号、数量以及各个磁盘130的规格(如型号、介质类型等)以及所在槽位与raid卡30的对应关系等等物理配置信息,但不限于此。
示例性的,集群管理平台Center23可以利用各个服务器(11,12,13,…)的BMC150对所在服务器的硬件层监控能力,通过物理通道检测各raid卡30及所接入的硬盘130的状态,从而通过带外管理遍历各个raid卡30的槽位,获取该第二信息。
S730,基于第一信息和第二信息,得到磁盘地图。
在本实施例中,磁盘地图用于记录磁盘130的规格、磁盘130所在槽位与raid卡30之间的对应关系、以及磁盘130与磁盘组之间的对应关系等。
示例性的,集群管理平台Center23可以将第一信息和第二信息进行融合,生成反映服务器(11,12,13,…)上所有磁盘的物理分布情况和形成磁盘组情况的磁盘地图。具体地,基于第一信息和第二信息,得到磁盘地图可以包括:
S731,将磁盘组中缓存盘和容量盘的序列号与计算设备集群1中磁盘的序列号进行匹配,确定容量盘和缓存盘各自所在槽位的槽位号;
S732,根据该槽位号,记录容量盘和缓存盘与raid卡的对应关系,以及这些raid卡上各槽位(在磁盘地图中用槽位号表征)的使用状态,得到磁盘地图,其中,使用状态包括空闲或被使用。
举例说明,以图3A所示的磁盘地图300为例,该磁盘地图300记录了计算设备集群1中的各磁盘组与各服务器(11,12,13,…)中各磁盘130、各raid卡30等的对应关系以及槽位使用状态。例如,在主机号11的主机(即服务器11)上,raid_1卡的0-2号槽位被使用,3-5号槽位空闲,且0-2号槽位分别插入序列号为XX1、XX2以及XX3的磁盘130,这三个磁盘130分别被作为磁盘组A的缓存盘和两个容量盘,还记录了相应的磁盘型号和容量等等内容。
示例性的,该磁盘地图可以是表的数据结构,并存储在数据库供集群管理平台Center23调用,以用于进行磁盘扩容。
可选的,在一些示例中,在得到磁盘地图之后,该磁盘扩容方法还可以包括S733,将磁盘地图转换为物理视图,并输出该物理视图。
在本示例中,磁盘地图还可以被集群管理平台Center23转换为二维或三维的物理视图,该物理视图可以通过插件化的方式注册到浏览器,从而呈现在相应的web界面上,供用户了解,以作为用户进行磁盘扩容操作的参考信息。作为具体示例,根据磁盘地图,可以对应各个主机形成多个物理视图,例如,依据图3A所示磁盘地图300中主机号13的主机所形成的物理视图,其呈现在web界面的效果可以参考图3B所示存储扩容界面UI中的前视图310,根据该前视图310可知,该主机的0-5号槽位分别插入了HHD,均用作容量盘,并用图标311标识;8号槽位插入了一个SSD,用作缓存盘,并用图标312标识。这样,用户就可以大致了解当前该主机的磁盘130和槽位等的物理配置信息,同理,也可以在该存储扩容界面上UI查看其他主机的物理视图,不再赘述。
在本实施例中,在通过上述S730步骤得到磁盘地图之后,该磁盘扩容方法还包括S740,获取用户输入的扩容请求。
在本实施例中,该扩容请求中至少包括扩容类型和扩容数量,扩容类型可以包括扩容缓存盘(也即创建磁盘组)和扩容容量盘(也即对已有磁盘组扩容),扩容数量是指扩容缓存盘/容量盘的数量。
示例性的,用户可以在终端2侧通过浏览器或客户端访问集群管理平台Center23提供的界面UI,发起扩容请求。例如图3B所示的存储出扩容界面UI,用户可以在该界面UI上参照由当前磁盘地图转换得到各个主机的物理视图(主要是前视图310),了解各主机上的磁盘、槽位等的物理配置,从而按照自身需求,通过点击“Add Disk”控件来触发相应的扩容请求。
这样,用户结合物理视图进行扩容操作,实现磁盘扩容可视化,增强易运维和易用性。
S750,响应于扩容请求,基于预设的扩容规则和当前的磁盘地图确定目标扩容策略。
在本实施例中,该目标扩容策略中可以包括目标磁盘的数量和规格以及用于插入目标磁盘的目标槽位(通过槽位号表征,下同),目标磁盘即待插入的磁盘,或者说是待扩容的磁盘。目标磁盘可以为一个或多个,目标磁盘可以是容量盘(下文也称为“目标容量盘”)或缓存盘(下文也称为“目标缓存盘”),目标磁盘的规格可以包括但不限于协议、磁盘型号以及容量等。
示例性的,可以预先创建规则库,该规则库中包括第一规则集和第二规则集,第一规则集包括针对创建磁盘组和扩容缓存盘等场景而定义的一项或多项扩容规则,第二规则集包括针对扩容容量盘的场景而定义的一项或多项扩容规则。规则库中的每项扩容规则中描述了一种或多种扩容条件下应执行的扩容策略。这样,根据磁盘地图,遍历第一规则集或第二规则集中的扩容规则,从而输出相应的目标扩容策略。
示例性的,第一规则集中可以包括以下多项增加缓存盘(也是创建磁盘组)的扩容规则:
11)如果当前磁盘组数量达到磁盘组数量阈值,则进行错误拦截并生成提示信息,作为一个示例,磁盘组数量阈值可以设置为5,但不限于此;
如果当前磁盘组数量未达到磁盘组数量阈值,则可以依次执行以下规则12)-14)的判定:
12)若扩容请求是扩容一个缓存盘(即目标缓存盘),则根据磁盘地图,查找各槽位(以槽位号表征,下同)和raid卡30之间的对应关系,从中确定一个具有大于1+n个空闲槽位的raid卡30(本文也称为“第一目标磁盘阵列卡”),其中,n表示磁盘组设定的容量盘数量,n≥1,从而先在同一个该第一目标磁盘阵列卡下将1+n个空闲槽位作为目标槽位,以插入目标缓存盘和第一容量盘,执行扩容,第一容量盘是在扩容一个缓存盘时需随之扩容的容量盘,第一容量盘的数量为n;
13)如果所有raid卡30下的空闲槽位均不足1+n,则从所有raid卡30中确定第二目标磁盘阵列卡和第三磁盘阵列卡,该第二目标磁盘阵列卡的空闲槽位数量小于1+n,且大于1;第二目标磁盘阵列卡的空闲槽位和第三目标磁盘阵列卡的空闲槽位之和大于或等于第一目标磁盘阵列卡的空闲槽位;相应地,将第二目标磁盘阵列卡的空闲槽位作为第二目标槽位,将第三目标磁盘阵列卡的空闲槽位作为第三目标槽位;
并且,在第二目标槽位插入目标缓存盘和r个第一容量盘,r<n,以及在第三目标槽位为插入n-r个第一容量盘;
14)根据已有磁盘组中缓存盘和容量盘的信息和待执行扩容的空闲槽位(即目标槽位)的信息(如槽位号),确定目标缓存盘和第一容量盘的槽位号、磁盘型号、磁盘类型(容量盘/缓存盘)、协议、容量、数量等参数,由此,得到目标扩容策略。
举例说明。如图6中所示,以扩容请求为扩容一个缓存盘为例,根据磁盘地图从第一规则集进行规则匹配,则有:
参考图6中(6a)所示,若当前有三个磁盘组A、B、C,每个磁盘组中均包括一个缓存盘CAC和两个容量盘CAP,其中,磁盘组A的缓存盘CAC和容量盘CAP分别由raid_1卡上0至2号槽位的磁盘130创建,磁盘组B由raid卡_2上6至8号槽位的磁盘130创建,磁盘组B由raid卡_3上6至8号槽位的磁盘130创建。遍历上述规则11)至14),可以输出扩容策略为:在18号槽位插入指定规格(与磁盘组A、B、C中缓存盘规格相同)的磁盘,作为缓存盘,在同一主机的19至20号槽位插入指定规格(与磁盘组A、B、C中容量盘的规格相同)的磁盘,作为容量盘,得到新磁盘组D。具体地,该扩容策略可以为如下表1的形式:
表1
磁盘槽位号 | 磁盘类型 | 协议 | 磁盘型号 | 磁盘容量 |
18 | 缓存盘 | SAS | DDD1 | 40.0GB |
19 | 容量盘 | SAS | DDD2 | 200.0GB |
20 | 容量盘 | SAS | DDD2 | 200.0GB |
依据表1,结合6图中(6a)所示,18至20号槽位均位于同一个raid卡_4上,磁盘组D创建之后可如图6中(6b)所示。这样,新创建的磁盘组D与其他已有磁盘组A、B、C之间,缓存盘和容量盘的类型、容量、协议、数量等都一致,达到了vSAN的最佳实践要求,利于提升扩容成功率。并且,新的磁盘组D未跨raid卡,故而利于保障磁盘之间一致的读写效率,也利于保障同一磁盘组中缓存盘/容量盘具有一致的CPU连接路径(即同一raid卡30至CPU110),也不会出现由于跨raid卡而在某个raid卡故障时导致磁盘组数据丢失的情况,提高数据存储的可靠性。
在另一个例子中,如图7所示的,以扩容请求为扩容一个缓存盘为例,根据磁盘地图从第一规则集进行规则匹配,则有:
参考图7中(7a)所示,若当前有一个磁盘组A,磁盘组A中包括一个缓存盘CAC和五个容量盘CAP,该磁盘组A的这些盘分别由raid_1卡上0至5号槽位上插入的磁盘130创建,该raid_1卡上还有6号槽位为空槽位,且同一主机上还有一个raid_2卡的7-11号槽位处于空闲状态但raid_2卡槽位数量不足以创建一个新的磁盘组,则遍历上述规则11)至14),可以输出的扩容策略为:在该主机的7号槽位接入指定规格(与磁盘组A缓存盘的规格相同)磁盘作为缓存盘,在8至11号以及6号槽位插入指定规格(与磁盘组A容量盘的规格相同)的磁盘作为容量盘,得到新磁盘组B。该磁盘组B中缓存盘CAC与容量盘CAP对应槽位号的情况可以参考图7中(7b)所示。
示例性的,数据库的第二规则集中可以包括以下多项增加容量盘的扩容规则:
21)如果所有磁盘组中容量盘均已达到磁盘组中容量盘数量阈值,进行错误拦截并提示,一个示例中,容量盘数量阈值可以设置为7,但不限于此;
如果当前有磁盘组的容量盘数量未达到容量盘数量阈值,则依次执行以下规则22)-28):
22)根据当前各磁盘组已有的容量盘数量,计算得到各磁盘组可扩容容量盘的最大数量(磁盘组容量盘数量阈值-该磁盘组已有的容量盘数量),并统计各raid卡30的空闲槽位数量;
23)根据扩容请求中要求扩容的容量盘数量,和22)中计算出的空闲槽位数量,确定空闲槽位数量是否满足该扩容请求,其中,若空闲槽位数量小于扩容请求中的容量盘数量(不满足扩容请求),则进行错误拦截并提示,反之,若空闲槽位数量大于或等于扩容请求中的容量盘数量(满足扩容请求),则继续执行以下规则24);
24)根据扩容请求、空闲槽位数量以及已有磁盘组中容量盘的类型、协议、容量信息等,确定目标容量盘的槽位号、磁盘类型、容量、协议等,并且,该目标容量盘与磁盘组的关系及其槽位号与raid卡之间的关系依据以下规则25)-28)确定:
25)若扩容请求要求扩容一个容量盘,且已有磁盘组之间的容量盘数量不一致,则确定先在容量盘少的磁盘组中扩容一个该目标容量盘;
26)若扩容请求要求扩容一个容量盘,且已有磁盘组容量盘数量一致,则根据记录的磁盘组列表从起始磁盘组开始扩容一个该目标容量盘;
27)若扩容请求要求扩容m(m>1)个容量盘,则对容量盘少的磁盘组扩容m个目标容量盘;若扩容s(0<s<m)个目标容量盘之后,各磁盘组之间的容量盘数量一致,剩余m-s个目标容量盘遵循数量均等原则,根据磁盘组列表依次扩容;例如,要求扩容三个磁盘,当前磁盘组列表中依次记录有磁盘组A、B,其中磁盘组A包括一个缓存盘和两个容量盘,磁盘组B包括一个缓存盘和一个容量盘,则基于该27),对磁盘组B扩容一个目标容量盘,此时磁盘组A、B的容量盘数量一致,则数量均等原则,依次分别在磁盘组A、B中再扩容一个目标容量盘。
28)确定目标容量盘的槽位号时,参照磁盘地图记录的磁盘组、槽位以及raid卡之间的关系,在待扩容的磁盘组(目标磁盘所属的磁盘组)位于同一个raid卡30上时,在此raid卡30的空闲槽位(即目标槽位)上插入目标容量盘,执行扩容,从而使得每个目标容量盘均与自己所属的磁盘组位于同一raid卡30上,达到最佳实践要求。如果某个磁盘组所位于的raid卡30空闲槽位不足,也可以在其他raid卡30上确定目标槽位来插入该磁盘组的目标容量盘。
举例说明。如图8中所示的,以扩容请求为扩容一个容量盘为例,根据磁盘地图从第二规则集进行规则匹配,则有:
如图8中(8a)所示,若当前有三个磁盘组A、B、C,其中磁盘组A和B中均包括一个缓存盘CAC和两个容量盘CAP,且磁盘组A由raid_1卡上0至2号槽位的磁盘130创建,磁盘组B由raid_2卡上6至8号槽位的磁盘130创建,磁盘组C中包括一个缓存盘CAC(由raid_3卡的12号槽位的磁盘创建)和一个容量盘CAP(由raid_3卡的13号槽位的磁盘创建)。则遍历上述扩容规则21)至28),输出的扩充策略可以为:在raid_3卡的14号槽位插入指定规格(与raid_3卡的13号槽位的磁盘规格相同)的磁盘,作为容量盘。扩容之后的磁盘组C可以如图8中(8b)所,这样,扩容之后,磁盘组C的所有磁盘在同一个raid卡下,且规格相同,磁盘组A、B、C之间的缓存盘与容量盘数量和规格也一致,达到vSAN的最佳实践要求。
由此,本实施例通过预置全面的扩容规则,针对用户需求推荐最佳的扩容策略来引导用户进行扩容操作,满足用户的多样化扩容诉求,并减少用户的人工参与,从而能够降低扩容过程中人为因素造成的差错,提升扩容成功率。
此外,本实施例中通过带外和外内管理结合获取全面的磁盘信息并融合,得到关于磁盘的磁盘组及其物理配置(即槽位、raid卡等相关物理信息)的磁盘地图,解决了服务器管理平台vCenter server22无法获取磁盘130物理配置的弊端,从而使得集群管理平台Center23根据磁盘地图记录的磁盘现状遍历规则库,自动化输出最佳的扩容策略,扩容出高可用的vSAN存储层40,实现磁盘扩容智能化。
在本实施例中,集群管理平台Center23生成的最佳扩容策略可以以文字、表格、图形等方式展示在存储层扩容界面UI上,供用户知晓。此外,为了便于用户更加直观的了解该扩容策略的扩容效果,在一些具体示例中,该方法还可以包括:
S760,在通过BMC检测到目标槽位插入目标磁盘的情况下,获取目标磁盘的物理配置信息。
在本实施例中,集群管理平台Center23输出扩容策略之后,可以自动或被用户触发进入扩容核查状态,在该状态下,集群管理平台Center23调用BMC150监测目标槽位的磁盘插入情况。
当BMC150检测到目标槽位插入了目标磁盘之后,读取该目标磁盘的物理配置信息,该物理配置信息可以包括槽位号、磁盘型号、协议、容量以及磁盘的数据残留情况,但不限于此。
S770,根据目标磁盘的物理配置信息,校验目标磁盘与目标扩容策略的一致性;
S780,在校验通过的情况下,对目标磁盘执行扩容操作。
在本实施例中,集群管理平台Center23首先将物理配置信息与扩容策略进行一致性校验,确定目标磁盘所插入槽位的槽位号、目标磁盘的型号和容量、协议等规格信息是否与扩容策略描述的一致。如果不一致,校验失败,进行错误提示,从而防止用户未按照扩容策略插入磁盘而导致不能达到扩容的最佳实践要求、或者导致集群整体存储性能下降,以及插入的磁盘与其他已有磁盘协议不一致导致不兼容等问题。
可选地,如果目标磁盘与目标扩容策略的一致性校验一致,集群管理平台Center23还可以检查目标磁盘中是否存在残留数据,避免目标磁盘存在脏区导致扩容失败。
如果目标磁盘与扩容策略一致且没有脏区,接着,集群管理平台Center23可以调用服务器管理平台vCenter server22对目标磁盘执行扩容操作,即,将该目标磁盘按照扩容策略扩容为新磁盘组的缓存盘或容量盘,或者扩容为相应已有磁盘组的容量盘等,更新vSAN存储层40的磁盘组信息。接着,就可以将扩容之前已有磁盘组中的部分业务(数据)迁移至本次扩容操作所添加的容量盘/缓存盘中,实现磁盘均衡。
可选的,在本实施例中,在通过服务器管理平台vCenter server22后端对目标磁盘执行扩容操作过程中,可以对磁盘扩容的进度进行可视化,例如,在界面上通过进度条反映操作的进度,并且,由于在执行扩容操作前后,磁盘地图也会随之发生变化,相应地,磁盘地图对应的物理视图也发生变化,故而,通过展示执行扩容操作前后所形成的不同物理视图,将扩容效果可视化。
基于上述实施例中磁盘扩容的方法,本申请实施例提供了一种磁盘扩容装置。请参阅图9,图9是本申请实施例提供的一种磁盘扩容装置的结构示意图。
如图9所示,该磁盘扩容装置900可以包括:获取模块901和处理模块902。在本实施例中,获取模块901可以获取用户的扩容请求;其中,扩容请求包括待扩容的目标磁盘的磁盘类型和数量,磁盘类型为缓存盘或容量盘。处理模块902用于响应于扩容请求,基于预设的扩容规则和磁盘地图得到目标扩容策略。其中,预设的扩容规则包括不同的磁盘配置所对应的扩容策略,磁盘地图用于记录计算设备集群中已有磁盘的配置信息,配置信息包括已有磁盘的参数、已有磁盘在磁盘组中的磁盘类型,以及已有磁盘所在槽位与磁盘阵列卡和磁盘组之间的对应关系;目标扩容策略包括目标磁盘的参数和目标槽位。
应当理解的是,上述装置用于执行上述实施例中的方法,装置中相应的程序模块,其实现原理和技术效果与上述方法中的描述类似,该装置的工作过程可参考上述方法中的对应过程,此处不再赘述。
基于上述实施例中的方法,本申请实施例提供了一种计算设备。该计算设备可以包括:存储器,用于存储程序指令;处理器,用于执行存储器存储的程序指令;其中,当存储器存储的程序指令被执行时,处理器用于执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算机程序产品,其特征在于,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例还提供了一种芯片。请参阅图10,图10为本申请实施例提供的一种芯片的结构示意图。如图10所示,芯片1000包括一个或多个处理器1001以及接口电路1002。可选的,芯片1000还可以包含总线1003。其中:
处理器1001可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1001中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1001可以是通用处理器、数字通信器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
接口电路1002可以用于数据、指令或者信息的发送或者接收,处理器1001可以利用接口电路1002接收的数据、指令或者其它信息,进行加工,可以将加工完成信息通过接口电路1002发送出去。
可选的,芯片1000还包括存储器,存储器可以包括只读存储器和随机存取存储器,并向处理器提供操作指令和数据。存储器的一部分还可以包括非易失性随机存取存储器(NVRAM)。
可选的,存储器存储了可执行软件模块或者数据结构,处理器可以通过调用存储器存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。
可选的,接口电路1002可用于输出处理器1001的执行结果。
需要说明的,处理器1001、接口电路1002各自对应的功能既可以通过硬件设计实现,也可以通过软件设计来实现,还可以通过软硬件结合的方式来实现,这里不作限制。
应理解,上述方法实施例的各步骤可以通过处理器中的硬件形式的逻辑电路或者软件形式的指令完成。
可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。此外,在一些可能的实现方式中,上述实施例中的各步骤可以根据实际情况选择性执行,可以部分执行,也可以全部执行,此处不做限定。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
Claims (11)
1.一种磁盘扩容方法,其特征在于,所述方法包括:
获取用户的扩容请求;其中,所述扩容请求包括待扩容的目标磁盘的磁盘类型和数量,所述磁盘类型为缓存盘或容量盘;
响应于所述扩容请求,基于预设的扩容规则和磁盘地图得到目标扩容策略;
其中,所述预设的扩容规则包括不同的磁盘配置所对应的扩容策略,
所述磁盘地图用于记录计算设备集群中已有磁盘的配置信息,所述配置信息包括所述已有磁盘的参数、已有磁盘在磁盘组中的磁盘类型,以及所述已有磁盘所在槽位与磁盘阵列卡和所述磁盘组之间的对应关系;
所述目标扩容策略包括所述目标磁盘的参数和目标槽位。
2.根据权利要求1所述的方法,其特征在于,响应于所述扩容请求,基于预设的扩容规则和磁盘地图得到目标扩容策略之前,所述方法还包括:
从虚拟存储区域网获取第一信息,所述第一信息包括磁盘组的数量,以及每个所述磁盘组中的缓存盘和容量盘的序列号、数量和参数;
从计算设备集群获取中第二信息,所述第二信息包括所述计算设备集群中已有磁盘的数量,每个所述已有磁盘的序列号、参数及其所在槽位与磁盘阵列卡的对应关系;
融合所述第一信息和第二信息,得到所述磁盘地图。
3.根据权利要求2所述的方法,其特征在于,所述融合所述第一信息和第二信息,得到所述磁盘地图,包括:
将所述缓存盘和容量盘的序列号与所述已有磁盘的序列号进行匹配,确定每个所述缓存盘和每个所述容量盘所在的槽位;
根据每个所述缓存盘和每个所述容量盘所在的槽位,确定所述缓存盘和所述容量盘与磁盘阵列卡的对应关系,以及所述磁盘阵列卡上槽位的使用状态,得到所述磁盘地图;其中,所述使用状态包括空闲或被使用。
4.根据权利要求1至3任一项所述的方法,其特征在于,在所述获取用户的扩容请求之前,所述方法包括:
将所述磁盘地图转换为物理视图;
输出所述物理视图;其中,所述物理视图用于供所述用户确定所述扩容请求。
5.根据权利要求3或4所述的方法,其特征在于,所述目标磁盘包括目标缓存盘和第一容量盘,所述第一容量盘为在扩容所述目标缓存盘时同时扩容的容量盘;
所述响应于所述扩容请求,基于预设的扩容规则和磁盘地图确定目标扩容策略,包括:
确定所述磁盘组的数量是否达到磁盘组数量阈值;
在所述磁盘组的数量未达到所述磁盘组数量阈值的情况下,根据所述磁盘地图确定是否存在第一目标磁盘阵列卡;其中,所述第一目标磁盘阵列卡的空闲槽位数量大于或等于1+n,n表示所述磁盘组设定的容量盘数量,n≥1;
在存在第一目标磁盘阵列卡的情况下,将所述第一目标磁盘阵列卡的空闲槽位作为目标槽位;所述目标槽位为插入所述目标缓存盘和所述第一容量盘的槽位,所述第一容量盘的数量为n;
根据已有磁盘组中缓存盘和容量盘的参数确定所述目标缓存盘和第一容量盘的参数;
基于所述目标缓存盘和所述第一容量盘的参数以及所述目标槽位,生成所述目标扩容策略。
6.根据权利要求5所述的方法,其特征在于,所述目标槽位包括第一目标槽位和第二目标槽位;
所述响应于所述扩容请求,基于预设的扩容规则和磁盘地图得到目标扩容策略,还包括:
在不存在所述第一目标磁盘阵列卡的情况下,确定第二目标磁盘阵列卡和第三目标磁盘阵列卡;
其中,所述第二目标磁盘阵列卡的空闲槽位数量小于1+n,且大于1;所述第二目标磁盘阵列卡的空闲槽位和所述第三目标磁盘阵列卡的空闲槽位之和大于或等于所述第一目标磁盘阵列卡的空闲槽位;
将所述第二目标磁盘阵列卡的空闲槽位作为第二目标槽位,及将所述第三目标磁盘阵列卡的空闲槽位作为第三目标槽位;
其中,所述第二目标槽位为插入所述目标缓存盘和r个所述第一容量盘的槽位,r<n;
所述第三目标槽位为插入n-r个所述第一容量盘的槽位;
根据已有磁盘组中缓存盘和容量盘的参数确定所述目标缓存盘和所述第一容量盘的参数;
基于所述目标缓存盘和所述第一容量盘的参数以及所有目标槽位,生成所述目标扩容策略。
7.根据权利要求1-4任一项所述的方法,其特征在于,在所述目标磁盘包括目标容量盘;
所述响应于所述扩容请求,基于预设的扩容规则和磁盘地图确定目标扩容策略,包括:
确定目标磁盘的数量以及已有磁盘组的容量盘的一致性;
在所述目标磁盘为一个,且已有所述磁盘组之间的容量盘数量不一致的情况下,从已有所述磁盘组中确定第一目标磁盘组;其中,所述第一目标磁盘组为容量盘最少的磁盘组;
在所述目标磁盘为一个,且已有所述磁盘组之间容量盘数量一致,确定第二目标磁盘组;所述第二目标磁盘组为磁盘组列表中的起始磁盘组;
基于所述磁盘地图,从所述第一目标磁盘组或所述第二目标磁盘组所位于的磁盘阵列卡的空闲槽位中,确定目标槽位;所述目标槽位为插入所述目标容量盘的槽位;
根据已有所述磁盘组的容量盘的参数,确定所述目标容量盘的参数;
基于所述目标容量盘的参数和所述目标槽位,生成所述目标扩容策略。
8.根据权利要求7所述的方法,其特征在于,所述目标槽位包括第三目标槽位和第四目标槽位;
所述响应于所述扩容请求,基于预设的扩容规则和磁盘地图确定目标扩容策略,还包括:
在所述目标磁盘为m(m>1)个,且已有所述磁盘组之间的容量盘数量不一致的情况下,对所述第一目标磁盘组扩容s(0<s<m)个所述目标容量盘;
确定每个所述磁盘组之间的容量盘数量是否一致;
在所述每个磁盘组之间的容量盘数量一致的情况下,将剩余m-s个所述目标容量盘均等扩容至所有所述磁盘组,其中,0<s<m;
根据所述磁盘地图,将所述第一目标磁盘组所位于的磁盘阵列卡上的s个空闲槽位,确定为所述第三目标槽位,所述第三目标槽位为待插入s个所述目标容量盘的槽位;
从其余磁盘阵列卡中确定m-s个空闲槽位作为所述第四目标槽位;所述第四目标槽位为待插入m-s个所述目标容量盘的槽位;
根据已有所述磁盘组的容量盘的参数,确定所述目标容量盘的参数;
基于所述目标容量盘的参数和所述目标槽位,生成所述目标扩容策略。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
在检测到所述目标槽位插入所述目标磁盘的情况下,获取所述目标磁盘的物理配置信息;
根据所述物理配置信息,校验所述物理配置信息与所述目标扩容策略的一致性;
在校验通过的情况下,对所述目标磁盘执行扩容操作。
10.一种计算设备,其特征在于,包括:存储器和处理器;
所述存储器和处理器耦合;
所述存储器,用于存储程序指令;
处理器,用于调用所述存储器存储的程序指令,以执行如权利要求1-9任一项所述的磁盘扩容方法。
11.一种计算设备集群,其特征在于,所述计算设备集群包括如权利要求10所述的计算设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410236653.3A CN118210441A (zh) | 2024-02-29 | 2024-02-29 | 一种磁盘扩容方法、计算设备及计算设备集群 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410236653.3A CN118210441A (zh) | 2024-02-29 | 2024-02-29 | 一种磁盘扩容方法、计算设备及计算设备集群 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118210441A true CN118210441A (zh) | 2024-06-18 |
Family
ID=91456550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410236653.3A Pending CN118210441A (zh) | 2024-02-29 | 2024-02-29 | 一种磁盘扩容方法、计算设备及计算设备集群 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118210441A (zh) |
-
2024
- 2024-02-29 CN CN202410236653.3A patent/CN118210441A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11204793B2 (en) | Determining an optimal computing environment for running an image | |
US10331491B2 (en) | Virtual data center resource mapping method and device | |
RU2640724C1 (ru) | Способ устранения неисправностей, устройство и система, основанные на виртуализации сетевых функций | |
US10715460B2 (en) | Opportunistic resource migration to optimize resource placement | |
US9864517B2 (en) | Actively responding to data storage traffic | |
US8595364B2 (en) | System and method for automatic storage load balancing in virtual server environments | |
US9582221B2 (en) | Virtualization-aware data locality in distributed data processing | |
US8380757B1 (en) | Techniques for providing a consolidated system configuration view using database change tracking and configuration files | |
US11924117B2 (en) | Automated local scaling of compute instances | |
US10505862B1 (en) | Optimizing for infrastructure diversity constraints in resource placement | |
US10154091B1 (en) | Deploying infrastructure units according to resource hosting constraints | |
US10452502B2 (en) | Handling node failure in multi-node data storage systems | |
US10936354B2 (en) | Rebuilding a virtual infrastructure based on user data | |
US10326826B1 (en) | Migrating an on premises workload to a web services platform | |
US11294591B2 (en) | Apparatus configured to create extended configuration proposal of storage system including multiple notes | |
EP4006725A1 (en) | Virtual machine migration processing and strategy generation method, apparatus and device, and storage medium | |
US20210286647A1 (en) | Embedded persistent queue | |
US10812408B1 (en) | Preventing concentrated selection of resource hosts for placing resources | |
US11336519B1 (en) | Evaluating placement configurations for distributed resource placement | |
US11755438B2 (en) | Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device | |
CN118210441A (zh) | 一种磁盘扩容方法、计算设备及计算设备集群 | |
AU2021266891B2 (en) | Fencing non-responding ports in a network fabric | |
JP6244496B2 (ja) | サーバストレージシステムの管理システム及び管理方法 | |
US11121981B1 (en) | Optimistically granting permission to host computing resources | |
US10789139B2 (en) | Method of rebuilding real world storage environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |