一种创建虚拟磁盘VD的方法和服务器与流程 您所在的位置:网站首页 建立虚拟磁盘的软件 一种创建虚拟磁盘VD的方法和服务器与流程

一种创建虚拟磁盘VD的方法和服务器与流程

2023-04-21 12:58| 来源: 网络整理| 查看: 265

一种创建虚拟磁盘VD的方法和服务器与流程一种创建虚拟磁盘vd的方法和服务器技术领域1.本技术涉及计算机领域,尤其涉及一种创建虚拟磁盘vd的方法和服务器。

背景技术:

2.服务器通常搭载冗余磁盘阵列(redundant arrays of independent disks,raid)卡,raid卡可以管理服务器中的大量硬盘/磁盘。用户可以在服务器中所有硬盘/磁盘的总存储空间中划分一定的存储空间创建虚拟磁盘(virtual drive,vd),形成对外可见的独立的数据存储单元,以满足实际业务的需求。3.在raid卡创建vd时,服务器中所有硬盘/磁盘的总存储空间中已经创建vd的存储空间不可重复创建vd,用户只能从剩余的可用存储空间中划分存储空间以创建vd。当前,对于vd的创建,raid卡可以首先确定可用存储空间的起始地址,然后根据该vd所需的存储空间的容量确定在可用存储空间中的结束地址,以该起始地址到该结束地址之间的存储空间,作为该vd的存储空间。4.上述技术方案中,raid卡只能使用连续的存储空间创建vd。当某个vd下线时,可能出现一部分可用存储空间与其他存储空间形成了多段非连续的存储空间。可能任意一段连续的存储空间不足以创建一个vd,但是剩余的可用存储空间足以创建一个vd的情况,则无法创建vd,造成存储空间的浪费。

技术实现要素:

5.本技术实施例提供了一种创建虚拟磁盘vd的方法和服务器,用于充分利用服务器中的多个存储设备的存储空间。6.本技术第一方面提供了一种创建虚拟磁盘vd的方法,用于服务器,所述服务器包括冗余磁盘阵列raid卡和多个存储设备。7.在本技术中,raid卡接收创建第一vd的第一命令,第一命令包括第一容量。当raid卡确定多个存储设备的可用存储空间的容量大于或等于第一容量时,raid卡可以在可用存储空间对应的逻辑区块中基于第一容量确定至少2段逻辑区块,至少2段逻辑区块对应存储空间的容量为第一容量,并基于至少2段逻辑区块确定对应的第一存储空间,并基于第一存储空间创建第一vd,当存在不连续的至少2段逻辑区块时,可以将至少2段逻辑区块拼接,将可用存储空间充分利用。8.在一些可能的实现方式中,所述方法还包括:若所述多个存储设备的可用存储空间的容量大于或等于所述第一容量,所述raid卡返回关于所述第一vd的创建失败消息,那么用户可以试着创建容量更小的vd。9.在一些可能的实现方式中,所述raid卡在所述可用存储空间对应的逻辑区块中基于所述第一容量确定至少2段逻辑区块,包括:所述raid卡在所述可用存储空间对应的逻辑区块中确定编号最靠前的所述至少2段逻辑区块,所述至少2段逻辑区块对应的存储空间的容量为所述第一容量,使得剩余的可用存储空间尽可能是连续的。10.在一些可能的实现方式中,所述方法还包括:所述raid卡记录所述第一vd和对应的所述至少2段逻辑区块,使得下次用户继续创建vd时,可以避开这至少2段逻辑区块。11.在一些可能的实现方式中,所述方法包括:所述raid卡确定所述可用存储空间对应的逻辑区块中任意一段逻辑区块对应的存储空间的容量均小于所述第一容量。12.本技术第二方面提供了一种服务器,包括raid卡和多个存储设备,所述raid卡用于执行:13.接收创建第一vd的第一命令,所述第一命令包括第一容量;14.确定所述多个存储设备的可用存储空间的容量大于或等于所述第一容量;15.在所述可用存储空间对应的逻辑区块中基于所述第一容量确定至少2段逻辑区块,所述至少2段逻辑区块对应存储空间的容量为所述第一容量;16.基于所述至少2段逻辑区块确定对应的第一存储空间,并基于所述第一存储空间创建所述第一vd。17.在一些可能的实现方式中,所述raid卡,还用于:18.若所述多个存储设备的可用存储空间的容量大于或等于所述第一容量,返回关于所述第一vd的创建失败消息。19.在一些可能的实现方式中,所述raid卡具体用于:20.在所述可用存储空间对应的逻辑区块中确定编号最靠前的所述至少2段逻辑区块,所述至少2段逻辑区块对应的存储空间的容量为所述第一容量。21.在一些可能的实现方式中,所述raid卡,还用于:22.记录所述第一vd和对应的所述至少2段逻辑区块。23.在一些可能的实现方式中,所述raid卡,还用于:24.确定所述可用存储空间对应的逻辑区块中任意一段逻辑区块对应的存储空间的容量均小于所述第一容量。25.本技术第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面或第三方面中任一项所述的方法。26.本技术第四方面提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施上述第一方面或者第一方面的任一种可能的实现方式所提供的方法。27.本技术第五方面提供一种通信装置,该通信装置可以包括至少一个处理器、存储器和通信接口。至少一个处理器与存储器和通信接口耦合。存储器用于存储指令,至少一个处理器用于执行该指令,通信接口用于在至少一个处理器的控制下与其他通信装置进行通信。该指令在被至少一个处理器执行时,使至少一个处理器执行第一方面或第一方面的任意可能的实现方式中的方法。28.本技术第六方面提供了一种芯片系统,该芯片系统包括处理器,用于支持实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。29.在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。30.其中,第二至第六方面或者其中任一种可能实现方式所带来的技术效果可参见第一方面或第一方面不同可能实现方式所带来的技术效果,此处不再赘述。附图说明31.图1为本技术实施例提供的一种服务器的组成结构示意图;32.图2为本技术实施例提供的创建vd的固件的组成结构示意图;33.图3-1为本技术实施例提供的一种创建vd的方法的流程示意图;34.图3-2为本技术实施例提供的一种创建vd的方法的实例流程示意图;35.图4为本技术实施例提供的一种服务器的结构示意图;36.图5为本技术实施例提供的一种通信装置的结构示意图。具体实施方式37.本技术实施例提供了一种创建虚拟磁盘vd的方法和服务器,用于充分利用服务器中的多个存储设备的存储空间。38.下面结合附图,对本技术的实施例进行描述。39.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本技术的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。40.本技术可应用于服务器,其中,服务器可因配置或性能不同而产生比较大的差异,可以包括至少一个中央处理器(central processing units,cpu)(例如,至少一个处理器)和存储器,至少一个存储应用程序或数据的存储介质(例如至少一个海量存储设备)。其中,存储器和存储介质可以是短暂存储或持久存储。存储在存储介质的程序可以包括至少一个模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器可以设置为与存储介质通信,在服务器上执行存储介质中的一系列指令操作。服务器还可以包括至少一个电源,至少一个有线或无线网络接口,至少一个输入输出接口,和/或,至少一个操作系统,例如windows server,mac os x,unix,linux,freebsd,netware等等。在一些可行的实现方式中,服务器100还可以为云服务器,此处不做限定。41.服务器可以是由若干台服务器组成的服务器集群,或者是一个云计算服务中心,本技术实施例对此不做限定。其中,服务器也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求并进行处理,提供可靠的服务,因此一般来说服务器应具备承担服务并且保障服务的能力,该服务器需要具备较强的处理能力、高稳定性、高可靠性、高安全性、可扩展性以及可管理性。在本技术实施例中,所述服务器可以是x86服务器,x86服务器又称复杂指令集(complex instruction set computer,cisc)架构服务器,即通常所讲的个人计算机(personal computer,pc)服务器,它是基于pc机体系结构,使用英特尔(intel)或其它兼容x86指令集的处理器芯片和windows操作系统的服务器。42.请参阅图1,为本技术提供的服务器100的组成结构示意图,该服务器100包括处理模块110、raid卡120、硬盘背板130和多个存储设备140。43.处理模块110是服务器100的控制中心,利用各种接口和线路连接服务器100的各个部分,通过运行或执行存储在存储设备140内的软件程序和/或模块,以及调用存储在存储设备140内的数据,执行服务器100的各种功能和处理数据,从而对服务器100进行整体监控。可选的,处理模块110可包括一个或多个处理单元;优选的,处理模块110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理模块110中。在一些可行的实现方式中,处理模块110可以为中央处理器(central processing unit,cpu),也可以为其他处理器,此处不做限定。44.硬盘背板130由印刷电路板(printed circuit board,pcb)制成,用于通过连接处理模块110、raid卡120和多个存储设备140,再通过布线的方式实现处理模块110、raid卡120和多个存储设备140之间的数据传输。其中,处理模块110和raid卡120可以通过高速串行计算机扩展总线标准(peripheral component interconnect express,pcie)连接并通信。45.存储设备140可以包括只读存储器和随机存取存储器,并向处理模块110提供指令和数据。存储设备140的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,nvram)。存储设备140存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。在一些可行的实现方式中,存储设备140可以为磁盘,也可以为硬盘,此处不做限定。需要说明的是,服务器100可以内置多个存储设备140,例如8个硬盘,此处不做限定。在一些可行的实现方式中,多个存储设备140可以分别为不尽相同类型的硬盘。示例性的,存储设备140可以为串行连接小型计算机系统接口(serial attached scsi,sas)硬盘、串口(serial ata,sata)硬盘或非易失性内存主机控制器接口规范(non-volatile memory express)硬盘。46.服务器100通常搭载raid卡120,raid卡120可以管理服务器100中的存储设备140。用户可以基于raid卡120,从多个存储设备140中划分一定的存储空间创建vd,形成对外可见的独立的数据存储单元,以满足实际业务的需求。需要说明的是,raid卡120与不同类型的存储设备可以通过不同类型的指令。例如sas/sata/nvme类型的指令,此处不做限定。那么,用户可以通过raid卡120从sas硬盘、sata硬盘或nvme硬盘的存储空间中划分存储空间以创建vd。47.在一些可行的实现方式中,服务器100还可以包括显示模块和输入模块(例如键盘、鼠标、触摸屏等,此处不做限定)。48.其中,显示模块可用于显示由用户输入的信息或提供给用户的信息以及服务器100的各种界面。显示模块可包括显示面板,可选的,可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板。进一步的,触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理模块110以确定触摸事件的类型,随后处理模块110根据触摸事件的类型在显示面板上提供相应的视觉输出。49.输入模块可用于接收输入的数字或字符信息,以及产生与服务器100的用户设置以及功能控制有关的键信号输入。具体地,输入模块可包括触控面板以及其他输入设备。触控面板,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理模块110,并能接收处理模块110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板。除了触控面板,输入模块还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。50.在一些可行的实现方式中,处理模块110上可以运行主机(host)软件,用户基于操作host软件控制raid卡120中的固件,实现创建vd的步骤。示例性的,当创建vd时,host软件可以调用raid卡120的固件发起创建vd的步骤,利用raid卡120设置要创建的vd的容量和对应的存储空间。51.在一些可行的实现方式中,可以将多个存储设备140中的总存储空间转化为对应编号的逻辑区块地址(logical block address,lba)。lba用于描述存储设备140上数据所在逻辑区块的通用机制,即存储设备140中的地址所指向的一个逻辑区块,存储设备140的一个逻辑区块的容量可以为512、1024或2048字节(byte)。在一些可行的实现方式中,lba可以从0开始编号,来定位逻辑区块。lba的编号用于映射到所指向的存储空间,二者一一对应。例如,lba=0表示逻辑区块0,lba=1表示逻辑区块1,如此类推。示例性的,若服务器100中有8个硬盘,分别为硬盘1~8,每个硬盘具有100gb的存储空间,8个硬盘一共具有800gb的总存储空间,总存储空间可以对应lba=0~7999。52.在通过raid卡120创建vd时,将划分给vd的存储空间对应的逻辑区块划分给该vd,即将对应的编号划分给该vd。例如,逻辑区块lba=0~1999分为该vd1。已经划分走的逻辑区块不可重复创建vd,用户只能从剩余的可用存储空间对应的逻辑区块中划分逻辑区块以创建vd。当前,对于vd的创建,raid卡120可以首先确定剩余可用的逻辑区块的第一个逻辑区块(编号最小的),然后根据该vd所需的存储空间的容量对应所需的逻辑区块的个数,确定最后一个逻辑区块,以该第一个逻辑区块到该最后一个逻辑去之间的逻辑区块以及存储空间划分给该vd,以创建该vd。53.在一些可行的实现方式中,raid卡120用于创建vd的固件可以包括如图2所示的4个模块,分别为前端处理模块、raid算法模块、配置管理模块和后端处理模块。54.其中,前端处理模块用于接收从host软件发来的创建vd的命令,并将该创建vd的命令转发给配置管理模块。需要说明的是,该创建vd的命令可以包括vd的容量。配置管理模块用于处理vd的创建、下线、重构、硬盘管理等事务。当前端处理模块接收到创建vd的命令时,转发给配置管理模块,配置管理模块向raid算法模块发送相应处理的命令,该相应处理的命令包括vd的容量。raid算法模块用于接收配置管理模块发送的相应处理的命令,并将vd的容量进行处理,从而创建vd。后端处理模块用于接收配置管理模块的命令,基于命令中vd的容量为vd划分逻辑区块和对应的存储空间。55.上述技术方案中,raid卡只能使用连续的存储空间创建vd。当某个vd下线时,可能出现一部分逻辑区块与其他逻辑区块的编号形成了非连续的多段逻辑区块。可能任意一段连续的逻辑区块对应的存储空间不足以创建一个vd,但是剩余的可用存储空间足以创建一个vd的情况下,仍然无法创建vd,造成存储空间的浪费。56.为此,本技术提出了一种创建虚拟磁盘vd的方法和raid卡,用于以充分利用存储空间的方式创建vd。57.在本技术中,raid卡接收创建第一vd的第一命令,第一命令包括第一容量。当raid卡确定多个存储设备的可用存储空间的容量大于或等于第一容量时,raid卡可以在可用存储空间对应的逻辑区块中基于第一容量确定至少2段逻辑区块,至少2段逻辑区块对应存储空间的容量为第一容量,并基于至少2段逻辑区块确定对应的第一存储空间,并基于第一存储空间创建第一vd,当存在不连续的至少2段逻辑区块时,可以将至少2段逻辑区块拼接,将可用存储空间充分利用。58.前述实施例介绍了本技术提供给的服务器100,接下来介绍基于该服务器100执行的创建vd的方法,请参阅图3-1所示,本技术实施例提供的创建vd的方法主要包括如下步骤:59.301、host软件向raid卡发送创建第一vd的第一命令,该第一命令包括第一容量。60.在一些可行的实现方式中,用户可以操作运行在cpu中的host软件,向raid卡发送创建第一vd的第一命令,其中,该第一命令包括第一容量。示例性的,第一vd为vd1,第一容量为200gb。在一些可行的实现方式中,第一命令还可以包括该第一vd的命名,例如第一vd命名为“d盘”,则用户可以看到名为“d盘”的存储分区。61.302、若可用存储空间的容量大于或等于第一容量,则raid卡基于第一容量为第一vd划分第一存储空间。62.在一些可行的实现方式中,当raid卡接收到创建第一vd的第一命令后,可以首先判断服务器中多个存储设备的可用存储空间的容量是否足够创建第一vd,即可用存储空间的容量是否大于或等于第一容量,若是,则raid卡可以基于第一容量为第一vd划分第一存储空间。63.示例性的,若服务器的多个存储设备为8个硬盘,每个硬盘有100gb的容量,即总存储空间为800gb,那么可用存储空间可以为0~800gb。若第一容量为200gb,可用存储空间的容量为500gb,即大于200gb,则raid卡可以从容量为500gb的可用存储空间中划分容量为200gb(第一容量)的第一存储空间,将第一存储空间划分给第一vd。64.在一些可行的实现方式中,raid卡可以基于剩余可用的逻辑区块判断可用存储空间的容量是否大于或等于第一容量。示例性的,若服务器的多个存储设备的总存储空间为800gb,对应逻辑区块lba=0~7999,其中,每1000个逻辑区块对应100gb的存储空间。若第一容量为200gb,即对应2000个逻辑区块。然后,raid卡可以为第一vd划分逻辑区块,以划分的逻辑区块对应的存储空间为第一存储空间。65.若多个存储设备的总存储空间均未被划分,即可用存储空间对应逻辑区块lba=0~7999,即有8000个逻辑区块可以被划分,由于仅需要2000个逻辑区块,8000》=2000,则可知可用存储空间的容量大于或等于第一容量。则raid卡可以从lba=0~7999对应的8000个逻辑区块中划分200gb(第一容量)对应的2000个逻辑区块给第一vd。66.若多个存储设备的总存储空间被划分了一小部分,例如划分了200gb,对应逻辑区块lba=0~1999,即可用存储空间对应逻辑区块lba=2000~7999,即有6000个逻辑区块可以被划分,由于仅需要2000个逻辑区块,6000》=2000,则可知可用存储空间的容量大于或等于第一容量。则raid卡可以从lba=2000~7999对应的6000个逻辑区块中划分200gb(第一容量)对应的2000个逻辑区块给第一vd。67.若多个存储设备的总存储空间被划分了一大部分,例如划分了700gb,对应逻辑区块lba=0~6999,即可用存储空间对应逻辑区块lba=7000~7999,即有1000个逻辑区块可以被划分,由于需要2000个逻辑区块,1000《2000,则可知可用存储空间的容量小于第一容量。由于第一vd需要2000个逻辑区块,剩余的逻辑区块不足以划分给第一vd,则无法创建第一vd。68.在一些可行的实现方式中,若可用的逻辑区块足以创建第一vd,则优先为第一vd划分连续存储空间。例如,逻辑区块lba=0~1999已经被划分,而逻辑区块lba=2000~7999未被划分,则raid卡可以从逻辑区块lba=2000~7999对应的6000个逻辑区块中划分200gb(第一容量)任意连续的2000个逻辑区块给第一vd,例如逻辑区块lba=2000~3999,或者,逻辑区块lba=3000~4999。69.又例如,逻辑区块lba=0~1999和逻辑区块lba=3000~4999已经被划分,而逻辑区块lba=2000~2999和逻辑区块lba=5000~7999未被划分,则raid卡可以从逻辑区块lba=5000~7999中划分200gb(第一容量)的逻辑区块lba=5000~6999。70.在一些可行的实现方式中,若可用的逻辑区块足以创建第一vd,则优先从可用的逻辑区块中,为第一vd划分编号最靠前的连续的逻辑区块。例如,lba=0~1999对应的逻辑区块已经被划分,而lba=2000~7999对应的逻辑区块未被划分,则raid卡可以从lba=2000~7999对应的6000个逻辑区块中划分200gb(第一容量)的lba=2000~3999对应的2000个逻辑区块,而不是lba=3000~4999对应的2000个逻辑区块。71.在一些可行的实现方式中,若可用的逻辑区块足以创建第一vd,但是可用的任意一段逻辑区块对应的存储空间的容量均小于第一容量,那raid卡在可用存储空间对应的逻辑区块中确定编号最靠前的至少2段逻辑区块,至少2段逻辑区块对应的存储空间的容量为第一容量,得到为第一vd划分逻辑区块。示例性的,raid卡在可用存储空间对应的逻辑区块中确定编号最靠前的至少2段逻辑区块,至少2段逻辑区块对应的存储空间的容量为第一容量。72.例如,逻辑区块lba=0~1999和逻辑区块lba=3000~6999已经被划分,而逻辑区块lba=2000~2999和逻辑区块lba=7000~7999未被划分,则raid卡可以将逻辑区块lba=2000~2999和逻辑区块lba=7000~7999拼接,得到对应的200gb(第一容量)的2000个逻辑区块,划分给第一vd。73.下面举例说明。74.在下述例子的初始状态中,服务器尚未创建任何vd,当raid卡接收到host软件发送的创建或下线vd的命令后,可以根据命令执行创建或下线vd的步骤。75.一、创建vd1、vd2和vd3。76.用户通过host软件向raid卡依次下发3个创建vd的命令,分别为命令1、命令2和命令3。其中,命令1用于指示创建vd1,命令1指示的容量1为200gb;命令2用于指示创建vd2,命令2指示的容量2为100gb;命令3用于指示创建vd3,命令3指示的容量3为200gb。77.示例性的,raid卡可以基于命令1中的容量1(200gb),从逻辑区块lba=0~7999中为vd1划分逻辑区块lba=0~1999,则剩余未划分的逻辑区块为lba=2000~7999;接着,raid卡可以基于命令2中的容量2(100gb),从剩余未划分的逻辑区块lba=2000~7999中为vd2划分逻辑区块lba=2000~2999,则剩余未划分的逻辑区块为lba=3000~7999;接着,raid卡可以基于命令3中的容量3(200gb),从剩余未划分的逻辑区块lba=3000~7999中为vd3划分逻辑区块lba=3000~4999,则剩余未划分的逻辑区块为lba=5000~7999。78.到此为止,逻辑区块lba=0~4999都已经划分出去了,剩余未划分的逻辑区块为lba=5000~7999。79.需要说明的是,raid卡每次为一个vd划分了逻辑区块后,都记录各个vd对应的逻辑区块的编号,以及剩余未划分的逻辑区块的编号。需要说明的是,raid卡每次为一个vd划分了逻辑区块时,基于剩余未划分的逻辑区块对应的可用存储空间的容量,确定能否继续创建该vd。即,若可用存储空间的容量大于或等于创建vd的命令中指示的容量,则可以继续创建该vd,否则不能继续创建该vd。80.二、下线vd1。81.用户通过host软件向raid卡下发下线vd1的命令4。示例性的,raid卡可以基于命令4下线vd1,并回收vd1的存储空间,并将划分出去的逻辑区块lba=0~1999收回,则剩余未划分的逻辑区块为lba=0~1999和lba=5000~7999。82.在一些可行的实现方式中,当raid卡下线了vd1后,可以对其他vd的存储空间进行重构。示例性的,raid卡可以将vd2的存储空间重构为逻辑区块lba=0~999对应的存储空间,并将vd3的存储空间重构为逻辑区块lba=1000~2999对应的存储空间,那么剩余未划分的逻辑区块为lba=3000~7999。83.三、创建vd4。84.用户通过host软件向raid卡下发创建vd4的命令4,命令4指示的容量4为300gb。85.在一些可行的实现方式中,若raid卡对vd2或vd3进行了重构,那么剩余未划分的逻辑区块为lba=3000~7999,那么raid卡可以基于命令4中的容量4(300gb),从逻辑区块lba=3000~7999中为vd4划分逻辑区块lba=3000~5999,则剩余未划分的逻辑区块为lba=6000~7999。86.如图3-2中,以未重构的情况进行说明。87.在一些可行的实现方式中,若raid卡未对vd2或vd3进行了重构,由于可用存储空间(500gb)大于容量4,且还有足够的连续的逻辑区块可以划分,可以通过下面3种方式中任意一种为vd4划分逻辑区块。88.划分方式一:示例性的,raid卡可以基于命令4中的容量4(300gb),从剩余未划分的逻辑区块lba=0~1999和lba=5000~7999中为vd4划分连续的lba=5000~7999对应的逻辑区块,则剩余未划分的逻辑区块为lba=0~1999。89.划分方式二:示例性的,raid卡可以基于命令4中的容量4(300gb),从剩余未划分的逻辑区块lba=0~1999和lba=5000~7999中为vd4划分拼接的lba=0~1999和lba=5000~5999对应的逻辑区块,则剩余未划分的逻辑区块为lba=6000~7999。90.划分方式三:示例性的,raid卡可以基于命令4中的容量4(300gb),从剩余未划分的逻辑区块lba=0~1999和lba=5000~7999中为vd4划分拼接的lba=0~1999和lba=7000~7999对应的逻辑区块,则剩余未划分的逻辑区块为lba=5000~6999。91.在一些可行的实现方式中,上述三种划分方式可以任意选择。在一些可行的实现方式中,可以优先使用划分方式一,如果不存在足够容量4的连续的逻辑区块,则使用划分方式二或划分方式三。在一些可行的实现方式中,在划分方式二或划分方式三之间,可以优先使用划分方式二,即优先划分编号靠前的逻辑区块。92.303、raid卡基于第一存储空间创建第一vd。93.在本技术实施例中,当raid卡为第一vd划分的对应的逻辑区块后,基于对应的逻辑区块确定对应的第一存储空间。示例性的,如前述例子,raid卡为vd1划分了逻辑区块lba=0~1999,对应服务器中多个存储设备中硬盘1的200gb,作为vd1的存储空间1,并基于该存储空间1创建vd1;raid卡为vd2划分了逻辑区块lba=2000~2999,对应服务器中多个存储设备中硬盘2的100gb,作为vd2的存储空间2,并基于该存储空间2创建vd2;raid卡为vd3划分了逻辑区块lba=3000~4999,对应服务器中多个存储设备中硬盘2的剩余100gb和硬盘3的100gb,作为vd3的存储空间3,并基于该存储空间3创建vd3;当下线vd1后,硬盘1的200gb都空出来了,raid卡为vd4划分了逻辑区块lba=0~1999和逻辑区块lba=5000~5999,对应服务器中多个存储设备中硬盘1的200gb和硬盘3的剩余100gb,作为vd4的存储空间4,并基于该存储空间4创建vd4。94.在一些可行的实现方式中,服务器可以向用户显示该第一vd的总存储空间、已用存储空间和/或可用存储空间。示例性的,若第一vd为vd1,其总存储空间为200gb,上线一段时间后,已经使用了150gb,vd1的总存储空间、已用存储空间和可用存储空间可以分别为显示为200gb、150gb和50gb。95.304、若可用存储空间的容量小于第一容量,则raid卡返回关于第一vd的创建失败消息。96.当若可用存储空间的容量小于第一容量,无论是上述划分方式一、二、三均无法为第一vd划分足够的逻辑区块,则raid卡向host软件返回关于第一vd的创建失败消息。那么,用户可以基于可用存储空间的容量来重新创建第一vd,例如减少第一vd的第一容量,使得第一容量小于或等于可用存储空间的容量,再向raid卡发送创建第一vd的第一命令。例如,若可用存储空间对应的逻辑区块为lba=7000~7999,对应的容量为100gb,而第一容量为200gb,由于100gb《200gb,则raid卡向host软件返回关于第一vd的创建失败消息。那么,用户可以将第一容量修改为100gb或以下,则若可用存储空间的容量大于或等于第一容量,则raid卡可以执行上述步骤301~303,以创建第一vd。97.在本技术中,raid卡接收创建第一vd的第一命令,第一命令包括第一容量。当raid卡确定多个存储设备的可用存储空间的容量大于或等于第一容量时,raid卡可以在可用存储空间对应的逻辑区块中基于第一容量确定至少2段逻辑区块,至少2段逻辑区块对应存储空间的容量为第一容量,并基于至少2段逻辑区块确定对应的第一存储空间,并基于第一存储空间创建第一vd,当存在不连续的至少2段逻辑区块时,可以将至少2段逻辑区块拼接,将可用存储空间充分利用。98.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。99.为便于更好的实施本技术实施例的上述方案,下面还提供用于实施上述方案的相关装置。100.请参阅图4所示,本技术实施例提供的一种服务器400,可以包括raid卡410和多个存储设备420,所述raid卡410用于执行:101.接收创建第一vd的第一命令,所述第一命令包括第一容量;确定所述多个存储设备420的可用存储空间的容量大于或等于所述第一容量;在所述可用存储空间对应的逻辑区块中基于所述第一容量确定至少2段逻辑区块,所述至少2段逻辑区块对应存储空间的容量为所述第一容量;基于所述至少2段逻辑区块确定对应的第一存储空间,并基于所述第一存储空间创建所述第一vd。102.在一些可能的实现方式中,所述raid卡410,还用于:若所述多个存储设备的可用存储空间的容量大于或等于所述第一容量,返回关于所述第一vd的创建失败消息。103.在一些可能的实现方式中,所述raid卡410具体用于:在所述可用存储空间对应的逻辑区块中确定编号最靠前的所述至少2段逻辑区块,所述至少2段逻辑区块对应的存储空间的容量为所述第一容量。104.在一些可能的实现方式中,所述raid卡410,还用于:记录所述第一vd和对应的所述至少2段逻辑区块。105.在一些可能的实现方式中,所述raid卡410,还用于:确定所述可用存储空间对应的逻辑区块中任意一段逻辑区块对应的存储空间的容量均小于所述第一容量。106.需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其带来的技术效果与本技术方法实施例相同,具体内容可参见本技术前述所示的方法实施例中的叙述,此处不再赘述。107.本技术实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。108.接下来介绍本技术实施例提供的另一种通信装置,请参阅图5所示,通信装置500包括:109.接收器501、发射器502、处理器503和存储器504。在本技术的一些实施例中,接收器501、发射器502、处理器503和存储器504可通过总线或其它方式连接,其中,图5中以通过总线连接为例。110.存储器504可以包括只读存储器和随机存取存储器,并向处理器503提供指令和数据。存储器504的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,nvram)。存储器504存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。111.处理器503控制通信装置500的操作,处理器503还可以称为中央处理单元(central processing unit,cpu)。具体的应用中,通信装置500的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。112.上述本技术实施例揭示的方法可以应用于处理器503中,或者由处理器503实现。处理器503可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器503中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器503可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器504,处理器503读取存储器504中的信息,结合其硬件完成上述方法的步骤。113.接收器501可用于接收输入的数字或字符信息,以及产生与相关设置以及功能控制有关的信号输入,发射器502可包括显示屏等显示设备,发射器502可用于通过外接接口输出数字或字符信息。114.本技术实施例中,处理器503,用于执行前述的创建虚拟磁盘vd的方法。115.在另一种可能的设计中,当服务器400或通信装置500为芯片时,包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使该终端内的芯片执行上述第一方面任意一项的无线报告信息的发送方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述终端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)等。116.其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,asic,或一个或多个用于控制上述方法的程序执行的集成电路。117.另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本技术提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。118.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本技术而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、rom、ram、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。119.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。120.所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有