私の使用例:M.2 SSDにUbuntu Server 18.04がインストールされています。ストレージとして追加したい4TB HDDがあります。これは主に大きなメディアファイルとバックアップ用であるため、頻繁に書き込まれることはありません。
この使用例に最適なファイルシステムはどれですか?
私の主要な候補は、Ext3/4、XFS、Btrfs、およびZFSです(別のものについては自由に議論してください)。
「最高のファイルシステムは何ですか?」という質問はしていません。「最高」というようなものはありません。私は、ファイルシステムは、この使用例に最も適している可能性があります。含めてみてください:
アドバイスありがとうございます。
私は通常、次の2つのファイルシステムのいずれかを使用します。
CoW(またはデータストアが既にCoWファイルシステム上にある仮想マシン)でうまく機能しないもの、または非常に高速なダイレクトI/Oが必要な場合のXFS。
その他のZFS。
あなたのユースケースでは、特にUbuntu 18.04がすでに出荷していることを考えると、私はZFSを使用します。既存のデバイスに別のミラーレッグを簡単に取り付けることができるため、ZFSはこの要件に非常によく適合します。たとえば、ディスクにnvme0p1
という名前を付けます。
zpool create tank /dev/nvme0p1
単一のvdevプールを作成します。zpool attach tank <newdev> /dev/nvme0p1
はミラーリングを有効にします。何らかの理由でZFSを使用できない、または使用できない場合は、MDRAIDとXFSが役に立ちます。
mdadm --create /dev/md200 -l raid1 -n 2 /dev/nvme0p1 missing
は、足のないRAID1アレイを作成します(#1を参照)。mdadm --manage /dev/md200 --add <newdev>
は新しいミラーレッグをアタッチします(完全なRAID1を形成し、#2を参照)配列を作成したら、mkfs.xfs
を使用してXFSでフォーマットできます。
パフォーマンスと回復力はどちらも劣るので、BTRFSを使用することをしないことをお勧めします。たとえば、 Debian wiki から:
現在(2019-07-07、linux≤5.1.16)、2つのディスクのraid1プロファイルが2回目に劣化状態でマウントされたときに永久に読み取り専用になるバグがあります。たとえば、欠落/破損/ SATAリンクリセットディスク
また、BTRFS(read:Synology)を使用する商用NASベンダーは独自の統合RAID機能を使用せず、実績のあるLinux MDRAIDレイヤーを使用することに注意してください。
EDIT:一部の人は、XFSがデータ損失を起こしやすいと言っていますが、これは単に正しくありません。さて、ext3と比較すると、XFS(および遅延割り当てをサポートする他のファイルシステム)は、制御されていない電源オフの場合に、より多くの非同期データを失う可能性があります。ただし、同期されたデータ(つまり、重要な書き込み)は100%安全です。さらに、XFSデータ損失を悪化させる特定のバグ 10年以上前に修正されました 。そのバグは別として、any遅延割り当て準備ファイルシステム(ext4およびbtrfsを含む)は、かなりの数または非同期データを失うコントローラの電源がオフの場合。
Ext4と比較して、XFSには無制限のiノード割り当て、高度な割り当てヒント(必要な場合)、最近のバージョンではreflinkサポートがあります(ただし、Ubuntu 18.04で明示的に有効にする必要があります。 mkfs.xfsのマニュアルページ)を参照してください 追加情報)
1:デバイスが見つからない/proc/mdstat
ファイルの例:
Personalities : [raid1]
md200 : active raid1 loop0[0]
65408 blocks super 1.2 [2/1] [U_]
unused devices: <none>
2:2番目のデバイスを追加した後の/proc/mdstat
ファイル
Personalities : [raid1]
md200 : active raid1 loop1[2] loop0[0]
65408 blocks super 1.2 [2/2] [UU]
unused devices: <none>
これは、serverfaultよりも superuser の質問に似ていますが、一部のアイデアはこのサイトにも有効であるため、いくつかの質問に答えます。
企業の設定の場合と同様に、パフォーマンスと機能を直接体験するために、予想される負荷でベンチマークを実行するのに時間をかけることは間違いありません。
十分な理由がない限り、問題のオペレーティングシステムがデフォルトとして提案したジャーナリングファイルシステムを使用します。前回、ext4であるUbuntuを確認しました。
理由は簡単です。デフォルトが最もよく使用されるものであるため、バグが発見および修正される可能性が最も高いです。あなたが言及するファイルシステム間の違いは、毎日の軽い使用において多くを意味することはほとんどありません。パフォーマンスが非常に重要な場合は、オペレーティングシステムにキャッシュする余地を増やすために、代わりにメモリを増やすことを検討してください。
とは言っても、オペレーティングシステム全体でドライブを使用する場合は、2つ取得するか、少なくとも1つを2つの物理パーティションに分割し、メディアがあるものでNTFSまたはexFATを使用することをお勧めします。
長期にわたってデータの整合性を重視する場合は、zfsまたはbtrfsをお勧めします。
私が理解しているのは、これらの2つだけが、データをスクラブしてビットの腐敗を探し、修正できる可能性があるということです。
私はzfsにはあまり詳しくありませんが、btrfsを約5〜6年間実行しています。 RAID1で実行しており、毎週スクラブジョブを行っています。 (注:ミラーリングされていない場合、スクラブは、修復するのではなく、それらの不良ブロックをマークするだけです!)
私が持っていた唯一の問題は、エクステントが自動的に解放されず、ディスクがいっぱいになったが実際にはいっぱいにならなかったというバグがあったことです。
どちらにも圧縮と重複排除がありますが、btrfsの重複排除はオフラインです-これを好む人もいます。
チェックする別のリソースは、この最近の投稿で Hacker News に到達しました: Btrfsの5年間
注:XFS/ext4スクラブに向けて 一部の作業 があるようです
実際のミラーがなくても、mdadmが完了したミラーであるXFS形式のファイルシステムを作成できます。
3つのミラーがあり、2つは存在しないミラーとしてパーティションを作成します。後で2つの欠落しているものを追加できます。