WEBでアレコレ調べてるときに目にしたので試してみた。
容量の5%を予約ブロックとして占有している
ext4 では容量の5%を、先立って確保している
予約領域は root だけが書き込める領域で、仮にディスクの空きがなくなっても root は予約領域を使って作業ができる。
この仕組のお陰で、ディスクの空き容量が心許なくなってもしっかり動作する。
15TB の 5% って・・・
8GBのディスクを2本でRAIDを組んでいるとする。つまり15TBほどある、この5%を確保しているとすればば、800GB弱を予約ブロックとして確保しているのである。流石に多すぎないか?
ファイルを移動したりコピーするための予約ブロックとはいえ、扱うファイルは1ファイルで最大1GB程度だ、バックアップを扱ったとしても50GBくらいだ。700-800GBは使い切れない。
アーカイブ目的であれば大丈夫
デフォルトでは、ファイルシステムの 5% はフラグメントが起こらないように root ユーザー用に予約されます。非特権のプロセスがファイルシステムに書き込めなくなってからも root が使用しているデーモンは正しく動作し続けることができます (詳しくは mke2fs(8) を参照)。
最近の大容量ディスクでは、パーティションを長期アーカイブとして使用したり、システム運用に重要でない場合(/homeなど)必要以上に大きな値を設定します。予約ブロックに関する ext4 開発者の Ted Ts'o の意見は このメール を、このトピックに関する一般的な背景は このスーパーユーザの回答 を参照してください。
パーティションが以下の条件を満たしているならば、ディスク容量を増やすために予約ブロックの割合を減らしても大抵は問題ありません:
- パーティションがとても大きい (例えば 50GB 以上)
- 長期保存用のアーカイブとして使っている、頻繁にファイルを作成したり削除することがない。 Ext4 - ArchWiki
Archさんによれば、50GB以上のディスクで、データ保存が主たるディスク(頻繁に大量のファイルを作成したり消したりしない)の条件であれば、予約ブロックは消していいとのこと。つまり、徐々にファイルが溜まっていくようなバックアップ専用ディスクであれば、消して問題ないってことですね。/home
でも予約ブロックが必要以上だというのであれば、もはやいらない子なんじゃ・・・
現在のブロックの確認
sudo tune2fs -l /dev/mapper/data | grep -i Block Reserved block count: 158135746 Block size: 4096
ブロックサイズは4096 で 予約ブロック数は、、、すごいサイズだなこれ。どう考えてもいらないわこれ。
予約ブロックの容量を減らすことにした。
100GBもあれば十分だと思うんだけど、まずは1%くらいにしておきます。
20GB にする場合
sudo tune2fs -r $(( 20 * 1024* 1024 * 1024 / 4096 )) /dev/mapper/data-video
2%にする場合
sudo tune2fs -m 2 /dev/mapper/data-video