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



## やりたいこと
ルートボリュームを拡張して容量を増やしたい。
OCI上で作成したcentosのカスタムイメージのブートボリュームサイズが74Gあるはずなのに、ルートに27Gしか割り当てられていない。
![20201128-234443.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/296083/a0f90300-c52d-0c42-556c-8c67b2a254fd.jpeg)


```
# 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
```