古い中古PCをLinuxコンテナ(LXD)マシンとして構築してみた
中古で購入したDELLのOptiplex 790 SFFにUbuntuとLXDをインストールし、Linuxコンテナマシンを構築しました。
構築理由はLinuxサーバの動作テストおよび、LPICなどの学習、新しいディストリビューションの探究用に軽量な仮想環境が欲しかったためです。コンテナはKVMのような仮想マシン(VM)よりも軽量であるため、動かせるOSはLinux(同じカーネルで動くOS)限定とはなりますが、コンテナは使い勝手がいいですから。
LXDマシンのスペック
マシンのスペックは以下です。
CPU | 第2世代インテル Core i5-2400S プロセッサー |
---|---|
チップセット | インテル Q65 Express チップセット |
ビデオ | インテル HDグラフィックス2000(内蔵) |
メモリ | デュアルチャネル1333MHz DDR3 SDRAM 8GB |
光学ドライブ | DVDスーパーマルチ、DVD-ROM |
ストレージ | ADATA SU650 (120GB) ※換装 |
ストレージは元々付いていた500GBのHDDを120GBのSSD(ADATA SU650)に換装済みとなります。ちなみに、Ubuntu付属のディスクツールはモデル名や温度、健康状態も表示されて意外に高機能です。
メモリは中古のせいか、2GBx2、4GBx1のおかしな構成ですが、そのせいでデュアルチャンネル動作にはなっていません。
ただメモリアクセスのパフォーマンスを要求されるようなゲームをするわけではないので実害はないと思われます。
Ubuntuのインストール
Ubuntuは現在の最新バージョンである20のISOイメージをDVDに焼いてインストールしました。 また、インストール後、apt updateコマンドで最新パッケージにアップデートしています。
LXDのインストール
LXDは推奨されているsnap版ではなく、apt版をインストールしました。
$ sudo apt install lxd
LXDのインストール後、lxd initコマンドで初期設定を実施します。殆どデフォルトで進めていますがIPv6のみnoneにしています。
$ sudo lxd init
LXDのインストールまでは特に考えることもなくさくっと進みます。
LXDのGUI管理ツールのインストール
次に、LXDのGUI管理ツールである、LXDUIをインストールします。 こちらもGitHubのページにインストール手順が丁寧に記載されているので、そのまま実行すれば難なくインストールできます。 (英語のページですが特に難しいことは書いていません)
ちなみに「virtual environment」の作成は必要がないためスキップしました。 また、LXDUIはPythonで作成されていますが、インストールは2通りあり、今回はpip3でのインストールを選択しました。
参考pipはPythonパッケージ管理ツールで、pip3はPython3用ののpipコマンドです。
GUIで手軽にコンテナの作成ができる
LXDで必要となる殆どの操作はこのLXDUIで実行できます。実際にコンテナを使用する際は、主要な操作はほぼすべてGUI上で実施できるのが理想です。そのためここからはLXDUIのみでLinuxコンテナの操作を行っていきます。
Linuxコンテナの作成には大きく分けて、イメージのダウンロードとコンテナの構築の2段階があります。 イメージのダウンロードはLXDUIの左メニュー内の [Images] でリモートサーバを選択し、必要なLinuxディストリビューション、バージョン、アーキテクチャのイメージを探して選択し、[Download] ボタンよりダウンロードします。
イメージのダウンロード後、[Images] の [Local] タブで、そのイメージを選択して [Launch Container(s)] ボタンでコンテナを作成します。
コンテナが作成されれば、[Containers] 内に一覧表示されます。
コンテナの開始や停止など、各コンテナに対する操作は、[Containers] 内で対象コンテナのリンクをクリックして行えます。
作成したコンテナにはLXDUI上の [Terminal] ボタンからターミナルでログインすることが可能です。
SSHでコンテナに接続
もちろんSSHでコンテナに接続することも可能です。その場合は、SSHでホストであるUbuntuに接続した上で、以下のコマンドで対象のコンテナに接続します。
lxc exec コンテナ名 -- シェル
例)bashシェルでcentos7に接続
$ lxc exec centos7 -- bash
Note先にホストのUbuntus側でSSH接続が行えるように構成しておく必要があります。SSHはsudo apt install openssh-serverでインストールが行えます。
ポートマッピングで他のPCからのコンテナへのアクセスも簡単
ネットワークは初期設定ではコンテナンのホストがNATとなり、各コンテナにIPアドレスを割り振る形になります。 そのため、そのままでは他のPCから直接コンテナにアクセスすることができません。 コンテナ上のWebページや、データベース等に他のPCから接続したい場合は、ポートマッピングを行います。
参考ポートマッピングは「ホストへのxxポートへの接続要求があれば、xxxxxコンテナのxxポートに転送する」というようにポートごとに転送先のコンテナとポートを指定できる機能です。
例えば、ホストへのtcp 80番ポートへの接続をcentos7のtcp 80番に割り当てる場合はコンテナの [Netowrking] タブの [Port Mapping] 項目から以下のように設定を追加します。
以上、古い中古PCをLinuxコンテナ(LXD)マシンとして構築してみたでした。
今回使用したもの
換装したSSDは以下です。コストパフォーマンスは抜群です。
公開日:2021年05月08日