okuyamaを運用するために知っておきたい基本的な操作
1. はじめに
前回の連載の「okuyamaを導入するまでに知っておきたいサーバリソースとの4つの関係」はいかがだったでしょうか。導入前の情報収集のお役に立てていれば幸いです。
2. 今回の内容
連載第2回となる今回の内容は、タイトルにもありますように導入後(一部導入前も含みます)の運用で肝となる、以下の3項目を重点的にご説明します。
- パーティションの設定
- 各ノードの障害検知と復旧方法
- バックアップの取得方法と復旧方法
それでは、順番に解説させていただきます。
パーティションの設定
前回の連載でも軽く触れたのですが、okuyamaにはパーティション機能があります。この機能はHDDのパーティションと非常に似ており、1つのokuyamaクラスターを論理的に分割し、領域を独立させる機能です。マルチテナント機能と呼ばれることもあります。この機能を使う利点は、1つのokuyamaクラスターを共有しながら、独立した空間を利用できることです。ここで言う独立とは、同一Keyの登録や、他のパーティションへのデータ更新の影響を指しています。
それではこの機能の利用方法をご説明します。まず、パーティションの設定はMasterNodeのみに行います。つまりDataNode側にはパーティションを意識した設定は行いません。それではMasterNodeの設定ファイルであるMasterNode.propertiesを見てみましょう。
図1:MasterNode.properties |
上記のIsolationModeとIsolationPrefixの設定がパーティションを定義する設定です。
IsolationModeはパーティションの設定のON/OFFを行います。trueにすることでONになり、falseにすることでOFFとなります。IsolationPrefixはパーティション名です。パーティション単位でユニークな名前を定義します。また半角英数5文字で定義する必要があります。この設定を行ってMasterNodeを起動し、そのMasterNodeにClientから接続を行うとパーティションを利用できます。そして、このIsolationPrefixで定義した"PART1"文字列を別のMasterNode.propertiesに定義して起動すると、そのMasterNodeも"PART1"パーティションを利用可能になります。現在のokuyamaでは1つのMasterNoodeで複数のパーティションを使い分けることができませんので、1パーティションに最低1つのMasterNodeが必要になります。
最後に、運用におけるパーティションの考え方ですが、筆者が今までokuyamaを使って構築してきたアプリケーションではほぼ全てでパーティションを利用しています。その理由は、新しいパーティション定義を書いたMasterNodeを起動するだけでパーティションの追加が済むこと、それからパーティションを利用した場合と利用しない場合でレスポンスにほとんど影響がないことから、後からokuyamaのクラスターを共有することになった場合に、Keyの衝突などの問題を考えなくて良いことが挙げられます。