0. はじめに
自宅で複数のサーバー環境を使用するため、ProxmoxVEを使用した仮想マシンをセットアップする(メモ)。
1. ハードウェアの準備
- Linux機、Windows機を含めて5つくらいのゲストOSを想定したハードウェアとした。
| 種類 | 製品名 | 備考 |
|:--|:--|:--|:--|
| ベアボーン | Shuttle スリム型ベアボーン DH270 | メーカー製品ページ
音と熱を心配していたが、静かで熱も低く一安心。
CPUグリスは標準添付でなくナノダイヤモンドグリスを別途購入。 |
| CPU | Intel CPU Core i5-7600 | メーカー製品ページ
ボードに合わせて、ソケット:LGA1151、TDP:90W以下。 |
| メモリ | Kingston ノート用メモリ DDR4-2400 (PC4-19200) 16GB
CL14 1.2V Non-ECC SODIMM | Amazon商品ページ
ボードに合わせてノート用。 |
| SSD | WD 内蔵SSD M.2-2280/512GB/WD Black/PCIe Gen3 NVMe | Amazon商品ページ
ボードに合わせてPCIe接続 M.2-2280。 |
- ディスプレイはHDMIで繋いでテレビ(50インチのコンソール!)で代用。マウス、キーボードは適当に調達する。
- ProxmoxVEのインストール用に1GB以上のUSBメモリを用意する。
2. 仮想環境の構築
Proxmox VE 5.2(Webインターフェースを持つ仮想アプライアンス)を使用し、ハイパーバイザーはKVMを選択した。
2.1. インストール用USBメモリを作成
USBメモリでのインストールを行う。
※ DVDメディアを想定していたが、ベアボーンがDVDドライブ(AppleのSuperDrive)を認識しなかったため。
以下の作業はmacOSで行う。
- インストール用isoイメージをダウンロード
- https://www.proxmox.com/en/downloads
- 任意のディレクトリにisoイメージ(proxmox-ve_5.2-1.iso)を保存。
- USBメモリーへのisoイメージ書き込み
※ ディスクユーティリティでのフォーマットに失敗したためコマンドラインから実施。-
USBメモリの接続状態を確認。
$ diskutil list → USBメモリーの認識先を確認(例:/dev/disk1)
-
isoイメージをUSBメモリに書き込む。
※ ddコマンドは書き込み先を誤ると危険のため注意。アンマウント(例:/dev/disk1) $ diskutil unMountDisk /dev/disk1 書き込み(例:/dev/disk1) $ cd <インストールイメージの保存先> $ sudo dd if=proxmox-ve_5.2-1.iso of=/dev/rdisk1 bs=1m
-
2.2. Proxmox VEのインストール
2.2.1. USBブート
USBでブートし、ProxmoxVEのインストールウィザードが表示される。
- このハードの場合
- USB2.0(3.0だとドライバがない?)のポートに作成したインストール用USBメモリを刺す。
- 電源を入れ、DELETEキーを数回押してBIOS画面に切り替える。
- USBでブートできるよう確認、設定変更し、保存して再起動。
2.2.2. インストールウィザード
インストールウィザードの指示に従って、インストールを進める。
参考: Proxmox VEのセットアップ手順(インストール編)
- インストールメニュー: Install Proxmox VEを選択
- End User License Agreement(EULA): I agree をクリック
- Target Harddisk:
- インストール先ドライブを選択: 任意(今回はドライブが1つ)
- ハードディスクオプション: ファイルシステムにXFSを選択
- CentOS7デフォルトなので安定しているとみて。
- ZFS、BTRFSは新しいためもあり課題を見かけるので除外。
- 参考
- Location and Time Zone selection
- Country: Japan
- Time zone: Asya/Tokyo
- Keyboard Layout: Japanese
- Administration Password and E-Mail Address
- rootユーザーのパスワードとメールアドレスを入力
- 両方とも後でWebUIから変更可能
- Network Configuration(例)
- Hostname: pve.local
- IP Address: 192.168.1.5
- Network: 255.255.255.0
- Gateway: 192.168.1.1
- DNS Serer: 192.168.1.1
- インストール開始〜完了、再起動
2.2.3. 起動とSSH設定
ProxmoxVEホストを起動し、SSHの設定をする。
- SSDからブートし、起動を確認する。
- Proxmox Virtual Environment GNU/Linux を選択して起動する。
- うまくブートしない場合は、BIOSや参考サイトの方法を確認する。
- SSHでログインし、パッケージを最新化する
-
SSHログインできない場合はコンソールからログインして確認
-
リポジトリを変更する。
/etc/apt/sources.list※ サブスクリプションなしのリポジトリを追加 # PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use deb http://download.proxmox.com/debian stretch pve-no-subscription
/etc/apt/sources.list.d/pve-enterprise.list※ Enterprise Repositoryはサブスクリプションキーが必要のため無効化 deb https://enterprise.proxmox.com/debian stretch pve-enterprise ↓ #deb https://enterprise.proxmox.com/debian stretch pve-enterprise
-
パッケージを最新化する。
# apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade
-
- クライアントのMac上でSSH鍵を準備し、ProxmoxVEホストに転送する。
-
sshの公開鍵を作成する。
$ ssh-keygen -t rsa -C "コメント:利用者のメアドなど" → 保存先、パスフレーズを入力して鍵を作成
-
ssh鍵をProxmoxに転送する。
$ ssh-copy-id -i "公開鍵ファイル(xxx.pub)" root@"ProxmoxVEホスト"
-
- コンソール or SSH(パスワード)でProxmoxVEホストにログインし、SSHサーバーの認証を公開鍵認証のみにする。
-
sshdの設定ファイルを編集する。
/etc/ssh/sshd_config※ Rootはパスワード認証を禁止 PermitRootLogin yes ↓ PermitRootLogin without-password ※ パスワード認証を禁止 #PasswordAuthentication yes ↓ PasswordAuthentication no ※ 以下はそのまま #PubkeyAuthentication yes ChallengeResponseAuthentication no
-
sshdを再起動する。
# /etc/init.d/ssh restart
-
ログアウトして公開鍵でログインする。
$ ssh -i "秘密鍵ファイル" root@"ProxmoxVEホスト"
-
3. ゲスト環境の作成
Proxmox VEでのLinux機、Windows機のインストール設定。
3.1. Linux機のセットアップ
例としてCentOS7を使用する。OSによりGuestOSの設定が少し変わる。
3.1.1. VM作成
VMを作成する。
- Webの管理画面にログインする。
- https://192.168.1.5:8006/ (※ URLは例)
- インストールするOSのISOイメージをProxmoxVEホストにアップロード
- 管理画面の左ツリービューにて以下を選択
- データセンター > "ProxmoxVEホスト" > local
- 右の詳細ビューにて「内容」を選択
- 「アップロード」ボタンをクリックし、ISOファイルをアップロード
- 管理画面の左ツリービューにて以下を選択
- 管理画面の右上の「VMを作成」をクリックする。
- ウィザードの指示に従い、VMの設定を入力する。(内容は例)
- 全般
- ノード: "ProxmoxVEホスト"
- VM ID: 100 (任意:ツリービューに表示されるID)
- 名前: vm-lin01 (任意:ツリービューに表示される名称)
- OS
- CD/DVD イメージファイル (iso) を使用する: チェックオン
- ストレージ: local
- ISOイメージ: 手順2でアップロードしたISOイメージ
- Guest OS:
- 種別: Linux
- バージョン: 4.X/3.X/2.6 Kernel
- CD/DVD イメージファイル (iso) を使用する: チェックオン
- ハードディスク
- バス/デバイス: SCSI
- ストレージ: local-lvm
- ディスクサイズ(GiB): 32 (任意)
- キャッシュ: デフォルト(キャッシュがありません)
- CPU
- ソケット: 1 (任意)
- コア: 1 (任意)
- 種別: デフォルト(kvm64)
- メモリー
- メモリー(MiB): 512 (任意)
- ネットワーク
- ネットワークデバイスなし: チェックオフ
- ブリッジ: vmbr0
- モデル: VirtIO(準仮想化)
- 全般
- 内容を確認し、「完了」をクリックする。
- VM作成処理が実行するため、完了するまで待つ。
3.1.2. OSインストール
- 左ツリービューにて、作成したVMを選択する。
- 右詳細ビューにて、右上の「起動」をクリックする。
- 右詳細ビューにて、右上の「コンソール」をクリックしてVMの起動を確認し、コンソールにてインストール作業を行う。
- ※ OSインストール手順、作業用ユーザーの作成とsudoの設定等は割愛。
3.2. Windows機のセットアップ
例としてWindows10を使用する。OSによりGuestOSの設定が少し変わる。
3.2.1. VM作成
VMを作成する。
- Webの管理画面にログインする。
- https://192.168.1.5:8006/ (※ URLは例)
- インストールするOSのISOイメージをProxmoxVEホストにアップロード
- 管理画面の左ツリービューにて以下を選択
- データセンター > "ProxmoxVEホスト" > local
- 右の詳細ビューにて「内容」を選択
- 「アップロード」ボタンをクリックし、ISOファイルをアップロード
- 管理画面の左ツリービューにて以下を選択
- 管理画面の右上の「VMを作成」をクリックする。
- ウィザードの指示に従い、VMの設定を入力する。(内容は例)
- 全般
- ノード: "ProxmoxVEホスト"
- VM ID: 200 (任意:ツリービューに表示されるID)
- 名前: vm-win01 (任意:ツリービューに表示される名称)
- OS
- CD/DVD イメージファイル (iso) を使用する: チェックオン
- ストレージ: local
- ISOイメージ: 手順2でアップロードしたISOイメージ
- Guest OS:
- 種別: Microsoft Windows
- バージョン: 10/2016
- CD/DVD イメージファイル (iso) を使用する: チェックオン
- ハードディスク
- バス/デバイス: IDE 0
- ストレージ: local-lvm
- ディスクサイズ(GiB): 100 (任意)
- キャッシュ: デフォルト(キャッシュがありません)
- CPU
- ソケット: 2 (任意)
- コア: 2 (任意)
- 種別: デフォルト(kvm64)
- メモリー
- メモリー(MiB): 4096 (任意)
- ネットワーク
- ネットワークデバイスなし: チェックオフ
- ブリッジ: vmbr0
- モデル: Intel E1000
- 全般
- 内容を確認し、「完了」をクリックする。
- VM作成処理が実行するため、完了するまで待つ。
3.2.2. OSインストール
- 左ツリービューにて、作成したVMを選択する。
- 右詳細ビューにて、右上の「起動」をクリックする。
- 右詳細ビューにて、右上の「コンソール」をクリックしてVMの起動を確認し、コンソールにてインストール作業を行う。
- ※ OSインストールの手順は割愛。
3.2.3. VirtIOドライバの適用
パフォーマンス向上を図るため、ネットワークとハードディスクにVirtIOドライバを適用する。
(VMWare Toolsのようなもの)
- 以下などからVirtIOドライバをダウンロードする。virtio-win.isoなどと表示されている。
- この時点では、virtio-win-0.1.141.iso
- https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers
- https://fedoraproject.org/wiki/Windows_Virtio_Drivers
- VirtIOのISOイメージをProxmoxVEホストにアップロードする。
- 管理画面の左ツリービューにて以下を選択
- データセンター > "ProxmoxVEホスト" > local
- 右の詳細ビューにて「内容」を選択
- 「アップロード」ボタンをクリックし、ISOファイルをアップロード
- 管理画面の左ツリービューにて以下を選択
3.2.3.1. ネットワークデバイスのVirtIO化
- Proxmox側でVirtIOドライバをCD/DVDドライブに設定しておく
- Windows機のVMをシャットダウンする。
- 管理画面の左ツリービューにてWindows機のVMを選択し、「ハードウェア」の「ネットワークデバイス」の項目をダブルクリックし、編集する。
- モデル: Intel E1000 → VirtIO(準仮想化)
- OKをクリックして保存する。
- VMを起動すると、デバイスドライバを求めてくるので、手順3でアップロードしたISOをCD/DVDディスクイメージとして指定する。
- Windows機が起動したらログオンする。
- ドライバのインストールダイアログが表示されるのでインストールを実行する。
- デバイスマネージャーでネットワーク関連のドライバを適用する。
- Windowsマークを右クリック→デバイスマネージャー を開く。
- イーサネットコントローラーでドライバが当たっていないものに対し、ドライバの更新を実行してCD/DVDドライブにあるドライバを選択し、更新する。
- ネットワーク関連のドライバを全て適用したら完了。
3.2.3.2. ハードディスクのSCSI VirtIO化
- Proxmox側でVirtIOドライバをCD/DVDドライブに設定しておく
- Windows機のVMを起動する。
- ダミーのハードディスクを追加する。
- 管理画面の左ツリービューにてWindows機のVMを選択し、「ハードウェア」にて「追加」→ハードディスク を選択する。
- バス/デバイス: SCSI 1
- ストレージ: local-lvm
- ディスクサイズ(GiB): 1
- キャッシュ: デフォルト(キャッシュがありません)
- 「追加」をクリックして保存する。
- 管理画面の左ツリービューにてWindows機のVMを選択し、「ハードウェア」にて「追加」→ハードディスク を選択する。
- デバイスマネージャーでSCSIコントローラー関連のドライバを適用する。
- Windowsマークを右クリック→デバイスマネージャー を開く。
- SISIコントローラーでドライバが当たっていないものに対し、ドライバの更新を実行してCD/DVDドライブにあるドライバを選択し、更新する。
- ドライバを全て適用したら完了。
- Windows機のVMをシャットダウンする。
- 管理画面の左ツリービューにてWindows機のVMを選択し、「ハードウェア」の「ハードディスク」の項目をide0→scsi0に変更する。
- ハードディスク(ide0)を選択し、「Detach」する。
- 未使用のディスク0ができるので、それをダブルクリックして設定する。
- バス/デバイス: SCSI 0
- ストレージ: local-lvm
- ディスクサイズ(GiB): 100
- キャッシュ: デフォルト(キャッシュがありません)
- 「追加」をクリックして保存する。
- ハードディスク(scsi0)が設定されていることを確認する。
- Windows機のVMを起動し、正常にログオンできれば完了。
- 必要に応じて、手順2で作成したダミーのハードディスクを削除する。
- Windows機のVMをシャットダウンする。
- ハードディスク(scsi1)を選択し、「Detach」する。
- 未使用のディスク0ができるので、それを選択し、「削除」する。