Linux とは本来 Linux カーネルのことを指しています。しかし、カーネルだけでは OS として動作させることはできません。そこで、OS に関連するツールやアプリケーションなどをまとめて、インストールし易く、インストール後にすぐ利用できるような配布形態にしたものを「ディストリビューション(略してディストロ)」と呼んでいます。
本シリーズ記事は、Linux ディストリビューションをピックアップ、仮想マシン(あるいは実機)にインストールして紹介します[不定期]。
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 ベースの管理ツールへアクセスした例を示しました。
仮想環境にインストール
仮想環境を扱う 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 でカバーされていない操作は、このツール上でシェルを選択して利用できる端末エミュレータ上でコマンド処理します。
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を作成」ボタンをクリックします。
ボタンをクリックすると、ダイアログ画面が表示されますので、まずルートのパスワードを入力します。VMID やホスト名の指定もできます。
ダウンロード済みのテンプレートが選択できますので、デプロイするテンプレートを選択します。ここでは ubuntu を選択しました。
ストレージの容量、CPU のコア数、メモリ (RAM) の容量を設定します。
ネットワークは DHCP を選択しました。
DNS の設定はそのままで、最後の確認画面で完了をクリックします。
すると、テンプレートのデプロイがはじまります。
デプロイが終わると UI 上にデプロイしたコンテナが表示されます。
デプロイしたコンテナを選択し、右クリックするとプルダウンメニューが表示されますので、「開始」を選択してコンテナを起動します。
コンテナが起動してアイコンが変化したのを確認し、再び右クリックでプルダウンメニューを表示され、「コンソール」を選択します。
すると、ブラウザ上の端末エミュレータが別ウィンドウで表示されますので、root でログインできることを確認します。
仮想マシンのインストール
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 を使えるようになりました。
まとめ
項目 | 説明 |
---|---|
ディストリビューション | 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]
にほんブログ村