跳转至

ZStack 安装黑群晖无法创建存储池

错误原因

黑群晖要求硬盘为 SATA 格式,而 ZStack 默认创建的虚拟硬盘格式为 Virtio。解决方法是修改虚拟硬盘的挂载总线类型。

解决步骤

1. 在黑群晖主机上查看 UUID

进入 ZStack 管理界面,找到黑群晖对应的虚拟机实例,记录其 UUID(例如:84a3dded78c5478a835f08f2d11f8afe)。

2. 在宿主机上查看所有虚拟机

SSH 登录到 ZStack 宿主机,执行以下命令列出所有虚拟机:

bash

virsh list --all

3. 通过命令行关闭虚拟机

注意:不能在 ZStack 界面上直接关闭,必须使用命令行。

bash

virsh shutdown 84a3dded78c5478a835f08f2d11f8afe

4. 确认虚拟机关闭成功

等待片刻,检查虚拟机状态是否为 shut off

bash

virsh dominfo 84a3dded78c5478a835f08f2d11f8afe

看到 State: shut off 即表示已成功关闭。

5. 编辑虚拟机配置文件

使用 vim 编辑对应的 XML 配置文件:

bash

vim /etc/libvirt/qemu/84a3dded78c5478a835f08f2d11f8afe.xml

找到所有 <disk> 块,进行以下两处修改:

  • <target dev='vda' bus='virtio'/> 中的 virtio 改为 sata
  • 删除 <address type='pci' .../> 这一整行。

修改前示例:

xml

<disk type='file' device='disk' snapshot='external'>
  <driver name='qemu' type='qcow2' cache='none'/>
  <source file='/zstack_data/rootVolumes/.../xxx.qcow2'/>
  <target dev='vda' bus='virtio'/>
  <boot order='1'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
</disk>

修改后示例:

xml

<disk type='file' device='disk' snapshot='external'>
  <driver name='qemu' type='qcow2' cache='none'/>
  <source file='/zstack_data/rootVolumes/.../xxx.qcow2'/>
  <target dev='vda' bus='sata'/>
  <boot order='1'/>
</disk>

对所有数据盘(如 vdbvdc)也做同样修改。

6. 重新定义虚拟机使配置生效

bash

virsh define /etc/libvirt/qemu/84a3dded78c5478a835f08f2d11f8afe.xml

7. 启动虚拟机

bash

virsh start 84a3dded78c5478a835f08f2d11f8afe

8. 验证结果

返回 ZStack Web 管理界面,重新扫描或安装黑群晖,此时应能正常识别到 SATA 硬盘。


核心要点:本质是把所有虚拟硬盘的总线类型从 virtio 改为 sata,并移除可能引起冲突的 PCI 地址行。