ベストプラクティスを使用してubuntu 20.04サーバーにミラー化されたzfsプールを設定しようとしています。
私のハードウェアは、外部USB-CエンクロージャGEN2 SSDエンクロージャの2x 1TB nvmeです。
私の問題は、両方のディスクが同じディスクIDを持っているようです!そのため、sda、sdbを使用してプールを作成できますが、再起動すると不安定になり、プールがなくなります。この状況を示すために、デバイス属性をファイルにダンプし、FIFFを作成しました。
以下に示すように、ディスクIDは正確に一致しますが、ディスクパスは異なります。
解決策も歓迎されます。
sudo udevadm info --name=/dev/sda --query=property > sda
sudo udevadm info --name=/dev/sdb --query=property > sdb
diff sda sdb
1,2c1,2
< DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0/host1/target1:0:0/1:0:0:0/block/sda
< DEVNAME=/dev/sda
---
> DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0/host1/target1:0:0/1:0:0:1/block/sdb
> DEVNAME=/dev/sdb
5c5
< MINOR=0
---
> MINOR=16
7c7
< USEC_INITIALIZED=1630003
---
> USEC_INITIALIZED=1626316
31,33c31,33
< ID_PATH=pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:**0**
< ID_PATH_TAG=pci-0000_00_14_0-usb-0_1_1_0-scsi-0_0_0_0
< ID_PART_TABLE_UUID=2decf1ce-947b-9548-bef4-0e315c078f4f
---
> ID_PATH=pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:**1**
> ID_PATH_TAG=pci-0000_00_14_0-usb-0_1_1_0-scsi-0_0_0_1
> ID_PART_TABLE_UUID=ace78582-634a-b340-8ac5-3db5984afc5f
35c35
< DEVLINKS=/dev/disk/by-id/scsi-35000000000000001 /dev/disk/by-id/scsi-SASMT_ASM1352R-PM_3000CCCCBBBBAAAA /dev/disk/by-path/pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0 /dev/disk/by-id/wwn-0x5000000000000001
---
> DEVLINKS=/dev/disk/by-id/wwn-0x5000000000000001 /dev/disk/by-id/scsi-SASMT_ASM1352R-PM_3000CCCCBBBBAAAA /dev/disk/by-id/scsi-35000000000000001 /dev/disk/by-path/pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:1
答え1
これを行う最良の方法は次のとおりです。
- ドライブメーカーとシリアル番号の確認
- 各ドライブにGPTパーティションテーブル(または「スキーム」)を作成します。
- 各ドライブにZFSデータパーティションを作成し、ドライブの製造元(省略可能)とシリアル番号を反映するようにパーティション名を指定します。
WD-WMC1S5694795
たとえば、2つのウェスタンデジタルドライブ(シリアル番号と)のミラーを作成する場合は、WD-WMC1S5688675
各ドライブに同じサイズのGPTパーティションを作成し、パーティションにdata-WD-WMC1S5694795
それぞれラベルを付けますdata-WD-WMC1S5688675
。ラベルを正しく貼り付けてください。それ以外の場合は、かかる時間が無駄になります。幸いなことに、これらのシリアル番号にはリーダーがすでに含まれているため、WD-
メーカーはすでにエンコードされています。ラベルに短い製造元を含めることは、異なる製造元の同じシリアル番号を持つ2つのドライブがある可能性がある状況を防ぐためです。これが起こる可能性はほとんどありませんので、独自の判断でパーティションラベルに製造元をエンコードしてください。
これにより、プールの構築に使用できる/dev
アイテムが提供されます。/dev/disk/by-partlabel/
# zpool create tank mirror /dev/disk/by-partlabel/data-WD-WMC1S5694795 \
/dev/disk/by-partlabel/data-WD-WMC1S5688675
# zpool status tank
pool: tank
state: ONLINE
scan: scrub repaired 0B in 23h36m with 0 errors on Wed Dec 1 16:00:38 2021
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
data-WD-WMC1S5694795 ONLINE 0 0 0
data-WD-WMC1S5688675 ONLINE 0 0 0
errors: No known data errors
ドライブの1つに障害が発生すると、人が読めるシリアル番号がドライブの外側に表示されるため、交換する必要があるドライブを正確に知ることができます。