重新啟動到新作業系統時,使用 ashift=9 從 liveCD 創建 ZFS 池變為 ashift=12
我在 Linux Mint liveCD 上啟動時創建了一個 zpool(所有 ZFS 包 temp apt-installed),並創建了一個帶有命令行的 zpool,
ashift=9
因為我的 ST4000NM0033 驅動器(每個 8 個)有 512B 扇區。在 LiveCD 中還在池上創建了一些 ZFS 文件系統在仍然執行 liveCD 的同時,我能夠通過執行來驗證池是否使用 ashift=9
zdb -e -C pool0 | grep ashift
。我不得不使用這些-e -C pool0
選項,因為沒有它們我會cannot open /etc/zfs/zpool.cache
出錯但是一旦我安裝並重新啟動到真正的作業系統,即 root 上的 ZFS,然後重新執行
zdb | grep ashift
它報告ashift=12
我也在 vdevs 下使用 LUKS。每個都有一個分離的標頭檔和密鑰文件,我從帶有 grub/efi/boot 的 USB 密鑰啟動系統。
zpool 是一個 2x 剝離的 4 驅動器 RAIDZ1 排列。
zpool 詳細資訊:
這是
zdb
執行系統的結果version: 5000 name: 'pool0' state: 0 txg: 331399 pool_guid: 4878817387727202324 errata: 0 hostname: 'shop' com.delphix:has_per_vdev_zaps vdev_children: 1 vdev_tree: type: 'root' id: 0 guid: 4878817387727202324 children[0]: type: 'raidz' id: 0 guid: 4453362395566037229 nparity: 1 metaslab_array: 138 metaslab_shift: 36 ashift: 12 asize: 7996794994688 is_log: 0 create_txg: 4 com.delphix:vdev_zap_top: 129 children[0]: type: 'disk' id: 0 guid: 17425041855122083436 path: '/dev/mapper/luks_root_sda' whole_disk: 0 DTL: 179 create_txg: 4 com.delphix:vdev_zap_leaf: 130 children[1]: type: 'disk' id: 1 guid: 14306620094487281535 path: '/dev/mapper/luks_root_sdb' whole_disk: 0 DTL: 178 create_txg: 4 com.delphix:vdev_zap_leaf: 131 children[2]: type: 'disk' id: 2 guid: 16566898459604505385 path: '/dev/mapper/luks_root_sdc' whole_disk: 0 DTL: 177 create_txg: 4 com.delphix:vdev_zap_leaf: 132 children[3]: type: 'disk' id: 3 guid: 542095292802891028 path: '/dev/mapper/luks_root_sdd' whole_disk: 0 DTL: 176 create_txg: 4 com.delphix:vdev_zap_leaf: 133 children[4]: type: 'disk' id: 4 guid: 14142266371747430354 path: '/dev/mapper/luks_root_sde' whole_disk: 0 DTL: 175 create_txg: 4 com.delphix:vdev_zap_leaf: 134 children[5]: type: 'disk' id: 5 guid: 9998698084287190219 path: '/dev/mapper/luks_root_sdf' whole_disk: 0 DTL: 174 create_txg: 4 com.delphix:vdev_zap_leaf: 135 children[6]: type: 'disk' id: 6 guid: 9268711926727287907 path: '/dev/mapper/luks_root_sdg' whole_disk: 0 DTL: 173 create_txg: 4 com.delphix:vdev_zap_leaf: 136 children[7]: type: 'disk' id: 7 guid: 16360862201213710466 path: '/dev/mapper/luks_root_sdh' whole_disk: 0 DTL: 172 create_txg: 4 com.delphix:vdev_zap_leaf: 137 features_for_read: com.delphix:hole_birth com.delphix:embedded_data
更新:似乎
ashift
直接在設備上檢查值顯示預期ashift=9
值。不知道為什麼上層值不同zdb -l /dev/mapper/luks_root_sda
標籤 0
version: 5000 name: 'pool0' state: 0 txg: 2223 pool_guid: 13689528332972152746 errata: 0 hostname: 'shop' top_guid: 8586701185874218688 guid: 11289841240384277392 vdev_children: 2 vdev_tree: type: 'raidz' id: 0 guid: 8586701185874218688 nparity: 1 metaslab_array: 142 metaslab_shift: 37 ashift: 9 asize: 15901962272768 is_log: 0 create_txg: 4 children[0]: type: 'disk' id: 0 guid: 11289841240384277392 path: '/dev/mapper/luks_root_sda' whole_disk: 0 create_txg: 4 children[1]: type: 'disk' id: 1 guid: 7916996642850715828 path: '/dev/mapper/luks_root_sdb' whole_disk: 0 create_txg: 4 children[2]: type: 'disk' id: 2 guid: 5366943858334839242 path: '/dev/mapper/luks_root_sdc' whole_disk: 0 create_txg: 4 children[3]: type: 'disk' id: 3 guid: 3110382675821028014 path: '/dev/mapper/luks_root_sdd' whole_disk: 0 create_txg: 4 features_for_read: com.delphix:hole_birth com.delphix:embedded_data labels = 0 1 2 3
這個問題是由當我用新的 8x4TB 陣列替換 8x1TB 設置並將原始根目錄
/etc/zfs/zpool.cache
複製回原位時復製到位的陳舊問題引起的。/
似乎 ZFS 沒有更新
zpool.cache
並zdb -l
從該文件讀取,而zdb -l /dev/DEVICE | grep ashift
直接從 zdev 讀取並顯示了預期的 ashift=9 值。為了糾正整個問題,我刪除
zpool.cache
並執行zpool set cachefile=/etc/zfs/zpool.cache pool0