标签: hypervisor

Python libvirt API - 创建一个虚拟机

我正在尝试创建一个python脚本来处理基本的VM操作,例如:创建VM,删除VM,启动,停止等.

目前我很"坚持" create

从命令行,您将执行以下操作:

qemu-img create -f qcow2 vdisk.img <size>
virt-install --virt-type kvm --name testVM --ram 1024
 --cdrom=ubuntu.iso  --disk /path/to/virtual/drive,size=10,format=qcow2
 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
 --os-type=linux
Run Code Online (Sandbox Code Playgroud)

这将创建一个新的VM,testVM并在之前定义的上安装它vdisk.img

但我想在python中完成所有这些; 我知道如何处理第二部分:

  1. 从VM的XML模板开始
  2. 打开libvirt连接并使用连接处理程序创建VM

    但我想知道第一部分,你必须创建虚拟磁盘.

有没有libvirt API calls可以使用的?

或者,你必须在系统调用qemu-img create来创建虚拟磁盘?

python kvm libvirt hypervisor

5
推荐指数
1
解决办法
4123
查看次数

TrustZone 与虚拟机管理程序

我刚刚在TrustZone上阅读ARM 的这份文档,有些事情我不清楚。

事实上,Hypervisor提供了一种特殊的 CPU 模式,并且对于TrustZone来说,处理器附带了一个额外的第 33 位:模式不是也是一个特定的位设置吗?那么,额外的一点是如何在安全性方面产生如此大的差异的呢?我确实知道额外的位可以为两个单独的 32 位地址空间让路,但除此之外,我无法将两个和两个放在一起。有人可以清楚地解释为什么TrustZone比 Hypervisor 更安全吗?

security arm hypervisor trustzone

4
推荐指数
1
解决办法
5156
查看次数

像 KVM 这样的虚拟机管理程序是否需要在 CPUID 上进行 VM 退出?

想象一下用于 VM 检测的简单 CPU 计时检查。

static inline unsigned long long rdtsc_diff_vmexit() {
    unsigned long long ret, ret2;
    unsigned eax, edx;
    __asm__ volatile("rdtsc" : "=a" (eax), "=d" (edx));
    ret  = ((unsigned long long)eax) | (((unsigned long long)edx) << 32);
    /* vm exit forced here. it uses: eax = 0; cpuid; */
    __asm__ volatile("cpuid" : /* no output */ : "a"(0x00));
    /**/
    __asm__ volatile("rdtsc" : "=a" (eax), "=d" (edx));
    ret2  = ((unsigned long long)eax) | (((unsigned long long)edx) << 32);
    return ret2 …
Run Code Online (Sandbox Code Playgroud)

linux kvm hypervisor linux-kernel

3
推荐指数
1
解决办法
1122
查看次数

哪些网络系统调用会导致虚拟机退出到 Intel VMX 中的虚拟机管理程序?

我无法理解哪些(如果有)系统调用会导致 VM 在 Intel VMX 下退出到 VMX 根模式。我对与网络相关的系统调用(即套接字、接受、发送、接收)特别感兴趣,因为它们需要“虚拟”设备。我知道必须调用虚拟机管理程序才能实际打开套接字,但这可以并行完成吗(假设在多核处理器上)?

任何澄清将不胜感激。

virtualization x86 virtual-machine hypervisor linux-kernel

3
推荐指数
1
解决办法
1054
查看次数

Hypervisor VM有哪些好处?

我正在研究使用虚拟机来托管多个操作系统,我正在寻找有很多这些操作系统的免费解决方案.我对管理程序是什么感到困惑,为什么它们与"标准"虚拟机不同或更好.当我的意思是标准时,我将使用基准虚拟机VMWare Server 2.0.

对于具有4 GB RAM的双核系统,该系统最多可运行3个VM.哪个是最好的选择?管理程序或非管理程序,为什么?我已经阅读过维基百科的文章,但技术细节已经超出我的想象.我需要一个基本答案,了解这些不同的VM口味对我有什么影响.

我的主要问题涉及如何在多种环境中进行测试.我担心操作系统的隔离,因此我可以同时测试多个操作系统上的应用程序.还有哪种味道可以更真实地体验真机的运行方式?

我正在考虑以下事项:

(管理程序)

  • Xen的
  • Hyper-V的

(非管理程序)

  • VirtualBox的
  • VMWare Server 2.0
  • Virtual PC 2007

*我列出的VM的分类可能不正确.

virtual-machine hypervisor

2
推荐指数
2
解决办法
6138
查看次数

系统管理程序如何知道特权指令在VM内部发生?

我已经开始阅读有关VMM的文章,并想知道管理程序如何知道特权指令(例如cpuid)发生在VM而不是真正的OS中?

假设我已经执行了cpuid,就会发生陷阱并发生VMEXIT,炒作者如何知道指令发生在我的常规OS或VM内?

virtualization hypervisor

2
推荐指数
1
解决办法
3498
查看次数

内核/微内核/管理程序之间的区别/关系

我是这个话题的新手。我一直在网上寻找有关该主题的信息,现在我也更加困惑了。如果我没记错的话,他们会管理硬件并在用户空间和设备的真实物理部分之间创建连接(如果不是这样,请纠正我)。但两者之间真正的区别是什么?我如何对它们进行分类?我正在寻找的是一个明确的答案,它可以推动我正确的参考,以更好地理解和深入研究该领域。

kernel hypervisor microkernel

2
推荐指数
1
解决办法
5224
查看次数

检查 HyperV 是否正在运行的正确方法是什么?

我正在尝试编写一个 powershell 脚本来安装和设置 Hyper-V 计算机。安装似乎没问题,但是,我从系统中得到了矛盾的响应。基本上,我使用(gcim Win32_ComputerSystem).HypervisorPresent来确定 HyperV 是否正在运行。

它返回False

有一个类似的类,具有相同的成员,(gcim CIM_ComputerSystem).HypervisorPresent也返回False

还发现了这个问题How do you check to see if Hyper-V isenabled using PowerShell? 并且此状态属性已启用

我错过了什么吗?这些查询不一样吗?您能否指出其中是否有任何已被弃用?我是不是完全被骗了,启用意味着系统能够运行HyperV,但实际上它没有运行?

powershell hyper-v hypervisor

2
推荐指数
1
解决办法
1万
查看次数

如何在 x86 上通过 Linux KVM API 实例化基于 ARM 的 VM?

假设我有一台 x86 机器。通过 Linux KVM API 可以轻松创建 x86 VM。

请参阅:vm_init()kvm-host中:

if ((v->kvm_fd = open("/dev/kvm", O_RDWR)) < 0)
        return throw_err("Failed to open /dev/kvm");

    if ((v->vm_fd = ioctl(v->kvm_fd, KVM_CREATE_VM, 0)) < 0)
        return throw_err("Failed to create vm");

    if (ioctl(v->vm_fd, KVM_SET_TSS_ADDR, 0xffffd000) < 0)
        return throw_err("Failed to set TSS addr");
...
if ((v->vcpu_fd = ioctl(v->vm_fd, KVM_CREATE_VCPU, 0)) < 0)
        return throw_err("Failed to create vcpu");
Run Code Online (Sandbox Code Playgroud)

在这个项目中,很容易在 x86 机器上创建 x86 VM。

然而,我的问题是,如果我希望该虚拟机是 ARM 架构怎么办?

我相信这是适用的,因为我们有qemu-system-arm,而我试图实现的正是它所做的。

virtualization kvm qemu hypervisor linux-kernel

2
推荐指数
1
解决办法
3627
查看次数

Hyper-V Server 2012与Windows Server 2012 Standard

我想测试Hyper-V 2012(v3)中的一些新功能.

Hyper-V v3可以作为"免费"版本"Hyper-V Server 2012"下载,也可以作为Windows Server 2012 Standard或数据中心的一部分购买.但是,通常的许可证还不清楚.

一方面MS在几个(很多)网站上谈论他们的免费版本.另一方面,当你去实际的下载网站时,它会谈到一个试验.对我来说,试验有一个到期日,所以它让我很紧张.我可以使用我的Windows Standard 2012许可证作为我的Microsoft Action Pack订阅(MAPS)的一部分,但我不确定我实际上有权获得什么.

所以我的问题是:Hyper-V Server 2012的免费(试用)下载与付费的Windows Server Core 2012之间存在真正的区别,您需要使用密钥进行安装."试用"版本是否真的过期了?

hyper-v hypervisor windows-server-2012

1
推荐指数
1
解决办法
8886
查看次数

在 kvm 中实现自定义超级调用

我对虚拟化非常陌生,最近我一直在努力熟悉 VMM 的运行方式以及如何进行超级调用。

谈到我计划在安装在我的 Ubuntu 桌面上的 KVM 中实现一个新的超级调用,然后可以从来宾环境调用。通过这个超级调用,我计划只返回一个字符串,说“Hello World”。在这一点上,我对如何实现它一无所知。如果您能指导我如何实现这样的超级调用,那将非常有帮助。谢谢!

virtualization kernel kvm hypervisor ubuntu-14.04

1
推荐指数
1
解决办法
2807
查看次数

无法在 Windows 10 上使用 Hyper-V 启动 minikube

当我运行此命令时:

minikube start --vm-driver=hyperv

minikube 无法启动并显示以下错误:

Microsoft Windows 10 Enterprise 上的 minikube v1.7.2

根据用户配置使用hyperv驱动

!“hyperv”驱动程序报告了一个问题:C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online failed:

建议:以管理员身份启动 PowerShell,然后运行:'Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All'

X hyperv 似乎没有安装

所以我按照显示的消息并启动了命令:

Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online

它向我展示了以下结果:

FeatureName:Microsoft-Hyper-V-All DisplayName:Hyper-V 描述:提供用于创建和运行虚拟机及其资源的管理服务和工具。RestartRequired:可能的状态:已启用 CustomProperties:

此外,我已验证 Hyper-v 已正确安装。我安装了 minikube 1.7.2。知道如何解决这个问题吗?

谢谢你的帮助。

windows hyper-v hypervisor kubernetes minikube

1
推荐指数
1
解决办法
1585
查看次数