如果我打算升级服务器应用程序,那么获取网络访问权限并同时避免网络名称重复或其他副作用的好方法是什么?
我当前要尝试的流程包括以下内容:
- 关闭原始虚拟机(调用它
SRV
) - 克隆虚拟机(称之为
TMP
) - 重新启动
SRV
(以便恢复服务) - 重新配置
TMP
,使网络适配器隔离(断开连接,或在测试网络上) - 打开
TMP
- 连接到
TMP
(例如,如果没有网络,则从 vSphere 控制台连接) - 升级软件
TMP
- 关闭
TMP
- 重新配置
TMP
以使网络适配器再次处于活动状态 - 关闭
SRV
- 充电
TMP
- 将虚拟机重命名
SRV
为OLD
- 将虚拟机重命名
TMP
为SRV
SRV
这假设在切换期间没有收集任何需要的数据。如果有(例如日志数据),那么这可能不是正确的做法
如果我希望服务器在第 5 步之后连接到网络上,这是我唯一的选择
- 运行
sysprep
它并给它一个新的 SID - 重命名
SERVER-TMP
- 将 IP 更改为未使用的地址
然后,当准备上线时:
- 从域中删除旧服务器
- 重命名
SERVER-TMP
为SERVER
- 将 IP 更改为生产 IP
答案1
这样可以减少停机时间,但工作量似乎很大,而且可能会丢失数据。此外,一些应用程序将其许可与服务器名称、IP 或 MAC 地址绑定在一起,这可能会受到影响(克隆虚拟机会为其提供新的 MAC 地址)。错误的主机名也可能会搞乱应用程序(具有虚拟主机的 Web 服务)。
尝试此类操作的最佳方法是拥有一个 VLAN,您可以在执行更新时在其上运行 TMP VM。然后,当您完成所有操作后,您将关闭实时 VM 并切换 TMP 服务器上的网络。这样做的缺点是您可能需要在此 VLAN 中拥有额外的重复服务器(域控制器、DNS 等)。
我们通常遵循的更新流程如下:
- 安排服务中断
- 拍摄虚拟机快照
- 安装更新
- 验证一切是否正常工作(我通常等待两个工作日)。
- 删除快照(快照存在性能问题,因此您需要删除它们)