TSM(Tivoli Storage Manager) 매뉴얼 (2) - TSM Storage

2013.02.05 10:11

* Storage Object의 개념
 
드라이브와  라이브러리, volume (tape)은 물리적인 개념이고 그 밑에 있는 devclass와 storage pool은 논리적인 개념이다.


ㅇ Drive : 물리적인 장비를 의미한다.

ㅇ Library : 하나이상의 드라이브를 묶는 역할을 한다.(논리적 개념)
       TSM에서 정의하는 Library는 장비의 특성에 따라 두 가지 유형이 있다.
       Manual Type(사람이 테이프를 직접 마운트)과 Automated Library가 그것이다.

ㅇ DevClass(Device Class) :  장비를 TSM에 정의하는데 있어 장비의 특성을 기술해주는 부분이다.
       예를 들어, 장비가 Disk인지, 테이프인지, 테이프라면 어떤 포맷인지(DLT,8mm,1/2"inch,등등)를
       기술해 준다. 하나의 Library에 여러 Devclass가 정의될 수 있다.

ㅇ Storage Pool : Devclass의 하부개념으로서 하나의 Devclass에 여러 Storage Pool이 귀속될 수 있지만 하나의 Storage Pool이 여러 Devclass를 가질 수는 없다.
    Storage Pool은 volume (테이프와 디스크) 들을 하나로 묶어주는 역할을 한다.  그리고 클라이언트가 백업과 리스토어를 하는데 있어 서버의 어떠한 스토리지를 쓸 것인지를 가리키는 Storage의 Destination역할을 한다.

ㅇ Volume : TSM에서 Volume이란 직접 데이터가 저장될 수 있는 매체를 총칭한다. 따라서, 디스크, Optical디스크, 테이프를 전부 뜻한다.

 
* Device는 다음과 같은 순서로 작업한다
Device driver (A tape) install to AIX
Define library
Define path for library
Define drive
Define path for drive
Define devclass
Define stgpool
Define vol
 
 
(1) Device driver (A tape) install to AIX
 

 
 ㅇ Library :  하나 또는 두 개 이상의 드라이브와 robotic mechanism, media로 구성되는 physical box. device 특성에 따라 Manual type과 automated library가 있다.
 
ㅇ Device Class : 디바이스를 TSM에 정의하는데 있어 디바이스의 특성을 기술해 주는 부분이다. 예를 들어 장비가 디스크인지, 테이프인지, 테이프라면 어떤 포맷인지(DLT, 8mm…)를 기술해 준다. 하나의 라이브러리에는 여러 개의 devclass가 정의될 수 있다.

ㅇ Drive : Sequential media에 데이터를 기록하는 장치

ㅇ 구성 예 :  

  db2/> lsdev -Cc tape
  rmt0 Available 0C-08-02     IBM 3580 Ultrium Tape Drive (FCP)
  rmt1 Available 0C-08-02     IBM 3580 Ultrium Tape Drive (FCP)
  rmt2 Available 09-08-01-8,0 LVD SCSI 4mm Tape Drive
  smc0 Available 0C-08-02     IBM 3582 Library Medium Changer (FCP)

* rmt(드라이브), smc(로봇팔)


   
(2) Define library
- Device 파일생성을 O/S 환경에서 했다면 지금부터는 TSM서버를 띄워서 하는 작업이다.
- Library 정의방식은 장비의 종류에 따라 크게 두 가지로 나뉜다.
    장비가  Manual type(사람이 직접 테이프를 손으로 마운트)일 경우와 Automated Library인 경우가 그것이다.
 - Automated Library인 경우는 Robotic Arm을 지원하기 때문에, TSM command에 Control Path 에 대한 Device파일명을 따로 기입해 주어야 한다.
    command : Define library 라이브러리이름 libtype=scsi
                  예) Define library 3583lib libtype=scsi
 
 
(3) Define path for library
- 디바이스를 사용하려면 디바이스와 서버 사이에 또는 디바이스와 외부 데이터 이동을 담당하는 데이터 이동기 사이에 경로를 정의해야 한다.
. 서버와 드라이브 또는 라이브러리 사이
. 저장영역 에이전트와 드라이브 사이
. 데이터 이동기와 드라이브 또는 라이브러리 사이
Command : Define path 소스_서버네임 라이브러리이름 srctype=server desttype=library
                  device=/dev/smcX (X는 scsi ID)
 예1) Define path TSM_test 3583lib srctype=server desttype=library device=/dev/smc0
 예2) Define path TSM_test1 autodltlib srctype=server desttype=library device=/dev/tsmscsi/lb3
 

(4) Define Drive
- Library가 정의되고 나면 바로 Drive를 정의해 주어야 한다.
    즉, 드라이브를 이미 정의되어져 있는 Library에 귀속시켜 주어야 한다.
 
(5) Define path for drive
디바이스를 사용하려면 디바이스와 서버 사이에 또는 디바이스와 외부 데이터 이동을 담당하는 데이터 이동기 사이에 경로를 정의해야 한다.
- 서버와 드라이브 또는 라이브러리 사이
- 저장영역 에이전트와 드라이브 사이
- 데이터 이동기와 드라이브 또는 라이브러리 사이
 
(6) Define devclass
- Devclass는 Storage Pool과 매핑되며, 이 매핑을 통하여 디바이스 장치에 있는 Storage Pool Volume에 데이터를 Write 또는 Access 한다
 
(7) Define stgpool
- 1차 저장영역 풀이나 사본 저장영억 풀의 정의한다.
- Random Access Storage에 대한 Storage Pool 정의
    Devclass이름에는 현재의 Storage Pool에 귀속되고자 하는 devclass이름을 적어주면 된다.
    Random Access Storage에서의 Devclass이름은 DISK이다.
    command : Define stgpool stgpool이름 disk

- Sequential Access Storage에 대한 Storage Pool 정의
    Devclass이름에는 현재의 Storage Pool에 귀속되고자 하는 devclass이름을 적어주면 된다.
    maxscratch에는 scratch volume의 최대값을 넣어준다.
    command : Define stgpool stgpool이름 Devclass이름

(8) Define volume
-  저장영역 풀에 Random 또는 Sequential access Volume을 할당한다
   command : Define volume  stgpool_name Volume_name


* Scratch Volume & Private Volume
- TSM에서는  Volume관리를 위해 크게 두 가지의 개념을 제공한다.
- Scratch volume이란 어느 Storage Pool에도 귀속되지 않은 volume 즉, 데이터가 없는 빈 volume 이고 Private volume이란 데이터가 있고 사용중인 즉, 이미 스토리지 volume에 귀속된 volume이다.
- Scratch Volume의 경우 테이프가 장비 안에 있을 때 (Automated Library인 경우) 어떤 Storage Pool도  Access가 가능하다. 하지만 Private Volume은 그 volume의 Storage Pool만이 Access가 가능하다. 
 
- Private Volume에도 두 가지 종류가 있다. 처음부터 라벨링된 테이프를 Storage Pool에 귀속시키면 그 테이프는 영원히 그 Storage Pool에 귀속된다. 그러나 이렇게 직접적으로 Storage Pool에 귀속되지 않은 테이프, 즉 Scratch상태에서 Storage Pool이 Access해서 테이프의 Status가 Private으로 바뀐 테이프는, 테이프에 있는 모든 데이터가 Expired되어졌을 경우 다시 Scratch상태로 돌아갈 수 있다. 즉 다른 Storage Pool이 다시  재사용 가능하다는 의미가 된다.

* Tape Labeling
 TSM이 volume(tape)에 쓰기 위해서는, 테이프의 경우 제일 먼저 Labeling을 해 놓아야 한다.
 즉, 백업할 테이프가 이미 TSM이 사용할 수 있는 테이프라고 테이프의 헤더정보에 Label을 해 놓아야 한다는 뜻이다. 

- 일반 SCSI장비(ROBOT CONTROL, TAPE BARCODE CONTROL)일 경우
    command :
     tsm: SERVER1> label libvolume library_name search=bulk labelsource=barcode checkin=scratch overwrite=yes
     예) label libvol 3583lib search=yes labelsource=barcode checkin=scratch overwrite=yes

 - ROBOT CONTROL은 하지만 TAPE BARCODE를 할 수 없는 경우
     command :
     tsm: SERVER1> label libvolume library_name search=yes labelsource=prompt checkin=scratch overwrite=yes

 - MANUAL 장비인 경우 (사람이 손으로 LOAD/UNLOAD해주는 장비인 경우)
     command :
     tsm: SERVER1> label libvolume library_name volume_name

* Tape eject
- TSM은 CHECKOUT LIBVOLUME이라는 명령어를 통해 TAPE를 MAILSLOT으로 빼낼 수가 있다.
CHECKOUT을 통해 몇 번 slot에 tape이 있다는 정보를 삭제할 수 있다
command
tsm: SERVER1> checkout libvolume library_name volume_name checklabel=no
예) checkout libvol 3583lib vol001 remove=no checklabel=no
 
library_name : 라이브러리 이름을 지정한다.
volume_name : 볼륨 이름을 지정한다.
CHECKLabel  : 서버가 볼륨의 순차 매체 레이블을 읽는 방법 및 읽기 여부를 지정한다.
Yes : 올바른 볼륨이 체크 아웃 되고 있는지 확인하기 위해 서버가 매체 레이블 읽기를 시도하도록 지정한다.
No : 체크 아웃 하는 동안 매체 레이블을 읽지 않도록 지정한다.
            읽기 프로세스가 발생하지 않기 때문에 성능이 개선된다.

- Tape의 full로 인해 Tape의 교체 시는 아래의 command를 권장한다

Update volume volume_name access=readonly
예) update volume vol001 access=readonly


또루아빠 TSM , ,