基于VMware的虚拟机资源池实现(下)-运营资源池
现在我们得到了一个可用的虚拟机资源池,但是还有对于企业内部运营模式,还有几个关键特征没有实现:流程化、自动化、可计量。现在提供的是我自己写的虚拟机资源池管理工具,个人认为对于企业来讲,这些工具比那些IaaS系统靠谱多了,一个基本的道理是:如果你的企业只有几千台或者一万台虚拟机,用一个庞大的商业或开源系统去做统计分析,还不如用Excel,主数据只有几千条的系统,存在的意义实在不大。这里面的东西都是个
·
现在我们得到了一个可用的虚拟机资源池,但是还有对于企业内部运营模式,还有几个关键特征没有实现:流程化、自动化、可计量。现在提供的是我自己写的虚拟机资源池管理工具,个人认为对于企业来讲,这些工具比那些IaaS系统靠谱多了,一个基本的道理是:如果你的企业只有几千台或者一万台虚拟机,用一个庞大的商业或开源系统去做统计分析,还不如用Excel,主数据只有几千条的系统,存在的意义实在不大。这里面的东西都是个人的开发行为,所以理解和部署起来肯定不如上一篇里的专业厂商提供的系统那么直观,欢迎Email。
1 流程化
流程化的部分实在是没有必要单独定制系统,完全可以利用企业内部已有的ITIL或办公自动化或配置管理类系统,使用其中的工单,对输入进行标准化要求即可。那些巨大的厂商们提供的IaaS系统实在没太多意义,关于这些IaaS产品的比较,我回头另写一篇博客单独说。
标准化的输入可以就是作为流程附件的一个excel文件,至于应该标准输入的格式,我会在第2部分自动化时一并介绍。
2 自动化
自动化的基础由VMware虚拟机模板(含模板内的初始化脚本)、虚拟机管理Excel文件里的VBS程序、VBS调用的VMware PowerCLI脚本构成。这套工具一直是实际应用场景中支持到近2000台虚拟机,后来为了追求高大上和业绩,我自己推翻更换成了BMC CLM,后悔啊。。。当然,我始终还是认为,虽然这些IaaS产品都比较垃圾,但是CLM已经是其中最出色的一个了。
这个自动化过程的逻辑如下:用户通过流程系统申请资源,申请中应该包括一个指定格式的Excel附件,审批流程通过后,管理员根据用户的输入,在管理虚拟机excel(此excel中的基础管理信息需要由管理员预先输入好)中输入必要的信息(如果用户比较专业,其实就是copy过来),点击excel中的自定义按钮,执行VBS程序,读取用户输入,接受管理员指定的资源池选择信息,执行对应的VMware PowerCLI脚本,通过VC去从虚拟机模板(这些模板需要事先部署完毕,并在OS内的固定位置放置脚本)部署虚拟机,然后执行这个虚拟机内预先制定的脚本,进行配置(主要是网络相关信息,IP、DNS、主机名),然后在VC中进行权限设置(让申请的LDAP或AD域用户能够通过vSphere Client管理其虚拟机),更新其备注信息,最后将此虚拟机的信息和常用磁盘管理命令发送邮件给申请人。
2.1 环境
这套工具的运行环境最好只干这个,所以可以在虚拟机资源池创建一台小虚拟机(我的是2c4g40g,win2k3 r2)当然windows要求Excel(我使用的是2007)、还有VMware的PowerCLI客户端(安装这个客户端会要求一些windows的补丁,时间长我有点忘记具体的号了,总之windows安装,它要什么你就补什么就行了)。共享了一个5.1和5.8的安装包,5.1是用过的版本,5.8是最新的。
2.2 VC的LDAP或AD集成
上一篇就说过,这个配置我会单独写一篇,这里就假定我们已经得到了
2.3 模板安装
这套工具理论上支持任何操作系统,实际管理过的目标OS包括win2k3 r2 32bit&64bit,win2k8 r2 32bit&64bit,RHEL 4.8 32bit&64bit,RHEL 5.4 32bit&64bit,RHEL 5.5 64bit,RHEL 6.3 64bit。安装模板的过程就是创建个虚拟机,安装上需要的操作系统,windows的话要激活,然后配置好企业补丁服务器,防病毒客户端,时间服务器(如上篇所说,关于时间服务我会单独写一篇博客介绍),共享了windows和linux安装盘,一个w2k8 r2 64bit的安装包和破解工具,以及一个rhel 6.3 64bit的安装包。操作系统安装我就不在这里废话了。
安装模板后,需要在其中植入创建虚拟机后的配置脚本,脚本的工作是设置主机名、IP、DNS、启动linux的vnc服务。脚本和工具都在前文下载的iaastools.zip里:
2.5 虚拟机自动化管理程序
这部分程序也包含在iaastools.zip里,首先要根据sheet虚拟机管理里的描述填写管理的基本信息,然后通过点击刷新资源信息按钮,执行宏refresh_vc_info,去VC里刷新出模板名称列表、esx列表、端口组列表、datastore列表。
然后就可以使用后面的sheet页去创建和删除虚拟机了,每个sheet里创建的虚拟机应使用同样的子网掩码、网关和dns配置,这些配置在t6开始的单元格出开始设置,在mask、gateway、dns1和dns2后的u6、u7、u8、u9单元格输入相应信息即可。新的子网只需要复制一个sheet页出来即可。
创建虚拟机,只需要在行上填写IP(虚拟机将使用的IP)、应用系统(会写到虚拟机的备注)、用途(会写到虚拟机的备注)、管理人(填写邮箱前缀,会给这个邮箱发邮件)、主机名、cpu个数、内存g数、磁盘g数(除操作系统之外的磁盘大小)即可,这些也就是为了自动化要求申请者在流程系统里提供的信息,为了统计原因,还应该要求其填写成本中心和对应分摊比例,为了管理目的,还应要求其填写资源使用时长。点击创建虚拟机,将弹出下面的对话框(这个图得截一下,不然不好说明),选择使用的模板、虚拟机所在esx、使用的端口组、使用数据存储,勾选是否精简置备。点击创建,创建过程可以在vc的任务里看到执行的任务。完成后,确认提示框,虚拟机的名称、esx、端口组、数据存储、精简置备将被回写到对应的行。如果创建多个虚拟机,每次点选一行,点击创建虚拟机按钮,然后操作下一个即可。这里创建的虚拟机的名称(也就是显示在VC中的名称)自动由下划线连接的三个部分组成:IP(格式化为4组3位数字,每组上不足三位的前面加0补齐,主要是为了排序),主机名,申请人邮箱前缀。
删除虚拟机只要选中该虚拟机的行,然后点击删除虚拟机按钮即可,这个可一定要慎重,删了就真没了啊。。。
2.6 PowerCLI脚本
真正去执行虚拟机创建设置删除、邮件发送工作的是几个PowerShell脚本,脚本里有详细的注释,这里不在赘述,请参见iaastools.zip里的几个ps1脚本文件。
3 可计量
私有云IaaS供应商通常会在这里做很多文章,什么容量预测、成本分析之类的,但是想象一下,如果主数据只有几千条,用excel啥分析做不了?这部分将延续自动化部分使用的Excel,附加定时任务运行PowerCLI脚本获取VC内的全部虚拟机信息(有些虚拟机可能不是自动化工具生成的,比如导入的ova,用converter转化来的物理机或其他虚拟机),关于converter的使用我会另外写一篇博客。然后以定时任务获取的虚拟机信息为准,附件自动化工具的excel,生成统计分析的原始数据,剩下的,只要你会用excel做公式,加上点儿单价之类的元数据,想统计啥就统计啥吧。请相信实际经验,工作中(向财务提供成本分摊报表,向领导提供扩容预测),这远比那些大IaaS系统提供的统计分析管用。这里提供的powershell脚本(就在iaastools.zip里)完成了信息的收集工作,对照虚拟机管理.xlsm里的信息,通过公式,你可以完成全部需要的统计分析工作。
有了上面的系统,一个自动化/流程化/可计量的虚拟机资源池就做好可,对于大多数企业来讲,IaaS云计算也就做完了,但是云计算的实质还有大的多,至少没有其他基础设施(物理服务器、存储)和云运营模式,始终停留的还是虚拟化基础设施而已,在这些内容上,大IaaS供应商确实能够提供一定的价值。关于这些,我会分别写博客介绍自己的经验教训(云运营模式实例、IaaS产品比较)。
顺便说一句,除了硬件成本,这个解决方案是不需要花一毛钱买任何软件的(当然VMware就是d版的了),企业解决方案基本是没法接受这样解决方案的,第一不花钱没绩效,第二不花钱出事儿了没人背黑锅。不过,对于真的实际想做点儿事儿的人,在你的企业内部先用这个方案开路测试,然后再把其中的VMware正版化(其实也就是购买一部分授权,你过得去,他也过得去就行了),你就拥有云了。比较讨巧的办法是用这个方案把池的规模做上去(这还是要花点儿时间的,扩容硬件,增加用户,积累运维经验),然后立个项做IaaS云,其实就是采购VMware并顺便把硬件资源扩扩容,然后2个月内交付给你的老板,看,云呐。。。(不要问我是如何知道这个办法的:))
1 流程化
流程化的部分实在是没有必要单独定制系统,完全可以利用企业内部已有的ITIL或办公自动化或配置管理类系统,使用其中的工单,对输入进行标准化要求即可。那些巨大的厂商们提供的IaaS系统实在没太多意义,关于这些IaaS产品的比较,我回头另写一篇博客单独说。
标准化的输入可以就是作为流程附件的一个excel文件,至于应该标准输入的格式,我会在第2部分自动化时一并介绍。
2 自动化
自动化的基础由VMware虚拟机模板(含模板内的初始化脚本)、虚拟机管理Excel文件里的VBS程序、VBS调用的VMware PowerCLI脚本构成。这套工具一直是实际应用场景中支持到近2000台虚拟机,后来为了追求高大上和业绩,我自己推翻更换成了BMC CLM,后悔啊。。。当然,我始终还是认为,虽然这些IaaS产品都比较垃圾,但是CLM已经是其中最出色的一个了。
这个自动化过程的逻辑如下:用户通过流程系统申请资源,申请中应该包括一个指定格式的Excel附件,审批流程通过后,管理员根据用户的输入,在管理虚拟机excel(此excel中的基础管理信息需要由管理员预先输入好)中输入必要的信息(如果用户比较专业,其实就是copy过来),点击excel中的自定义按钮,执行VBS程序,读取用户输入,接受管理员指定的资源池选择信息,执行对应的VMware PowerCLI脚本,通过VC去从虚拟机模板(这些模板需要事先部署完毕,并在OS内的固定位置放置脚本)部署虚拟机,然后执行这个虚拟机内预先制定的脚本,进行配置(主要是网络相关信息,IP、DNS、主机名),然后在VC中进行权限设置(让申请的LDAP或AD域用户能够通过vSphere Client管理其虚拟机),更新其备注信息,最后将此虚拟机的信息和常用磁盘管理命令发送邮件给申请人。
2.1 环境
这套工具的运行环境最好只干这个,所以可以在虚拟机资源池创建一台小虚拟机(我的是2c4g40g,win2k3 r2)当然windows要求Excel(我使用的是2007)、还有VMware的PowerCLI客户端(安装这个客户端会要求一些windows的补丁,时间长我有点忘记具体的号了,总之windows安装,它要什么你就补什么就行了)。共享了一个5.1和5.8的安装包,5.1是用过的版本,5.8是最新的。
2.2 VC的LDAP或AD集成
上一篇就说过,这个配置我会单独写一篇,这里就假定我们已经得到了
2.3 模板安装
这套工具理论上支持任何操作系统,实际管理过的目标OS包括win2k3 r2 32bit&64bit,win2k8 r2 32bit&64bit,RHEL 4.8 32bit&64bit,RHEL 5.4 32bit&64bit,RHEL 5.5 64bit,RHEL 6.3 64bit。安装模板的过程就是创建个虚拟机,安装上需要的操作系统,windows的话要激活,然后配置好企业补丁服务器,防病毒客户端,时间服务器(如上篇所说,关于时间服务我会单独写一篇博客介绍),共享了windows和linux安装盘,一个w2k8 r2 64bit的安装包和破解工具,以及一个rhel 6.3 64bit的安装包。操作系统安装我就不在这里废话了。
- w2k8 r2 64bit安装盘:Windows Server 2008 R2 企业版 x64.iso
- w2k8 r2 64bit激活工具:Win7一键激活工具(Windows Loader) v2.2.1 绿色免费版 TTRAR.Com.rar
- VMware PowerCLI客户端5.8安装包:VMware-PowerCLI-5.8.0-2057893.exe
- VMware PowerCLI客户端5.1安装包:VMware-PowerCLI-5.1.0-793510.exe
- rhel 6.3 64bit安装包:rhel-server-6.3-x86_64-dvd.iso
- 自动化工具的所有程序和工具:iaastools.zip
安装模板后,需要在其中植入创建虚拟机后的配置脚本,脚本的工作是设置主机名、IP、DNS、启动linux的vnc服务。脚本和工具都在前文下载的iaastools.zip里:
- 更新克隆出来的虚拟机的sid的程序,需要放到windows模板的c:\template-tools\路径下:newsid.exe
- 第三方时间同步客户端,需要放到windows模板的c:\template-tools\路径下:NTPClock.exe
- 设置windows虚拟机的网络信息的脚本,需要放到windows模板的c:\template-tools\路径下:setnetwork.vbs
- 设置linux虚拟机的网络信息的脚本,需要放到linux模板的/root/template-tools/路径下:setnetwork.sh
- 管理虚拟机自动化和信息的excel文件,含vbs程序:虚拟机管理工具.xlsm
- 创建虚拟机的PowerCLI脚本,由VBS程序调用:CreateVM.ps1
- 删除虚拟机的PowerCLI脚本,由VBS程序调用:removevm.ps1
- 读取全部虚拟机信息的PowerCLI脚本,由windows计划任务调用:vctonmsjob.ps1
2.5 虚拟机自动化管理程序
这部分程序也包含在iaastools.zip里,首先要根据sheet虚拟机管理里的描述填写管理的基本信息,然后通过点击刷新资源信息按钮,执行宏refresh_vc_info,去VC里刷新出模板名称列表、esx列表、端口组列表、datastore列表。
然后就可以使用后面的sheet页去创建和删除虚拟机了,每个sheet里创建的虚拟机应使用同样的子网掩码、网关和dns配置,这些配置在t6开始的单元格出开始设置,在mask、gateway、dns1和dns2后的u6、u7、u8、u9单元格输入相应信息即可。新的子网只需要复制一个sheet页出来即可。
创建虚拟机,只需要在行上填写IP(虚拟机将使用的IP)、应用系统(会写到虚拟机的备注)、用途(会写到虚拟机的备注)、管理人(填写邮箱前缀,会给这个邮箱发邮件)、主机名、cpu个数、内存g数、磁盘g数(除操作系统之外的磁盘大小)即可,这些也就是为了自动化要求申请者在流程系统里提供的信息,为了统计原因,还应该要求其填写成本中心和对应分摊比例,为了管理目的,还应要求其填写资源使用时长。点击创建虚拟机,将弹出下面的对话框(这个图得截一下,不然不好说明),选择使用的模板、虚拟机所在esx、使用的端口组、使用数据存储,勾选是否精简置备。点击创建,创建过程可以在vc的任务里看到执行的任务。完成后,确认提示框,虚拟机的名称、esx、端口组、数据存储、精简置备将被回写到对应的行。如果创建多个虚拟机,每次点选一行,点击创建虚拟机按钮,然后操作下一个即可。这里创建的虚拟机的名称(也就是显示在VC中的名称)自动由下划线连接的三个部分组成:IP(格式化为4组3位数字,每组上不足三位的前面加0补齐,主要是为了排序),主机名,申请人邮箱前缀。
删除虚拟机只要选中该虚拟机的行,然后点击删除虚拟机按钮即可,这个可一定要慎重,删了就真没了啊。。。
2.6 PowerCLI脚本
真正去执行虚拟机创建设置删除、邮件发送工作的是几个PowerShell脚本,脚本里有详细的注释,这里不在赘述,请参见iaastools.zip里的几个ps1脚本文件。
3 可计量
私有云IaaS供应商通常会在这里做很多文章,什么容量预测、成本分析之类的,但是想象一下,如果主数据只有几千条,用excel啥分析做不了?这部分将延续自动化部分使用的Excel,附加定时任务运行PowerCLI脚本获取VC内的全部虚拟机信息(有些虚拟机可能不是自动化工具生成的,比如导入的ova,用converter转化来的物理机或其他虚拟机),关于converter的使用我会另外写一篇博客。然后以定时任务获取的虚拟机信息为准,附件自动化工具的excel,生成统计分析的原始数据,剩下的,只要你会用excel做公式,加上点儿单价之类的元数据,想统计啥就统计啥吧。请相信实际经验,工作中(向财务提供成本分摊报表,向领导提供扩容预测),这远比那些大IaaS系统提供的统计分析管用。这里提供的powershell脚本(就在iaastools.zip里)完成了信息的收集工作,对照虚拟机管理.xlsm里的信息,通过公式,你可以完成全部需要的统计分析工作。
有了上面的系统,一个自动化/流程化/可计量的虚拟机资源池就做好可,对于大多数企业来讲,IaaS云计算也就做完了,但是云计算的实质还有大的多,至少没有其他基础设施(物理服务器、存储)和云运营模式,始终停留的还是虚拟化基础设施而已,在这些内容上,大IaaS供应商确实能够提供一定的价值。关于这些,我会分别写博客介绍自己的经验教训(云运营模式实例、IaaS产品比较)。
顺便说一句,除了硬件成本,这个解决方案是不需要花一毛钱买任何软件的(当然VMware就是d版的了),企业解决方案基本是没法接受这样解决方案的,第一不花钱没绩效,第二不花钱出事儿了没人背黑锅。不过,对于真的实际想做点儿事儿的人,在你的企业内部先用这个方案开路测试,然后再把其中的VMware正版化(其实也就是购买一部分授权,你过得去,他也过得去就行了),你就拥有云了。比较讨巧的办法是用这个方案把池的规模做上去(这还是要花点儿时间的,扩容硬件,增加用户,积累运维经验),然后立个项做IaaS云,其实就是采购VMware并顺便把硬件资源扩扩容,然后2个月内交付给你的老板,看,云呐。。。(不要问我是如何知道这个办法的:))
更多推荐
已为社区贡献11条内容
所有评论(0)