Proxmox(Linux仮想基盤)でゲストOSに別ディスクを追加する

前書き

ProxmoxというDebian系Linuxの仮想プラットフォームがありますが、Proxmox上にWindows Server 2016を構築し、その仮想マシンに別ディスクとしてHDDを追加してみたいと思います。

検証環境は以下のようになっています。

ホストOS仮想基盤 Proxmox 5.3
ProxmoxをインストールするHDD 250GB(全体容量は500GB。パーティションを2つに分割)
仮想ゲストOS Windows Server 2016(評価版)
別ディスクとして追加するHDD USBメモリ(2GB)

 

イメージを図にしました。

 

本環境ではUSBメモリを使用していますが、SATA接続などのHDDでも同様の手順で追加することができます。

仮想マシンのディスク容量追加に使用することができる方法であり、別ディスクとして追加できるため冗長性もあります。

 

準備

Proxmoxのインストール

詳細な手順は割愛します。

Proxmoxの公式サイトからインストールイメージをダウンロードし、CDなどに焼いてブートさせてHDD(ここでは250GBのHDD)にインストールします。

Proxmox公式サイト
https://www.proxmox.com/en/downloads

「Proxmox VE 5.3 ISO Installer」と書かれた下の[Download]ボタンからダウンロードできます。

 

環境確認

話がそれますが、Proxmoxは論理ボリュームマネージャを使用しており、デフォルトで[root]、[swap]、[data]という3つの論理ボリュームが作られています。

root@pve:~# pvs
  PV         VG  Fmt  Attr PSize   PFree
  /dev/sde3  pve lvm2 a--  249.50g 16.00g

root@pve:~# vgs
  VG  #PV #LV #SN Attr   VSize   VFree
  pve   1   3   0 wz--n- 249.50g 16.00g

root@pve:~# lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data pve twi-a-tz-- 159.98g             0.00   0.05
  root pve -wi-ao----  62.25g
  swap pve -wi-ao----   8.00g

 

一方、仮想マシン作成などの操作はブラウザで行いますが、ブラウザの管理コンソールでは[local]という名前のディレクトリと、[local-lvm]という名前のLVM-Thinがデフォルトで作られています。
※[local]というディレクトリは、”管理コンソール上のディレクトリ”です。Proxmox本体のディレクトリではありません。

 

[local]には「/var/lib/vz」ディレクトリ(Proxmox上のディレクトリ)が割り当てられています。そしてこのデフォルトの状態で仮想マシンの作成を行うと、新しい論理ボリュームが作成され、[data]ボリュームにプールされます。([data]領域が使用されます)

root@pve:~# lvs
  LV            VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data          pve twi-aotz-- 159.98g             6.07   0.31
  root          pve -wi-ao----  62.25g
  swap          pve -wi-ao----   8.00g
  vm-100-disk-0 pve Vwi-a-tz-- 120.00g data        8.09

上の図は、”100″というIDで仮想マシンを作成した直後の論理ボリュームの状態です。
※120GBで作成しました。

この120GBの領域にWindows Server 2016をインストールします(インストール手順は割愛します)。

インストール後のエクスプローラは以下のようになっています。
HDDの容量を120GBにしたので、Cドライブが約120GBとなっています。(119GB。。。)

 

ディスクの管理画面は以下のようになっています。

このディスクの管理画面で、別ディスクとして認識されるように、これからディスクを追加していきます。




別ディスクのアタッチ手順

認識されているデバイスファイルを特定する

まず、Proxmoxをインストールしたマシン自体に2GBのUSBメモリを挿します。今回はこれを追加するHDDと見立てます。

挿した後、Proxmoxでどのように認識されているかを確認します。

確認するためには、「fdisk -l」コマンドを使用します。

root@pve:~# fdisk -l
Disk /dev/sde: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 264D99BA-6244-43F2-9BA4-15C7F0BD3861

Device       Start       End   Sectors   Size Type
/dev/sde1       34      2047      2014  1007K BIOS boot
/dev/sde2     2048   1050623   1048576   512M EFI System
/dev/sde3  1050624 524288000 523237377 249.5G Linux LVM

Disk /dev/sdg: 1.9 GiB, 2004877312 bytes, 3915776 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x279b44d5

Device     Boot Start     End Sectors  Size Id Type
/dev/sdg1        2048 3915775 3913728  1.9G  e W95 FAT16 (LBA)

 

重要な個所を黄色字にしましたが、まず465.8 GiBとなっているのは、ProxmoxをインストールしたHDDの全体容量が500GBのためです。

500GBのHDDの中の250GBを使用してProxmoxをインストールしたので、少し下の方に249.5Gという表記があります。
確認すべきことは、ProxmoxをインストールしたHDDが/dev/sdeとして認識されていることです。

そして挿入した2GBのUSBメモリは、/dev/sdgというディスクとして認識されており、使用できるパーティションとしては、/dev/sdg1として認識されていることがわかります。

 

別ディスク専用の論理ボリュームの作成

さて、Proxmoxでは論理ボリュームマネージャが使われていることは前述しましたが、別ディスク専用の論理ボリュームを作成したいと思います。

新規でpve2という名前のボリュームグループを作成し、DISKという名前で論理ボリュームを作成します。

root@pve:~# vgcreate pve2 /dev/sdg1 ←先ほど確認した2GBのUSBのパーティションを指定してpve2としてボリュームグループを作成
WARNING: vfat signature detected on /dev/sdg1 at offset 54. Wipe it? [y/n]: y
  Wiping vfat signature on /dev/sdg1.
WARNING: vfat signature detected on /dev/sdg1 at offset 0. Wipe it? [y/n]: y
  Wiping vfat signature on /dev/sdg1.
WARNING: vfat signature detected on /dev/sdg1 at offset 510. Wipe it? [y/n]: y
  Wiping vfat signature on /dev/sdg1.
  Physical volume "/dev/sdg1" successfully created.
  Volume group "pve2" successfully created

root@pve:~# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  pve    1   4   0 wz--n- 249.50g 16.00g
  pve2   1   0   0 wz--n-   1.86g  1.86g ←pve2という新しいボリュームグループが作成されていることを確認

root@pve:~# lvcreate -n DISK -l 100%FREE pve2 ←DISKという名前で領域を100%使用することとして論理ボリュームを作成
  Logical volume "DISK" created.

root@pve:~# lvs
  LV            VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data          pve  twi-aotz-- 159.98g             6.07   0.31
  root          pve  -wi-ao----  62.25g
  swap          pve  -wi-ao----   8.00g
  vm-100-disk-0 pve  Vwi-aotz-- 120.00g data        8.09
  DISK          pve2 -wi-a-----   1.86g ←DISKという新規論理ボリュームが作成されていることを確認

 

ディスク用論理ボリュームのマウントポイント作成

次に、作成したDISKという論理ボリュームを、Proxmoxのどの場所(ディレクトリ)で使用するかを決めます。

今回は、/var/lib/HDDにマウントして使用することとしたいと思います。

root@pve:~# mkfs.ext4 /dev/pve2/DISK ←作成したDISK論理ボリュームをext4でフォーマット
mke2fs 1.43.4 (31-Jan-2017)
Creating filesystem with 488448 4k blocks and 122160 inodes
Filesystem UUID: d6036341-2e34-49e9-b561-cd3c7b34f8c9
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

root@pve:~# mkdir /var/lib/HDD ←マウントポイント用の[/var/vib/HDD]ディレクトリを作成

root@pve:~# mount /dev/pve2/DISK /var/lib/HDD ←DISK論理ボリュームを[/var/lib/HDD]にマウント

root@pve:~# mount | grep HDD
/dev/mapper/pve2-DISK on /var/lib/HDD type ext4 (rw,relatime,data=ordered) ←マウントされていることを確認 

 

起動時に自動的にマウントされるように、/etc/fstabを以下のように編集します。

root@pve:~# cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/pve/root / ext4 errors=remount-ro 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
/dev/pve2/DISK /var/lib/HDD ext4 defaults 0 1 ←追記

いったん再起動し、エラーなく自動的にマウントされることを確認します。

 

管理コンソールに追加したディスクを認識させる

ここからはProxmoxのWEB管理コンソールでの作業です。管理コンソールにログインします。

[データセンター]⇒[ストレージ]⇒[追加]⇒[ディレクトリ]とクリックします。

 

IDは管理コンソール上の名前のようなものです。ここではAddDiskとしました。
ディレクトリには、先ほど作成したマウントポイントである/var/lib/HDDを指定します。
内容は[ディレクトリ]を選択して、[追加]ボタンをクリックします。

 

左側ペインの[ストレージ]から追加したディスク名を選択して、[サマリー]を確認すると、[使用状況で]空き容量がわかります。
ここでは2GBのUSBメモリを使用したので、少し少なくなっていますが1.80GiBの容量が確認できます。

 

仮想マシンにディスクを追加する

いよいよ仮想マシンにディスクを追加します。

管理コンソールで、[作成した仮想マシンの名前]⇒[ハードウェア]⇒[追加]⇒[ハードディスク]とクリックします。

 

[ストレージ]に作成したAddDiskを指定し、ディスクサイズに1.80と入力します。(先ほどストレージのサマリーで確認したサイズです)
そして[追加]ボタンをクリックします。

 

仮想マシンにディスクが追加されたことを確認します。

 

仮想マシンの起動と仮想マシン上でのディスクのフォーマット

仮想マシンを起動して[ディスクの管理]画面を開くと、別ディスクとして未割り当て領域が追加されていることがわかります。

 

この領域をフォーマットすれば、仮想マシン上でHDDが追加されて使用できるようになります。

エクスプローラ上でも認識されています。

 

以上です。
最後までお読みいただき、ありがとうございました。