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

POPサーバに接続できない

症状

POPサーバにCourier mail server(courier-pop)を使用していますが、OSをアップデート(アップグレード)したらPOPサーバにアクセスできなくなってしまいました。

OS
Ubuntu 16.04.2 LTS
パッケージ
courier-pop

syslogには次のようなログが記録されていました。

pop3d: Connection, ip=[::ffff:xxx.xxx.xxx.xxx]
pop3d: authdaemon: s_connect() failed: No such file or directory
pop3d: LOGIN FAILED, user=user_name, ip=[::ffff:xxx.xxx.xxx.xxx]
pop3d: authentication error: No such file or directory

対応

POPサーバにアクセスできない原因は、認証デーモンが起動していないことでした。

$ sudo systemctl status courier-authdaemon
● courier-authdaemon.service - Courier Authentification Daemon
   Loaded: loaded (/lib/systemd/system/courier-authdaemon.service; disabled; ven
   Active: inactive (dead)

そこで認証デーモンを次のように起動させるとPOPサーバに問題なくサクセスできるようになりました。

$ sudo systemctl start courier-authdaemon
# システムが起動した時に自動的にスタートするようにする。
$ sudo systemctl enable courier-authdaemon

$ sudo systemctl status courier-authdaemon
● courier-authdaemon.service - Courier Authentification Daemon
   Loaded: loaded (/lib/systemd/system/courier-authdaemon.service; enabled; vend
   Active: active (running) since Tue 2017-03-28 21:46:42 JST; 13s ago
  Process: 2156 ExecStop=/usr/sbin/authdaemond stop (code=exited, status=0/SUCCE
  Process: 2169 ExecStart=/usr/sbin/authdaemond start (code=exited, status=0/SUC
 Main PID: 2171 (courierlogger)
   CGroup: /system.slice/courier-authdaemon.service
           ├─2171 /usr/sbin/courierlogger -pid=/var/run/courier/authdaemon/pid -
           ├─2172 /usr/lib/courier/courier-authlib/authdaemond
           └─2173 /usr/lib/courier/courier-authlib/authdaemond

参照

courier-authlib: s_connect() failed: No such file or directory – ask ubuntu