Linux(centos)でファイル容量を追加する(OCI)


やりたいこと

ルートボリュームを拡張して容量を増やしたい。
OCI上で作成したcentosのカスタムイメージのブートボリュームサイズが74Gあるはずなのに、ルートに27Gしか割り当てられていない。

# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   27G   21G  5.7G  79% /  <-ルートの容量少ない
devtmpfs                 7.7G     0  7.7G   0% /dev
tmpfs                    7.7G  666M  7.0G   9% /dev/shm
tmpfs                    7.7G  9.3M  7.7G   1% /run
tmpfs                    7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/sda1                497M  377M  121M  76% /boot
tmpfs                    1.6G     0  1.6G   0% /run/user/1001
tmpfs                    1.6G  8.0K  1.6G   1% /run/user/42
tmpfs                    1.6G     0  1.6G   0% /run/user/0

lsblkで確認すると、ルートボリュームはちゃんと74Gある。
これをsda2のパーテーションのcentos-rootの論理ボリュームに割り当てられればいいはず。

# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   74G  0 disk
|-sda1            8:1    0  500M  0 part /boot
`-sda2            8:2    0 29.5G  0 part
  |-centos-root 253:0    0 26.5G  0 lvm  /  <-この論理ボリュームのサイズを変更したい
  `-centos-swap 253:1    0    3G  0 lvm  [SWAP]

手順

  1. パーテーションの拡張
  2. 物理ボリュームの拡張
  3. ボリュームグループの拡張
  4. 論理ボリュームの拡張

パーテーションの拡張

まず、sda2のパーテーションを拡張する。
パーテーションの拡張にはgrowpartコマンドを使う。インストールされていなければ以下のコマンドでインストールする。

yum install cloud-utils-growpart

拡張したいのがsda2なので、以下のようにする。

growpart /dev/sda 2

パーテーションが拡張されていることを確認

lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   74G  0 disk
|-sda1            8:1    0  500M  0 part /boot
`-sda2            8:2    0 73.5G  0 part
  |-centos-root 253:0    0 26.5G  0 lvm  /
  `-centos-swap 253:1    0    3G  0 lvm  [SWAP]

物理ボリュームの拡張

今の状態だと、以下のように物理ボリュームがもとの29Gのままなので、拡張したパーテーションに合わせてリサイズする。

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               29.51 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              7554
  Free PE               10
  Allocated PE          7544
  PV UUID               NmQczi-IDdX-u2ur-R2rS-kRqC-3Rqh-RgaM02

パーテーションのリサイズ

# pvresize /dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

74Gに拡張されていることを確認

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <73.51 GiB / not usable 1.98 MiB  <-増えた
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              18818
  Free PE               11274  <-増えた
  Allocated PE          7544
  PV UUID               NmQczi-IDdX-u2ur-R2rS-kRqC-3Rqh-RgaM02

ボリュームグループの拡張

最終的に論理ボリュームのサイズを変更したいわけだが、論理ボリュームを拡張するためには属しているボリュームグループのサイズに余裕がなければいけない。

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                lIVi2W-P3rg-OAYO-e9bC-o5yJ-j4js-tBo1DY
  LV Write Access        read/write
  LV Creation host, time master-cent-7, 2017-03-15 11:42:42 +0900
  LV Status              available
  # open                 2
  LV Size                3.00 GiB
  Current LE             768
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos  <-所属しているボリュームグループ
  LV UUID                OB6yWT-sVMJ-VBBz-2zJs-3fAM-BHg2-PThXeX
  LV Write Access        read/write
  LV Creation host, time master-cent-7, 2017-03-15 11:42:42 +0900
  LV Status              available
  # open                 1
  LV Size                <26.47 GiB <-最終的にはこれを増やしたい
  Current LE             6776
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

ボリュームグループは物理ボリュームの拡張をすると勝手に増えているはず。

# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <73.51 GiB   <-ちゃんと74G近くまで容量がある
  PE Size               4.00 MiB
  Total PE              18818
  Alloc PE / Size       7544 / <29.47 GiB
  Free  PE / Size       11274 / <44.04 GiB
  VG UUID               FcpCT9-veHG-wGYW-iiu0-OumY-nROp-sPTHIm

論理ボリュームの拡張

lvextendで容量を増やす。+40Gは追加する容量のサイズを指定する。

# lvextend -L +40G /dev/centos/root
  Size of logical volume centos/root changed from <26.47 GiB (6776 extents) to <66.47 GiB (17016 extents).
  Logical volume centos/root successfully resized.

lvdisplayで正しく追加されていることを確認

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                lIVi2W-P3rg-OAYO-e9bC-o5yJ-j4js-tBo1DY
  LV Write Access        read/write
  LV Creation host, time master-cent-7, 2017-03-15 11:42:42 +0900
  LV Status              available
  # open                 2
  LV Size                3.00 GiB
  Current LE             768
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                OB6yWT-sVMJ-VBBz-2zJs-3fAM-BHg2-PThXeX
  LV Write Access        read/write
  LV Creation host, time master-cent-7, 2017-03-15 11:42:42 +0900
  LV Status              available
  # open                 1
  LV Size                <66.47 GiB   <-増えている
  Current LE             17016
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

ファイルシステムの拡張

xfs_growfsでファイルシステムを拡張する。

# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=1734656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=6938624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=3388, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 6938624 to 17424384

これで期待通りルートの容量が増えた。

# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   67G   21G   46G  32% /       <-期待通り増えている
devtmpfs                 7.7G     0  7.7G   0% /dev
tmpfs                    7.7G  666M  7.0G   9% /dev/shm
tmpfs                    7.7G  9.2M  7.7G   1% /run
tmpfs                    7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/sda1                497M  377M  121M  76% /boot
tmpfs                    1.6G     0  1.6G   0% /run/user/1001
tmpfs                    1.6G   12K  1.6G   1% /run/user/42
tmpfs                    1.6G     0  1.6G   0% /run/user/0