CN107800730A - 一种虚拟磁盘的扩容方法以及装置 - Google Patents
一种虚拟磁盘的扩容方法以及装置 Download PDFInfo
- Publication number
- CN107800730A CN107800730A CN201610766855.4A CN201610766855A CN107800730A CN 107800730 A CN107800730 A CN 107800730A CN 201610766855 A CN201610766855 A CN 201610766855A CN 107800730 A CN107800730 A CN 107800730A
- Authority
- CN
- China
- Prior art keywords
- subregion
- virtual disk
- dilatation
- file system
- interface
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2145—Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种虚拟磁盘的扩容方法,包括:根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件;将所述虚拟磁盘文件挂载到物理主机上,生成对应的虚拟磁盘;读取所述虚拟磁盘的分区信息;删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区;读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配。所述虚拟磁盘的扩容方法基于物理主机实现,缩短了I/O路径,提高了I/O效率,同时,虚拟磁盘的扩容过程无需启动物理主机上的虚拟机,在虚拟机启动之前进行扩容,降低了技术复杂度和耦合度。
Description
技术领域
本申请涉及虚拟化技术领域,具体涉及一种虚拟磁盘的扩容方法。本申请同时涉及一种虚拟磁盘的扩容装置,以及一种电子设备。
背景技术
在弹性计算云中,云提供方会针对各个操作系统平台提供一系列的系统镜像,在实际应用中,提供的系统镜像被用于创建虚拟磁盘以及虚拟机(Virtual Machine,VM),并最终在虚拟机上加载操作系统(GuestOS)。对云提供方而言,由于虚拟磁盘的容量值范围太大,例如,从100G单位级至10T甚至100T单位级的虚拟磁盘,但云提供方提供的系统镜像个数是有限的,基于这些系统镜像创建的虚拟磁盘的容量值也是有限的,只能提供固定容量值的一个或者多个系统镜像。但实际应用中用户有不同的业务需求,可能会选择不同操作系统或者不同配置的虚拟机,即不同容量值的虚拟磁盘,这就对云提供方提出了更高的要求:当用户选择的虚拟磁盘的容量值比云提供方提供的虚拟磁盘的容量值大时,可对虚拟磁盘进行扩容,以满足用户的需求。
目前,针对虚拟磁盘的扩容,利用访问和修改虚拟机的虚拟磁盘对应的系统镜像的工具库Libguestfs实现。具体的,当用户选择了比基于系统镜像创建的虚拟磁盘的容量更大的容量时,首先基于云提供方提供的固定容量大小的系统镜像来创建虚拟磁盘,虚拟磁盘创建之后启动虚拟机,虚拟机内部会运行基于Libguestfs的服务,用户的扩容请求会以套接字(socket)的方式从物理主机发送到虚拟机上运行的操作系统当中,在操作系统中进行虚拟磁盘的分区和文件系统的扩容,从而实现虚拟磁盘的扩容。
上述现有技术提供的虚拟磁盘的扩容方法存在明显的缺陷。
现有技术提供的虚拟磁盘的扩容方法,存在以下缺陷:
1)可行性较低。虚拟磁盘的扩容是在虚拟机启动之后进行的,但对许多虚拟机上运行的操作系统而言,虚拟机启动之后是无法进行系统磁盘的分区和文件系统的扩容。
2)技术复杂度较高。扩容过程在虚拟机启动后进行,增加了技术复杂度和耦合度,同时,扩容过程在虚拟机上运行的操作系统中进行,操作系统中的各种逻辑会导致I/O路径比较长,从而导致I/O效率较低。
发明内容
本申请提供一种虚拟磁盘的扩容方法,以解决现有技术存在的可行性较低和技术复杂度较高的问题。
本申请同时涉及一种虚拟磁盘的扩容装置,以及一种电子设备
本申请提供一种虚拟磁盘的扩容方法,包括:
根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件;
将所述虚拟磁盘文件挂载到物理主机上,生成对应的虚拟磁盘;
读取所述虚拟磁盘的分区信息;
删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区;
读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配。
可选的,所述根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件步骤执行之前,执行下述步骤:
接收所述扩容请求。
可选的,所述接收所述扩容请求步骤执行之后,执行下述步骤:
根据所述扩容请求从预设的所述系统镜像中选择与所述扩容请求匹配的系统镜像。
可选的,所述扩容请求中包含操作系统类型;
相应的,所述与所述扩容请求匹配的系统镜像包括:操作系统类型与所述扩容请求中包含的操作系统类型一致的系统镜像。
可选的,所述与所述扩容请求匹配的系统镜像包括:
对应的虚拟磁盘的容量值小于所述目标磁盘容量值的系统镜像,或者,对应的虚拟磁盘的容量值与所述目标磁盘容量值的差值在预设阈值范围内的系统镜像。
可选的,所述将所述虚拟磁盘文件挂载到物理主机上,通过调用预设的挂载接口实现;
其中,所述挂载接口由预设的SDK提供,所述SDK封装的虚拟化平台各自实现虚拟磁盘文件挂载的挂载工具通过所述挂载接口来使用;所述虚拟化平台包括:Xen和KVM。
可选的,所述读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配步骤执行之后,执行下述步骤:
调用预设的清理接口清理所述虚拟磁盘;
其中,所述清理接口由所述SDK提供,所述SDK封装的所述虚拟化平台各自清理虚拟磁盘的清理工具通过所述清理接口来使用。
可选的,所述读取所述虚拟磁盘的分区信息,采用如下方式实现:
调用预设的分区获取接口获取所述虚拟磁盘文件中记录的分区信息,作为所述虚拟磁盘的分区信息;
其中,所述分区获取接口由预设的SDK提供,所述SDK封装的分区工具提供的分区信息获取命令通过所述分区获取接口来使用。
可选的,所述分区信息,包括:
分区数目、分区标识、起始扇区位置信息、结束扇区位置信息、标识位、分区类型。
可选的,所述扩容值为所述目标磁盘容量值与所述系统镜像创建的虚拟磁盘的磁盘容量值的差值。
可选的,所述分区容量值根据所述起始扇区位置信息和所述结束扇区位置信息计算获得。
可选的,所述读取所述虚拟磁盘的分区表信息步骤执行之后,且所述删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区步骤执行之前,执行下述步骤:
根据所述分区信息,判断所述虚拟磁盘的分区是否满足扩容条件,若是,执行下一步。
可选的,所述扩容条件包括:
所述待扩容分区的分区容量值大于或者等于所述目标磁盘容量值,和/或,所述虚拟磁盘的分区类型支持扩容。
可选的,所述删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区步骤,包括:
从所述虚拟磁盘的分区中选择所述待扩容分区,并存储所述待扩容分区对应的分区信息;
删除所述待扩容分区;
根据存储的所述分区信息、所述待扩容分区的分区容量值和所述扩容值,创建所述新分区;
根据存储的所述分区信息对所述新分区进行配置。
可选的,所述待扩容分区的分区标识与所述新分区的分区标识、标识位和/或分区类型一致。
可选的,所述待扩容分区的起始扇区位置信息与所述新分区的起始扇区位置信息一致;
并且,所述新分区的结束扇区位置信息由所述待扩容分区的起始扇区位置信息和所述扩容值计算获得。
可选的,所述删除所述待扩容分区,采用如下方式实现:
调用预设的分区删除接口从所述虚拟磁盘文件中删除所述待扩容分区;
其中,所述分区删除接口由所述SDK提供,所述分区工具提供的分区删除命令通过所述分区删除接口来使用。
可选的,所述创建所述新分区,采用如下方式实现:
调用预设的分区创建接口在所述虚拟磁盘文件中创建所述新分区;
其中,所述分区创建接口由所述SDK提供,所述分区工具提供的分区创建命令通过所述分区创建接口来使用。
可选的,所述根据存储的所述分区信息对所述新分区进行配置,采用如下方式实现:
根据存储的所述分区信息,调用预设的分区配置接口在所述虚拟磁盘文件中对所述新分区进行配置;
其中,所述分区配置接口由所述SDK提供,所述分区工具提供的分区配置命令通过所述分区配置接口来使用。
可选的,所述读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配步骤,包括:
从所述系统镜像中读取所述虚拟磁盘的文件系统;
根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容;
其中,所述文件系统扩容接口由所述SDK提供,所述SDK封装的文件系统工具集中的扩容工具通过所述文件系统扩容接口来使用。
可选的,所述从所述系统镜像中读取所述虚拟磁盘的文件系统子步骤执行之后,且所述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤执行之前,执行下述子步骤:
结合所述待扩容分区的分区类型,调用预设的文件系统检查接口检查所述文件系统是否完整有效,若是,执行下一步;
其中,所述文件系统检查接口由所述SDK提供,所述SDK封装的文件系统工具集中的检查工具通过所述文件系统检查接口来使用。
可选的,所述结合所述待扩容分区的分区类型,调用预设的文件系统检查接口检查所述文件系统是否完整有效子步骤,若所述子步骤的判断结果为否,则执行下述子步骤:
调用预设的文件系统修复接口对所述文件系统进行修复;
结合所述待扩容分区的分区类型,调用所述文件系统检查接口检查所述文件系统是否修复成功,若是,执行所述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤;
其中,所述文件系统修复接口由所述SDK提供,所述SDK封装的文件系统工具集中的修复工具通过所述文件系统修复接口来使用。
可选的,所述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤执行之后,执行下述子步骤:
结合所述待扩容分区的分区类型,调用所述文件系统检查接口检查所述文件系统是否完整有效,若否,发出扩容失败的提醒信息。
本申请还提供一种虚拟磁盘的扩容装置,包括:
虚拟磁盘文件创建单元,用于根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件;
虚拟磁盘生成单元,用于将所述虚拟磁盘文件挂载到物理主机上,生成对应的虚拟磁盘;
分区信息读取单元,用于读取所述虚拟磁盘的分区信息;
分区扩容单元,用于删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区;
文件系统扩容单元,用于读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配。
可选的,所述虚拟磁盘的扩容装置,包括:
扩容请求接收单元,用于接收所述扩容请求。
可选的,所述虚拟磁盘的扩容装置,包括:
系统镜像选择单元,用于根据所述扩容请求从预设的所述系统镜像中选择与所述扩容请求匹配的系统镜像。
可选的,所述虚拟磁盘生成单元,通过调用预设的挂载接口实现;
其中,所述挂载接口由预设的SDK提供,所述SDK封装的虚拟化平台各自实现虚拟磁盘文件挂载的挂载工具通过所述挂载接口来使用;所述虚拟化平台包括:Xen和KVM。
可选的,所述虚拟磁盘的扩容装置,包括:
虚拟磁盘清理单元,用于调用预设的清理接口清理所述虚拟磁盘;
其中,所述清理接口由所述SDK提供,所述SDK封装的所述虚拟化平台各自清理虚拟磁盘的清理工具通过所述清理接口来使用。
可选的,所述分区信息读取单元,具体用于调用预设的分区获取接口获取所述虚拟磁盘文件中记录的分区信息,作为所述虚拟磁盘的分区信息;
其中,所述分区获取接口由预设的SDK提供,所述SDK封装的分区工具提供的分区信息获取命令通过所述分区获取接口来使用。
可选的,所述分区信息,包括:
分区数目、分区标识、起始扇区位置信息、结束扇区位置信息、标识位、分区类型。
可选的,所述虚拟磁盘的扩容装置,包括:
扩容判断单元,用于根据所述分区信息,判断所述虚拟磁盘的分区是否满足扩容条件,若是,运行所述分区扩容单元。
可选的,所述分区扩容单元,包括:
待扩容分区选择子单元,用于从所述虚拟磁盘的分区中选择所述待扩容分区,并存储所述待扩容分区对应的分区信息;
待扩容分区删除子单元,用于删除所述待扩容分区;
新分区创建子单元,用于根据存储的所述分区信息、所述待扩容分区的分区容量值和所述扩容值,创建所述新分区;
新分区配置子单元,用于根据存储的所述分区信息对所述新分区进行配置。
可选的,所述文件系统扩容单元,包括:
文件系统读取子单元,用于从所述系统镜像中读取所述虚拟磁盘的文件系统;
文件系统扩容子单元,用于根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容;
其中,所述文件系统扩容接口由所述SDK提供,所述SDK封装的文件系统工具集中的扩容工具通过所述文件系统扩容接口来使用。
可选的,所述文件系统扩容单元,还包括:
文件系统检查子单元,用于结合所述待扩容分区的分区类型,调用预设的文件系统检查接口检查所述文件系统是否完整有效,若是,运行所述文件系统扩容子单元;
其中,所述文件系统检查接口由所述SDK提供,所述SDK封装的文件系统工具集中的检查工具通过所述文件系统检查接口来使用。
本申请还提供一种电子设备,包括:
处理器和存储器;
其中,所述处理器,用于根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件;将所述虚拟磁盘文件挂载到物理主机上,生成对应的虚拟磁盘;读取所述虚拟磁盘的分区信息;删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区;读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配;
所述存储器,用于存储所述虚拟磁盘文件、所述虚拟磁盘的分区信息,以及所述虚拟磁盘的文件系统。
与现有技术相比,本申请具有以下优点:
本申请提供的虚拟磁盘的扩容方法,包括:根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件;将所述虚拟磁盘文件挂载到物理主机上,生成对应的虚拟磁盘;读取所述虚拟磁盘的分区信息;删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区;读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配。
本申请提供的所述虚拟磁盘的扩容方法,接收到扩容请求之后,根据扩容请求中包含的目标磁盘容量值和预设的系统镜像来创建虚拟磁盘文件,将所述虚拟磁盘文件挂载到物理主机上,生成所述虚拟磁盘文件对应的虚拟磁盘,读取虚拟磁盘的分区信息,并根据与读取的所述分区信息,删除所述虚拟磁盘的待扩容分区以及创建所述新分区,最后读取所述虚拟磁盘的文件系统并进行扩容,使其与新创建的所述新分区适配。所述虚拟磁盘的扩容方法,针对虚拟磁盘的扩容直接基于物理主机实现,缩短了I/O路径,减少了I/O路径的消耗,提高了I/O效率;此外,所述虚拟磁盘的扩容方法,虚拟磁盘的扩容过程无需启动物理主机上的虚拟机,在虚拟机启动之前针对虚拟磁盘进行扩容,降低了扩容过程的技术复杂度和耦合度,实现较为简单。
附图说明
附图1是本申请实施例提供的一种虚拟磁盘的扩容方法处理流程图;
附图2是本申请实施例提供的一种软件化存储系统的示意图;
附图3是本申请实施例提供的一种虚拟磁盘的扩容装置的示意图;
附图4是本申请实施例提供的一种电子设备的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种虚拟磁盘的扩容方法,本申请还提供一种虚拟磁盘的扩容装置,以及一种电子设备。以下分别结合本申请提供的实施例的附图逐一进行详细说明,并且对方法的各个步骤进行说明。
本申请提供的一种虚拟磁盘的扩容方法实施例如下:
参照附图1,其示出了本实施例提供的一种虚拟磁盘的扩容方法处理流程图,参照附图2,其示出了本实施例提供的一种虚拟磁盘扩容系统的示意图。此外,所述虚拟磁盘的扩容方法实施例的各个步骤之间的关系,请根据附图1确定。
步骤S101,接收扩容请求。
本申请提供的所述虚拟磁盘的扩容方法,在物理主机上实现,扩容过程不需要启动物理主机上的虚拟机,在虚拟机启动之前针对虚拟磁盘进行扩容,与现有技术相比,不需要启动物理主机上的虚拟机,降低了扩容过程的复杂度和耦合度,实现简单方便;同时,与现有技术在虚拟机启动后基于虚拟机上安装的操作系统当中进行扩容相比,避免了I/O请求在操作系统中执行,缩短了I/O路径,减少了I/O路径的消耗,提高了I/O效率。
在实际应用中,由于用户实际业务需求的多变性,相应的,用户对虚拟磁盘的需求也是灵活多变的,因此,一旦用户选择的虚拟磁盘的容量值比预设的虚拟磁盘的默认容量值大,就会触发所述扩容请求。例如,虚拟磁盘的默认容量值为500G,用户实际选择的虚拟磁盘的容量值为2T,则触发扩容请求,针对默认的虚拟磁盘进行扩容。所述扩容请求中包含有目标磁盘容量值,所述目标磁盘容量值是指用户实际选择的虚拟磁盘的容量值,例如,用户实际选择的目标磁盘容量值为2T。
步骤S102,根据所述扩容请求从预设的所述系统镜像中选择与所述扩容请求匹配的系统镜像。
上述步骤S101接收所述扩容请求后本步骤,根据所述扩容请求从预设的所述系统镜像中选择与所述扩容请求匹配的系统镜像。如果所述扩容请求中包含操作系统类型,相应的,与所述扩容请求匹配的系统镜像为:操作系统类型与所述扩容请求中包含的操作系统类型一致的系统镜像。例如,扩容请求中包含的操作系统类型为Linux;系统镜像1对应的操作系统类型为Linux,系统镜像2对应的操作系统类型为Windows,则系统镜像1与扩容请求相匹配。
除此之外,与所述扩容请求匹配的系统镜像还可以满足:对应的虚拟磁盘的容量值小于所述目标磁盘容量值的系统镜像。例如,扩容请求中包含的目标磁盘容量值为2T;系统镜像3对应的虚拟磁盘的容量值为1T,系统镜像4对应的虚拟磁盘的容量值为5T,则系统镜像3与扩容请求相匹配。
或者,与所述扩容请求匹配的系统镜像还可以满足:对应的虚拟磁盘的磁盘容量值与所述目标磁盘容量值的差值在预设阈值范围内的系统镜像。例如,扩容请求中包含的目标磁盘容量值为2T;系统镜像5对应的虚拟磁盘的容量值为500GT,系统镜像6对应的虚拟磁盘的容量值为1T,则系统镜像6与扩容请求相匹配。
步骤S103,根据所述扩容请求匹配的系统镜像和所述扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件。
具体实现时,所述虚拟磁盘是基于系统镜像创建的,云提供方会针对各个操作系统平台提供一系列的系统镜像,即所述系统镜像。例如,针对Linux系统提供的系统镜像对应的虚拟磁盘的容量值为500G,针对Windows系统提供的系统镜像对应的虚拟磁盘的容量值也为1T。
所述虚拟磁盘文件,在逻辑上表示一个虚拟磁盘,但由于虚拟机尚未启动,因此无法以虚拟磁盘的形式展示,以文件的形式进行存储。
本步骤中,根据接收到所述扩容请求中包含的所述目标磁盘容量值,以及所述系统镜像,创建对应的虚拟磁盘文件,即:逻辑上表示所述系统镜像创建的虚拟磁盘的所述虚拟磁盘文件。
如附图2所示的虚拟磁盘扩容系统,本申请所述虚拟磁盘的扩容方法基于所述虚拟磁盘扩容系统实现。所述虚拟磁盘扩容系统包括物理主机部分和虚拟系统部分,所述物理主机部分表示逻辑上属于物理主机的装置,包括所述虚拟磁盘文件管理装置、虚拟磁盘管理装置、分区管理装置、文件系统管理装置、SDK(Software Development Kit,应用程序开发工具包)和I/O处理装置;所述虚拟系统部分表示逻辑上属于虚拟系统的装置,即虚拟机实际运行的部分。
其中,所述虚拟磁盘文件管理装置,用于接收以及处理用户发送的虚拟磁盘文件创建请求、删除请求和扩容请求,在实际应用中被用作所述虚拟磁盘文件的生命周期管理的入口。当所述虚拟磁盘文件管理装置接收到所述扩容请求之后,根据所述扩容请求中包含的所述目标磁盘容量值和所述系统镜像,创建对应的虚拟磁盘文件。本步骤根据所述目标磁盘容量值以及所述系统镜像创建所述虚拟磁盘文件,正是基于所述虚拟磁盘文件管理装置实现的。
所述虚拟磁盘管理装置负责管理虚拟磁盘的创建和清理,在所述虚拟磁盘管理装置中创建所述虚拟磁盘文件对应的虚拟磁盘之后,基于所述SDK提供的封装接口,并结合所述分区管理装置、所述文件系统管理装置创建的虚拟磁盘进行扩容。
所述分区管理装置用于对虚拟磁盘的所有分区进行查看、添加、删除和属性配置等管理操作。
所述文件系统管理装置用于对虚拟磁盘的文件系统进行检查、修复、扩容、元数据查看等管理。
所述SDK封装了虚拟磁盘扩容过程中涉及的一系列虚拟磁盘、分区管理以及文件系统管理等接口,并且将各类虚拟化平台、分区类型和文件系统等逻辑隐藏在一系列函数接口内部,函数接口的内部实现是通过各类二进制工具传入各类函数接口对应的参数,然后返回相应函数接口的调用结果。具体的,所述SDK封装的各类接口在下文中结合具体的使用分别进行详细说明。
所述I/O处理装置负责处理所有I/O请求,确保所有I/O请求正确完成,例如,整个扩容过程中产生的I/O请求,都会发送给I/O处理装置来处理。
步骤S104,将所述虚拟磁盘文件挂载到物理主机上,生成对应的虚拟磁盘。
如上所述,上述步骤S103创建的所述虚拟磁盘文件在逻辑上表示一个虚拟磁盘,本步骤基于虚拟化平台对所述虚拟磁盘文件进行虚拟化处理,所述虚拟磁盘文件经虚拟化处理后就变成一个虚拟磁盘。
在具体实施时,本步骤在所述虚拟磁盘管理装置中进行,如附图2所示的虚拟磁盘扩容系统中的虚拟磁盘管理装置,通过调用预设的挂载接口,将所述虚拟磁盘文件挂载到所述物理主机上,所述物理主机自身的机制会对所述虚拟磁盘文件进行解析,读取所述虚拟磁盘文件中记录的虚拟磁盘信息,根据读取的虚拟磁盘信息生成对应的虚拟磁盘,即所述虚拟磁盘文件在逻辑上表示的虚拟磁盘。其中,所述挂载接口是由所述SDK提供的,所述SDK封装的虚拟化平台各自实现虚拟磁盘文件挂载的挂载工具通过所述挂载接口来使用;所述虚拟化平台包括:Xen和KVM。
例如,SDK中封装了虚拟化平台Xen的虚拟化组件xend组件的attach工具,以及虚拟化平台KVM的虚拟化组件qemu组件的nbd attach工具,并提供block_attach()和block_detach()函数接口;具体实现时通过调用block_attach()接口将虚拟磁盘文件挂载到Host上,相应虚拟化平台对应的虚拟化组件会创建一个虚拟化块设备。
除此之外,还可以在所述SDK中封装上述两种虚拟化平台之外的其他虚拟化平台的虚拟化组件,从而能够在多种虚拟化平台根据所述虚拟磁盘文件创建对应的虚拟磁盘。基于此,所述SDK能够兼容不同的虚拟化平台,兼容性更强。
如上所述,在所述虚拟磁盘管理装置中的创建虚拟磁盘,供所述分区管理装置和所述文件系统管理装置使用,因此,通过所述I/O处理装置传输的I/O活动,被隐藏在所述虚拟磁盘和所述虚拟磁盘文件之间,所述分区管理装置和所述文件系统管理装置不再需要与所述I/O处理装置进行联系,降低复杂度。
步骤S105,读取所述虚拟磁盘的分区信息。
本步骤中,基于上述步骤S104创建的所述虚拟磁盘,即所述虚拟磁盘文件在逻辑上表示的虚拟磁盘,读取所述虚拟磁盘的分区信息。
在具体实施时,本步骤在所述分区管理装置中进行,如附图2所示的虚拟磁盘扩容系统中的分区管理装置,通过调用预设的分区获取接口获取所述虚拟磁盘文件中记录的分区信息,作为所述虚拟磁盘的分区信息。所述分区获取接口由所述SDK提供,所述SDK对分区工具提供的分区信息获取命令进行了封装,通过所述SDK提供的分区获取接口来使用。例如,通过part_get()接口从虚拟磁盘文件中读取其中记录的分区信息,作为虚拟磁盘的分区信息。
除此之外,所述SDK还对分区工具提供的其他命令进行了封装,例如,分区工具提供的添加、删除和属性配置等命令。基于此,所述SDK提供了part_add()、part_del()、part_set()等函数接口,用于对虚拟磁盘的分区进行添加、删除和属性配置等操作。
本申请实施例所述分区信息,包括分区数目、分区标识、起始扇区位置信息、结束扇区位置信息、标识位、分区类型。例如,虚拟磁盘只有一个分区:分区数目为1,分区标识为P1;起始扇区位置信息是指扇区号SectorS对应的扇区,结束扇区位置信息是指扇区号SectorE对应的扇区,标识位为Flag1,分区类型为Type1。
在具体实施时,在本步骤执行之后,读取到所述虚拟磁盘的分区信息之后,还可以根据读取到的所述分区信息,执行下述扩容检查操作,来检查所述虚拟磁盘的分区是否可以被扩容,所述扩容检查操作具体实现如下:
根据所述分区信息,判断所述虚拟磁盘的分区是否满足扩容条件;
若是,执行下述步骤S106,删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区;
若否,则发出扩容出错的提醒信息。
本实施例中,所述扩容条件是指所述待扩容分区的分区容量值大于或者等于所述目标磁盘容量值,且所述虚拟磁盘的分区类型支持扩容。除此之外,所述扩容条件还可以根据实际应用设置,并不限于上述扩容条件;例如,所述扩容条件还可以所述待扩容分区的分区容量值大于或者等于所述目标磁盘容量值,或者所述虚拟磁盘的分区类型支持扩容。
步骤S106,删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区。
本实施例对所述虚拟磁盘进行扩容时,选择所述虚拟磁盘的某一个分区进行扩容,使扩容后的所述虚拟磁盘的容量值与所述目标磁盘容量值相等。类似的,还可以对虚拟磁盘的两个或者两个以上的分区进行扩容,使扩容后的所述虚拟磁盘的容量值与所述目标磁盘容量值相等。例如,目标磁盘容量值为2T,虚拟磁盘有五个分区,每个分区的分区容量值均为100G,则将各个分区分别从100G扩展到400G,使扩容后的虚拟磁盘的容量值达到2T。
本申请实施例所述扩容值,是指所述目标磁盘容量值与所述系统镜像创建的虚拟磁盘的磁盘容量值的差值。例如,目标磁盘容量值为2T,虚拟磁盘的容量值为500G,扩容值为2T-500G=1.5T。
所述分区容量值根据所述起始扇区位置信息和所述结束扇区位置信息计算获得。例如,上述分区P1,起始扇区位置信息为扇区号SectorS对应的扇区,结束扇区位置信息为扇区号SectorE对应的扇区,则分区容量值是指从扇区号SectorS至扇区号SectorE的所有扇区的总容量值。
本实施例以所述虚拟磁盘中一个分区扩容的实现方式为例,对扩容过程进行详细说明。除此之外,针对所述虚拟磁盘中两个或者两个以上分区扩容的实现方式,与针对所述虚拟磁盘中一个分区扩容的实现方式类似,在此不再赘述。
本实施例所述扩容操作具体实现如下:
1)从所述虚拟磁盘的分区中选择所述待扩容分区,并存储所述待扩容分区对应的分区信息;
例如,选择上述分区P1作为待扩容分区,记录待扩容分区P1的分区标识P1、扇区号SectorS、扇区号SectorE、标识位Flag1和分区类型Type1。
2)删除所述待扩容分区;
在具体实施时,通过调用预设的分区删除接口从所述虚拟磁盘文件中删除所述待扩容分区;其中,所述分区删除接口由所述SDK提供,所述分区工具提供的分区删除命令通过所述分区删除接口来使用。例如,调用part_del()接口删除分区P1。
3)根据存储的所述分区信息、所述待扩容分区的分区容量值和所述扩容值,创建所述新分区;
在创建所述新分区时,所述新分区的分区标识和分区类型与所述待扩容分区的相应分区信息保持一致,确保扩容前后分区的一致性,同时也确保扩容前后虚拟磁盘的一致性。
此外,在创建所述新分区时,所述新分区的起始扇区位置信息与所述待扩容分区的起始扇区位置信息保持一致,并且,所述新分区的结束扇区位置信息根据所述待扩容分区的起始扇区位置信息和所述扩容值计算获得。
例如,新分区的分区标识为P1;起始扇区位置信息为:扇区号SectorS对应的扇区;结束扇区位置信息为:扇区号SectorE对应的扇区+1.5T=扇区号SectorF对应的扇区;分区类型为Type1。
在具体实施时,通过调用预设的分区创建接口在所述虚拟磁盘文件中创建所述新分区;其中,所述分区创建接口由所述SDK提供,所述分区工具提供的分区创建命令通过所述分区创建接口来使用。例如,调用part_add()接口创建新分区P1。
4)根据存储的所述分区信息对所述新分区进行配置。
在具体实施时,通过调用预设的分区配置接口在所述虚拟磁盘文件中对所述新分区进行配置;其中,所述分区配置接口由所述SDK提供,所述分区工具提供的分区配置命令通过所述分区配置接口来使用。例如,调用part_set()接口将新新分区P1的标识位配置为Flag1。
在实际应用中,可以采用多种具体的实现方式来实现所述扩容操作。实现所述扩容操作的各种形式的变化,都只是具体实现方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
步骤S107,读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配。
上述步骤S106通过删除所述待扩容分区并创建所述新分区,实现对所述虚拟磁盘的扩容,但是,新创建的所述新分区并未与所述虚拟磁盘原有的文件系统建立映射;本步骤读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配,具体实现如下:
1)从所述系统镜像中读取所述虚拟磁盘的文件系统;
2)根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容;
所述文件系统扩容接口由所述SDK提供,所述SDK封装的文件系统工具集中的扩容工具通过所述文件系统扩容接口来使用。例如,调用fs_extend()接口对虚拟磁盘的文件系统进行扩容。
在具体实施时,上述从所述系统镜像中读取所述虚拟磁盘的文件系统子步骤执行之后,且上述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤执行之前,还可以执行下述文件系统检查操作,所述文件系统检查操作具体实现如下:
结合所述待扩容分区的分区类型,调用预设的文件系统检查接口检查所述文件系统是否完整有效;
若是,执行上述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤;
若否,则调用预设的文件系统修复接口对所述文件系统进行修复;
结合所述待扩容分区的分区类型,调用所述文件系统检查接口检查所述文件系统是否修复成功,若是,执行所述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤;
其中,所述文件系统检查接口由所述SDK提供,所述SDK封装的文件系统工具集中的检查工具通过所述文件系统检查接口来使用。例如,调用fs_check()接口检查虚拟磁盘的文件系统。
所述文件系统修复接口由所述SDK提供,所述SDK封装的文件系统工具集中的修复工具通过所述文件系统修复接口来使用。例如,调用fs_fix()接口修复虚拟磁盘的文件系统。
此外,在上述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤执行之后,还可以执行下述文件系统二次检查操作,所述文件系统二次检查操作具体实现如下:
结合所述待扩容分区的分区类型,调用所述文件系统检查接口检查所述文件系统是否完整有效;
若是,则表明所述虚拟磁盘的文件系统扩容成功,不作处理即可;
若否,发出扩容失败的提醒信息。
在具体实施时,在本步骤执行之后,所述虚拟磁盘的文件系统完成扩容之后,还可以针对上述步骤S104创建的所述虚拟磁盘执行下述虚拟磁盘清理操作,来清理所述虚拟磁盘,从而起到节省系统资源以及提升系统性能的作用。所述虚拟磁盘清理操作具体实现如下:
调用预设的清理接口清理所述虚拟磁盘;
其中,所述清理接口由所述SDK提供,所述SDK封装的所述虚拟化平台各自清理虚拟磁盘的清理工具通过所述清理接口来使用。例如,调用block_detach()接口清理虚拟磁盘。
综上所述,本申请提供的所述虚拟磁盘的扩容方法,接收到扩容请求之后,根据扩容请求中包含的目标磁盘容量值和预设的系统镜像来创建虚拟磁盘文件,将所述虚拟磁盘文件挂载到物理主机上,生成所述虚拟磁盘文件对应的虚拟磁盘,读取虚拟磁盘的分区信息,并根据与读取的所述分区信息,删除所述虚拟磁盘的待扩容分区以及创建所述新分区,最后读取所述虚拟磁盘的文件系统并进行扩容,使其与新创建的所述新分区适配。所述虚拟磁盘的扩容方法,针对虚拟磁盘的扩容直接基于物理主机实现,缩短了I/O路径,减少了I/O路径的消耗,提高了I/O效率;此外,所述虚拟磁盘的扩容方法,虚拟磁盘的扩容过程无需启动物理主机上的虚拟机,在虚拟机启动之前针对虚拟磁盘进行扩容,降低了扩容过程的技术复杂度和耦合度,实现较为简单。
本申请提供的一种虚拟磁盘的扩容装置实施例如下:
在上述的实施例中,提供了一种虚拟磁盘的扩容方法,与之相对应的,本申请还提供了一种虚拟磁盘的扩容装置,下面结合附图进行说明。
参照附图3,其示出了本申请提供的一种虚拟磁盘的扩容装置实施例的示意图。
由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供一种虚拟磁盘的扩容装置,包括:
虚拟磁盘文件创建单元301,用于根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件;
虚拟磁盘生成单元302,用于将所述虚拟磁盘文件挂载到物理主机上,生成对应的虚拟磁盘;
分区信息读取单元303,用于读取所述虚拟磁盘的分区信息;
分区扩容单元304,用于删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区;
文件系统扩容单元305,用于读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配。
可选的,所述虚拟磁盘的扩容装置,包括:
扩容请求接收单元,用于接收所述扩容请求。
可选的,所述虚拟磁盘的扩容装置,包括:
扩容请求接收单元,用于接收所述扩容请求。
可选的,所述扩容请求中包含操作系统类型;
相应的,所述与所述扩容请求匹配的系统镜像包括:操作系统类型与所述扩容请求中包含的操作系统类型一致的系统镜像。
可选的,所述与所述扩容请求匹配的系统镜像包括:
对应的虚拟磁盘的容量值小于所述目标磁盘容量值的系统镜像,或者,对应的虚拟磁盘的容量值与所述目标磁盘容量值的差值在预设阈值范围内的系统镜像。
可选的,所述虚拟磁盘生成单元302,通过调用预设的挂载接口实现;
其中,所述挂载接口由预设的SDK提供,所述SDK封装的虚拟化平台各自实现虚拟磁盘文件挂载的挂载工具通过所述挂载接口来使用;所述虚拟化平台包括:Xen和KVM。
可选的,所述虚拟磁盘的扩容装置,包括:
虚拟磁盘清理单元,用于调用预设的清理接口清理所述虚拟磁盘;
其中,所述清理接口由所述SDK提供,所述SDK封装的所述虚拟化平台各自清理虚拟磁盘的清理工具通过所述清理接口来使用。
可选的,所述分区信息读取单元303,具体用于调用预设的分区获取接口获取所述虚拟磁盘文件中记录的分区信息,作为所述虚拟磁盘的分区信息;
其中,所述分区获取接口由预设的SDK提供,所述SDK封装的分区工具提供的分区信息获取命令通过所述分区获取接口来使用。
可选的,所述分区信息,包括:
分区数目、分区标识、起始扇区位置信息、结束扇区位置信息、标识位、分区类型。
可选的,所述扩容值为所述目标磁盘容量值与所述系统镜像创建的虚拟磁盘的磁盘容量值的差值。
可选的,所述分区容量值根据所述起始扇区位置信息和所述结束扇区位置信息计算获得。
可选的,所述虚拟磁盘的扩容装置,包括:
扩容判断单元,用于根据所述分区信息,判断所述虚拟磁盘的分区是否满足扩容条件,若是,运行所述分区扩容单元304。
可选的,所述扩容条件包括:
所述待扩容分区的分区容量值大于或者等于所述目标磁盘容量值,和/或,所述虚拟磁盘的分区类型支持扩容。
可选的,所述分区扩容单元304,包括:
待扩容分区选择子单元,用于从所述虚拟磁盘的分区中选择所述待扩容分区,并存储所述待扩容分区对应的分区信息;
待扩容分区删除子单元,用于删除所述待扩容分区;
新分区创建子单元,用于根据存储的所述分区信息、所述待扩容分区的分区容量值和所述扩容值,创建所述新分区;
新分区配置子单元,用于根据存储的所述分区信息对所述新分区进行配置。
可选的,所述待扩容分区的分区标识与所述新分区的分区标识、标识位和/或分区类型一致。
可选的,所述待扩容分区的起始扇区位置信息与所述新分区的起始扇区位置信息一致;
并且,所述新分区的结束扇区位置信息由所述待扩容分区的起始扇区位置信息和所述扩容值计算获得。
可选的,所述待扩容分区删除子单元,具体用于调用预设的分区删除接口从所述虚拟磁盘文件中删除所述待扩容分区;
其中,所述分区删除接口由所述SDK提供,所述分区工具提供的分区删除命令通过所述分区删除接口来使用。
可选的,所述新分区创建子单元,具体用于调用预设的分区创建接口在所述虚拟磁盘文件中创建所述新分区;
其中,所述分区创建接口由所述SDK提供,所述分区工具提供的分区创建命令通过所述分区创建接口来使用。
可选的,所述新分区配置子单元,具体用于根据存储的所述分区信息,调用预设的分区配置接口在所述虚拟磁盘文件中对所述新分区进行配置;
其中,所述分区配置接口由所述SDK提供,所述分区工具提供的分区配置命令通过所述分区配置接口来使用。
可选的,所述文件系统扩容单元305,包括:
文件系统读取子单元,用于从所述系统镜像中读取所述虚拟磁盘的文件系统;
文件系统扩容子单元,用于根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容;
可选的,所述文件系统扩容单元305,还包括:
文件系统检查子单元,用于结合所述待扩容分区的分区类型,调用预设的文件系统检查接口检查所述文件系统是否完整有效,若是,运行所述文件系统扩容子单元;
其中,所述文件系统检查接口由所述SDK提供,所述SDK封装的文件系统工具集中的检查工具通过所述文件系统检查接口来使用。
可选的,若所述文件系统检查子单元输入的判断结果为否,则运行文件系统修复子单元和修复检查子单元;
所述文件系统修复子单元,用于调用预设的文件系统修复接口对所述文件系统进行修复;
所述修复检查子单元,用于结合所述待扩容分区的分区类型,调用所述文件系统检查接口检查所述文件系统是否修复成功,若是,运行所述文件系统扩容子单元;
其中,所述文件系统修复接口由所述SDK提供,所述SDK封装的文件系统工具集中的修复工具通过所述文件系统修复接口来使用。
可选的,所述文件系统扩容单元305,还包括:
二次检查子单元,用于结合所述待扩容分区的分区类型,调用所述文件系统检查接口检查所述文件系统是否完整有效,若否,发出扩容失败的提醒信息。
本申请提供的一种电子设备实施例如下:
在上述的实施例中,提供了一种虚拟磁盘的扩容方法,与之相对应的,本申请还提供了一种用于实现所述虚拟磁盘的扩容方法的电子设备,下面结合附图进行说明。
参照附图4,其示出了本申请提供的一种电子设备实施例的示意图。
由于所述电子设备实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下述描述的实施例仅仅是示意性的。
本申请提供一种电子设备,包括:
处理器401和存储器402;
其中,所述处理器401,用于根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件;将所述虚拟磁盘文件挂载到物理主机上,生成对应的虚拟磁盘;读取所述虚拟磁盘的分区信息;删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区;读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配;
所述存储器402,用于存储所述虚拟磁盘文件、所述虚拟磁盘的分区信息,以及所述虚拟磁盘的文件系统。
可选的,所述处理器401在执行所述根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件步骤之前,执行下述步骤:
接收所述扩容请求。
可选的,所述接收所述扩容请求步骤执行之后,所述处理器401执行下述步骤:
根据所述扩容请求从预设的所述系统镜像中选择与所述扩容请求匹配的系统镜像。
可选的,所述扩容请求中包含操作系统类型;
相应的,所述与所述扩容请求匹配的系统镜像包括:操作系统类型与所述扩容请求中包含的操作系统类型一致的系统镜像。
可选的,所述与所述扩容请求匹配的系统镜像包括:
对应的虚拟磁盘的容量值小于所述目标磁盘容量值的系统镜像,或者,对应的虚拟磁盘的容量值与所述目标磁盘容量值的差值在预设阈值范围内的系统镜像。
可选的,所述将所述虚拟磁盘文件挂载到物理主机上,通过调用预设的挂载接口实现;
其中,所述挂载接口由预设的SDK提供,所述SDK封装的虚拟化平台各自实现虚拟磁盘文件挂载的挂载工具通过所述挂载接口来使用;所述虚拟化平台包括:Xen和KVM。
可选的,所述读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配步骤执行之后,所述处理器401执行下述步骤:
调用预设的清理接口清理所述虚拟磁盘;
其中,所述清理接口由所述SDK提供,所述SDK封装的所述虚拟化平台各自清理虚拟磁盘的清理工具通过所述清理接口来使用。
可选的,所述读取所述虚拟磁盘的分区信息,采用如下方式实现:
调用预设的分区获取接口获取所述虚拟磁盘文件中记录的分区信息,作为所述虚拟磁盘的分区信息;
其中,所述分区获取接口由预设的SDK提供,所述SDK封装的分区工具提供的分区信息获取命令通过所述分区获取接口来使用。
可选的,所述分区信息,包括:
分区数目、分区标识、起始扇区位置信息、结束扇区位置信息、标识位、分区类型。
可选的,所述扩容值为所述目标磁盘容量值与所述系统镜像创建的虚拟磁盘的磁盘容量值的差值。
可选的,所述分区容量值根据所述起始扇区位置信息和所述结束扇区位置信息计算获得。
可选的,所述读取所述虚拟磁盘的分区表信息步骤执行之后,且所述删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区步骤执行之前,所述处理器401执行下述步骤:
根据所述分区信息,判断所述虚拟磁盘的分区是否满足扩容条件,若是,执行下一步。
可选的,所述扩容条件包括:
所述待扩容分区的分区容量值大于或者等于所述目标磁盘容量值,和/或,所述虚拟磁盘的分区类型支持扩容。
可选的,所述删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区步骤,包括:
从所述虚拟磁盘的分区中选择所述待扩容分区,并存储所述待扩容分区对应的分区信息;
删除所述待扩容分区;
根据存储的所述分区信息、所述待扩容分区的分区容量值和所述扩容值,创建所述新分区;
根据存储的所述分区信息对所述新分区进行配置。
可选的,所述待扩容分区的分区标识与所述新分区的分区标识、标识位和/或分区类型一致。
可选的,所述待扩容分区的起始扇区位置信息与所述新分区的起始扇区位置信息一致;
并且,所述新分区的结束扇区位置信息由所述待扩容分区的起始扇区位置信息和所述扩容值计算获得。
可选的,所述删除所述待扩容分区,采用如下方式实现:
调用预设的分区删除接口从所述虚拟磁盘文件中删除所述待扩容分区;
其中,所述分区删除接口由所述SDK提供,所述分区工具提供的分区删除命令通过所述分区删除接口来使用。
可选的,所述创建所述新分区,采用如下方式实现:
调用预设的分区创建接口在所述虚拟磁盘文件中创建所述新分区;
其中,所述分区创建接口由所述SDK提供,所述分区工具提供的分区创建命令通过所述分区创建接口来使用。
可选的,所述根据存储的所述分区信息对所述新分区进行配置,采用如下方式实现:
根据存储的所述分区信息,调用预设的分区配置接口在所述虚拟磁盘文件中对所述新分区进行配置;
其中,所述分区配置接口由所述SDK提供,所述分区工具提供的分区配置命令通过所述分区配置接口来使用。
可选的,所述读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配步骤,包括:
从所述系统镜像中读取所述虚拟磁盘的文件系统;
根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容;
其中,所述文件系统扩容接口由所述SDK提供,所述SDK封装的文件系统工具集中的扩容工具通过所述文件系统扩容接口来使用。
可选的,所述从所述系统镜像中读取所述虚拟磁盘的文件系统子步骤执行之后,且所述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤执行之前,执行下述子步骤:
结合所述待扩容分区的分区类型,调用预设的文件系统检查接口检查所述文件系统是否完整有效,若是,执行下一步;
其中,所述文件系统检查接口由所述SDK提供,所述SDK封装的文件系统工具集中的检查工具通过所述文件系统检查接口来使用。
可选的,所述结合所述待扩容分区的分区类型,调用预设的文件系统检查接口检查所述文件系统是否完整有效子步骤,若所述子步骤的判断结果为否,则执行下述子步骤:
调用预设的文件系统修复接口对所述文件系统进行修复;
结合所述待扩容分区的分区类型,调用所述文件系统检查接口检查所述文件系统是否修复成功,若是,执行所述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤;
其中,所述文件系统修复接口由所述SDK提供,所述SDK封装的文件系统工具集中的修复工具通过所述文件系统修复接口来使用。
可选的,所述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤执行之后,执行下述子步骤:
结合所述待扩容分区的分区类型,调用所述文件系统检查接口检查所述文件系统是否完整有效,若否,发出扩容失败的提醒信息。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、对象、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (35)
1.一种虚拟磁盘的扩容方法,其特征在于,包括:
根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件;
将所述虚拟磁盘文件挂载到物理主机上,生成对应的虚拟磁盘;
读取所述虚拟磁盘的分区信息;
删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区;
读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配。
2.根据权利要求1所述的虚拟磁盘的扩容方法,其特征在于,所述根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件步骤执行之前,执行下述步骤:
接收所述扩容请求。
3.根据权利要求2所述的虚拟磁盘的扩容方法,其特征在于,所述接收所述扩容请求步骤执行之后,执行下述步骤:
根据所述扩容请求从预设的所述系统镜像中选择与所述扩容请求匹配的系统镜像。
4.根据权利要求3所述的虚拟磁盘的扩容方法,其特征在于,所述扩容请求中包含操作系统类型;
相应的,所述与所述扩容请求匹配的系统镜像包括:操作系统类型与所述扩容请求中包含的操作系统类型一致的系统镜像。
5.根据权利要求3所述的虚拟磁盘的扩容方法,其特征在于,所述与所述扩容请求匹配的系统镜像包括:
对应的虚拟磁盘的容量值小于所述目标磁盘容量值的系统镜像,或者,对应的虚拟磁盘的容量值与所述目标磁盘容量值的差值在预设阈值范围内的系统镜像。
6.根据权利要求1所述的虚拟磁盘的扩容方法,其特征在于,所述将所述虚拟磁盘文件挂载到物理主机上,通过调用预设的挂载接口实现;
其中,所述挂载接口由预设的SDK提供,所述SDK封装的虚拟化平台各自实现虚拟磁盘文件挂载的挂载工具通过所述挂载接口来使用;所述虚拟化平台包括:Xen和KVM。
7.根据权利要求6所述的虚拟磁盘的扩容方法,其特征在于,所述读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配步骤执行之后,执行下述步骤:
调用预设的清理接口清理所述虚拟磁盘;
其中,所述清理接口由所述SDK提供,所述SDK封装的所述虚拟化平台各自清理虚拟磁盘的清理工具通过所述清理接口来使用。
8.根据权利要求1所述的虚拟磁盘的扩容方法,其特征在于,所述读取所述虚拟磁盘的分区信息,采用如下方式实现:
调用预设的分区获取接口获取所述虚拟磁盘文件中记录的分区信息,作为所述虚拟磁盘的分区信息;
其中,所述分区获取接口由预设的SDK提供,所述SDK封装的分区工具提供的分区信息获取命令通过所述分区获取接口来使用。
9.根据权利要求8所述的虚拟磁盘的扩容方法,其特征在于,所述分区信息,包括:
分区数目、分区标识、起始扇区位置信息、结束扇区位置信息、标识位、分区类型。
10.根据权利要求9所述的虚拟磁盘的扩容方法,其特征在于,所述扩容值为所述目标磁盘容量值与所述系统镜像创建的虚拟磁盘的磁盘容量值的差值。
11.根据权利要求9所述的虚拟磁盘的扩容方法,其特征在于,所述分区容量值根据所述起始扇区位置信息和所述结束扇区位置信息计算获得。
12.根据权利要求9所述的虚拟磁盘的扩容方法,其特征在于,所述读取所述虚拟磁盘的分区表信息步骤执行之后,且所述删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区步骤执行之前,执行下述步骤:
根据所述分区信息,判断所述虚拟磁盘的分区是否满足扩容条件,若是,执行下一步。
13.根据权利要求12所述的虚拟磁盘的扩容方法,其特征在于,所述扩容条件包括:
所述待扩容分区的分区容量值大于或者等于所述目标磁盘容量值,和/或,所述虚拟磁盘的分区类型支持扩容。
14.根据权利要求9所述的虚拟磁盘的扩容方法,其特征在于,所述删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区步骤,包括:
从所述虚拟磁盘的分区中选择所述待扩容分区,并存储所述待扩容分区对应的分区信息;
删除所述待扩容分区;
根据存储的所述分区信息、所述待扩容分区的分区容量值和所述扩容值,创建所述新分区;
根据存储的所述分区信息对所述新分区进行配置。
15.根据权利要求14所述的虚拟磁盘的扩容方法,其特征在于,所述待扩容分区的分区标识与所述新分区的分区标识、标识位和/或分区类型一致。
16.根据权利要求14所述的虚拟磁盘的扩容方法,其特征在于,所述待扩容分区的起始扇区位置信息与所述新分区的起始扇区位置信息一致;
并且,所述新分区的结束扇区位置信息由所述待扩容分区的起始扇区位置信息和所述扩容值计算获得。
17.根据权利要求14所述的虚拟磁盘的扩容方法,其特征在于,所述删除所述待扩容分区,采用如下方式实现:
调用预设的分区删除接口从所述虚拟磁盘文件中删除所述待扩容分区;
其中,所述分区删除接口由所述SDK提供,所述分区工具提供的分区删除命令通过所述分区删除接口来使用。
18.根据权利要求14所述的虚拟磁盘的扩容方法,其特征在于,所述创建所述新分区,采用如下方式实现:
调用预设的分区创建接口在所述虚拟磁盘文件中创建所述新分区;
其中,所述分区创建接口由所述SDK提供,所述分区工具提供的分区创建命令通过所述分区创建接口来使用。
19.根据权利要求14所述的虚拟磁盘的扩容方法,其特征在于,所述根据存储的所述分区信息对所述新分区进行配置,采用如下方式实现:
根据存储的所述分区信息,调用预设的分区配置接口在所述虚拟磁盘文件中对所述新分区进行配置;
其中,所述分区配置接口由所述SDK提供,所述分区工具提供的分区配置命令通过所述分区配置接口来使用。
20.根据权利要求9所述的虚拟磁盘的扩容方法,其特征在于,所述读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配步骤,包括:
从所述系统镜像中读取所述虚拟磁盘的文件系统;
根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容;
其中,所述文件系统扩容接口由所述SDK提供,所述SDK封装的文件系统工具集中的扩容工具通过所述文件系统扩容接口来使用。
21.根据权利要求20所述的虚拟磁盘的扩容方法,其特征在于,所述从所述系统镜像中读取所述虚拟磁盘的文件系统子步骤执行之后,且所述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤执行之前,执行下述子步骤:
结合所述待扩容分区的分区类型,调用预设的文件系统检查接口检查所述文件系统是否完整有效,若是,执行下一步;
其中,所述文件系统检查接口由所述SDK提供,所述SDK封装的文件系统工具集中的检查工具通过所述文件系统检查接口来使用。
22.根据权利要求21所述的虚拟磁盘的扩容方法,其特征在于,所述结合所述待扩容分区的分区类型,调用预设的文件系统检查接口检查所述文件系统是否完整有效子步骤,若所述子步骤的判断结果为否,则执行下述子步骤:
调用预设的文件系统修复接口对所述文件系统进行修复;
结合所述待扩容分区的分区类型,调用所述文件系统检查接口检查所述文件系统是否修复成功,若是,执行所述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤;
其中,所述文件系统修复接口由所述SDK提供,所述SDK封装的文件系统工具集中的修复工具通过所述文件系统修复接口来使用。
23.根据权利要求20所述的虚拟磁盘的扩容方法,其特征在于,所述根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容子步骤执行之后,执行下述子步骤:
结合所述待扩容分区的分区类型,调用所述文件系统检查接口检查所述文件系统是否完整有效,若否,发出扩容失败的提醒信息。
24.一种虚拟磁盘的扩容装置,其特征在于,包括:
虚拟磁盘文件创建单元,用于根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件;
虚拟磁盘生成单元,用于将所述虚拟磁盘文件挂载到物理主机上,生成对应的虚拟磁盘;
分区信息读取单元,用于读取所述虚拟磁盘的分区信息;
分区扩容单元,用于删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区;
文件系统扩容单元,用于读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配。
25.根据权利要求24所述的虚拟磁盘的扩容装置,其特征在于,包括:
扩容请求接收单元,用于接收所述扩容请求。
26.根据权利要求25所述的虚拟磁盘的扩容装置,其特征在于,包括:
系统镜像选择单元,用于根据所述扩容请求从预设的所述系统镜像中选择与所述扩容请求匹配的系统镜像。
27.根据权利要求24所述的虚拟磁盘的扩容装置,其特征在于,所述虚拟磁盘生成单元,通过调用预设的挂载接口实现;
其中,所述挂载接口由预设的SDK提供,所述SDK封装的虚拟化平台各自实现虚拟磁盘文件挂载的挂载工具通过所述挂载接口来使用;所述虚拟化平台包括:Xen和KVM。
28.根据权利要求27所述的虚拟磁盘的扩容装置,其特征在于,包括:
虚拟磁盘清理单元,用于调用预设的清理接口清理所述虚拟磁盘;
其中,所述清理接口由所述SDK提供,所述SDK封装的所述虚拟化平台各自清理虚拟磁盘的清理工具通过所述清理接口来使用。
29.根据权利要求24所述的虚拟磁盘的扩容装置,其特征在于,所述分区信息读取单元,具体用于调用预设的分区获取接口获取所述虚拟磁盘文件中记录的分区信息,作为所述虚拟磁盘的分区信息;
其中,所述分区获取接口由预设的SDK提供,所述SDK封装的分区工具提供的分区信息获取命令通过所述分区获取接口来使用。
30.根据权利要求29所述的虚拟磁盘的扩容装置,其特征在于,所述分区信息,包括:
分区数目、分区标识、起始扇区位置信息、结束扇区位置信息、标识位、分区类型。
31.根据权利要求30所述的虚拟磁盘的扩容装置,其特征在于,包括:
扩容判断单元,用于根据所述分区信息,判断所述虚拟磁盘的分区是否满足扩容条件,若是,运行所述分区扩容单元。
32.根据权利要求30所述的虚拟磁盘的扩容装置,其特征在于,所述分区扩容单元,包括:
待扩容分区选择子单元,用于从所述虚拟磁盘的分区中选择所述待扩容分区,并存储所述待扩容分区对应的分区信息;
待扩容分区删除子单元,用于删除所述待扩容分区;
新分区创建子单元,用于根据存储的所述分区信息、所述待扩容分区的分区容量值和所述扩容值,创建所述新分区;
新分区配置子单元,用于根据存储的所述分区信息对所述新分区进行配置。
33.根据权利要求30所述的虚拟磁盘的扩容装置,其特征在于,所述文件系统扩容单元,包括:
文件系统读取子单元,用于从所述系统镜像中读取所述虚拟磁盘的文件系统;
文件系统扩容子单元,用于根据所述新分区,调用预设的文件系统扩容接口对所述文件系统进行扩容;
其中,所述文件系统扩容接口由所述SDK提供,所述SDK封装的文件系统工具集中的扩容工具通过所述文件系统扩容接口来使用。
34.根据权利要求33所述的虚拟磁盘的扩容装置,其特征在于,所述文件系统扩容单元,还包括:
文件系统检查子单元,用于结合所述待扩容分区的分区类型,调用预设的文件系统检查接口检查所述文件系统是否完整有效,若是,运行所述文件系统扩容子单元;
其中,所述文件系统检查接口由所述SDK提供,所述SDK封装的文件系统工具集中的检查工具通过所述文件系统检查接口来使用。
35.一种电子设备,其特征在于,包括:
处理器和存储器;
其中,所述处理器,用于根据预设的系统镜像和接收的扩容请求中包含的目标磁盘容量值创建虚拟磁盘文件;将所述虚拟磁盘文件挂载到物理主机上,生成对应的虚拟磁盘;读取所述虚拟磁盘的分区信息;删除所述虚拟磁盘的待扩容分区,并根据所述待扩容分区的分区容量值和扩容值创建新分区;读取所述虚拟磁盘的文件系统并进行扩容,使其与所述新分区适配;
所述存储器,用于存储所述虚拟磁盘文件、所述虚拟磁盘的分区信息,以及所述虚拟磁盘的文件系统。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610766855.4A CN107800730B (zh) | 2016-08-30 | 2016-08-30 | 一种虚拟磁盘的扩容方法以及装置 |
EP17847500.0A EP3507686A4 (en) | 2016-08-30 | 2017-08-30 | APPARATUS AND METHOD FOR EXPANSION OF VIRTUAL DISK |
PCT/US2017/049463 WO2018045085A1 (en) | 2016-08-30 | 2017-08-30 | Virtual disk expansion method and apparatus |
US15/691,658 US20180059978A1 (en) | 2016-08-30 | 2017-08-30 | Virtual disk expansion method and apparatus |
JP2019510616A JP7012074B2 (ja) | 2016-08-30 | 2017-08-30 | 仮想ディスクの拡張方法及び機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610766855.4A CN107800730B (zh) | 2016-08-30 | 2016-08-30 | 一种虚拟磁盘的扩容方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107800730A true CN107800730A (zh) | 2018-03-13 |
CN107800730B CN107800730B (zh) | 2021-01-29 |
Family
ID=61242635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610766855.4A Active CN107800730B (zh) | 2016-08-30 | 2016-08-30 | 一种虚拟磁盘的扩容方法以及装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20180059978A1 (zh) |
EP (1) | EP3507686A4 (zh) |
JP (1) | JP7012074B2 (zh) |
CN (1) | CN107800730B (zh) |
WO (1) | WO2018045085A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445706A (zh) * | 2018-10-30 | 2019-03-08 | 紫光华山信息技术有限公司 | 磁盘分区扩容方法、装置及服务端 |
CN109634712A (zh) * | 2018-10-16 | 2019-04-16 | 平安普惠企业管理有限公司 | Api功能服务方法、装置、设备及可读存储介质 |
CN109933343A (zh) * | 2019-03-26 | 2019-06-25 | 新华三信息技术有限公司 | 一种系统安装方法及装置 |
CN110825703A (zh) * | 2019-11-01 | 2020-02-21 | 浪潮云信息技术有限公司 | 一种基于定时任务实现文件系统弹性伸缩的方法 |
CN112035063A (zh) * | 2020-08-28 | 2020-12-04 | 浪潮云信息技术股份公司 | 一种基于云平台的硬盘及文件系统热扩容的方法 |
CN113407296A (zh) * | 2020-03-16 | 2021-09-17 | 阿里巴巴集团控股有限公司 | 容器服务管理方法和装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11693792B2 (en) | 2018-01-04 | 2023-07-04 | Google Llc | Infernal storage in cloud disk to support encrypted hard drive and other stateful features |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493795A (zh) * | 2008-01-24 | 2009-07-29 | 杭州华三通信技术有限公司 | 存储系统和存储控制器以及存储系统中的缓存实现方法 |
CN101566927A (zh) * | 2008-04-23 | 2009-10-28 | 杭州华三通信技术有限公司 | 存储系统和存储控制器以及数据缓存方法 |
CN101976181A (zh) * | 2010-10-15 | 2011-02-16 | 杭州宏杉科技有限公司 | 一种存储资源的管理方法及管理装置 |
US20120191929A1 (en) * | 2011-01-21 | 2012-07-26 | Hitachi, Ltd. | Method and apparatus of rapidly deploying virtual machine pooling volume |
CN103513940A (zh) * | 2013-10-21 | 2014-01-15 | 北京华胜天成科技股份有限公司 | 虚拟机在线扩展磁盘容量的方法和虚拟系统控制台 |
CN104572242A (zh) * | 2013-10-24 | 2015-04-29 | 华为技术有限公司 | 一种扩展虚拟机磁盘空间的方法、装置及虚拟机系统 |
CN105607869A (zh) * | 2015-12-15 | 2016-05-25 | 国云科技股份有限公司 | 一种快速格式化与使用虚拟机磁盘的方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052724A (en) * | 1997-09-02 | 2000-04-18 | Novell Inc | Method and system for managing a directory service |
US6466952B2 (en) * | 1999-04-08 | 2002-10-15 | Hewlett-Packard Company | Method for transferring and indexing data from old media to new media |
US20050027938A1 (en) * | 2003-07-29 | 2005-02-03 | Xiotech Corporation | Method, apparatus and program storage device for dynamically resizing mirrored virtual disks in a RAID storage system |
US8776050B2 (en) * | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
US7921262B1 (en) * | 2003-12-18 | 2011-04-05 | Symantec Operating Corporation | System and method for dynamic storage device expansion support in a storage virtualization environment |
US8364638B2 (en) * | 2005-09-15 | 2013-01-29 | Ca, Inc. | Automated filer technique for use in virtualized appliances and applications |
US7653794B2 (en) * | 2006-05-08 | 2010-01-26 | Microsoft Corporation | Converting physical machines to virtual machines |
WO2008022156A2 (en) * | 2006-08-14 | 2008-02-21 | Neural Id, Llc | Pattern recognition system |
JP2008117500A (ja) | 2006-11-08 | 2008-05-22 | Yokogawa Electric Corp | デバイス試験装置 |
WO2008117500A1 (ja) * | 2007-03-27 | 2008-10-02 | Nec Corporation | 仮想マシン運用システム、仮想マシン運用方法およびプログラム |
US9069983B1 (en) * | 2009-04-29 | 2015-06-30 | Symantec Corporation | Method and apparatus for protecting sensitive information from disclosure through virtual machines files |
US8555017B2 (en) * | 2010-02-22 | 2013-10-08 | Red Hat, Inc. | In-place physical to virtual (P2V) migration of an existing operating system during installation of a new operating system |
US8904136B2 (en) * | 2011-03-15 | 2014-12-02 | Symantec Corporation | Optimized shrinking of virtual disks |
US8868863B2 (en) * | 2012-01-12 | 2014-10-21 | Alcatel Lucent | Method and apparatus for a frugal cloud file system |
US9600206B2 (en) * | 2012-08-01 | 2017-03-21 | Microsoft Technology Licensing, Llc | Request ordering support when switching virtual disk replication logs |
US9141400B2 (en) * | 2012-12-21 | 2015-09-22 | Unisys Corporation | Technique for deploying operating systems in a virtualized environment |
CN104156175B (zh) * | 2014-08-06 | 2017-05-24 | 厦门天锐科技股份有限公司 | 一种虚拟磁盘容量平滑拓展方法 |
US9772780B2 (en) * | 2015-10-30 | 2017-09-26 | Netapp, Inc. | Method for non-disruptively aligning I/O access of a host operating system with the underlying storage system |
US9898208B2 (en) * | 2016-04-27 | 2018-02-20 | Datadirect Networks, Inc. | Storage system with hybrid logical volumes utilizing in-band hinting |
-
2016
- 2016-08-30 CN CN201610766855.4A patent/CN107800730B/zh active Active
-
2017
- 2017-08-30 WO PCT/US2017/049463 patent/WO2018045085A1/en unknown
- 2017-08-30 JP JP2019510616A patent/JP7012074B2/ja active Active
- 2017-08-30 EP EP17847500.0A patent/EP3507686A4/en not_active Withdrawn
- 2017-08-30 US US15/691,658 patent/US20180059978A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493795A (zh) * | 2008-01-24 | 2009-07-29 | 杭州华三通信技术有限公司 | 存储系统和存储控制器以及存储系统中的缓存实现方法 |
CN101566927A (zh) * | 2008-04-23 | 2009-10-28 | 杭州华三通信技术有限公司 | 存储系统和存储控制器以及数据缓存方法 |
CN101976181A (zh) * | 2010-10-15 | 2011-02-16 | 杭州宏杉科技有限公司 | 一种存储资源的管理方法及管理装置 |
US20120191929A1 (en) * | 2011-01-21 | 2012-07-26 | Hitachi, Ltd. | Method and apparatus of rapidly deploying virtual machine pooling volume |
CN103513940A (zh) * | 2013-10-21 | 2014-01-15 | 北京华胜天成科技股份有限公司 | 虚拟机在线扩展磁盘容量的方法和虚拟系统控制台 |
CN104572242A (zh) * | 2013-10-24 | 2015-04-29 | 华为技术有限公司 | 一种扩展虚拟机磁盘空间的方法、装置及虚拟机系统 |
CN105607869A (zh) * | 2015-12-15 | 2016-05-25 | 国云科技股份有限公司 | 一种快速格式化与使用虚拟机磁盘的方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634712A (zh) * | 2018-10-16 | 2019-04-16 | 平安普惠企业管理有限公司 | Api功能服务方法、装置、设备及可读存储介质 |
CN109445706A (zh) * | 2018-10-30 | 2019-03-08 | 紫光华山信息技术有限公司 | 磁盘分区扩容方法、装置及服务端 |
CN109933343A (zh) * | 2019-03-26 | 2019-06-25 | 新华三信息技术有限公司 | 一种系统安装方法及装置 |
CN110825703A (zh) * | 2019-11-01 | 2020-02-21 | 浪潮云信息技术有限公司 | 一种基于定时任务实现文件系统弹性伸缩的方法 |
CN113407296A (zh) * | 2020-03-16 | 2021-09-17 | 阿里巴巴集团控股有限公司 | 容器服务管理方法和装置 |
CN112035063A (zh) * | 2020-08-28 | 2020-12-04 | 浪潮云信息技术股份公司 | 一种基于云平台的硬盘及文件系统热扩容的方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2019532394A (ja) | 2019-11-07 |
JP7012074B2 (ja) | 2022-01-27 |
EP3507686A4 (en) | 2019-10-09 |
US20180059978A1 (en) | 2018-03-01 |
CN107800730B (zh) | 2021-01-29 |
EP3507686A1 (en) | 2019-07-10 |
WO2018045085A1 (en) | 2018-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107800730A (zh) | 一种虚拟磁盘的扩容方法以及装置 | |
CN109491695A (zh) | 一种集成安卓应用的增量更新方法 | |
CN109408393B (zh) | 应用测试方法、装置及设备和计算机可读存储介质 | |
US20080209275A1 (en) | Test framework for testing an application | |
CN106528201B (zh) | 游戏中加载动画的方法和装置 | |
TW201541353A (zh) | 載入驅動程式的方法及嵌入式設備 | |
CN108614702B (zh) | 字节码优化方法及装置 | |
CN104468226A (zh) | 基于Nginx的配置方法及装置 | |
US20150154009A1 (en) | Processing instruction information | |
CN106055368A (zh) | 应用更新方法和装置 | |
CN108920725B (zh) | 一种对象存储的方法及对象存储网关 | |
CN111124286A (zh) | 一种基于Libcloud的多云管理实现方法 | |
CN111078279B (zh) | 字节码文件的处理方法、装置、设备及存储介质 | |
CN110333876A (zh) | 一种数据清除方法及控制设备 | |
CN111695827A (zh) | 业务流程的管理方法、装置、电子设备及存储介质 | |
CN108829449A (zh) | 一种bios启动操作系统的方法、装置、设备及介质 | |
CN115291946A (zh) | 鸿蒙系统移植方法、装置、电子设备及可读介质 | |
CN116431193A (zh) | 程序补丁包的打包方法、装置、存储介质及电子设备 | |
CN112604273B (zh) | 数据驱动的游戏系统功能加载方法、设备及存储介质 | |
WO2024087607A1 (zh) | 闪存管理算法调试方法、系统、设备和可读存储介质 | |
CN112559127A (zh) | 虚拟机创建方法、装置、主机及存储介质 | |
CN110413437A (zh) | 网络命名空间异常处理方法、装置、设备及可读存储介质 | |
CN111290765B (zh) | 一种固件快速烧录方法、系统及存储介质 | |
CN110515751B (zh) | 一种加载运行VxWorks实时保护进程的方法及系统 | |
CN111090638A (zh) | 一种数据库迁移中交易功能的对比方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |