在虚拟主机和虚拟机上运行反病毒扫描是应该做的事情。不在于反病毒扫描是否提供了有价值的防护,而是由于反病毒程序严重影响了系统的性能。幸运的是,你可以优化反病毒程序来减少它消耗的主机资源。本文中,作者Rob McShinsky介绍反病毒软件作用于主机和虚拟机的关键点。上文介绍了对虚拟主机反病毒扫描的考虑,下面看看虚拟方面的考虑。
对虚拟机反病毒扫描的考虑
对于任何虚拟主机,在虚拟机上运行反病毒的架构都是一个很大的缺陷。反病毒程序同时在多个虚拟机上进行扫描,有使主机资源池用尽的可能。
在你部署反病毒产品到虚拟机之前,权衡以下的考虑:
◇ 扫描时间。按计划的反病毒扫描也会影响主机资源的饱和。如果很少量的虚拟机运行很占用CPU的扫描是可以的。但是假如在一台拥有8个CPU核心的主机中,当20台虚拟机同时使用它们50%的CPU,问题就会出现。在我的经验中,20台虚拟机最高的CPU使用只出现在反病毒扫描中。很明显,反病毒厂商必须允许用户随机扫描的时间来减小主机CPU饱和的可能。
◇ 其它的扫描。按访问扫描和快速扫描同样很耗费资源。通常,对于完全扫描有具体的排除项设置和可供调整的地方。但是对这类扫描只有很少或者没有可调整的设置。类似于完全扫描,按访问扫描应该具有调整例如排除项这类设置的能力。另一面,快速扫描有时在一个新的病毒库到达后开始。我曾经使用过一款反病毒程序,当我对完全扫描和按访问扫描都进行调整后,只有快速扫描严重拖慢了主机服务器。这种情况下,我被迫通过修改每台主机的注册表来禁止快速扫描。因此,当挑选反病毒软件的时候,要注意这些扫描的选项。
◇ 程序以及病毒库升级。一款好的反病毒软件允许用户选择自动或者手动升级。病毒库升级同样应该允许随机分布。你也许需要立刻升级你的病毒库。所以反病毒软件的设计需要灵活。
当你已经应用了反病毒软件,下面是优化它在虚拟机中性能的方法。
◇ 内存。这里是反病毒软件的战场。越低的内存使用对虚拟机也越好。如果缺少有效的动态内存分布,一切额外的分配给虚拟机们的内存都会降低总体的虚拟机对主机的比例,并且减少虚拟坏境的开销节省。
◇ CPU。同样,越低的CPU使用越好。不论对虚拟还是实体的系统都是如此。但是由于是在一个共享的主机资源环境中,对虚拟机额外的CPU使用是非常严重的。寻找那些能够设置CPU最大使用率或扫描进程优先级的反病毒厂商。比如,一个使用滑动条来调整CPU使用的厂商。
◇ Disk I/O。显然,文件扫描增加磁盘I/O。与增加的CPU和内存使用相结合,当多个虚拟机扫描他们的文件时,一个磁盘子系统的资源会被备受压力。随机反病毒扫描,加上合适的排除项,可以保证最小化磁盘资源饱和。
在共享资源的环境中,即使很小的虚拟机资源增加也会极大的影响到主机。有些问题已经在物理服务器中经历了很多年了。但是这些问题在例如虚拟主机服务器这种共享资源环境中会成级的放大。
添加反病毒软件来增强虚拟环境的安全不应该以牺牲性能为代价。但是反病毒产品需要进一步的创新来适应虚拟化和云架构。