SMS学习笔记知识

SMS学习笔记知识

最近在学习微软的System Management Server(简称SMS),从其安装、配置和使用上了解其进行系统管理的思路,希望能够加以模仿和借鉴。

因为不在乎产品的稳定,所以下载的是最新的SMS v4 Beta 1,这样可以了解其最新的思路。其介绍称,为了配合微软的Dynamic System Intiative(DSI)战略,SMS v4的正式名称应该是System Center Configuration Manager 2007。

SMS的功能主要有:

  • 收集硬件和软件的资产信息
  • 分发软件
  • 审核软件的使用情况
  • 分发软件升级包
  • 分发操作系统
  • 远程管理计算机
  • 网络访问控制
  • 管理智能手机和Pocket PC

SMS主要有几个组成部分

  • SMS Site Server
  • SMS Site Database
  • SMS Administrator Console
  • SMS Client

SMS Client

SMS Client是安装在客户机上的。分为有两种,Advanced Client和Legacy Client,后者主要是为了兼容旧的系统。

  • 从这里,我们可以得到一个启示,不同客户不同对待。如果有些新特性只有新的系统才支持,你将如何抉择呢?是抛弃老的系统,还是说为了兼顾而放弃使用新的特性呢?其实,如果开发两个版本的程序,那么就可以既支持老的系统,又能发挥新系统的优势。当然,成本增加了,系统也复杂了。

客户端的组件

在客户端的组件表里,我们可以看到所有已经安装的组件。

SMS Inventory Agent,负责软硬件资产的收集。

SMS Remote Tools Agent,负责远程管理。

SMS Software Metering Agent,负责软件的审计。

...

为了降低系统资源的占用,所有组件都是可以单独启用和禁止,并在SMS Site Server上统一配置。这就讲到了SMS的重点----

基于策略的管理

策略就是对要进行的决定和动作的一种计划。

A policy is a plan of action to guide decisions and actions. The term may apply to government, private sector organizations and groups, and individuals. The policy process includes the identification of different alternatives, such as programs or spending priorities, and choosing among them on the basis of the impact they will have. Policies in short can be understood as political, management, financial, and administrative mechanisms arranged to reach explicit goals.

http://en.wikipedia.org/wiki/Policy

策略定义保存在SMS Site Server上,SMS Client会定时(默认是60分钟)去获取和更新自己的策略定义,然后在本地执行。

策略的执行其实就是一种配置的过程,所以SMS才会改名为Configuration Manager。

相对于以前的主动控制式的管理(姑且这么称呼),基于策略的管理有以下特点。

 

  1. 行为可预测
    定义策略的时候,都要事先把要执行的操作以及预期的结果进行描述,所以策略执行的结果是可预见和明确的。
  2. 可重复
    策略定义出来后,就可以直接应用到不同的对象上,而不是每次再临时定义所有操作,以避免遗漏或差错。
  3. 自动化
    在策略里,可以针对不同的情况设定不同的应对措施,从而可以增加了灵活性。
  4. 标准化
    所有的管理任务都使用定义策略来实现,管理过程就变得简单和统一。
  5. 持续性
    策略会始终沿着设定的目标,根据使用环境的变化不断地进行适应和纠正,而不仅仅是一次性的操作。
  6. 一致性
    当你把策略应用到许多对象身上的时候,你知道它们都会达到了你设定的要求的,而不会遗漏。

基于策略的管理,其实也是微软传统的系统管理方式。在微软的网络环境里,Active Directory就是负责保存所有的策略/配置信息,然后每台计算机根据这些策略进行配置执行。配置管理在MOF和ITIL里是占有重要的一席之地的,以后有时间我们再探讨。

SMS的策略分为两种,一种是Machine Policy,是针对机器的,不管当前的登录用户是谁。而另一种是User Policy,是针对用户的,不同的用户登录,其对应的策略可能是不一样的。

基于策略的管理,其关注点是结果,即最后要达到的目标。首先设定一个目标(或者说Baseline),然后定义一个策略来强制,这样就可以保证所有的机器最后都达到我们设定的要求(如果不是,至少我们能知道谁没有达到)。主动控制式的管理,关注的是单个的操作过程,其结果是无法保证的。而且即便这次操作成功了,你怎么能保证以后不会发生变化?

  • 策略就像一种制度,在平日里进行监督执行,防患于未然,而不是采用疾风骤雨式运动整治。

基于策略的管理,客户端需要一个策略执行引擎,这会占用一定的资源。而为了减轻服务器的压力,SMS Client默认60分钟才会更新一次策略,所以其及时性不是很强。

  • 在测试的时候,我们不可能在更新策略后,等待客户端60分钟后才有反应。SMS Client在控制面板里提供了一个System Management的Applet,可以手动触发一些操作的执行。比如Discovery Data Collection Cycle,Machine Policy Retrieval & Evaluation Cycle以及User Policy Retrieval & Evaluation Cycle等等。
  • 基于策略的管理其实是把部分管理的职能放到了客户端,所谓充分授权,似乎也很符合当前P2P以及自治的原则。

Agent

前面说了客户端的组件,其实就是不同的Agent,分别执行不同的管理任务,符合"Manager-Agent"的管理模型(简单点解释就是Manager发出指令,Agent接收并执行,最后返回结果)。对于Agent的配置,是通过策略来完成的,Agent之间基本没有什么联系。所以要增加新的管理功能,只要增加新的Agent就可以了!关于这一点,我们也可以从服务器上针对不同Agent的EndPoint可以看得出来。所谓的EndPoint就是接收Agent提交数据的入口,不同的Agent有不同的入口(EndPoint),Agent和EndPoint是配对使用的。理论上,对Agent与其EndPoint之间的通讯方式是没有要求的。

  • 这里需要注意的是,客户端的Agent不只一个,与我们通常所见只有一个Agent的情形有所不同,这里的Agent已经泛化为组件的意思了。这种情况在SMS里是很普遍的,特别是在服务器端就有很多服务/组件,分别提供不同的功能,并允许单独启动、停止、消息和监控等。在一个复杂的系统里,每一个组成部分其实都是相对独立的,需要提供更精细的控制。

SMS Site Server

在继续之前,我们有必要先解释几个概念

  • SMS Site
    这是SMS里最基本的管理单元,界定了所有要管理的计算机、用户等各种资源的范围。通常是以网络子网或者AD的站点来划分的。
  • SMS Site Server
    SMS安装在该服务器上,并负责管理SMS Site以及相关的组件/服务(这些组件可能运行在不同的服务器上,所谓SMS Site System,见下文介绍)。SMS Site Server也是访问SMS Site Database的主要入口(另一个入口是Reporting Point,后面介绍),Site Database保存了SMS Client提交的各种数据以及SMS Site的各种配置信息。
  • SMS Site System
    就是为SMS Site提供服务的服务器(就是前面说的运行各种相关组件),具体是什么服务要看它担任的角色(Site System Role)来决定。
  • Site System Role
    包括
    • Site Server
      就是前面说的SMS Site Server,负责管理和监控整个SMS Site。
    • Component Server
      任何运行了SMS的组件的SMS Site System(就是服务器啦),除了Distribution Point。
    • SMS Site Database Server
      运行SMS Site Database的服务器,其实就是运行了SQL Server。
    • Client Access Point(CAP)
      负责Legacy Client与SMS Site Server之间的交互。Legacy Client提交的所有数据都先发给CAP,再由CAP转发到Site Server上。Legacy Client要获取管理信息,比如advertisements也是通过CAP。
    • Distribution Point(DP)
      保存SMS软件分发的软件包的源文件(实际的数据,不是描述信息)。
    • ManagementPoint(MP)
      负责Advanced Client与SMS Site Server之间的交互,类似CAP对Legacy Client的作用。
    • Server Locator Point(SLP)
      主要用于客户端安装时查找CAP和MP。
    • Reporting Point(RP)
      保存报表模板,并连接SMS Site Database生成报表。

SMS Component

SMS是由很多组件构成的,客户端和服务端均是如此。我们可以分别对其进行控制,就像在控制面板里管理服务一样。但是,不是每个组件都会出现在系统的控制面板里的,所以大多数你只能通过SMS Administrator Console来进行查看和管理。

比如我们就可以在Console的Component Status里看到以下的组件:

SMS_EXECUTIVE,负责运行其它组件。

SMS_MP_CONTROL_MANAGER,提供Management Point的功能。

SMS_NETWORK_DISCOVERY,提供网络自动发现客户端的功能。

...

  • SMS的模块化做得不错,方便扩展,也方便维护。

SMS站点的层次关系

SMS分为主站点(Primary Site)和次站点(Secondary Site)两种类型。主要区别是,前者带有Site Database,而后者没有。

主站点下面可以连接多个下级(Child)的主站点和次站点,而次站点不允许有任何的下级站点(Child Site)。

所有的下级站点都要把自己获得的客户端的资产信息和SMS的状态信息上报给上级站点(Parent Site),如此反复直至最顶级的站点(Central Site)。所以,每一个主站点的Site Database里都会包含所有下级站点的状态信息和客户端的信息,而Central Site将拥有整个站点树的客户端的信息。

要对一个SMS Client进行管理,你需要用SMS Administrator Console连接到任何SMS Client所在的站点(如果是主站点的话),或者任何一个上级站点。

从SMS站点关系来看,站点之间的通讯量是很大的,特别是在站点树的顶端。为此,SMS提供了一个叫做Sender的组件来完成站点之间可靠的数据交换。Sender的类型有

  1. Standard Sender
    标准的LAN/WAN通讯。
  2. RAS Sender
    通过Remote Access Service的连接。
  3. Courier Sender
    通过光盘、磁盘或者磁带的方式,适用于站点之间网络带宽较小的情况。

我们可以看到,Sender甚至不必建立一条物理的网络连接。所以,Sender的数据交换不是实时的,而是按照一定的时间周期来进行的。

  • 从这里,我们更加可以看出来,SMS主要是配置管理。

采用级联的站点管理之后,SMS就可以支持客户端漫游了。客户端不管在什么地方上网,都可以接受管理,包括软件分发。关于漫游的机制,因为比较复杂,我们留待以后再探讨。

待续:

Collection and Query

Hardware and Software Inventory

Software Distribution

Reporting

...

参考资料:

Systems Management Server 2003 Concepts, Planning, and Deployment Guide

MSDN TechNet的文章,对SMS2003进行了完整的了解。

Windows服务器中文站

上面有很多SMS的安装和配置介绍文章,并配有大量的ScreenShot,可以让你有很直观的认识。

SMS SDK(v3/4)

关于内部的运行机制,看SDK无疑是最好的途径。