Vmware で仮想マシンのディスクを拡張する方法

現在の IT システム業界はハードウェアに OS を直接インストールするタイプではなく、1 つのハードウェアに複数の OS を仮想マシンとして利用するスタイルが一般的になっているが、仮想マシンを利用しているとログやデータが増えて保存する空き領域が少なくなるため、ディスクを拡張する方法について紹介する。

Vmware で仮想マシンのディスクを拡張する方法

1.仮想マシンはリソースを自由に変更できるメリットがある

パソコンやサーバ上にさらに違う OS 起動することができる仮想マシンは、個々のマシンの CPU やメモリといったリソースを自由に変更できるメリットがある。

一般家庭で利用しているパソコンはハードウェアに対して 1 つの OS がインストールされており、CPU やメモリを変更したい場合はハードウェアを換装する必要があり、コストや作業が発生する。

仮想マシンはリソースを自由に変更できるメリットがある


それに対して仮想マシンは、仮想的に起動する OS(ゲストマシン)が利用するリソースは仮想マシンが動作するマシン(ホストマシン)から割り当てるため、ホストマシンが持つ CPU やメモリを上限に自由に増減させることができる。

仮想マシンを実現するためには専用のソフトウェアが必要となり、VMware Player や ESXi はシステム業界でよく利用されているツールの 1 つである。

2.VMware とは

VMware とは、ホストマシン上で複数の OS やソフトウエアを動作させる仮想マシンのソフトウエアを提供している企業名である。
個人向けと法人向けで提供しているツールが異なり、個人向けは「Vmware Player」、法人向けには「Vmware ESXi」が利用されている。

Vmware のソフトウェアは仮想マシンとなる Windows や Linux の OS のイメージデータ(ISO)を読み込むことで 1 つのハードウェア上で複数の仮想マシンを動作させることができる。

また、Vmware のソフトウェアで起動した仮想マシンは IP アドレスを持っているのでインターネット通信の他、ゲストマシンとホストマシンとの間でデータのやり取りも可能になっている。

3.Vmware で仮想マシンのディスクを拡張する方法

Vmware で仮想マシンのディスクを拡張する方法としては、「Vmware Player」または「Vmware ESXi」の各ゲストマシンの設定画面から行うことができる。

ホストマシン側で増やしたディスクは、ゲストマシンも認識できるように OS の設定作業も必要となる。

今回は仮想マシンのディスクを拡張する前提として、拡張前のストレージが 20.0GB で作成していた仮想マシンを 50.0GB にする例を Vmware Player で紹介する。

3-1.Vmware Workstation Player でディスクを増やす

まず最初に Vmware Workstation Player でディスクを増やす。
Vmware Player を起動すると下図のように仮想マシンの一覧が表示されるので、ディスクを拡張したいマシンを選択して「仮想マシン設定の編集」を選択する。

「仮想マシン設定の編集」を選択


「仮想マシン設定の編集」をクリックするとリソース等の仮想マシンの設定を行うウィンドウが表示されるため、タブ「ハードウェア」で『ハードディスク』を選択し、「ディスク容量の拡張」の右にあるボタン「展開」をクリックする。

ボタン「展開」をクリック

ボタン「拡張」をクリックすると仮想マシン作成時と同様のリソースを割り当てる数値の入力欄が表示されるため、拡張したい数値を入力する。

Windows の評価版を入手し、VMware Player で動作させる方法

3-2.OS が認識しているディスク容量を確認する

ホストマシン側で割り当てるディスクを設定した後は、ゲストマシン側で割り当てられたディスクを認識させる作業が発生する。
そこで、ディスクの拡張前の OS が認識しているディスク容量を確認する。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  898M     0  898M    0% /dev
tmpfs                     910M     0  910M    0% /dev/shm
tmpfs                     910M  9.6M  901M    2% /run
tmpfs                     910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root    17G  7.8G  9.3G   46% /        ← ここを増やす
/dev/sda1                1014M  151M  864M   15% /boot
tmpfs                     182M     0  182M    0% /run/user/0

上記のように、サイズを確認する df コマンドを実行するとサイズが 20GB(実際は 17GB)として認識していることがわかる。

3-3.既存仮想 HDD を拡張する

次にゲストマシンのディスクを OS が認識できるように parted コマンドで設定する。
parted コマンドは対話型のため、下記のように適宜、情報を与えながら進める。

# parted
GNU Parted 3.1
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) p     ← p を入力して状態を確認
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sda: 53.7GB
セクタサイズ (論理/物理): 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%     ← 100% を入力
(parted) p     ←【※】p を入力して状態を確認(パーティション 2 が 50GB になっている)
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sda: 53.7GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  1075MB  1074MB  primary  xfs               boot
 2    1075MB  53.7GB  52.6GB  primary                    lvm
(parted) q     ← q を入力して終了する

3-4.パーティションを作り直す

OS が拡張したディスクを認識したところで、実際に拡張した領域にも読み書きできるようにパーティションを作り直す。
まずは lsblk コマンドでディスクが増えていることと、利用するディスクネームを確認する。



# lsblk -p
NAME                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
/dev/sda                      8:0    0   50G  0 disk     ← 増えているのを確認
tq/dev/sda1                   8:1    0    1G  0 part /boot
mq/dev/sda2                   8:2    0   49G  0 part
  tq/dev/mapper/centos-root 253:0    0   17G  0 lvm  /
  mq/dev/mapper/centos-swap 253:1    0    2G  0 lvm  [SWAP]
/dev/sr0                     11:0    1 1024M  0 rom

次に fdisk コマンドで対話型で進める。

# 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 でヘルプ): d     ← d を入力して削除
パーティション番号 (1,2, default 2): 2     ← 2 を入力
Partition 2 is deleted

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

コマンド (m でヘルプ): t     ← t を入力
パーティション番号 (1,2, default 2): 2     ← 2 を入力
Hex code (type L to list all codes): L     ← 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     ← 8e を入力(前段で Linux LV を選ぶ)
Changed type of partition 'Linux' to 'Linux LVM'

コマンド (m でヘルプ): p     ← t を入力して確認

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

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

コマンド (m でヘルプ): w     ← 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)
ディスクを同期しています。

3-5.OS を再起動する

OS のディスク拡張の処理が終われば、適応させるために OS を再起動させる。

3-6.物理ボリュームのサイズを変更する

続いて、物理ボリュームのサイズを変更する pvresize を実行する。



# pvresize /dev/sda2
File descriptor 6 (/dev/pts/0) leaked on pvresize invocation. Parent PID 1436: -bash
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

3-7.空き容量全て(+100%FREE)を論理ボリューム「centos-root」に追加する

物理ボリュームの変更の後は、論理ボリュームに「centos-root」を追加する

# lvextend -l +100%FREE /dev/mapper/centos-root
File descriptor 6 (/dev/pts/0) leaked on lvextend invocation. Parent PID 1436: -bash
  Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to <47.00 GiB (12031 extents).
  Logical volume centos/root successfully resized.

3-8.論理ボリューム上のファイルシステムをリサイズする

最後に論理ボリューム上のファイルシステムをリサイズすることで完了となる。

# xfs_growfs /dev/mapper/centos-root
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 12319744

3-9.ディスクの状態を確認する

最初に df コマンドで OS が認識しているディスクが増えているか確認すると、元が 20GB だったのが 50GB(実際は 47GB)に増えているのがわかる。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  898M     0  898M    0% /dev
tmpfs                     910M     0  910M    0% /dev/shm
tmpfs                     910M  9.5M  901M    2% /run
tmpfs                     910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root    47G  7.8G   40G   17% /     ← 増えている
/dev/sda1                1014M  151M  864M   15% /boot
tmpfs                     182M     0  182M    0% /run/user/0

関連記事

コメントを残す