本页概述了通过纳入更多存储和计算资源来动态扩展系统的流程。下面提供了有关以下类型的扩展的说明:
- 横向服务器机架扩展:向区域添加新机架。此机架包括计算节点、控制台、机架顶部 (ToR) 交换机和管理 (MGMT) 交换机。
- 纵向服务器扩展:将服务器扩展模块添加到具有空扩展槽的机架中。
- 纵向文件和块存储扩展:将存储节点添加到现有存储集群中具有空扩展槽的机架中。连接到同一存储交换机的存储节点属于同一集群。
如需详细了解不同类型的动态扩展,请参阅动态扩展概览。
准备工作
在更改区域之前,您必须满足以下条件:
- 执行硬件检查并与 OEM 签署确认文件。按照机架检查中的说明操作。
- 按照 KUBECONFIG 生成中的说明,为控制平面节点的管理员集群生成
KUBECONFIG。 请在指南的所有kubectl步骤中使用生成的KUBECONFIG配置文件。 验证根集群上的当前 Google Distributed Cloud (GDC) 网闸隔离版本是否至少为 1.13.1 版:
kubectl --kubeconfig $KUBECONFIG get org root -n gpc-system下载 GDC tar 文件。如需了解详情,请参阅下载文件。
准备新设备的固件:
- GDC 硬件中的数据包交换设备。如需了解详情,请参阅开关。
- 按照手动升级 ONTAP 中的说明更新 ONTAP 文件和块存储。
使用
gdcloud system doctor验证 GDCH 系统是否正常运行。如果gdcloud system doctor命令不可用,请使用网络安装验证中的替代方法。
执行水平服务器机架扩展
通过横向服务器机架扩展,向区域添加由计算节点、控制台、ToR 和管理交换机组成的新机架。 本部分中介绍的步骤适用于单个机架。如果您有多个机架,请对每个机架应用这些步骤。
执行重置操作
您必须安全地重置以下设备:
- 执行安全重置串行控制台服务器。请与 Google 联系以获取这些说明,因为每个部署可能都有不同的串行控制台。
对 Raritan 电源分配单元 (PDU) 执行安全重置:
- 将 USB-b 线缆从系统控制器连接到 Raritan PDU。
- 在本地串行控制台中,使用命令
reset factorydefaults将 PDU 重置为出厂默认设置。 - PDU 现在设置为
admin/legrand。
按照安全擦除中的说明执行安全重置、更新固件,并将 ToR 和 MGMT 交换机重置为 PowerOn Auto Provisioning (POAP)。
连接到每个服务器,然后手动执行安全擦除。
准备制品
请按照以下步骤应用必要的配置文件和自定义资源:
使用
gdcloud system assets add命令生成ZonalExpansionYAML 文件、硬件CustomResources和硬件SubcomponentOverride资源:gdcloud system assets add \ --kubeconfig $KUBECONFIG \ --license-dir FILE_PATH/licenses/ \ --secrets FILE_PATH/secrets.yaml \ --devices FILE_PATH/devices.csv \ --cables FILE_PATH/cables.csv \ --include-cellcfg \ --name az-ae-expansion \ --output ./outputs/af将
FILE_PATH替换为所用每个文件的名称。请注意,如果每个文件位于不同的位置,此路径可能会有所不同。ZonalExpansion自定义资源会跟踪所有已添加的对象,并报告所有对象的状态。查看
ZonalExpansionYAML 文件时,请遵循以下指南:name字段必须具有描述性,例如az-ae-expansion。assets字段必须包含新扩展机架中的所有新设备。
下面是一个
ZonalExpansion资源示例:apiVersion: system.private.gdc.goog/v1alpha1 kind: ZonalExpansion metadata: name: file namespace: gpc-system spec: assets: - kind: ManagementSwitch name: az-ae-mgmtsw01 - kind: ManagementSwitch name: az-ae-mgmtsw02 - kind: TORSwitch name: az-ae-torsw01 - kind: TORSwitch name: az-ae-torsw02 - kind: TORSwitch name: az-ae-bm01使用基础架构即代码 (IAC) 工具应用
ZonalExpansion自定义资源。如需了解详情,请参阅基础架构即代码设置。 或者,按照 IAM-R0004 运行手册中的说明,使用kubectl完成此操作。验证
ZonalExpansion和NonCompliantDeviceSet资源是否已创建:检查
ZonalExpansion资源的状态:kubectl --kubeconfig $KUBECONFIG get -A zonalexpansion -o yaml预检检查应在此阶段失败,失败原因为:
ReasonAssetsNotExisted。必须存在以
noncompliantassets-为前缀的NonCompliantDeviceSet资源。资源列表必须与
ZonalExpansion自定义资源中的assets字段相同。
请按照 OLT-R0003 中的说明更新资产。
将新机架中的 ToR 和 MGMT 交换机连接到现有机架中的聚合交换机。
将交换机以物理方式连接到基本机架。
完成服务器引导
此阶段主要通过自动化完成,但需要执行一些步骤。您必须监控引导加载程序进度并处理任何失败情况:
- 一旦满足条件
PreflightCheck=True,控制器就会自动启动引导加载程序。 - 验证条件
NetworkBootstrapSucceed=True是否已发布到ZonalExpansion自定义资源。此条件位于ZonalExpansion.Status.PNETBootstrapStatus。 验证开关是否已从
NonCompliantDeviceSet列表中移除:kubectl --kubeconfig $KUBECONFIG get noncompliantdeviceset noncompliantassets-EXPANSION_NAME -A -o yaml将
EXPANSION_NAME替换为可用区扩展自定义资源的名称。验证开关是否不在返回的 YAML 文件的
Spec.Assets字段中。 移除此文件后,GDC 即可更新网络 ACL,以允许其他设备启动程序。更新后的两个网络 ACL 为quarantine-mgmt-switch-acl和quarantine-data-switch-acl。列出服务器的所有基板管理控制器 (BMC) IP 地址,并检查 iLO IP 地址是否已分配给新的裸机,以及引导是否可以启动:
kubectl --kubeconfig $KUBECONFIG get servers -n gpc-system -o=custom-columns=SERVER:.metadata.name,BMC_IP:.spec.bmc.ip输出示例:
SERVER BMC_IP yz-aa-bm01 10.128.136.2 yz-aa-bm02 10.128.136.3 yz-aa-bm03 10.128.136.4 yz-ab-bm01 10.128.136.66 yz-ab-bm02 10.128.136.67 yz-ab-bm03 10.128.136.68 yz-ac-bm01 10.128.136.130 yz-ac-bm02 10.128.136.131 yz-ac-bm03 10.128.136.132 yz-ac-bm04 10.128.136.133 yz-ac-bm05 10.128.136.134 yz-ac-bm06 10.128.136.135 yz-ac-bm07 10.128.136.136 yz-ac-bm08 10.128.136.137 yz-ac-bm09 10.128.136.138 yz-ac-bm10 10.128.136.139 yz-ac-bm11 10.128.136.140 yz-ac-bm12 10.128.136.141 yz-ac-bm13 10.128.136.142 yz-ac-bm14 10.128.136.143 yz-ac-bm15 10.128.136.144 yz-ac-bm16 10.128.136.145 yz-ac-bm17 10.128.136.146 yz-ac-bm18 10.128.136.147GDC 并行引导服务器,以执行安全擦除、验证、BIOS 设置更新和其他引导加载程序。
验证
ServerBootstrapSucceeded=True条件是否已发布到ZonalExpansion自定义资源。此条件位于ZonalExpansion.Status.SERVBootstrapStatus位置:- 在引导成功后,服务器裸机主机状态会进入
Available或Provisioned状态。 - 在 CLI 详细程度为 4 时,您会看到类似
"Not all servers in the ZonalExpansion are bootstrapped"的日志,其中包含尚未准备就绪的服务器列表。
- 在引导成功后,服务器裸机主机状态会进入
验证服务器是否已从
NonCompliantDeviceSet列表中移除:kubectl --kubeconfig $KUBECONFIG get noncompliantdevicesets -n gpc-system "noncompliantassets-EXPANSION_NAME" -o yaml检查条件
ExpansionSucceeded=True是否已发布到ZonalExpansion自定义资源。此条件位于ZonalExpansion.Status.Conditions。验证
NonCompliantDeviceSet列表是否已删除:kubectl --kubeconfig $KUBECONFIG get noncompliantdeviceset noncompliantassets-EXPANSION_NAME -A预期输出:
`Error from server (NotFound): noncompliantdevicesets.system.private.gdc.goog "noncompliantassets-EXPANSION_NAME" not found`
执行纵向服务器扩展
通过垂直服务器扩展,将服务器扩展模块添加到具有空扩展插槽的机架中。此扩展的许多说明与横向计算扩展类似。请按照以下步骤执行垂直服务器机架扩展:
- 实际安装占用 6 个节点容量的标准服务器块,或占用 3 个节点容量的 GPU 服务器块。每个机架可以添加多个块。警告:请勿将数据线插入
mgmtsw或aggsw开关。如需了解详情,请参阅开关。 - 除了电源线之外,请勿连接任何其他线缆。此步骤可让服务器启动流程验证服务器在到达时是否处于离线状态。
使用
gdcloud system assets add命令生成ZonalExpansionYAML 文件和硬件SubcomponentOverride资源:gdcloud system assets add \ --kubeconfig $KUBECONFIG \ --license-dir FILE_PATH/licenses/ \ --secrets FILE_PATH/secrets.yaml \ --devices FILE_PATH/devices.csv \ --cables FILE_PATH/cables.csv \ --include-cellcfg \ --name az-ae-expansion \ --output ./outputs/af将
FILE_PATH替换为所用每个文件的名称。请注意,如果每个文件位于不同的位置,此路径可能会有所不同。查看
ZonalExpansionYAML 文件时,请遵循以下指南:name字段必须具有描述性,例如az-ae-expansion。assets字段必须包含新扩展机架中的所有新设备。
下面是一个
ZonalExpansion资源示例:apiVersion: system.private.gdc.goog/v1alpha1 kind: ZonalExpansion metadata: name: file namespace: gpc-system spec: assets: - kind: ManagementSwitch name: az-ae-mgmtsw01 - kind: ManagementSwitch name: az-ae-mgmtsw02 - kind: TORSwitch name: az-ae-torsw01 - kind: TORSwitch name: az-ae-torsw02 - kind: TORSwitch name: az-ae-bm01将您刚刚创建的
ZonalExpansion自定义资源应用到集群。验证
ZonalExpansion和NonCompliantDeviceSet资源是否已创建:- 检查
ZonalExpansion资源的状态。预检检查应在此阶段失败,失败原因为:ReasonAssetsNotExisted。 - 必须存在以
noncompliantassets-为前缀的NonCompliantDeviceSet资源。 - 资源列表必须与
ZonalExpansion自定义资源中的assets字段相同。
- 检查
请按照 OLT-R0003 中的说明更新资产。
按照 OLT-R0001 运行手册验证隔离交换机 ACL 是否正在运行。
连接服务器的线缆(如果尚未完成)。请按照 Hewlett Packard Enterprise (HPE) 提供的布线文件进行操作。
验证服务器引导过程是否已成功开始并完成。如需了解详情,请参阅完成服务器启动。
执行纵向文件和块存储扩展
这些说明包含执行纵向或单机架存储节点扩展所需的步骤。当添加新的 ONTAP 存储节点以扩展现有机架的存储功能时,会执行存储节点扩展。本文档未提供新存储设备的布线说明,仅提供擦除、升级和向现有集群添加新存储节点的过程。
执行存储节点扩展的设置
按照以下步骤准备集群以进行存储节点扩容:
按照 KUBECONFIG 生成中的说明,为控制平面节点的管理员集群生成
KUBECONFIG。 将生成的KUBECONFIG配置文件用于本指南中的所有kubectl步骤:应用
SubcomponentOverride资源以在执行节点扩展的初始设置时停用存储协调器:kubectl --kubeconfig $KUBECONFIG apply -f - <<EOF apiVersion: lcm.private.gdc.goog/v1 kind: SubcomponentOverride metadata: name: file-storage-sub-override namespace: root spec: subComponentRef: "file-storage" backend: operableParameters: controller: enableReconcilers: "" disableReconcilers: "*" EOF验证替换是否有效,以及
file-storage协调器是否已停用:kubectl --kubeconfig $KUBECONFIG describe deployment file-storage -n file-system | grep reconcilers您必须看到以下内容:
--enable-reconcilers= --disable-reconcilers=*如果您没有看到此状态,请等待几分钟,以便
SubcomponentOverride资源得以应用,然后再次执行此检查。如果几分钟后SubcomponentOverride仍未应用,请与 GDC 工程支持团队联系。使用
gdcloud system assets add命令生成ZonalExpansionYAML 文件和硬件SubcomponentOverride资源:gdcloud system assets add \ --kubeconfig $KUBECONFIG \ --license-dir FILE_PATH/licenses/ \ --secrets FILE_PATH/secrets.yaml \ --devices FILE_PATH/devices.csv \ --cables FILE_PATH/cables.csv \ --include-cellcfg \ --name az-ae-expansion \ --output ./outputs/af ``` Replace FILE_PATH for each of the files used. Note, this path might be different if each file is in a different location. Use the following guidance when reviewing the `ZonalExpansion` YAML file: The `name` field must be descriptive, such as aj-ad-expansion. The `assets` field must include all new appliances in the new expansion rack. Here is an example of a `ZonalExpansion` resource: ```sh apiVersion: system.private.gdc.goog/v1alpha1 kind: ZonalExpansion metadata: name: file namespace: gpc-system spec: assets: - kind: StorageNode name: aj-ad-stge03-01 - kind: StorageNode name: aj-ad-stge03-02 ```将您刚刚创建的
ZonalExpansion自定义资源应用到集群。验证
ZonalExpansion和NonCompliantDeviceSet资源是否已创建:- 检查 ZonalExpansion 资源的状态。预检检查应在此阶段失败,失败原因为:
ReasonAssetsNotExisted。 - 必须存在以
noncompliantassets-为前缀的NonCompliantDeviceSet资源。 - 资源列表必须与
ZonalExpansion自定义资源中的资源字段相同。
- 检查 ZonalExpansion 资源的状态。预检检查应在此阶段失败,失败原因为:
使用 IaC 工具将以下硬件资产
SubcomponentOverride资源应用到根管理员集群。- file/file-storage.yaml
- inv/inv-core.yaml
确认新节点已添加到集群:
kubectl --kubeconfig $KUBECONFIG get storagenodes -n gpc-system您应该会看到新添加的节点自定义资源,其年龄值更新为更近的时间:
NAME MGMTIP INTERCONNECTIP MODEL AGE aj-ad-stge01-01 172.22.243.129 169.254.0.1 AFF-A250 37d aj-ad-stge01-02 172.22.243.130 169.254.0.3 AFF-A250 37d aj-ad-stge03-01 172.22.243.133 169.254.0.9 AFF-A400 20d aj-ad-stge03-02 172.22.243.134 169.254.0.11 AFF-A400 20d使用
describe命令获取有关这两个节点的信息,因为它们包含后续步骤所需的信息。kubectl --kubeconfig $KUBECONFIG describe storagenode NODE_NAME -n gpc-system将
NODE_NAME替换为每个已创建节点的名称。输出示例:
NAME MGMTIP INTERCONNECTIP MODEL AGE aj-ad-stge03-02 172.22.243.134 169.254.0.11 AFF-A400 20d
完成存储节点扩充流程
请按照以下步骤完成存储节点扩充流程:
- 手动升级新的存储节点。对于每个节点,请按照手动 ONTAP 升级中的步骤操作,从系统控制器提供文件。
对新的存储节点执行安全擦除。对于新的 ONTAP 节点,请按照 ONTAP 重置中的步骤重置节点。
初始化新的存储节点。使用上一步中介绍的新添加的
StorageNode自定义资源中的信息。针对每个节点,执行初始化 ONTAP 设备中的步骤。按照设置 ONTAP 中的说明,通过线缆将新节点连接到当前集群。
按照将新节点添加到现有集群中的说明将新节点添加到集群。
排查动态展开功能方面的问题
使用服务手册中的以下操作手册排查动态扩展问题:
- OLT-R0001
- OLT-R0002
- OLT-R0003