web-dev-qa-db-ja.com

Ubuntu 16.04をM.2ハードドライブにインストールしようとしています。速度を上げるにはどのファイルシステムを使用すればよいですか?

Ubuntu 16.04をSamsung M.2ハードドライブにインストールしようとしています。 (USBドライブを使用)

どのファイルシステムを使用すればよいですか?

  • Fat32
  • ext4
  • ext3
  • ext2
  • NTFS
  • 私が言及していない別のもの?

私のハードドライブは:

1TB SAMSUNG SM961 M.2, PCIe NVMe (up to 3200MB/R, 1800MB/W)

それらがすべて機能する場合、どれが最速ですか?

おびえた初心者のためのヒント/落とし穴:)

8
Conor Cosnett

とても簡単です。 OSに最適なファイルシステムを使用します。 Ubuntuを含むほとんどのLinuxディストリビューションの場合、これは次のとおりです。

ext4

NTFSとfat32は、Linuxに必要な機能が不足しているため、Unix/Linuxシステムには適していません。 Windowsシステムからアクセスできるようにする必要があるデータパーティションに適しています。 fat32は4GBを超えるファイルを保存できないことに注意してください。ただし、これは最も互換性のある選択肢です。古いDOSでもfat32を読み書きできます。

ext2とext3は基本的にext4の前身です。

ところで、速度は実際にはファイルシステムの問題ではありません。ハードドライブとバス(接続、USBポート)は、ファイル操作の速度を決定します。

10
mondjunge

かなり複雑です。言及するファイルシステムには大きな違いがあり、これらの違いが速度に与える影響を判断することは、私見であり、重要なことであり、実行される操作によって異なります。

まず、FATまたはNTFSパーティションにルートファイルシステムをインストールする可能性を破棄しましょう。これらのファイルシステムはLinuxカーネルと適切に互換性がなく、Linuxファイルシステムのアクセス許可は適切に機能しないため、多くの興味深い問題が発生します。

:FAT32はUSBインストールメディアに適した選択肢であり、NTFSは必要なパーティションのデュアルブート(Windowsを使用した)シナリオでの良い選択ですUbuntu(または他のLinuxシステム)とWindowsの両方にアクセスできる個人用のもの(メディアライブラリなど)を保存するために使用します。 Linuxシステムは、正しくマウントされている限りNTFSパーティションを読み取り(および書き込み)できますが、ext *パーティションはWindowsで簡単に読み取ることができません(私の知る限り)。

Ext *システムは、Linuxカーネルで使用するように設計されています。 Ubuntuのインストールにext2、3、または4を使用することはまったく問題ありません。おそらくそれらの最大の違いは

  • ext2は非ジャーナリングです
  • ext3はジャーナリングですが、それ以外はext2と同様のデータ構造と機能を備えています
  • ext4はジャーナリングであり、同様のデータ構造を持ちますが、以前のext *システムに比べてブロック割り当てのアルゴリズムが高速になるなど、パフォーマンスを向上させる機能がいくつかあります。

ファイルシステムを選択する際に考慮するのは速度だけではないことに注意してください。 Ext4は以前のバージョンよりも制限が少ないため、より大きなファイルシステム、無制限のサブディレクトリなどを使用できます。ここでは速度に焦点を当てようとしますが、パフォーマンス以外の最も顕著なものだけに言及します。

ちょっと待ってジャーナリング?1

journalling filesystem は、要するに、ファイルシステムの主要部分にまだ書き込まれていない変更のログを保持します。これは、クラッシュが発生した場合に、ジャーナルをメインのファイルシステム領域に書き込まれたものと比較することにより、ファイルシステムの一貫性を簡単に確認できるようにするためです。これは、ext3およびext4を使用すると、ファイルシステムのチェック速度がはるかに速くなることを意味します。また、ext4では未割り当てブロックにマークを付けることができるため、それらのチェックをスキップして、fsckをさらに高速化できます。

また、ext4はジャーナルをチェックサムし(書き込み時のI/O待機を少なくします)、ext3と比較して速度が全体的にわずかに向上します。

ファイルシステムの一貫性をチェックする必要はあまりないかもしれませんが、ジャーナリングにはコストがかかります-ディスクへの書き込みが増えます。これは、高速SSDの寿命にとって悪いだけでなく、パフォーマンスを低下させる可能性があります(書き込みに時間がかかります)。ただし、ジャーナリングはコストに見合うだけの価値があるという一般的なコンセンサスがあるようです。

Ext4のパフォーマンス強化機能

Ext4は、ファイルのスペースを事前に割り当てるfallocate()システムコールをサポートしています。カーネルはいくつかのブロックを割り当て、それらに書き込むことなく初期化済みとしてマークします。これは、古いファイルシステムで行われていたようにスペースにゼロを書き込むよりもはるかに高速です。

また、遅延割り当て(または allocate-on-flush )を使用して(多くの小さな割り当てを実行するのではなく)割り当てをバッチ処理するため、CPU使用量を削減し、断片化を回避する傾向があります。

Ext4はext2およびext3と下位互換性があります。つまり、ext2および3のファイルシステムをext4としてマウントし、新しいブロック割り当てアルゴリズムなどの機能を使用できるため、適度なパフォーマンスのメリットを享受できます。

その他のファイルシステム

Linuxに完全に対応したファイルシステムは、Ext *だけではありませんが、最もよく知られ、最もテストされています。他のファイルシステムは、ジャーナリングの代替手段を使用し、パフォーマンスに影響を与える可能性のある革新的な機能を備えています。 Btrfs たとえば、ジャーナルの代わりに copy-on-write ファイルシステムの整合性を保持する方法を使用します。 ext *システムとは異なるデータ構造を持っています。私の知る限り、Btrfsはext4よりも高速な一般的なパフォーマンスを提供することは知られていませんが、劣化が起こりにくいため、写真ビデオファイルのアーカイブストレージに特に適していると考えられています。これにより、使用中にファイルシステムの一貫性をチェックおよびクリーニングできるため、ユースケースによっては時間を節約できます。将来的には、一般的な速度で説得力のあるext4を上回るBtrfsまたは別の革新的なファイルシステムがさらに開発される可能性があります。

結論

良いパフォーマンスを探しているほとんどのUbuntuユーザーは、今のところext4を使い続けたいと思うでしょう...


1これと他のLinuxファイルシステムの概念は Linuxカーネルの理解 でとてもよく説明されています。

4
Zanna