TSM 매뉴얼 (8) - Scheduling

2013.02.08 16:57

ㅇ Scheduling 개념
  스케줄링에는 2가지 타입이 있다

- Client Scheduling
  Backup/Restore, Archive/Retrieve의 반복 수행 업무에 사용.
  Client OS commands 또는 Script를 사용하여 수행 가능하다
  1회만을 작업하기 위한 스케줄도 구성 가능하다

- Admin Scheduling
  Administrative Commands의 반복 수행 업무에 사용.
  Scripts를 작성하여 운영할 수 있다

- 클라이언트 스케줄링의 두가지 모드
  . Client Polling
  . Server Prompted

- 스케줄된 이벤트의 조회
  선택된 클라이언트에 대해 스케줄되고, 완료된 이벤트를 표시할 경우 QUERY EVENT 명령을 사용한다 

 command : query event domain_name schedule_name 
사용 예 : query event * * begindate=11/10/2006 enddate=11/15/2006


ㅇ 스케줄링의 전제조건
- 클라이언트 노드가 서버에 등록되어 있어야 한다
- 클라이언트 옵션 파일은 접속하는 서버의 네트워크 주소를 포함해야 한다
- 클라이언트 시스템에서 스케줄러가 시작되어 있어야 한다


ㅇ 스케줄링의 정의
- Schedule을 통해 클라이언트의 기본적인 operation (backup/restore, archive/retrieve, command, macro등)을 자동화 할 수 있다. 
 
- TSM server가 시작되면서 중앙 scheduler가 작동하고, 각 클라이언트에서 Client Scheduler를 구동해줌 으로서 클라이언트는 TSM server로 부터 schedule을 받아와 지정된 시간에 operation을 수행한다.
-  schedule은 domain에 정의된 뒤, client node와 associate되어 client에게 전달된다. 


ㅇ 스케줄 정의시 주요 parameter
- Domain_name : 스케줄이 속하는 policy 도메인의 이름을 지정.

- Schedule_name : 정의할 스케줄의 이름을 지정.

- Type=Client (선택) : 클라이언트에 대한 스케줄이 정의되도록 지정.

- Description : 스케줄의 설명을 지정.

- Action : 스케줄이 처리될 때 발생하는 조치를 지정.
           Incremental, Selective, Archive, Restore, Retrieve, IMAGEBACkup, IMAGEREStore 등 사용가능

- Objects : 지정된 조치가 수행되는 오브젝트를 지정.
            ACTION=INCREMENTAL인 경우를 제외하고는 필수 항목이다.
            예) /home/file 2, /home/gif files, /home/my test file의 경우, 
                OBJECTS='"/home/file 2" "/home/gif files" "/home/my test file"‘

- Options (선택) : 스케줄이 처리될 때 스케줄 명령에 지정하는 클라이언트 옵션을 지정      
                예) –subdir=yes 등

- Priority (선택) : 스케줄에 대한 우선순위 값을 지정. Default는 5

- Startdate (선택) : 스케줄이 처음으로 처리되는 창 시작 날짜를 지정.      
                    예) today, MM/DD/YYYY 등

- Starttime (선택) : 스케줄이 처음으로 처리되는 창 시작 시간을 지정.   
                     예) now, HH:MM:SS 등

- Duration (선택) : Schedule의 startup window를 길이를 정의

- Durunits (선택) : Duration에서 지정한 값의 시간 단위를 지정    
                예) minutes, hours, days 등
                예) DURATION=20, DURUNITS=minutes를 지정하는 경우, 스케줄은 시작 날짜와 시작 시간의 20분 이내에 시작되어야 한다

- Period (선택) : 이 스케줄에 대해 정의된 schedule이 얼마마다 반복 수행할 것인지 지정

- Perunits (선택) : 스케줄의 Period에서 지정한 값의 단위를 지정   
                예) days, hours, weeks, months, years, onetime 등 

- Dayofweek (선택) : 스케줄에 대한 시작 창이 시작되는 요일을 지정.

- Expiration (선택) : 스케줄의 만기가 되는 기간 지정   
                 예) never-만기가 되지 않음, MM/DD/YYYY-만기일 지정

 Command :
    DEFine SCHedule domainname schedulename Type=Client DESCription=description 
    ACTion=action OPTions=optionstring OBJects=objectstring PRIority=priorityvalue 
    STARTDate=startdate STARTTime=starttime DURation=durationvalue DURUnits=durunitsvalue 
    PERUnits=perunitsvalue PERiod=periodvalue DAYofweek=dayofweekvalue  
    EXPiration=expirationvalue

   예) > Define schedule standard incr_sched description=‘Daily Backup’ action=incremental  
   priority=2 startdate=today starttime=21:00 duration=2 durunits=hours period=2   
   perunits=days dayofweek=any  expiration=never



ㅇ 스케줄링 mode
- Tivoli Storage Manager는 클라이언트 폴링과 서버 프롬프트라는 두 가지 스케줄링 모드를 제공
 
- 모드는 조작 스케줄링에 대해 클라이언트 노드와 서버가 상호작용하는 방법을 표시한다. 
  . 클라이언트 폴링 모드의 경우 스케줄 된 다음 이벤트를 위해 클라이언트 노드가 서버를 폴링한다. 
  . 서버 프롬프트 모드의 경우 서버가 스케줄 된 시작 시간에 노드에 접속한다

- 두 스케줄링 모드에서 스케줄을 실행하려면 클라이언트 노드 시스템에서 스케줄러가 시작되어 있어야 한다. 

- 기본값으로 서버는 스케줄링 모드를 둘 다 허용
 . 기본값(ANY)을 사용하여 노드는 클라이언트 옵션 파일에서 스케줄링 모드 둘 중 어느 것이든 지정할 수 있다

- Client Polling Schedule Mode
     command : set schedmodes polling 

- Server Prompted Schedule Mode
     command : set schedmodes prompted 

- 임의의 Schedule Mode
     command : set schedmodes any 


ㅇ Client Polling
 


 - polling mode는 dsmc schedule 데몬이 시작된  후 클라이언트가 스케줄 정보를 읽어올 때, 클라이언트가 직접 서버로 query 해서 스케줄 정보를 
가져와서 작업을 시작한다.

 - 진행 순서
    1. 클라이언트 노드가 지정된 시간에 스케줄을 시작하기 위해 일정 주기로 서버에 조회하여 작업의 시작 날짜 및 시간 등의 정보를 가져온다.
    2. 스케줄링 된 시작 시간에 클라이언트 노드가 스케줄링 된 조작을 수행한다. 
    3. 스케줄 작업이 완료 되면, 클라이언트가 서버로 결과를 보낸다.
    4. 클라이언트 노드가 다음 스케줄링 된 조작을 서버에서 가져온다. 

- 클라이언트가 하루 단위로 스케줄러를 수동으로 시작하는 경우 (예: 워크스테이션을 밤에 꺼야 할 때)에 유용 

- 모든 통신 방법에 유효

 

ㅇ Server Prompted mode


- prompted mode는 dsmc schedule 데몬이 시작된 후 클라이언트가 스케줄 정보를 읽어올 때, 클라이언트는 서버로부터 항상 스케줄 정보를 받기를 기다리게 되고 서버는 클라이언트에게 스케줄 정보를 알려주어 클라이언트가 작업을 시작한다.

- 진행 순서
    1. 클라이언트의 TCP/IP address를 서버에 등록한다.
    2. 스케줄 시작 시간이 되면 서버가 클라이언트에 연결되어 작업을 클라이언트에 통보한다.
    3. 클라이언트는 스케줄을 시작한다.
    4. 스케줄 작업이 완료 되면, 클라이언트가 서버로 결과를 보낸다. 

- 스케줄 시작 시간을 자주 변경하는 경우에 유용하다. 새 시작 시간이 클라이언트 노드에서 아무 조치를 수행하지 않고도 구현된다

- 서버와 통신하기 위해 TCP/IP를 사용하는 클라이언트 노드에만 유효


 
ㅇ 서버와 클라이언트의 세션 관리

- 서버와 클라이언트간의 세션을 조정하기 위한 명령을 사용할 수 있으며, 이를 조정하기 위해서는 System 권한을 가지고 있어야 한다.
 
- MAXSCHEDSESSIONS
서버가 스케줄 된 조작을 처리하도록 허용된 세션 수를 설정할 때 사용하며, 스케줄 된 세션의 최대 수를 사용 가능한 전체 서버 세션의 총 수에 대한 비율로 지정.
세션 세션 수(MAXSESSIONS 매개 변수)를 늘리거나 스케줄 된 최대 세션 비율을 늘릴 수 있다. 
Command : SET MAXSCHEDSESSION percent

- MAXCMDRETRIES
클라이언트 노드에 있는 스케줄러가 실패한 명령을 재시도할 수 있는 최대 횟수를 지정.
Command : SET MAXCMDRETRIES number

- RETRYPERIOD
서버에 대한 연결 시도가 실패하거나 스케줄 된 명령의 처리에 실패한 후, 클라이언트 노드에 있는 스케줄러가 재시도 사이에 기다리는 시간을 지정. 
이 명령은 SET MAXCMDRETRIES 명령과 함께 실패한 명령을 실행하기 위한 재시도 수와 재시도 기간을 지정할 수 있다.
Command : SET RETRYPERIOD minutes

- QUERYSCHEDPERIOD
클라이언트 스케줄러가 살아 있는 동안 얼마의 간격을 두고 서버에 접속해 클라이언트 스케줄 정보를 가져올 것인지 시간을  지정.
클라이언트 노드가 스케줄에 대해 자주 polling 할수록 노드는 스케줄 변경 사항을 더 신속하게 수신하게 된다. 그러나 클라이언트 노드의 polling이 증가할수록 네트워크 트래픽도 증가하게 된다.
Command : SET QUERYSCHEDPERIOD hours



ㅇ node와 Association

- Domain에 정의된 schedule과 그 domain에 소속된 클라이언트와의 association을 맺어준다 
- 이 association을 통해 클라이언트는 자신의 schedule이 어떤 것인지 알게 되며, 그 schedule을 가져간다 

 Command : 
    > Define association 도메인이름 schedule이름 node이름,node이름,node이름 


ㅇ Client Scheduler 구동
-  Client scheduler를 구동시켜 줌으로서, 클라이언트가 server에 정의되어 있는 schedule을 받아와 이를 수행하도록 해준다 
 Command :
    # dsmc schedule 


ㅇ Administrator 스케줄링 정의
- TSM admin 인터페이스에서 내릴 수 있는 모든 명령어를 스케줄링 할 수 있다.

- Reclaimation, expire inventory, database backup 등과 같은 admin 스케줄의 정의는 클라이언트 스케줄과 define, update 하는 방법은 동일하나 TSM 노드와 association 하지 않는다는 것이 차이점이다.

- Administrative 스케줄링은 policy 도메인과 association 시키지 않는다.

- Admin 스케줄은 데몬으로 시작 되는 것이 아니라 active=yes 옵션을 사용한다.

- Administrative 스케줄링 실행 후의 output은 dsmsched.log에 저장된다.

- MACRO 또는 QUERY ACTLOG 명령을 스케줄링 할 수 없다. 

- Administration 스케줄링을 사용하는 경우 
   . Lower threshold 로의 migration 즉시 시작
   . Lower threshold 로의 reclamation 즉시 시작
   . TSM 데이터베이스 백업
   . Inventory 삭제
   . Storage pool 백업

- Administration 스케줄링을 실행 시 포함하여야  할 매개변수
   . 실행할 관리 명령을 지정한다 : CMD= 
   . 스케줄이 활성화 되는지 지정하여야 한다 : ACTIVE=yes  
   . 명령어에 대한 종류를 지정 한다 : Type=Administrator

 Command : define schedule schedule_name type=administrative cmd='backup stgpool archivepool' active=yes 


ㅇ TSM batch job Script
- DEFINE SCRIPT라는 명령을 통해 TSM의 모든 일련의 작업들을 동시에 몰아서 BATCH JOB으로 만들고, 또 이를 어드민 스케쥴에 등록해 자동화할 수가 있다.

 순서1. /tmp/dbbackup.txt라고 하는 파일을 열어 스크립트에 들어갈 내용을 편집한다. 

expire inventory wait=yes
backup db devclass=dltclass type=full wait=yes
backup devconfig
backup volhistory


순서2. DEFINE SCRIPT명령어로 아래와 같이 스크립트를 등록한다. 
command : define script dbbackup file=/tmp/dbbackup.txt

순서3. RUN SCRIPT_NAME 라고 하는 명령어로 스크립트를 수행하면 된다.
command : run dbbackup

- Script의 삭제 
command : delete script dbbackup

- Script의 Admin Schedule 사용
command : define schedule dbbackup cmd='run dbbackup' type=admin active=yes starttime=10:00


ㅇ 클라이언트 이벤트 관리
- Activity log에 로그를 남기는 메시지의 종류
  . 클라이언트 세션이 시작하고 종료한 시기 
  . Migration이 시작되고 종료된 시기 
  . 백업 버전이 만료되는 시기 
  . 데이터가 테이프에 반출된 시기 
  . 만기 처리가 수행된 시기 
  . 반출 또는 반입 프로세스가 수행된 시기 
  . 서버 콘솔로 전송된 오류 메시지

- Activity log에 로그를 남기지 않는 메시지의 종류
  . 세션, 통신 에러
  . 클라이언트 메모리 에러
  . 정보 관련 메시지
  . 서버에서 판단 불가능한 메시지

- Set actlogretention 10
  activity log의 보유기간을 10일로 설정

- Set actlogretention 30
  activity log의 최대 크기를 30MB로 설정


또루아빠 TSM , , ,