CloudStack 4.18をUbuntu 22.04 LTSにインストールしてみた

CloudStack

はじめに

開発用サーバーとか家族で使っているMincraftサーバーとかの個人的なサーバーをOpenNebulaで管理していたんだけど、CloudStackに変えてみる。
仮想サーバーのデータはイメージを移行するのではなく、各サーバー内の必要なファイルのバックアップを取ってCloudStackに新規作成する仮想サーバーにデータを移管することにする。なので、データ移管に関しては書きません。

CloudStackとは

まぁ、改めて書くことでもないんですが、CloudStackは下のような説明がよくされています。

CloudStackは、Apacheプロジェクトのオープンソースのクラウド基盤ソフトウェアです。クラウドとは、インターネット上にあるサーバーやストレージなどのリソースを利用することで、コンピューターやネットワークの機能を提供する仕組みです。
そのクラウドを構築・管理するためのソフトウェアで、パブリッククラウドやプライベートクラウドと呼ばれる形態で利用できます。パブリッククラウドとは、一般に公開されたクラウドサービスのことで、例えばAmazon EC2やMicrosoft Azureなどがあります。プライベートクラウドとは、特定の組織やグループが内部で利用するクラウドサービスのことで、セキュリティやコストなどの面でメリットがあります。

CloudStackの特徴は、以下のような点が挙げられます。

  • オープンソースであること。CloudStackは、Apacheソフトウェア財団によって開発・運営されており、誰でも自由に利用・改良・配布できます。また、世界中の開発者やユーザーがコミュニティを形成し、情報交換や協力を行っています。
  • 多様なハイパーバイザーに対応していること。ハイパーバイザーとは、仮想化という技術を使って、1台の物理的なマシンの中に複数の仮想的なマシンを作り出すソフトウェアのことです。CloudStackは、VMwareやHyper-V、KVM、Xenなどの主要なハイパーバイザーに対応しており、異なるハイパーバイザーを統合的に管理できます。
  • 高度な機能を備えていること。CloudStackは、仮想マシンの作成や起動、停止、削除などの基本的な操作だけでなく、ネットワークやストレージの設定、ロードバランサーやファイアウォールなどのネットワーク機器の制御、ユーザーやプロジェクトの管理、課金や監視などの機能も提供しています。また、Webブラウザから操作できるグラフィカルなユーザーインターフェースや、APIを通じてプログラムから操作できるインターフェースも用意されています。
  • 実績と信頼性が高いこと。CloudStackは、世界中の多くの企業や組織がクラウドサービスの提供や利用に採用しており、その性能や安定性が実証されています。日本では、IDCフロンティアがCloudStackを採用したクラウドサービスを提供しています。

使ってみた感じ、AWSのEC2で管理できる部分をそのままプライベートクラウドとして使える感じです。
OpenStackも移行先の候補だったんだけど機能が多すぎて使い切れないので、ちょうどいい規模のCloudStackにしました。

使用する環境

ハードウェア

OpenNebulaの時もminiONEでインストールしたオールインワン構成だったんだけど、同じハードを使うのでオールインワン構成です。
このマシンに全部詰め込みます。

CPUAMD Ryzen 7 2700 (無印)
メモリ48GB (16GB + 32GB)
マザーボードASUS AMD X470 PRIME X470-PRO
ディスクKIOXIA EXCERIA SSD-CK240S/N 240GB x 1 (OS起動用)
KIOXIA EXCERIA G2 SSD-CK1.0N3G2/N 1TB x 2 (RAID1 OSインストール、仮想環境データ)
Western Digital WD60EZAZ-RT 6TB x 4 (RAID1+0 仮想環境データ)
グラフィックボードMSI N730K-2GD3H/LPV1 (GeForce GT 730 2GB) (ホストOS管理用)
ZOTAC GAMING GeForce GTX 1650 OC 4GB (GPUパススルー用)
ネットワークオンボード 1口
ハードウェア構成

ネットワーク

ゲートウェイ192.168.0.1
ネットワーク192.168.0.0/20
ネットマスク255.255.240.0
DNS192.168.0.1
192.168.1.2
ホストサーバー192.168.1.16
仮想サーバー用レンジ192.168.1.56 – 192.168.1.183

システム構成

ソフトウェア

OSUbuntu Server 22.04 LTS
プライベートクラウドCloudStack 4.18
WebサーバーNGINX
ハイパーバイザKVM

ディスク

KIOXIA EXCERIA SSD-CK240S/N
240GB
パーティション1:
 サイズ: 2GB
 マウントポイント: /boot

余った領域は未割り当てです。
超贅沢な使い方だけど、未使用領域が多いとその分長持ちするらしい。
boot領域のRAIDのしにくさをカバーできるかな。
KIOXIA EXCERIA G2 SSD-CK1.0N3G2/N
1TB x 2
パーティションを2つに分ける。
パーティション1: 871.7GB => RAID1
パーティション2: 59.8GB => SWAP

RAID1にした領域はさらに2つのパーティションに分ける。
パーティション1-1:
 サイズ: 251GB
 マウントポイント: /
パーティション1-2:
 サイズ: 615GB
 マウントポイント: /mnt/pool00
Western Digital WD60EZAZ-RT
6TB x 4
全ての領域でRAID1+0を構成
パーティション1:
 サイズ: 11TB
 マウントポイント: /mnt/pool01

比較的容量の多い下記マウントポイントはNFSで共有することになります。

  • /mnt/pool00
  • /mnt/pool01

pool00 はプライマリストレージとして使います。
稼働する仮想サーバーのディスクが保存されるので容量が大きく、高速なディスクを使うのが良さそうです。

pool01はプライマリストレージおよびセカンダリストレージとして使います。
本当はセカンダリのみで使った方がいいんだろうけど、SSD高いからね… ファイルサーバー用の仮想サーバーを準備する予定だからこっちもプライマリとして使います。
セカンダリはインストール用ディスク等の保存など、それほど速度を重視しなくても大丈夫な用途が多いです。
今思えば、pool01は2つのパーティションに分けた方がよかったかも。

参考情報


とりあえず、本題に入る前の環境はこんな感じです。
ネットワーク設定からCloudStackインストール・セットアップ方法などを次回以降で紹介します。