use*_*391 3 zfs active-directory database nfs vmware-esxi
在集成的一体化 ESXi/ZFS 存储服务器上,其中存储 VM 使用裸机磁盘并通过 NFS(或 iSCSI)将文件系统导出回 ESXi,后者将其用作其他 VM 的池存储,存在更新存储虚拟机时会出现问题,因为许多正在运行的虚拟机依赖于它,并且会因NFS.AllPathsDown或类似原因而超时,这等于从普通服务器中拉出驱动器而不将其关闭。
当然,可以关闭所有 VM,但这会变得非常耗时且乏味(或必须编写脚本)。将 VM 移动到另一台主机可能是可能的,但需要更长的时间,并且在较小的设置中可能无法实现,其中一台机器就足够了。暂停虚拟机可以工作,但也很慢(有时比关闭慢)。
kill -STOP [pid]找到它后ps -c | grep -v grep | grep [vmname],执行存储 VM 的升级/重新启动,然后使用 继续执行 VM 进程kill -CONT [pid]。reboot -f或在 Linux 上可用)的组合,kexec-reboot这需要几秒钟而不是几分钟,以及 ESXi 中的 NFS 超时(在 NFS 连接丢失时,所有 I/O 都被暂停,我认为120 秒,直到假定存储永久关闭)。如果重新引导时间在 ESXi NFS 窗口内,理论上它应该类似于磁盘由于纠错而在一分钟内没有响应,然后恢复正常操作。现在,我的问题是:
收到前两个答案后,我想我的问题措辞不够清楚,或者为了简洁起见遗漏了太多信息。我知道以下几点:
我的建议是完全避免这个问题。您提到增加的成本和完整的重新架构是阻碍因素,但在这种情况下,您可以考虑在双节点故障转移集群中的主机上安装两个存储虚拟机。这将允许您修补其中之一(但不能同时修补两者),而不会影响集群提供的 NFS 或 iSCSI 的可用性。它仍然不是受支持的解决方案,但它至少允许在维护方面具有一定的灵活性,但代价是增加存储资源开销(主要是您为第二个存储虚拟机提供了多少内存)。
如果改变架构是完全不可接受的,那么最安全的选择是关闭虚拟机。
次佳的解决方案是在您的虚拟机中启用休眠。休眠将确保所有文件系统都处于静止状态,有助于避免可能的损坏。
接下来,您可以使用内存状态拍摄 VM 的快照,强制终止 VM 的进程,然后在完成后恢复到快照。这会导致一小段可能丢失数据的窗口,但我相信您永远不会在维护窗口之外尝试此操作,因为任何数据丢失都是不可接受的,因此这应该是无关紧要的。此解决方案与制作快照一样快,可确保 VM 不会抱怨丢失的磁盘,但会导致潜在的数据丢失。
最后,如果您想暂停进程(并已测试它确实有效),那么我强烈建议您首先同步来宾中的所有磁盘(在 Linux 中,这将使用 /bin/sync 完成。提供的实用程序由 SysInternals for Windows 提供:http : //technet.microsoft.com/en-us/sysinternals/bb897438.aspx),并快速执行维护,以免时钟设置得太远。
至于潜在的副作用,任何连接 AD 的机器都必须(默认)在 DC 时间的 5 分钟内。因此,在除正常关闭之外 VM 无法持续可用的任何解决方案之后,我建议您强制恢复的来宾更新其时钟。在数据库服务器上,当服务器繁忙时不要做这些事情,因为这会增加文件系统损坏的机会。
除了正常关闭或高可用性存储之外,所有选项的主要风险是损坏。缓冲区中可能会有一些 I/O 被丢弃,应用程序可能会错误地认为这些 I/O 已成功完成。更糟糕的是,I/O 可能已被下层重新排序以获得更优化的写入模式。这可能允许数据被部分乱序写入。也许在写入 DB 行的数据之前增加了行计数,或者在物理更改校验和数据之前更新了校验和。这可以通过只允许同步写入您的存储来缓解,但以性能为代价。
- 哪种方法更可取,或者它们同样好/坏?
两者都不。
这是糟糕设计的代价,我不会通过关闭虚拟机、处理存储虚拟机然后重新启动其他虚拟机之外的任何其他方式使这种情况变得更糟。我还会让某人使用受支持/可支持的架构重新设计您的设置。
- 在数据库、Active Directory 控制器、用户运行作业的机器等特殊情况下,有哪些意想不到的副作用?
它本质上是不可预测的,如果你再次这样做,这次可能发生的事情可能不会发生。这是无法支持的。
- 应该注意哪里?链接博客上的评论提到,例如,当 CPU 冻结时可能会出现计时问题。
很难建设性地回答这个问题。
| 归档时间: |
|
| 查看次数: |
1203 次 |
| 最近记录: |