一种计算虚拟磁盘io速度的方法

文档序号:6638149阅读:1453来源:国知局
一种计算虚拟磁盘io速度的方法
【专利摘要】本发明涉及云计算【技术领域】,特别是一种计算虚拟磁盘IO速度的方法。本发明首先在宿主机中获取虚拟磁盘的镜像设备号;其次遍历宿主机操作系统中的块设备目录,查看所有块设备的设备号,找到与虚拟磁盘的镜像设备号相同的块设备;接着获取当时该块设备读扇区累计次数数据项r1和写扇区累计次数数据项w1;然后相隔1秒钟,再次获取当时该块设备读扇区累计次数数据项r2和写扇区累计次数数据项w2;最后根据扇区大小512字节计算虚拟磁盘读速度(r2–r1)*512/1024、写速度(w2–w1)*512/1024。本发明解决了使用物理磁盘IO监控软件监控虚拟机磁盘IO读写速度对虚拟机性能造成的损耗等问题;可以用于云计算环境中虚拟磁盘IO速度计算。
【专利说明】-种计算虚拟磁盘10速度的方法

【技术领域】
[0001] 本发明涉及云计算【技术领域】,特别是一种计算虚拟磁盘10速度的方法。

【背景技术】
[0002] 在云计算环境中,宿主机中物理磁盘的速度只代表所有虚拟磁盘10的综合表现, 无法体现个单独虚拟机的磁盘监控状况,在物理磁盘10负载过高而导致所有虚拟机磁盘 10性能下降的情况下,不能采用暂停物理磁盘10读写等影响业务连续性的方式进行处理。 因此,需要对单独虚拟机的磁盘10速度进行计算。目前没有专口针对虚拟磁盘10速度监 控的软件,通常也是使用物理磁盘10监控的软件来实现。主要实现方法如下:
[0003] 1、在虚拟机中安装iostat等10测量软件,得到磁盘的瞬时读写速度;
[0004] 2、在虚拟机中安装监听程序,定时获取读写速度的值,并通过网络、虚拟串口等方 式发送到外部;
[0005] 3、在虚拟机外部运行一个服务程序,收集各虚拟机中监听程序发送的数据。
[0006] 计算虚拟磁盘10速度的该种实现方式会带来如下的问题:
[0007] -是通用性不强,而且会对虚拟机的性能造成损耗。需要在虚拟机中安装额外的 监控软件,虚拟机不同的操作系统需要适配不同的监控软件,监控软件的运行会对虚拟机 的性能造成一定的损耗。
[0008] 二是获取虚拟磁盘10速度数据的实时性不强。数据需要通过网络、虚拟串口等进 行传递,同时需要通过监听程序的轮询进行收集,使得获取的虚拟磁盘10速度数据有一定 的滞后。
[0009] H是占用宿主机资源,通过在虚拟机外部运行服务程序物理磁盘10监控的软件 来实现,必定会占用宿主机计算资源、存储资源,影响宿主机资源对虚拟机最优供给。
[0010] 为了避免因监控方式不通用,监控虚拟磁盘10速度对虚拟机自身性能的损耗,磁 盘10速度数据实时性低,宿主机资源耗损等问题,需要一种高实时性低损耗通用的虚拟磁 盘10速度计算方法。


【发明内容】

[0011] 本发明解决的技术问题在于提供一种高实时性低损耗通用的计算虚拟磁盘10速 度的方法;解决通常使用物理磁盘10监控软件监控虚拟磁盘10速度的局限性;对虚拟机 性能造成的损耗;获取虚拟磁盘10速度数据实时性不强;通过外部监控程序监控虚拟磁盘 10速度耗费的宿主机资源等复杂问题。
[0012] 本发明解决上述技术问题的技术方案是:
[0013] 所述的方法包括如下步骤:
[0014] 步骤1 ;在宿主机中获取虚拟磁盘的镜像设备号;
[0015] 步骤2;遍历宿主机操作系统中的块设备目录,查看所有块设备的设备号,找到与 虚拟磁盘的镜像设备号相同的块设备;
[0016] 步骤3 ;读取找到块设备目录中的统计数据文件,从中获取当时该块设备读扇区 累计次数数据项rl和写扇区累计次数数据项wl ;
[0017] 步骤4 ;相隔1砂钟,再次读取块设备目录中的统计数据文件,获取当时该块设备 读扇区累计次数数据项r2和写扇区累计次数数据项w2 ;
[0018] 步骤5 ;根据获取到的数据,依据扇区大小512字节计算此虚拟磁盘的读速度为 (r2-rl)巧 12/1024,写速度为(w2-wl)巧 12/1024。
[0019] 所述块设备目录是指宿主机专口存放块设备文件的目录,每个块设备占用一个子 目录,子目录下有文件保存设备的唯一设备号;
[0020] 所述块设备目录中的统计数据文件指的是操作系统记录的从操作系统启动开始 到当前该设备累计的统计信息,包括读写次数,读写时间等;
[0021] 所述该块设备读扇区累计次数和写扇区累计次数数据项指的是统计数据文件中 的一个数据项。
[0022] 本发明为虚拟磁盘10速度的计算带来有益的效果,一是此过程完全自动化,无需 人工干预;二是本发明的方法是一种通用的方法,不需要在虚拟机操作系统上安装任何监 控软件,不会对虚拟机的性能造成任何损耗;H是本发明的方法是一种实时的方法,由于所 有计算都是在虚拟机外部完成,不需要进行数据转换和传输,所有结果都没有延迟;本发明 方法通过读取宿主机上块设备目录中的统计数据文件,获取块设备读扇区累计次数数据项 和写扇区累计次数数据项,不占用宿主机计算资源。本发明提供的虚拟磁盘10速度计算方 法,适用于云计算环境中虚拟磁盘10速度计算,它提供了比较全面简单有效的计算方式, 能够自动适应主流云操作系统。

【专利附图】

【附图说明】
[0023] 下面结合附图对本发明进一步说明:
[0024] 图1为本发明方法流程图。

【具体实施方式】
[00巧]如图1所示,首先通过在宿主机上找到对应虚拟磁盘的镜像设备号,输入命令 xenstore-ls例如,有如下输出,虚拟机镜像设备号为"fd ;0"
[0026] tapdisk-params = " tapdisk :vhd :/home/snapl "
[0027] physical-device =" fd ;0"
[0028] 其次遍历宿主机操作系统中的块设备目录,查看所有块设备的设备号,找到与虚 拟磁盘的镜像设备号相同的块设备,查看/sys/block/下的设备号,比如tda的是253 ;0跟 fd ;0相等所W虚拟机镜像在宿主机上的设备为tda,主要代码如下:
[0029] #cat/sys/block/tda/dev
[0030] 253 :0
[0031] 然后通过执行脚本,读取块设备目录中的统计数据文件,从中获取当时该块设 备读扇区累计次数数据项和写扇区累计次数数据项,程序睡眠Is后,W同样的方式获 取读扇区累计次数数据项,写扇区累计次数数据项,通过公式int(listl[3])*512/1024 -int(list[3])*512/1024 计算虚拟磁盘 10 读速度,int(listl[7])*512/1024-int(li St [7]) *512/1024计算虚拟磁盘10写速度,代码如下:
[0032] ./monitor_io. P厂d tda 输出读写如下:
[0033] the write OkB/s
[0034] the read 0邸/s
[0035] 示例脚本代码如下:
[0036] #!/usr/bin/env python import sys import g目topt import comm过nds import time import re
[0037]

【权利要求】
1. 一种计算虚拟磁盘10速度的方法,其特征在于: 所述的方法包括如下步骤: 步骤1:在宿主机中获取虚拟磁盘的镜像设备号; 步骤2 :遍历宿主机操作系统中的块设备目录,查看所有块设备的设备号,找到与虚拟 磁盘的镜像设备号相同的块设备: 步骤3 :读取找到块设备目录中的统计数据文件,从中获取当时该块设备读扇区累计 次数据项rl和写扇区累计次数数据项wl ; 步骤4 :相隔1秒钟,再次读取块设备目录中的统计数据文件,获取当时该块设备读扇 区累计次数数据项r2和写扇区累计次数数据项《2 ; 步骤5 :根据获取到的数据,依据扇区大小512字节计算此虚拟磁盘的读速度为 (r2-rl) *512/1024,写速度为(w2-wl) *512/1024。
2. 根据权利1要求所述的计算虚拟磁盘10速度的方法,其特征在于:所述块设备目录 是指宿主机专门存放块设备文件的目录,每个块设备占用一个子目录,子目录下有文件保 存设备的唯一设备号; 所述块设备目录中的统计数据文件指的是操作系统记录的从操作系统启动开始到当 前该设备累计的统计信息,包括读写次数,读写时间等; 所述该块设备读扇区累计次数和写扇区累计次数数据项指的是统计数据文件中的一 个数据项。
【文档编号】G06F9/455GK104503821SQ201410758099
【公开日】2015年4月8日 申请日期:2014年12月11日 优先权日:2014年12月11日
【发明者】张雪梅, 杨松, 莫展鹏, 季统凯 申请人:国云科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1