VMWareの仮想マシンのディスク容量を拡張する手順を記録します。
環境
- VMWare Workstation 17 Player
- AlmaLinux 8.10
拡張前のディスクの空き容量を確認する
- 「/dev/mapper/almalinux-root」の「使用%」が「94%」になっていることを確認
$ df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
devtmpfs 14144992 0 14144992 0% /dev
tmpfs 14174020 0 14174020 0% /dev/shm
tmpfs 14174020 9968 14164052 1% /run
tmpfs 14174020 0 14174020 0% /sys/fs/cgroup
/dev/mapper/almalinux-root 17811456 16694368 1117088 94% /
/dev/nvme0n1p1 1038336 463996 574340 45% /boot
tmpfs
VMwareの「仮想マシンの設定」でディスク容量を拡張する
1. VMWareを起動し、ホーム画面からディスク容量を拡張する仮想マシンを選び、「仮想マシン設定の編集」をクリックして「仮想マシン設定」の画面を開く
2. 画面左の「ハードウェア」のデバイス一覧の「ハードディスク」をクリックする
3. 画面右の「ディスクユーティリティ」の「展開」をクリックして、「ディスク容量の拡張」のポップアップ画面を表示させる
4. ポップアップ画面の「ディスク最大サイズ」を増設したい容量に設定し、「展開」をクリックする
5. ポップアップ画面が閉じられ、「仮想マシンの設定」画面に戻るので、画面下の「OK」をクリックする
6. 仮想マシン選択後の画面に戻るので、画面右の「仮想マシンの再生」をクリックして、仮想マシンを起動する
LVM(論理ボリューム管理)の設定を変更する
LVMとは
論理ボリューム管理 (LVM) は、物理ストレージ上に抽象化レイヤーを作成して、ファイルシステム、データベース、またはアプリケーションが使用できる仮想ブロックストレージデバイスである論理ストレージボリュームを作成します。物理ボリューム (PV) は、パーティションまたはディスク全体のいずれかです。これらの PV を使用すると、ボリュームグループ (VG) を作成し、利用可能なストレージから論理ボリューム (LV) 用のディスク領域のプールを作成できます。
論理ボリューム (LV) は、物理ボリュームをボリュームグループに結合することで作成できます。LV は物理ストレージを使用するよりも柔軟性があり、作成した LV は物理デバイスのパーティション再設定や再フォーマットを行わずに拡張または縮小できます。
(出典:https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/8/html-single/configuring_and_managing_logical_volumes/index#proc_providing-feedback-on-red-hat-documentation_configuring-and-managing-logical-volumes )
パーティションを作成する
現在のパーティション情報を確認する
$ sudo fdisk -l
ディスク /dev/nvme0n1: 100 GiB, 107374182400 バイト, 209715200 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x8998897b
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ
/dev/nvme0n1p1 * 2048 2099199 2097152 1G 83 Linux
/dev/nvme0n1p2 2099200 41943039 39843840 19G 8e Linux LVM
ディスク /dev/mapper/almalinux-root: 17 GiB, 18249416704 バイト, 35643392 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク /dev/mapper/almalinux-swap: 2 GiB, 2147483648 バイト, 4194304 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
-
ディスク /dev/nvme0n1: 100 GiB
よりディスクの容量は100GiBに拡張されている -
/dev/nvme0n1p1 * ... 1G 83 Linux
/dev/nvme0n1p2 ... 19G 8e Linux LVM
より、現状で/dev/nvme0n1p1がLinuxとして1G、/dev/nvme0n1p2がLinux LVMとして19Gを割り当てられている - Linux LVMのLVとして
/dev/mapper/almalinux-root 17GiB
、スワップ領域として/dev/mapper/almalinux-swap: 2 GiB
が割り当てられている
新しいパーティションを作成する
- デバイス名「/dev/nvme0n1」を指定して「fdisk」コマンドを実行し、対話形式で編集を行う
- ヘルプを表示する「m」コマンドを実行し、コマンドの一覧を確認する
$ sudo fdisk /dev/nvme0n1
fdisk (util-linux 2.32.1) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。
コマンド (m でヘルプ): m
ヘルプ:
DOS (MBR)
a 起動可能フラグを切り替えます
b 入れ子の BSD ディスクラベルを編集します
c DOS 互換フラグを切り替えます
一般
d パーティションを削除します
F パーティションのない領域を一覧表示します
l 既知のパーティションタイプを一覧表示します
n 新しいパーティションを追加します
p パーティション情報を表示します
t パーティションタイプを変更します
v パーティション情報を検証します
i パーティションの情報を表示します
その他
m このメニューを表示します
u 表示項目の単位を変更します
x 特殊機能に移動します (熟練者向け機能)
スクリプト
I ディスクのレイアウトを sfdisk 互換のスクリプトから読み込みます
O ディスクのレイアウトを sfdisk 互換のスクリプトに書き出します
保存と終了
w パーティション情報をディスクに書き込んで終了します
q 変更点を保存せずに終了します
新しいラベルを作成します
g 新しい (何もない) GPT パーティションテーブルを作成します
G 新しい (何もない) SGI (IRIX) パーティションテーブルを作成します
o 新しい (何もない) DOS パーティションテーブルを作成します
s 新しい (何もない) Sun パーティションテーブルを作成します
- 「新しいパーティションを追加します」の「n」コマンドを実行する
- 「パーティション番号」「最初のセクタ」「最終セクタ」を聞かれるので規定値のまま「Enter」で進める
コマンド (m でヘルプ): n
パーティションタイプ
p 基本パーティション (2 プライマリ, 0 拡張, 2 空き)
e 拡張領域 (論理パーティションが入ります)
選択 (既定値 p):
既定の回答 p であるものとみなします。
パーティション番号 (3,4, 既定値 3):
最初のセクタ (41943040-209715199, 既定値 41943040):
最終セクタ, +セクタ番号 または +サイズ{K,M,G,T,P} (41943040-209715199, 既定値 209715199):
新しいパーティション 3 をタイプ Linux、サイズ 80 GiB で作成しました。
- 「パーティション情報を表示します」の「p」コマンドを実行する
- 新しいパーティションである「/dev/nvme0n1p3」が追加されていることを確認する
コマンド (m でヘルプ): p
ディスク /dev/nvme0n1: 100 GiB, 107374182400 バイト, 209715200 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x8998897b
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ
/dev/nvme0n1p1 * 2048 2099199 2097152 1G 83 Linux
/dev/nvme0n1p2 2099200 41943039 39843840 19G 8e Linux LVM
/dev/nvme0n1p3 41943040 209715199 167772160 80G 83 Linux
パーティションのタイプを変更する
- 「パーティションタイプを変更します」の「t」コマンドを実行する
- 「パーティション番号」は規定値のまま「Enter」で進む
- 「16進数コード」は上記の「p」コマンドの実行結果より「Linux LVM」のIdである「8e」を入力する
コマンド (m でヘルプ): t
パーティション番号 (1-3, 既定値 3):
16 進数コード (L で利用可能なコードを一覧表示します): 8e
パーティションのタイプを 'Linux' から 'Linux LVM' に変更しました。
- 「p」コマンドでタイプが変更されていることを確認
コマンド (m でヘルプ): p
ディスク /dev/nvme0n1: 100 GiB, 107374182400 バイト, 209715200 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x8998897b
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ
/dev/nvme0n1p1 * 2048 2099199 2097152 1G 83 Linux
/dev/nvme0n1p2 2099200 41943039 39843840 19G 8e Linux LVM
/dev/nvme0n1p3 41943040 209715199 167772160 80G 8e Linux LVM
パーティション情報をディスクに書き込む
- 「パーティション情報をディスクに書き込んで終了します」の「w」コマンドを実行し、パーティション情報の設定を終了する
コマンド (m でヘルプ): w
パーティション情報が変更されました。
ディスクを同期しています。
PV(物理ボリューム)を作成する
PVの詳細情報を確認する
- 現段階ではパーティション「/dev/nvme0n1p3」にPVが作成されていないので、「/dev/nvme0n1p2」の情報のみが出力される
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/nvme0n1p2
VG Name almalinux
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 ncznOi-2FMC-vY21-UmCl-dzei-4wjm-MN8LdT
新しいPVを作成する
- 先程作成したパーティション「/dev/nvme0n1p3」に新しいPVを作成する
$ sudo pvcreate /dev/nvme0n1p3
Physical volume "/dev/nvme0n1p3" successfully created.
新しいPVが追加されたことを確認する
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/nvme0n1p2
VG Name almalinux
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 ncznOi-2FMC-vY21-UmCl-dzei-4wjm-MN8LdT
"/dev/nvme0n1p3" is a new physical volume of "80.00 GiB"
--- NEW Physical volume ---
PV Name /dev/nvme0n1p3
VG Name
PV Size 80.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID doYOGs-YKvX-pnvi-djQD-kIQE-jHCz-6q8IST
VG(ボリュームグループ)を拡張する
VGの情報を確認する
- VG nameは「almalinux」であることを確認
$ sudo vgdisplay
--- Volume group ---
VG Name almalinux
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
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
Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 0 / 0
VG UUID 281fSZ-pRkc-VfHh-wH4f-eL33-MbU6-P7FhTj
VGを拡張する
- VG「almalinux」にPV「/dev/nvme0n1p3」を追加する
$ sudo vgextend almalinux /dev/nvme0n1p3
Volume group "almalinux" successfully extended
VGのサイズが拡張したことを確認する
- 「VG size」が「<19GiB」から「98.99GiB」に拡張したことを確認
$ sudo vgdisplay
--- Volume group ---
VG Name almalinux
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 98.99 GiB
PE Size 4.00 MiB
Total PE 25342
Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 20479 / <80.00 GiB
VG UUID 281fSZ-pRkc-VfHh-wH4f-eL33-MbU6-P7FhTj
LV(論理ボリューム)を拡張する
LVの情報を確認する
- 拡張するLVのLV Pathが「 /dev/almalinux/root」であることを確認
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/almalinux/swap
LV Name swap
VG Name almalinux
LV UUID nX7F1A-gtMu-sUOL-omzr-x7fc-Ps3h-ez4nBQ
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-07-03 16:04:41 +0900
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/almalinux/root
LV Name root
VG Name almalinux
LV UUID H1e3Pu-Pz0N-ExvQ-wdwQ-z1FZ-FfRO-4yWI5L
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-07-03 16:04:41 +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
VGの空き領域を割り当てる
- VG「almalinux」の空き容量全てをLV「root」に追加する
$ sudo lvextend -l +100%FREE /dev/almalinux/root
Size of logical volume almalinux/root changed from <17.00 GiB (4351 extents) to 96.99 GiB (24830 extents).
Logical volume almalinux/root successfully resized.
LVが拡張されたことを確認する
- 「/dev/almalinux/root」の「LV Size」が「<17.00 GiB」から「96.99 GiB」に拡張されたことを確認
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/almalinux/swap
LV Name swap
VG Name almalinux
LV UUID nX7F1A-gtMu-sUOL-omzr-x7fc-Ps3h-ez4nBQ
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-07-03 16:04:41 +0900
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/almalinux/root
LV Name root
VG Name almalinux
LV UUID H1e3Pu-Pz0N-ExvQ-wdwQ-z1FZ-FfRO-4yWI5L
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-07-03 16:04:41 +0900
LV Status available
# open 1
LV Size 96.99 GiB
Current LE 24830
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
ファイルシステムを拡張する
マウント位置を確認する
- 「/dev/mapper/almalinux-root」のマウント位置「/」を確認
$ df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
devtmpfs 14144992 0 14144992 0% /dev
tmpfs 14174020 0 14174020 0% /dev/shm
tmpfs 14174020 9960 14164060 1% /run
tmpfs 14174020 0 14174020 0% /sys/fs/cgroup
/dev/mapper/almalinux-root 17811456 16699468 1111988 94% /
/dev/nvme0n1p1 1038336 463996 574340 45% /boot
tmpfs 2834804 20 2834784 1% /run/user/1000
ファイルシステムを拡張する
$ sudo xfs_growfs /
meta-data=/dev/mapper/almalinux-root isize=512 agcount=4, agsize=1113856 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=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 log 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 25425920
- xfsとは
XFS は、拡張性が高く、高性能で堅牢な、成熟した 64 ビットのジャーナリングファイルシステムで、1 台のホストで非常に大きなファイルおよびファイルシステムに対応します。Red Hat Enterprise Linux 8 ではデフォルトのファイルシステムになります。
(出典:https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/8/html/managing_file_systems/getting-started-with-xfs_managing-file-systems )
ファイルシステムが拡張されたことを確認する
- 「/dev/mapper/almalinux-root」の「使用%」が「94%」から「17%」に下がり、空き容量が増えたことを確認
$ df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
devtmpfs 14144992 0 14144992 0% /dev
tmpfs 14174020 0 14174020 0% /dev/shm
tmpfs 14174020 9960 14164060 1% /run
tmpfs 14174020 0 14174020 0% /sys/fs/cgroup
/dev/mapper/almalinux-root 101693440 17283648 84409792 17% /
/dev/nvme0n1p1 1038336 463996 574340 45% /boot
tmpfs 2834804 20 2834784 1% /run/user/1000
使用したコマンドのまとめ
- df
ディスクの空き領域(freeスペース)のサイズを集計して表示する
(出典:https://atmarkit.itmedia.co.jp/ait/ )
- fdisk
パーティションの作成や削除などに使う
「fdisk -l デバイス名」で、指定したデバイスのパーティション情報を表示します。デバイス名を省略した場合、「/proc/partitions」に書かれているパーティション情報(カーネルが認識しているパーティションのリスト)を表示
(出典:同上 )
- pvcreate
「pvcreate デバイス名」、または「pvcreate パーティション名」で、指定した場所に物理ボリュームを作成
(出典:同上 )
- vgextend
「vgextend ボリュームグループ名 物理ボリューム名」で、既存のボリュームグループに物理ボリュームを追加します。物理ボリュームは複数指定可能
(出典:同上 )
- lvextend
「lvextend -Lまたは-lオプション 論理ボリューム名」で、論理ボリュームのサイズを変更
lvextend -l 100%FREE /dev/datagroup/data1(ボリュームグループ「datagroup」の空き容量全てを論理ボリューム「data1」に追加する)
(出典:同上 )
- xfs_growfs
xfs_growfs は、-D オプションを指定しないと、基となるデバイスがサポートする最大サイズまでファイルシステムを拡張
(出典:https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/8/html/managing_file_systems/increasing-the-size-of-an-xfs-file-system_managing-file-systems#proc_increasing-the-size-of-an-xfs-file-system-with-xfs_growfs_increasing-the-size-of-an-xfs-file-system )
参考
-
LVMについて
-
ディスク容量の拡張について