一种直接通过宿主机获取虚拟机磁盘容量信息的方法

文档序号:9810349阅读:379来源:国知局
一种直接通过宿主机获取虚拟机磁盘容量信息的方法
【技术领域】
[0001]本发明涉及云计算技术领域,特别是一种直接通过宿主机获取虚拟机磁盘容量信息的方法。
【背景技术】
[0002]在云计算的环境下,各家云平台都需要对物理资源和虚拟资源进行有效的监控管理,以保证云平台安全可靠。目前情况下,由于我们的云平台都是直接运行在物理节点上,所以对物理资源的监控比较简单,只需要在物理节点上运行相应指令或程序即可完成。然而对虚拟资源,尤其是虚拟机本身的资源使用情况的监控则比较麻烦,各家云平台在实现上参差不齐,要么没有实现,要么实现得比较复杂,或者说实现的效果不是很好。在已有实现监控虚拟机磁盘容量信息的云平台中,其一般的实现方法步骤如下:
[0003]1、在每台待监控的虚拟机上面运行一个代理程序;
[0004]2、宿主机运行程序定时发送请求到虚拟机代理程序;
[0005]3、虚拟机代理程序接受请求并执行相应命令程序获取磁盘容量信息;
[0006]4、虚拟机代理程序将磁盘容量信息反馈给宿主机。
[0007]这种方法存在以下的弊端:
[0008]1、每台虚拟机都必须运行维护一个代理程序,代理程序的运行本身会消耗虚拟机的资源,从而降低其性能;
[0009]2、宿主机与虚拟机之间的程序通信可能会出现不可达情况,这样对虚拟机磁盘容量信息的统计有可能会出现不实时、不准确的情况。
[0010]3、另外这种方法实现起来也比较复杂,需要宿主机和虚拟机同时运行监控程序进行消息通信。

【发明内容】

[0011]本发明解决的技术问题在于提供一种直接通过宿主机获取虚拟机磁盘容量信息的方法,解决了云计算领域里云平台获取虚拟机磁盘使用情况所存在的复杂、低效、不可靠等相关冋题。
[0012]本发明解决上述技术问题的技术方案是:
[0013]所述的方法包括如下步骤:
[0014]步骤1:在宿主机上面加载网络块设备驱动模块;
[0015]步骤2:在宿主机上面利用磁盘驱动模块将虚拟机磁盘文件连接到NBD设备;
[0016]步骤3:将所述NBD设备挂载到某个自定义目录;
[0017]步骤4:接着进入所述自定义目录利用相关命令查看磁盘容量信息;
[0018]步骤5:查询到虚拟机磁盘容量信息后将所述NBD设备从所述自定义目录中卸载下来;
[0019]步骤6:最后关闭所述NBD设备与所述磁盘文件的连接。
[0020]所述的网络块设备驱动模块是指NBD驱动模块,NBD是一个内核模块;利用NBD驱动模块,可以将一个远程主机的磁盘空间当作一个块设备来使用,也可以将另一台服务器的硬盘空间,增加到本地服务器上。
[0021 ]所述的虚拟机磁盘文件是指qcow2格式文件;
[0022]所述的qcow2格式文件是一种虚拟机使用的磁盘格式文件,这种磁盘格式文件主要在KVM、QEMU虚拟化方式下使用。
[0023]所述的NBD设备是网络块设备的缩写,是将远程服务器上的磁盘设备挂载到本地使用的一种块设备。
[0024]所述的自定义目录即一个已存在或临时新创建的Iinux文件系统目录。
[0025]所述的相关命令可以是Is,df等查看Iinux文件系统目录空间的工具命令。
[0026]本发明方案的有益效果如下:
[0027]1、本发明的方法不需要虚拟机里面运行代理程序即可获取其磁盘使用情况,具有较高的效率和安全性,也保证了虚拟机较高的性能。
[0028]2、本发明的方法中只需要在宿主机上面执行几条简单的命令即可获取虚拟机里面磁盘的容量信息,使用简单不复杂。
【附图说明】
[0029]下面结合附图对本发明进一步说明:
[0030]图1为本发明的流程图。
【具体实施方式】
[0031]见图1所示,本发明首先需要在宿主机上面正确挂载网络块设备驱动模块nbd,由于nbd已经默认作为Iinux内核模块,所以执行要加载即可。执行如下命令加载nbd驱动模块:
[0032]rmmod nbd
[0033]modprobe nbd max_part = 8
[0034]因为默认,nbd的增加分区的功能是关闭的,需要指定maX_part这个参数。这个参数指定了一个nbd设备可以有多少个分区。
[0035]接着利用nbd驱动模块将虚拟机磁盘qcow2文件以只读的形式连接到一个nbd设备,执行如下命令:
[0036]#/opt/qemu-1.5.2/bin/qemu-nbd _c /dev/nbdl /work/add2.qcow2 ~r
[0037]上述中add2.qcow2位虚拟机磁盘qcow2格式文件,即该文件提供了虚拟机的一块磁盘;利用qemu-nbd工具将其连接到/dev/nbdl设备。
[0038]将上述nbd设备nbdl继续挂载到某个目录,
[0039]#ntfs-3g /dev/nbdl /work/loop/ _o ro
[0040]利用ntfs-3g工具以只读方式将nbdl设备挂载到了自定义目录/work/loop/,这里ntfs-3g只是其中的一种工具,不同类型的磁盘对应不同的工具。
[0041 ] 进入上述自定义目录/work/loop/,查看虚拟机磁盘使用情况,执行如下命令即可:
[0042]cd/work/loop/
[0043]Is-1
[0044]……
[0045]经过上面步骤完成了虚拟机磁盘容量信息的获取,接着退出读取,需要执行如下两个步骤:
[0046]卸载上述挂载的自定义目录,
[0047]#umount /work/loop/
[0048]关闭所述NBD设备与所述磁盘文件的连接:
[0049]#/opt/qemu-1.5.2/bin/qemu-nbd _d /dev/nbdl。
【主权项】
1.一种直接通过宿主机获取虚拟机磁盘容量信息的方法,其特征在于: 所述的方法包括如下步骤: 步骤1:在宿主机上面加载网络块设备驱动模块; 步骤2:在宿主机上面利用磁盘驱动模块将虚拟机磁盘文件连接到NK)设备; 步骤3:将所述NK)设备挂载到某个自定义目录; 步骤4:接着进入所述自定义目录利用相关命令查看磁盘容量信息; 步骤5:查询到虚拟机磁盘容量信息后将所述NK)设备从所述自定义目录中卸载下来; 步骤6:最后关闭所述NK)设备与所述磁盘文件的连接。2.根据权利要求1所述的一种直接通过宿主机获取虚拟机磁盘容量信息的方法,其特征在于:所述的网络块设备驱动模块是指NBD驱动模块,NBD是一个内核模块;利用NBD驱动模块,可以将一个远程主机的磁盘空间当作一个块设备来使用,也可以将另一台服务器的硬盘空间,增加到本地服务器上。3.根据权利要求1所述的一种直接通过宿主机获取虚拟机磁盘容量信息的方法,其特征在于:所述的虚拟机磁盘文件是指qcow2格式文件; 所述的qcow2格式文件是一种虚拟机使用的磁盘格式文件,这种磁盘格式文件主要在KVM、QEMU虚拟化方式下使用。4.根据权利要求2所述的一种直接通过宿主机获取虚拟机磁盘容量信息的方法,其特征在于:所述的虚拟机磁盘文件是指qcow2格式文件; 所述的qcow2格式文件是一种虚拟机使用的磁盘格式文件,这种磁盘格式文件主要在KVM、QEMU虚拟化方式下使用。5.根据权利要求1至4任一项所述的一种直接通过宿主机获取虚拟机磁盘容量信息的方法,其特征在于:所述的NBD设备是网络块设备的缩写,是将远程服务器上的磁盘设备挂载到本地使用的一种块设备。6.根据权利要求1至4任一项所述的一种直接通过宿主机获取虚拟机磁盘容量信息的方法,其特征在于:所述的自定义目录即一个已存在或临时新创建的Iinux文件系统目录。7.根据权利要求1至4任一项所述的一种直接通过宿主机获取虚拟机磁盘容量信息的方法,其特征在于:所述的相关命令可以是ls,df等查看Iinux文件系统目录空间的工具命令。8.根据权利要求5所述的一种直接通过宿主机获取虚拟机磁盘容量信息的方法,其特征在于:所述的相关命令可以是ls,df等查看Iinux文件系统目录空间的工具命令。9.根据权利要求6所述的一种直接通过宿主机获取虚拟机磁盘容量信息的方法,其特征在于:所述的相关命令可以是ls,df等查看Iinux文件系统目录空间的工具命令。
【专利摘要】本发明涉及云计算技术领域,特别是一种直接通过宿主机获取虚拟机磁盘容量信息的方法。本发明首先在宿主机上面加载网络块设备驱动模块;然后利用所述网络块设备驱动模块将虚拟机磁盘文件连接到NBD设备;将所述NBD设备挂载到某个自定义目录;进入所述自定义目录利用相关命令查看磁盘容量信息;查询到虚拟机磁盘容量信息后将所述NBD设备从所述自定义目录中卸载下来;最后关闭所述NBD设备与所述磁盘文件的连接。本发明提供了一种简单有效的直接通过宿主机获取虚拟机磁盘容量信息的方法;本发明无需在虚拟机里面运行软件代理,若将本发明提供的方法运用在云平台,可以有效实现对云平台虚拟机磁盘使用情况进行监控;可以用于获取虚拟机磁盘容量信息。
【IPC分类】G06F9/455
【公开号】CN105573819
【申请号】CN201510926229
【发明人】熊梦, 杨松, 季统凯
【申请人】国云科技股份有限公司
【公开日】2016年5月11日
【申请日】2015年12月11日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1