ext4の「クイック」フォーマットなどはありますか?


28

Windowsでは、NTFSでフォーマットするのは非常に高速です。RAMの少ない低電力のLinuxマシンがあります。2TBボリュームをext4にフォーマットするには、長い時間がかかります。

フォーマットを高速化するためにできることはありますか?何がそんなに時間がかかるか想像できませんか?(何がそんなに時間がかかる)


1
フォーマットにはどのコマンドを使用していますか?
tacotuesday

回避策として。小さいlvmボリュームとして作成してみて、必要に応じて拡大しますか?とにかく初期オーバーヘッドを下げます。
Sirex

1
または、ファイルシステムの作成時間が本当に煩わしい場合はXFSを使用します-mkfs.xfsはmkfs.ext4よりもはるかに高速です(実行しない、または実行する必要があるため)。しかし、mkfsは通常、ファイルシステムごとに1回だけ実行する必要があるものです。最適化する方がおそらく良いでしょう。
cas

またはZFSを使用します。ZFSを使用したファイルシステムの作成は、サイズに関係なく、ほぼ瞬時に行われます。
jlliagre

エンタープライズクラスのハードウェアがある場合、特にECC RAMとUPSがある場合にのみZFSを使用してください。だお勧めしません、これらの要件なしでZFSを使用します。メモリパリティエラーや電源障害の後に回復できない場合があります。この場合、すべてのボリュームが失われます。あなたは警告されました。
リチャードゴメス

回答:


16

厳密な答え

のようなソリューション-E lazy_itable_initは結果を変えず、プロセスをスピードアップするだけです。これは、多くの場合、人々がより多くを必要とするが、明示的に尋ねられたものです。

追加ボーナス

ほとんどの場合、実際には使用パターンに一致するいくつかのオプションが必要であり、ファイルシステムの作成を高速化するだけでなく、より高速な使用とより使用可能なスペースも許可します。

私はちょうどテストをしました。を使用しなくても-E lazy_itable_init、以下のオプションは2TBファイルシステムの作成時間を16分2秒から1分21秒に高速化します(Intel i7 2.2GHzのカーネル3.5.0 64ビット、USB2接続の2TBディスク-SATAはおそらくより高速です) 。

大きなファイルを保持するファイルシステムでは、次の組み合わせを使用します。

mkfs.ext3 /dev/sdXX -O sparse_super,large_file -m 0 -T largefile4

where -T largefile4は、/etc/mke2fs.conf一般的に次のようなものを含むオプションを選択します。

    inode_ratio = 4194304
    blocksize = -1

やるman mke2fsこれらの各オプションの詳細については。

関連する抜粋は次のとおりです。

               sparse_super
                      Create a filesystem with fewer superblock backup copies (saves space on large filesystems).

               large_file
                      Filesystem can contain files that are greater than 2GB.  (Modern kernels set this feature  automatically
                      when a file > 2GB is created.)

   -i bytes-per-inode
          Specify  the  bytes/inode ratio.  mke2fs creates an inode for every bytes-per-inode bytes of space on the disk.  The
          larger the bytes-per-inode ratio, the fewer inodes will be created.  This value generally shouldn't be smaller  than
          the blocksize of the filesystem, since in that case more inodes would be made than can ever be used.  Be warned that
          it is not possible to expand the number of inodes on a filesystem after it is created, so be  careful  deciding  the
          correct value for this parameter.

-m 0ルート用に5%を予約しないとだけ言っています。これは、データ(ブート/ルートではない)ファイルシステムには問題ありません。2TBディスクの5%は100Gbを意味します。それはかなり大きな違いです。


1
ファイルシステムが95%以上いっぱいになると、極端な断片化が発生し、パフォーマンスが大幅に低下することに注意してください。どちらかといえば、データパーティションのパフォーマンスに
関心

あなたのディスクが保有している場合だけでなく、大きなファイルはなく、小さなファイルを、これを読んで:削減iノードの比率は、汎用性を犠牲にし、ストレージの1.5%程度、最大で保存されます。inode_ratio = x場合ことを意味し、平均ボリューム上のファイルサイズがxバイト未満である、あなたがの方に向かっているinodeのうち実行する前に、ストレージ・スペースが不足。そのシナリオでは、予想以上に無駄に数千を無駄にする可能性があります。
ステファンゴーリチョン16年

つまり、平均ファイルサイズが4MBより小さい場合は、「-T largefile4」を使用しないでください。巨大なドライブの場合、今-T hugeではどちらを使用することになりinode_ratio = 65536ます。疑わしい場合は、単にext2 / 3/4を作成した賢明な人々に設定-iまたは-T選択させないでください。ハウスキーピングのためにスペースの既知の小さな部分を予約します(何百万もの非常に小さなファイルを保存しない限り)実際のストレージスペースの任意の割合を無駄にしないことが保証されます。人々が書いているように、派手なソフトウェアは素晴らしいですが、良いファイルシステムは退屈で、ただ機能するに違いありません。
ステファンゴーリチョン

私の場合には、mkfs.ext4より速く(時間:あるreal 0m16.001s)よりもmkfs.ext3(時間:real 2m10.336s)。
-coanor

19

フラグを追加 -E lazy_itable_init

マニュアルページの内容は次のとおりです。

有効にしてuninit_bg機能を有効にすると、ikeテーブルはmke2fsによって完全に初期化されません。これにより、ファイルシステムの初期化が大幅に高速化されますが、ファイルシステムが最初にマウントされたときに、カーネルがファイルシステムの初期化をバックグラウンドで完了する必要があります。オプションの値が省略された場合、遅延iノードテーブルの初期化を有効にするためにデフォルトで1になります。


3
技術的には、実際にはフォーマットが速くなるわけではありませんが、バックグラウンドでフォーマットが終了している間にファイルシステムをマウントして使用できます。
ワイザード

本当にありがとう!これは本当にうまくいきました。ドキュメント/男性は、何を探すべきかがわかるまで私にははっきりしませんでした!ほんとに!
立ち往生

私はこれを使用するために必要な最小カーネルバージョンに関する参照を見ましたか?
Xarses

8

デフォルトクイックフォーマットです。ext *ボリュームの構造のセットアップは、NTFSボリュームの場合よりもはるかに時間がかかります。スーパーブロックの数を減らすことはできますが、それでもそれだけです。


情報のおかげで、私のデバイスは約20時間前に2TBのUSB2ディスクのフォーマットを開始しましたが、まだ進行中です-デバイスは低電力です、64MBのRAMを搭載したRaspberry Piだと思います。フォーマットを開始するために、フォーマット中の同じUSBディスクにページングを設定する必要がありました。これを高速化するためにできることはありますか?パフォーマンスを1時間または2時間未満にできたら素晴らしいと思いますか?
立ち往生

2
lazy_itable_initは私のためにトリックをしました。これはデフォルトではなく、フォーマットをより速くします
立ち往生

4

主に大きなファイルを保存する場合は、iノードあたりのバイト数を増やして、作成されるiノードの数を減らすことができます。これにより、作成時間を大幅に短縮できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.