Wednesday, July 24, 2013

書評: Software Defined Storage with OpenStack Swift


"Software Defined Storage with OpenStack Swift", Joe Arnold

昨今は、なんでもかんでも Software Defined ほげほげな世の中になってしまった。
本書でいう Software Defined な Storage は、Amazon でいうところの S3 に相当する Object Storage のことである。

著者の Joe Arnold 氏は、元CloudScaling所属で、現在は SwiftStack という自分の会社をやっている人である。SwiftStackには、Swift の PTL の John Dickinson も合流し、今、オブジェクトストレージ系では一押しのベンチャーではないかと思う。

この本は、要するに OpenStack Swift を使ってオブジェクトストレージの基盤を構築・運用するにあたり、SwiftStack のコントローラを使うと、うまくSoftware Define Storage のCプレーンの制御を実現できますよ…というストーリーで構成されている。

したがって、(残念ながら)オープンソース版のSwiftを使ってシステムを作って運用するのにあたって、この本の手順の通りに Swift を運用すればよいというわけでは「ない」。 しかし、それでも著者の豊富なSwift案件対応経験に基づいた、非常に示唆に富んだ本である。

本書の構成は以下の通りである。

1. 背景とSwiftの概要
2. Swiftの動産
3. Swiftの使い方
4. Swiftのインストール
5. SwiftStack コントローラによる Software Definrd Storage
6. SwiftStack クラスタの設定
7. SwiftStack クラスタの運用
8. SwiftStackと他コンポーネントのインテグレーション
9. テストとベンチマーク
10. チューニング

タイトルの Software Defined Storage ひ関連するくだりは、5章まで出てこない。しかも SDN について一般的に言われるのと同様に、制御面を分離して、集中制御しましょうと言っているだけである。ここで注意が必要なのは、オープンソースの Swift は制御される側であって、制御面にいるのは SwiftStack 社のコントローラだということだ。

Swift はシンプルで割り切った設計で、動きも理解しやすい。しかし、お客さんのデータを預かって、しかもそれなりな規模で運用するのに必要なノウハウを持つことと、ただ動かすのとは別次元の問題である。これを解決するのが SwiftStack のコントローラ…というわけだ。

Swift について、ring ファイル作成時の留意事項のレベルで理解している読者、具体的には例えば part_power と全体キャパシティの関係を理解している読者は、6章以降から読めば、システムの設計・構築・運用にあたって、充分に有意義な知見、またはヒントを得ることができるだろう。例えば、ストレージノード(account/container/object)のHDD故障の時とノード故障の時の挙動の違いや、留意事項、対処について解説した文献がこれまであっただろうか?その他、運用時に見るべき指標など、なぜこの本に書かれていることがベストプラクティスなのか、考えながら読むと、とても高いレベルまで達することができるように思う。
自分としても、この本を読んではじめて気が付いたことはたくさんあるので、具体的にまとめて公開したいところなのだが、それをやってしまうと「おっと誰か来...」てしまうので、このくらいにしておく。

Swift について学ぶところからはじめる読者は、英文は平易な上に分量もそんなに多くないので、普通に先頭から通読するのを薦めたい。

だいぶ不完全燃焼感があるのだが、このくらいで。

No comments:

Post a Comment