CentOS7で/と/homeを別に作られたので対処する

要は論理ボリュームを消して統合させたい

なぜこうなった

CentOS7を適当にインストールして使ってるとオーマイガーな事態
100GBのHDDに自動インストールかけるとこんなことに

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    50G  2.4G   48G    5% /
devtmpfs                  911M     0  911M    0% /dev
tmpfs                     921M     0  921M    0% /dev/shm
tmpfs                     921M  8.5M  912M    1% /run
tmpfs                     921M     0  921M    0% /sys/fs/cgroup
/dev/mapper/centos-home    48G   33M   48G    1% /home
/dev/sda1                 497M  168M  330M   34% /boot
tmpfs                     185M     0  185M    0% /run/user/0

マウントの/に全部入れて使う派としては最悪なパターン
/homeと/を50GBで分けずに/で100GB使ってその中で/homeも配置されるはずだった
以前CentOS7入れたときにはこうなっていなかったのでインストール時に確認せず
完全に気を抜いていた

ちなみに今回はCentOS7のデフォルトファイルシステムになっているXFSを利用

早速消していく

まずここからの作業は必ずSSHを使ってもいいけどrootで行うべし
当然ながら/homeに置いてあるファイルを使用するプロセスやユーザがいないかを
lsofコマンドなどを使って確認、SSHでユーザログインしていてもダメなので注意

/homeのファイルを全部コピーしてバックアップする

cp -a /home /home_bak

/homeをアンマウントする
/dev/mapper/centos-homeの部分はdf -hの結果から引っ張る

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    50G  2.4G   48G    5% /
devtmpfs                  911M     0  911M    0% /dev
tmpfs                     921M     0  921M    0% /dev/shm
tmpfs                     921M  8.5M  912M    1% /run
tmpfs                     921M     0  921M    0% /sys/fs/cgroup
/dev/mapper/centos-home    48G   33M   48G    1% /home
/dev/sda1                 497M  168M  330M   34% /boot
tmpfs                     185M     0  185M    0% /run/user/0
# umount /dev/mapper/centos-home
# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    50G  2.4G   48G    5% /
devtmpfs                  911M     0  911M    0% /dev
tmpfs                     921M     0  921M    0% /dev/shm
tmpfs                     921M  8.5M  912M    1% /run
tmpfs                     921M     0  921M    0% /sys/fs/cgroup
/dev/sda1                 497M  168M  330M   34% /boot
tmpfs                     185M     0  185M    0% /run/user/0

次に論理ボリュームを消す

# lvdisplay -C
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home centos -wi-a----- 47.45g
  root centos -wi-ao---- 50.00g
  swap centos -wi-ao----  2.00g
# lvremove /dev/mapper/centos-home
Do you really want to remove active logical volume home? [y/n]: y
  Logical volume "home" successfully removed
# lvdisplay -C
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 50.00g
  swap centos -wi-ao----  2.00g

そして/dev/mapper/centos-homeに割り当てられていた容量を
/dev/mapper/centos-rootに追加割り当てすると
50Gから97.51Gになっているのが確認できる

# lvdisplay -C
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 50.00g
  swap centos -wi-ao----  2.00g
# lvextend -l +100%FREE /dev/mapper/centos-root
  Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 97.51 GiB (24962 extents).
  Logical volume root successfully resized.
# lvdisplay -C
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 97.51g
  swap centos -wi-ao----  2.00g

大元の論理ボリュームがサイズ拡大できたのでファイルシステムも拡大させる
/dev/mapper/centos-rootが98Gになってるのを確認

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    50G  2.4G   48G    5% /
devtmpfs                  911M     0  911M    0% /dev
tmpfs                     921M     0  921M    0% /dev/shm
tmpfs                     921M  8.5M  912M    1% /run
tmpfs                     921M     0  921M    0% /sys/fs/cgroup
/dev/sda1                 497M  168M  330M   34% /boot
tmpfs                     185M     0  185M    0% /run/user/0
[root@monitoring01 /]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13107200 to 25561088
[root@monitoring01 /]# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    98G  2.4G   96G    3% /
devtmpfs                  911M     0  911M    0% /dev
tmpfs                     921M     0  921M    0% /dev/shm
tmpfs                     921M  8.5M  912M    1% /run
tmpfs                     921M     0  921M    0% /sys/fs/cgroup
/dev/sda1                 497M  168M  330M   34% /boot
tmpfs                     185M     0  185M    0% /run/user/0

fstabから/dev/mapper/centos-homeを消す
/dev/mapper/centos-homeが記述されている行を消すだけでいい

# vi /etc/fstab

先ほどバックアップした/homeをcpコマンドで復元する
復元が確認できれば/home_bakは削除する

最後にrebootをかけて正常に起動するかを確認すれば完了

参考にしたサイト

検索して出てきたのがわかりやすいRed Hat Enterprise Linuxマニュアル
このエントリーに書いてるのはほぼこのマニュアル通りだったりする
4.4.12. 論理ボリュームの削除
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Logical_Volume_Manager_Administration/LV_remove.html
4.4.14. 論理ボリュームの拡張
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Logical_Volume_Manager_Administration/lv_extend.html
8.4. XFS ファイルシステムのサイズの拡大
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/xfsgrow.html