恢复发生故障的存储卷并重建 Cassandra 数据库
您必须运行一个脚本来重新格式化和重新挂载故障存储卷上的存储,并在系统确定有必要时在存储节点上重建 Cassandra 数据库。
-
您必须具有
passwords.txt
文件。 -
服务器上的系统驱动器必须完好无损。
-
必须已确定故障的发生原因 ,必要时,必须已购买更换存储硬件。
-
替换存储的总大小必须与原始存储相同。
-
您已检查是否未在执行存储节点停用,或者已暂停节点停用操作步骤 。(在网格管理器中,选择 * 维护 * > * 任务 * > * 取消配置 * 。)
-
您已检查扩展是否未在进行中。(在网格管理器中,选择 * 维护 * > * 任务 * > * 扩展 * 。)
-
您已拥有 已查看有关存储卷恢复的警告。
-
根据需要,更换与先前已确定并卸载的故障存储卷关联的故障物理或虚拟存储。
更换存储后,请确保重新扫描或重新启动以确保操作系统能够识别该存储,但不要重新挂载卷。存储将重新挂载并在稍后的步骤中添加到 ` /etc/fstab` 中。
-
登录到发生故障的存储节点:
-
输入以下命令:
ssh admin@ grid_node_ip_
-
输入
passwords.txt
文件中列出的密码。 -
输入以下命令切换到 root :
su -
-
输入
passwords.txt
文件中列出的密码。以 root 用户身份登录时,提示符将从 ` $` 更改为 ` #` 。
-
-
使用文本编辑器( vi 或 vim )从 ` /etc/fstab` 文件中删除故障卷,然后保存该文件。
在 ` /etc/fstab` 文件中注释掉故障卷不足。必须从 fstab
中删除卷,因为恢复过程会验证fstab
文件中的所有行是否与挂载的文件系统匹配。 -
重新格式化任何发生故障的存储卷,并根据需要重建 Cassandra 数据库。输入:
reformat_storage_block_devices.rb
-
如果存储服务正在运行,系统将提示您停止这些服务。输入: *
-
如果需要,系统将提示您重建 Cassandra 数据库。
-
查看警告。如果其中任何一项都不适用,请重建 Cassandra 数据库。输入: *
-
如果多个存储节点脱机或在过去 15 天内重建了另一个存储节点。输入: *
该脚本将退出而不重建 Cassandra 。请联系技术支持。
-
-
对于存储节点上的每个 rangedb 驱动器,当系统询问您以下问题时:
是否重新格式化 rangedb 驱动器 <name> ( device < 主要号码 >: < 次要号码 > )?[Y/n] ?
,输入以下回答之一:-
* y * 重新格式化出现错误的驱动器。这会重新格式化存储卷,并将重新格式化的存储卷添加到 ` /etc/fstab` 文件中。
-
如果驱动器不包含任何错误,并且您不想重新格式化它,则为 * 否 * 。
选择 * n * 将退出此脚本。挂载驱动器(如果您认为应保留驱动器上的数据且错误地卸载了驱动器)或删除驱动器。然后,再次运行 reformat_storage_block_devices.rb
命令。
某些 StorageGRID 恢复过程使用 Reaper 处理 Cassandra 修复。一旦相关服务或所需服务开始,便会自动进行修复。您可能会注意到脚本输出中提到 " reaper
" 或 "`Cassandra repair.` " 。 如果您看到指示修复失败的错误消息,请运行错误消息中指示的命令。 -
在以下示例输出中,必须重新格式化驱动器 ` /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.
-