我在 XCP-NG 中的虚拟机中运行 Freenas。我按照指南操作,并使用 PCI 直通为其专用了一个 SATA 控制器。Freenas 正确地发现了它的启动磁盘(虚拟的)和两个通过 SATA 控制器连接的物理磁盘。不幸的是,Freenas 将虚拟启动磁盘和第一个物理磁盘都识别为 ada0。
以下是我跑步时得到的geom disk list
Geom name: ada0
Providers:
1. Name: ada0
Mediasize: 8589934592 (8.0G)
Sectorsize: 512
Mode: r1w1e2
descr: (null)
ident: (null)
rotationrate: unknown
fwsectors: 0
fwheads: 0
Geom name: cd0
Providers:
1. Name: cd0
Mediasize: 0 (0B)
Sectorsize: 2048
Mode: r0w0e0
descr: QEMU QEMU DVD-ROM
ident: (null)
rotationrate: unknown
fwsectors: 0
fwheads: 0
Geom name: ada0
Providers:
1. Name: ada0
Mediasize: 4000787030016 (3.6T)
Sectorsize: 512
Stripesize: 4096
Stripeoffset: 0
Mode: r1w1e2
descr: WDC WD40EZRZ-00WN9B0
lunid: 50014ee20d58de88
ident: WD-WCC4E5SLVZV7
rotationrate: 5400
fwsectors: 63
fwheads: 16
Geom name: ada1
Providers:
1. Name: ada1
Mediasize: 4000787030016 (3.6T)
Sectorsize: 512
Stripesize: 4096
Stripeoffset: 0
Mode: r1w1e2
descr: WDC WD40EZRX-22SPEB0
lunid: 50014ee2b6e06d20
ident: WD-WCC4E4EN0Y9S
rotationrate: 5400
fwsectors: 63
fwheads: 16
如您所见,ada0 出现了两次。这对 ZFS 造成了各种破坏,如果我运行zpool import
或尝试在物理磁盘上加载现有池,它就会发生核心转储。
这是我在研究这个问题的过程中学到的一些东西。
如果我运行 Linux 而不是 Freenas,则磁盘将被检测为 xvda、sda 和 sdb。
如果我将启动磁盘的位置从 0 更改为 2,它就会变成 ada2,并且池导入可以工作,但这是不可行的,因为我计划拥有更多物理磁盘。
我无法告诉 XCP-NG 为启动盘分配一个不会与任何物理磁盘冲突的高数字,因为这样虚拟机就无法启动。看来启动盘需要位于位置 3 或更低。
在 YouTube 视频中,其他执行此操作的人使用了 SAS 控制器,并将物理磁盘标记为 da0、da1 等,从而避免了冲突。-https://www.youtube.com/watch?v=yrRLm_iHkRM
有什么方法可以强制 Freenas 以不同的方式对第二个控制器的磁盘进行编号?我可以强制它使用 da0 吗?我可以强制它从不同的偏移量开始,例如 ada1 吗?我可以诱使它为虚拟磁盘赋予不同的设备名称吗?我可以让 XCP-NG 从任意位置的磁盘启动吗?除非我购买 SAS 控制器,否则我就会陷入困境吗?