Btrfsスナップショット数の実際の制限は何ですか?

Btrfsスナップショット数の実際の制限は何ですか?

データドライブでbtrfsを使用して使用できるように検討しています。ドミ、または時間ベースのスナップショットを撮ることができるスナッパーのようなものです。私はこれが以前のバージョンのデータをナビゲートできるようになると信じています。ドライブエラーが原因でデータとスナップショットが削除されるため、これは現在のオフサイトバックアップに追加されます。

私が理解したところによると、btrfsスナップショットは多くのスペース(メタデータと変更されたブロック、そしておそらく少しのオーバーヘッド)を占めないので、スペースが制限されないようです。

百万のスナップショット(たとえば、2年間に1分に1つ)がある場合、データ、変更されたデータ、およびメタデータを格納するのに十分なディスク容量があると仮定すると、これは大きな混乱を招く可能性がありますか?

スナップショット数に実際の制限がある場合は、ファイル数やファイルサイズによって異なりますか?

答え1

ここ数年でbtrfsファイルシステムを使ってきた人として、簡単に得られるスナップショットの数には実質的な制限がないようだと安全に言えます。ただし、いくつかの注意事項があります。ファイルシステムは断片化できます。したがって、組み込みのオンラインデフラグ機能を使用することをお勧めします。また、圧縮機能を最大限に活用できます。これらのアクションは、合理的にまともなシステムで多数のスナップショットを作成するときに明らかになる可能性があるほとんどのパフォーマンス問題を解決する必要があります。Arch Linux2btrfsbtrfsbtrfs

ご存知のように、btrfsサブボリュームはファイルシステムと見なされるため、スナップショットの数はファイルサイズによって実際に制限されます。 Wikiによると、 btrfs達成できる最大ファイルサイズは次のとおりです。2^64 byte == 16 EiB[1]

これらの制限に加えて、ファイルシステムの空き容量を確認することは時々難しいかもしれません。つまり、空き領域を測定するさまざまな方法をbtrfs区別できる方法はありません。btrfsファイルシステムから。実際の残りのスペースを簡単に追跡できます。これを防ぐ 1 つの可能な方法は、クォータを使用することです。これにより、ユーザー(またはユーザーが1人だけのユーザー)が特定のスペースのみを使用できるようになります。この概念は非常に巧妙に議論されています。ここそしてここ

最後ですが重要な警告:私はbtrfsファイルシステムの専門家ではなく、しばらく前に同じ問題に直面したときにこの記事を読んでいました。また、いつも「素早く動く目標」(btrfsウィキページから盗んだ素敵な表現だと思います。)問題があるので状況が変わることがあります。Arch Linux

答え2

技術的にはスナップショットの数に制限はありませんが、私は尋ねました。BTRFSメーリングリスト:

(実際)答えはbtrfsの使用方法によって多少異なります。

Btrfsには、スナップショットが多すぎるため、サイズ変更の問題があります(または実際に参照リンクスナップショットを使用したり、重複排除に参照リンクを使用したりすると、同じサイズ変更の問題が発生する可能性があります)。したがって、下位2桁のスナップショットサブボリュームごとにスナップショットに1桁を使用することをお勧めします。

ただし、拡張の問題は主に btrfs メンテナンスコマンド自体、バランス、検証、サブボリュームの削除に影響します。数百万のスナップショットはバランスが取れませんが(動作するには数ヶ月かかることがあります)、断片化が問題にならない限り、一般的なファイルシステムの操作(ファイルの読み取りと保存)は影響を受けない傾向があります(小ファイルシステム(btrfsなど)の断片化を減らすために、デフラグなどの手順を実行しない限り、断片化は悪名高いです。

Time Machine / Snapshotに似たアーカイブバックアップでスナップショットを使用するのは良い考えではないようです。

答え3

合計2,64のスナップショットとサブボリュームを保持できます

これbtrfsデザインウィキページ言った(強調):

サブボリュームは、デフォルトでファイルとディレクトリを保持する名前付きbtreeです。ルートツリー内にinodeがあり、ルートではなく所有者とグループを持つことができます。サブボリュームにはブロッククォータを割り当てることができ、そのクォータに達すると新しい書き込みは許可されません。サブボリューム内のすべてのブロックとファイルの範囲は、スナップショットを許可するために参照計算されます。FSでは最大2,64個のサブボリュームを作成できます。

スナップショットはサブボリュームと同じです。しかし、そのルートブロックはもともと他のサブボリュームと共有されていました。スナップショットが作成されると、ルートブロックの参照カウントが増加し、書き込み時にコピートランザクションシステムは、スナップショットまたはソースサブボリュームの変更がそのルートにのみ適用されることを保証します。スナップショットは書き込み可能で、複数回作成できます。読み取り専用スナップショットが必要な場合、作成時にそのブロッククォータは1に設定されます。

関連情報