ztp2013
作者ztp2013·2015-11-13 14:36
系统分析师·ibm

转:TSM调度任务解析

字数 5431阅读 2889评论 0赞 0
转:TSM调度任务解析

TSM 调度任务解析
http://www.itpub.net/thread-1169914-1-1.html

TSM 本身提供了很强大的自动执行任务的能力,但是在实际部署TSM的过程中,工程师却很少使用到(我看到很多人用操作系统的自动运行去完成自动备份,如,crontab
。。),主要是因为对TSM的调度功能不熟悉,认为定义和配置调度任务很复杂,如果仔细了解的它的原理使用起来还是很方便的。下面我总结一下我在部署TSM备份软件时对TSM自动调度任务管理的一些经验,希望有所帮助。

TSM 调度程序(dsmc schedule)概述:

在客户理解的自动备份对应到TSM就是TSM的调度任务(schedule),那么TSM是如何让一个备份客户端执行一个自动备份任务呢?包括以下几个方面
1.        首先要在TSM server上定义一个调度表,TSM 使用该调度表为客户机在指定的时间间隔或天数执行自动备份和归档操作。
2.        对客户机节点和已经定义的调度表进行绑定,允许调度关联多个节点,由于调度定义包含在特定策略域中,所以定义到某个策略域的节点只能与该域中定义的调度关联。
3.        让节点执行一次调度任务叫做调度事件(event),那么要想发生这个调度事件必须满足一下调节:
        对于一个特定策略域必须存在一个调度定义
        所需的节点必须存在一个调度关联
        客户机调度程序(dsmc schedule)必须在客户机系统上运行

TSM调度管理分类:

传统管理调度legacy scheduler services
客户机接收器管理调度CAD-managed Services

其中传统管理调度又分为下面两种方式:
客户机轮询(polling),服务器提示(prompted),

客户机轮询是指客户机节点调度程序(dsmc schedule)每隔预定的时间间隔轮询TSM服务器,已获取调度作业。这是TSM默认模式。

服务器提示此方式只提供TCP/IP通信的客户机(大部分都用TCP/IP吧)使用,当需要执行已调度的任务且有可用的会话时,客户机节点等待服务器与他联系,也就是说TSM server将提示客户机做已经定义好的调度任务。调度程序(dsmc schedule)负责接收发来的指令。如果指定prompted方式,则必须在客户机dsm.sys文件中,或在dsmc schedule 命令中提供tcpclientaddress和tcpclientport选项的值。否则TSM server无法联系到客户机调度进程,从而造成调度任务丢失(miss)。

让我们看一下polling和prompted各有什么优缺点和具体运作方式:

Polling缺点和具体运作方式
工作方式:
1.        客户机节点按预定时间间隔查询服务器以获取调度信息。此间个由客户机选项Queryschedperiod设置。
2.        在调度开始时客户集结点执行调度操作
3.        当操作执行完成以后,客户机会将结果发送到服务器。
4.        客户机节点向服务器查询下一个调度操作
优缺点:
1.        支持随机化,即对调度的开始时间的随即分布,这就是为什么客户老抱怨TSM执行调度的开始时间不是定义时的时间,总会有些延时,因为TSM自动将任务做了随机化,这样对任务很多的客户机是有帮助的,有助于减少客户机的压力。当然管理员也可以控制随机化,通过随机化时间,TSM避免了所有客户机同时尝试启动调度的概率,否则会耗尽服务器的资源。
2.        对所有通信方式有效
3.        因为随机化,调度启动时间不固定,客户不太理解。

prompted缺点和具体运作方式
工作方式:
1.        当需要执行调度的操作并有一个服务器会话可用时,服务器会与客户机节点联系,这就要求在注册节点时指定节点的HLAddress(指定节点的IP地址)和LLAddress(指定客户机的端口号,必须与客户机选项文件中的tcpclientport选项指定相同的值)
2.        联系上后,客户机节点向服务器查询操作,执行操作并将结果发送到服务器。

优缺点:
1.        如果经常更改调度的开始时间,这种方法是很有用的。无需对客户机节点进行任何操作,新的开始时间即可生效。
2.        当客户想把调度会话集中的限制为服务器启动时可采用这种方法(客户喜欢这样做)
3.        不支持调度的随机化,需要人工对负载进行判断,指定均衡的调度表。
4.        只支持TCP/IP同服务器通信的客户机节点。


重点介绍一下CAD

CAD提供轻量级定时器,作为调度程序的外部计时器。启动调度程序时,它将查询服务器已获得下一个已调度事件,或者立即执行事件,或者调度程序退出。当应该执行已调度事件时,CAD从新启动调度程序。这样减少了工作站的后台进程数,,并解决了无CAD管理运行调度程序时可能发生的内存保留问题。也就是说当需要启动调度程序进程(dsmc schedule)时才启动,而传统的方式(上面介绍的两种方式)是保持TSM 调度程序进程(dsmc schedule)持续运行。CAD是管理调度程序的首选方法。
下面对这两种方法进行比较,

CAD管理的服务
        使用managedservices选项进行定义并启动CAD服务(dsmcad)
        CAD按需要为每一个调度操作启动及停止程序进程
        空闲时需要较少的系统资源(需要执行调度时启动dsmc schedule,平时不启动)
        每次CAD服务启动调度备份时都将查询客户端选项文件dsm.sys(确保每次修改都能应用,区别于传统模式dsmc schedule无需在每次更改dsm.sys内容后都要重启的不便操作)
传统调度程序服务(polling,prompted)
        以命令dsmc schedule 启动调度
        Dsmc schedule保持活动状态,即使在调度备份完成之后
        空闲时需要使用较多的系统资源,包括内存和CPU
        dsmc schedule启动后,当要执行调度时不在查询dsm.sys中修改的内容,必须要重启dsmc schedule,这就是为什么有些工程师明明修改的一些备份选项却在执行调度时没有生效,例如你想通过include修改的管理类让数据备份到不同的存储池中(stgpool)修改了dsm.sys中的如下
include *  manage_b(对应stgpool_b是一个lto设备类)
但是在客户端执行完调度后数据还是备份到了以前的管理类manage_a(对应stgpool_a是一个disk设备类)里面去了.就是因为dsmc schedule 在备份的时候不会去读取最新的修改,只有将其重启后才能生效。


下面举一个例子,看看我们上面的调度方式是如何实现的。
增量备份节点名为test1和AIX操作系统目录 /home下的所有文件,备份启动时间是12:00,每隔一小时备份一次,备份任务必须在30分钟内启动。

1.        首先要在TSM server上定义一个调度任务
define schedule standard schedule1 action=incremental -objects=”/home/*” –opt=’-subdir=yes’ starttime=12:00:00 period=1 perunits=hour dur=30 duru=minutes
2.        将这个调度和节点test1绑定
Define association standard schedule1 test1
3.        在客户端启动调度程序

        对于传统调度管理模式
tsmsched:nce:/usr/bin/dsmc sched > /dev/null 2>&1 # TSM scheduler
注:
对于prompted 模式要求dsm.sys包括有如下选项
passwordaccess       generate
tcpclientport        150x(与注册节点时用的LLAddress相同)
    在dsmc sched 后面可以添加-se选项以便选择dsm.sys中的不同段落,读取不同的客户机选项。
        对于CAD管理模式
tsmcad:nce:/usr/bin/dsmcad –optfile=/usr/tivoli/tsm/client/ba/bin/dsm.opt> /dev/null 2>&1 # TSM Client Acceptor
注:
在CAD管理模式下要求dsm.sys包括有如下的选项
passwordaccess       generate
managedservices    schedule

在dsmcad 后面可以添加-optfile选项以便选择dsm.sys中的不同段落,读取不同的客户机选项。

TSM调度程序疑难解答:

1.        如何查看TSM服务器保留的调度事件。
例如:显示前一天所有事件结果的查询
query event * * begind=today-1 begint=00:00:00 endd=today-1 endt=23:59:59

查询发生异常的调度事件
    query event * * begind=today-1 begint=00:00:00 endd=today-1 endt=23:59:59 exceptionsonly=yes
  
2.        调度事件状态码:
状态        含义
已完成(complete)        该调度事件正常完成,无错误
错过(miss)        调度错过,调度程序(dsmc sched)在客户端上没有运行
等待(pending)        正在等待调度运行
已启动(start)        调度已启动
失败(failed)        调度完成,但有错误发生,查看错误代码,寻找原因
3.        如何查询每次调度任务备份的更多详细信息,例如备份的数据量。
select schedule_name,start_time,end_time,activity,entity as node,address,bytes,volume_name from summary where schedule_name is not null and start_time>’03/25/2009 00:00:00’ and end_time<’03/25/2009 23:59:59’ and commmeth is not null’

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

X社区推广