zaki work log

作業ログやら生活ログやらなんやら

[ESXi] CentOS 7のストレージ(XFS)を拡張する

CentOS 7 (on ESXi 6.5)のストレージを増やしたい。
LVMわかってないので、参考記事ベースに作業してみたらうまく行ったという内容。

[zaki@example ~]$ df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  1.9G     0  1.9G    0% /dev
tmpfs                     1.9G     0  1.9G    0% /dev/shm
tmpfs                     1.9G  9.3M  1.9G    1% /run
tmpfs                     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root    14G  6.7G  6.8G   50% /
/dev/sda1                1014M  204M  811M   21% /boot
tmpfs                     379M     0  379M    0% /run/user/1000

こいつの/を増やしたい。
とりあえず40GBくらいにしてみよう。

で、単純にESXiでディスクサイズを増やしても、あくまでディスクサイズが増えただけで、OSが認識するパーティションサイズには変化はないので、OSで認識させるためにいろいろ手を入れる必要がある。

ディスクサイズの増加

といってもまずは大前提として、ディスクサイズを増加する。
OSはシャットダウン状態して、「編集」でディスクサイズを変更。

f:id:zaki-hmkc:20200904000223p:plain

IaaS的にはストレージサイズが40GBになりました。

f:id:zaki-hmkc:20200904000425p:plain

ただ、OSをブートしてdfしても、パーティションサイズは変化無し。

[zaki@example ~]$ df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  1.9G     0  1.9G    0% /dev
tmpfs                     1.9G     0  1.9G    0% /dev/shm
tmpfs                     1.9G  9.3M  1.9G    1% /run
tmpfs                     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root    14G  6.7G  6.8G   50% /
/dev/sda1                1014M  204M  811M   21% /boot
tmpfs                     379M     0  379M    0% /run/user/1000

ただし、fdiskすると、この通り40GBになっている。

[zaki@example ~]$ sudo fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000a6951

[...]

※ ディスクサイズを変更せずに追加で新規作成する場合はこちら。(やってることは同じ)

zaki-hmkc.hatenablog.com

パーティション作成

fdiskパーティションを作成する。

fdisk起動

[zaki@example ~]$ sudo fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


コマンド (m でヘルプ):

パーティション

コマンド (m でヘルプ): p

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000a6951

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    33554431    15727616   8e  Linux LVM

コマンド (m でヘルプ):

空きストレージにパーティション作成

コマンド (m でヘルプ): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
パーティション番号 (3,4, default 3):
最初 sector (33554432-83886079, 初期値 33554432):
初期値 33554432 を使います
Last sector, +sectors or +size{K,M,G} (33554432-83886079, 初期値 83886079):
初期値 83886079 を使います
Partition 3 of type Linux and of size 24 GiB is set

コマンド (m でヘルプ):

確認

コマンド (m でヘルプ): p

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000a6951

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    33554431    15727616   8e  Linux LVM
/dev/sda3        33554432    83886079    25165824   83  Linux

コマンド (m でヘルプ):

システムタイプをLinux LVMに変更

コマンド (m でヘルプ): t
パーティション番号 (1-3, default 3): 3
Hex code (type L to list all codes): L

 0  空              24  NEC DOS         81  Minix / 古い Li bf  Solaris
 1  FAT12           27  Hidden NTFS Win 82  Linux スワップ  c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隠し C: ド c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 拡張領域  c7  Syrinx
 5  拡張領域        41  PPC PReP Boot   86  NTFS ボリューム da  非 FS データ
 6  FAT16           42  SFS             87  NTFS ボリューム db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux プレーン  de  Dell ユーティリ
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt
 9  AIX ブート可能  4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access
 a  OS/2 ブートマネ 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad ハ eb  BeOS fs
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT
 f  W95 拡張領域 (L 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC
11  隠し FAT12      56  Golden Bow      a8  Darwin UFS      f1  SpeedStor
12  Compaq 診断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor
14  隠し FAT16 <32M 61  SpeedStor       ab  Darwin ブート   f2  DOS セカンダリ
16  隠し FAT16      63  GNU HURD または af  HFS / HFS+      fb  VMware VMFS
17  隠し HPFS/NTFS  64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI スワップ   fd  Linux raid 自動
1b  隠し W95 FAT32  70  DiskSecure Mult bb  隠し Boot Wizar fe  LANstep
1c  隠し W95 FAT32  75  PC/IX           be  Solaris ブート  ff  BBT
1e  隠し W95 FAT16  80  古い Minix
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

コマンド (m でヘルプ):

確認して確定

コマンド (m でヘルプ): p

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000a6951

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    33554431    15727616   8e  Linux LVM
/dev/sda3        33554432    83886079    25165824   8e  Linux LVM

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。

WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
ディスクを同期しています。
[zaki@example ~]$

LVMでディスク拡張

ボリューム作成

[zaki@example ~]$ sudo pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

ボリュームグループ確認

[zaki@example ~]$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <15.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              3839
  Free PE               0
  Allocated PE          3839
  PV UUID               cJBfmV-wN8W-XaPl-aqSf-Mkf0-ZbTO-jac5Bs

  "/dev/sda3" is a new physical volume of "24.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name
  PV Size               24.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               kPA6cW-KxYF-UnzC-EwBK-XOuv-t1Gx-Qe0SWE

[zaki@example ~]$

/dev/sda3が新しく作成されたボリューム。
NEWが付いてない方の、VG Name: centosが既存ボリューム

既存ボリュームに割り当て

↑で確認したVG Name: centos/dev/sda3を割り当て

[zaki@example ~]$ sudo vgextend centos /dev/sda3
  Volume group "centos" successfully extended
[zaki@example ~]$

以下のように、/dev/sda3centosに割り当てられる。

[zaki@example ~]$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <15.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              3839
  Free PE               0
  Allocated PE          3839
  PV UUID               cJBfmV-wN8W-XaPl-aqSf-Mkf0-ZbTO-jac5Bs

  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               centos
  PV Size               24.00 GiB / not usable 4.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              6143
  Free PE               6143
  Allocated PE          0
  PV UUID               kPA6cW-KxYF-UnzC-EwBK-XOuv-t1Gx-Qe0SWE

論理ボリュームの割り当て

現在の状態はlvdisplayを使って以下の通り。

[zaki@example ~]$ sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                lxDhMq-KcZI-PH7Y-438p-jCcX-eMa2-iAxwBa
  LV Write Access        read/write
  LV Creation host, time example.esxi, 2019-10-01 21:26:42 +0900
  LV Status              available
  # open                 1
  LV Size                13.39 GiB
  Current LE             3429
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                Y9T41g-4UdF-ttnG-K7uw-Lw0c-MrbX-KnpPSz
  LV Write Access        read/write
  LV Creation host, time example.esxi, 2019-10-01 21:26:42 +0900
  LV Status              available
  # open                 2
  LV Size                1.60 GiB
  Current LE             410
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

[zaki@example ~]$

2個出力されてるボリュームのうち、最初のLV Path: /dev/centos/rootを拡張する。

[zaki@example ~]$ sudo lvextend -l +100%FREE /dev/centos/root
  Size of logical volume centos/root changed from 13.39 GiB (3429 extents) to 37.39 GiB (9572 extents).
  Logical volume centos/root successfully resized.

LVMが37.39GiBに拡張されたというメッセージ出力。

パーティションサイズの拡張

[zaki@example ~]$ sudo xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=877824 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=3511296, 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 3511296 to 9801728
[zaki@example ~]$ df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  1.9G     0  1.9G    0% /dev
tmpfs                     1.9G     0  1.9G    0% /dev/shm
tmpfs                     1.9G  9.3M  1.9G    1% /run
tmpfs                     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root    38G  6.7G   31G   18% /
/dev/sda1                1014M  204M  811M   21% /boot
tmpfs                     379M     0  379M    0% /run/user/1000

よし、増えた。


うろ覚えだけどRHEL7も有効 (1年くらい前に参考情報をもとに一度ストレージを増やした)。
Debian系はたぶん違うような気がする。


参考

https://rin-ka.net/centos7-lvm-extend/rin-ka.net

qiita.com

qiita.com