CN106095528B - 一种检测虚拟机盘符的方法 - Google Patents
一种检测虚拟机盘符的方法 Download PDFInfo
- Publication number
- CN106095528B CN106095528B CN201610402378.3A CN201610402378A CN106095528B CN 106095528 B CN106095528 B CN 106095528B CN 201610402378 A CN201610402378 A CN 201610402378A CN 106095528 B CN106095528 B CN 106095528B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- block device
- file
- drive
- host
- 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.)
- Active
Links
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及云计算技术领域,特别是一种检测虚拟机盘符的方法。所述的方法涉及宿主机和虚拟机两个模块,其中,在虚拟机上安装并启动qemu代理服务;并设置虚拟机自动激活并分配盘符给新增存储设备;在宿主机上:格式化待挂载的块设备;本地挂载块设备并往里面写入特征文件;将所述块设备挂载给虚拟机;调用命令检测挂载的块设备在虚拟机中对应盘符。采用本发明提供的方法可以实现直接在宿主机中获取块设备对应的虚拟机盘符,以便读取磁盘里面的内容进行后续如应用自动部署等操作。
Description
技术领域
本发明涉及云计算技术领域,特别是一种检测虚拟机盘符的方法。
背景技术
用户在使用虚拟机的过程中,需要扩展虚拟机的存储;一般都是通过将宿主机上面的磁盘文件或者逻辑卷等挂载给虚拟机来实现。通常给虚拟机挂载之后用户就可以登录虚拟机进行后续的分配盘符、格式化等操作。这种使用方式可以满足大部分的需求,但是存在如下的不足:
1、宿主机给虚拟机挂载磁盘文件或者逻辑卷之后,不能立刻知道其在虚拟机里面对应的是什么盘符。
2、即使宿主机在挂载的时候通过配置文件指定磁盘文件和逻辑卷在虚拟机里面的盘符,也可能会因为环境因素的影响不能正确对应上,这样就会导致磁盘盘符的不确定。
3、当用户通过挂盘的形式传递软件包从而在虚拟机里面进行应用部署时,必须要在不需要登录虚拟机的情况下就能够确定获取指定磁盘文件或者逻辑卷在虚拟机里面的盘符。
Qemu Guest Agent
Qemu Guest Agent,简称qga,是一个运行在虚拟机内部的普通应用程序(可执行文件名称默认为qemu-ga,服务名称默认为qemu-guest-agent),其目的是实现一种宿主机和虚拟机进行交互的方式,这种方式不依赖于网络,而是依赖于virtio-serial(默认首选方式)或者isa-serial,而QEMU则提供了串口设备的模拟及数据交换的通道,最终呈现出来的是一个串口设备(虚拟机内部)和一个unix socket文件(宿主机上)。
qga通过读写串口设备与宿主机上的socket通道进行交互,宿主机上可以使用普通的unix socket读写方式对socket文件进行读写,最终实现与qga的交互,交互的协议与qmp(QEMU Monitor Protocol)相同(简单来说就是使用JSON格式进行数据交换),串口设备的速率通常都较低,所以比较适合小数据量的交换。
发明内容
本发明解决的技术问题在于提供一种简单的检测虚拟机盘符的方法,以便当用户在跟虚拟机挂载磁盘文件或者逻辑卷等跟虚拟机增加磁盘的时候,能够快速的在宿主机上面就知道其在虚拟机对应的磁盘盘符,方便后续从宿主机上直接操作磁盘上面的文件进行自动化相关功能实现。
本发明解决上述技术问题的技术方案是,
所述的方法涉及宿主机和虚拟机两个模块,其中,在虚拟机上安装并启动qemu代理服务;并设置虚拟机自动激活并分配盘符给新增存储设备;在宿主机上:
格式化待挂载的块设备;
本地挂载块设备并往里面写入特征文件;
将所述块设备挂载给虚拟机;
调用命令检测挂载的块设备在虚拟机中对应盘符。
所述的虚拟机是指云平台上所有的Linux类型虚拟机和Windows类型虚拟机;
所述的qemu代理是指Qemu Guest Agent,是一个运行在虚拟机内部的普通应用程序,其目的是实现一种宿主机和虚拟机进行交互的方式,这种方式不依赖于网络;
所述的块设备可以是宿主机上面一个指定格式的磁盘文件,或是一个逻辑卷,也可以是一个分布式存储的块设备,如ceph rbd卷。
所述的格式化是指向块设备里面注入文件系统;所述的文件系统需要被windows和linux所识别,例如NTFS、FAT等。
所述的特征文件是一个普通文件,其存在目的是为了方便后面调用命令通过查找该文件来判断设备对应的盘符;特征文件的格式和内容由用户自定义。
所述的命令是指virsh qemu-agent-command相关命令,该命令会与虚拟机里面的qemu guest agent服务程序进行通信。
所述的配置虚拟机自动分配盘符在linux虚拟机中无需额外配置,在windows虚拟机中执行mountvol命令即可。
本发明方案的有益效果如下:
1、提供一种方法实现在宿主机直接获取挂载给虚拟机的块设备对应的磁盘盘符。
2、本发明方法具有通用性,能够同时满足windows虚拟机和Linux虚拟机。
3、本发明可以为虚拟机的自动化配置、自动化应用部署等提供技术支持。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明的流程图。
具体实施方式
请参见图1,为本发明实施例提供的一种检测虚拟机盘符的方法的流程示意图。虚拟机配置方面,我们可以通过修改虚拟机的镜像进行,主要有下载安装qemu guest agent代理程序,并将qemu-guest-agent服务配置为开机启动;然后启动cmd.exe执行mountvol/e,保证虚拟机里面能够自动给新发现的硬件分配盘符。
宿主机里面我们以挂载ceph rbd卷作为块设备挂载该虚拟机为例进行描述,其他形式的块设备存储类似。
首先我们需要在云平台的物理节点上搭建一个ceph集群,通常情况下由于云平台的存储资源需要,ceph集群都处于正常运行状态。利用如下命令创建一个ceph rbd卷并映射到本地:
rbd create volumes/software_base-size 100000
rbd map volumes/software_base
如上我们在ceph的volumes池中创建了一个100GB的卷software_base,并利用map命令将其映射到本地。映射过程会返回一个映射的物理设备路径,如/dev/rbd12,并在/dev/rbd/volumes/目录下生成一个软链接文件software_base。然后对该物理设备进行格式化,格式化后的文件系统要保证被linux和windows虚拟机所识别。这里我们采用了最常用的NTFS文件格式,格式化命令如下:
mkfs.ntfs-f/dev/rbd12
特别注意的是这个格式化的命令只需要执行一次,后面如果再次执行则会损坏里面已有的虚拟机文件。
将格式化后的rbd卷以读写形式挂载到服务节点并向其写入特征文件,挂载实现如下:
mkdir/software_base_rbd
mount-t ntfs-3g/dev/rbd12/software_base_rbd
touch/software_base_rbd/look_for_disk_in_linux_vm.sh
touch/software_base_rbd/look_for_disk_in_windows_vm.bat
umount/software_base_rbd
如上我们想块设备写入了特征文件look_for_disk_in_linux_vm.sh和look_for_disk_in_windows_vm.bat分别用于对windows虚拟机和linux虚拟机的检测。
利用如下xml文件将块设备挂载给虚拟机:
挂载命令:
virsh attach-device i-xxxxxxxx rbd-file.xml
通过上述命令我们将宿主机上面的块设备挂载给了虚拟机,并且前面对虚拟机的配置保证了虚拟机自动给新增加的块设备分配了盘符。下面我们将在宿主机上面通过轮询探测性的去执行virsh qemu-agent-command命令去检测块设备对应的磁盘盘符。
例如Windows虚拟机我们执行如下命令:
virsh qemu-agent-command i-xxxxxxxx′{″execute″:″guest-exec″,″arguments″:{″path″:″E:\\look_for_disk_in_vm.bat″}}′
执行上述命令后会有返回,如果成功返回则表示探测成功,即块设备对应的盘符为E盘,如果失败,则继续执行:
virsh qemu-agent-command i-xxxxxxxx′{″execute″:″guest-exec″,″arguments″:{″path″:″F:\\look_for_disk_in_vm.bat″}}′
上述命令用以探测块设备对应的磁盘是否是F盘。重复执行命令即可检测出挂载块设备对应的虚拟机磁盘盘符。
Claims (5)
1.一种检测虚拟机盘符的方法,其特征在于,所述的方法涉及宿主机和虚拟机两个模块,其中,在虚拟机上安装并启动qemu代理服务;并设置虚拟机自动激活并分配盘符给新增存储设备;在宿主机上:
格式化待挂载的块设备;
本地挂载块设备并往里面写入特征文件;
将所述块设备挂载给虚拟机;
调用命令检测挂载的块设备在虚拟机中对应盘符;
所述的特征文件是一个普通文件,其存在目的是为了方便后面调用命令通过查找该文件来判断设备对应的盘符;特征文件的格式和内容由用户自定义;
所述的命令是指virsh qemu-agent-command相关命令,该命令会与虚拟机里面的qemuguest agent服务程序进行通信。
2.根据权利要求1所述的方法,其特征在于:所述的虚拟机是指云平台上所有的Linux类型虚拟机和Windows类型虚拟机;
所述的qemu代理是指Qemu Guest Agent,是一个运行在虚拟机内部的普通应用程序,其目的是实现一种宿主机和虚拟机进行交互的方式,这种方式不依赖于网络;
所述的块设备可以是宿主机上面一个指定格式的磁盘文件,或是一个逻辑卷,也可以是一个分布式存储的块设备,包括ceph rbd卷。
3.根据权利要求1所述的方法,其特征在于,所述的格式化是指向块设备里面注入文件系统;所述的文件系统需要被windows和linux所识别,包括NTFS、FAT。
4.根据权利要求2所述的方法,其特征在于,所述的格式化是指向块设备里面注入文件系统;所述的文件系统需要被windows和linux所识别,包括NTFS、FAT。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述的设置虚拟机自动分配盘符在linux虚拟机中无需额外配置,在windows虚拟机中执行mountvol命令即可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610402378.3A CN106095528B (zh) | 2016-06-07 | 2016-06-07 | 一种检测虚拟机盘符的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610402378.3A CN106095528B (zh) | 2016-06-07 | 2016-06-07 | 一种检测虚拟机盘符的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106095528A CN106095528A (zh) | 2016-11-09 |
CN106095528B true CN106095528B (zh) | 2019-06-21 |
Family
ID=57228294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610402378.3A Active CN106095528B (zh) | 2016-06-07 | 2016-06-07 | 一种检测虚拟机盘符的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106095528B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453616A (zh) * | 2016-11-15 | 2017-02-22 | 国云科技股份有限公司 | 一种基于文件的虚拟机与宿主机通信方法 |
CN106789407A (zh) * | 2016-12-05 | 2017-05-31 | 国云科技股份有限公司 | 一种云平台检查虚拟机连接状态的方法 |
CN108319524A (zh) | 2018-02-02 | 2018-07-24 | 郑州云海信息技术有限公司 | 一种基板管理控制器通过kvm挂载文件夹的方法及装置 |
CN109033328B (zh) * | 2018-07-19 | 2022-08-02 | 郑州云海信息技术有限公司 | 一种访问请求处理方法、装置、设备及可读存储介质 |
CN110221902B (zh) * | 2019-06-12 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 一种基于虚拟机的数据传输方法及相关装置 |
CN112446027B (zh) * | 2019-08-27 | 2023-04-14 | 中移(苏州)软件技术有限公司 | 一种配置核查方法、装置、电子设备和计算机存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4313845B2 (ja) * | 2004-09-27 | 2009-08-12 | 修平 西山 | マルチインスタンス・インメモリ・データベース |
CN101944043A (zh) * | 2010-09-27 | 2011-01-12 | 公安部第三研究所 | Windows平台下Linux虚拟机磁盘文件访问方法 |
CN103823730A (zh) * | 2014-02-27 | 2014-05-28 | 山东超越数控电子有限公司 | 一种基于国产磁盘阵列的盘符检测方法 |
CN105376329A (zh) * | 2015-12-09 | 2016-03-02 | 国云科技股份有限公司 | 一种远程在线备份虚拟机的方法 |
CN105573819A (zh) * | 2015-12-11 | 2016-05-11 | 国云科技股份有限公司 | 一种直接通过宿主机获取虚拟机磁盘容量信息的方法 |
-
2016
- 2016-06-07 CN CN201610402378.3A patent/CN106095528B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106095528A (zh) | 2016-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106095528B (zh) | 一种检测虚拟机盘符的方法 | |
US10862982B2 (en) | Cloud-scale heterogeneous datacenter management infrastructure | |
US9921939B2 (en) | Creating a software performance testing environment on a virtual machine system | |
US11550819B2 (en) | Synchronization cache seeding | |
CN106201566B (zh) | 利博伟特软件热升级方法及设备 | |
WO2017066944A1 (zh) | 一种存储设备访问方法、装置和系统 | |
CN102968331B (zh) | 一种虚拟机管理系统及其文件访问方法 | |
US10303458B2 (en) | Multi-platform installer | |
US9940224B2 (en) | Automatic remote execution of an application | |
WO2012131507A1 (en) | Running a plurality of instances of an application | |
CN103440111B (zh) | 虚拟机磁盘空间的扩展方法、宿主机和平台 | |
CN103412822A (zh) | 操作非易失性内存和数据操作的方法和相关装置 | |
US10140166B2 (en) | Message oriented middleware with integrated rules engine | |
CN103207805A (zh) | 基于虚拟化的硬盘复用系统 | |
US10606625B1 (en) | Hot growing a cloud hosted block device | |
CN202030403U (zh) | 电梯快速调试装置 | |
CN105607869B (zh) | 一种快速格式化与使用虚拟机磁盘的方法 | |
US20150026683A1 (en) | Data control system for virtual environment | |
CN114372256A (zh) | 应用程序运行方法、装置、设备和存储介质 | |
CN109240798A (zh) | 管理虚拟机的外接设备的方法和装置 | |
CN110515540B (zh) | 一种拓扑硬盘的方法及装置 | |
US11263082B2 (en) | Data recovery of guest virtual machines | |
CN106886477A (zh) | 一种云系统中监控阈值设定方法及装置 | |
CN102241348A (zh) | 电梯快速调试装置 | |
CN110362324A (zh) | 一种网卡升级方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 523808 19th Floor, Cloud Computing Center, Chinese Academy of Sciences, No. 1 Kehui Road, Songshan Lake Hi-tech Industrial Development Zone, Dongguan City, Guangdong Province Applicant after: G-Cloud Technology Co., Ltd. Address before: 523808 No. 14 Building, Songke Garden, Songshan Lake Science and Technology Industrial Park, Dongguan City, Guangdong Province Applicant before: G-Cloud Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |