恢复发生故障的存储卷并重建 Cassandra 数据库

您必须运行一个脚本来重新格式化和重新挂载故障存储卷上的存储,并在系统确定有必要时在存储节点上重建 Cassandra 数据库。

开始之前

过程

  1. 根据需要,更换与先前已确定并卸载的故障存储卷关联的故障物理或虚拟存储。
    更换存储后,请确保重新扫描或重新启动以确保操作系统能够识别该存储,但不要重新挂载卷。存储将重新挂载 并在稍后的步骤中添加到 /etc/fstab 中。
  2. 从服务笔记本电脑登录到故障存储节点:
    1. 输入以下命令: SSH admin@grid_node_IP
    2. 输入 Passwords.txt 文件中列出的密码。
    3. 输入以下命令切换到 root : su -
    4. 输入 Passwords.txt 文件中列出的密码。
    以 root 用户身份登录时,提示符将从 $ 更 改为 #
  3. 使用文本编辑 /etc/fstab 器( vi 或 vim )从文件中删除故障卷,然后保存该文件。
    注:/etc/fstab 文件中注释掉故障卷不足。必须从中删除卷 fstab ,因为恢复过程会验证 fstab 文件中的所有行是否与挂载的文件系统匹配。
  4. 重新格式化任何发生故障的存储卷,并根据需要重建 Cassandra 数据库。输入: reformat_storage_block_devices.rb
    • 如果存储服务正在运行,系统将提示您停止这些服务。输入 : y
    • 如果需要,系统将提示您重建 Cassandra 数据库。
      • 查看警告。如果其中任何一项都不适用,请重建 Cassandra 数据库。输入 : y
      • 如果多个存储节点脱机或在过去 15 天内重建了另一个存储节点。输入: n

        该脚本将退出而不重建 Cassandra 。请联系技术支持。

    • 对于 rangedb 存储节点上的每个驱动器,在系统要求 Reformat the rangedb drive <name> (device <major number>:<minor number>)? [Y/n]?您输入以下响应之一:
      • y 重新格式化出现错误的驱动器。这将重新格式化存储卷,并将重新格式化的存储卷添加到 /etc/fstab 文件中。
      • n ,如果驱动器未包含任何错误,并且您不想重新格式化它。
      注: 选择 n 可退出此脚本。挂载驱动器(如果您认为应保留驱动器上的数据且错误地卸载了驱动器)或删除驱动器。然后 reformat_storage_block_devices.rb ,再次运行命令。

    在以下示例输出中 /dev/sdf ,必须重新格式化驱动器,而不需要重建 Cassandra :

    root@DC1-S1:~ # reformat_storage_block_devices.rb
    Storage services must be stopped before running this script.
    Stop storage services [y/N]? y
    Shutting down storage services.
    Storage services stopped.
    Formatting devices that are not in use...
    Skipping in use device /dev/sdc
    Skipping in use device /dev/sdd
    Skipping in use device /dev/sde
    Reformat the rangedb drive /dev/sdf (device 8:64)? [Y/n]? y
    Successfully formatted /dev/sdf with UUID c817f87f-f989-4a21-8f03-b6f42180063f
    Skipping in use device /dev/sdg
    All devices processed
    Running: /usr/local/ldr/setup_rangedb.sh 12075630
    Cassandra does not need rebuilding.
    Starting services.
     
    Reformatting done.  Now do manual steps to
    restore copies of data.