我是 Ezra Tingler,任职于 NetApp 1 类客户存储服务部门。1 类客户存储服务团队负责设计、采购、部署和维护为我们所有内部应用程序提供服务的存储基础架构。该团队由各个服务线所有者组成,每个所有者分别负责特定的存储技术领域。正如预期的那样,我们的存储基础架构基于 NetApp 最新、最炫的技术构建而成。作为 NetApp 技术的一大用户,在展示如何正确利用 NetApp 产品时,1 类客户存储服务团队可以为 NetApp 外部客户提供参照。
在这个团队中,我主管存储生态系统服务线,这意味着我负责存储硬件生命周期管理。我的主要目标是确保我们的存储软件和硬件形成一个稳定可靠、正常运转的存储生态系统,为其他服务线和应用程序提供数据服务。目前,我们团队正在将托管于 NetApp 孤岛式存储(如 7-模式存储)上的所有数据迁移到集群模式存储中。
挑战
作为这个迁移项目的一部分,我一直在安装更多存储节点和集群。当我第一次开始执行此项目时,高可用性 (High Availability, HA) 集群模式控制器对的平均配置时间大约为 4 个小时,断断续续地持续 2 到 3 天。4 个小时不包括配置集群互连交换机或初始化磁盘所需的时间;根据磁盘类型,两者另外需要 2 到 12 个小时。常见的办公中断会额外耗费更多时间,因为我必须弄清中断位置以及还需要进行哪些配置。这种偶发性时间安排会导致无法赶上最后期限以及某些配置不一致的问题。我知道必须寻找更好的办法来开展这个项目。
解决方案
我决定大胆挑战自我,看看能否通过自动执行存储配置过程,达到节省时间和减少错误的目的。虽然我不是一名开发人员,但我发现使用 NetApp 易管理性软件开发工具包 (NetApp Manageability Software Development Kit, NM SDK),可以很轻松地编写配置脚本。在初始化磁盘,完成集群设置并正确配置集群互连交换机之后,我运行了自己编写的脚本。总体来说,该脚本配置了 23 个具体项目:
- 重命名集群节点
- 重命名任何现有接口,使其与新节点名称相匹配
- 集群接口和节点管理接口
- 重命名根聚合,使其与新节点名称相匹配
- 安装许可证
- 配置服务处理器
- 在所有 10G 端口上将流控制设置为无
- 创建广播域并分配适当的端口
- 创建接口组并添加正确的端口
- 创建 VLAN
- 创建故障转移组并分配正确的端口
- 创建备份接口(集群间)
- 创建用户角色
- 创建用户
- 设置 RAID 擦除计划
- 创建聚合
- 在所有聚合上禁用聚合快照
- 创建对等集群
- 配置 NTP
- 配置 SNMP
- 配置 CDP
- 配置 Web 服务
- 配置 AutoSupport
当脚本运行时,它会从我创建的一个文件中读取预定义的配置信息,并将这些配置应用于集群节点。在运行脚本前,我唯一需要做的事情就是用节点名称、IP 地址和密码密钥等独有信息编辑该配置文件。
使用此脚本后,结果让我大为惊讶。过去需要 4 个小时才能完成的任务现在只需大约 5 分钟。使用配置脚本,我现在安装 24 个存储节点只需 2 个小时而非 96 个小时,节省了 94 个小时或 2? 个工作周的时间。还避免了因中断而导致的错误,而且自动执行此过程让我有更多时间来处理其他项目。
如果您是一名存储管理员,您可以使用 SDK 非常轻松地创建自己的配置脚本。我使用了 SDK 中名为 Z-Explorer 的附带工具,它包含用于集群的所有 ZAPI 调用的完整列表。利用 Z-Explorer ,大多数开发工作都无需您亲自操刀。我只花费了几周时间,就完全实现了集群存储的自动化构建。这篇知识库文章可以帮助您快速入门。
这是一个有趣的项目,因为我在编写脚本时,完全没有那种自己必须先成为一名开发人员的感受。虽然我是用 Perl 语言编写的脚本,但 SDK 几乎支持您熟悉的任何语言。我还利用 SDK 在线论坛向他人征求建议。这个论坛上的用户总是能够快速地为我指点迷津。
未来
我现在利用 SDK 自动执行并简化其他存储任务,以达到节省时间和减少错误的目的。我的下一个项目是质量保证 (Quality Assurance, QA) 脚本,主要作用是登录到集群并验证是否按照 NetApp IT 标准和 NetApp 最佳实践准则正确配置了节点。我计划以同样的方式自动执行集群互连交换机配置,并创建一个 E 系列配置脚本。
如果您有兴趣了解这些实际脚本,我正在准备将它们发布到 github.com 上。您可以在此处进行查找。今后,当可以通过 URL 访问这些脚本时,我一定会在 TechOnTap 新闻简报中及时公布。我还将录制即将推出的 Tech OnTap 播客,与业内其他主题专家进一步讨论我的自动化过程。
Ezra Tingler 是 NetApp 的高级存储工程师,他拥有 20 多年的存储管理和 UNIX 系统经验。