标签: virtualization

谷歌云平台KVM支持

我刚刚在 GCP 中创建了一个服务器。我想将 Ubuntu 与 GNS3 一起使用。问题是在 GCP 中创建的计算机不支持 KVM。有没有办法在GCP中使用它?问候!!

virtualization kvm google-cloud-platform

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

容器中的Docker“权限被拒绝”

我正在尝试通过以下方式运行 docker 映像

docker run  -it -v $PWD/examples:/home/user/examples image 
Run Code Online (Sandbox Code Playgroud)

这应该使$PWD/examples主机可以在容器中访问。但是,当我ls在容器中时,它不断给我

ls: cannot access 'examples': Permission denied
Run Code Online (Sandbox Code Playgroud)

我已经尝试了类似问题的答案,z/Z选项和chcon -Rt svirt_sandbox_file_t /host/path/run --privileged,但在我的情况下它们都没有任何影响。事实上,该z选项似乎第一次有效ls,但当我ls第二次发出时,它再次被拒绝。

linux permissions virtualization containers docker

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

KVM - 无法连接到虚拟机管理程序错误

我尝试运行 kvm,但出现此错误:

$ virsh -c qemu:///system list
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied
error: failed to connect to the hypervisor
Run Code Online (Sandbox Code Playgroud)

所以我输入:

cd /var/run/libvirt/
Run Code Online (Sandbox Code Playgroud)

并通过以下方式更改特权:

sudo chmod -R +777 libvirt
Run Code Online (Sandbox Code Playgroud)

现在一切正常,但我担心安全问题,因为所有用户和组的权限不是最安全的方法吗?您可以推荐什么?

virtualization ubuntu kvm

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

内核虚拟内存空间和进程虚拟内存空间

我正在阅读教科书:Computer Systems A Programmer\xe2\x80\x99s Perspective,第9.7.2章:Linux虚拟内存系统(第三版)中讨论了虚拟内存。

\n\n

我对linux进程的虚拟内存结构有点困惑,如下所示:

\n\n

内存示意图

\n\n

我的问题是:内核虚拟内存是否为内核运行保留,而其余虚拟内存是否为用户进程保留?内核代码和数据的作用是什么?而内核虚拟内存中的物理内存又有何作用呢?

\n

memory virtualization memory-management linux-kernel

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

KVM/QEMU 和 guest OS 如何处理页面错误

例如,我有一个启用了 KVM 的主机操作系统(例如 Ubuntu)。我使用 QEMU 启动虚拟机来运行来宾操作系统(例如 CentOS)。可以说,对于主机操作系统来说,这个VM只是一个进程。因此,从主机的角度来看,它像往常一样处理页面错误(例如,根据需要分配页面框架,根据需要根据活动/非活动列表交换页面)。

这是问题和我的理解。在来宾操作系统中,由于它仍然是一个成熟的操作系统,我认为它仍然具有处理虚拟内存的所有机制。它看到QEMU 提供的一些虚拟化物理内存。我所说的虚拟化物理内存是指客户操作系统不知道它在虚拟机中,并且仍然像在真实物理机上一样工作,但它所拥有的确实是 QEMU 给出的抽象。因此,即使分配了一个页框,如果该页框不在客户页表中,客户操作系统仍然会触发页面错误,然后将某些页面映射到该框架。更糟糕的是,可能会出现双页错误,即客户机在发生页错误时首先分配一些页框,这会触发主机操作系统的页错误。

然而,我也听说过类似浅(或影子)页表的东西,它似乎可以优化这种不必要的双页错误和双页表问题。我还查看了一些其他内核实现,特别是 unikernels,例如OSvIncludeOS等。我没有找到任何与页面错误和页表机制相关的内容。我确实看到了一些类似的符号page_fault_handler,但没有我在 Linux 内核代码中看到的那么大。在这些 un​​ikernel 实现中,内存管理似乎并不是什么大问题。所以我认为 QEMU/KVM 和一些 Intel 的虚拟化技术已经处理了这个问题。

对这个主题有什么想法吗?或者,如果您对这个问题有一些好的参考文献/论文/资源,或者一些提示将会非常有帮助。

virtualization kernel kvm qemu linux-kernel

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

无法为虚拟机打开会话

我在virtual box中打开虚拟机时遇到这个问题:

    Not in a hypervisor partition (HVP=0) (VERR_NEM_NOT_AVAILABLE).
VT-x is disabled in the BIOS for all CPU modes (VERR_VMX_MSR_ALL_VMX_DISABLED).


Result Code: 
E_FAIL (0x80004005)
Component: 
ConsoleWrap
Interface: 
IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
Run Code Online (Sandbox Code Playgroud)

我搜索了一个解决方案,发现我必须从 BIOS 设置启用虚拟化,但当我检查它时,我发现它已启用。谁能为我提供解决方案?

virtualization virtualbox virtual-machine

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

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

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

任何澄清将不胜感激。

virtualization x86 virtual-machine hypervisor linux-kernel

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

Docker 在 docker run 命令上给出“没有这样的文件或目录:未知”

我能够通过docker build -t foo/bar ..
这是它的Dockerfile

FROM ubuntu:20.04

COPY benchmark.sh /home/benchmarking-programming-languages/benchmark.sh
CMD [ "/home/benchmarking-programming-languages/benchmark.sh -v" ]
Run Code Online (Sandbox Code Playgroud)

这是文件benchmark.sh

FROM ubuntu:20.04

COPY benchmark.sh /home/benchmarking-programming-languages/benchmark.sh
CMD [ "/home/benchmarking-programming-languages/benchmark.sh -v" ]
Run Code Online (Sandbox Code Playgroud)

但是,通过运行它docker run -it foo/bar会出现错误:

调用远程方法“docker-run-container”时出错:错误:(HTTP 代码 400)意外 - 无法创建垫片:OCI 运行时创建失败:container_linux.go:380:启动容器进程导致:exec:“/home/benchmarking-编程语言/benchmark.sh -v": stat /home/benchmarking-programming-languages/benchmark.sh -v: 没有这样的文件或目录: 未知

尽管如此,当通过 shell 将图像作为容器运行时docker run -it foo/bar sh,我不仅可以看到该文件,而且可以毫无错误地执行它!
有人可以提出错误发生的原因以及如何修复它吗?

bash virtualization docker dockerfile docker-compose

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

Silverlight:禁用UI虚拟化?

有没有一种简单的方法来禁用ListBox控件上的UI虚拟化?我正在尝试使用"FindName()"方法在ListBox控件中找到一个控件,但是如果控件明显偏离Web浏览器窗口,则它找不到控件.我几乎可以肯定,罪魁祸首是UI虚拟化.当控件从页面滚动时,不再通过"FindName()"成功检索它.

第二个我将它滚动回屏幕,它成功返回控件.

这是这个问题的延伸:

Silverlight:FrameworkElement.FindName()在浏览器窗口中不"可见"时找不到控件

用编码示例更新

这是我尝试检索控件的代码."DynamicTagFormFields"是ListBox控件.

textField tf = DynamicTagFormFields.FindName(s.KeyValue) as textField;
Run Code Online (Sandbox Code Playgroud)

如果我正在尝试检索的实际textField控件在屏幕上可供最终用户查看,则返回有效的"textField"对象.但是,如果我使用ListBox的垂直滚动条将textField控件滚出视图,然后再次强制进程,上述代码将返回null.

这是ListBox的XAML:

 <ListBox x:Name="DynamicTagFormFields" Margin="0" Style="{StaticResource ListBoxStyle1}" ItemContainerStyle="{StaticResource ListBoxItemStyle4}" d:LayoutOverrides="Height" Grid.Row="2" IsTabStop="False" TabNavigation="Local" ScrollViewer.HorizontalScrollBarVisibility="Disabled"/>
Run Code Online (Sandbox Code Playgroud)

使用以下代码以编程方式将textField对象动态添加到ListBox:

DynamicTagFormFields.Items.Add(textFieldControl);
Run Code Online (Sandbox Code Playgroud)

silverlight virtualization user-controls listbox

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

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

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

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

virtualization hypervisor

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