Proxmox VE とは
Proxmox VE (Virtual Environment) はオープンソースのサーバー仮想化環境です。Debian ベースの Linux ディストロで、仮想マシンとコンテナのデプロイメントを Web ブラウザ上で管理できます。Proxmox VE は Web コンソールとコマンドラインツール、サードパーティ向けの REST API を提供しています。仮想化は、OpenVZによる Linux のコンテナ-ベースの仮想化と、KVMによる完全仮想化の二つです。
Proxmox VE は Proxmox Server Solutions GmbH というドイツの企業が開発し、GNU Affero General Public License, version 3 のもとで配布しています。
Proxmox VE をインストールした後、他の PC から Proxmox VE の Web ベースの管理ツールへアクセスした例を示しました。
Proxmox VE の Web ベースの管理ツール
仮想環境にインストール
仮想環境を扱う OS を仮想環境 (GNOME Boxes) にインストールするのは変なのですが、動作確認のため CPU コアとストレージの割り当てを多くしてインストールしてみました。下記のサイトから、Proxmox VE 6.2 ISO Installer の Downloadボタンをクリックして、proxmox-ve_6.2-1.isoをダウンロードしました。
インストールは、ほぼデフォルトのままで次のようにインストールしました。
インストール完了後、以下のように Proxmox VE が起動します。
デスクトップ向けのディストロでないため、ログインは CUI ベースです。
Web ベースの管理ツール
Proxmox VE をインストールしたサーバの IP アドレスの 8006 ポートを(本記事の仮想環境へインストールした例では https://192.168.122.111:8006/)インターネットブラウザでアクセスすると、Proxmox VE の管理ツールを利用できます。
最初にログイン画面になりますので、ルートでログインします。
有効なサブスクリプションが無いという警告が出ます。
Proxmox VE は Proxmox Server Solutions GmbH 社の製品で、サブスクリプションの料金を支払ってサポートを受けるというビジネスモデルです。無料で使う限り、ログイン後に一回表示されます。
Proxmox VE は、Debian ベースの OS 上に稼働するこの管理ツールであると言えます。UI でカバーされていない操作は、このツール上でシェルを選択して利用できる端末エミュレータ上でコマンド処理します。
Proxmox VE の Web ベースの管理ツール上のシェル
Linux コンテナのデプロイ
Proxmox VE では LXCとよばれる Linux コンテナを利用できます。
Linux コンテナ (LXC) イメージのダウンロードは、Proxmox VE の Web システムの UI で出来ないので、端末エミュレータ上でダウンロードします。ダウンロードしたイメージは Proxmox VE 上ではテンプレートとして扱われ、これをデプロイします。コマンド名は違いますが考え方は Docker と同じです。
テンプレートさえあれば、あとは Web の UI でデプロイできますが、まずは、コマンドでコンテナの起動までやってみます。
コンテナのテンプレートのダウンロードは、pveam (Proxmox VE Appliance Manager) というコマンドで操作します。
まず、次のようにコンテナ・テンプレートのデータベースを更新します。
root@pve:~# pveam update
update successful
ダウンロード可能なテンプレートを表示します。
root@pve:~# pveam available
mail proxmox-mailgateway-6.2-standard_6.2-1_amd64.tar.gz
system alpine-3.10-default_20190626_amd64.tar.xz
system alpine-3.11-default_20200425_amd64.tar.xz
system archlinux-base_20200508-1_amd64.tar.gz
system centos-6-default_20191016_amd64.tar.xz
system centos-7-default_20190926_amd64.tar.xz
system centos-8-default_20191016_amd64.tar.xz
system debian-10.0-standard_10.0-1_amd64.tar.gz
system debian-8.0-standard_8.11-1_amd64.tar.gz
system debian-9.0-standard_9.7-1_amd64.tar.gz
system fedora-31-default_20191029_amd64.tar.xz
system fedora-32-default_20200430_amd64.tar.xz
system gentoo-current-default_20200310_amd64.tar.xz
system opensuse-15.1-default_20190719_amd64.tar.xz
system ubuntu-16.04-standard_16.04.5-1_amd64.tar.gz
system ubuntu-18.04-standard_18.04.1-1_amd64.tar.gz
system ubuntu-19.10-standard_19.10-1_amd64.tar.gz
system ubuntu-20.04-standard_20.04-1_amd64.tar.gz
turnkeylinux debian-10-turnkey-b2evolution_16.0-1_amd64.tar.gz
turnkeylinux debian-10-turnkey-cakephp_16.0-1_amd64.tar.gz
...
(途中省略)
...
turnkeylinux debian-9-turnkey-zurmo_15.2-1_amd64.tar.gz
root@pve:~#
ここでは Debian 10 のシステムイメージ debian-10.0-standard_10.0-1_amd64.tar.gzをダウンロードします。
root@pve:~# pveam download local debian-10.0-standard_10.0-1_amd64.tar.gz
starting template download from: http://download.proxmox.com/images/system/debian-10.0-standard_10.0-1_amd64.tar.gz
target file: /var/lib/vz/template/cache/debian-10.0-standard_10.0-1_amd64.tar.gz
--2020-05-20 19:16:25-- http://download.proxmox.com/images/system/debian-10.0-standard_10.0-1_amd64.tar.gz
Resolving download.proxmox.com (download.proxmox.com)... 51.91.38.34, 2001:41d0:203:7470::34
Connecting to download.proxmox.com (download.proxmox.com)|51.91.38.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 230629816 (220M) [application/octet-stream]
Saving to: '/var/lib/vz/template/cache/debian-10.0-standard_10.0-1_amd64.tar.gz.tmp.10384'
0K ........ ........ ........ ........ ........ ........ 1% 641K 5m47s
3072K ........ ........ ........ ........ ........ ........ 2% 772K 5m13s
...
(途中省略)
...
224256K ........ ....... 100% 1.36M=2m10s
2020-05-20 19:18:35 (1.70 MB/s) - '/var/lib/vz/template/cache/debian-10.0-standard_10.0-1_amd64.tar.gz.tmp.10384' saved [230629816/230629816]
download finished
root@pve:~#
pveam downloadコマンドでダウンロードされる LXC(テンプレート)は、proxmox.comドメインのサイトにある圧縮ファイルで、local ストレージの /var/lib/vz/template/cache/にダウンロードされます。
ダウンロードされたコンテナ・テンプレートの一覧を表示します。
root@pve:~# pveam list local
NAME SIZE
local:vztmpl/debian-10.0-standard_10.0-1_amd64.tar.gz 219.95MB
コマンド操作でコンテナをデプロイ
コンテナを操作するには pctコマンド (Tool to manage Linux Containers (LXC) on Proxmox VE) を使用します。
仮想コンテナの識別番号 VMID を 999 として、ダウンロードしたテンプレート (debian) を local-lvm へデプロイします。
root@pve:~# pct create 999 local:vztmpl/debian-10.0-standard_10.0-1_amd64.tar.gz -storage local-lvm
Logical volume "vm-999-disk-0" created.
mke2fs 1.44.5 (15-Dec-2018)
Discarding device blocks: done
Creating filesystem with 1048576 4k blocks and 262144 inodes
Filesystem UUID: 33026232-926d-4308-86dc-217f5d3e1b0f
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Multiple mount protection is enabled with update interval 5 seconds.
Writing superblocks and filesystem accounting information: done
extracting archive '/var/lib/vz/template/cache/debian-10.0-standard_10.0-1_amd64.tar.gz'
Total bytes read: 669562880 (639MiB, 127MiB/s)
Detected container architecture: amd64
Creating SSH host key 'ssh_host_dsa_key' - this may take some time ...
done: SHA256:cuNLeoIF1tNAIi6XIm57QX8KbMJUbz3SseQub8PqZm0 root@localhost
Creating SSH host key 'ssh_host_ecdsa_key' - this may take some time ...
done: SHA256:aZ3voXWsIFma4rCrY4Vj/Y2efVq6zjpU/j6c9V4/ZwA root@localhost
Creating SSH host key 'ssh_host_ed25519_key' - this may take some time ...
done: SHA256:gBxNPclG5fKs+21q34U1lUaGMvQPw+RucpBI3VJP+7k root@localhost
Creating SSH host key 'ssh_host_rsa_key' - this may take some time ...
done: SHA256:oEzC4qODjCwuHOF4aw4a7gPceHMt8Tk1tm12QI5C0Ec root@localhost
root@pve:~#
ストレージの論理ボリュームの領域 local-lvmにボリュームラベル vm-999-disk-0を付けて 4GB ほどの領域が作成され、そこへコンテナのテンプレートがデプロイされました。
デプロイしたコンテナにネットワークを設定しておきます。固定アドレスではなく DHCP を指定しました。MAC アドレスは指定をしなければ自動的に生成されるようです。
root@pve:~# pct set 999 -net0 name=eth0,bridge=vmbr0,ip=dhcp
VMID = 999 を指定して、コンテナを起動します。
root@pve:~# pct start 999
Web 左側のコンテナアイコン (CT999) が起動したのを確認して、コンテナに入ります。
root@pve:~# pct enter 999
root@CT999:~#
コンテナの起動して、コンテナに入る
コンテナから出て、ストレージの使用状況を確認すると、以下のようになっています。
root@CT999:~# exit
root@pve:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 120.1G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 512M 0 part
└─sda3 8:3 0 119.6G 0 part
├─pve-swap 253:0 0 4G 0 lvm [SWAP]
├─pve-root 253:1 0 29.8G 0 lvm /
├─pve-data_tmeta 253:2 0 1G 0 lvm
│ └─pve-data-tpool 253:4 0 69G 0 lvm
│ ├─pve-data 253:5 0 69G 0 lvm
│ └─pve-vm--999--disk--0 253:6 0 4G 0 lvm
└─pve-data_tdata 253:3 0 69G 0 lvm
└─pve-data-tpool 253:4 0 69G 0 lvm
├─pve-data 253:5 0 69G 0 lvm
└─pve-vm--999--disk--0 253:6 0 4G 0 lvm
sr0 11:0 1 1024M 0 rom
root@pve:~#
今回、Proxmox VE を評価するにあたって、約 120GB の領域を確保したのですが、上記の領域を単純に足し合わせると総量と合いません。この仕組みを理解できていませんので調べる必要があります。
Web UI でコンテナをデプロイ
コンテナのテンプレートがダウンロードされていれば、Web UI 上でデプロイできます。画面右上にある「CTを作成」ボタンをクリックします。
「CTを作成」ボタン
ボタンをクリックすると、ダイアログ画面が表示されますので、まずルートのパスワードを入力します。VMID やホスト名の指定もできます。
ダウンロード済みのテンプレートが選択できますので、デプロイするテンプレートを選択します。ここでは ubuntu を選択しました。
ストレージの容量、CPU のコア数、メモリ (RAM) の容量を設定します。
ネットワークは DHCP を選択しました。
DNS の設定はそのままで、最後の確認画面で完了をクリックします。
すると、テンプレートのデプロイがはじまります。
テンプレートのデプロイ
デプロイが終わると UI 上にデプロイしたコンテナが表示されます。
デプロイしたコンテナを選択し、右クリックするとプルダウンメニューが表示されますので、「開始」を選択してコンテナを起動します。
コンテナが起動してアイコンが変化したのを確認し、再び右クリックでプルダウンメニューを表示され、「コンソール」を選択します。
すると、ブラウザ上の端末エミュレータが別ウィンドウで表示されますので、root でログインできることを確認します。
端末エミュレータで デプロイした ubuntu のコンテナにログインできることを確認
仮想マシンのインストール
Linux カーネルを利用する場合はコンテナを利用した方が効率が良いのですが、Linux のカーネルを使わない OS を利用したい場合は、コンテナではなくて仮想マシンを作成します。Windows をインストールする場合、ISO ファイルを入手して、Web UI でアップロードします。
ストレージ local の内容を表示し、「アップロード」ボタンをクリックします。
Windows.iso を選択してアップロードします。
ストレージ local の内容の画面で ISO イメージの項目が追加され、アップロードされた Windows.iso が表示されます。
アップロードされた ISO ファイルは、/var/lib/vz/template/isoに格納されます。
「VMを作成」ボタンをクリックします。仮想マシンの設定は、テンプレートの代わりに ISO ファイルを選ぶ以外、コンテナをデプロイするときの設定とほぼ同じです。
仮想マシン 101 (Windows) を開始(起動)します。
アイコンが変わって開始を確認したらコンソールを開きます。
Windows 10 のインストーラーが起動します。じつに久しぶりの Windows のインストールですが、その紹介は本記事のテーマではないので、詳細は割愛します。
Windows 10 のインストール開始画面
拷問のように長い設定の後、ようやく Windows を使えるようになりました。
Windows 10 Home のデスクトップ画面
まとめ
項目 | 説明 |
---|
ディストリビューション | Proxmox VE |
プロジェクトサイト | https://www.proxmox.com/ |
デスクトップ環境 | なし |
対応プラットフォーム | x86_64 |
パッケージ管理 | deb, APT |
日本語入力 | N/A |
寸評 | Web ベースの管理システムで仮想環境のための Linux ディストロ、ハイパーバイザーです。大規模なクラウド環境がどのようになっているかは想像を超えるので、あれこれ言えませんが、オンプレミスな環境で強力なサーバーシステムがあれば、Proxmox VE をインストールして、そのコンピュータ資源を有効に活用できそうです。Proxmox VE ではクラスター管理もできるようになっていますが、評価できる環境がありませんでした/ |
雑感
7 - 8 年前、当時勤めていた会社の文書管理システムに新しいシステムを導入したときのことです。結構パワフルなサーバーを導入し、Linux の仮想システム上に、Web サーバー、アプリケーションサーバー、そしてデータベースサーバーを 3 つの Windows OS で構成しました。一台 3 役の設定です。文書管理担当の部下から、どうしてそんな面倒な構成にするのですかと尋ねられたとき、返答に詰まりました。スケーラビリティを確保するためと答えたかったのですが、それでは伝わらないと思ったからです。
IT に詳しくない部下にうまく伝えられないと上から目線で偉そうに考えていましたが、なんのなんの、自分も五十歩百歩だったに違いありません。Proxmox VE を動かしてみて勉強になったことが多々あるからです。
参考サイト
- ProxmoxVEのセットアップと利用 - Qiita [2018-10-18]
- Proxmoxインストールしようぜの巻 | エンジニアブログ [2019-05-22]
にほんブログ村