書き込みI/Oが発生すると、zpool iostat -v
のログ列にZILアクティビティが表示されなくなります。これにより、データをディスクに書き込むときに予想よりも長い待機時間が発生します(競合中に80ミリ秒を超える場合があります)。
capacity operations bandwidth
pool alloc free read write read write
---------------- ----- ----- ----- ----- ----- -----
storage 1.88T 2.09T 3 3.01K 512K 39.3M
mirror 961G 1.05T 0 1.97K 128K 20.8M
mpathf - - 0 393 0 20.8M
mpathg - - 0 391 128K 20.6M
mirror 961G 1.05T 2 1.04K 384K 18.5M
mpathi - - 1 379 256K 21.1M
mpathj - - 0 281 128K 18.3M
logs - - - - - -
/zlog/zilcache 0 15.9G 0 0 0 0
cache - - - - - -
mpathk 232G 8M 1 0 130K 0
mpathl 232G 8M 1 0 130K 0
---------------- ----- ----- ----- ----- ----- -----
/ zlog/zilcacheデバイスにIOがありません。非常に高速なフラッシュ上のファイルです。 ZFSストアから削除すると、書き込みと読み取りはできますが、ZFSはそれを無視しているようです。
デバイスは利用可能に見えます:
pool: storage
state: ONLINE
scan: scrub repaired 0 in 19h31m with 0 errors on Wed Nov 19 07:39:03 2014
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
mpathf ONLINE 0 0 0
mpathg ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
mpathi ONLINE 0 0 0
mpathj ONLINE 0 0 0
logs
/zlog/zilcache ONLINE 0 0 0
cache
mpathk ONLINE 0 0 0
mpathl ONLINE 0 0 0
errors: No known data errors
より高速な確認のためにログデバイスへの書き込みをキャッシュするようにZFSを構成する方法はありますか?
ありがとう
ZILの目的を誤解していると思います。あなたはそうではない書き込みキャッシュとしてそれを説明します。マシンで何が実行されているかによっては、ZILでのアクティビティは通常の動作ではない場合があります。
ZILからは何も読み取られません。これは書き込み専用デバイスです。唯一の例外は、クラッシュ後のプールのインポート中に発生する可能性があります。
アプリケーションが同期書き込みを実行している場合のみ、書き込みが行われます。ファイルの移動などの通常のI/OはZILを使用していません。
sync=always
データセットに対して、すべての書き込みを同期のように動作させる。