精华中的精华 20个最基本的虚拟化技巧

原创
云计算 虚拟化
将数百个虚拟化技巧浓缩为20个本身就需要一些技巧,许多技巧从本质上来讲是通用的,每个虚拟化厂商都可以使用它们,但有些技巧只适用于VMware的产品,本文列举的这20个技巧都是通过实践后总结出来的。

将数百个虚拟化技巧浓缩为20个本身就需要一些技巧,许多技巧从本质上来讲是通用的,每个虚拟化厂商都可以使用它们,但有些技巧只适用于VMware的产品,本文列举的这20个技巧都是通过实践后总结出来的。

虚拟化就是将工作负载交由虚拟机完成,关于虚拟化问得最多的问题是虚拟机的性能,因此本文介绍的大部分技巧都与增强虚拟机性能,增强用户体验和减少传统物理系统的问题有关,除此之外,其余的技巧都与大中型环境虚拟化最佳实践有关,虽然那些小型环境也将从这些技巧受益,但只有虚拟机数量增加到50或更多时,这些技巧的优势才会真正体现出来。

1、为一次性系统使用虚拟机(VM)

VM是搭建蜜罐的最佳选择,首先基于模板创建VM,然后实施隔离,这是研究生产系统所受威胁的最好方式,处理病毒或恶意软件时禁用网络接口,让威胁停留在VM内,不影响其它系统(虚拟的或物理的),使用Windows VM时,请关闭系统还原功能,确保文件被修改或破坏后,系统重启时不会自动进行还原。

2、使用VM模板

虚拟机模板允许虚拟化管理员使用标准的操作系统镜像快速部署新的虚拟机,模板相当于黄金镜像,基于模板创建的虚拟机可以继续安装新的补丁,新的虚拟机可以再次转换成模板。

3、VM宿主主机要求

虚拟主机必须使用64位多处理器,为VM准备充足的RAM和磁盘空间,千兆网络接口也是必需的,最好使用多网络接口,为备份和虚拟机通信使用独立的接口,大多数服务器都能满足这些要求,如果使用旧服务器,确保处理器是64位,并且支持多处理器,RAM最小要能扩容到8GB,8GB被认为是构建一个VM宿主主机的最低内存限度。

4、密集配置虚拟磁盘

配置一个新的VM或为VM创建一个新磁盘时,如果虚拟化很重要或磁盘内容经常变化时,使用密集配置,采用静态的方法给虚拟磁盘分配空间,如果你创建一个30GB的虚拟磁盘,它就会占用30GB的存储空间,与密集配置相对的是精简配置,即可以动态扩展虚拟磁盘大小,如果使用精简配置,创建虚拟磁盘时只占用最小空间,然后根据数据增长的需要自动扩大,精简配置可以节省磁盘空间,但性能却不好。因此,使用密集配置还是精简配置的原则是:如果你的虚拟磁盘需要最理想的性能,或数据写入较频繁,建议使用密集配置。

5、分散负担较重的工作负载的磁盘镜像

如果VM遭遇性能问题,应该将它们的磁盘镜像隔离到不同的存储位置,例如,数据库如果和操作系统使用同一个虚拟磁盘就会有问题,数据库数据文件放在同一LUN的第二个磁盘上,日志文件放在同一LUN的第三个磁盘上,将操作系统虚拟磁盘放在不同的LUN上,将日志虚拟磁盘转移到不包含其它操作系统或其它数据文件的LUN上,VM的性能将会显著提高。

6、遵循物理机安全规则

虚拟机并不比物理机安全,因此应该和物理机一样,给虚拟机打补丁,服务包,更新和执行保护,在虚拟环境中,仍然需要防病毒软件,反间谍软件和防火墙,删除或禁用未使用的服务,只允许使用安全的协议进出系统,如果可能,最好使用所有服务的安全版本,如使用SSH,SCP,SFTP和HTTPS代替不安全的Telnet,RCP,FTP和HTTP。

7、尽可能使用SAN存储

大型虚拟化不能没有SAN存储,SAN通过主机总线适配器(HBA),光纤电缆和SAN交换机连接到你的系统,它提供了快速的磁盘访问能力,适合数据库,日志和其它写密集型应用,SCSI磁盘性能比SATA磁盘要好,但价格也更贵,通常会同时使用,但针对不同需求,基于SCSI的SAN和基于SATA的SAN都会优先于本地磁盘存储,因为它们使用双光纤通道配置,可支持多种RAID,可以最大限度避免单点故障。

8、P2V转换和服务可用性

将一个运行中的物理系统转换成虚拟机时,禁用物理系统上的所有服务将会对文件系统的内容产生巨大变化,数据库,主要服务和日志写入文件系统会一直进行,因此虚拟机和物理机会不一致,在转换期间出现差异很正常,但必须保持在最低限度,如果你使用一个可引导盘将物理机转换成虚拟机,物理机的操作系统时静态的,在转换前不需要禁用任何服务,这个方法速度快,效率高,但在转换期间VM将不可用。

9、在VMware ESX/vSphere中,使用VMXNET 2型和3型网络适配器

创建一个新的Windows VM或执行物理到虚拟机转换(P2V)时,新VM的网络接口驱动将显示为Flexible,AMD PCNET或E1000,除非VM的操作系统很老(Windows NT,Windows 2000,Windows 9x),或有其它不得已的理由要使用这些驱动,否则应该将驱动改为VMXNET 2或VMXNET 3,要切换到VMXNET驱动,需要移除现有网络接口,使用新的接口代替,VMXNET 2和VMXNET 3驱动将可以和物理副本匹敌,首先要从VM移除旧的驱动,步骤如下:

(1)打开命令提示符,执行下面的命令

SET DEVMGR_SHOW_NONPRESENT_DEVICES = 1 <ENTER>.

(2)再执行

DEVMGMT.MSC <ENTER>.

(3)点击“查看”*“显示隐藏设备”,向下滚动到“网络适配器”,删除显示为灰色的设备。

10、SAN格式

为你的VM格式化SAN时,使用最大的块大小,以匹配LUN上已经存在的最大虚拟磁盘文件,VMFS-3,VMFS的最新版本,对应Linux ext3文件系统,它们具有相同的功能和限制,VMFS-3单个文件最大大小是2TB,下面是VMware给出的块大小和文件大小对比数据。

文件大小 VMFS块大小

256 GB 1 MB

512 GB 2 MB

1024 GB 4 MB

2048 GB 8 MB

如果块大小没有选择正确,文件系统会限制LUN上单个文件的最大大小,例如,一个300GB虚拟磁盘文件不能存在于块大小为1MB的LUN上,会显示空间不足的错误消息,但事实上空间是足够的,当LUN以正确的块大小格式化后,必须删除数据再重新创建,LUN上的所有数据都将被销毁。

11、模拟物理网络设计虚拟网络

从物理基础设施迁移到虚拟基础设施时,虚拟环境的设计和布局应模仿物理做法,企业级虚拟化软件允许创建虚拟交换机,虚拟局域网(VLANS)和私有网络可以协助迁移,分析物理和逻辑网络图,复制所有通道和通信流。

12、安装虚拟化工具/增强/客户机插件

客户机插件包括提高客户机(VM)性能,鼠标指针集成,显示驱动和客户机到宿主主机的时间同步工具,客户机增强存在于大多数现代操作系统中,这些工具不是必需的,但前端(控制台)VM性能和VM之间的可用性在有和没有客户机增强时是有很大差别的。

13、关闭VM屏保

虚拟机不需要屏幕保护程序,屏幕保护程序会消耗系统资源,因此要么关闭VM的屏保要么直接将它们卸载掉。

14、为宿主主机硬件安装最新的BIOS

定期到制造商网站检查系统BIOS更新,确保宿主主机硬件使用最新的BIOS,一般来说,BIOS更新很少,因此更新BIOS造成的停机时间也很短,BIOS更新一般会提供新功能,如虚拟化支持,支持新的设备和改善性能,但需要注意的是,在更新BIOS前记得用更新工具备份当前的BIOS,不正确的更新或更新失败会导致系统不可用,这时只能清除BIOS然后重装。

15、为服务器到服务器通信创建专用网络

创建一个专用网络用于VM之间的通信,这种通信更快速和安全,对多层应用程序而来这是完美的解决办法,最终用户很少直接访问后端数据库,因此这个方法是隔离数据库的最佳方案。

16、如果可能,使用分区

使用分区提供更好的灵活性和性能,更好地使用资源,分区不需要特殊的硬件,Linux系统需要新的OpenVZ内核开启真实分区,在功能上类似于分区,chroot jails提供了一个更简单,低侵入性的选择,也就是所谓的操作系统级虚拟化,分区隔离用户空间实例,应用程序运行在共享内核环境中,应用程序行为好像它运行在一个专用系统上一样。

17、保持主机系统应用了最新的补丁

确保VM打上最新补丁和更新,大部分虚拟系统的威胁发生在宿主主机一级,黑客的首要目标就是那些未打补丁的宿主主机,因此让你的主机系统保持定期更新很重要,一旦宿主主机遭到入侵,就意味着它托管的VM也赤裸裸地暴露在黑客面前。

18、在发生重大变化之前快照或克隆VM

任何事物总是会不断发生变化的,VM也不例外,但和物理系统比起来,VM在应对变化方面有许多优势,在对VM做出任何重大改变之前,可以通过快照或克隆保存VM当前的状态,在大型环境中不是所有VM都需要这么做,但对那些关键VM,这种方法可以替代标准备份,好处是恢复起来也比标准恢复要快。传统的克隆方法是关闭VM,将包含VM的整个目录简单地复制一份,例如:
# cp -Rp Ubuntu_10.04S Ubuntu_10.04S_Backup

这个命令复制整个Ubuntu_10.04目录及它下面的内容,并保留原始权限,因此可以精确地恢复VM到原始的状态。

19、移除VM时移除VM磁盘镜像

删除不必要的VM时,如果没有删除虚拟磁盘镜像,将会出现很多孤儿虚拟磁盘文件,磁盘空间将会出现混乱,从这里下载一个VMware Powershell脚本定期扫描孤儿虚拟磁盘文件。

20、客户机和宿主主机时间同步

时间同步,时间偏移和网络时间是系统和虚拟管理员最头痛的问题,网络时间协议(NTP)通过第三方独立源解决了系统时间同步问题,客户机和宿主主机同步的方式很多,如安装允许时间同步的客户机插件(点击“安装虚拟化工具*增强*客户机插件”),但同步也可以在客户机操作系统级执行,下面的例子显示了如何执行客户机(Linux)到宿主主机(Xen)同步。

# echo 0 > /proc/sys/xen/independent_wallclock

修改/etc/sysctl.conf文件,添加下面的内容:

xen.independent_wallclock=0

此外,已经安装VMware客户机工具的VMware客户机就具有时间同步选项了。

原文名:20 essential virtualization tips & techniques  作者:Ken Hess

【本文乃51CTO精选译文,转载请注明出处!】

【编辑推荐】

  1. 平常却不普通 VMware架构下集中事件日志的方法
  2. 分享:企业数据中心虚拟化整合经验谈
  3. 似是而非 虚拟化真的是在省钱吗!
     
责任编辑:王勇 来源: 来源:51CTO
相关推荐

2020-07-23 07:27:50

编程学习技术

2014-07-03 16:35:38

WebApp开发技巧总结

2009-07-09 17:47:40

使用JDBC

2020-09-18 07:52:46

Itertools库Python语言

2009-11-24 14:55:00

OSPF

2014-06-10 14:19:52

iOSUIApplicati总结

2019-05-09 09:35:17

Spring Boot技术开发

2010-03-26 14:09:26

CentOS 网络配置

2015-06-17 10:24:47

Android面试

2009-06-18 10:19:00

UML

2020-08-31 08:14:46

Python开发代码

2013-08-21 09:57:50

虚拟化技巧

2013-03-26 10:27:01

JavaScriptjson

2013-08-06 10:46:54

虚拟化网络网络虚拟化

2013-04-01 16:30:36

虚拟化网络数据中心虚拟化

2017-09-15 10:36:17

前端JavaScript面试题

2018-06-22 13:05:02

前端JavaScript引擎

2013-03-28 10:00:44

虚拟化网络集成管理技巧网络运维管理

2013-04-02 09:26:32

服务器虚拟化

2021-01-31 23:56:49

JavaScript开发代码
点赞
收藏

51CTO技术栈公众号