IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウド時代のオープンソース実践活用

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第13回 OpenStackのべアメタル・デプロイメントを考える (中井悦司) 2013年2月

はじめに

 最近、「日経Linux」誌で新しい連載をはじめました。「絶対分かるLinuxサーバーの基礎原理」という少し大げさなタイトルですが、中身は初心者向けになっています。「レッド博士とハット君」が対話形式で、CPU、メモリ、ネットワークなど、Linuxサーバの動作原理を基礎から解説していきます。
 この連載では、AWSのRHELインスタンスを利用した、「誌上ハンズオン」にもチャレンジしています。CTC教育サービスの研修施設を活用した「コラボレーション勉強会」を実施した際にも実感しましたが、理屈で分かっている事でも、実際に試してみると、必ず新たな発見があるものです。「これからLinuxを勉強してみよう/もう少し深くLinuxを理解してみたい」という方には、一度、書店で手にとっていただけると幸いです。
 さて、今回は、OpenStackの最後の話題として、「Baremetal Deployment(ベアメタル・デプロイメント)」について解説したいと思います。

Baremetal Deploymentとは

 OpenStackは、元々は、Amazon EC2/S3に相当するIaaS環境をオープンソースで構築することを目指したプロジェクトでした。簡単に言うと、WebポータルやAPIを使って、利用者が必要な仮想マシンを自由に用意できる環境を提供しようというわけです。
 その一方で、仮想マシンだけではなく、物理サーバ環境も同じWebポータル/APIで提供したいと考える人が出てきました。つまり、WebポータルからOSイメージを選択して「起動」ボタンを押すと、そのOSイメージがインストールされた物理サーバが、自動で用意されるというわけです。
 このように、OpenStackに対して、物理サーバを自動インストールする機能を追加しようという試みが、ここで紹介する「Baremetal Deployment」です。現在、実際に機能するものとしては、NII(国立情報学研究所)の「研究クラウド」で採用されている「dodai-compute」や、OpenStackの開発コミュニティでディスカッションが進められている「GeneralBareMetalProvisioningFramework」などがあります。
 筆者は、昨年末ごろより、NIIの研究室から依頼を受けて、これらの実装の比較や今後の拡張方式についてのレポートを作成していました。特定の目的に向けたレポートですので、その内容を紹介することはしませんが、今回はレポート作成の中で見えてきた、「Baremetal Deploymentの一般的な特徴」を紹介します。

Baremetal Deploymentにおける考慮点

 元々のOpenStackは、仮想マシンを管理する前提で、さまざまな仕組みが考えられています。そこに物理マシンを当てはめる場合、次のような考慮点が生じます。

  1. 起動する物理サーバの選択方式
  2. OSインストール方式
  3. ネットワーク接続方式

 ここでは、とくに面白い、(1)について解説します(*1)。はじめに、「Nova」がインスタンスを起動する際の処理の流れを説明しておきます。
 クラウド環境には、仮想マシンを起動するための多数の物理ホストがあります。Novaの一機能である「Nova Scheduler」は、ここから、実際に仮想マシンを起動するホストを1つ選択します。この際、各ホストのリソース使用率などを考慮して判断します。その後、選択したホストの「Compute Driver」に対して、指定のインスタンス(仮想マシン)を起動する指示を出します(図1)。

fig01

図1 Nova SchedulerとCompute Driverの連携方式

 それでは、この流れにしたがって、物理サーバを起動する場合はどう考えるべきでしょうか? これには、2つの選択肢があります。
 1つは、それぞれの物理サーバを「インスタンスを1つしか起動できないホスト」として、Novaに登録する方法です。改変したCompute Driverが動作する「代表サーバ」が、すべての物理サーバの情報をNovaに登録します。
 この場合、Nova Schedulerは、未使用の物理サーバの1つを選択して、それに対してインスタンス起動の指示を出します。実際には、先の「代表サーバ」のCompute Driverが指示を受けて、対応する物理サーバに、指定のOSイメージをインストールして、ネットワーク接続するという処理を行います。
 少しトリッキーな印象も受けますが、既存のNova SchedulerとCompute Driverの連携方式をうまく再利用した方式です。「GeneralBareMetalProvisioningFramework」では、この方式を採用しています。

dadai-computeのアプローチ

 一方、「dodai-compute」では、少し異なるアプローチを取ります。1台1台の物理サーバを「仮想マシン」に見立てて、これらをまとめたプールを巨大な「ホストマシン」とみなします。
 Novaに対しては、このプールを「収納した物理サーバ数分のインスタンスを起動できるホスト」として登録します。実際には、プールごとに用意した「代表サーバ」上の改変版Compute Driverを登録する形になります。
 この場合、Nova Schedulerは、未使用の物理サーバが残っているプールの1つを選択して、そこで稼働するCompute Driverに、仮想マシン起動の指示を出します(図2)。

fig02

図2 dodai-computeのプール方式

 仮想マシン起動の指示を受けたCompute Driverは、プール内で空いている物理サーバを1つ選んで、OSイメージのインストールを行います。物理マシンの選択が、Compute Driverに任されている点が特徴です。
 このように、物理マシンを管理すると言っても、さまざまな考え方があることが分かります。もちろん、それぞれにメリット・デメリットがあります。OpenStack以外のクラウド基盤ソフトウェアでも、Baremetal Deploymentの機能が実現しつつあるようですので、今後、どのような方式が主流になるのかは、興味深い点になります。

次回予告

 次回からは少し趣向を変えて、PaaS(Platform as a Service)のインフラを構築するオープンソース「OpenShift」を紹介します。OpenShiftは、さまざまな開発言語に対応していることが特徴で、インターネット上のサービスとして利用するだけではなく、同じ環境を自分で構築して独占利用することもできてしまいます。
 単なる利用方法だけではなく、内部の仕組みについても解説していく予定です。このような内部の仕組みが調べられるのも、オープンソースならではのメリットですね。

参考資料

*1)「Deploying Baremetal Instances with OpenStack
 日本OpenStackユーザ会の第11回勉強会で発表した資料です。(1)だけではなく、(2)(3)についても解説があります。

 

++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
 CTC教育サービス Linuxのページ
 http://www.school.ctc-g.co.jp/linux/
 

Linux研修トレーニングならCTC教育サービス


 

筆者書籍紹介

Software Design plusシリーズ
「独習Linux専科」サーバ構築/運用/管理
  ――あなたに伝えたい技と知恵と鉄則

本物の基礎を学ぶ!新定番のLinux独習書

中井悦司 著
B5変形判/384ページ
定価3,129円(本体2,980円)
ISBN 978-4-7741-5937-9
詳しくはこちら(出版社WEBサイト)
「独習Linux専科」サーバ構築/運用/管理

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes