2014年6月19日

TSM 调度

作者 kjvkgh

2010年7月编写

一、TSM 调度(schedule)基础知识

1. TSM调度分类

TSM包括2种调度方式:prompted (服务器提示)和polling (客户机轮询)

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

polling是指客户机节点调度程序(dsmc schedule)每隔预定的时间间隔轮询TSM服务器,获取调度作业。这是TSM默认模式。Polling方式支持随机化,即对调度的开始时间的随即分布,这样对任务很多的客户机是有帮助的,有助于减少客户机的压力。当然管理员也可以控制随机化,通过随机化时间,TSM避免了所有客户机同时尝试启动调度的概率,否则会耗尽服务器的资源。

Polling工作方式:

      1. 客户机节点按预定时间间隔查询服务器以获取调度信息。此间个由客户机选项Queryschedperiod设置。
      2. 在调度开始时客户集结点执行调度操作
      3. 当操作执行完成以后,客户机会将结果发送到服务器。
      4. 客户机节点向服务器查询下一个调度操作

2. TSM 调度流程

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

对于一个特定策略域必须存在一个调度定义

  • 所需的节点必须存在一个调度关联
  • 客户机调度程序(dsmc schedule)必须在客户机系统上运行

二、配置TSM调度

1. 服务器端配置

Tivoli Storage Manager—>策略域和客户机节点—>查看策略域—>修改策略域—>客户机节点调度—>创建调度
image001

填写调度名称和调度的操作,建议操作类型选命令,这样比较灵活,调度只是要完成一个脚本的执行,可以用一个调度完成不同客户节点的不同操作,当客户的需求改变时只需在客户节点修改相应的命令脚本。
image003
填写脚本的路径,如果选择上一步选择了其他的操作命令,此处会出现相关的操作选项
image005

选择调度的执行时间和频率,注意:执行的时间以服务器时间为准,调整服务器时间最好在BIOS下执行,在服务端运行时调整时间,如调整后的时间和之前是时间跨度较大,可能会引起服务器崩溃!!!
image007

image009
根据调度的重要性选择优先级,同一时刻调度不多的话保持默认值就行了,重点看调度持续时间,因为随机化,调度启动时间不固定,当同一时刻调度不多的话建议将持续时间设的短一些(默认1小时)。
image011
选择执行此调度的客户节点
image013
完成以上配置后会显示一个摘要,如果配置有误,在客户机节点调度中选择修改调度
image015

2. 客户端设置

首先保证客户端能正确连接到服务端,即客户端可以手动备份、恢复。
调整客户节点密码方式,使其可以直接连接到服务器。
在/opt/tivoli/tsm/client/ba/bin/dsm.sys添加PASSWORDACCESS GENERATE。或在在图形化客户端选Edit—>Client Preferences:

image017
添加完验证一下

image019
然后建立脚本文件 /tmp/sch.sh,并加上执行权限
image021
启动客户节点调度:分为前台执行和后台执行;前台执行输入dsmc schedule 启动调度,后台执行输入 nohup /opt/tivoli/tsm/client/ba/bin/dsmc schedule >/dev/null &。
后台运行:
image023
image025

3. 查看调度事件

①通过web界面查看: 运行状况监视器—>服务器属性—>调度信息—>更新表
image027

调度信息的状态分为Future,Pending,Completed,Missed,Failed 5种。

  • 未启动(Future):调度在将来的某个时刻执行。
  • 等待(pending):正在等待调度运行。
  • 已完成(completed):该调度事件正常完成,无错误。
  • 错过(missed):调度错过,调度程序(dsmc sched)在客户端上没有运行。
  • 失败(failed):调度完成,但有错误发生,查看错误代码,寻找原因。

如果调度信息为空,且活动日志全0 ,可能是没有开启运行状态监视器。

打开运行状况监视器—>配置运行状态监视器
image029
②通过命令行查看:query schedule:查看当前调度,query event * *:查看所有调度信息。
image031
③还可以通过日志查看调度结果
通过dsmc自带的日志查看(~/dsmsched.log):
image033
或者脚本指定日志:
image035
④还能在服务器的卷中找相关文件
image037

三、服务器管理调度

TSM在备份数据时会加密,并将密钥存在DB里,当DB损坏时,所有备份卷都会失效。所以作为数据安全关键的DB是需要经常备份,由于DB不同于普通数据,不能用TSM client备份,TSM里专门有一个模块——“管理调度”去解决这个问题。

1. 管理调度的配置

Tivoli Storage Manager—>服务器维护—>服务器属性—>管理调度—>创建调度
image039
键入调度名和命令行,例如:backup db devclass=kjvkgh-dev2 type=full scratch=yes表示做DB全备份,使用kjvkgh-dev2的临时卷,并将卷标记为scratch类型。
image041
选择调度的执行时间和频率,注意:执行的时间以服务器时间为准
image043
image045
根据调度的重要性选择优先级,同一时刻调度不多的话保持默认值就行了,重点看调度持续时间,因为随机化,调度启动时间不固定,当同一时刻调度不多的话建议将持续时间设的短一些(默认1小时)。
image047
调度的摘要信息:从2010/7/11开始,每天17:45~17:50之间做DB全备份。
image049

2. 查看调度结果

①在web界面查看管理调度信息同客户端调度信息相同: 运行状况监视器—>服务器属性—>调度信息—>更新表
image051
②通过服务器客户端查看管理调度情况:
首先执行QUERY ACTLOG >/root/act.log将act日志导出,如果要查看以前的ACT日志可以用参数begindate和enddate确定天数,例如QUERY ACTLOG BEGINDATE=-1,表示查询一天前到现在的ACT日志。
image053
查看日志:
image055
③或者查看数据库备份状态:
image057

四、注意事项

①一定要在/opt/tivoli/tsm/client/ba/bin/dsm.sys添加PASSWORDACCESS GENERATE,否则调度信息会报Failed。
②脚本一定要有执行权限,否则调度信息会报Failed。
③在跟新调度后,需在客户端重启dsmc schedule进程,否则在下次同步(默认12小时同步一次)后调度才会生效。
④最好自己写脚本时加入log输出,调度显示Completed仅表示已执行指定脚本,但系统并不知道脚本是否达到预期效果。
⑤持续时间应精心设计,否则可能会对后续时间的其他进程产出干扰。
⑥DB备份后产生的后缀为DBB的文件不可用TSM Client备份。
⑦修改服务器时间最好在BIOS中,在系统中直接修改可能给调度带来不可预知的后果。