在微软System Center Virtual Machine Manager(SCVMM)中的服务模板是一个不错的功能,虽然现在逐渐的被VM Role取代(个人感觉),但是毕竟有些时候使用服务模板的designer去编辑操作时感觉还是很易上手的,今天就借着服务模板的场景来聊一聊VMM中的放置规则。


其实放置规则(placement rule)是一个很“小儿科”的功能(so easy~哪里不会点哪里),但别瞅它不起眼,某些场景下却偏偏能解决客户难题,下图是我测试环境中的情况,VMM托管了两个主机组,从名称上看分别为前端(front_end)和后端(back_end),很显然我的前端主机组中为群集HA环境,后端是一个独立计算节点,那么我在部署一个应用时希望数据库可以放置在back_end,而前端web放置在front_end并满足HA及横向扩展能力。这就是一个最简单不过的用户需求,很多时候客户现场会包含DMZ区域,那不外乎将访问层部署在DMZ,而将安全性高的数据服务器放置在防火墙后端,这时候如果用服务模板来部署应用的话,就需要用到“放置规则”了

SCVMM中的放置规则_第1张图片

下图中我的cloudbox云内包含了上述的两个主机组

SCVMM中的放置规则_第2张图片

此外我已经创建好了一个服务模板,名为“二层应用”,如下图:

SCVMM中的放置规则_第3张图片

在我的服务模板中,VM层是由两个独立的VM模板元素构成的,首先要先编辑VM模板的属性,在自定义属性中已经包含了从custom1到10的几个内置属性,如果有额外需要可以点击右下方“管理自定义属性”来添加,如下图:

SCVMM中的放置规则_第4张图片

下图中我添加了一个名为"placement"的自定义属性,按照同样的操作步骤将两个VM模板都添加“placement”这个属性并赋予相应的值,例如我的IIS模板placement属性为001,SQL模板为002

SCVMM中的放置规则_第5张图片

然后需要给宿主机添加同样的自定义属性,并赋予相应的值,例如我这里对back_end组内的宿主机设置002,是为了让SQL模板生成的数据库服务器放置在这里,同理我需要将front_end内的宿主机设置001

SCVMM中的放置规则_第6张图片

接下来关键的一步就是在主机组属性中添加“放置规则”,默认是集成父主机组的属性设置的

SCVMM中的放置规则_第7张图片

在放置规则中我选择上文中配置好的“placement”这个属性,并要求“虚拟机必须与主机匹配”,这样一来也就强制了只有模板与主机属性必须一致的情况下,虚拟机才会被正确的部署并放置,否则将会失败(会有报错提示),如下图:

SCVMM中的放置规则_第8张图片

为了验证放置规则是否生效,以此服务模板进行部署,如下图:

SCVMM中的放置规则_第9张图片

此时服务已经开始创建,通过控制台可以看到两台不同的VM实例被分别创建在不同的宿主机上,并且是遵循了放置规则的设置,如下图:

SCVMM中的放置规则_第10张图片

通过以上的方法就可以很容易的区分服务部署时的放置位置,其实目前的企业当中很多都是按照标准IT策略去实施的,像DMZ区域或者明确的防火墙边界都是很基本的场景,我想当云计算和虚拟化与传统IT相碰撞时,如何灵活的去适应企业自身需求,如何依靠技术和工具去驱动业务是很关键的