你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Operator Nexus 平台先决条件
运营商需要在部署运营商关系平台软件之前完成先决条件。 其中一些步骤可能需要较长时间,因此,查看这些先决条件可能会有所帮助。
在 Operator Nexus 实例的后续部署中,可以跳到创建本地网络结构和群集。
Azure 先决条件
首次部署 Operator Nexus 或在新的区域中部署时,首先需要创建网络结构控制器,然后创建群集管理器,如 Azure 运营商关系先决条件页面所示。 此外,还需要完成以下任务:
- 设置用户、策略、权限和 RBAC
- 设置资源组,以便以将为 Operator Nexus平台创建的逻辑方式放置资源和对资源分组。
- 建立从 WAN 到 Azure 区域的 ExpressRoute 连接
- 若要为本地裸机 (BMM) 启用 Microsoft Defender for Endpoint,必须在部署前在运营商关系订阅中选择 Defender for Servers 计划。 Defender for Cloud 安全页面中提供了更多信息。
本地先决条件
在数据中心内部署运营商关系本地实例时,可能会涉及各种团队发挥不同作用。 必须准确执行以下任务,以确保成功安装平台软件。
物理硬件设置
希望使用运营商关系服务的运营商需要购买、安装、配置并操作硬件资源。 本文档的这一部分介绍购买和实现相应的硬件系统所需的组件和工作。 本部分讨论材料清单、机架立面图和布线图,以及组装硬件所需的步骤。
使用材料清单 (BOM)
为了确保无缝的运营商体验,Operator Nexus 开发了一个 BOM,用于获取服务所需的硬件。 此 BOM 是实现环境所需的必要组件和数量的完整列表,以便成功实现和维护本地实例。 BOM 的结构为运营商提供一系列可以从硬件供应商处订购的库存单位 (SKU)。 本文档稍后讨论 SKU。
使用立面图
机架立面图是一个图形参考,演示了如何将服务器和其他组件安装到组装和配置好的机架。 机架立面图作为整体构建说明的一部分提供。 它可帮助运营商人员正确配置和安装服务运营所需的所有硬件组件。
布线图
布线图是为机架中安装的组件提供网络服务所需的电缆连接的图形表示。 遵循布线图可确保在构建中正确实现各种组件。
如何根据 SKU 来订购
SKU 定义
SKU 是一种库存管理和跟踪的方法,可以将多个组件分组到单个指示符中。 SKU 使运营商可以通过指定一个 SKU 编号,对所有所需组件进行排序。 SKU 可以加快运营商和供应商的交互,同时减少部件列表过于复杂导致的排序错误。
下基于 SKU 的订单
运营商关系已与 Dell、Pure Storage 和 Arista 等供应商创建了一系列 SKU,运营商可以在下订单时引用这些 SKU。 因此,运营商只需根据 Operator Nexus 提供的 SKU 信息给供应商下订单,即可收到正确的部件清单。
如何构建物理硬件占用
物理硬件的构建是通过本部分中详述的一系列步骤执行的。 执行构建前有三个先决条件步骤。 本部分还将讨论有关运营商的员工执行构建的技能的假设。
订购和接收具体硬件基础结构 SKU
在开始构建前,必须订购相应的 SKU 并将硬件交付到现场。 应为此步骤留出足够的时间。 我们建议运营商在流程早期与硬件供应商通信,以确定并了解交付时间范围。
安装位置准备
安装站点能够在空间、电源和网络方面支持硬件基础结构。 具体站点要求将取决于为站点购买的 SKU。 可以在发出订单后和收到 SKU 前完成此步骤。
计划资源
需要多个不同的工作人员来执行构建过程,例如工程师提供电源、网络访问和布线,系统工作人员来组装机架、交换机和服务器等。 为了确保及时完成构建,我们建议根据交付计划提前安排好这些团队成员。
有关构建人员技能的假设
执行构建的人员应具有组装机架、交换机、配电装置和服务器等系统硬件的经验。 提供的说明将讨论该过程的步骤,同时引用机架立面图和布线图。
构建过程概述
如果站点已经完成准备并经过验证可以支持有序 SKU,则构建过程按以下步骤进行:
- 根据 SKU 的机架立面图来组装机架。 机架制造商将提供具体的机架组装说明。
- 组装好机架后,按照立面图在机架中安装结构设备。
- 按照布线图连接网络接口,为结构设备布线。
- 按照机架立面图组装并安装服务器。
- 按照机架立面图组装并安装存储设备。
- 按照布线图连接网络接口,为服务器和存储设备布线。
- 为每台设备接通电源。
- 通过 Operator Nexus 和其他供应商提供的清单查看/验证构建结果。
如何直观检查物理硬件的安装
建议在构建过程中按照 ANSI/TIA 606 标准或运营商的标准给所有电缆做标记。 构建过程应该还会创建反向映射,以便实现从交换机端口到远端连接的布线。 可以比较反向映射与布线图以验证安装。
终端服务器和存储阵列设置
现在物理安装和验证已完成,接下来的步骤涉及配置安装平台软件前所需的默认设置。
设置终端服务器
已部署和配置终端服务器,如下所示:
- 终端服务器配置为带外管理
- 已设置身份验证凭据
- 在带外管理端口上启用了 DHCP 客户端
- 已启用 HTTP 访问
- 终端服务器接口连接到运营商本地提供程序边缘路由器 (PE),并使用 IP 地址和凭据进行配置
- 可从管理 VPN 访问终端服务器
步骤 1:设置主机名
若要为终端服务器设置主机名,请执行以下步骤:
在 CLI 中使用以下命令:
sudo ogcli update system/hostname hostname=\"<TS_HOSTNAME>\"
参数:
参数名称 | 说明 |
---|---|
TS_HOSTNAME | 终端服务器主机名 |
有关更多详细信息,请参阅 CLI 参考。
步骤 2:设置网络
若要配置网络设置,请执行以下步骤:
在 CLI 中执行以下命令:
sudo ogcli create conn << 'END'
description="PE1 to TS NET1"
mode="static"
ipv4_static_settings.address="<TS_NET1_IP>"
ipv4_static_settings.netmask="<TS_NET1_NETMASK>"
ipv4_static_settings.gateway="<TS_NET1_GW>"
physif="net1"
END
sudo ogcli create conn << 'END'
description="PE2 to TS NET2"
mode="static"
ipv4_static_settings.address="<TS_NET2_IP>"
ipv4_static_settings.netmask="<TS_NET2_NETMASK>"
ipv4_static_settings.gateway="<TS_NET2_GW>"
physif="net2"
END
参数:
参数名称 | 说明 |
---|---|
TS_NET1_IP | 终端服务器 PE1 到 TS NET1 IP |
TS_NET1_NETMASK | 终端服务器 PE1 到 TS NET1 网络掩码 |
TS_NET1_GW | 终端服务器 PE1 到 TS NET1 网关 |
TS_NET2_IP | 终端服务器 PE2 到 TS NET2 IP |
TS_NET2_NETMASK | 终端服务器 PE2 到 TS NET2 网络掩码 |
TS_NET2_GW | 终端服务器 PE2 到 TS NET2 网关 |
注意
请确保将这些参数替换为适当的值。
步骤 3:清除 net3 接口(如果存在)
若要清除 net3 接口,请执行以下步骤:
- 使用以下命令检查物理接口 net3 和“默认 IPv4 静态地址”上配置的任何接口:
ogcli get conns
description="Default IPv4 Static Address"
name="<TS_NET3_CONN_NAME>"
physif="net3"
参数:
参数名称 | 说明 |
---|---|
TS_NET3_CONN_NAME | 终端服务器 NET3 连接名称 |
- 如果接口存在,请将其移除:
ogcli delete conn "<TS_NET3_CONN_NAME>"
注意
请确保将这些参数替换为适当的值。
步骤 4:设置支持管理员用户
若要设置支持管理员用户,请执行以下步骤:
- 在 CLI 中为每位用户执行以下命令:
ogcli create user << 'END'
description="Support Admin User"
enabled=true
groups[0]="admin"
groups[1]="netgrp"
password="<SUPPORT_PWD>"
username="<SUPPORT_USER>"
END
参数:
参数名称 | 说明 |
---|---|
SUPPORT_USER | 支持管理员用户 |
SUPPORT_PWD | 支持管理员用户密码 |
注意
请确保将这些参数替换为适当的值。
步骤 5:为管理员用户添加 sudo 支持
若要为管理员用户添加 sudo 支持,请执行以下步骤:
- 打开 sudoers 配置文件:
sudo vi /etc/sudoers.d/opengear
- 添加以下行以授予 sudo 访问权限:
%netgrp ALL=(ALL) ALL
%admin ALL=(ALL) NOPASSWD: ALL
注意
编辑文件后,请确保保存更改。
此配置允许“netgrp”组的成员以任何用户身份执行任何命令,允许“管理员”组的成员以任何用户身份执行任何命令,而无需密码。
步骤 6:确保 LLDP 服务可用性
若要确保终端服务器上提供 LLDP 服务,请执行以下步骤:
检查 LLDP 服务是否正在运行:
sudo systemctl status lldpd
如果服务正在运行,应会看到如下所示的输出:
lldpd.service - LLDP daemon
Loaded: loaded (/lib/systemd/system/lldpd.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-09-14 19:10:40 UTC; 3 months 25 days ago
Docs: man:lldpd(8)
Main PID: 926 (lldpd)
Tasks: 2 (limit: 9495)
Memory: 1.2M
CGroup: /system.slice/lldpd.service
├─926 lldpd: monitor.
└─992 lldpd: 3 neighbors.
Notice: journal has been rotated since unit was started, output may be incomplete.
如果服务未处于活动状态(正在运行),请启动该服务:
sudo systemctl start lldpd
使服务能够在重启时启动:
sudo systemctl enable lldpd
注意
请务必执行这些步骤,以确保 LLDP 服务始终可用,并在重启后自动启动。
步骤 7:检查系统日期/时间
确保正确设置系统日期/时间,终端服务器的时区为 UTC。
检查时区设置:
若要检查当前时区设置,请执行以下操作:
ogcli get system/timezone
将时区设置为 UTC:
如果时区未设置为 UTC,则可以使用以下方法设置它:
ogcli update system/timezone timezone=\"UTC\"
检查当前日期/时间:
检查当前日期和时间:
date
修复日期/时间(如果不正确):
如果日期/时间不正确,则可以使用以下方法修复它:
ogcli replace system/time
Reading information from stdin. Press Ctrl-D to submit and Ctrl-C to cancel.
time="<CURRENT_DATE_TIME>"
参数:
参数名称 | 说明 |
---|---|
CURRENT_DATE_TIME | 格式为 hh:mm MMM DD, YYYY 的当前日期时间 |
注意
确保系统日期/时间准确,以防止依赖它的应用程序或服务出现任何问题。
步骤 8:标记终端服务器端口(如果缺失/不正确)
若要标记终端服务器端口,请使用以下命令:
ogcli update port "port-<PORT_#>" label=\"<NEW_NAME>\" <PORT_#>
参数:
参数名称 | 说明 |
---|---|
NEW_NAME | 端口标签名称 |
PORT_# | 终端服务器端口号 |
步骤 9:PURE Array 串行连接所需的设置
在 2024 年之前购买的纯存储阵列具有修订 R3 控制器,它们使用变换控制台电缆,并需要使用以下自定义串行端口连接命令:
Pure Storage R3 控制器:
ogcli update port ports-<PORT_#> 'baudrate="115200"' <PORT_#> Pure Storage Controller console
ogcli update port ports-<PORT_#> 'pinout="X1"' <PORT_#> Pure Storage Controller console
较新的纯存储设备和从 R3 升级到 R4 纯存储控制器的系统将使用具有以下更新后设置的直通控制台电缆:
纯存储 R4 控制器:
ogcli update port ports-<PORT_#> 'baudrate="115200"' <PORT_#> Pure Storage Controller console
ogcli update port ports-<PORT_#> 'pinout="X2"' <PORT_#> Pure Storage Controller console
参数:
参数名称 | 说明 |
---|---|
PORT_# | 终端服务器端口号 |
这些命令会设置用于连接到纯存储控制器控制台的波特率和引脚。
注意
所有其他终端服务器端口配置设置应保持不变,并在默认情况下使用直通 RJ45 控制台电缆。
步骤 10:验证设置
若要验证配置设置,请执行以下命令:
ping <PE1_IP> -c 3 # Ping test to PE1 //TS subnet +2
ping <PE2_IP> -c 3 # Ping test to PE2 //TS subnet +2
ogcli get conns # Verify NET1, NET2, NET3 Removed
ogcli get users # Verify support admin user
ogcli get static_routes # Ensure there are no static routes
ip r # Verify only interface routes
ip a # Verify loopback, NET1, NET2
date # Check current date/time
pmshell # Check ports labelled
sudo lldpctl
sudo lldpcli show neighbors # Check LLDP neighbors - should show data from NET1 and NET2
注意
确保 LLDP 邻居与预期一致,指示成功连接到 PE1 和 PE2。
示例 LLDP 邻居输出:
-------------------------------------------------------------------------------
LLDP neighbors:
-------------------------------------------------------------------------------
Interface: net2, via: LLDP, RID: 2, Time: 0 day, 20:28:36
Chassis:
ChassisID: mac 12:00:00:00:00:85
SysName: austx502xh1.els-an.att.net
SysDescr: 7.7.2, S9700-53DX-R8
Capability: Router, on
Port:
PortID: ifname TenGigE0/0/0/0/3
PortDescr: GE10_Bundle-Ether83_austx4511ts1_net2_net2_CircuitID__austxm1-AUSTX45_[CBB][MCGW][AODS]
TTL: 120
-------------------------------------------------------------------------------
Interface: net1, via: LLDP, RID: 1, Time: 0 day, 20:28:36
Chassis:
ChassisID: mac 12:00:00:00:00:05
SysName: austx501xh1.els-an.att.net
SysDescr: 7.7.2, S9700-53DX-R8
Capability: Router, on
Port:
PortID: ifname TenGigE0/0/0/0/3
PortDescr: GE10_Bundle-Ether83_austx4511ts1_net1_net1_CircuitID__austxm1-AUSTX45_[CBB][MCGW][AODS]
TTL: 120
-------------------------------------------------------------------------------
注意
验证输出是否与预期匹配,以及所有配置是否都正确。
设置存储阵列
- 操作员需要在聚合机架中安装由 BOM 和机架提升指定的存储阵列硬件。
- 操作员需要向存储阵列技术人员提供信息,以便存储阵列技术人员到达现场配置设备。
- 与存储阵列技术人员共享的、特定于位置的必填数据:
- 客户名称:
- 物理检查日期:
- 底盘序列号:
- 存储阵列阵列主机名:
- CLLI 代码(公共语言位置标识符):
- 安装地址:
- FIC/机架/网格位置:
- 提供给操作员并与存储阵列技术人员共享的数据,所有安装都通用:
- Purity 代码级别:请参阅支持的 Purity 版本
- 安全模式:禁用
- 数组时区:UTC
- DNS(域名系统)服务器 IP 地址:操作员未在设置过程中设置
- DNS 域后缀:在设置过程中,操作员未设置
- NTP(网络时间协议)服务器 IP 地址或 FQDN:操作员未在设置过程中设置
- Syslog(主):操作员未在设置过程中设置
- Syslog(次):操作员未在设置过程中设置
- SMTP 网关 IP 地址或 FQDN:运营商未在设置过程中设置
- 电子邮件发件人域名:电子邮件发件人的域名 (example.com)
- 要提醒的电子邮件地址:运营商未在设置过程中设置
- 代理服务器和端口:运营商未在安装过程中设置
- 管理:虚拟接口
- IP 地址:172.27.255.200
- 网关:操作员未在设置过程中设置
- 子网掩码:255.255.255.0
- MTU:1500
- Bond:运营商未在设置过程中设置
- 管理:控制器 0
- IP 地址:172.27.255.254
- 网关:操作员未在设置过程中设置
- 子网掩码:255.255.255.0
- MTU:1500
- Bond:运营商未在设置过程中设置
- 管理:控制器 1
- IP 地址:172.27.255.253
- 网关:操作员未在设置过程中设置
- 子网掩码:255.255.255.0
- MTU:1500
- Bond:运营商未在设置过程中设置
- ct0.eth10:运营商未在设置过程中设置
- ct0.eth11:运营商未在设置过程中设置
- ct0.eth18:运营商未在设置过程中设置
- ct0.eth19:运营商未在设置过程中设置
- ct1.eth10:运营商未在设置过程中设置
- ct1.eth11:运营商未在设置过程中设置
- ct1.eth18:运营商未在设置过程中设置
- ct1.eth19:运营商未在设置过程中设置
- 要应用的纯可优化项:
puretune -set PS_ENFORCE_IO_ORDERING 1 "PURE-209441";
puretune -set PS_STALE_IO_THRESH_SEC 4 "PURE-209441";
puretune -set PS_LANDLORD_QUORUM_LOSS_TIME_LIMIT_MS 0 "PURE-209441";
puretune -set PS_RDMA_STALE_OP_THRESH_MS 5000 "PURE-209441";
puretune -set PS_BDRV_REQ_MAXBUFS 128 "PURE-209441";
iDRAC IP 分配
在部署 Nexus 群集之前,运营商最好在组织硬件机架时设置 iDRAC IP。 下面介绍如何将服务器映射到 IP:
- 根据机架中每个服务器的位置分配 IP。
- 使用为 Fabric 分配的 /19 子网中的第四个 /24 块。
- 从每个机架的底层服务器开始向上分配 IP,从 0.11 开始。
- 继续按顺序为下一个机架底部的第一台服务器分配 IP。
示例
Fabric 范围:10.1.0.0-10.1.31.255 - 第四个 /24 的 iDRAC 子网为 10.1.3.0/24。
机架 | 服务器 | iDRAC IP |
---|---|---|
机架 1 | 辅助角色 1 | 10.1.3.11/24 |
机架 1 | 工作线程 2 | 10.1.3.12/24 |
机架 1 | 工作线程 3 | 10.1.3.13/24 |
机架 1 | 工作线程 4 | 10.1.3.14/24 |
机架 1 | 工作线程 5 | 10.1.3.15/24 |
机架 1 | 工作线程 6 | 10.1.3.16/24 |
机架 1 | 工作线程 7 | 10.1.3.17/24 |
机架 1 | 工作线程 8 | 10.1.3.18/24 |
机架 1 | 控制器 1 | 10.1.3.19/24 |
机架 1 | 控制器 2 | 10.1.3.20/24 |
机架 2 | 辅助角色 1 | 10.1.3.21/24 |
机架 2 | 工作线程 2 | 10.1.3.22/24 |
机架 2 | 工作线程 3 | 10.1.3.23/24 |
机架 2 | 工作线程 4 | 10.1.3.24/24 |
机架 2 | 工作线程 5 | 10.1.3.25/24 |
机架 2 | 工作线程 6 | 10.1.3.26/24 |
机架 2 | 工作线程 7 | 10.1.3.27/24 |
机架 2 | 工作线程 8 | 10.1.3.28/24 |
机架 2 | 控制器 1 | 10.1.3.29/24 |
机架 2 | 控制器 2 | 10.1.3.30/24 |
机架 3 | 辅助角色 1 | 10.1.3.31/24 |
机架 3 | 工作线程 2 | 10.1.3.32/24 |
机架 3 | 工作线程 3 | 10.1.3.33/24 |
机架 3 | 工作线程 4 | 10.1.3.34/24 |
机架 3 | 工作线程 5 | 10.1.3.35/24 |
机架 3 | 工作线程 6 | 10.1.3.36/24 |
机架 3 | 工作线程 7 | 10.1.3.37/24 |
机架 3 | 工作线程 8 | 10.1.3.38/24 |
机架 3 | 控制器 1 | 10.1.3.39/24 |
机架 3 | 控制器 2 | 10.1.3.40/24 |
机架 4 | 辅助角色 1 | 10.1.3.41/24 |
机架 4 | 工作线程 2 | 10.1.3.42/24 |
机架 4 | 工作线程 3 | 10.1.3.43/24 |
机架 4 | 工作线程 4 | 10.1.3.44/24 |
机架 4 | 工作线程 5 | 10.1.3.45/24 |
机架 4 | 工作线程 6 | 10.1.3.46/24 |
机架 4 | 工作线程 7 | 10.1.3.47/24 |
机架 4 | 工作线程 8 | 10.1.3.48/24 |
机架 4 | 控制器 1 | 10.1.3.49/24 |
机架 4 | 控制器 2 | 10.1.3.50/24 |
同一 NFC/CM 对中三个本地实例的示例设计,在 /16 中使用顺序 /19 网络:
实例 | Fabric 范围 | iDRAC 子网 |
---|---|---|
实例 1 | 10.1.0.0-10.1.31.255 | 10.1.3.0/24 |
实例 2 | 10.1.32.0-10.1.63.255 | 10.1.35.0/24 |
实例 3 | 10.1.64.0-10.1.95.255 | 10.1.67.0/24 |
安装的其他设备的默认设置
- 终端服务器之外的所有网络结构设备都设置为
ZTP
模式 - 服务器具有默认的出厂设置
Azure 到 Nexus 群集之间的防火墙规则。
若要在 Azure 和 Nexus 群集之间建立防火墙规则,运营商必须打开指定的端口。 这可确保使用 TCP(传输控制协议)和 UDP(用户数据报协议)为所需服务提供正常的通信和连接。
序号 | 源 | 目标 | 端口 (TCP/UDP) | 双向 | 规则用途 |
---|---|---|---|---|---|
1 | Azure 虚拟网络 | 群集 | 22 TCP | 否 | 通过 SSH 从 CM 子网连接到云下服务器 |
2 | Azure 虚拟网络 | 群集 | 443 TCP | 否 | 访问云下节点 iDRAC |
3 | Azure 虚拟网络 | 群集 | 5900 TCP | 否 | Gnmi |
4 | Azure 虚拟网络 | 群集 | 6030 TCP | 否 | Gnmi 证书 |
5 | Azure 虚拟网络 | 群集 | 6443 TCP | 否 | 访问云下 K8S 群集 |
6 | 群集 | Azure 虚拟网络 | 8080 TCP | 是 | 将 ISO 映像装载到 iDRAC,升级 NNF 运行时 |
7 | 群集 | Azure 虚拟网络 | 3128 TCP | 否 | 通过代理连接到全局 Azure 终结点 |
8 | 群集 | Azure 虚拟网络 | 53 TCP 和 UDP | 否 | DNS |
9 | 群集 | Azure 虚拟网络 | 123 UDP | 否 | NTP |
10 | 群集 | Azure 虚拟网络 | 8888 TCP | 否 | 连接到群集管理器 Web 服务 |
11 | 群集 | Azure 虚拟网络 | 514 TCP 和 UDP | 否 | 从群集管理器访问云下日志 |
安装 CLI 扩展并登录到 Azure 订阅
安装最新版本的必要 CLI 扩展。
Azure 订阅登录
az login
az account set --subscription <SUBSCRIPTION_ID>
az account show
注意
该帐户必须具有在订阅中读取/写入/发布的权限