我如何阻止 Freenas 为来自不同 SATA 控制器的两个磁盘分配相同的设备号?

我如何阻止 Freenas 为来自不同 SATA 控制器的两个磁盘分配相同的设备号?

我在 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或尝试在物理磁盘上加载现有池,它就会发生核心转储。

这是我在研究这个问题的过程中学到的一些东西。

  1. 如果我运行 Linux 而不是 Freenas,则磁盘将被检测为 xvda、sda 和 sdb。

  2. 如果我将启动磁盘的位置从 0 更改为 2,它就会变成 ada2,并且池导入可以工作,但这是不可行的,因为我计划拥有更多物理磁盘。

  3. 我无法告诉 XCP-NG 为启动盘分配一个不会与任何物理磁盘冲突的高数字,因为这样虚拟机就无法启动。看来启动盘需要位于位置 3 或更低。

  4. 在 YouTube 视频中,其他执行此操作的人使用了 SAS 控制器,并将物理磁盘标记为 da0、da1 等,从而避免了冲突。-https://www.youtube.com/watch?v=yrRLm_iHkRM

有什么方法可以强制 Freenas 以不同的方式对第二个控制器的磁盘进行编号?我可以强制它使用 da0 吗?我可以强制它从不同的偏移量开始,例如 ada1 吗?我可以诱使它为虚拟磁盘赋予不同的设备名称吗?我可以让 XCP-NG 从任意位置的磁盘启动吗?除非我购买 SAS 控制器,否则我就会陷入困境吗?

相关内容