web-dev-qa-db-ja.com

特定の量のデータの最小ext3パーティションサイズを計算します

これらの次のext3パーティションには、同一のデータが含まれています。ご覧のとおり、パーティションサイズが大きいほど、同じファイルに必要なスペースが多くなります。

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/loop11            3965777    561064   3199964  15% [...]
/dev/loop19             573029    543843     29186  95% [...]

Filesystem            Size  Used Avail Use% Mounted on
/dev/loop11           3.8G  548M  3.1G  15% [...]
/dev/loop19           560M  532M   29M  95% [...]

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/loop11          1024000    1656 1022344    1% [...]
/dev/loop19          1024000    1656 1022344    1% [...]

おそらく多くのスペースを浪費する固定サイズのパーティションから始め、そのデータを保持できるが(ほぼ)最小サイズのパーティションを作成したいと思います。特定の量のデータを保存するために必要な最小パーティションサイズを確実に計算するにはどうすればよいですか?データの量は時間とともに変化するため、これらの計算を自動化する必要があります。

2
Daniel Beck

試すことができる手順は次のとおりです。

  • 必要なものより少し大きいディスクイメージを作成します。
  • イメージ内に直接ファイルシステムを作成します。 billc.cnが示唆するように、ファイルシステムパラメータを設定することをお勧めします。
  • イメージをループマウントし、ファイルをコピーします。マウントを解除します。
  • resize2fs -M を使用して、画像を最小サイズに縮小します。必要に応じて、Gpartedをグラフィカルなフロントエンドとして使用します。

基本的に、resize2fsは、ファイルによって使用される実際のスペースを考慮して、必要な計算を動的に実行できます。

実際にサイズを変更するのではなく、最小サイズを計算するだけの場合は、代わりにresize2fs -Pを使用してください。

データは数百メガバイトしかないため、RAM(tmpfs)に中間ディスクイメージを作成して時間を節約できます 空き容量のあるファイルシステム(/ tmpなど)で、サイズを変更してから、ハードディスクにddします。

一度書き込んだデータが変わらない場合は、代わりに SquashFS または同様のファイルシステムを使用することを検討してください。これはext3よりもコンパクトになります。それ以外の場合は、ジャーナリングのオーバーヘッドを回避するext2を検討してください。

4

mkfs(または-b)のmke2fsオプションを使用してブロックサイズを明示的に設定するか、-Tオプションを使用してファイルのタイプを指定できます。詳細については、マニュアルページを確認してください。

ただし、iノードの数とジャーナルサイズが適切であることを確認する必要もあります。

2
billc.cn