備考欄に感想を書くタイプのエンジニア

それで出世が遅れ(ry

OpenStack Cloud Computing Cookbook Third Edition, Second Edition からの変更点(削除された章編)

先日品川で開催された OpenStack Summit Tokyo 2015 でラッキーなことに2ヶ月ほど前に出版されたばかりの OpenStack Cloud Computing Cookbook Third Edition (以降 TE、2015/8 出版、Juno および Kilo ベース) をゲットすることができたので、Second Edition (以降 SE、2013/6 出版、OpenStack Grizzly ベース) との違いをまずは見ていこうと思います。長いので SE で削除された章編と TE で追加された項目編に分けて書こうと思います。

※見落としや間違いがありましたら教えて頂けると助かります。

余談ですが、OpenStack のリリーススケジュールは6ヵ月毎となっており、TE が出版された2ヵ月後には Kilo の次のバージョンである Liberty がリリースされていますし、その次のバージョンである Mitaka (Meiji という名称はどうのこうのという話がありましたね) 予定通りであればまた半年以内にリリースされると思われますので、Forth Edition のころにはコアサービスだけが対象だったとしても Neutron を始めとして内容が結構変わっているかもしれません。出版されれば、の話ですが。せっかく著者が OpenStack Summit にいらしていてサインまでもらったので perspective とか聞いてみればよかったです…。

Third Edition の目次

  • Chapter 1: Keystone - OpenStack Identity Service
  • Chapter 2: Glance - OpenStack Image Service
  • Chapter 3: Neutron - OpenStack Networking
  • Chapter 4: Nova - OpenStack Compute
  • Chapter 5: Swift - OpenStack Object Storage
  • Chapter 6: Using OpenStack Object Storage
  • Chapter 7: Administering OpenStack Object Storage
  • Chapter 8: Cinder - OpenStack Block Storage
  • Chapter 9: More OpenStack
  • Chapter 10: Using the OpenStack Dashboard
  • Chapter 11: Production OpenStack

Second Edition の目次

  • Chapter 1: Keystone OpenStack Identity Service
  • Chapter 2: Starting OpenStack Image Service
  • Chapter 3: Starting OpenStack Compute
  • Chapter 4: Installing OpenStack Object Storage
  • Chapter 5: Using OpenStack Object Storage
  • Chapter 6: Administering OpenStack Object Storage
  • Chapter 7: Starting OpenStack Block Storage
  • Chapter 8: OpenStack Networking
  • Chapter 9: Using OpenStack Dashboard
  • Chapter 10: Automating OpenStack Installations
  • Chapter 11: Highly Available OpenStack
  • Chapter 12: Troubleshooting
  • Chapter 13: Monitoring

太字が今回の対象。

Second Edition との違い(TE で削除された章編)

Chapter 10: Automating OpenStack Installations (SE)

SE 10 章では OpenStack の環境を構成する方法として Chef を利用していますが、Chef を使って環境を構成するという決定の背景には以下のような議論があったようです。

Notes for this edition of the OpenStack Cookbook

There are lots and lots of choices when it comes to the bare-metal and automated provisioning of an OpenStack environment. In this edition of the book, after some discussion with Kevin and those in the community, we decided to change gears from Ubuntu's MaaS to something that would allow for a greater degree of flexibility. After considering the great work going on in the TripleO project and Bare Metal OpenStack, we decided that while great progress is being made in those projects, at this time we were going to print with PuppetLabs Razor and Chef.

これは First Edition の時に Ubuntu MaaS を利用してベアメタル プロビジョニングをする項目があったようで、そこからの "Change gears" ということのようです。その結果 SE では VagrantVirtualBox を OpenStack 環境のベースにしており、さらに TE では Ansible の Playbook を利用して Ubuntu の上の LXC Container に OpenStack 環境を構成する方法を採っています。なお、TE では OpenStack のインストールを自動化する内容が 11 章の Production OpenStack の中の一項目となり、SE のような章立てではなくなっています。

Chapter 11: Highly Available OpenStack (SE)

SE 11 章では、単一障害点を取り除いた可用性の高い OpenStack 環境を構成することをコンセプトに、バックエンドのデータベース側には MySQL Galera cluster + HA Proxy、Keystone と Glance の冗長化の目的で Pacemaker + Corosync を利用した構成を行う形となっています。TE では SE の 10 章と同じく TE の 11 章の Production OpenStack の中の項目となり、MySQL Galera cluster から MariaDB Galera cluster に変更となっていますが、構成内容そのものには大きな変更はなさそうです。

Chapter 12: Troubleshooting (SE)

SE の Chapter 12 ではトラブルシューティングの方法として OpenStack が生成するログの保存先の情報(e.g. nova-compute: /var/log/nova/nova-compute.log)の提示やサービスの確認等々の記載がありましたが、これらの内容は TE では章立てとしてそもそもなくなっており、SE で記載があった内容についても大半がなくなっているようです(ぱっと見では nova-manage, nova list, swift-recon についてはそれぞれ関連する章内に別々に記載がありました)。

ちなみに、トラブルシューティングの仕方については、OpenStack Summit Tokyo の Debugging the Virtualization layer (libvirt and QEMU) in OpenStack で興味深い話がありましたので、よかったらリンク先のスライドもどうぞ(このスライドを使った OpenStack Summit の動画は 11/9 時点でまだ公開されていないようです…)。

Chapter 13: Monitoring (SE)

何か先例を引き合いに出すまでもなく、モニタリングと環境の見える化(Visibility)はこういったシステムの運用にとって非常に重要な要素だと思いますが、SE 13 章では監視する対象に合わせて以下のような見出しになっていた一方で、TE では同様の内容として 9 章の More OpenStack 内で Ceilometer を利用した Nova ノードのリソース監視を行うものの、それ以外は記載がなくなっているようです。

  • Monitoring OpenStack services with Nagios
  • Monitoring Compute service with Munin
  • Monitoring instances using Munin and collectd
  • Monitoring the storage service using StatsD/Graphite
  • Monitoring MySQL with Hyperic

余談ですが、Operations and Management of a Hyper-Converged Multi-Tenant Platform のセッションでの Nick Gerasimatos 氏の発言によると FICO では OpenStack の監視に Zabbix を使っているとのことです。

We've been using Zabbix for very long time and what we realize is Zabbix, it's not bad tool. It requires a lot of custom immigration to meet our needs (and) our requirements...


ご参考: モニタリングに関しては Monitoring Swift with Elastic SearchMonitoring system for OpenStack, using a OSS products というセッションがありましたが、私は別のセッションに出ていたので内容はまだ未確認です。興味があればあわせてどうぞ。