web-dev-qa-db-ja.com

ZFS-ディスクキャッシュを有効または無効にしますか?

4台のWD Red SATA HDD(HBAモードのPERC H330を介して接続)を搭載したサーバーで、RAIDZ1を使用して(FreeNASを介して)ZFSを設定しています。

サーバーはUPSに接続されています。

ZFSの場合、この設定では、各ディスクのHDキャッシュを有効にすることは理にかなっていますか、それともUPSにもかかわらず非常に危険ですか?

2
user1282931

ディスクキャッシュを確実にenableする必要があります。

理論的根拠は、ZFSがディスクキャッシュを有効にすると想定し、適切で特定のSATA/SASコマンド(ATA FLUSH、FUA、等)。

ディスクキャッシュを有効にしておくと、プールの信頼性に影響を与えることなく、最新のディスクの書き込み結合機能を利用できます。

これは明らかに、ディスクが実際にキャッシュフラッシュコマンドを受け入れることを前提としています。これは、最近の(2006年以降の)ディスクの標準です。まれなキャッシュでは、ディスクがキャッシュフラッシュについて嘘をついているため、無効にする必要があります。

追加情報として、 zfs_nocacheflush 調整可能な説明を読むことをお勧めします:

ZFSはバリア(揮発性キャッシュフラッシュコマンド)を使用して、デバイスによってデータが永続的なメディアに確実にコミットされるようにします。これにより、キャッシュが揮発性であるデバイス(HDDなど)の一貫したオンメディア状態が保証されます。

6
shodanshok

必要に応じてできます。大きな違いはありません。 ZFSは、RAMの一部を書き込みキャッシュに利用し、定期的にディスクにフラッシュします。

4つのディスクの場合、これは小さなインストールのように聞こえるので、両方をベンチマークして、最初に顕著な利点があるかどうかを確認します。

1
ewwhite