[ English | 日本語 | Deutsch | Indonesia ]

はじめに

OpenStack はオープンソースプラットフォームで、OpenStack を使うと、コモディティハードウェア上で動作する Infrastructure as a Service (IaaS) クラウドを自分で構築できます。

OpenStack の概要

OpenStack は、オープンソース、オープン設計、オープン開発を信じています。すべては、あらゆる人の参加を奨励するオープンコミュニティにより行われています。OpenStack の長期ビジョンは、規模によらず、パブリッククラウドやプライベートクラウドのプロバイダーの要求を満たす、ユビキタスなオープンソースのクラウドコンピューティングソフトウェアを作成することです。OpenStack のサービスは、データセンター全体のコンピュート、ストレージ、ネットワークの大規模なリソースプールを制御します。

OpenStack の背後にある技術は、クラウドインフラストラクチャーソリューション向けのさまざまなコンポーネントを提供する一連の相互に関連するプロジェクトから構成されます。各サービスは、これらのリソースをすべてダッシュボードから管理できるよう、オープンな API を提供します。これは、権限を与えられたユーザーが、API をサポートする Web インターフェース、コマンドラインクライアント、ソフトウェア開発キット (SDK) 経由でリソースを配備する管理者権限を与えます。多くの OpenStack API は拡張できます。API 拡張経由でより多くのリソースにアクセスして革新しながら、コアなコール群の互換性を保つことができます。OpenStack プロジェクトは、開発者とクラウドコンピューティング技術者のグローバルなコラボレーションです。プロジェクトは、パブリッククラウドおよびプライベートクラウド向けのオープン標準なクラウドコンピューティングプラットフォームを生産します。実装のしやすさ、大規模なスケーラビリティ、さまざまな豊富な機能、ものすごい拡張性に注力することにより、プロジェクトはあらゆる種類の組織に対して実践的かつ信頼できるクラウドソリューションを提供することを目指しています。

OpenStack 入門

OpenStack はオープンソースプロジェクトとしてユニークな点があります。その 1 つはさまざまなレベルで OpenStack に携わりはじめることができる点です。すべてを自分自身で行う必要はありません。

OpenStack の使い方

「まだクラウドを構築する必要がありますか?」と質問したことでしょう。クレジットカードを使うだけで、コンピュートサービスやストレージサービスを使いはじめたい場合、eNovance、HP、Rackspaceやその他の組織によるパブリック OpenStack クラウドを使うことができます。それらの OpenStack クラウドのリソースを使うことは、パブリックにアクセスできる Amazon Web Services Elastic Compute Cloud (EC2) や Simple Storage Solution (S3) にアクセスすることと似ています。

プラグアンドプレイ OpenStack

しかしながら、OpenStack の魅力的な部分は、自分のプライベートクラウドを構築することかもしれません。そして、この目標を達成する様々な方法があります。おそらく最も簡単な方法は、アプライアンス形式のソリューションです。アプライアンスを購入し、それを展開し、電源とネットワークを接続します。そして、最小限の追加設定だけで OpenStack クラウドが構築されていくことを眺めましょう。

また一方、ハードウェアの選択が多くのアプリケーションにとって重要です。そのため、アプライアンスを適用する場合、自分で選択したサーバー、ストレージ、ネットワークの製品で実行できる、ソフトウェアディストリビューションがいくつかあることを考慮してください。Canonical (2011 年に標準のクラウド製品を Eucalyptus から OpenStack に置き換えました)、Red Hat、SUSE は、エンタープライズレベルの OpenStack ソリューションとサポートを提供しています。Rackspace、Piston、SwiftStack、Cloudscaling などの専門的なディストリビューションも見たいかもしれません。

代わりに、ベースとするハードウェアやアプリケーション、いくつかの新機能の追加、コンポーネントをくみ上げる方法を判断するために、誰かに支援してほしい場合、Mirantis や Metacloud などの OpenStack の経験豊富なシステムインテグレーターに連絡することを検討してください。

自分たち内部の OpenStack 専門性を高めることを優先する場合、それを始める良い方法は、トレーニングに参加または手配することかもしれません。OpenStack Foundation は、お近くのイベントを見つけられる Training Marketplace を開いています。また、OpenStack コミュニティーは、オープンソースのトレーニング教材を 作成していますworking to produce

自分の OpenStack の展開

しかしながら、このガイドは別の想定読者もいます。独自の自作ソリューションを導入することにより、OpenStack フレームワークの柔軟性を求めている人々です。

OpenStack は水平的にスケールするよう設計されているため、クラウドの拡大に合わせて新しいコンピュート、ネットワーク、ストレージのリソースを簡単に追加できます。大規模 OpenStack パブリッククラウドの広播性に加えて、PayPal、Intel、Comcast などの多くの組織が大規模なプライベートクラウドを構築しています。OpenStack は、クラウドを構築するためのいくつかの異なる技術を統合できるので、一般的なソフトウェアよりも多くのものを提供します。このアプローチにより、素晴らしい柔軟性を提供しますが、始めは数多くのオプションにより圧倒されるかもしれません。

この本の対象読者

この本は、OpenStack クラウドの運用を始めようとして人も、運用中の OpenStack クラウドを引き継ぎ、うまく動かし続けようとしている人も対象にしています。おそらく、あなたは devops チームの一員であったり、クラウドを始めたばかりのシステム管理者なのでしょう。あなたの会社の OpenStack クラウドチームに入ろうとしているのかもしれません。この本はそのような皆さん全員に向けたものです。

このガイドは、OpenStack をサポートする Linux ディストリビューション、SQL データベースや仮想化に関してよく知っていることを前提にしています。複数台の Linux マシンのネットワーク設定・管理にも慣れている必要があります。SQL データベースのインストールと管理を行い、場合によってはデータベースに対してクエリーを実行することもあります。

OpenStack クラウドの最も複雑な点の一つにネットワーク設定があります。DHCP、Linux ブリッジ、VLAN、iptables といった考え方をよく理解していなければなりません。OpenStack クラウドで必要となるスイッチやルータを設定できるネットワークハードウェアの専門家と話をする必要もあります。

注釈

クラウドコンピューティングは非常に高度な話題です。また、本書は多くの基礎知識を必要とします。しかしながら、クラウドコンピューティングに慣れていない場合、本書の最後にある Glossary 、OpenStack のオンラインドキュメント、リソース にある本書で参照されている参考資料を使うことを推奨します。

参考資料

作業を完了するために役立つ、その他のガイドは OpenStack ドキュメント Web サイト にあります。

インストールチュートリアル・ガイド

自動化せずに、手動で行う場合のインストール手順について説明しています。パッケージングシステムがある複数のディストリビューション向けのインストールガイドがあります。

OpenStack Configuration Reference

リリースバージョン毎に、OpenStack のコアサービス、統合されたサービスのすべての設定オプションの一覧が載っています

OpenStack アーキテクチャー設計ガイド

OpenStack クラウドの設計に関するガイドライン

OpenStack Administrator Guide

あなたのユースケースに合わせて、ストレージ、コンピューティング、Software-defined-networking など OpenStack クラウドを管理する方法が書かれています

OpenStack 高可用性ガイド

OpenStack サービス、関連するコントローラやデータストアを高可用にするために取りうる方策に説明しています

OpenStack セキュリティーガイド

OpenStack クラウドを安全にするためのベストプラクティスと基本的な考え方について書かれています

仮想マシンイメージガイド

OpenStack で利用可能な仮想マシンイメージを取得、作成、更新する方法について説明されています

OpenStack エンドユーザーガイド

OpenStack のエンドユーザーが、OpenStack Dashboard と OpenStack クライアントコマンドを使って、OpenStack クラウドのリソースの作成・管理を行う方法を説明しています

OpenStack Networking Guide

このガイドは、OpenStack Networking (neutron) を導入して管理する方法を探している、OpenStack 管理者を対象にしています。

OpenStack API Guide

OpenStack サービスのエンドポイントに REST API リクエストをどのように送信するかについての概要が説明されています

この本の構成

この本は、OpenStackクラウドを繰り替えし運用するためのベストプラクティスやヒントを示すいくつかのパートを含んでいます。

環境の把握

この章は、コマンドラインツールを用いてお使いの OpenStack クラウド全体を理解できるようにするために書かれました。また、お使いのクラウドにすでにセットアップされているものを理解することもできます。

プロジェクトとユーザーの管理

この章は、すべての管理者がユーザーを管理し、リソースを小さくまとめるクォータを設定するために必ず直面する、ユーザー有効化のプロセスを詳細に説明します。

ユーザーによる運用

この章は、OpenStack リソースの使用方法、ユーザーの教育方法について説明します。

メンテナンス、故障およびデバッグ

この章は、執筆者がこれまで本番環境を運用してきて、トラブルシューティングする中で見てきた、一般的な障害について詳細に検討します。

ネットワークのトラブルシューティング

ネットワークのトラブルシューティングは、仮想リソースでとくに難しくなります。この章は、ネットワーク通信の追跡、ネットワーク障害の根本原因の調査、DHCP や DNS などの関連サービスのデバッグに関するヒントとコツがたくさん詰まっています。

ロギングと監視

この章は、OpenStack のログ保存場所、監視目的にログを参照および管理する最良の方法について説明します。

バックアップとリカバリー

この章は、OpenStack 中でバックアップする必要があるもの、バックアップのリカバリーのベストプラクティスについて説明します。

カスタマイズ

OpenStack に特別な機能を追加したい読者向けに、この章は、カスタムミドルウェアやカスタムスケジューラーを書いて、リソースを再配置するために、DevStack を使用する方法について説明します。

高度な設定

ほとんどの OpenStack は、ドライバーを用いて動作します。そのため、サービスの基本セットに別のソリューションをプラグインできます。この章は、いくつかの高度な設定に関する話題を取り扱います。

アップグレード

この章は、本書で使用されるアーキテクチャーに基づいて、アップグレードに関する情報を提供します。

後付:

事例

OpenStack コミュニティーのユースケースをいくつか参照できます。少しの技術的な詳細と参考資料もあります。

ハリウッド^H^H^H^H^Hクラウドナイトメア

これらは、得がたい教訓や知見を得られた、イメージの消失、仮想マシンの大虐殺、クレイジーなトラブルシューティング技術に関する伝説的な公開物語です。

ロードマップの取り扱い

オープンかつ透明な OpenStack の開発プロセスからロードマップを把握する方法をまとめています。

リソース

プロジェクトの急速な成熟のため、数多くの OpenStack の情報源がオンラインで利用可能ですが、執筆者が学習している間に有用だったリソースを一覧化しています。

Glossary

この本で使われている用語の一覧。オンライン上にある OpenStack 用語集のサブセットです。

この本をなぜ書いたか?どうやって書いたか?

私たちは少なくとも1年以上 OpenStack クラウドを構築し運用してきました。そこで得られた知識を多くの人と共有するために、この本を書きました。 OpenStack クラウドの責任者として数ヶ月がたつと、そのドキュメントを渡しておけば、システム管理者に日々のクラウドの運用をどのように行なえばよいかが分かるようなドキュメントが欲しくなりました。また、クラウドを構築する際に選択したやり方のより詳細な技術情報を共有したいと思いました。

あなたの助けとなるように、この本を書きました。

  • 初めての本格的な OpenStack クラウドのアーキテクチャーの設計と構築。この本を読み終えると、コンピュート、ネットワーク、ストレージのリソースを選ぶにはどんな質問を自分にすればよいのか、どのように組み上げればよいのかや、どんなソフトウェアパッケージが必要かが分かることでしょう。

  • クラウドを管理する上で必要となる日々のタスクの実行。

私たちはこの本を Book Sprint で執筆しました。 Book Sprint は短い期間で本を建設的に作成できるメソッドです。詳しい情報は、 BookSprints のサイト を参照して下さい。著者らは2013年2月の5日間でこの本をまとめあげました。カフェインと、テキサス州オースティンの素晴らしいテイクアウトの食事は力になりました。

最初の日に、アイデアを色とりどりのポストイットでホワイトボードいっぱいに書き出し、クラウドを設計し運用するという漠然とした話題を扱った本の作成を開始しました。

_images/osog_00in01.png

私たちは一心不乱に自分たちの経験に基づき執筆を行い、互いに意見をぶつけ合いました。一定の間隔で、本の現在の状況や構成をレビューし、本を作り上げていき、今皆さんが見ているものができあがりました。

以下が執筆チームのメンバーです。

Tom Fifield

CERN の Large Hadron Collider (LHC) で ATLAS のような素粒子物理学実験でコンピューティングのスケーラビリティの経験を積んだ後、現在はオーストラリアの公的な研究部門を支援するプロダクションの OpenStack クラウドに携わっていました。現在は OpenStack のコミュニティマネージャーを務めており、空いた時間で OpenStack ドキュメントプロジェクトに参加しています。

Diane Fleming

Diane は OpenStack API ドキュメントプロジェクトで非常に熱心に活動しています。このプロジェクトでは自分ができるところであれば、どこでも取り組んでくれました。

Anne Gentle

Anne は OpenStack のドキュメントコーディネーターで、2011年の Google Doc Summit では individual contributor (個人コントリビュータ) を努め Open Street Maps チームとともに活動しました。Adam Hyde が進めていた FLOSS Manuals の以前の doc sprint にも参加しています。テキサス州オースティンに住んでいます。

Lorin Hochstein

アカデミック出身のソフトウェア開発者・運用者である彼は、Nimbis Services でクラウドサービスの Lead Architect として働いていました。Nimbis Service では彼は技術計算アプリケーション用の OpenStack を運用しています。 Cactus リリース以来 OpenStack に携わっています。以前は、University of Southern California's Information Sciences Institute (USC-ISI) で OpenStack の high-performance computing 向けの拡張を行いました。

Adam Hyde

Adam は今回の Book Sprint をリードしました。 Book Sprint メソッドを創設者でもあり、一番経験豊富な Book Sprint のファシリテーターです。詳しい情報は BookSprints を見てください。 3000人もの参加者がいるフリーソフトウェアのフリーなマニュアルを作成するコミュニティである FLOSS Manuals の創設者です。また、Booktype の創設者でプロジェクトマネージャーです。 Booktype はオンラインで本の執筆、編集、出版を行うオープンソースプロジェクトです。

Jonathan Proulx

Jon は MIT Computer Science and Artificial Intelligence Lab で上級技術アーキテクトとして OpenStack クラウドを運用し、研究者が必要なだけの計算能力を使えるようにしています。 OpenStack の勉強を加速しようと思い、OpenStack ドキュメントへの貢献とドキュメントのレビューを始めました。

Everett Toews

Everett は Rackspace の Developer Advocate で、OpenStack や Rackspace Cloud を使いやすくする仕事をしています。ある時は開発者、ある時は advocate、またある時は運用者です。彼は、ウェブアプリケーションを作成し、ワークショップを行い、世界中で公演を行い、教育界やビジネスでプロダクションユースとして使われる OpenStack を構築しています。

Joe Topjian

Joe は Cybera で複数のクラウドの設計と構築を行って来ました。 Cybera は、非営利でカナダのアルバータ州の起業家や研究者を支援する電子情報インフラを構築しています。また、システムアーキテクトとしてこれらのクラウドの維持・運用を活発に行なっており、その経験からクラウド環境でのトラブルシューティングの豊富な知識を持っています。

OpenStack コミュニティーメンバー

数多くの方々の努力がコミュニティのドキュメントを維持しています。私たちのコミュニティーのメンバーは、一年を通じて、このドキュメントの内容を更新しました。また、最初のスプリントの 1 年後、Jon Proulx さんが 2 回目となる 2 日間のミニスプリントを主催しました。これは、MIT で行われ、最新リリースに向けた更新を目標としました。ドキュメント作成以降、30 人以上の貢献者がこのドキュメントをサポートしてきました。レビュー、継続的ビルド、翻訳のツールチェインがあります。執筆者や開発者は継続的に、パッチをレビューし、ドキュメントバグを記入し、内容を編集し、そのバグを修正します。その方々の努力を認めたいと思います。

以下の方々がこのドキュメントに貢献しています: Akihiro Motoki, Alejandro Avella, Alexandra Settle, Andreas Jaeger, Andy McCallum, Benjamin Stassart, Chandan Kumar, Chris Ricker, David Cramer, David Wittman, Denny Zhang, Emilien Macchi, Gauvain Pocentek, Ignacio Barrio, James E. Blair, Jay Clark, Jeff White, Jeremy Stanley, K Jonathan Harker, KATO Tomoyuki, Lana Brindley, Laura Alves, Lee Li, Lukasz Jernas, Mario B. Codeniera, Matthew Kassawara, Michael Still, Monty Taylor, Nermina Miller, Nigel Williams, Phil Hopkins, Russell Bryant, Sahid Orentino Ferdjaoui, Sandy Walsh, Sascha Peilicke, Sean M. Collins, Sergey Lukjanov, Shilla Saebi, Stephen Gordon, Summer Long, Uwe Stuehler, Vaibhav Bhatkar, Veronica Musso, Ying Chun "Daisy" Guo, Zhengguang Ou, ZhiQiang Fan.

この本の作成に参加するには

この本の元は人が集まったイベントで作成されましたが、今やこの本はみなさんも貢献できる状態になっています。 OpenStack のドキュメント作成は、バグ登録、調査、修正を繰り返して行うというコーディングの基本原則に基いて行われています。我々はこの本のソースコンテンツを GitHub にも置いており、レビューシステムである OpenStack Gerrit 経由で協力をお待ちしています。この本の O'Reilly 版では、我々は O'Reilly の Atlas システムを使用していますが、ソースコンテンツは GitHub にも格納され、コントリビュータ間での共同作業ができるようになっています。

OpenStack ドキュメントに貢献する方法は OpenStack Documentation Contributor Guide にあります。

バグを見つけたが、どのように直せばよいか分からない場合や本当にドキュメントのバグか自信が持てない場合は、 Storyboard にバグを登録して下さい。どのように直せばよいか分かる場合には、そのバグの担当者を自分に割り当てることもできます。また、OpenStack doc-core チームのメンバーがドキュメントバグを分類することもできます。