分类: LINUX
2010-08-03 14:37:37
虚拟化技术的优点无数,节省成本、节约能源、便于管理、易于维护等等都是众所周知。射手科技的开发和办公环境需求,基于开源Xen的企业化版本,实践了一套完整的生产用虚拟化环境。
需求整理
射手科技开发环境需要配置的服务器包括且不限于:版本管理、文件共享、开发测试、模拟生产环境、域控制、VPN服务器等。同时为了配合灵活工时制度,需要一个可以远程登录的开发环境系统阵列。
对于没有虚拟化技术的年代,可能需要十多台服务器和专人维护才能满足这些需求。但是基于虚拟化技术,可以将所有这些需求集中在2-3台服务器来完成。
选型
企业化虚拟环境,除了最出名的VMWare之外就是Xen。但是VMWare的企业版(ESX)价格昂贵,对硬件要求也高。而Xen则有免费版,非常适合射手这种创业型企业。所以我决定尝试一下Xen系列的企业化产品。
方案
Xen系列的产品线也不少,特别分为开源和商业化版本。经过比较,商业化版本的XenServer因为包含XenCenter这GUI的管理工具,更容易
管理。且它的免费版本已经包括了所有我所需要的功能,所以我选择了XenServer+XenCenter+XenDesktop的配置方案。
具体的方案配置如上图。2台服务器均通过网络采购配件DIY。XenServer使用4核处理器和SSD硬盘。文件服务器使用5块1.5T
SATA硬盘,其中2块组RAID1,另外3块组RAID5,以保证文件系统安全。之间使用千兆交换机互联,实测使用网络存储的瓶颈已不在网络而在硬盘
IO,所以性能上并不比原方案低,但是容灾、安全、管理和扩展性等各个方面都更加方便。
波折
万事开头难,期间也有不少意外的波折:
*
因为XenServer基于Linux,所以原计划将存储和文件共享一并做成RAID,与XenServer使用同一台设备,这样只需要配置1台服务器。
但是最终我发现所有家用/商用级主板自带的RAID均不能被XenServer识别。经过资料检索发现,家用/商用主板自带RAID均属于
FakeRaid,就是说所谓主板自带的RAID其实仅是存储了一些配置信息,真正的RAID分配读写操作均需操作系统的驱动来完成。而
XenServer是没有这种驱动的(对应的开源版本Xen Cloud
Platform也有同样问题)。好在XenServer的设计可以将虚拟硬盘通过nfs存储在远程文件服务器上。便少许追加预算,另外配置一台基于
Centos的Raid1+Raid5的NFS服务器,兼做samba文件共享存储。同时因为将存储和运算设备分离,容灾性能也可以更好。
虚拟池
XenServer的管理有一个最大的优点,就是虚拟池技术(Pool)。简单的说,就是每台Guest虚拟机,并不一定只能在一台XenServer上
运行。你可以将多台XenServer配置为一组虚拟池。而Guest虚拟机可以在多台XenServer之间迁移甚至按需分配。而我将文件存储与
XenServer分离的方案更加方便了这种池内的迁移。这个好处不仅提高了运算资源的利用率,在维护上也更加方便(硬件维护升级可以做到几乎无缝迁
移),而且降低了设备灾难带来的风险。
XenDesktop
Xen系列产品中还有个有趣的XenDesktop,根据官网介绍,使用XenDesktop可以高效的远程登录虚拟机上的桌面环境,同时因为是在虚拟服
务器上,非常方便阵列管理。对于射手科技来说,意味着可以配置一台开发环境后,迅速克隆多台。之后可以在任一地点登录到该虚拟环境立刻开始进行工作。且
XenDesktop的免费版允许10个用户,非常适合射手科技目前的规模。听上去真是非常美好,所以好奇的我也忍不住动手一试。
不过实际使用的结果并不理想。XenDesktop的配置很大程度上依赖Win的域控制。对于常见的企业环境来说,可能是可以非常快的融入。但对于不熟悉
Windows域控管理的我,则是非常痛苦。尽管Xen的企业官网提供了配置向导视频,但缺乏方案上的指导,让我还是感到困难重重:
* 不要听视频中的鬼话,Domain Controller 和 Desktop Delivery Controller 别放在同一台虚拟服务器
* Domain Controller 和 Desktop Delivery Controller 不能Clone,域内不能有2台SID完全相同的设备。所以各自都重头安装才好。
* 每个XenDesktop的远程连接都需要一套虚拟环境资源(这一点在介绍视频中语嫣不详)。所以建议还是使用XP环境为主,因为Win7
x64需要最低2G内存才能运行,一台8G RAM的XenServer最多也只能跑3个桌面了(要留给XenServer系统一点)。
* 免费的产品版本中似乎还不能做到配置1台Guest Desktop即可完成部署的程度。配置好后需要逐台Clone。如果谁有更高效的管理和部署经验,还请指导。
迁移
人生难免留下一些之前VMWare上的虚拟机,迁移到XenServer可不算是一件容易的事情。甚至可以说是最大的一个麻烦。这个问题上我尝试多次,也没有找到可以称为最好的方法。只是一些积累的经验分享出来以免更多的人犯同样的错误。
*
最好的格式转换工具应该是VMWare自带的导入、导出工具,而不是XenConverter。VMWare为了便于虚拟机在多个产品之间迁移,大部分产
品都可以导出到ovf(一个开放标准的虚拟机配置及存储格式)。例如
。但是这个导出有一些先决条件,如果条件没有满足,就不会出现可以导出到ovf的选项,也没有明显提示。
* 一篇详细的迁移参考
* VMWare的虚拟机最好是单硬盘的。如果不是,最好想办法合并一下。
* VMWare的虚拟机硬盘千万不要“按2G大小分割”,其结果就是不能导出到ovf。如果木已成舟,可以用VMWare自带的 vmdisk-manager 命令行先转换为单文件存储。
* 迁移前移除VMWare-Tool,比迁移后移除方便。
* 能不迁移就不迁移(难以预料的问题太多)
后记
使用虚拟化产品部署后,整个服务器环境成本大幅下降:
XenServer配置:AMD 4核+8G内存+SSD 约3000元
文件服务器配置: 最低端的CPU+1G内存+5x 1.5T硬盘 约5千元
总成本控制在1万元内,却完成了原本需要超过10台硬件设备才能完成的功能。同时非常易于维护,并因为硬件设备的减少,能耗也大幅降低。
Tips
* Xen企业产品的官网提供了很多详细指导视频,建议先进行直观的了解。部分教程可以下载回来,协助配置。
* XenServer的免费版也是需要注册激活的,不收钱,但是也别忘记了。
* 如果需要安装GUI的Centos,不要选默认的Centos模板,要选择”Other Install Media”才能识别显卡
* 个人观点:lvm是非常不适合虚拟机环境的文件系统。难以迁移和管理,硬件变化对lvm的影响可能是灾难的。我很迷惑为什么现在的Linux都要以lvm为默认的文件系统。