将物理磁盘添加到 KVM 虚拟机

eva*_*van 13 kvm virtualization

我正在 Ubuntu Server 12.04 系统上设置文件服务器 (nas4free) 作为 KVM 虚拟机。

如何将物理硬盘驱动器直接添加到 VM,以便来宾 (nas4free) 可以使用它们,但主机不能使用它们?

具体来说,我要挂载的硬盘驱动器是 /dev/sda (当前未安装在服务器上。)

到目前为止,我已经找到了两种解决方案,但都没有奏效。

第一个来自Server Fault,建议使用 virt-manager。我没有得到这个工作,因为当我尝试选择一个现有的驱动器时,没有列出任何内容。关于为什么会这样,我最好的猜测是因为我在 ssh 上使用 virt-manager 而不是以 root 身份连接,这应该有所不同吗?

我在这里找到的第二个解决方案是运行命令(为我的系统修改)

qm set nas4free -virtio /dev/sda
Run Code Online (Sandbox Code Playgroud)

但这似乎需要 proxmox,我没有安装它并且似乎不在默认存储库中?

最后,搞清楚了上面的问题,我就可以把驱动直接挂载到虚拟机了,请问有没有人有过把驱动挂载到虚拟机上的经验是scsi、ide还是virtio?(我知道在链接的 ServerFault 页面中推荐了 virtio,但我之前没有听说过它,因为我主要使用 VMWare)。

谢谢你的帮助!!!

小智 12

虽然这已经得到了回答,而不是使用 /dev/sda 你应该使用 /dev/disk/by-id/ 你从哪里得到

    ls -l /dev/disk/by-id
Run Code Online (Sandbox Code Playgroud)

这样,您就可以在磁盘从 /dev/sda 更改为 /dev/sdb 的情况下得到保障。

  • 目前,这是有关此问题的唯一答案(曾经发布过)。评论中有一些信息可能会有所帮助,但据我所知,他们还不确定他们会解决问题。您可以考虑扩展它以提供完整的解决方案。如果您的解决方案的某些部分是由其他人设计的,您可以随时引用它们并链接到它们。我怀疑 [izx](http://askubuntu.com/questions/144894/add-physical-disk-to-kvm-virtual-machine/159323#comment174227_144894) 会介意..尤其是(当我现在评论时)izx一年多没有登录该网站。 (2认同)

小智 11

有完全相同的需求,我发现了以下内容

(以下全文来自上述来源)

它不能用 virt-manager 来完成。那个我花了一段时间才弄明白。据我所知,virt-manager 适用于存储池。您可以将磁盘制成存储池,但不能将现有磁盘直接添加到 VM。

幸运的是,修复很简单:您手动将磁盘添加到域的 xml 配置文件中。因此,在您喜欢的编辑器中打开 /etc/libvirt/qemu/.xml 并在该部分添加一个部分:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw'/>
  <source dev='/dev/md/storage'/>
  <target dev='vdb' bus='virtio'/>
</disk>
Run Code Online (Sandbox Code Playgroud)

这将使主机的 /dev/md/storage 作为 /dev/vdb 在来宾中可用。手动更改域的配置后,您必须手动重新加载配置。登录到您的主机并发出以下命令:

# virsh define /etc/libvirt/qemu/jetsetetser.xml
Domain jetser defined from /etc/libvirt/qemu/jetsetetser.xml
Run Code Online (Sandbox Code Playgroud)

这是一个很好的资源,其中包含有关使用 libvirt 管理虚拟机的更多信息:https : //help.ubuntu.com/community/KVM/Managing

我强烈建议您遵循 smccloud 给出的建议。这对我来说就像一种魅力。请注意不要在来宾中使用的物理驱动器中安装任何卷,否则您将严重损坏其文件系统!

  • 建议使用 `virsh edit &lt;NAME&gt;` 而不是 `virsh define...`,这允许你在你喜欢的文本编辑器中编辑 XML,并让更改自动更新 VM。 (4认同)