BTRFS階層ストレージ - どのように実行されますか?

BTRFS階層ストレージ - どのように実行されますか?

NETGEARはReadyNASオペレーティングシステムでBTRFSを使用し、最新バージョンで階層型ストレージを実装しました。彼らはReadyNAS v6.9で「メタデータ」レイヤーから始め、次にv6.10で「データレイヤー」を追加しました。システムは SSD をレイヤ 0 として使用し、システムの低速 HDD へのアクセスを高速化します。システム記述では、どちらの場合もメタデータがSSDに常駐し、「データ層」の場合、新しく作成されたデータは最初にSSDに書き込まれ、その後定期的にHDDに移行されるか、SSD層が指定されたレベルで埋められます。

ReadyNASは、通常のインストール時にRAID対応HDDの上にBTRFSを使用します。たとえば、私のシステムには、BTRFSが単一のデバイスとして見て使用する4つのディスクのRAID5があります。

階層化がどのように実装されているかを見ると、「メタデータ」と「データ階層」の両方の設定は、基本HDD RAIDアレイにSSDのみで構成された2番目のRAIDアレイを追加し、最初の単一デバイスを変換することによって達成されるようです。 BTRFSはいくつかのデバイスの1つになります。

私が理解していないのは、移行の実行方法と、「メタデータ」ケースがメタデータのみをSSDに移動するようにデータからメタデータを分離する方法です。さらに、「データ層」モードは、どのように完全な書き込みをSSD層に直接指示しますか?

どんなアイデアがありますか?

ベストアンサー1

お客様は、NetegarがすでにMergerFS階層キャッシュを介してユーザーフレンドリーで非常にシンプルな構成で実行できることを実行できる方法を見つけたと述べました。 https://github.com/trapexit/mergerfs#tiered-caching

  1. 2つのMergerFSプールA)1つは、SSDを含むすべてのHDDドライブ(「POOL」、tier0)を含み、空き容量が最も少ないデバイスに書き込むように設定します(空き容量がXだけ残っていない場合)。 B)2番目のプール(「POOL-ARCHIVE」、tier1)にはHDDのみが含まれています。

  2. ユーザーとすべてのアプリケーションは、最初のプールへのパスのみを使用します。

  3. 過去X日間、最初のプールから2番目のプールに触れていないすべてのアイテムをコピーするナイトスクリプト。ドライブは同じであるため、SSDのデータのみがコピーされます。これは、2番目のプールへのパスを使用する唯一のプロジェクトです。

これがホームサーバーを設定する方法です。すべてのドライブはBtrFS形式です。私はRaidを使用していません(このソリューションは利用できません)。

利点:

  1. ドライブに障害が発生すると、そのドライブのデータのみが失われます(SnapRAIDを最初のバックアップシステムとして使用してこの問題を軽減しました)。 BtrFS-RAID0 などのプール全体は失われません。
  2. これは設定が非常に簡単です。 /etc/fstabには、階層キャッシュである2つのマウントポイントがあります。
  3. X 個の空き領域だけが残っている場合を除き、常に SSD を最初に使用します。最高速度を提供します。

欠点:

  1. MergerFSはユーザースペースのファイルシステム上で実行されるため、MergerFSプールでBtrFSサブボリューム(スパニングディスク)を使用することはできません。
  2. これはまた、プールからサブボリュームのスナップショットを作成できないことを意味します。私のプール内の各ユーザーのデータフォルダのタイムマシンと同じスナップショットを取得したいと思います。

私は単純さのためにMergerFSが大好きですが、質問2はNetjearがBTRFSを使用して同様の解決策をどのように解読できるかについて本当に興味を持っていました。

おすすめ記事