storage - KVM virsh attach-disk 不支持设备号

标签 storage virtualization virtual-machine kvm

我使用以下命令将磁盘附加到正在运行的 KVM 虚拟服务器:

virsh attach-disk vps_89 /dev/nbd31 --target vdc --driver tap

磁盘已正确连接。但是,磁盘未附加为 vdc虚拟服务器里面。我知道文档说 --target参数只是给虚拟服务器一个“提示”,但我真的不敢相信没有办法强制将磁盘附加为某个设备(至少在 Linux 上)。

我正在通过脚本控制我的虚拟服务器,我必须相信磁盘已连接到我告诉它的确切设备。

当我使用这个分离磁盘时:
virsh detach-disk vps_89 --target vdc

然后再次重新连接同一个磁盘,设备ID似乎每次都在增加,即vdc , vdd , vde , vdf等等...(完全忽略我的 --target 参数)

有没有人知道以可预测的方式将磁盘连接到 KVM 的好(可靠)方法?

最佳答案

根据 RedHat [1] 和 libvirt [2] 这不是一个错误,它是一个特性:

The actual device name specified is not guaranteed to map to the device name in the guest OS. Treat it as a device ordering hint.



唯一可用的解决方案是使用 UUID (/dev/disk/by-uuid/) 来处理虚拟机内部的磁盘。
  • https://bugzilla.redhat.com/show_bug.cgi?id=693372
  • http://libvirt.org/formatdomain.html
  • 关于storage - KVM virsh attach-disk 不支持设备号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14935953/

    相关文章:

    python - Azure Python SDK-带有 cloud-init 的 Spinup VM

    audio - 音频元数据存储

    php - 尽管文件存在,但 laravel 存储存在返回 false

    java - 共享虚拟机中 500 个小云的启动时间相同。我不明白

    security - 在不受信任的主机上保护虚拟机

    virtualbox - 无法运行虚拟机 - vbox amd-v

    macos - Vagrant 1.7 OSX 上的 SSH 身份验证失败 – 私钥未复制到虚拟机

    azure - 从 octopus 访问 blob 存储时出现 Microsoft.WindowsAzure.Storage.StorageException : Unable to connect to the remote server,

    python - 如何跟踪树遍历的进度?

    unit-testing - 在虚拟机中自动安装设置