一般化する
外部ドライブを「一度だけ書き込むことができるアーカイブ」に設定するとします。外付けドライブを再フォーマットし、更新されないいくつかのファイルをコピーしてから、内容を読む必要があるまで別々に保存しようとしています(長い間前も全くないかもしれません)、他のLinuxボックスのアーカイブからのものです。また、アーカイブでできるだけ多くのファイルスペースを確保できるようにしたいです。言い換えれば、ファイルシステムが自分の目的のためにできるだけ少ない空き容量を使用したいと思います。
具体的な質問1:ジャーナリングのないext2またはext4のうち、このユースケースに適したファイルシステムは何ですか?
前に後者をやったことがないから(普通ゴポット)、確認車:
具体的な質問2:これがログレスext4をインストールする「方法」ですかmke2fs -t ext4 -O ^has_journal /dev/whatever
?
一般的な質問3:このユースケースにはより良いファイルシステムがありますか?それとも全く違うのですか?
詳細
さまざまな外部ドライブに保存されているデッドボックス(したがって更新されていない)の以前のプロジェクトからインポートされた多くのファイルがあります。合計サイズ(ファイル)〜= 250GB。これはDVDに書き込むには大きすぎる(つまり、何か欠けているものがなければ取り込むには多すぎます)、テープドライブもありません。だから私は古いUSB2 HFS外付けドライブをアーカイブに設定しました。私は「本物のLinux」ファイルシステムを好むが、このようなファイルシステムも好む。
- アーカイブドライブで最小限のスペースしか占めていません(入れたいものを収納できるほど大きくないからです)。
- 将来的に私が使用しているすべてのボックス(おそらくLinux)から読むでしょう。
私はGPartedを使用して次の順序を実行する予定です:[古いパーティションの削除、単一の新しいパーティションの作成、ext2ファイルシステムの作成、ラベルの再指定]。しかし、私は読んだ。ここそれ
recent Linux kernels support a journal-less mode of ext4
which provides benefits not found with ext2
次のテキストを確認してください。man mkfs.ext4
"mke2fs -t ext3 -O ^has_journal /dev/hdXX"
will create a filesystem that does not have a journal
だから私は知りたい
- ジャーナリングのないext2またはext4のうち、このユースケースに適したファイルシステムは何ですか?
- ext4-minus-journalに移動するとします。これをインストールするためのコマンドラインですか
mke2fs -t ext4 -O ^has_journal /dev/whatever
? - このユースケースのもう一つの優れたファイルシステムはありますか?
答え1
私はsquashfsの提案に同意しません。通常、squashfsをrawブロックデバイスに書き込むのではなく、rawブロックデバイスにsquashfsを書き込みます。読みやすいtarアーカイブだと思います。これはまだ基本ファイルシステムが必要であることを意味します。
ext2
現在の使用を制限するいくつかの深刻な制限があるため、お勧めしますext4
。これはアーカイブのためであり、続行するために圧縮アーカイブを作成します。これは、ほとんど変わらない少数のかなり大きなファイルを持つことを意味します。次のように最適化できます。
-I 128
単一のinodeのサイズを小さくしてinodeテーブルのサイズを縮小するように指定します。- この
-i
オプションを使用して、inodeテーブルのサイズをさらに小さくすることもできます。この値を大きくすると、少数の inode が生成されるため、inode テーブルが小さくなります。ただし、これはファイルシステムが平均してファイルごとに多くのスペースを無駄にすることを意味します。だからそれは妥協です。 - 実際に終了ログを使用できます
-O ^has_journal
。ただし、この方法を使用する場合は、ファイルシステムを読み取り専用でマウントするようにデフォルトオプションを設定することをお勧めします。fstab
または、ファイルシステムでデフォルトの履歴を使用することもできますtune2fs -E mount_opts=ro
(時々これを行うことはできませんmkfs
)。 - もちろん、データをアーカイブファイルに圧縮して、inodeの無駄が深刻な問題にならないようにする必要があります。 squashfs イメージを生成することもできますが、xz 圧縮が良いため、tar.xz ファイルを使用することをお勧めします。
- または、
-m
オプションを使用してスケジュールされたブロック数を減らすこともできます。ルートに予約されている割合を設定します(デフォルトは5)。mkfs
tune2fs
ただ。 0に設定しないでください。ファイルシステムを効率的に実行するには、少しのスペースが必要です。
答え2
スカッシュFS要件に適した圧縮可能な読み取り専用ファイルシステムで、カーネルで長年使用されており、すでに広く使用されています(例:LiveCD)。ユーザースペースツールの最新ドキュメントGitHubから。ドキュメントから:
Squashfsは、Linux用に高度に圧縮された読み取り専用ファイルシステムです。 gzip/xz/lzo/lz4 圧縮を使用してファイル、inode、およびディレクトリを圧縮します。システムのinodeは非常に小さく、すべてのブロックはデータオーバーヘッドを最小限に抑えるために圧縮されています。 4Kより大きいブロックサイズ、最大1Mbyte(デフォルトのブロックサイズ128K)をサポートします。
Squashfsは、一般的な読み取り専用ファイルシステムの使用、アーカイブの使用(例:.tar.gzファイルが利用可能な状況)、および低オーバーヘッドを必要とする制限付きブロックデバイス/メモリシステム(組み込みシステムなど)用に作成されました。
答え3
圧縮ファイルシステムはより良いサービスを提供できます。
さまざまなLinuxファイルシステムを圧縮する方法がありますが(FUSE
可能です)、一度作成すると読み取り専用なので、squashfs
mksquashfsを使用してファイルシステムを作成することを検討できます。
Linuxは2.6.something以降、デフォルトのカーネルにsquashfsを含めるので、ほとんどすべてのLinuxボックスで実行する必要があります。
btrfs
即席圧縮が可能だと思いますが、直接使ったことはありません。ZFS
動作します。私はFreeBSDで直接使用します。ただし、Linuxシステムでこれを読む前に、いくつかの設定が必要です。
ロギングのないext2とext4については言えません。私はLinuxで習慣的にJFSとXFSを使用しています。