颁补蝉蝉补苍诲谤补のバックアップと运用を考える
- 2. 自己紹介
冨田 和孝 (@railute)
肩書き: 株式会社INTHEFOREST 代表取締役社長
Cassandra商用サポート、Cassandraコンサルティング他
Cassandra勉強会主宰
2か月に一度程度開催。現在、第24回まで開催。
職種:本職はDB?インフラ系エンジニア
以前、某レストランサーチのDBA
高負荷?大容量?大規模のOracleRACとPostgreSQLと
MySQLに苦しめられ続けた経験あり。
NLPおよびテキストマイニング始め?た。
(実はもともと言語学(日本語)専攻。)
- 3. Cassandraサポートサービス
サービス プラチナ ゴールド スタンダード
サポート※1 無制限 月間80時間迄 月間40時間迄
サポート時間 24 x 365 平日9時-5時 平日9時-5時
Apache Cassandraへの不
○ ○ ○
具合報告
重大インシデント対応
○ × ×
の緊急パッチ提供
障害切分け ○ × ×
環境構築支援 ○ ○ ×
運用支援 ○ ○ ×
※1メール中心のサポートとなります。対応時間には問い合わせ対応、構築?運用支援に関する情報
提供などが含まれます。
- 4. Cassandra トレーニング
Cassandra 概要
対象者 Cassandraをこれから使用する方
期間 1日間(9:00-17:30)
バージョン 1.1,1.0(0.8等も可)
?Cassandraの歴史
?Cassandraのアーキテクチャ
内容 ?Cassandraのインストールと起動停止方法
?Cassandraの利用(設定ファイル、ログの種類)
?Cassandra CLI
- 5. Agenda
? Cassandraの前提
? 监视をするということ
? バックアップをするということ
- 7. Cassandraの前提
SSTableは Write Once
通常時 不整合時
データの更新は
Memtableへ
Memtable Memtable
※SSTableは常に作
BloomFilter BloomFilter 不整合発生
成時以外の更新処 更新
理は行われない。
SSTable
SSTable
SSTable
SSTable
SSTable
SSTable
再構築
Memtable JVMのGC Memtable
BloomFilter BloomFilter
不要SSTable削除
SSTable
SSTable
SSTable
SSTable
SSTable
SSTable
SSTableMerg
e
Compaction時 SSTable削除時
- 12. 监视をするということ
メモリ使用量
Cassandraはメモリ喰い
?GCが適切に行われているか
?Compactionが適切に行われているか
?Flushが適切に行われているか
上記すべての要因が正常に行われていない
とメモリとディスクを圧迫する
- 14. 监视をするということ
Write Heavy はCPUバンド
Writeの処理はbloomfilterの演算?Flush?
Compactionなどが入るためCPUを使いまくります。
書
FlushWriter
Commitlog
MemTable
込
み
命
令
Compaction
bloomfilter
Manager
SSTable
- 15. 监视をするということ
Read heavy はIO?メモリバンド
読
込 MemTable
み Cache
命
令
bloomfilter
SSTable
- 16. 监视をするということ
Jconsole
? JMXの情報取得の基本
? JDKに付属している
? 目視監視であれば使いやすい
- 18. 监视をするということ
OPSCenter
DataStax社謹製
Cassandraのみを扱う限りはとて
も使いやすい
- 19. 监视をするということ
Zabbix
2.0系からJMXをネイティブサポート
Cassandra以外も一括管理ができるた
め運用方法としてはよいかも。
※Nagios+RRDtoolもまだまだ使えると
思います。(好きなようにgraphを作
れるという意味ではRRDToolは捨てが
たい。)
- 22. バックアップをするということ
データの整合性に関する考え方
データはこのノードに保存される
ハッシュ化:場所確
定
データ
{KEY:VALUE}
Timestamp:世代確
定
逆説的にデータはこの各ノー
ドのデータがどれか一つあれ
ば取得できる。
- 27. バックアップをするということ
オペレーションリカバリ
1. 指定のキーで指定のバージョンが格納
されているバックアップSSTableを取得
2. 他のクラスターにリカバリ
3. 希望データを取得
指定のキーが入っ 期待のバージョン
ているノードを特 が入っている
定 SSTableのバック リストア
Memtable
BloomFilter アップを取得
SSTable
SSTable
SSTable
SSTable
- 28. バックアップをするということ
サーバー移行
1. 最新バックアップSSTableを取得
2. 他のHWにリカバリ
3. IPを差し替え
4. repair
サーバー移行
最新SSTableのバッ
対象ノード
Memtable
クアップを取得 リストア
BloomFilter
SSTable
SSTable
SSTable
SSTable
- 29. バックアップをするということ
監査
1. バックアップSSTableを取得
2. S3あたりに流し込みましょう
最新SSTableのバッ
Memtable
クアップを取得
BloomFilter
S3
SSTable
SSTable
SSTable
SSTable
- 30. まとめ
バックアップ
? データのある場所を抑える
? ノード間でバックアップタイミングをずらしデータの確保を行う
? 必要なところだけ取得することも可能