>100 Views
September 01, 14
スライド概要
20140704 cassandra introduction
@ Xtone, Ltd. Pizza-kai
秋葉原生まれ大手町育ちの歌って踊れる江戸っ子インフラエンジニア。 0と1が紡ぐ「ゆるやかなつながり」に魅せられ早20年、 SNSとCGMの力で世界を幸福にするのがライフワーク。 市民、幸福は義務です。 あなたは幸福ですか?
Cassandra初歩の初歩 2014-‐07-‐04 Xtone ピザ会
Apache Cassandra • Google BigTableをDHT上に実装した分散デー タストア • 多次元KVSのように見える – KeySpace (データベースに相当) – ColumnFamily (テーブルに相当) – Row (行に相当; 分散先ノードを決定) – Column – (Timestamp)
特性 • Row Keyによって分散 – 一つのRowにたくさん詰めると分散できない – Kmestampで最新データを維持 • 冗長性の度合いを選択可能 – ONE: 1台に書けたら/読めたらOK – QUORUM: レプリカ数の過半数でOK – ALL: レプリカ数の全てでようやくOK
冗長性・規模性 • 指定したレプリカ数分だけのノードに複製 • 一時的な故障は肩代わり(結果整合性) • Rowが増える分には無限にスケール可能 ※ 後述 • データセンターやラックに基づいて分散可能
リング • (面倒なのでホワイトボードで説明)
運用 • 壊れたら抜けば良い – QUORUMでレプリカ数3ならば、1台壊れた時点で 再同期(repair)すればサービスは無停止 • 連続して2台壊れるとまずい – QUORUMでレプリカ3台の2台が死ぬと多数決が 取れない。
定期repair • データ削除 – フラグ立てるだけ – フラグが時間で消える(10日) – 毎週ペースでデータ同期が必要
Virtual Nodes • 1台でN(256)台分の仮想ノード – 特定のノードへの偏りを防ぐ – Nを増減させることで処理の重み付けが可能 • 「連続した2台のノードの故障=死」 – 任意の2台が連続ノードである可能性が高い – 故障率そのものは上昇
snapshot • ディスク上のsstablesを複製しただけ – 利用量分そのまま食う – ディスク利用率に注意 • snapshot全部持って行って食わせてrepair
支援ツール • Jenkinsで支援ツールをタスク化 – 定期repair – 定期snapshot – ノード障害時のremovenode
監視 • OpsCenter – DataStax社の管理ツール • JMX – ZabbixやMuninとかで直接監視可能 – JolokiaでJSONで出して各種ツール • 接続監視 – Protocolの種類がある(ポートも違う!) – Thri^捨てて今後はNaKve transport – h_ps://github.com/nekoruri/cql-‐check
まとめ • こわくないよ(たぶん)