日本OpenStackユーザー会・会長の中島さんと一緒に執筆させていただきました。
Amazonで予約開始していますが、先行して、「まえがき」と「目次」を掲載しておきます。
「半年ごとに改訂するの?」という皮肉にもくじけず(笑)、特定バージョンに依存しない、OpenStackを支えるテクノロジーの「本質」を伝えることにフォーカスして執筆しました。LinuxやKVMの基礎知識は必要となりますが、OpenStackに本格的に取り組むための「第一歩」となり、「その後も長く役立つ底力」を身につけるための書籍です。
まえがき
まずは、本書を手にとっていただきありがとうございます。本書は、OpenStackを利用したクラウド基盤の構築に興味がある方々に向けた書籍です。OpenStackは、今もなお日進月歩の開発が続いている、最先端のソフトウェアの1つです。その一方で、まとまった情報を日本語で入手することが難しく、入門のハードルがとても高い状態が続いていました。そこで、OpenStack を利用してクラウド基盤を構築しようと考えている方、あるいは、この分野に対する技術的な興味がある方に対して、少しでも入門のハードルを下げることができればと願い、本書の執筆に至りました。
本書では、解説の対象とするバージョンとして、7番目のリリースである Grizzlyを採用しています。本書執筆時点では、すでに8番目のリリースである Havanaが公開されており、出版時には、9番目のIcehouseも公開されていることと思います。そのような状況において、あえて、少し古いGrizzlyを採用したのには理由があります。仮想サーバー、仮想ネットワーク、仮想ストレージといった IaaS基盤に必要な機能が備わり、コンポーネントの役割分担が整理された最初のバージョンが Grizzlyだからです。今後のバージョンアップにおいて、さまざまな機能が追加されて、内部構造もより洗練されていくと予想されますが、基本的な設計概念は、Girzzlyから大きく逸脱することはないだろうと考えています。
現在のOpenStackは、IaaS基盤機能のみならず、PaaS基盤の機能も実装され始め、プロジェクト全体が更なる飛躍を見せようとしています。本書の執筆においては、その中でも、「変わらない基本的な部分をしっかりと解説する」ということをコンセプトとしました。OpenStackの原理や構造、根底にある考え方を学ぶことを重視し、細かな設定オプションなどの情報は、あえて少なくしています。バージョンやディストリビューションに依存する、コンフィグレーションに関連した内容よりも、OpenStackによるクラウド基盤を設計・構築する上での基礎となる、内部構造に重点をおいて解説しています。話を具体的にするために、RDOを利用した環境を前提として、プロセスの役割や構造を解説していますが、ここで得た知識は、他のプラットフォームやディストリビューションにおいても活かしていただけるはずです。
クラウドという分野は発展途上であり、めまぐるしい変化を続けています。その中でも、OpenStackは、まちがいなくその中核要素の1つと言えます。
エンジニアの方々には、OpenStackの活用を通じて、自身のスキルの向上、そして、これまでにない新しいシステムを実現する感動を実感していただけるものと信じています。本書が、クラウドに係わる方々のお手元で、少しでも業務の助けとなることができれば幸いです。
2014年 執筆者を代表して 中島倫明
目次
第1章 OpenStackのこれまで
1.1 クラウド基盤が求められる背景
1.1.1 クラウドサービスの広がり
1.1.2 IaaSがもたらす変化
1.1.3 IaaSを実現するソフトウェア
1.1.4 パブリッククラウドとプライベートクラウドの比較
1.2 OpenStackのあゆみ
1.2.1 OpenStackの誕生
1.2.2 OpenStackの進化
1.2.3 OpenStackの現在
1.3 OpenStackを支えるコミュニティ
1.4 コミュニティへのコントリビューション(貢献)
第2章 OpenStackクイックツアー
2.1 RDOとPackstack
2.1.1 RDOの概要
2.1.2 Packstackの利用方法
2.2 OpenStackの機能概要
2.2.1 仮想ネットワーク
2.2.2 仮想マシンインスタンス
2.2.3 ブロックボリューム
2.2.4 プロジェクトの管理機能
2.3 オールインワン構成でのインストール
2.3.1 サーバー構成とインストールの流れ
2.3.2 Fedora18のインストール
2.3.3 RDOのインストールと初期設定
2.4 ダッシュボードによる操作例
2.4.1 事前準備
2.4.2 仮想マシンインスタンスの起動
2.4.3 ブロックボリュームの利用
2.4.4 その他の機能
第3章 OpenStackのアーキテクチャー
3.1 OpenStackの構成要素とその機能
3.1.1 開発プロジェクトの状態とその変化
3.1.2 コンポーネントの機能と役割
3.2 コンポーネントを構成するプロセス群
3.2.1 Novaを構成するプロセス
3.2.2 Glanceを構成するプロセス
3.2.3 Keystoneを構成するプロセス
3.2.4 Horizonを構成するプロセス
3.2.5 Cinderを構成するプロセス
3.2.6 Neutronを構成するプロセス
3.2.7 Swiftの内部構造
第4章 マルチノード環境の構築と高度な利用方法
4.1 マルチノード環境の構成例
4.1.1 OpenStackを構成するサーバー群
4.1.2 スケーラビリティを考慮したサーバー配置
4.2 仮想マシンによる環境構築
4.2.1 ホストLinuxの導入
4.2.2 コントローラーノードの導入と初期設定
4.2.3 コンピュートノードの追加
4.3 コマンドラインツールの活用
4.3.1 Keystoneの操作
4.3.2 Glanceの操作
4.3.3 Neutronの操作
4.3.4 Novaの操作
4.3.5 Cinderの操作
4.4 APIライブラリの活用
4.4.1 APIライブラリの利用方法
4.4.2 Glanceクライアントの利用方法
4.4.3 Cinderクライアントの利用方法
4.4.4 Novaクライアントの利用方法
第5章 仮想ネットワークの詳細と今後の発展
5.1 Neutronの仮想ネットワーク機能
5.1.1 論理ネットワークモデルとプラグイン構造
5.1.2 Open vSwitchプラグインの概要
5.1.3 コマンドラインツールによる操作
5.2 クラウド・オーケストレーション
5.2.1 カスタマイズ・スクリプトによる自動構築
5.2.2 Heat によるクラウド・オーケストレーション
5.3 Tuskerによるクラウドの自動構築