インターネット上の低メモリシステムでのZFSについて多くの物議を醸す声明を読みましたが、ほとんどのユースケースはパフォーマンスの高いデータストレージでした。
パフォーマンス上の理由ではなく、透過的な圧縮と重複排除をサポートし(後者はオプションの場合があります)、BTRFSよりも成熟しているように見えるため、ZFSを使用したいと思います。 RAID構成を使用したくありません。
ルートおよびホームファイルシステム用のラップトップコンピューターで使用したいのですが、ストレージスペースとデータの安全性(停電やその他のランダムな不整合後の回復可能性、RAMの不足による破損のリスクが非常に低いなど)が重要です。ディスクパフォーマンス。 ext2/3/4と同等の安全性が必要です。
ZVOLの上にext4を使用したいと思います。
したがって、質問は次のとおりです。
システム仕様:
現在のディスク使用量(du -sh
にある大きなディレクトリの/
)(/はext4、上にマウントされた/ varはreiserfs)(透過圧縮のあるストレージに移動したい):
74M /etc
342G /home
5.0G /opt
1.5G /root
261M /tmp
35G /usr
30G /var
または、BTRFSを使用するだけです(「バグ」が原因でデータ損失が深刻/回復困難になる可能性があることを読みましたが、それはすべて物議を醸しています...)?
IOパフォーマンス/キャッシングが問題ではなく、RAID機能が必要ない場合、ZFSは「低RAM」で確実に動作するように構成できますか?
はい、RAID機能が有効になっている場合でも可能です。ネット上で人々が主張するよりもはるかに少ない必要があります。たとえば、FreeBSD、2コア、および 768 MB 仮想化で高速ファイルサーバーを実行しているこの男を見てください。または、SolarisInternalsガイド(現在はarchive.orgからのみ入手可能)を参照してください。ここでは、512 MBが最低限、1 GBが最小推奨、2GBが完全推奨として記載されています。
ただし、重複排除は避けたいと思います。ページングメモリが原因で低速であるためではなく、システムが停止した場合に重複排除されていない状態に戻ることができないためです。また、RAMとディスクの間のトレードであり、予算システムではどちらも持っていないので、あまり利益はありません。
ZFSをファイルシステム自体として使用せず、別のファイルシステムを上に配置する場所でZVOLを使用する場合、RAM必要な変更はどのように行われますか?
アクセス方法(KVM、Fuse、iSCSIなどの仮想化)に応じて、2番目のファイルシステムとZFSの上のレイヤーに追加のメモリが必要になります。
RAM重複排除をオンにして必要な変更を行うにはどうすればよいですか?重複排除をオンにしてRAMが低くなり始めた場合でも、安全ですか?ZFSは一時停止できますか?重複排除とRAMの使用量を減らしますか?
重複排除を一時停止することはできませんが、データは安全です。多くのメモリスワッピングと待機が発生するため、あまり使用できない可能性があります。重複排除はオンラインであるため、無効にするには、重複排除をオフにして、すべてのデータを再度書き込む必要があります(つまり、基本的にすべてのデータを新しいファイルシステムにコピーし、古いファイルシステムを破棄します)。
自動重複排除を無効にすることはできますが、手動で実行することはありますか?
いいえ、保存データには影響しません。重複排除を行っていて、ブロックを書き込みたい場合、ZFSは重複排除テーブルにブロックが存在するかどうかを確認します。はいの場合、書き込みは破棄され、参照が重複排除テーブルに追加されます。いいえの場合、それが書き込まれ、最初の参照が追加されます。これは、古いデータが重複排除の影響を受けないことを意味し、新しいブロックを書き込まずにオンにしても、古いデータの使用済みサイズについては何も考慮されません。
ZVOL上のext4は、低いRAMの状況でも、データを確実に保存できます。不整合が発生した場合、修復の成功率は高くなります(ext2/3/4の場合と同様)?ext4はZVOLに加えて、ext4の堅牢性が追加されるため、堅牢性が向上しますか、それともデータは基盤となるZVOLと同じくらい堅牢ですか?
私の目には、これは不必要な複雑さです。新しい機能がないため(下のext4と上にZFSがある場合のように、スナップショットなど)、さらにfsck
やその他のfdisk
フォーマットの演習などの新しい責任があります。
私がそのようなことをする唯一のユースケースは、特定のファイルシステムの低レベルの機能を要求する、またはハードコードされた仮定を持つ特別なアプリケーションがある場合です(幸い、その動作は最近死んでいるようです)。
user121391はあなたに良い情報を与えるのに素晴らしい仕事をしたので、私はあなたの記憶の懸念に触れるだけです。
メモリに関する限り、そうです、ZFSはメモリを大量に消費する可能性があります。キャッシュに空きシステムメモリを利用します。何年にもわたって、Sunは、現在Oracleが微調整し、パフォーマンス、信頼性を改善し、メモリ使用量を改善してきました。詳細については、ZFS内部/悪のチューニングガイドサイト、または ZFSブログ を確認できます。ただし、これらの調整と機能のほとんどは、Solaris11.xバージョンのZFSでのみ検出される可能性があります。
本当にメモリが心配な場合は、重複排除がライブであり、重複排除テーブルをメモリに保持する必要があるため、かなりの量のメモリが必要になるため、重複排除を使用したくないでしょう。