PowerScale、Isilon、OneFS:如何正确关闭群集电源
Sommaire: 正确关闭 PowerScale 群集的最佳实践,包括与不正确的群集关闭相关的风险的信息。正确关闭群集的分步过程。某些步骤应在计划升级前 4-8 周运行。
Instructions
简介
本文提供了正确关闭戴尔 Isilon 群集的步骤,并提供了与不正确关闭群集相关的风险的相关信息。
群集中未正常关闭的节点没有系统电源的时间不应超过 NVRAM 电池的使用寿命。
这大约需要三到五天,具体取决于节点类型。
如果数据仍存储在节点日志中,而节点断电时间超过 NVRAM 电池续航时间,则数据会丢失。
如果在多个节点上发生这种情况,则会导致需要重建群集。
如果您对本文中的步骤或信息有疑问,请联系 Dell Isilon 技术支持寻求帮助。
流程
群集关闭过程需要 root 凭据和对群集中节点的串行控制台访问权限。该过程分为以下阶段。
在开始关机过程之前,请阅读整个流程。这可确保您了解完成每个步骤的上下文和顺序。
阶段 1:执行预防性维护。
这些步骤在计划关闭前大约 4-8 周执行。此阶段的目的是识别可能妨碍关闭程序的未知或潜在硬件或固件问题。
如果情况需要执行群集范围关闭,您可以使用 OneFS 命令行界面或 OneFS Web 管理界面同时关闭所有节点。
戴尔强烈建议遵循阶段 3 中的所有步骤,以在发生紧急关闭程序时保持数据的完整性。
- 如果需要,上传日志以供参考。
# isi diagnostics gather start --gather-mode full
- 执行或请求 Isilon 运行状况检查。
- 这将评估群集的运行状况,以确保其处于良好的可支持、可运行状态。
- 客户可以使用 PowerScale 来执行检查:如何运行 IOCA 群集分析工具
- 检查可以由远程响应(客户支持)团队执行。这适用于针对运行受支持代码版本的群集签订了有效维护协议的所有客户。如果您满足这些要求,请在戴尔在线支持网站上创建服务请求 (SR),请求“Isilon 运行状况检查”。并通过运行以下命令,提供运行状况检查的完整日志
# isi diagnostics gather start --gather-mode full
*运行状况检查不用于修复群集问题或评估群集的配置、性能或工作流。
- 通过执行以下步骤,对每个节点执行“冷重启”。应为此活动安排一个维护窗口。
提醒:通过此过程,您可以识别仅在节点重新开机时才检测到的任何内存错误或驱动器故障模式。
- 逐个关闭群集中的每个节点。要关闭每个节点,请执行以下操作:
- 打开与任何节点的 SSH 连接。通过运行以下命令关闭每个节点
isi config shutdown <node_lnn>
- 确认节点背面的绿色电源指示灯 LED 不再亮起,以确保每个节点的电源已关闭。
- 按下电源按钮以重新启动节点。
- 通过运行
isi status -q命令,验证节点是否已重新加入群集且运行状况良好,然后在输出的 Health DASR 列中寻找 OK。 - 如果节点遇到 Health DASR 列中指示的问题,或者无法重新加入群集,请在关闭下一个节点之前解决这些问题。
我们选择了一个问题示例。节点 1 已成功重新加入群集,但 Health DASR 列显示它需要关注。
mycluster-1# isi status -q Cluster Name: mycluster Cluster Health: [ ATTN] Cluster Storage: HDD SSD Size: 11G (23G Raw) 0 (0 Raw) VHS Size: 11G Used: 7.9G (69%) 0 (n/a) Avail: 3.5G (31%) 0 (n/a) Health Throughput (bps) HDD Storage SSD Storage ID |IP Address |DASR | In Out Total| Used / Size |Used / Size -------------------+-----+-----+-----+-----+-----------------+----------------- 1|10.1.16.141 |-A-- | 0| 150K| 150K| 2.0G/ 2.8G( 69%)| (No SSDs) 2|10.1.16.142 |-OK- | 98K| 13K| 112K| 2.0G/ 2.8G( 69%)| (No SSDs) 3|10.1.16.143 |-OK- | 0| 44K| 44K| 2.0G/ 2.8G( 69%)| (No SSDs) 4|10.1.16.144 |-OK- | 0| 512| 512| 2.0G/ 2.8G( 69%)| (No SSDs) -------------------+-----+-----+-----+-----+-----------------+----------------- Cluster Totals: | 98K| 208K| 306K| 7.9G/ 11G( 69%)| (No SSDs) Health Fields: D = Down, A = Attention, S = Smartfailed, R = Read-Only
- 重新启动每个节点后,仔细检查整个群集的运行状况。打开到任何节点的 SSH 连接,然后运行以下命令:
isi status -q
isi config reboot <node_lnn>
但是,戴尔强烈建议使用冷重新启动方法,以更有效地识别潜在的硬件问题。
阶段 2:关闭群集中的每个节点。
这些步骤将在您关闭 Isilon 群集的当天执行。在群集范围关闭期间,某些因素可能会影响或延迟关闭过程。例如,未完成的节点数据写入可能会影响关闭。步骤 1-2 的目的是确保在运行关闭命令之前,所有客户端都与群集断开连接并且数据已从节点日志正确保存到文件系统。如果您有 iSCSI 客户端,请确保在禁用 iSCSI 服务之前关闭客户端。
步骤 3 介绍了如何使用串行控制台按顺序关闭群集中的每个节点。建议使用此方法,因为它使您能够在继续下一个节点之前验证每个节点是否已正确关闭,并根据需要进行调整或修复问题以确保群集正确关闭。但是,此方法可能非常耗时,因为它需要将串行控制台连接到每个节点以运行关闭命令。同时关闭群集中的所有节点部分介绍了如何使用 OneFS 命令行界面或 OneFS Web 管理界面关闭群集。此方法比步骤 3 耗时更少,但识别在关闭过程中遇到问题的节点会变得更困难。
- Isilon 建议将群集与客户端隔离开来,以确保写入操作频繁的客户端不会妨碍关闭程序。您可以通过禁用群集上运行的面向客户端的服务来实现此目的。执行以下过程以禁用面向客户端的服务:
- 通过对每个面向客户端的服务运行以下命令,识别群集上运行的面向客户端的服务或协议:
isi services apache2 isi services isi_hdfs_d isi services isi_iscsi_d isi services ndmpd isi services nfs isi services smb isi services vsftpd
- B. 根据每个命令的输出,记录群集上“启用”的服务。在下面的示例中,SMB 服务已启用,而 NFS 服务已禁用:
mycluster-4# isi services smb Service 'smb' is enabled. mycluster-4# isi services nfs Service 'nfs' is disabled. mycluster-4#
- 禁用面向客户端的服务。完成此步骤后,所有客户端会立即失去与群集的连接。要禁用某项服务,请运行以下与您已启用的服务相关的命令。
isi services apache2 disable isi services isi_hdfs_d disable isi services isi_iscsi_d disable isi services ndmpd disable isi services nfs disable isi services smb disable isi services vsftpd disable
如果您有 iSCSI 客户端,请确保在执行步骤 2 之前 iSCSI 客户端已卸载其 LUN。运行 isi iscsi list 命令,以确认所有 iSCSI 客户端都已与群集断开连接。
提醒:如果要禁用 iSCSI 服务,请确保在运行
isi_iscsi_d disable 命令确认该锁定已释放。已装载的 iSCSI LUN 的中断可能会对客户端造成损坏,这通常需要从备份中恢复。
- 通过运行
isi_for_array isi_flush命令确认该锁定已释放。每个节点上将显示类似以下内容的输出:
提醒: 在运行 isi_flush 时,在节点上完成刷新或者节点关机或死机之前,系统不会停止。如果出现问题,您不能按 ctrl+c 退出刷新。
mycluster-4# isi_for_array isi_flush mycluster-1: Flushing cache... mycluster-1: Cache flushing complete.
mycluster-4# isi_for_array isi_flush mycluster-1: Flushing cache... vinvalbuf: flush failed, 1 clean and 0 dirty bufs remaining mycluster-2: Flushing cache... fsync: giving up on dirty
运行 isi_for_array isi_flush 命令。如果任何节点刷新失败,请联系戴尔 Isilon 技术支持。在继续执行下一步之前,所有节点都必须成功刷新。
- 按顺序关闭群集中的每个节点并监视输出。建议使用此方法,因为它使您能够在关闭群集中的下一个节点之前识别并解决任何问题。通过执行以下步骤关闭每个节点:
注意:在 OneFS 8.0 及更高版本中,请勿从 OneFS Web 管理界面运行
isi_for_array shutdown -p 来关闭群集。
- 将串行控制台连接到每个节点。
- 运行以下命令:
isi config shutdown
Powering the system off using ACPI
- C. 监视控制台并查找与硬件相关的故障事件。在以下输出变体中,选择了成功的节点日志保存:
2014-03-22T00:35:19Z <1.5> mycluster-3(id11) isi_save_journal[44868]: Attempting to save journal to default location 2014-03-22T00:35:19Z <1.5> mycluster-3(id11) isi_save_journal[44868]: Saving journal to /var/journal/journal.gz 2014-03-22T00:35:19Z <1.5> mycluster-3(id11) isi_save_journal[44868]: All data saved successfully 2014-03-22T00:37:29Z <1.5> mycluster-3(id11) isi_save_journal[45074]: Attempting to save journal to default location 2014-03-22T00:37:29Z <1.5> mycluster-3(id11) isi_save_journal[45074]: A valid backup journal already exists. Not saving. An example of a node journal save failure is highlighted in the output below: 2014-03-21T23:39:09Z <1.4> mycluster-3(id11) /sbin/shutdown: ERROR: Validation failed for backup journal. Shutdown aborted 2014-03-21T23:39:09Z <1.4> mycluster-3(id11) /sbin/shutdown: Failed command output:
如果您收到节点日志未保存的错误,可以通过执行阶段 3 中的步骤手动保存日志。
如果发生紧急情况,您可以同时关闭群集中的所有节点。但不建议使用此方法,因为您无法在出现问题时监视每个节点的状态和输出。如果您选择执行这些步骤,戴尔强烈建议遵循阶段 3 中的所有步骤,以验证在执行以下步骤后所有节点均已正确关闭。
警告:如果将尚未将数据从其日志刷新到文件系统的节点的电源断开,数据丢失的风险会大大增加。如果您需要与关机过程相关的帮助,请联系戴尔 Isilon 技术支持。
# isi config shutdown all
isi_for_array shutdown -p 命令来关闭群集。
阶段 3:验证节点已成功关闭。
通过查看节点背面的发光二极管 (LED) 电源指示灯,确认节点已正确关闭。所有电源 LED 指示灯都应熄灭或关闭。这表示节点已成功关闭。
如果节点背面的电源指示灯仍然亮起,则表示节点尚未关闭。如果节点尚未关闭,或者您收到控制台输出,指示节点日志未正确保存(来自 阶段 2,步骤 3C),您必须手动保存日志以确保在关闭节点之前将数据提交到磁盘。
- 要手动保存日志并关闭节点,请执行以下步骤:
- 如果节点响应命令行界面,请通过运行以下命令重新启动节点:
# isi config reboot
- 如果节点不响应命令行界面,请通过按住节点背面的电源按钮手动重启节点。这会导致节点关机。等待 30 秒,然后按一次电源按钮以再次启动节点备份。转至下一个步骤。
- 重新启动节点后,重新登录并使用以下步骤保存日志:
- 通过运行以下命令,尝试再次正常关闭节点:
# isi config shutdown
- 如果输出仍指示日志未保存,请通过运行以下命令手动保存日志:
# isi_save_journal
- 如果日志仍未保存,请卸载文件系统 /ifs,然后通过运行以下命令强制保存日志:
# isi_kill_busy && umount /ifs
- 通过运行 isi_checkjournal 命令验证日志是否已保存。
# isi_checkjournal
- 在输出指示日志已成功保存之前,请勿转至下一步。
需要时联系戴尔技术支持。
阶段 4:断开电源。
在群集成功关闭且节点关机后,才能断开群集与电源的连接。
NVRAM 电池
当客户端将文件写入节点时,写入首先存储在节点的日志卡上托管的非易失性 RAM (NVRAM) 中。稍后,OneFS 会将这些写入提交到磁盘。为了在意外断电时保护存储在 NVRAM 中的数据,每个节点都配备了 NVRAM 电池(配备了两个以实现冗余)。已关机但仍连接到电源的节点将继续给 NVRAM 电池充电。当节点与电源断开连接时,NVRAM 电池的电量开始消耗。最新一代节点(X200、S200、X400 和 NL400)中的电池续航时间约为五天。在上一代节点中,NVRAM 电池续航时间约为三天。
Dell Technologies 推荐正确关闭节点,以避免在断电期间长时间依赖 NVRAM 电池。
如果节点上的 NVRAM 电池电量完全耗尽,节点将启动至只读模式,并保持只读模式大约 30 分钟,直至 NVRAM 电池充满电。电池充满电后,节点会自动恢复正常读/写模式。
阶段 5:启动群集中的每个节点。
当您准备好重新启动 Isilon 群集时,将执行这些步骤。
- 恢复每个节点的电源。
- 按每个节点的前面板或背面的电源按钮以启动节点。
- 所有节点启动后,运行
isi status -q命令来检查群集的运行状况。在继续之前,请验证 Health DASR 列中所有节点都是 OK,并且未处于只读 (R) 模式。对于运行状况良好的群集,应显示类似于以下内容的输出:
Cluster Name: mycluster Cluster Health: [ OK ] Cluster Storage: HDD SSD Size: 11G (23G Raw) 0 (0 Raw) VHS Size: 11G Used: 7.9G (69%) 0 (n/a) Avail: 3.5G (31%) 0 (n/a) Health Throughput (bps) HDD Storage SSD Storage ID |IP Address |DASR | In Out Total| Used / Size |Used / Size -------------------+-----+-----+-----+-----+-----------------+----------------- 1|10.1.16.141 |-OK- | 0| 150K| 150K| 2.0G/ 2.8G( 69%)| (No SSDs) 2|10.1.16.142 |-OK- | 98K| 13K| 112K| 2.0G/ 2.8G( 69%)| (No SSDs) 3|10.1.16.143 |-OK- | 0| 44K| 44K| 2.0G/ 2.8G( 69%)| (No SSDs) 4|10.1.16.144 |-OK- | 0| 512| 512| 2.0G/ 2.8G( 69%)| (No SSDs) -------------------+-----+-----+-----+-----+-----------------+----------------- Cluster Totals: | 98K| 208K| 306K| 7.9G/ 11G( 69%)| (No SSDs) Health Fields: D = Down, A = Attention, S = Smartfailed, R = Read-Only
- 查看阶段 2,步骤 1b 中创建的已启用服务的列表,并通过运行以下一个或多个命令启用已禁用的服务:
isi services apache2 enable isi services isi_hdfs_d enable isi services isi_iscsi_d enable isi services ndmpd enable isi services nfs enable isi services smb enable isi services vsftpd enable
- 验证您的客户端是否可以连接到群集并执行其常规工作流。您的群集应正常运行。
- Upload a full log gather:
# isi_gather_info --esrs
- 执行或请求由远程响应(客户支持)团队执行 Isilon 运行状况检查。
运行运行状况检查的步骤。
- 使用远程响应支持团队请求运行状况检查
这适用于针对运行受支持代码版本的群集签订了有效维护协议的所有客户。
如果您满足这些要求,请在戴尔在线支持网站上创建服务请求 (SR),请求“Isilon 运行状况检查”。
*运行状况检查不用于修复群集问题或评估群集的配置、性能或工作流。