이 장에서는 선택적 CLI(명령줄 인터페이스)인 lib_cmd
에 대해 설명합니다. 이 도구는 ACSLS에서 논리적 라이브러리를 관리하는 데 주로 사용되지만, 일부 명령은 특정 컨텍스트에서 ACSLS GUI 또는 cmd_proc
에 대한 대안으로 사용할 수도 있습니다. lib_cmd
CLI는 42개를 초과하는 긴 볼륨 목록을 지정하는 기능을 비롯한 꺼내기 작업을 지원합니다.
ACSLS 버전 8.0에서는 논리적 라이브러리 개념을 도입했습니다. 논리적 라이브러리 클라이언트 작업은 광 섬유 채널 연결을 통해 SMCE(SCSI Media Changer Emulation)에서 SCSI 명령을 사용하여 액세스합니다. 클라이언트는 테이프 mount
, dismount
, enter
및 eject
를 수행할 수 있으며, SMCE 인터페이스를 사용하여 자체 테이프 인벤토리를 관리하고, 라이브러리가 클라이언트 응용 프로그램에 직접 연결된 것처럼 작동합니다.
ACSLS 8.2 이전 버전에서는 ACSLS 8.0에서 도입된 ACSLS 그래픽 사용자 인터페이스를 통해 논리적 라이브러리 관리 설정 기능을 수행했습니다. 관련 작업으로는 원하는 수의 스토리지 셀과 테이프 드라이브 슬롯을 포함하는 논리적 테이프 라이브러리 만들기, 클라이언트 개시자-대상 관계 설정, 라이브러리에 물리적 드라이버 지정, 테이프 볼륨 지정 등이 있습니다.
이러한 관리 작업은 UNIX CLI(명령줄 인터페이스)를 통해 수행할 수도 있습니다. CLI는 논리적 라이브러리의 유용성을 확장하여 중요 관리 기능을 더 빠르게 실행할 수 있는 경로를 제공하고, 일괄 처리 UNIX 셸 스크립트를 사용하여 논리적 라이브러리를 관리할 수 있도록 해 줍니다.
lib_cmd
lib_cmd lib_cmd [-f infile] lib_cmd assign drive drive_id lib_id lib_cmd assign volume [vol_id | vol-range] lib_id lib_cmd unassign volume [ vol_id | vol-range ] lib_id lib_cmd unassign drive lib_id logical_drive_id lib_cmd create library lib_name backing_acs cell_capacity drive_capacity lib_cmd create mapping initiator_id target_id library_id lib_cmd edit initiator initiator_id alias lib_cmd edit library lib_id [-n name ] [-c capacity ] [-d drive_slots ] [-f volume_label_format [6|8p|8s|all] [-x imp/exp_cell_count ] lib_cmd edit target target_id alias lib_cmd refresh initiator lib_cmd refresh target lib_cmd delete initiator initiator_id (y/n) lib_cmd delete library lib_id (y/n) lib_cmd delete mapping lib_id (y/n) lib_cmd delete target target_id (y/n) lib_cmd display drive [drive_id ] [-p acs_id | all ] [-l lib_id | all ] [-t drive_type ] [-u acs_id ] lib_cmd display initiator lib_cmd display library [ -p acs_id | all ] [ -l lib_id | all ] lib_cmd display mapping [ lib_id | all ] lib_cmd display target lib_cmd display volume [ vol_id ] | vol-range ] [ -p acs_id | all ] [ -l lib_id | all ] [ -u acs_id ] lib_cmd eject cap <cap_id> [-verbose] volume <vol_id...vol_id> | file <path_to_volume_list> lib_cmd vary library lib_id [online|offline|diagnostic] lib_cmd vary drive lib_id drive_id [online|offline|diagnostic] lib_cmd [ exit | quit | log ]
lib_cmd
명령줄 유틸리티는 ACSLS 논리적 라이브러리의 리소스 관리 및 모니터링을 위한 ACSLS GUI를 대체합니다. ACSLS 관리자는 lib_cmd를 사용하여 논리적 라이브러리를 생성, 편집 또는 삭제하거나, 논리적 라이브러리에 볼륨 또는 테이프 드라이브를 지정 또는 지정 해제하거나, 개시자 또는 대상을 새로 고치거나, 클라이언트 통신을 위해 개시자-대상 매핑을 만들거나, 논리적 라이브러리의 상태를 표시하거나, 구성된 물리적 라이브러리 또는 논리적 라이브러리 내의 볼륨 또는 드라이브 상태를 표시할 수 있습니다.
논리적 라이브러리 관리 외에도 lib_cmd는 라이브러리의 컨텐츠를 표시하거나 단일 CAP(예: SL3000 AEM)에 대한 많은 양의 볼륨을 꺼내기 위해 cmd_proc 대신 사용할 수 있는 몇 가지 일반적인 라이브러리 명령 세트를 제공합니다.
이러한 작업은 root
를 비롯하여 ACSLS 그룹 내의 모든 사용자가 수행할 수 있습니다.
lib_cmd
는 대화식 모드 또는 일괄 처리 모드로 작동할 수 있습니다. 대화식 모드는 인수 없이 명령에 의해서만 호출됩니다.
lib_cmd
대화식 모드에서는 모든 가능한 하위 명령과 인수를 나열하는 'help' 기능을 지원합니다. 각 하위 명령의 컨텍스트 내에 요청 시 가능한 인수 및 옵션 목록을 표시할 수 있습니다. 가능한 유효 입력 문자열이 확실치 않은 경우 <Enter
> 키를 눌러 해당 컨텍스트에 대해 사용 가능한 모든 인수 목록을 가져올 수 있습니다.
사용자 생성 스크립트에서 이 유틸리티의 효율적인 사용을 지원하기 위해 일괄 처리 모드에서는 상호 작용이 제공되지 않습니다. 일괄 처리 모드에서는 명령을 사용하여 모든 원하는 옵션 및 인수를 제출해야 합니다. 그렇지 않으면 오류 메시지가 반환됩니다.
이 절에서는 하위 명령에 대해 설명합니다.
assign drive drive_id lib_id
지정된 라이브러리에 지정된 드라이브를 지정합니다. drive_id
는 물리적 라이브러리의 드라이브에 대한 표준 표기법으로 표시됩니다(acs,lsm,panel,drive
). lib_id
인수는 논리적 라이브러리의 지정된 ID입니다. 논리적 라이브러리 ID는 1001부터 시작하며 라이브러리가 생성되면 증분적으로 증가합니다.
unassign drive lib_id logical_drive_id
논리적 라이브러리 구성에서 지정된 논리적 드라이브를 제거합니다. 드라이브는 논리적 주소(주소 500부터 시작)로 지정됩니다. 논리적 라이브러리 ID는 1001부터 시작하는 4자리 숫자입니다.
assign volume vol_id | vol-range lib_id
논리적 라이브러리 내에서 배타적 사용을 위해 볼륨을 지정합니다. 볼륨은 표준 6자리 또는 바코드 레이블 형식으로 표시됩니다. 라이브러리는 숫자 논리적 라이브러리 ID로 표시됩니다. 볼륨은 '지정 가능'해야 합니다. 즉, 아직 지정되지 않았고, 소유자가 없으며, 마운트, 예약, 전송 또는 사용 중이 아니어야 합니다.
범위는 대시로 구분된 하한 ACSII 값 문자열과 상한 ASCII 값 문자열로 지정됩니다. 볼륨 범위가 요청되면 lib_cmd
는 지원 ACS에서 지정된 범위에 속하는 볼륨을 검색합니다. 범위 내에 있는 모든 지정 가능한 볼륨이 지정된 논리적 라이브러리에 지정됩니다.
unassign volume vol_id | vol-range lib_id
논리적 라이브러리 인벤토리에서 볼륨을 제거합니다. 볼륨은 홈 셀 내에 있어야 하며 보류 중인 이동 작업에 사용하도록 예약할 수 없습니다.
범위는 대시로 구분된 하한 ACSII 값 문자열과 상한 ASCII 값 문자열로 지정됩니다. 볼륨 범위가 요청되면 lib_cmd
는 지정된 논리적 라이브러리에서 지정된 범위에 속하는 볼륨을 검색합니다. 범위 내에서 사용 중이 아닌 모든 지정된 볼륨이 라이브러리에서 지정 해제됩니다.
create library lib_name backing_acs cell_capacity drive_capacity
새 논리적 라이브러리를 만듭니다. create library
뒤에 4개의 인수가 라이브러리 별칭 이름(문자열), 지원 ACS ID(정수), 스토리지 셀 수(정수), 드라이브 슬롯 수(정수)의 순서로 와야 합니다.
create mapping initiator_id target_id library_id
지정된 라이브러리에 대한 개시자-대상(클라이언트-서버) 관계를 설정합니다.
edit library lib_id [-n name ] [-c capacity ] [-d drive_slots ] [-f volume_label_format [6|8p|8s|all] [-x imp/exp_cell_count ]
기존 논리적 라이브러리의 구성을 변경합니다. 특정 라이브러리는 4자리 숫자 ID로 표시됩니다. 모든 단일 옵션이 제공될 수 있으며, 해당 옵션과 함께 제공된 인수를 사용하여 단일 필드만 변경됩니다. 옵션은 다음과 같습니다.
-n
라이브러리 별칭 이름
-c
논리적 스토리지 셀 용량
-d
논리적 드라이브 슬롯 수
-f
볼륨 레이블 형식
-x
논리적 가져오기/내보내기 (CAP) 셀 수
볼륨 레이블 형식은 다음 중 하나로 표현될 수 있습니다.
6
6자 레거시 볼륨 레이블
8p
매체 유형 코드가 앞에 나오는 8자 문자
8s
매체 유형 코드가 뒤에 나오는 8자 문자
all
모든 레이블 형식 허용
refresh initiator
현재 ACSLS로 알려진 모든 개시자를 검색합니다.
refresh target
현재 ACSLS로 알려진 모든 대상을 검색합니다.
delete initiator initiator_id (y/n)
구성에서 지정된 개시자를 제거합니다. 지정된 삭제를 커밋하려면 확인(y)이 필요합니다.
delete library lib_id (y/n)
ACSLS 구성에서 지정된 논리적 라이브러리를 제거합니다. 이렇게 하면 계단식 delete
, 라이브러리에서 지정된 볼륨 및 드라이브 연결 해제를 만듭니다. 삭제를 시도하기 전에 라이브러리를 오프라인 상태로 전환해야 합니다. 라이브러리에서 하나 이상의 논리적 볼륨이 현재 사용 중이면 제거가 실패합니다. 지정된 삭제를 커밋하려면 확인(y)이 필요합니다.
delete mapping lib_id (y/n)
지정된 논리적 라이브러리에서 모든 개시자-대상 매핑을 제거합니다. 이 작업은 현재 클라이언트 연결을 사용 안함으로 설정합니다. 지정된 삭제를 커밋하려면 확인(y)이 필요합니다.
delete target target_id (y/n)
구성에서 지정된 대상을 제거합니다. 지정된 삭제를 커밋하려면 확인(y)이 필요합니다.
display drive drive_id [-t drive_type ] [-p acs_id | all ] [-l lib_id | all ] [-u acs_id ]
지정된 라이브러리의 지정된 드라이브 또는 모든 드라이브 요약을 생성합니다.
표시에는 드라이브의 물리적 주소와 논리적 주소, 드라이브 유형, 드라이브 상태 등이 표시되고, drive_status
가 in_use
를 표시하는 경우 마운트된 카트리지의 VOLSER
가 표시됩니다.
------------------------ Example ---------------------------- $ lib_cmd display drive 0,0,10,1 Physical Logical Drive Drive Drive Mounted Location Address Type State Status Volume 0,0,10,1 1001:502 9840 Online in use RIFF21 -------------------------------------------------------------
display drive all
이 옵션 없이 제출된 경우 유틸리티는 각 물리적 ACS에 포함되어 있는 모든 볼륨 목록을 생성합니다.
-t
옵션이 전달된 경우 지정된 드라이브 유형의 드라이브만 표시됩니다.
-p
옵션은 지정된 물리적 ACS의 드라이브에 대한 표시를 제한합니다.
-l
옵션이 포함된 경우 지정된 논리적 라이브러리에 지정된 드라이브만 표시됩니다. all
이 -l
옵션 뒤에 지정된 경우 구성된 각 논리적 라이브러리와 연관된 모든 드라이브를 보여주는 표시가 생성됩니다.
-u
옵션은 ACS와 연관된 지정되지 않은 드라이브만 표시합니다. 이 옵션은 원하는 ACS를 지정하는 인수와 함께 나와야 합니다.
display initiator
ACSLS에서 식별하는 모든 개시자 목록을 생성합니다. 각 개시자는 World Wide 이름 및 별칭 이름을 기준으로 나열됩니다.
display library [ -l lib_id | all ][ -p acs_id | all ]
요청된 라이브러리 ID의 속성을 표시합니다. -l
(논리적 라이브러리의 경우) 또는 '-p
'(물리적 ACS의 경우)를 지정합니다.
-l
을 지정하면 유틸리티는 다음과 같이 논리적 라이브러리 구성에 대한 요약을 생성합니다.
숫자 ID, 이름, 상태(원하는 상태)
지원 ACS ID, 상태(원하는 상태)
할당된 가져오기/내보내기 셀 수
할당된 드라이브 슬롯 수
지정된 드라이브 수
할당된 스토리지 셀 수
사용 가능한 셀 수
지정된 볼륨 수(액세스할 수 없는 볼륨 수)
볼륨 레이블 형식
-----------------Example----------------------------------- ACS 1001 'logLib01' Offline (Desired Online) Backing ACS 0 Offline (Desired Online) 2 import/export cells 5 Tape Drive Slots 2 Tape Drives 999 Storage Cells 993 Free Cells 106 Volumes (6 Inaccessible): Volume Label Format: Six character (classic) --------------------------------------------------------
액세스할 수 없는 볼륨은 다음과 같은 이유로 논리적 라이브러리의 범위를 벗어난 지정된 볼륨입니다.
볼륨을 물리적 라이브러리에서 꺼냈습니다.
클라이언트 응용 프로그램에 볼륨이 eject
로 표시되었습니다.
지정된 볼륨이 물리적 라이브러리에 있지만, 논리적 라이브러리가 스토리지 용량을 초과했습니다.
all
인수를 숫자 lib_id
대신 지정한 경우 구성된 각 논리적 라이브러리에 대해 표시가 반복됩니다. 일괄 처리 모드에서 -l
을 인수 없이 전달하면 all
인수를 사용한 것과 같습니다.
-p
옵션을 지정된 ACS ID와 함께 지정한 경우 유틸리티는 해당 ACS에 대한 라이브러리 구성을 요약하는 표시를 생성합니다.
-------------------------------- Example ---------------------------------- $ lib_cmd display lib -p 0 Physical ACS 0 Online 56 Drives: 1 LSM: LSM Library LSM LSM Drive Vol Free Cell ID Type Status State Count Count Count 0,0 SL3000 Normal Online 56 62 4321 10 CAPs: ID Mode State Status Condition Size Availability 0,0,1 Manual Online Available Operative 26 shared 0,0,2 Manual Online Available Operative 26 shared 0,0,3 Manual Online Available Operative 26 shared 0,0,4 Manual Online Available Operative 26 shared 0,0,5 Manual Online Available Operative 26 shared 0,0,6 Automatic Online Available Operative 26 shared 0,0,7 Manual Online Available Operative 26 shared 0,0,8 Manual Online Available Operative 26 shared 0,0,9 Manual Online Available Operative 26 shared 0,0,10 Manual Online Available Operative 26 shared --------------------------------------------------------------------------
all
인수를 -p
옵션과 함께 전달하면 구성된 각 물리적 ACS에 대해 표시가 반복됩니다.
all
인수는 일괄 처리 모드의 요청에 대한 기본 표시입니다. 인수가 없는 -p
옵션은 all
을 요청한 것과 같습니다.
display mapping [ lib_id | all ]
각 라이브러리 ID(또는 모든 라이브러리)에 대한 개시자-대상 매핑 목록을 생성합니다.
display volume [ vol_id ] | vol-range ] [ -p [ acs_id | all ] [ -l [ lib_id | all ] [ -u acs_id ]
지정된 볼륨 또는 볼륨 세트에 대한 요약 정보를 생성합니다.
----------------------Example ----------------------------- $ lib_cmd display volume ST0212 Volume media current physical logical ID type status location address ST0212 STK1R Home 0,0,2,6,0 1001:100 -------------------------------------------------------------
볼륨이 마운트되면 논리적 주소와 물리적 위치에 볼륨이 마운트되는 드라이브의 주소가 반영됩니다. 그렇지 않으면 볼륨의 논리적 홈 주소와 물리적 홈 주소가 나열됩니다. 논리적 주소는 볼륨이 논리적 라이브러리에 지정된 경우에만 채워집니다.
볼륨 범위는 대시로 구분된 하한 ACSII 값 문자열과 상한 ASCII 값 문자열로 지정할 수 있습니다. 표시에는 지정된 범위 내의 각 볼륨에 대한 상태 요약이 표시됩니다.
display volume all
을 옵션 없이 제출한 경우 표시에는 각 물리적 ACS에 포함된 모든 볼륨이 표시됩니다.
물리적 ACS ID를 -p
옵션과 함께 전달하면 목록은 지정된 물리적 ACS 내에 있는 볼륨으로 제한됩니다. all
을
-p
와 함께 제출하면 모든 물리적 ACS에 포함된 볼륨이 표시됩니다.
논리적 라이브러리의 숫자 ID(lib_id
)를 -l
옵션과 함께 전달하면 특정 논리적 라이브러리와 연관된 볼륨 세트만 표시됩니다. 단어 all
을 -l
옵션과 함께 전달하면 유틸리티는 구성된 각 논리적 라이브러리와 연관된 모든 볼륨을 표시합니다.
-u
옵션은 지정된 물리적 ACS에 포함된 지정되지 않은 볼륨으로 제한되는 표시를 생성합니다.
eject cap <cap_id> [-verbose] volume <vol_id...vol_id> | file <path_to_volume_list>
lib_cmd
eject
는 42개를 초과하는 긴 볼륨 목록을 지정하는 기능을 비롯한 꺼내기 작업을 지원합니다. 볼륨 목록을 포함하는 텍스트 파일에 대한 경로를 지정하거나 사용자 입력으로 볼륨을 입력할 수 있습니다. 여러 볼륨을 한 라인에 대문자 또는 소문자로 입력할 수 있습니다.
<cap_id>
라이브러리 구성에 있는 특정한 기존 CAP여야 합니다.
와일드카드는 지원되지 않습니다.
CAP 목록을 사용할 수 있습니다.
[-verbose | -v]
verbose
옵션은 모든 볼륨을 표시하도록 지정합니다.
기본값은 verbose가 아니며 최대 10개의 볼륨을 개수와 함께 표시합니다.
<vol_id>
라인당 하나 이상의 볼륨 식별자를 지정할 수 있습니다.
대화식 모드로 실행 중인 경우 <Return>
키를 누르면 목록이 종료됩니다.
<path_to_volume_list>
텍스트 파일에 대한 상대 경로 또는 전체 경로로 지정합니다.
라인당 여러 볼륨 식별자를 지정할 수 있습니다.
모든 설명 라인("#"으로 시작) 또는 빈 라인은 무시됩니다.
어떠한 형태로든 지정 가능한 볼륨 수에 대한 알려진 제한이 없습니다. 모든 볼륨이 제공되면 ACSLS에서 단일 꺼내기 작업이 수행되고, 가능한 볼륨을 모두 꺼낼 때까지 필요한 대로 지정된 CAP를 계속해서 채웁니다.
출력 표시에는 볼륨 수(지정된 볼륨 수, 꺼낸 볼륨 수, 꺼내지 않은 볼륨 수 등) 보고가 포함됩니다. verbose
옵션은 모든 볼륨을 표시하는 출력을 생성합니다. 기본적으로 각 목록에 대해 10개의 볼륨이 표시된 미리보기가 생성됩니다. 꺼내지 않은 볼륨의 경우 볼륨 식별자와 이유를 나타내는 라인이 표시됩니다.
vary drive lib_id drive_id [online|offline|diagnostic]
논리적 드라이브의 원하는 상태를 지정된 상태(온라인, 오프라인, 진단)로 변경합니다.
vary library lib_id [online|offline|diagnostic]
논리적 라이브러리의 원하는 상태를 지정된 상태(온라인, 오프라인, 진단)로 변경합니다.
일괄 처리 모드에서 lib_cmd
를 사용하면 더 복잡한 관리 작업을 수행할 수 있습니다. 예를 들어, 여러 볼륨 또는 여러 드라이브를 지정하거나 지정 해제하는 작업은 대체로 일괄 처리 모드에서 가장 효율적으로 수행됩니다.
이 예에서는 SL8500 모듈의 레일 2에 있는 모든 9840 드라이브를 논리적 라이브러리 1002에 지정합니다.
lib_cmd
를 사용하여 acs-0에서 지정되지 않은 모든 드라이브를 나열하고, grep
를 사용하여 레일 2에 있는 9840 드라이브만 필터링합니다(acs-0, lsm-1).
$ lib_cmd display drive -u 0 | grep 9840 | grep 0,1,.,.
레일 2에 있는 모든 지정되지 않은 드라이브는 5개 필드 표시에 나열됩니다.
Physical Logical Drive Drive Drive Mounted Location Address Type State Status Volume 0,1,1,0 9840 Online available 0,1,1,1 9840 Online available 0,1,1,2 9840 Online available 0,1,1,3 9840 Online available 0,1,1,4 9840 Online available
여기서는 이 표시의 드라이브 ID만 필요하므로 awk
를 사용하여 첫번째 필드만 인쇄합니다.
$ lib_cmd display drive -u 0 | grep 9840|grep 0,1,.,.|awk ’{print $1}’ 0,1,1,0 0,1,1,1 0,1,1,2 0,1,1,3 0,1,1,4
동일한 awk
인쇄 문을 사용하여 논리적 라이브러리 1002에 드라이브를 지정하는 데 필요한 명령을 구성하는 텍스트를 추가할 수 있습니다.
$ lib_cmd display drive -u 0 | grep 9840|grep 0,1,.,.|awk ’{print ”assign drive ”$1”1002}’ assign drive 0,1,1,0 1002 assign drive 0,1,1,1 1002 assign drive 0,1,1,2 1002 assign drive 0,1,1,3 1002 assign drive 0,1,1,4 1002
명령 텍스트에 만족하는 경우 이제 텍스트 파일에 대한 출력을 지시할 수 있습니다.
$ lib_cmd display drive -u 0 | grep 9840 | grep 0,1,.,. | awk '{print "assign drive "$1" 1002"}' > /tmp/assignDr
마지막으로, 명령 파일에 대한 변경사항을 편집한 다음 lib_cmd
를 사용하여 파일을 실행할 수 있습니다.
$ lib_cmd -f ./tmp./assignDr --ACSLS 8.2.0-- Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. Drive 0,1,1,0 now assigned to logLib02 at 1002:500 Drive 0,1,1,1 now assigned to logLib02 at 1002:501 Drive 0,1,1,2 now assigned to logLib02 at 1002:502 Drive 0,1,1,3 now assigned to logLib02 at 1002:503 Drive 0,1,1,4 now assigned to logLib02 at 1002:504
lib_cmd
표시 명령을 사용하여 지정을 확인합니다.
$ lib_cmd display drives -l 1002 ACS 1002 LOG lIB02:20 Drive Slots 5 Drives Physical Logical Drive Drive Drive Mounted Location Address Type State Status Volume 0,1,1,0 1002:500 9840 Online available 0,1,1,1 1002:501 9840 Online available 0,1,1,2 1002:502 9840 Online available 0,1,1,3 1002:503 9840 Online available 0,1,1,4 1002:504 9840 Online available