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


12

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

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

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

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

第一个来自Server Fault,建议使用virt-manager。我没有得到这个工作,因为当我尝试选择一个现有的驱动器时,什么都没有列出。关于这个原因,我的最佳猜测是,因为我在ssh上使用了virt-manager而不是以root身份连接,这是否有所作为?

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

qm set nas4free -virtio /dev/sda

但这似乎需要proxmox,而我尚未安装并且似乎不在默认存储库中?

最后,解决以上问题后,我可以将驱动器直接安装到VM上,是否有人有经验将驱动器以scsi,ide或virtio的形式安装到VM?(我知道在链接的ServerFault页面中建议使用virtio,但由于我主要使用VMWare,所以我之前从未听说过它)。

谢谢你的帮助!!!


1
运行sudo virt-manager,无需以root用户身份连接。不知道是否virtio适用于物理设备...
ish 2012年

@izx,感谢您的回复!即使在我的台式机而不是服务器上运行virt-manager,这也会有所作为吗?
evan 2012年

Answers:


11

尽管已经回答了这个问题,但是应该使用/ dev / disk / by-id /而不是使用/ dev / sda。

    ls -l /dev/disk/by-id

这样一来,万一磁盘从/ dev / sda更改为/ dev / sdb,您就可以得到覆盖。


2
当前,这是此问题的唯一答案(曾经有过)。评论中有一些信息可能会有所帮助,但据我所知,它们是否可以解决问题还很不确定。您可以考虑扩展它以提供完整的解决方案。如果您的解决方案的某些部分是由他人设计的,则可以随时引用它们并链接到它们。我怀疑izx会介意..特别是(当我现在发表评论时)izx尚未登录该网站已有一年多了。
伊利亚·卡根

virsh attach-device domain XML-file...用来连接磁盘。您还可以在<source dev='/dev/...'/>元素中使用disk-id 吗?
MrCalvin '19

8

具有完全相同的需求,我发现了以下几点:

http://ronaldevers.nl/2012/10/14/adding-a-physical-disk-kvm-libvirt.html

(以下全部内容来自以上来源)

使用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>

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

# virsh define /etc/libvirt/qemu/jetsetetser.xml
Domain jetser defined from /etc/libvirt/qemu/jetsetetser.xml

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

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


4
virsh define...建议使用而不是。virsh edit <NAME>这使您可以在自己喜欢的文本编辑器中编辑XML,并使更改自动更新VM。
内森·奥斯曼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.