Back to page

− Links

 Print 

Gentoo Linuxな生活​/16TBを超えるExt4ファイルシステムで悩む :: Nest Of Hawk

xpwiki:Gentoo Linuxな生活/16TBを超えるExt4ファイルシステムで悩む

Gentoo Linuxな生活​/システム管理関連[1]

HDDも大容量化 anchor.png[2]

最近HDDも大容量になりました。6TB,8TB,12TBとか普通に売られるようになってきました。んで、最近HDDを8TB×4でRAIDを組み、LVMで25TBの領域を作ってみようと、lvextend,resize2fsをやってみたら、エラーになってしまいましたので、やり方をまとめておこうと思います。

Page Top

なぜ16TBの領域に壁があるか anchor.png[3]

もともと、Ext4はinodeの最大数が32bitでした。なので、32bit×4096byte(1inodeのサイズ)で16TiBが最大サイズということでした。なので、古い時期のe2fsprogsで作られたExt4ファイルシステムは上記32bitのinodeテーブルなんですよ…いやー今どきそりゃないでしょ。じゃあどうすればいいのでしょうか。今どきCPUが64bitなんだから、inode数も64bitになればいいんでねえの?いや、まさしくそのとおりですよ。もしinode桁数が64bitならば、理論上65536EiBまで使えることになります。まぁ、実態は1EiBなんですけどね。ただしこの64bit inodeテーブルは、Linuxカーネル3.7以上、e2fsprogsが1.42.6以上である必要があります。 2020年、今やLinuxカーネルは4.19、e2fsprogsも1.45です。余裕で要件をクリアしているので、上記拡張に対応してみたいと思います。

Page Top

inodeテーブルを64bitに拡張する anchor.png[4]

以下の手順で行ってみます。

まず、拡張するパーティションをアンマウントします。そのパーティションをfsckを行います。

# e2fsck -Df /dev/path/to/disk

pass1~pass6までチェックを実行します。ボリュームが大きいとそれなりに時間がかかります。

んで、fsckしたパーティションを64bitテーブルに変換します。

# resize2fs -b /dev/path/to/disk

で、さらにパーティションサイズを拡張します。

# resize2fs /dev/path/to/disk

ちなみに、上記処理にて、10TBの領域を25TBに拡張するのに、1時間ぐらいかかります。で、終了したあとできれば一旦リブートしてあげたほうが安全です。

今日び、記憶領域も大容量化甚だしいので、必要な処理になるかと思います!お試しあれ…


Last-modified: 2020-01-02 (Thu) 00:51:23 (JST) (950d) by maruo