ZFS on Linux:Leading the Field 2017

ZFSは最も詰め込まれたファイルシステム(FS)の1つであり、最も重要なのは、情報の安全性を管理することです。 はい、それは「銀の弾丸」ではありませんが、その分野で優れた結果を示しています。

ZFS






ZFS on Linuxプロジェクトはもともと、Solarisから既存のコードを移植するために作成されました。 ソースコードを閉じた後、プロジェクトはOpenZFSコミュニティとともにLinux用ZFSの開発を続けました。 コードは、カーネルの一部として、またはモジュールとしてコンパイルできます。

画像

これで、ユーザーは最新のSolaris互換バージョン28とOpenZFS優先度バージョン5000でプールを作成でき、その後、機能フラグ(機能フラグ)の使用が開始されました。 実装の違いに関係なく、FreeBSD、Sun Solaris OS、Linux、OSX以降でサポートされるプールを作成できます。



2016年、Linux上でZFSを保持していた最後のマイルストーンが克服されました-多くのディストリビューションが通常のリポジトリに含まれており、Proxmoxプロジェクトはすでにベースパッケージに含まれていました。 ほら、仲間!



最も重要な違いと、Linuxバージョン0.6.5.10上のZFSに現在ある落とし穴の両方を考えてみましょう。



ZFSの使用開始は、CopyOnWrite(CoW)ファイルシステムの機能を調べることです。データブロックが変更されても、古いブロックは変更されませんが、新しいブロックが作成されます。 ロシア語への翻訳-録音中にコピーが発生します。 このアプローチはパフォーマンスに大きな影響を与えますが、データ変更の全履歴を保存することを可能にします。



画像






ZFS のCoWアプローチは非常に大きな機会を提供します。 最後のトランザクションに問題がある場合(たとえば、停電中)、最後の正しいトランザクションが使用されます。



また、すべてのデータに対してチェックサムが考慮されることもすぐに言及する価値があります。これはパフォーマンスにも影響を与えますが、データの整合性は保証されます。



ご使用のシステムでのZFSの主な利点について簡単に説明します。



データ保護:



  1. チェックサム-データの正確性の保証。
  2. RAID , ( copies



    );
  3. fsck , ZFS scrub ( );
  4. , — ZFS ECC ( ECC , , ZFS, );
  5. ZFS , WD Green Seagate etc (, ).


:



  1. ? , ZFS ( autoexpand);
  2. Linux. . , , /dev/null, Linux (clone);
  3. ? 256 !


.



ZFS :



- pool
-- vdev (virtual device) -   ( mirror, stripe  .)
--- block device - , , 
      
      





vdev, mirror, RAID-Z . RAID10 ..



:



Stripe — RAID0.



Mirror — RAID1 ZFS — , .



RAID-Z — RAID5-6, :



— — ( );

write hole;

— (.. ). , .



RAID-Z2 ( RAID6). RAID-Z , :



— IOPS ( RAID-Z );

— ( recordsize, . );

— RAID-Z (), . vdev.



dRAID ( ) — RAID-Z, - .



ARC — ZFS.



CoW . adaptive replacement cache (ARC). , page cache Linux .



ARC — L2ARC. SSD IOPS HDD . L2ARC bcache .



L2ARC .



ZIL, .



.



— LZ4 IO . , . ( gzip).



— : , , — ~ 320 ( zdb -S _



) ~ 5 1 . .. Dedup table (DDT), IO (DDT ).

. , LZ4 .



— ZFS , . zfs-auto-snapshot, . .



( ) — , Oracle, send/receive scrub .



(TL;DR):



— , ZFS , ( );



— :

compression=lz4







— , ( Linux):

xattr=sa







— atime:

atime=off







— (recordsize), recordsize , recordsize recordsize ( recordsize=1M



1.5 2 1, 0.5 0.5). — :

recordsize=128K







— ARC ( ):

echo "options zfs zfs_arc_max=___" >> /etc/modprobe.d/zfs.conf

echo ___ >> /sys/module/zfs/parameters/zfs_arc_max








— ;



— ECC ;



zfs-auto-snapshot.



— SSD , ( ashift). SSD ZFS.



:



— , . , . .

— ZFS , destroy



!

— ZFS 100%, CoW , 80% .

— , ( — Mysql, PostrgeSQL, torrents).

!



ZFS on Linux , .



ZFS — , . , RAID .



, gmelikov, ZFS on Linux !

, issues PR, mailing lists.



:



ZFS on Linux github page

FAQ

ZFS Performance tuning



Update (12.02.2018): ashift SSD .



All Articles