一种虚拟磁盘构建方法

文档序号:9750619阅读:382来源:国知局
一种虚拟磁盘构建方法
【技术领域】
[0001] 本发明涉及虚拟机磁盘技术领域,特别是一种结合块设备和虚拟磁盘文件格式优 点的虚拟磁盘构建方法。
【背景技术】
[0002] 如果单独使用虚拟磁盘文件格式的方式来创建和使用虚拟磁盘,其最大优点是可 以按需使用,节约空间,以及格式灵活,但是会带来以下问题:
[0003] -是虚拟磁盘放在文件系统上,读写效率相对低下;
[0004] 二是共享不方便,如果要想共享,需要用到第三方网络文件系统如nfs,这样会增 加系统的复杂性,增加运维的负担;
[0005] 如果直接使用块设备的方式来创建和使用虚拟磁盘,其最大优点是读写效率高, 共享方便,但是会带来以下问题:
[0006] -是浪费空间,因为块设备格式化创建文件系统后实际占用的空间就是虚拟磁盘 所定义的大小,即使磁盘里面什么内容都没写入,也是要占用超过实际写入数据大小的空 间的。
[0007] 二是在对磁盘上的数据进行存储、快照、备份、打包等操作时因为操作的是整个块 设备上的数据,所以特别浪费空间和时间。
[0008] 三是缺乏虚拟磁盘格式的各种灵活性,比如不同格式之间的互相转换。
[0009] 单独使用qC〇w2文件系统方式或者单独使用块设备方式来创建和使用虚拟磁盘, 都有各自的优点和缺点,不管使用哪种方式,都有其局限性,需要找一种方法,使得虚拟磁 盘的使用同时拥有这两种方式的优点,且规避这两种方式的缺点。

【发明内容】

[0010] 本发明解决的技术问题在于提供一种的虚拟磁盘构建方法;结合块设备和虚拟磁 盘文件格式优点,解决了单独使用虚拟磁盘文件格式的方式或者单独使用块设备的方式使 用虚拟磁盘所带来的问题。
[0011] 本发明解决上述问题的技术方案,包括以下步骤:
[0012] 所述的方法包括如下步骤:
[0013] 步骤1:准备一个块设备,块设备实现方式不限;
[0014] 步骤2:使用qemu工具链在块设备上创建一个qcow2格式的文件;
[0015] 步骤3:把此块设备的路径配置进虚拟机的磁盘路径配置项里;
[0016] 步骤4:把虚拟机磁盘的设备格式配置为qcow2格式;
[0017] 步骤5:完成创建,可按需要对虚拟磁盘进行操作。
[0018] 所述的块设备可以从不同类型的存储系统,如SAN存储或分布式存储系统里创建 一个块设备并映射到本地路径上。
[0019] 用命令格式qemu-img create-f qcow2/path/to/block_devsizeG,在块设备上创 建一个qcow2格式的文件。
[0020] 修改虚拟机配置文件里面的source参数,配置虚拟机的磁盘路径,如:〈source f i le =' /dev/rbd/volumes/volume-xxxxxxxxxxx' />;把此块设备的路径配置进虚拟机的 磁盘路径配置项里;
[0021 ]修改driver参数,如:〈driver name =' qemu' type =' qcow^ cache =' none' />;把 虚拟机磁盘的设备格式配置为qcow2格式。
[0022] 本发明提供一种结合块设备和虚拟磁盘文件格式优点的虚拟磁盘使用方式,通过 比较容易实现的方法结合这两种方式来创建虚拟磁盘,成功的规避了单独使用的方式所带 来的各种问题,使得虚拟磁盘同时拥有了虚拟磁盘文件格式磁盘和块设备磁盘的优点,不 仅节约空间,方便共享,格式灵活,传输速度更快,也提高了系统的稳定性以及降低了维护 成本。本发明能适用于不同类型的存储系统,比如SAN存储或分布式存储系统,实现简单。
【附图说明】
[0023] 下面结合附图对本发明进一步说明:
[0024]图1是本发明流程框图。
【具体实施方式】
[0025]见图1所示,本发明的实施包括以下步骤:
[0026] 1、使用qemu工具链在块设备上创建一个qcow2格式的文件,命令如下;
[0027] qemu-img create-f qcow2/dev/rbd/volume-χχχχχ 100G
[0028] 其中/de v/rbd/vo lume-xxxxx指的是块设备的路径
[0029] 2、把块设备的路径配置进虚拟机的磁盘路径配置项里,这个是写到libvirt. xml 的,代码如下;
[0030] public ¥〇 i d setLibvirtXml(VmDetai1 vmlns) throws GCloudException{ String templetPath = VmNodeUtil. getLibvirtTempletPat;h(); File tempietXmi = new File(templetPath); String I jbXmlPath = VmNodeUtiL getlibvirtXinlPath (vmlns. getUserTdO, vmlns. ge tlnstanceldO ); String core = String. valueOf(vmlns. getCore()); String memQryKb = String. valueOf (vmlns. getMemoryO * i024L); List<VmDi:skDetail> vmDisks = vmlns. getVmDisks ();
[0031]
[0032] 完成后,在配置文件中参数值如下(注意这个路径是到实际块设备的软连接):
[0033] <sourcefile=//instances/disk/lcb99ecb01c548bfbe684fa4d095338f/i-e^SSEOS/i-e^SSEOS.snap 7 /> ;
[0034] 3、把虚拟机磁盘的设备格式配置为qc〇w2格式,命令如下;
[0035] qemu-img create-b bFile-f format disk sizeGB
[0036] 其中参数:bFile是指的镜像;disk是指的系统盘;sizeGB是指的系统盘大小。
[0037] 完成后,在配置文件中参数值如下:
[0038] <driver name =7 qemu7 type =7 qcow27 cache =7 none7/>〇
【主权项】
1. 一种虚拟磁盘构建方法,其特征在于:所述的方法包括如下步骤: 步骤1:准备一个块设备,块设备实现方式不限; 步骤2:使用qemu工具链在块设备上创建一个qcow2格式的文件; 步骤3:把此块设备的路径配置进虚拟机的磁盘路径配置项里; 步骤4:把虚拟机磁盘的设备格式配置为qcow2格式; 步骤5:完成创建,可按需要对虚拟磁盘进行操作。2. 根据权利1所述的虚拟磁盘构建方法,其特征在于:所述的块设备可以从不同类型的 存储系统,如SAN存储或分布式存储系统里创建一个块设备并映射到本地路径上。3. 根据权利1所述的虚拟磁盘构建方法,其特征在于:用命令格式qemu-img create-f qcow2/path/to/block_devsizeG,在块设备上创建一个qcow2格式的文件。4. 根据权利2所述的虚拟磁盘构建方法,其特征在于:用命令格式qemu-img create-f qcow2/path/to/block_devsizeG,在块设备上创建一个qcow2格式的文件。5. 根据权利1至4任一项所述的虚拟磁盘构建方法,其特征在于:修改虚拟机配置文件 里面的source参数,配置虚拟机的磁盘路径,如:〈source f ile = '/dev/rbd/volumes/ volume-xxxxxxxxxxx '/>;把此块设备的路径配置进虚拟机的磁盘路径配置项里; 修改driver参数,如:〈driver name ='qemu'type = 'qcow2'cache = 'none'/>;把虚拟 机磁盘的设备格式配置为qcow2格式。
【专利摘要】本发明涉及虚拟机磁盘技术领域,特别是一种结合块设备和虚拟磁盘文件格式优点的虚拟磁盘构建方法。本发明首先准备一个块设备,块设备的实现方式不限,然后使用qemu工具链在该块设备上创建一个qcow2格式的文件,再把此块设备的路径配置进虚拟机的磁盘路径配置项里,并把虚拟机磁盘的设备格式配置成qcow2格式,这样就完成了虚拟磁盘的创建和虚拟机的创建,可按需要操作该虚拟磁盘。本发明解决了单独使用虚拟磁盘文件格式的方式或者单独使用块设备的方式创建虚拟磁盘所带来的问题;本发明适用于不同类型存储系统的虚拟磁盘构建。
【IPC分类】G06F9/455
【公开号】CN105511938
【申请号】CN201510821450
【发明人】温金花, 杨松, 季统凯
【申请人】国云科技股份有限公司
【公开日】2016年4月20日
【申请日】2015年11月23日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1