カテゴリー別アーカイブ: Linux

LVM上のファイルシステムを拡張する

状況

  • ルートファイルシステムの残り容量が10%を切ってしまった。
  • ルートファイルシステムはLVM上にあり未割当のブロックはまだ残っている。
  • ルートファイルシステムはext4。
$ df -h
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/fs-root      11G  9.7G  486M  96% /
none                      4.0K     0  4.0K   0% /sys/fs/cgroup
udev                      1.9G  4.0K  1.9G   1% /dev
tmpfs                     382M  592K  382M   1% /run
none                      5.0M     0  5.0M   0% /run/lock
none                      1.9G     0  1.9G   0% /run/shm
none                      100M     0  100M   0% /run/user
/dev/sda1                 228M   60M  157M  28% /boot

$ sudo lvdisplay /dev/fs/root
  --- Logical volume ---
  LV Path                /dev/fs/root
  LV Name                root
  VG Name                fs
  LV UUID                jLrK9R-W1PT-zzmx-ep27-IdPY-H2Tf-jcyMXC
  LV Write Access        read/write
  LV Creation host, time , 
  LV Status              available
  # open                 1
  LV Size                10.97 GiB
  Current LE             2809
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               fs
  PV Size               37.03 GiB / not usable 1.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              9480
  Free PE               3106
  Allocated PE          6374
  PV UUID               z34vz3-0aVt-wFjy-s81b-c88D-XIOc-Kxqgti

pvdisplayコマンドの結果から未割当のブロック(Free PE)が3106残っていることが分かります。PEのサイズが4MiBなので、3106のPEは約12GiBです。

対応

未割当のブロックが12GiBあるので、この一部(3GiB)をROOT FSのLVに追加します。

$ sudo lvextend -L +3G /dev/mapper/fs-root
  Extending logical volume root to 13.97 GiB
  Logical volume root successfully resized
$ sudo lvdisplay /dev/fs/root
  --- Logical volume ---
  LV Path                /dev/fs/root
  LV Name                root
  VG Name                fs
  LV UUID                jLrK9R-W1PT-zzmx-ep27-IdPY-H2Tf-jcyMXC
  LV Write Access        read/write
  LV Creation host, time , 
  LV Status              available
  # open                 1
  LV Size                13.97 GiB
  Current LE             3577
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

これでROOT FSのLVサイズが約14GiBに増えました。しかしこのままでは、ファイルシステムは増加した部分を使用できません。

ファイルシステムがLVM上で拡張した部分を使えるようにファイルシステム自体を拡張します。通常ならばシステムを停止またはアンマウントしてファイルシステムを拡張する必要がありますが、ext4ファイルシステムはライブリサイズに対応しているのでこのまま進めます。

$ sudo resize2fs /dev/fs/root
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/fs/root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/fs/root is now 3662848 blocks long.

$ df -h
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/fs-root      14G  9.7G  3.3G  75% /
none                      4.0K     0  4.0K   0% /sys/fs/cgroup
udev                      1.9G  4.0K  1.9G   1% /dev
tmpfs                     382M  596K  382M   1% /run
none                      5.0M     0  5.0M   0% /run/lock
none                      1.9G     0  1.9G   0% /run/shm
none                      100M     0  100M   0% /run/user
/dev/sda1                 228M   60M  157M  28% /boot

これでROOT FSの容量が最初の11GiBから14GiBに増え、その結果使用量が75%になりました。

参照

論理ボリュームを拡大するには – Linux Tips @IT

ログファイルへの書き込みを追いかける

目標

ログファイルに処理記録が書き出される時に、追加された書き込みを見守りたい。

方法

ファイルに追加された書き込みを追いかけるには、tailコマンドに-Fオプションを付けて使用します。

$ tail -F logfile

これで追加された書き込みが標準出力に表示され続けます。

tailコマンドには似たオプションの-fがあります。これも同じく追記された部分が表示されますが、ログローテートなどでファイル名が変更された時の動作が異なります。

オプション ファイル名が変わった時の動作
-F 同名のファイルを開いて追記を追いかける。
-f そのまま追記を待ち続ける。

ログを追いかけている時にファイル名が変わるのは大抵ログローテートによるものなので、新しいログファイルを開いて追記を追いかけれれる-Fオプションを使うことになります。

lessコマンドもある

ログの追記を見守りたいが、同時に過去の書き込みも遡って読みたい時にはlessコマンドが便利です。

$ less logfile

Gキーを押すと常にファイルの最後が表示され、再度Gを押すとその時の最後に更新されます。

そしてFキーを押すとtail -fと同じくファイルに追記されるたびに更新されます。ただし追記から更新までのタイムラグがtail -fよりも少し大きくなります。また-fオプションと同じなので、ファイル名が変更されても同名の新しいファイルには自動では切り替わりません1

脚注

  1. lessのコマンド入力モードでhキーを押してヘルプを表示させれ戻ると、開いていたファイルと同名の新しいファイルの内容が表示されます。逆に元のファイルに戻りたい時にはどうしたら良いのか?