バーチャルテナント構築時のCassandra接続エラー(Column family ID mismatch)

質問

🕓 事例公開日 : 2026-04-07

【背景】

バーチャルテナント環境を新規構築する際、事前にCassandraのキースペース(imart2)を作成してもらっていた。テナント環境セットアップの途中でエラーが出て作業が止まってしまった。



1. 事象

エラーメッセージ・スタックトレース:

java.lang.RuntimeException: java.io.IOException:org.apache.cassandra.config.ConfigurationException:Column family ID mismatch (found 1227; expected 1226)

症状の説明:

バーチャルテナントのセットアップ中に処理が中断され、以下の状態になった。
  • デフォルトテナントのログに「Cassandraが利用できません。[Keyspace=imart2, ColumnFamily=HIDDENBOX_TIMELINE]」というメッセージが記録されている
  • 構築途中のバーチャルテナントのテナント管理画面からCassandra接続テストを実行すると「Cassandraに接続できません」と表示される
  • 新規作成時はテスト接続が成功していたが、現在は失敗する



2. 発生条件

  • バーチャルテナント構築作業中
  • Cassandraキースペース(imart2)を事前に作成済み
  • テナント環境セットアップの実行中にエラーが発生

回答

1. 原因

技術的な原因:

Cassandra内部でColumn Familyの作成処理が不完全な状態で終了したため、スキーマ情報と実データの間に不整合が発生しました。この不整合により、Cassandraへの接続が失敗する状態になっていました。

技術的要因の分析:

  • Column Family作成処理の異常終了 → タイムアウトや例外により処理が中断
  • スキーマ情報と実データの不一致 → Column Family IDの期待値(1226)と実際の値(1227)が異なる状態が発生
  • 内部メタデータの不整合 → Cassandraが正常な接続処理を実行できない状態に
  • テナント環境セットアップの中断 → 必要なテーブル作成が完了せず、バーチャルテナント構築が未完了の状態で停止

根本的な要因:

Column Family作成処理中に何らかの要因(タイムアウト・例外等)で処理が不完全に終了し、Cassandra内部のメタデータに不整合が生じたことが根本原因です。

2. 対応方法

根本解決方法:

バーチャルテナント構築作業開始前のバックアップからリストアし、その後バーチャルテナント構築を再実施することが最も確実な方法です。

暫定対処方法(バックアップが利用できない場合):

  1. APサーバとストレージサーバを再起動する
  2. Cassandraのテスト接続を実施し、両方のキースペース(imart、imart2)の接続状況を確認する
  3. 両キースペースへの接続が成功した場合、構築途中のバーチャルテナントのテナント環境セットアップを再実行する
テスト接続が失敗する場合
接続テストの結果と実施した正確な時刻をお知らせください。追加の調査を実施いたします。
今後の推奨事項
バーチャルテナント構築やテナント環境セットアップ等、環境への変更を伴う作業を実施される際は、事前にオフラインバックアップを取得された上で作業を開始されることを推奨いたします。予期せぬ中断が発生した際も、バックアップがあることで迅速かつ確実な復旧が可能となります。

3. 原因究明に至るまでの調査方法

  1. デフォルトテナント側のexceptionログを確認し、「Cassandraが利用できません」というエラーメッセージを特定
  2. 構築途中のバーチャルテナントのテナント管理画面からCassandra接続テストを実行し、接続失敗を確認
  3. エラーログの詳細を解析し、「Column family ID mismatch (found 1227; expected 1226)」というエラーを特定
  4. エラー内容から、Column Family作成処理の不完全終了によるスキーマ情報と実データの不整合が原因であると判断
  5. 対応方針として、サーバ再起動による内部状態のリセットと、接続テストによる状態確認を提案
  6. お客様側でサーバ再起動と接続テストを実施いただき、両キースペースへの接続成功を確認
  7. テナント環境セットアップを再実行いただき、正常に完了したことを確認
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
Powered by Zendesk