Linuxと仮想化とクラウド基盤: “クラウド基盤”としての”OpenStack”の状況

こんにちは、クラウドサービス開発部の郷古です。
研修シーズンではないかとおもいますので、今回は序論ということで、まずは、私達が関わってきた”クラウド基盤”の”OpenStackと”その取り巻く状況について見ていきたいと思います。

私の連載「Linuxと仮想化とクラウド基盤」をテーマにします

わたしの所属するクラウドサービス開発部は、z.com cloudやConoHaなどのVPS Cloudのクラウドサービス基盤を開発運用していく部署です。
インフラエンジニアであるわたしの仕事の中で思いついたこと、クラウド基盤を運用する上で必要なopensourceに触れて考えたことについて、このGMO developers blogに書いていていければと思っています。

「クラウド基盤」ソフトウェアとしての「OpenStack」とは

まず、「クラウド基盤」ソフトウェアとはなんでしょうか? いまでこそ、AWS、GCP、Azure、IBM cloudなどの大手系クラウドや、DegitalOcean、Linode、Scaleway、
Vultr、ConoHa(あえてこのへんに入れてみる)などの新世代のクラウドなど、public cloudは種類がありますが、これらのクラウドそのものをどのように運用していのか興味を持ったことはありませんか?

(AWSのオンプレミス版は、AWS Outposts, https://aws.amazon.com/jp/outposts/、Azureのオンプレミス版は、Azure Stack Hub https://azure.microsoft.com/ja-jp/overview/azure-stack/ など、Public cloudのプライベート版も近年ではあります。それらでアーキテクチャが公開されているものもあります)

また、サーバーとストレージ、ネットワークを活用して、プライベート(オンプレミス)で「クラウドと同じ運用方法」で開発、デプロイメント、運用をできないかと考えたことはありませんでしょうか。まさに、その用途に必要なソフトウェアが「クラウド基盤」ソフトウェアなのです。

その代表的なものの1つが、”OpenStack” であり、ConoHaなどで私達が採用してきたものとなります。
OpenStackはPythonでおもに開発されているオープンソースソフトウェアであり、Open Infrastructure Foundation (OpenStack Foundationから改名変更)が主体となって開発しています。
年に2回のリリースをするスケジュールになっており、現在(2021/04/24)のリリースは、(https://releases.openstack.org/wallaby/ “Wallaby release”)、(https://releases.openstack.org/index.html “OpenStack releases”)になります。(このことについては、後で述べます。)


https://openinfra.dev/

the Open Infrastructure Foundation

OpenStackはもともと”NASA”と”Rackspace”という2つの開発母体がもっていた仮想化基盤ソフトウェアを一緒に開発していこうとして、さまざまな企業や個人の開発者を巻き込んでオープンソース(Apache License 2.0)として開発する今ではおなじみなスタイルをとって始まりました。開発が進み、成果としてRacksapce cloudの基盤としての採用や、その他のOpenStackベースのクラウド基盤の採用につながっています。
(”ConoHa”もそうです)。

OpenStack Releases

OpenStackはComputingやBlock Device Serviceなど機能が分割されたマイクロサービス・アーキテクチャを持っています。それにより機能ごとの開発コミュニティを形成させて開発することで、全体のガバナンスをFoundationがとるスタイルで開発されています。
機能追加の方向性は、マイクロサービス機能ごとに開発コミュニティへ参加した企業の色が強く出ることが度々ありました。

しかし、(https://summit.openinfra.dev/ “The Open Infrastructure Summit)(旧”OpenStack Summit”)などでのOps Community の
Meetup などでの運用者と開発者とのコミュニティ形成など工夫が開発の仕組みとして取り組まれていますね。これにより、全体の方向性のを定めて開発するポイントなどが、よりわかりやすく告知されるようになった気がします。

OpenStack以外の「クラウド基盤」は?

その他のクラウド基盤についても、現在の状況に目を向けてみます。その他のオープンソースのクラウド基盤として現在も開発が続いているものとしては、”Apache Cloud
Stack”(以降、”CloudStack”)や “OpenNebula” などがあります。

“CloudStack” https://cloudstack.apache.org/ は、もともと”Cloud.com”という企業が、仮想化運用基盤として開発したものが始まり(2008)となっており、2010-05に最初のオープンソース版(GPLv3)がリリースされました。その後、Citrix Systemsに2011/07に手に入れて、ApacheFoundationに寄贈され、
ASF(Apache Softare Foundation)での開発が進められるようになります。
(CloudStack 4.0.2が最初の安定リリース)

4.0.xからバージョンが進み、現在では、LTSリリースということで、4.14.0 LTS、4.15.0 LTS の2つのバージョンがメンテナンスリリースされています。途中でOpenStackのSwift Object Storage でのS3 機能の取り込みなどがあり、JavaとPythonので開発されています。

Apache CloudStack

“OpenNebula https://opennebula.io/” は、スペイン・マドリード コンプルテンセ大学の研究室が開発され(2005)、最初のリリースは(2008)であり、分散インフラストラクチャ上の仮想マシン管理環境として開発されました。現在はOpenNebula Systemsからはサポートつき製品としてEnterprise Edition(アップグレードスクリプトなどはこちらに含まれる)、OpenNebula Projectのオープンソース・コミュニティからはCommunity Editionとしてオープンソース版がリリースされています(現在安定版バージョン、6.0 ‘Mutara’ https://opennebula.io/mutara/ )。

開発言語はRuby, C++, shell script, lex, yacc, JavaScriptなどが使われており、ここまでの “OpenStack”、 “CloudStack” と比べてコントロール部分が軽量でありながらマルチクラウドの管理機能や、AWS FirecrackerマイクロVMの対応、LXDの対応など細かな機能も追加されており、「分散クラウドアーキテクチャ」として “hyperconverged edge cloud solution” などをサポートEenterpriseEdition版で対応するなどの発表をしています。

OpenNebula

また、今、クラウドというと、「コンテナ・アプリケーションでの開発しかしていないよ」という方もおられるかもしれません。その中でも有名な “Kubernetes” https://kubernetes.io/ja/ は「コンテナ管理基盤」として説明されていますが、機能の拡張などによって、「クラウド基盤」とも言える機能が一部で追加(仮想化基盤: “KubeVirt“) されつつあります。そちらについても注目が集まっており、今後取り上げて書いてみたいですね。

KubeVirt

「クラウド基盤」としての “OpenStack” の現在

OpenStack Wallaby” が正式公開されました。

一つ前のリリースの OpenStack “Victoria” では、Kubernetes対応のソフトウェア対応や、コンピューティング環境の多様化(GPU, FPGA, Network Offload)など多数の対応などが行われたました。

OpenStackのコンポーネントサービス一覧

それに対して、”Wallaby” リリースでは、細かな改善などが多い印象です。
各サービスのAPI のRBACの設定ファイルとして存在していた “policy.json” ファイルが、”Victoria”では一部yaml化され、可読性と設定しやすくなっていました。それにたいして、OpenStack “Wallaby” では、yaml化がすべてのサービスで適用されたようです。

また、IaaS強化のなかでもIronicはクラウドのベースインフラの対応として、単独(”Stand Alone”)での運用強化と、最新のサーバ構築(”Redfishドライバでの電源OffでのRAID設定対応”やUEFIパーティションイメージ対応)の対応なども進んでいるみたいです。

“Metal3” (https://metal3.io/)など、OpenStack以外でのIronicの利用なども多くなってきています)

Metal3 : Kubernetes + Ironic stnad-alone

私の印象としては、”Victoria” でだいぶ使いやすくなり、”Wallaby” でそれを固めるといった印象です。

“ops”から要望のあった”LTS”の状態ではなく、Ubuntu 20.04では1つ前の “Ussuri” が LTSリリースだったようですが、”Victoria”, “Wallaby” と有用なOpenStackリリースであることがみられ、基盤として安定化が進んでいるように思われました。

(いちばん重要なことですが、検証せずに採用しないでくださいねww)

ブログの著者欄

郷古 仁直

GMOインターネット株式会社

システム本部 クラウドサービス開発部所属 GMOインターネットではホスティングサービスから始まり,GMOアプリクラウド,ConoHaとクラウド基盤のサービス開発をOpenStackで行っている。 いままでUndercloudなインフラの仕事が長かったからか,OpenStackではDesignate(DNS as a service)とIronic(baremetal service)が好き。 合う人に「おなか出ましたね」と言われつつも,最近はお肉とお酒があれば,どこだって行きます,しゃべります的なイベント駆動開発でものを作ったりする活動を個人的にしている。

関連記事