kvm php,KVM API 使用实例

用户空间的程序与KVM的交互来查询、管理KVM hypervisor或者guest,是通过使用ioctl函数与一个特殊的设备/dev/kvm的交互来实现的。 KVM API就是一些可以用于控制虚拟机各个方面的ioctl的集合。(The kvm API is a set of ioctls that are issued to control various aspects of a virtual machine.)

用户可以通过KVM API 获得KVM的版本信息、创建虚拟机、创建VCPU、查询KVM的特性支持和性能容量,等等

内核代码中关于KVM API的参考文档在: $Linux-SRC/Documentation/virtual/kvm/api.txt

另外,可以参考代码: virt/kvm/kvm_main.c, arch/x86/kvm/x86.c

下面是一个使用KVM API的示例小程序:

Python

#include

#include

#include

#include

#include

#include

#include

#include

#define KVM_FILE "/dev/kvm"

int main()

{

int dev;

int ret;

dev = open(KVM_FILE,O_RDWR|O_NDELAY);

ret = ioctl(dev,KVM_GET_API_VERSION,0);

printf("----KVM API version is--%d---\n",ret);

ret = ioctl(dev,KVM_CHECK_EXTENSION,KVM_CAP_MAX_VCPUS);

printf("----KVM supports MAX_VCPUS per guest(VM) is %d---\n",ret);

ret = ioctl(dev,KVM_CHECK_EXTENSION,KVM_CAP_IOMMU);

if(ret != 0)

printf("----KVM supports IOMMU (i.e. Intel VT-d or AMD IOMMU).----\n");

else

printf("----KVM doesn't support IOMMU (i.e. Intel VT-d or AMD IOMMU).----\n");

return 0;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

#include

#include

#include

#include

#include

#include

#include

#include

#define KVM_FILE "/dev/kvm"

intmain()

{

intdev;

intret;

dev=open(KVM_FILE,O_RDWR|O_NDELAY);

ret=ioctl(dev,KVM_GET_API_VERSION,0);

printf("----KVM API version is--%d---\n",ret);

ret=ioctl(dev,KVM_CHECK_EXTENSION,KVM_CAP_MAX_VCPUS);

printf("----KVM supports MAX_VCPUS per guest(VM) is %d---\n",ret);

ret=ioctl(dev,KVM_CHECK_EXTENSION,KVM_CAP_IOMMU);

if(ret!=0)

printf("----KVM supports IOMMU (i.e. Intel VT-d or AMD IOMMU).----\n");

else

printf("----KVM doesn't support IOMMU (i.e. Intel VT-d or AMD IOMMU).----\n");

return0;

}

运行上面的示例程序,如下所示:

Python

[root@jay-linux jay]# vim kvm-api-test.c

[root@jay-linux jay]# gcc kvm-api-test.c -o kvm-api-test

[root@jay-linux jay]# ./kvm-api-test

----KVM API version is--12---

----KVM supports MAX_VCPUS per guest(VM) is 254---

----KVM supports IOMMU (i.e. Intel VT-d or AMD IOMMU).----

1

2

3

4

5

6

[root@jay-linuxjay]# vim kvm-api-test.c

[root@jay-linuxjay]# gcc kvm-api-test.c  -o kvm-api-test

[root@jay-linuxjay]# ./kvm-api-test

----KVMAPIversionis--12---

----KVMsupportsMAX_VCPUSperguest(VM)is254---

----KVMsupportsIOMMU(i.e.IntelVT-dorAMDIOMMU).----

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值