SlideShare a Scribd company logo
Cassandra99台を移設してバー
ジョンアップした話
あの鬼の哭くシステムは
その後どうなったのか?
こいつを改善した話をします
今日話すこと
• Cassandraとの戦歴
• クラスタ分けた話
• そして移設へ・・・
システム構成(2012~2014年頃)
• Node数:99台
• サーバスペック
機器:物理サーバ(DELL)
CPU: 16コア、24コアが混在
メモリ:64GB
HDD:以下構成が混在
600GBx4(RAID-10)
600GBx2(RAID-1)+SSD 512GBx2(RAID-0)
600GBx2(RAID-1)+HDD(SATA) 1TBx2(RAID-1)
• クラスタ数:1
• Cassandraバージョン:1.1.5-2
• 1nodeあたりのデータサイズ:約200~300GB
この頃よく起こっていたこと
• SSDがぶっ壊れまくっていた
• Node再構築でRepair→Compaction祭りループ
• Heap使いきってプロセスハングが頻発
詳しくはWebで。。。
対処したこと
• SSD撲滅→HDD(1TB)に交換
→この頃は容量問題があったのでSATA 1TBに交換。
→ディスクIOが遅すぎてプロセス再起動に20~30分かか
る事案発生。
→容量問題解決してから、順次SASに入れ替える作業して
いくことになる。
・Heapサイズを12GBに変更
→推奨値は8GBだが足らないので増やした。
→とりあえずHeapは安定した。
クラスタ分割
• とにかく一番容量でかいcolumn familyをなん
とかしたい。
→このCFのデータ保持期間は約1カ月
→このCFのデータを第1クラスタと第2クラスタで2重書き込み
すれば安全にクラスタ分割できそう
第2クラスタ誕生へ
第1クラスタ 第2クラスタ
第1クラスタ用
リソースAPI
第2クラスタ用
リソースAPI
API郡
・第1クラスタ、第2クラスタ両方
にデータを書き込むようにする。
・第2クラスタでの運用に問題な
いこと確認できた時点で、第1ク
ラスタのCFをTrancate。
クラスタ分割した結果。。。
• 1Nodeあたりのデータサイズが約300GB以
上あったのが、100GBくらいまで削減!!
システム構成(2014~2015年頃)
• Node数:
第1クラスタ:99台
第2クラスタ:30台(→15台に削減)
• サーバスペック
機器:物理サーバ(DELL)
CPU: 16コア、24コアが混在
メモリ:64GB
HDD:600GBx4(RAID-10)
• クラスタ数:2
• Cassandraバージョン:
第1クラスタ:1.1.5-2
第2クラスタ:1.2.13
• 1nodeあたりのデータサイズ
第1クラスタ:約150GB
第2クラスタ:約2GB
そして移設へ
• 移設先は物理or仮想?
• データ転送にどれくらい時間かかる?
• バージョンアップする?
物理にするか仮想にするか
• 第1クラスタは物理サーバで決定
• 第2クラスタは仮想でも十分いけそうだったの
で仮想サーバで決定
データ転送の時間
• 1nodeあたり約150GBくらいデータがあって、
99台同時に転送しなければならない。。。
• スナップショットの差分を転送することで時間
短縮できそう
移設元DC 移設先DC
Cassandraデータ
スナップショット保管
nodetool snapshotで差分ス
ナップショットを定期取得
旧Cassandraサーバx99台 新Cassandraサーバx99台
スナップショット保管rsyncで
定期コピー
約5分で99台のデータ転送を実現!
バージョンアップするか?
• 1.1.5の運用はもうしたくない。。
• Cassandra止めるチャンスはもう2度とないかもし
れない。。
→バージョンアップやろう!
• バージョンは何にする?
→第2クラスタで1.2系の運用実績がある
→ 1.1系からは1.2系踏まないと2系にはできない
→ 1.2系の最新(1.2.19)でいこう
(DataStaxさんにもこのバージョンの安定性は確認)
upgradesstables
• Cassandraバージョンアップ後は
upgradesstablesを実行してデータ構造を1.2用
に変換しないといけない
• upgradesstablesをしないとrepairやJoinなどが
できない(データの読み書きは可能)
• 150GBのデータで約8時間かかる。。。
→メンテ時間内で終わらない。。。
upgradesstablesどうしよう
• メンテあけてからやるしかない
• オンラインで実行しても問題ないことを
DataStaxさんに確認
• 負荷かけながら実行しても問題ない(サーバ
負荷や読み書き)ことを検証して確認
• あとupgradesstablesしたデータは1.1の環境で
は読み込めない(プロセス起動できない)
→これ実行後は旧環境にデータ戻せない!
負荷試験
• 旧環境のRead/Writeリクエスト:約9000/sec
• Cassandra-stressを使って負荷生成
→Read/Writeリクエスト:20000/sec
• OSリソースに問題ないことを確認
• Cassandraステータスで問題ないことを確認
第1クラスタ移設手順
• 旧環境でスナップショット取得
• スナップショットを新環境に転送
• md5sumで新旧データ比較
• 新環境にてCassandra1.1で起動
• Cassandra停止して1.2にバージョンアップ
• Cassandra1.2で起動
• OpsCenterでクラスタに問題ないこと確認
↑ここまでの作業時間は約90分
• メンテあけてからupgradesstablesを実行
第1クラスタ移設で工夫したこと
• 手作業を撤廃→スクリプト化した
• スクリプトを全Node同時に実行するために
Fabricを使用
• Fabric実行はJenkinsでJob化
• 各NodeのCassandraバージョンアップと設定
ファイル配布はChef-zeroで実施
第2クラスタの移設
旧Cassandra
クラスタ
新Cassandra
クラスタ
旧クラスタ用
リソースAPI
新クラスタ用
リソースAPI
API郡
移設元DC 移設先DC ・旧クラスタ、新クラスタ両方に
データを書き込むようにする。
・新クラスタでの運用に問題ない
こと確認できた時点で、旧クラス
タを撤去
システム構成(2016年)
• Node数:
第1クラスタ:99台(物理)
第2クラスタ:6台(仮想)
• サーバスペック
CPU: 24コア
メモリ:64GB
HDD:600GBx6(RAID-10)
• クラスタ数:2
• Cassandraバージョン: 1.2.19
1nodeあたりのデータサイズ
第1クラスタ:約150GB
第2クラスタ:約5GB
バージョンアップして一番よかったこと
• repair時のデータ肥大化がなくなった
→1.1のときはrepair後はデータ肥大化するの
でメジャーCompaction必須だったが、この
運用がなくなった。
今後やりたいこと
• Node数減らしたい。。。
• 不要データ削減したい。。。

More Related Content

PPTX
これがCassandra
PDF
Yahoo! JAPANにおけるApache Cassandraへの取り組み
PPT
インフラエンジニアのためのcassandra入門
PDF
Cassandraとh baseの比較して入門するno sql
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PPT
Cassandraのしくみ データの読み書き編
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
PDF
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
これがCassandra
Yahoo! JAPANにおけるApache Cassandraへの取り組み
インフラエンジニアのためのcassandra入門
Cassandraとh baseの比較して入門するno sql
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Cassandraのしくみ データの読み書き編
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮

What's hot (20)

PDF
HashiCorp Vault 紹介
PDF
次世代データ基盤としてのSnowflakeの可能性 SnowDay 20211208
PDF
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
PPTX
FD.io VPP事始め
PDF
TCAMのしくみ
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
PDF
Kubernetesのワーカーノードを自動修復するために必要だったこと
PDF
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
PDF
2023年はTiDBの時代!
PDF
RHEL7/CentOS7 NetworkManager徹底入門
PDF
Datadog による Container の監視について
PDF
Enhancing Network and Runtime Security with Cilium and Tetragon by Raymond De...
PDF
Pacemakerを使いこなそう
PDF
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
PDF
NEDIA_SNIA_CXL_講演資料.pdf
PDF
インターネットの仕組みとISPの構造
PPTX
Amazon EKS によるスマホゲームのバックエンド運用事例
PDF
[GKE & Spanner 勉強会] GKE 入門
PDF
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
PPTX
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
HashiCorp Vault 紹介
次世代データ基盤としてのSnowflakeの可能性 SnowDay 20211208
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
FD.io VPP事始め
TCAMのしくみ
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Kubernetesのワーカーノードを自動修復するために必要だったこと
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
2023年はTiDBの時代!
RHEL7/CentOS7 NetworkManager徹底入門
Datadog による Container の監視について
Enhancing Network and Runtime Security with Cilium and Tetragon by Raymond De...
Pacemakerを使いこなそう
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
NEDIA_SNIA_CXL_講演資料.pdf
インターネットの仕組みとISPの構造
Amazon EKS によるスマホゲームのバックエンド運用事例
[GKE & Spanner 勉強会] GKE 入門
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
Ad

Viewers also liked (14)

PDF
Apache Cassandra and Go
PPTX
Time-Series Apache HBase
PDF
qpstudy 2013.07 NoSQL
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
PDF
On the benchmark of Chainer
PDF
深層学習ライブラリの環境問題Chainer Meetup2016 07-02
PDF
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
PDF
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
PDF
マシンパーセプション研究におけるChainer活用事例
PDF
Chainer Update v1.8.0 -> v1.10.0+
PDF
Chainer, Cupy入門
PPTX
Cassandra DataTables Using RESTful API
PDF
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
PPTX
Chainerを使って細胞を数えてみた
Apache Cassandra and Go
Time-Series Apache HBase
qpstudy 2013.07 NoSQL
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
On the benchmark of Chainer
深層学習ライブラリの環境問題Chainer Meetup2016 07-02
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
マシンパーセプション研究におけるChainer活用事例
Chainer Update v1.8.0 -> v1.10.0+
Chainer, Cupy入門
Cassandra DataTables Using RESTful API
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
Chainerを使って細胞を数えてみた
Ad

Cassandraバージョンアップ&移設