VMware Workstation PlayerでCentOS仮想マシンのディスクを拡張する

Linux Linux

自宅パソコン内に作成した仮想マシンのrootディスクを拡張した時の備忘です。

【環境】
ホスト:Windows10
仮想基盤:VMware Workstation 15 Player
仮想マシンOS:CentOS Linux release 7.9.2009 (Core)

作業前の状態確認

# fdisk -l

コマンドで現在のディスクの状態を確認する。

# fdisk -l

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

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

Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト


Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

ファイルシステムの状態も確認しておく。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  2.0G     0  2.0G    0% /dev
tmpfs                     2.0G     0  2.0G    0% /dev/shm
tmpfs                     2.0G   12M  2.0G    1% /run
tmpfs                     2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/mapper/centos-root    17G  2.6G   15G   15% /
/dev/sda1                1014M  195M  820M   20% /boot
tmpfs                     407M     0  407M    0% /run/user/0

VMware Workstation Player ではオンラインでの拡張はできないようなので、仮想マシンを停止させる。

ディスク容量拡張

仮想マシン設定の編集をクリックする。

VMware Workstation Player
VMware Workstation Player

ハードディスク(SCSI)メニューのディスクユーティリティーの項目から「展開」をクリック。

ディスクの拡張
ディスクの拡張

ディスクのサイズを指定して「展開」をクリックする。

仮想ディスクの最大サイズを指定。
仮想ディスクの最大サイズを指定。
ディスクは正常に拡張されました。
ディスクは正常に拡張されました。

OS上での展開

ディスク状態確認

仮想マシンを起動し、fdisk -l でディスクの状態を確認する。

変更した容量で認識されているが、まだ使える状態に無い。

# fdisk -l

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

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

Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト


Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

当然、ファイルシステムとしても認識されていない。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  2.0G     0  2.0G    0% /dev
tmpfs                     2.0G     0  2.0G    0% /dev/shm
tmpfs                     2.0G   12M  2.0G    1% /run
tmpfs                     2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/mapper/centos-root    17G  2.6G   15G   15% /
/dev/sda1                1014M  195M  820M   20% /boot
tmpfs                     407M     0  407M    0% /run/user/0

パーティション拡張

parted コマンドでパーティションを拡張する。

# parted /dev/sda
GNU Parted 3.1
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) print        # 現在のパーティション状態を出力
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sda: 26.8GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

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

(parted) resizepart 2    # 番号が「2」のディスクを拡張する
終了?  [21.5GB]? 100%    # 割り当てる容量を指定す(今回は全て使用)
(parted) print        # 再度パーティションの状態を出力
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sda: 26.8GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  1075MB  1074MB  primary  xfs               boot
 2    1075MB  26.8GB  25.8GB  primary                    lvm
# 拡張されている事を確認

(parted) quit
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

PV拡張

パーティション拡張後はPV(フィジカルボリューム)として認識させる必要がある。

まずは状態確認する。

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <19.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4863
  Free PE               0
  Allocated PE          4863
  PV UUID               BHC44w-NyhD-zKLb-vgQv-OHu5-JXoj-90Z2sN

もしくは、

# pvscan
  PV /dev/sda2   VG centos          lvm2 [<19.00 GiB / 0    free]
  Total: 1 [<19.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 0 [0   ]

拡張する。

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

拡張されたことを確認。

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <24.00 GiB / not usable 2.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              6143
  Free PE               1280
  Allocated PE          4863
  PV UUID               BHC44w-NyhD-zKLb-vgQv-OHu5-JXoj-90Z2sN

もしくは、

 # pvscan
  PV /dev/sda2   VG centos          lvm2 [<24.00 GiB / 5.00 GiB free]
  Total: 1 [<24.00 GiB] / in use: 1 [<24.00 GiB] / in no VG: 0 [0   ]

LV及びファイルシステムの拡張

論理的なボリューム、LV(ロジカルボリューム)を拡張し、併せてファイルシステムのサイズ変更も行う。
LVの拡張とファイルシステムサイズ変更は別々にコマンドが用意されているが、論理ボリュームのサイズを拡張するlvextendコマンドのオプションで一気に実行できるので、そのやり方で実施する。

まずはLVとファイルシステムの状態を確認する。

 # lvdisplay /dev/centos/root
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                4gkcVd-uHDY-wwBP-tsGb-JWcO-PLmM-j82mXj
  LV Write Access        read/write
  LV Creation host, time localhost, 2023-02-05 12:39:16 +0900
  LV Status              available
  # open                 1
  LV Size                <17.00 GiB
  Current LE             4351
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
 # df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  2.0G     0  2.0G    0% /dev
tmpfs                     2.0G     0  2.0G    0% /dev/shm
tmpfs                     2.0G   12M  2.0G    1% /run
tmpfs                     2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/mapper/centos-root    17G  2.6G   15G   15% /
/dev/sda1                1014M  195M  820M   20% /boot
tmpfs                     407M     0  407M    0% /run/user/0

LV拡張コマンドを実行する。

# lvextend -rl +100%FREE /dev/centos/root
  Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to <22.00 GiB (5631 extents).
  Logical volume centos/root successfully resized.
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4455424, 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 4455424 to 5766144

オプションの順番を間違えるとエラーになるので、要注意。

# lvextend -lr +100%FREE /dev/centos/root
  Invalid argument for --extents: r
  Error during parsing of command line.

結果を確認する。

# lvdisplay /dev/centos/root
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                4gkcVd-uHDY-wwBP-tsGb-JWcO-PLmM-j82mXj
  LV Write Access        read/write
  LV Creation host, time localhost, 2023-02-05 12:39:16 +0900
  LV Status              available
  # open                 1
  LV Size                <22.00 GiB
  Current LE             5631
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  2.0G     0  2.0G    0% /dev
tmpfs                     2.0G     0  2.0G    0% /dev/shm
tmpfs                     2.0G   12M  2.0G    1% /run
tmpfs                     2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/mapper/centos-root    22G  2.6G   20G   12% /
/dev/sda1                1014M  195M  820M   20% /boot
tmpfs                     407M     0  407M    0% /run/user/0

これで拡張完了。

タイトルとURLをコピーしました