centos7.6における既存HDDの拡張(vmware ESXi6.7)

# 環境
**CentOS7.6**
`CentOS Linux release 7.6.1810 (Core)`

**ESXi6.7**
`6.7.0 Update 3 (Build 14320388)`

# 作業フロー
① 既存仮想HDDの拡張
② パーティションの拡張
③ PVの拡張
④ LVの拡張
⑤ ファイルシステムの拡張

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/f2a309a0-13dc-6d5a-2ff1-0afdbd3bb139.png)


# 作業① 既存仮想HDDの拡張
既存HDDを`10GB`から`20GB`に拡張し、VMを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/a1c470bf-e943-b914-61b2-dde4eadf6ba5.png)

ディスク容量は増設されていることが確認できました。
**`lsblk -i`：ディスク容量確認**
```text:ディスク容量確認
# lsblk -i
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk                  ### 増設対象 ###
|-sda1            8:1    0    1G  0 part /boot
`-sda2            8:2    0    9G  0 part
  |-centos-root 253:0    0    8G  0 lvm  /
  `-centos-swap 253:1    0    1G  0 lvm  [SWAP]
sr0              11:0    1 1024M  0 rom
```

この時点ではパーティション容量は増えていません。
**`parted -l`：パーティション容量確認**
```text:パーティション事前確認
# parted -l
モデル: VMware Virtual disk (scsi)
ディスク /dev/sda: 21.5GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  1075MB  1074MB  primary  xfs               boot
 2    1075MB  10.7GB  9663MB  primary                    lvm      ### 増設対象 ###
```





# 作業② パーティションの拡張
partedからパーティション容量を拡張します。
**`parted`：パーティション設定**
```text:パーティション拡張①
# parted
GNU Parted 3.1
/dev/sda を使用
GNU Parted へようこそ！ コマンド一覧を見るには 'help' と入力してください。
(parted) help
  align-check TYPE N            パーティション N のアライメント(TYPE: min|opt)をチェックする
  help [コマンド]               ヘルプ表示。コマンド指定でそのヘルプを表示
  mklabel,mktable ラベルの種類  新しいラベル(パーティションテーブル)を作る
  mkpart パーティションの種類 [ファイルシステムの種類] 開始 終了
        　　　　　　　　　　　　パーティションを作る
  name NUMBER 名前              パーティションに名前をつける
  print [devices|free|list,all|NUMBER]
        　　　　　　　　　　　  パーティションテーブルや、利用可能なデバイス、空き領域、
        　　　　　　　　　　　  見つかった全てのパーティション、あるいは特定のパーティションについて表示する
  quit                          プログラムを終了する
  rescue 開始 終了              開始、終了で指定した範囲付近にあるパーティションを復活させる

  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                     パーティションを削除する
  select デバイス               操作するデバイスを選択
  disk_set FLAG STATE           選択したデバイスの FLAG を変更
  disk_toggle [FLAG]            選択したデバイスの FLAG の状態をトグル
  set NUMBER フラグ 状態        ファイルシステムのフラグと状態を設定する
  toggle [NUMBER [FLAG]]        パーティションのフラグの状態を反転する
  unit UNIT                     デフォルトの単位を UNIT にする
  version                       GNU Parted のバージョンと著作権情報を表示
(parted)
(parted)
(parted) p
モデル: VMware Virtual disk (scsi)
ディスク /dev/sda: 21.5GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  1075MB  1074MB  primary  xfs               boot
 2    1075MB  10.7GB  9663MB  primary                    lvm      ### 増設対象 ###

```

パーティション番号を選択してパーティションをリサイズします。
今回はディスク拡張分を残り全て割り当てします。
**`resizepart [part num]`：リサイズ対象パーティション選択**
```text:パーティション拡張②
(parted) resizepart 2
終了?  [10.7GB]? 100%     ###容量ではなく割合で指定###
(parted)
```

拡張後の状態を確認します。
**`p`：パーティション情報一覧**

```text:パーティション拡張③
(parted) p
モデル: VMware Virtual disk (scsi)
ディスク /dev/sda: 21.5GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  1075MB  1074MB  primary  xfs               boot
 2    1075MB  21.5GB  20.4GB  primary                    lvm      ### 増設対象 ###

(parted)
```

partedを終了します。
**`q`：partedの終了**

```text:パーティション拡張④
(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

#
```



# 作業③ PVの拡張
PVを拡張します。
**`pvdisplay`：pvの確認**

```text:PV拡張①
# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2                           ### 拡張対象のPV ###
  VG Name               centos
  PV Size               <9.00 GiB / not usable 3.00 MiB     ### 拡張前の容量 ###
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              2303
  Free PE               0
  Allocated PE          2303
  PV UUID               FmO1KR-inlI-wsp1-wiIv-TDtN-4fDV-i73HlM
```

PV拡張の事前チェックを行います。

**`pvresize -tv [PV Name]`：pv拡張の事前確認**
　`-t`：チェックのみで実行を行わない
　`-v`：詳細出力
```text:PV拡張②
# pvresize -tv /dev/sda2
  TEST MODE: Metadata will NOT be updated and volumes will not be (de)activated.
    Test mode: Skipping archiving of volume group.
    Resizing volume "/dev/sda2" to 39843840 sectors.
    Resizing physical volume /dev/sda2 from 2303 to 4863 extents.
    Updating physical volume "/dev/sda2"
    Test mode: Skipping backup of volume group.
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
```
＃`0 physical volume(s) not resized`とあるので問題なさそうです

PV拡張を行います。
**`pvresize [PV Name]`：pv拡張**

```text:PV拡張③
# pvresize /dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
```
＃`0 physical volume(s) not resized`とあるので問題なさそうです

PV情報を表示します。
**`pvdisplay`：pvの確認**

```text:PV拡張④
# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <19.00 GiB / not usable 2.00 MiB     ### 拡張前は <9.00 GiB ###
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              4863
  Free PE               2560
  Allocated PE          2303
  PV UUID               FmO1KR-inlI-wsp1-wiIv-TDtN-4fDV-i73HlM
```



# 作業④ LVの拡張
LVを拡張します。
**`lvdisplay`：lvの確認**
```text:LV拡張①

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                ceMF1G-sNil-QVR2-NoQh-zuyQ-P29s-3iuauK
  LV Write Access        read/write
  LV Creation host, time dns.test.local, 2023-04-19 05:23:27 +0900
  LV Status              available
  # open                 1
  LV Size                <8.00 GiB                     ### 増設対象 ###
  Current LE             2047
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
```

VGを確認し、拡張可能なPE量を確認します。
**`vgdisplay`：vgの確認**
```text:VG確認①
# 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               <19.00 GiB
  PE Size               4.00 MiB
  Total PE              4863                                    ### PE総量 ###
  Alloc PE / Size       2303 / <9.00 GiB                        ### 現在の使用PE量 ###
  Free  PE / Size       2560 / 10.00 GiB                        ### 割り当て可能PE量 ###
  VG UUID               w7qddl-S49y-C6EX-cJ7L-FAdU-Asnb-s6NgPd
```
:::note warn
`Total PE`は4863となっていますが、以下設定ではもう少し小さい値となります。
:::

PEをLVに割り当てます。
**`lvextend -l [Total PE] [LV]`：LVの割り当て**
```text:LV拡張②
# lvextend -l 4600 /dev/mapper/centos-root
  Size of logical volume centos/root changed from <9.00 GiB (2303 extents) to <17.97 GiB (4600 extents).
  Logical volume centos/root successfully resized.


# lvextend -l 4800 /dev/mapper/centos-root
  Insufficient free space: 200 extents needed, but only 7 available


# lvextend -l 4607 /dev/mapper/centos-root
  Size of logical volume centos/root changed from <17.97 GiB (4600 extents) to <18.00 GiB (4607 extents).
  Logical volume centos/root successfully resized.
```


VGを確認し、拡張可能なPEがなくなったことを確認します。
**`vgdisplay`：vgの確認**
```text:VG確認②
# vg display
-bash: vg: コマンドが見つかりません
[root@dns ~]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  9
  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               <19.00 GiB
  PE Size               4.00 MiB
  Total PE              4863                                    ### PE総量 ###
  Alloc PE / Size       4863 / <19.00 GiB                       ### 現在の使用PE量 ###
  Free  PE / Size       0 / 0                                   ### 割り当て可能PE量 ###
  VG UUID               w7qddl-S49y-C6EX-cJ7L-FAdU-Asnb-s6NgPd
```

# 作業⑤ ファイルシステムの拡張
ファイルシステムの容量を確認します。
**`df -h`：ファイルシステム容量の確認**
　`-h`:容量をK/M/Gなどに変換
```text:容量確認
# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root   8.0G  1.1G  7.0G   14% /                     ### 増設対象 ###
devtmpfs                  484M     0  484M    0% /dev
tmpfs                     496M     0  496M    0% /dev/shm
tmpfs                     496M  7.1M  489M    2% /run
tmpfs                     496M     0  496M    0% /sys/fs/cgroup
/dev/sda1                1014M  133M  882M   14% /boot
tmpfs                     100M     0  100M    0% /run/user/0
```

ファイルシステムの拡張を実施します。
今回、**ファイルシステムがXFSなので**XFS用の拡張コマンドを適用します。
**`xfs_growfs [FileSystem]`：ファイルシステムの拡張**
```text:XFS容量拡張
xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=524032 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2096128, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2096128 to 4717568
```


ファイルシステムの容量を確認します。
**`df -h`：ファイルシステム容量の確認**
　`-h`:容量をK/M/Gなどに変換

```text:容量確認
# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    18G  1.1G   17G    7% /                     ### 増設対象 ###
devtmpfs                  484M     0  484M    0% /dev
tmpfs                     496M     0  496M    0% /dev/shm
tmpfs                     496M  7.1M  489M    2% /run
tmpfs                     496M     0  496M    0% /sys/fs/cgroup
/dev/sda1                1014M  133M  882M   14% /boot
tmpfs                     100M     0  100M    0% /run/user/0
```


# 参考
https://blog.k-san.info/expand-fs-on-centos

https://qiita.com/Higemal/items/a774986ee06ec0978c6a

https://qiita.com/Higemal/items/be1c7f2cb62f918b522f