====== ZFSのslog追加時もashift量に注意しよう ====== ''zpool status''したら「block size: 512B configured, 4096B native」なるメッセージが出ていた。 $ zpool status zhome pool: zhome state: ONLINE status: One or more devices are configured to use a non-native block size. Expect reduced performance. action: Replace affected devices with devices that support the configured block size, or migrate data to a properly configured pool. scan: resilvered 389G in 2h31m with 0 errors on Sun Mar 29 16:58:56 2015 config: NAME STATE READ WRITE CKSUM zhome ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 ada0p1 ONLINE 0 0 0 ada3p1 ONLINE 0 0 0 logs mirror-1 ONLINE 0 0 0 ada1p3 ONLINE 0 0 0 block size: 512B configured, 4096B native ada9p3 ONLINE 0 0 0 block size: 512B configured, 4096B native cache ada9p5 ONLINE 0 0 0 物理4kセクタのデバイスに512バイト単位でアクセスしてて性能低下してるかもよっていうアレ。わざわざ報告してくれるなんてZFSは神。てか、slogのブロックサイズはプール本体のashiftと連動しないんすね… というわけで、一旦slogを消し、例によってgnopで4kセクタ化してslogを作りなおした。 $ sudo zpool remove zhome mirror-1 $ zpool status zhome pool: zhome state: ONLINE status: Some supported features are not enabled on the pool. The pool can still be used, but some features are unavailable. action: Enable all features using 'zpool upgrade'. Once this is done, the pool may no longer be accessible by software that does not support the features. See zpool-features(7) for details. scan: resilvered 389G in 2h31m with 0 errors on Sun Mar 29 16:58:56 2015 config: NAME STATE READ WRITE CKSUM zhome ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 ada0p1 ONLINE 0 0 0 ada3p1 ONLINE 0 0 0 cache ada9p5 ONLINE 0 0 0 errors: No known data errors $ sudo gnop create -S 4096 /dev/ada1p3 $ sudo gnop create -S 4096 /dev/ada9p3 $ sudo zpool add zhome log mirror ada1p3.nop ada9p3.nop $ zpool status zhome pool: zhome state: ONLINE status: Some supported features are not enabled on the pool. The pool can still be used, but some features are unavailable. action: Enable all features using 'zpool upgrade'. Once this is done, the pool may no longer be accessible by software that does not support the features. See zpool-features(7) for details. scan: resilvered 389G in 2h31m with 0 errors on Sun Mar 29 16:58:56 2015 config: NAME STATE READ WRITE CKSUM zhome ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 ada0p1 ONLINE 0 0 0 ada3p1 ONLINE 0 0 0 logs mirror-1 ONLINE 0 0 0 ada1p3.nop ONLINE 0 0 0 ada9p3.nop ONLINE 0 0 0 cache ada9p5 ONLINE 0 0 0 errors: No known data errors 一応、zdbで確認(ログの必要箇所のみ抜粋) children[1]: type: 'mirror' id: 1 guid: 12556410678957656274 metaslab_array: 52 metaslab_shift: 26 ashift: 12 asize: 8585216000 is_log: 1 create_txg: 13992340 children[0]: type: 'disk' id: 0 guid: 10904489644541021375 path: '/dev/ada1p3.nop' phys_path: '/dev/ada1p3.nop' whole_disk: 1 create_txg: 13992340 children[1]: type: 'disk' id: 1 guid: 18335897789017456858 path: '/dev/ada9p3.nop' phys_path: '/dev/ada9p3.nop' whole_disk: 1 create_txg: 13992340 ''ashift: 12''になってるし、これで大丈夫だろう。nopデバイスは次に再起動した時に勝手に消えるだろうから、放置で。 ついでに、もう1個のプールも確認してみると… $ zpool status zdata pool: zdata state: ONLINE status: One or more devices are configured to use a non-native block size. Expect reduced performance. action: Replace affected devices with devices that support the configured block size, or migrate data to a properly configured pool. scan: scrub canceled on Sun Mar 22 10:40:27 2015 config: NAME STATE READ WRITE CKSUM zdata ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 ada5p1 ONLINE 0 0 0 ada10p1 ONLINE 0 0 0 ada12p1 ONLINE 0 0 0 raidz1-1 ONLINE 0 0 0 ada14p1 ONLINE 0 0 0 block size: 512B configured, 4096B native ada8p1 ONLINE 0 0 0 block size: 512B configured, 4096B native ada15p1 ONLINE 0 0 0 block size: 512B configured, 4096B native logs mirror-2 ONLINE 0 0 0 ada1p4 ONLINE 0 0 0 block size: 512B configured, 4096B native ada9p4 ONLINE 0 0 0 block size: 512B configured, 4096B native cache ada1p5 ONLINE 0 0 0 spares ada2p1 AVAIL errors: No known data errors ぉぉぉぉ、、、RAID-Zストライピングの片割れraidz1-1が見事にashitf=9になってやがる…。raidz1-1は後からashiftを考慮せずに、というよりもashiftがvdev単位?なのを知らずに追加したものなので当然っちゃ当然だが……。AFTには気をつけて作業して来たつもりだけど、こんな罠があったとはねorz にしても困った。zdataは3TB HDD×6本のプールなので、先のslogみたいに気軽に削除&作り直しって訳にもいかんしなぁ。raidz1-1にashift=12のミラーを追加して・・・とも思ったが、ミラーのashiftはraidz1-1のが継承されそうな気がする。そもそもraidz1-1をミラーに出来るかも分からんし。もしかして詰んでる?