硬盘故障后Cassandra节点无法启动

标签 cassandra recovery datastax

我有一个 5 节点的 Cassandra 2.0.7 集群,每个节点有 4 个硬盘。最近,节点 3 上的这些 HDD 中的一个出现故障,并被一个新的 Shiny 的空驱动器取代。此节点上的替换 cassandra 无法启动后出现此异常:

 INFO [main] 2014-06-02 12:45:17,232 ColumnFamilyStore.java (line 254) Initializing system.paxos
 INFO [main] 2014-06-02 12:45:17,236 ColumnFamilyStore.java (line 254) Initializing system.schema_columns
 INFO [SSTableBatchOpen:1] 2014-06-02 12:45:17,237 SSTableReader.java (line 223) Opening /mnt/disk2/cassandra/system/schema_columns/system-schema_columns-jb-310 (25418 bytes)
 INFO [main] 2014-06-02 12:45:17,241 ColumnFamilyStore.java (line 254) Initializing system.IndexInfo
 INFO [main] 2014-06-02 12:45:17,245 ColumnFamilyStore.java (line 254) Initializing system.peers
 INFO [SSTableBatchOpen:1] 2014-06-02 12:45:17,246 SSTableReader.java (line 223) Opening /mnt/disk3/cassandra/system/peers/system-peers-jb-25 (20411 bytes)
 INFO [main] 2014-06-02 12:45:17,253 ColumnFamilyStore.java (line 254) Initializing system.local
 INFO [SSTableBatchOpen:1] 2014-06-02 12:45:17,254 SSTableReader.java (line 223) Opening /mnt/disk3/cassandra/system/local/system-local-jb-35 (80 bytes)
 INFO [SSTableBatchOpen:2] 2014-06-02 12:45:17,254 SSTableReader.java (line 223) Opening /mnt/disk3/cassandra/system/local/system-local-jb-34 (80 bytes)
 ERROR [main] 2014-06-02 12:45:17,361 CassandraDaemon.java (line 237) Fatal exception during initialization
  org.apache.cassandra.exceptions.ConfigurationException: Found system keyspace files, but they couldn't be loaded!
    at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:532)
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:233)
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:462)
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:552)

由于cassandra节点无法启动,无法使用nodetool repair .

我认为恢复节点的唯一方法是删除所有数据并从几乎裸机中引导它。在典型的 HDD 故障情况下,是否有更短的恢复方法?

最佳答案

通过以下步骤修复了问题:

  • system 相关的物理删除文件键空间:cassandra 能够启动并重新创建它,但没有关于其他键空间的任何元数据。
  • nodetool resetlocalschema ,从其他节点同步 key 空间模式。
  • 关于硬盘故障后Cassandra节点无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23990793/

    相关文章:

    cassandra - 如何监控 Cassandra 复制滞后?

    database - 您会使用Cassandra进行汇总查询吗?

    cassandra - 在 Cassandra 中添加节点通常意味着什么?

    cassandra - 我如何知道该记录是重复的还是已成功插入?

    java - Mac 崩溃后我可以恢复 Eclipse 文件吗? (自动保存已开启!)

    java - Cassandra java驱动程序连接错误

    hash - Bloomfilter 和 Cassandra = 为什么使用以及为什么散列多次?

    java - Cassandra删除操作有时无法正常工作,删除后无法选择数据

    database - 非归档 ORACLE DB 的表空间 PIT 恢复

    activemq - 如何从消息存储耗尽中恢复?