升级 - 网络设备和 Linux 主机世界观比较
手动和自动化配置
从历史上看,人们在现场配置网络设备,大多数网络设备都需要自定义配置,这主要导致手动配置硬件。不同供应商、设备类型和设备角色之间缺乏标准化阻碍了 API 和自动化工具的开发。但是,对于非常大的数据中心,配置变得统一且可重复,因此可以编写脚本。一些较大的企业不得不开发自己的自定义脚本来部署数据中心网络配置。实际上,不存在行业标准配置工具。
与数据中心网络设备相反,数据中心中的 Linux 主机 数量成千上万,并且往往具有相似的配置。这种规模的扩大很久以前就促使 Linux 系统管理员转向通用工具来自动化安装和配置,因为手动安装和配置主机在数据中心的规模下行不通。您可以使用常用的配置和编排工具执行几乎所有任务。
生产环境的预部署测试
从历史上看,单个网络设备 的成本阻碍了 网络设备测试 的成本。建立适当规模的实验室拓扑可能非常昂贵。因此,在部署版本之前,很难对版本进行全面的基于拓扑的测试。因此,许多网络管理员在部署新版本之前无法进行全面的系统测试。
否则,Linux 主机 的成本很低(或在使用虚拟化时几乎免费),因此在部署前对版本进行严格测试时,预算不是问题。大多数系统管理员在完整的应用程序环境中广泛测试新版本。
配置数据与可执行文件的位置
网络设备 通常将配置数据与可执行代码分开。在启动时,可执行代码会查找不同的文件系统并检索配置文件,解析文本,并使用该数据为每个软件子系统配置软件选项。该模型非常集中,所有可执行文件都打包在一起,配置数据遵循集中式解析器可以读取的一组规则。每个供应商控制整个交换机的配置格式,因为每个供应商通常只支持自己的软件。这是有道理的,因为他们将平台设计为特定于应用程序的设备。
由于 Linux 主机 是通用平台,其上运行着应用程序,因此文件的位置分布更加分散。应用程序安装并从通常存储在 /etc
目录树中的文本文件中读取其配置数据。可执行文件通常存储在多个 bin 目录之一中,但 bin
和 etc
目录通常位于同一物理设备上。由于不同的组织通常开发每个 模块(应用程序或可执行文件)并与世界共享,因此每个模块都负责其自己的配置数据格式。社区支持大多数应用程序,虽然关于如何格式化其配置数据有一些普遍接受的指导原则,但没有中央机构来控制或确保合规性。
升级程序
网络管理员和系统管理员通常只计划升级以获得新功能或在解决方法变得过于繁琐时获得错误修复。目标是尽可能减少升级次数。
网络设备 升级范例是保持配置数据不变,并 替换可执行文件,要么一次性从单个二进制镜像替换所有文件,要么大块(子系统)替换。完整版本升级会带来风险,因为管理员未预期或不需要更改的子系统中会发生意外的行为更改。
Linux 主机 升级范例是独立 升级少量软件包,同时保持大多数操作系统不变。更改少量软件包降低了意外后果的风险。通常,升级是仅向前范例,系统管理员通常计划在需要时在同一主要版本中迁移到最新代码。每隔几年,当开发人员发布新的内核系列时,他们会计划进行重大升级。重大升级涉及擦除和替换整个操作系统并迁移配置数据。
回滚程序
即使计划和测试最完善的升级也可能导致无法预见的问题,有时解决新问题的最佳方法是回滚到之前的状态。
由于 网络设备 清楚地分离了数据和可执行文件,因此通常的过程是 用先前运行的可执行文件覆盖新的版本可执行文件。如果较新版本更改了配置,则您必须手动撤消或修复更改,或从已备份的配置中恢复。
Linux 主机 场景可能更复杂。有三种主要方法
- 撤消单个软件包:如果您可以识别出有问题的软件包,系统管理员可以直接降级受影响的软件包。在极少数情况下,您可能必须从备份中还原配置文件,或编辑它们以撤消升级软件包自动进行的任何更改。
- 展平并重建:如果操作系统变得不可用,您可以使用编排工具从头开始重新安装之前的操作系统版本,然后自动重建配置。
- 备份和还原:另一种常见的策略是通过升级前捕获的备份还原到之前的状态。
第三方软件包
第三方软件包在 网络设备 世界中很少见。由于网络操作系统通常是专有的,因此第三方软件包通常由网络设备供应商打包,并且网络设备升级系统处理这些软件包的升级。
Linux 主机 世界中的第三方软件包通常使用与您要安装它的发行版相同的软件包系统(例如,Debian 使用 apt-get
)。或者系统管理员可以编译并安装软件包。配置和可执行文件通常遵循与其他应用程序相同的文件系统层次结构标准。
Cumulus Linux 设备升级:策略和流程
由于 Cumulus Linux 既是 Linux 又是 网络设备,因此它同时具有两种范例的特征。以下描述了关于升级计划和执行的 Cumulus Linux 范例。
自动化配置优于手动配置
因为 Cumulus Linux 是 Linux,NVIDIA 建议即使是小型网络或测试实验室,网络管理员也应从一开始就跳到使用自动化部署、配置和升级交换机。即使是为了配置少量 Cumulus Linux 设备,在学习编排工具上花费的少量前期时间也会在很长一段时间内获得回报。您在升级过程中获得最大的收益,网络管理员可以以可重复的方式快速升级数十台设备。
您应该像对待 牲畜,而不是宠物 一样对待交换机和服务器。
带外管理值得投资
由于网络设备可以通过前面板端口上的 IP 地址访问,因此许多中小型网络的网络管理员使用 带内 网络来管理他们的交换机。在这种设计中,SSH、SNMP 和控制台服务器连接等管理流量使用与常规网络流量相同的网络 - 管理平面 和 数据平面 之间没有分离。较大的数据中心创建一个单独的 带外 网络,该网络具有完全独立的子网和可达性路径,用于连接到管理端口 - 可以通过 eth0 和串行控制台访问。
在这种情况下,小型公司应该向大公司学习。单独的管理网络不是免费的,但它并不昂贵。使用廉价的 Cumulus RMP 管理交换机、廉价的控制台服务器和单独的线缆路径,如果您遇到网络紧急情况,您可以通过带外网络完全控制多达 48 台设备。
存在许多带内网络可能失败的情况,导致网络管理员等待有人开车到数据中心或远程站点直接连接到配置错误或故障设备的控制台。一次中断的成本通常足以支付对单独网络的投资。为了获得更高的安全性,请在每个机架中连接远程可控配电单元 (PDU) 到管理网络,这样您就可以完全控制远程重启该机架中的每台设备。
但是,如果带外网络不可用于升级,您可以改用 dtach 工具 进行带内升级。
建议并启用新版本的预部署测试
白盒交换机和虚拟化 (Cumulus VX) 降低了网络设备的成本,因此网络管理员在适当规模的实验室拓扑中测试自己的程序、配置、应用程序和网络拓扑的能力变得非常经济实惠。