Proxmox VEを実機にインストールします。
Proxmox VEとは?
Proxmox Virtual Environmentは、Debianベースのオープンソース仮想化プラットフォームです。物理サーバー上に複数の仮想マシン(VM)やコンテナを作成・管理することができます。以下は、Proxmox VEの主な特徴と利点です。
主な特徴
- オープンソース:
- Proxmox VEはオープンソースソフトウェアであり、無料で使用できます。ソースコードも公開されており、誰でもアクセス可能です。
- 仮想化のサポート:
- KVM(Kernel-based Virtual Machine)とLXC(Linux Containers)を使用して、仮想マシンとコンテナの両方をサポートしています。
- ウェブベースの管理インターフェース:
- 直感的で使いやすいウェブベースの管理インターフェースを提供しており、リモートから仮想マシンやコンテナの作成、設定、監視が可能です。
- 高可用性とクラスター管理:
- 複数のProxmoxサーバーをクラスター化することで、高可用性(HA)環境を構築でき、サーバー障害時にもサービスを継続することができます。
- バックアップとリストア:
- 仮想マシンやコンテナのスナップショットやバックアップ機能を提供しており、データの保護と復元が容易です。
利点
- コスト効果:
- オープンソースであるため、ライセンス費用がかかりません。中小企業や個人ユーザーにとってコスト効果が高い選択肢です。
- 柔軟性:
- 仮想マシンとコンテナを組み合わせて利用できるため、さまざまなニーズに対応できます。
- コミュニティとサポート:
- 活発なユーザーコミュニティが存在し、フォーラムやドキュメントから多くの情報を得ることができます。また、商用サポートも提供されています。
- スケーラビリティ:
- 必要に応じてサーバーを追加し、クラスターを拡張することで、システムのパフォーマンスと容量を向上させることができます。
特に、実機にGPUが搭載されている場合、仮想マシンにGPUをパススルーすることで、仮想環境でもGPUを利用することができます。GPUパススルー機能により、仮想環境でも高性能なグラフィックス処理が可能です。仮想マシン上でのゲーム開発や機械学習、動画編集などの用途にも対応できます。公式ページからISOファイルをダウンロードします。
ISOファイルをRufusを使ってブート可能なUSBドライブを作成します。これをインストールする実機に挿入してインストールします。Proxmox VEをインストールするためにUSBからブートするには、BIOSまたはUEFIの設定でUSBドライブを最優先のブートデバイスに設定する必要があります。さらにセキュアブートが有効になっている場合、これを無効にする必要があることがあります。セキュアブートは、一部のオペレーティングシステムで互換性の問題を引き起こすことがあります。Rufusでブート可能なUSBドライブを作成時の注意点を述べておきます。作成されたUSBがWindowsでアクセスできなかったので調べてみました。DDイメージモードで書き込んだUSBドライブは、Windows上では通常の方法で中身を見ることができませんでした。さらに、1つのはずのUSBが2つとして認識されています。
具体的な問題点とその理由
- 見えないファイルシステム:
- DDイメージモードで書き込むと、USBドライブはそのISOイメージのファイルシステム(例えばext4やその他のLinuxファイルシステム)をそのまま持つことになります。Windowsはこれらのファイルシステムを標準では認識しないため、ファイルにアクセスできません。
- 複数のパーティションとして認識:
- 一部のISOイメージは複数のパーティションを持っていることがあります。DDイメージモードで書き込むと、そのパーティション構造もそのまま書き込まれるため、Windowsが複数のドライブとして認識することがあります。
調べてみると、次のようなことがわかりました。RufusでISOイメージをUSBに書き込む際に「DDイメージモード」と「ISOイメージモード」の選択肢が出ることがあります。これらのモードの違いは次の通りです。
DDイメージモード
- ディスクの直接コピー: ISOイメージ全体をそのままUSBドライブに書き込むモードです。
- より汎用的: いくつかの特殊なLinuxディストリビューションやBSD系のOSなど、標準的なISOイメージの書き込み方法がうまくいかない場合に有用です。
- 互換性: 一部のシステムでブートの互換性が向上しますが、Windowsのインストールメディアには適していないことがあります。
ISOイメージモード
- ファイルコピー: ISOイメージの中身をUSBドライブに展開し、ブート情報を適切に設定します。
- Windows向け: Windowsのインストールメディアや一般的なISOファイルをUSBに書き込むのに適しています。
- 使いやすい: ほとんどのユーザーがこのモードを選ぶことが推奨されます。
どちらを選ぶべきか?
- LinuxやBSD系のISO: 一部のディストリビューションでは「DDイメージモード」が必要な場合があります。特に、公式ドキュメントでDDイメージモードを推奨している場合はこちらを選んでください。
- Windowsのインストールメディア: 通常は「ISOイメージモード」を選びます。
ISOイメージを書き込む際にRufusが自動的に「DDイメージモード」を選択した場合、ISOファイルがそのモードでの書き込みを必要としている可能性があります。結局のところDDイメージモードで作成したUSBドライブはWindowsでは認識できないものの、別のPCでブートディスクとして正常に動作します。
メモ
DDイメージモードで作成したUSBドライブは、Windows上でのファイルシステムとしては認識されなくても、ブート可能なディスクとしては正しく機能するのでProxmox Virtual Environmentのインストールはできる。
有線接続を使用する場合、通常はネットワーク設定が簡単で、トラブルが少なくなります。WIFIだとProxmox VEのインストール後にネットワークの設定が必要になります。インストール作業は簡単でウィザードにそって必要な項目を入力していきます。
Proxmox VEのインストール時に必要な項目
・インストール先
・地域とタイムゾーンを設定
・パスワードとメールアドレス(ユーザー情報は必要なくrootに設定されている)
・IPアドレスなど(ルーターがDHCP(Dynamic Host Configuration Protocol)サーバーとして機能している場合、Proxmox VEインストール時に自動的にIPアドレス、ゲートウェイ、DNSサーバーの値が適切に設定されます。特別な環境の場合手動で入力)
インストール完了後に別のPCでブラウザを使用してアクセスします。以下のようなURLになります。ローカル環境でも、セキュリティを強化するためにHTTPSがデフォルトで使用されています。
ログイン画面が表示されたら、ユーザー名にroot、先に設定したパスワードを入力してログインします。Proxmox VEのインストール後、ウェブインターフェースにログインすると「有効なサブスクリプションがありません」と表示されることがあります。これは、Proxmox VEがサブスクリプションベースのサービスを提供しており、商用サポートを受けるためにはサブスクリプションを購入する必要があるためです。
無料でProxmox VEを使用する場合
Proxmox VEはオープンソースであり、サブスクリプションなしでも使用することができますが、商用サポートやエンタープライズリポジトリへのアクセスは制限されます。以下の手順で、無料で使用するための設定を行います。
ブラウザの画面でリポジトリを変更する
- Proxmox VEウェブインターフェースにログイン:
- ブラウザを開き、Proxmox VEのウェブインターフェースにアクセスします。
- URLは通常
https://<ProxmoxサーバーのIPアドレス>:8006
です。
- リポジトリ設定ページに移動:
- 左側のナビゲーションメニューから「Datacenter」→「<ノード名>」→「アップデート」→「リポジトリ」タブに移動します。
- エンタープライズリポジトリの無効化:
pve-enterprise
リポジトリを選択し、上にある「無効」ボタンをクリックします。これでエンタープライズリポジトリが無効になります。
- No-Subscriptionリポジトリの追加:
- 「追加」ボタンをクリックすると追加できるリポジトリ一覧が表示されます。No-Subscriptionがあるのでこれを選択して追加します。
- 変更の適用:
- 「再読み込み」ボタンをクリックしてリポジトリを反映します。リポジトリ一覧の表示内容が変わると思います。
SSHでProxmox VEサーバーにログインし、リポジトリを変更することもできましたが、ブラウザの画面で事足りました。一度追加するとブラウザでは削除ができないようでしたので、Linuxの知識で修正することもできました。
ほほからが本番です。仮想マシンを作成します。今回はFreeDosをインストールします。公式サイトでダウンロードしてきます。
ファイルを解凍して、ISOファイルをSSHでProxmox VEサーバーに送ります。アップロードが完了したら画面右上の「VM作成」ボタンをクリックしてマシンの構成を決めていきます。ISOイメージの項目ではアップロードしたファイルを選択できるはずです。ディスク容量とメモリサイズを調整しましたが他はとくに変更することなく構成を決めました。確認するためには作成した仮想マシンをダブルクリックするか、仮想マシンを選択してコンソールを選択します。しかし、うまく起動しません。
この問題はプロセッサがx86-64-v2-AESだったので変更することで解決できました。(例えばPentiumやkvm64など)
また、インストール画面は表示されたが、キーボードの反応がない時は設定で「表示のみ」のチェックを外します。
(noVNCの場合)さらにFreeDosのインストールで一回目にパーティションの作成をした後に再起動しなければなりませんが、そこから起動しなくなります。まだ、フォーマットがされていないのがその理由です。ですので再起動せずに一度停止します。オプションにあるブート順でISOファイルが挿入された仮想メディアの順序を一番先に設定します。
これをすることで途中までは先とインストール手順が同じですが、フォーマット後にインストールが始まります。インストール完了後に再起動はせずに、ブート順を今度はまた仮想ハードディスクにすることも忘れてはいけません。これをわかりやすくまとめると以下になります。
FreeDOSのインストール手順
- パーティションの作成:
- FreeDOSのインストールを開始し、パーティションを作成します。
- 再起動せずに停止:
- 通常の手順では再起動が必要ですが、ここで再起動せずに一度仮想マシンを停止します。
- ブート順の変更:
- Proxmox VEのオプションで仮想マシンのブート順を変更します。
- ISOファイルが挿入された仮想メディアを最優先に設定します。
- インストールの再開:
- 仮想マシンを再起動せずに、設定を変更した後、再度起動します。
- FreeDOSのインストール手順を続け、フォーマットを実行します。
- インストールの完了:
- フォーマット後、インストールが自動的に始まります。
- インストールが完了したら、再起動せずに仮想マシンを停止します。
- ブート順の再変更:
- 再度、仮想マシンのブート順を変更し、仮想ハードディスクを最優先に設定します。
- FreeDOSの起動:
- 仮想マシンを起動し、FreeDOSが正常に起動することを確認します。
FreeDOSでネットワークを設定する方法
FreeDOSでネットワーク接続を設定するには、FDAUTO.BAT
とFDNET.BAT
の設定を確認し、適切なパケットドライバーを使用する必要があります。FDAUTO.BATの次の部分を見るとネットワークに設定はfdnet.batを解析するとよさそうです。FDAUTO.BATは、システム起動時にネットワーク設定などを行います。
:FINAL
MEM /C /N
echo.
if not exist %dosdir%\bin\fdnet.bat goto NoNetwork
call %dosdir%\bin\fdnet.bat start
if errorlevel 1 goto NoNetwork
REM Custom networking stuff once packet driver has loaded
次にfdnet.batの以下の部分を確認します。このスクリプトはネットワークドライバをロードし、ネットワーク接続を確立します。
set _FDNET.DIR=\NETWORK\FDNET
if exist %_FDNET.DIR%\DHCP.EXE goto FoundBINS
set _FDNET.DIR=\NET\FDNET
if exist %_FDNET.DIR%\DHCP.EXE goto FoundBINS
set _FDNET.DIR=%DOSDIR%\NETWORK\FDNET
if exist %_FDNET.DIR%\DHCP.EXE goto FoundBINS
set _FDNET.DIR=%DOSDIR%\NET\FDNET
if exist %_FDNET.DIR%\DHCP.EXE goto FoundBINS
set _FDNET.DIR=%DOSDIR%\BIN\NETWORK\FDNET
if exist %_FDNET.DIR%\DHCP.EXE goto FoundBINS
set _FDNET.DIR=%DOSDIR%\BIN\NET\FDNET
if exist %_FDNET.DIR%\DHCP.EXE goto FoundBINS
set _FDNET.DIR=%DOSDIR%\BIN\NETWORK
if exist %_FDNET.DIR%\DHCP.EXE goto FoundBINS
set _FDNET.DIR=%DOSDIR%\BIN\NET
if exist %_FDNET.DIR%\DHCP.EXE goto FoundBINS
このディレクトリのいずれかの場所にパケットドライバrtspkt.comを配置します。ここではC:\NET\FDNET
にします。さらにFDNETPD.BATを新規で作成して同じ場所に保存します。いずれかのディレクトリとは以下の通りです。
C:\NETWORK\FDNET
C:\NET\FDNET
%DOSDIR%\NETWORK\FDNET
%DOSDIR%\NET\FDNET
%DOSDIR%\BIN\NETWORK\FDNET
%DOSDIR%\BIN\NET\FDNET
%DOSDIR%\BIN\NETWORK
%DOSDIR%\BIN\NET
FDNETPD.BATの内容は次の通りです。
@ECHO OFF
C:\NET\FDNET\rtspkt.com 0x60
設定が完了したら、システムを再起動します。FDAUTO.BAT
が実行され、FDNET.BAT
が自動的に呼び出されてネットワーク接続が確立されます。システム起動時に自動でネットワーク接続が設定されるようになります。さらにDHCPによりルーターからIPアドレスが付与されるようです。
Proxmox VEはVMwareやVirtualBoxとは異なるインターフェースや用語が使用されているため、初めて使用した時に戸惑うことがあったのでまとめておきます。
Proxmox VEの主要な項目と対応する用語
- Datacenter(データセンター)
- Proxmox VE: 管理対象の全てのノード(サーバー)やリソース(ストレージ、ネットワークなど)をまとめる単位。
- VMware: vCenter Serverに相当し、複数のESXiホストを管理。
- VirtualBox: この概念はありませんが、複数の仮想マシンを管理するGUIインターフェース。
- Node(ノード)
- Proxmox VE: 仮想マシンやコンテナをホストする物理サーバー。複数のノードをクラスター化して管理可能。
- VMware: ESXiホストに相当。
- VirtualBox: 各ホストマシン(VirtualBoxがインストールされたPC)。
- Cluster(クラスター)
- Proxmox VE: 複数のノードをまとめて1つの管理単位として扱う。リソースの共有や高可用性を実現。
- VMware: クラスターはvSphereクラスターに相当し、複数のESXiホストをまとめてリソースを共有。
- VirtualBox: クラスター機能は基本的にありません。
- Virtual Machine(仮想マシン)
- Proxmox VE: 仮想化された完全なコンピュータシステム。KVM(Kernel-based Virtual Machine)を使用。
- VMware: 仮想マシン。ESXiホスト上で動作。
- VirtualBox: 仮想マシン。VirtualBoxソフトウェア上で動作。
- Container(コンテナ)
- Proxmox VE: 軽量な仮想化環境。LXC(Linux Containers)を使用。
- VMware: 仮想マシンの中でコンテナを動作させることは可能ですが、直接的なコンテナサポートは少ない。
- VirtualBox: コンテナの直接サポートはありませんが、仮想マシン内でDockerなどを使用可能。
- Storage(ストレージ)
- Proxmox VE: 仮想マシンやコンテナのディスクイメージ、ISOイメージ、バックアップを保存する場所。ローカルストレージやネットワークストレージ(NFS、iSCSI、Cephなど)をサポート。
- VMware: データストアに相当。仮想マシンのディスクイメージを保存。
- VirtualBox: 仮想マシンのディスクイメージを保存するホストマシンのディスク上のファイル。
- Network(ネットワーク)
- Proxmox VE: 仮想マシンやコンテナのネットワーク設定。ブリッジネットワーク、NAT、VLANなどをサポート。
- VMware: 仮想スイッチ(vSwitch)や分散スイッチ(dvSwitch)を使用して仮想マシンのネットワークを管理。
- VirtualBox: ネットワークアダプター設定(NAT、ブリッジ、ホストオンリーなど)。
また、Ubuntu24.04をインストールしてみましたが、特に苦労することはありませんでした。このようにProxmox VEを使用することで、デュアルブートやトリプルブートのような環境を実現することができます。