KR20110066140A - 데이터의 다시 불러내기 순을 결정하기 위한 장치, 방법, 및 프로그램 - Google Patents

데이터의 다시 불러내기 순을 결정하기 위한 장치, 방법, 및 프로그램 Download PDF

Info

Publication number
KR20110066140A
KR20110066140A KR1020117005325A KR20117005325A KR20110066140A KR 20110066140 A KR20110066140 A KR 20110066140A KR 1020117005325 A KR1020117005325 A KR 1020117005325A KR 20117005325 A KR20117005325 A KR 20117005325A KR 20110066140 A KR20110066140 A KR 20110066140A
Authority
KR
South Korea
Prior art keywords
request
execution order
execution
order
waiting time
Prior art date
Application number
KR1020117005325A
Other languages
English (en)
Inventor
유타카 오이시
카즈히로 쓰루타
토모코 다케토미
노리에 이와사키
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110066140A publication Critical patent/KR20110066140A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0682Tape device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0686Libraries, e.g. tape libraries, jukebox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 호스트의 평균 대기 시간을 최소화하고, 다시 불러오기 요구의 처리 순을 최적화하는 기술을 제공할 수 있다. 스토리지 관리자는, 테이프 라이브러리로부터 다수 불려질 필요가 있는 데이터에 대한 호스트 장치의 요구를 수신하면, 이것을 큐 테이블에 저장한다. 요구의 저장에 응답하여, 스토리지 관리자는, 큐 테이블에 저장된 모든 요구에 대해 생각될 수 있는 모든 실행 순 각각에 대해, 그 실행 순으로 처리한 경우의 각 요구에 있어서의 대기 시간을 계산한다. 스토리지 관리자는, 계산된 대기 시간을, 실행 중의 요구를 포함하는 전체 요구에 관해서 합하여, 합계가 최소가 되는 실행 순을 적용해야 할 실행 순으로 결정하고, 그 실행 순에 따라, 큐 테이블 내의 요구를 순서 바꾸기 한다.

Description

데이터의 다시 불러내기 순을 결정하기 위한 장치, 방법, 및 프로그램{APPARATUS, METHOD AND PROGRAM PRODUCT FOR DETERMINING THE DATA RECALL ORDER}
본 발명은, 가상 테이프 서버에 있어서 볼륨의 다시 불러내기에 관한 것이고, 상세하게는, 볼륨의 다시 불러내기 요구의 처리 순을, 상기 요구를 한 호스트 장치의 평균 대기 시간을 최소로 하는 관점에서 최적화하는 기술에 관한 것이다.
가상 테이프 스토리지 시스템은, 하드 디스크 드라이브를 이용하여, 테이프 드라이브 및 테이프 카트리지를 에뮬레이트(emulate)한다. 예를 들면, 호스트 장치는, 테이프 라이브러리를 에뮬레이트하는 하나의 하드 디스크 드라이브에 대해서 입력/출력(I/O) 조작을 수행하는 것에 의해서, 테이프 라이브러리에 대한 I/O 조작을 수행한다. International Business Machines(IBM: IBM은 IBM Corporation의 상표) Magstar 가상 테이프 서버와 같은 종래 기술의 가상 테이프 스토리지 시스템에서는, 적어도 하나의 가상 테이프 서버(VTS)가, 복수의 테이프 드라이브 및 테이프 카트리지를 포함하는 테이프 라이브러리에 결합된다. VTS는 또, 상호 접속된 복수의 하드 디스크 드라이브에서 구성된 직접 액세스 기억 장치(Direct Access Storage Device, DASD)에 결합된다.
DASD는, 테이프 드라이브 내의 볼륨에 대한 캐시로서 기능한다. VTS는, 호스트 장치로부터 요구를 수신하면, 요구된 볼륨을 캐시로부터 읽어내서 호스트 장치에 보낸다. 요구된 볼륨이 캐시에 없는 경우, VTS는, 볼륨을 테이프 라이브러리에서 캐시로 다시 보낸다. 캐시는, 테이프 라이브러리보다 신속하게 I/O 요구를 충족시킬 수 있다. 하지만, 캐시의 용량은 테이프 라이브러리에 비해 상대적으로 적기 때문에, 빈번하게 액세스되는 볼륨만이 캐시에 유지된다. VTS는, LRU(최장 시간 미사용) 등의 알고리듬을 채용해서, 액세스하지 않는 볼륨을, 캐시에서 테이프 라이브러리로 전송한다. 전송된 볼륨은 캐시에서 제거되고, 한 예로서, 테이프 카트리지 상의 데이터를 가리키는 포인터에 단축(abbreviate)된다.
전형적인 VTS에서는, 볼륨의 다시 불러내기에 사용 가능한 테이프 드라이브 보다, 가상 볼륨의 액세스를 제공하는 가상 디바이스의 수가 많다. 그 때문에, 테이프 드라이브 보다 많은 가상 디바이스가, 캐시에 없는 가상 볼륨에 액세스하는 경우가 있다. 이와 같은 경우, 그 후에 다시 불러내기는 큐에 들어가 처리 대기한다. 일반적으로, 큐에 들어가는 이 다시 불러내기는, 들어 온 순서대로 처리된다. 여기서 문제가 되는 것이, 다시 불러내기에 걸리는 시간이다.
예를 들면, 다시 불러내기 된 데이터가 포함하는 테이프 카트리지가, 어느 테이프 드라이브에도 마운트 되지 않은 경우, 현재 마운트 된 몇 개의 테이프 카트리지를 테이프 드라이브에서 언 로드 해야 한다. 이 액세스에는 1분 이상 걸릴 가능성이 있다. 다음으로, 목적의 데이터를 포함하는 테이프 카트리지를 테이프 드라이브에 로드하고, 테이프 데이터의 선두에 위치에 있어야 한다. 이 프로세스에는 1분이 걸릴 가능성이 있다. 또한, 모든 테이프 드라이브가 사용 중인 경우, 몇 개의 테이프 드라이브에서 처리가 종료하는 것을 기다려야 한다. 처리의 종료를 기다리는 시간은, 실행 중의 처리에 필요한 시간에 의존한다.
이와 같은 문제를 해결하고, 다시 불러 내기 요구의 효율을 올리기 위해서 장래 기술로서 특허 문헌 1(일본 공개공보 2006-190274호)이 존재한다. 특허 문헌 1은, 하나 또는 복수의 최적화 규칙에 따라서 큐를 재배열하는 것으로, 큐의 처리를 최적화하는 기술을 시작한다. 최적화 규칙으로서, 특허 문헌 1은, 예를 들면, 단일의 실장 가능한 미디어 상에 상주하는 논리 볼륨에 대응하는 최소수 또는 최대수의 다시 불러내기 요구를, 큐 내에서 순차 그룹화하는 것과, 그룹화에 있어서 실장 가능한 미디어 상의 적어도 두 개의 다시 불러내기 요구의 물리적 자리에 따르는 것을 개시한다. 특허 문헌 1은 또, 제 1의 다시 불러내기 요구를 제 2의 다시 불러내기 요구의 상황에 근거하여 처리하고, 또는, 특정의 다시 불러내기 요구에 대해서 최소 대기 임계 값에 달한 경우에, 상기 요구를, 최적화 규칙을 무시해서 처리하는 등으로, 임의의 특정의 요구에 대해서 그 요구가 긴 시간 기다리지 않도록 하는 기술도 개시한다.
상기 특허 문헌 1에 시작된(개시된) 기술에 의해, 다시 불러내기 요구의 효율을 높이는 것이 가능해진다. 하지만 이것은 VTS에서 본 다시 불러내기 요구의 효율화로, 호스트 장치에서 본 효율화는 아니다. 상기 특허 문헌 1의 기술은, VTS가 테이프 드라이브를 이용하는 시간을 가능한 한 짧게 한다. 하지만, 호스트 장치의 대기 시간은, VTS가 호스트 장치의 요구를 수신하고 나서 그 처리가 완료하기까지의 시간이고, VTS에 의해 먼저 수신한 요구의 처리에 걸리는 시간에도 크게 의존한다.
예를 들면, 처리에 상당히 긴 시간을 필요로 하는 요구를 VTS가 먼저 받게 되면, 그 직후에 발행된 단시간에 처리되는 요구는 큐에 들어가서, 먼저 발행된 처리 시간이 긴 요구가 처리될 때까지 기다려야 한다. 그 결과, 호스트 장치의 평균 대기 시간이 길어진다. 또한, 특허 문헌 1에 있어서도, 최소 대기 임계 값 등을 제공함에 의해, 호스트 장치에 응답 시간을 보증하도록 배려되어 있다. 하지만 상기 특허 문헌 1에 개시된 기술은, 적어도 임의 특정의 요구에 대해서 그 요구가 긴 시간 기다리지 않도록 하는 것이고, 호스트 장치의 평균 대기 시간을 짧게 하는 것은 아니다. 실제로, 특허 문헌 1에 있어서, 각 요구의 실제의 처리 시간은 아무런 고려가 없다.
따라서, 본 발명은, 상기의 과제, 즉, 호스트 장치에의 응답 시간의 모든 요구에 대해서의 합계를 고려하는 것으로, 호스트 장치의 평균 대기 시간을 최소로 하는 것이 가능한, 데이터 다시 불러내기 순을 결정하기 위한 장치, 방법, 및 프로그램을 제공하는 것을 목적으로 한다. 본 발명은 또한, 실행 중의 요구를 포함해서, 호스트 장치에의 응답 시간을 모든 요구에 대해서의 합계를 고려하는 것으로, 호스트 장치의 평균 대기 시간을 최소로 하는 것이 가능한, 데이터의 다시 불러내기 순을 결정하기 위한 장치, 방법, 및 프로그램을 제공하는 것을 목적으로 한다.
상기의 목적을 달성하기 위해서, 본 발명은, 큐 테이블에 들어간 모든 요구에 대해 생각될 수 있는 모든 실행 순 중에서, 요구가 수신된 후에 그 처리가 완료하기까지의 대기 시간의 평균이 최소가 되는 실행 순을 구하여, 상기 실행 순에 따라서 큐 테이블 내의 요구의 순서를 바꾼다. 즉, 본 발명은, 다음과 같은 테이프 라이브러리에 접속된, 데이터의 다시 불러내기 순을 결정하기 위한 장치에 의해 실현된다. 이 장치는, 테이프 라이브러리에서 다시 불러내기 할 필요가 있는 데이터에 대한 호스트 장치의 요구를 수신하는 요구 수신 수단, 요구를 큐 테이블에 저장하는 저장 수단, 큐 테이블에 요구 저장에 응답하여, 큐 테이블 내에 저장된 모든 요구에 대해 생각될 수 있는 모든 실행 순서에 의한 수신에서부터 테이프 라이브러리에서 처리가 완료하기까지의 대기 시간을 예측하는 제 1 대기 시간 예측 수단, 제 1 대기 시간 예측 수단으로 예측된 대기 시간을 실행 중의 요구를 포함하는 모든 요구를 더한 합계가 최소가 되는 실행 순인 제 1 실행 순을, 적용해야 하는 실행 순으로 결정하는 제 1 실행 순 결정 수단, 결정된 적용해야 하는 실행 순에 따라서, 큐 테이블 내의 모든 요구의 실행 순을 바꾸는 순서 바꾸기 수단을 포함한다.
바람직하게는, 제 1 실행 순 결정 수단은, 제 1 대기 시간 예측 수단에 의해 예측된 대기 시간을 실행 중의 요구를 포함한 모든 요구를 더한 합계가 최소가 되고, 각 요구의 대기 시간이 모두 최대 허용 대기 시간을 초과하지 않는 실행 순인 제 1 실행 순을, 적용해야 할 실행 순으로서 결정한다. 여기서, 최대 허용 대기 시간은, 미리 관리자에 의해 장치에 설정할 수 있고, 또는, 호스트 장치에서 요구와 함께 지정할 수 있다.
또한 바람직하게는, 상기 테이프 라이브러리는 복수의 테이프 드라이브를 포함한다. 이 경우, 큐 테이블, 제 1 대기 시간 예측 수단 및 제 1 실행 순 결정 수단은 각각 테이프 드라이브마다 복수 개로 준비된다. 그리고, 상기 저장 수단은 하나의 요구를 복수의 큐 테이블에 각각 가상적으로 저장한다. 상기 장치는 또, 복수의 제 1 실행 순 결정 수단이 각각 결정한, 복수의 제 1 실행 순에 복수의 대기 시간의 합계 중에서, 최소의 대기 시간의 합계를 결정한 제 1 실행 순 결정 수단을 준비한 테이프 드라이브에, 하나의 요구를 할당하는 할당처 결정 수단을 포함한다. 상기 순서 바꾸기 수단은, 요구를 할당한 테이프 드라이브에 대응하는 큐 테이블에의 하나의 요구의 저장을 확정하고, 상기 큐 테이블 내의 모든 요구의 실행 순을, 요구를 할당한 테이프 드라이브에 대응하는 제 1 실행 순 결정 수단에 의해 결정된 제 1 실행 순에 따라서 순서를 바꾼다.
또 본 발명에서는, 현재 실행 중의 요구의 처리를 일단 중단하고 나중에 수신한 요구를 먼저 처리하는 편이, 오버 헤드를 고려한 호스트 장치의 평균 대기 시간을 단축할 수 있는 경우가 있다고 고려된다.
즉, 바람직하게는 상기 장치는, 큐 테이블에의 요구의 저장에 응답하여, 실행 중의 요구를 현재까지의 처리를 수행하는 제 1 요구와 남은 처리를 수행하는 제 2 요구에 가상적으로 분할하고, 상기 제 2 요구를 포함하는 큐 테이블 내에 저장한 모든 요구에 대해 생각될 수 있는 모든 실행 순의 각각에 대해서, 상기 실행 순으로 처리한 경우의 각 요구에 대해서 대기 시간을 예측하는 제 2 대기 시간 예측 수단, 제 2 대기 시간 예측 수단에 의해 예측된 대기 시간을 제 1 요구를 포함한 모든 요구를 더한 합계가 최소가 되는 실행 순을, 제 2 실행 순으로서 결정하는 제 2 실행 순 결정 수단과, 제 2 실행 순에서 대기 시간의 합계가, 제 1 실행 순에 대기 시간의 합계 보다 작은 경우에 제 2 실행 순을, 그 이외의 경우는 제 1 실행 순을, 적용해야 할 실행 순으로서 재결정하는 적용 실행 순 결정 수단, 적용해야 할 실행 순으로서의 제 2 실행 순의 결정에 응답하여, 실행 중의 요구의 처리를 중단하는 중단 수단 수단을 포함한다.
또한 바람직하게는, 제 1 실행 순 결정 수단은, 제 1 대기 시간 예측 수단에 의해 예측된 대기 시간을 실행 중의 요구를 포함하는 모든 요구를 더한 합계가 최소가 되고, 각 요구의 대기 시간이 모두 최대 허용 대기 시간을 초과하지 않는 실행 순인 제 1 실행 순을, 적용해야 할 실행 순으로서 결정한다. 그리고, 제 2 실행 순 결정 수단은, 제 2 대기 시간 예측 수단에 의해 예측된 대기 시간을 제 1 요구를 포함한 모든 요구를 더한 합계가 최소가 되고, 각 요구의 대기 시간이 모두 최대 허용 대기 시간을 초과하지 않는 실행 순을 제 2 실행 순으로서 결정한다. 여기서, 최대 허용 대기 시간은, 미리 관리자에 의해 장치에 설정할 수 있고, 또는, 호스트 장치에서 요구와 함께 지정할 수도 있다.
또한 바람직하게는, 상기 테이프 라이브러리는 복수의 테이프 드라이브를 포함한다. 이 경우 큐 테이블, 제 1 대기 시간 예측 수단, 제 1 실행 순 결정 수단, 제 2 대기 시간 예측 수단, 제 2 실행 순 결정 수단, 중단 수단 및 적용 실행 순 결정수단은 각각 테이프 드라이브마다 복수 준비된다. 그리고, 상기 저장 수단은 하나의 요구를 복수의 큐 테이블에 각각 가상적으로 저장한다. 상기 장치는 또, 복수의 적용 실행 순 결정 수단이 각각 결정한, 복수의 적용해야 할 실행 순에 복수의 대기 시간의 합계 중에서, 최소의 대기 시간의 합계를 결정한 적용 실행 순 결정 수단을 준비한 테이프 드라이브에, 하나의 요구를 할당하는 할당처 결정 수단을 포함한다. 복수의 중단 수단은 각각, 대응하는 테이프 드라이브에 하나의 요구가 할당된 경우에, 적용해야 할 실행 순으로서의 대응하는 제 2 실행 순의 결정에 응답하여, 실행 중의 요구의 처리를 중단한다. 상기 순서 바꾸기 수단은, 요구를 할당한 테이프 드라이브에 대응하는 큐 테이블에 하나의 요구의 저장을 확정하고, 상기 큐 테이블 내의 모든 요구의 실행 순을 요구를 할당한 테이프 드라이브에 대응하는 적용 실행 순 결정 수단에 의해 결정된 적용해야 할 실행 순에 따라서 순서를 바꾼다.
이상, 데이터의 다시 불러내기 순을 결정하기 위한 장치로서 본 발명을 설명하였지만, 본 발명은, 그와 같은 장치에서 실행되는, 데이터의 다시 불러내기 순을 결정하기 위한 방법 및 프로그램으로서 파악할 수 있다.
본 발명에 의하면, 큐 테이블에 들어간 각 요구는, 요구가 수신된 후 테이프 라이브러리에서 그 처리가 완료하기까지의 대기 시간의 모든 요구에 대한 합계가 최소가 되도록 실행 순이 바뀐다. 그 결과, 본 발명에 관계되는 장치에서는, 호스트 장치의 평균 대기 시간을 최소로 할 수 있고, 호스트 장치에서 본 다시 불러내기 요구의 효율이 높아진다. 본 발명의 그 외의 효과에 대해서는, 각 실시 형태의 기재에서 이해된다.
도 1은 본 발명의 실시 형태에서 사용 가능한 가상 테이프 시스템(100)의 하드웨어 구성의 한 예를 나타낸 도이다.
도 2는 가상 테이프 서버(VTS)(110)의 개략 블록의 한 예를 나타낸 도이다.
도 3은 본 발명의 제 1 실시 형태에 관계되는 데이터의 다시 불러내기 순을 결정하기 위한 장치로서 스토리지 관리자(300a)의 기능 구성의 한 예를 나타낸 도이다.
도 4의 (a)는, 본 발명의 제 1 및 제 3 실시 형태에 관계되는 큐 테이블(315)의 한 예를 나타낸 도이다. (b)는, 본 발명의 제 2 및 제 4 실시 형태에 관계되는 큐 테이블(315)의 한 예를 나타낸 도이다.
도 5의 (a)는, 수신한 순으로 요구를 처리하는 경우의, 각 요구의 대기 시간을 나타낸 도이다. (b)는, 본 발명의 제 1 및 제 3 실시 형태에서, 각 요구의 대기 시간을 나타낸 도이다.
도 6의 (a)는, 본 발명의 제 1 및 제 3 실시 형태에 관계되는 대기 시간 산출 테이블의 한 예를 나타낸 도이다. (b)는, (a)는, 본 발명의 제 2 및 제 4 실시 형태에 관계되는 대기 시간 산출 테이블의 한 예를 나타낸 도이다.
도 7은 본 발명의 제 2 실시 형태에 관계되는 데이터의 다시 불러내기 순을 결정하기 위한 장치로서의 스토리지 관리자(300b)의 기능 구성의 한 예를 나타낸 도이다.
도 8은 실행 중의 요구를 중단하고 다음 요구를 먼저 처리하는 경우의, 각 요구의 대기 시간을 나타낸 도이다.
도 9는 본 발명의 제 3 실시 형태에 관계되는 데이터의 다시 불러내기 순을 결정하기 위한 장치로서의 스토리지 관리자(300c)의 기능 구성의 한 예를 나타낸 도이다.
도 10은 본 발명의 제 4 실시 형태에 관계되는 데이터의 다시 불러내기 순을 결정하기 위한 장치로서의 스토리지 관리자(300d)의 기능 구성의 한 예를 나타낸 도이다.
도 11은 본 발명의 제 1 실시 형태에 관계되는 스토리지 관리자(300a)의 처리의 흐름을 나타낸 흐름도의 한 예를 나타낸 도이다.
도 12는 본 발명의 제 2 실시 형태에 관계되는 스토리지 관리자(300b)의 처리의 흐름을 나타낸 흐름도의 한 예를 나타낸 도이다.
이하, 본 발명을 실시하기 위한 형태를 도면에 근거하여 상세하게 설명하지만, 이하의 실시 형태는 특허 청구의 범위에 있는 발명을 한정하는 것이 아니고, 또 실시 형태 중에서 설명된 특징의 모든 조합이 발명의 해결 수단에 필수라고 할 수 없다. 또한, 실시 형태의 설명의 전체를 통해서 같은 요소에는 같은 번호를 붙였다.
도 1은, 본 발명의 실시 형태에서 사용 가능한 가상 테이프 시스템(100)의 대표적인 하드웨어 구성의 한 예를 나타낸다. 본 실시 형태에 관계되는 가상 테이프 시스템(100)은, 적어도 하나의 호스트 장치(105), 적어도 하나의 가상 테이프 서버(Virtual Tape Server, VTS)(110), 및 라이브러리 시스템(115)을 포함한다.
각 호스트 장치(105a,b)는, 퍼스널 컴퓨터, 워크 스테이션, 서버, 메인 프레임과 같은, 본 발명의 기술 분야에서 공지된 몇 개의 계산기로 할 수 있다. 또 각 호스트 장치(105a, b)는, 본 발명의 기술 분야에서 공지된 몇 개의 오페레이팅 시스템을 포함할 수 있다. 호스트 장치(105)와 VTS(110)의 사이의 접속(120)은, 스토리지 에어리어 네트워크(SAN) 또는, 다른 호적한 통신 채널, 예를 들면 IBM(상표) 메인 프레임 컴퓨터에서 사용되는 엔터프라이즈 시스템 접속(ESCOM)(상표) 채널을 사용할 수 있다.
VTS(110)는, 본 발명의 기술 분야에서 공지된 몇 개의 서버 계산기이고, 본 발명의 기술 분야에서 공지된 몇 개의 오퍼레이팅 시스템을 포함한다. 예를 들면, 본 발명의 특정의 실시에서, VTS(110)는, IBM RS/6000(등록 상표) 시스템, IBM P 시리즈(IBM Corporation의 상표)를 포함하는 하나 또는 복수의 컴퓨터에서 실시할 수 있고, IBM AIX(IBM Corporation의 상표) 오퍼레이팅 시스템을 포함할 수 있다.
VTS(110)는 또, 스토리지의 사용을 최적화하는 스토리지 관리자와 같은 어플리케이션을 포함할 수 있다. 스토리지 관리자는, 독립의 어플리케이션으로서 실장할 수 있고 복수의 다른 어플리케이션의 일부로서 실장할 수도 있다. 특정의 실시에서 스토리지 관리자는, IBM Magstar(IBM Corporation의 상표) 가상 테이프 서버 및 IBM ADSTAR(IBM Corporation의 상표) 분산형 관리(ADSM) 소프트웨어 또는 Tivoli(IBM Corporation의 상표) 스토리지 관리자와 같은 자동 데이터 스토리지 라이브러리를 사용하기 위한 소프트웨어를 포함할 수 있다. 스토리지 관리자는, 호스트 장치(105), 후술하는 VTS(110) 내의 캐시, 및 라이브러리 시스템(115) 사이의 데이터 이동 작업을 수행할 수 있다.
라이브러리 시스템(115)은, Magstar(IBM Corporation의 상표)(3494) 테이프 라이브러리와 같은 테이프 라이브러리, 또는, 본 발명의 기술 분야에서 공지된 다른 몇 개의 자동 데이터 스토리지 라이브러리 시스템으로 할 수 있다. 특정의 실시에서, 라이브러리 시스템(115)는, 라이브러리 관리자(130), 테이프 드라이브 유닛으로 할 수 있는 1 이상의 테이프 드라이브 장치(135a, b, c), 액세스 기구(140), 및 복수의 테이프 카트리지(145a, ..., n)를 포함한다. 계산기에 의해 실현되는 라이브러리 관리자(130)는, 테이프 드라이브 장치(135) 및 액세스 기구(140)와 상호 접속되고, 이것들의 동작을 제어한다.
도 1에서는, 3개의 테이프 드라이브 장치(135a, b, c)를 나타내었다. 본 발명은 하나 또는 복수의 테이프 드라이브 장치(135)를 포함하는 가상 테이프 시스템(100)의 아래에서 동작 가능하다. 도 1에서, 라이브러리 관리자(130)와, 테이프 드라이브 장치(135) 및 액세스 기구(140)와의 상호 접속은, 라이브러리 관리자(130)가, 테이프 드라이브 장치(130) 또는 액세스 기구(140) 또는 그 양쪽에 제어 신호를 송신 및 수신하기 위한 것이라는 것을 나타내기 위해서, 파선으로 나타내었다. 그 한편으로, VTS(110)와 테이프 드라이브 장치(135)와의 사이의 상호 접속은, 저장 또는 검색되는 데이터를 송신 및 수신하기 위한 것으로 한 것에서, 실선으로 나타내었다.
VTS(110)와 테이프 드라이브 장치(135)와의 사이의 상호 접속(125)은, SAN, 로컬 에어리어 네트워크(LAN), 와이드 에어리어 네트워크(WAN), 또는 인터넷을 통해서 수행할 수 있다. 또는, VTS(110)와 테이프 드라이브 장치(135)는, 포인트 투 포인트 또는 멀티 드롭 버스 접속, 예를 들면, Small Computer Storage Interface(SCSI) 인터페이스를 통한 직접 접속을 포함한, 다른 호적한 타입의 네트워크를 통해서 접속할 수 있다.
액세스 기구(140)는, 선택된 테이프 카트리지(145)를 지정된 테이프 드라이브 장치(135)에 이송하도록 구성된, 로봇 암 또는 다른 기계적인 장치로 할 수 있다. 액세스 기구(140)는, 통상은 그리퍼(gripper)와, 그리퍼 상에 실장된 바코드 스캐너 또는 같은 인식 시스템을 포함한다. 바코드 스캐너는 테이프 카트리지(145)에 붙은 카트리지 라벨 상에 인쇄된 볼륨의 일련 번호를 인식하기 위해 사용된다.
오퍼레이터 인터페이스(150)가, 라이브러리 관리자(130)에 접속된 오퍼레이터 인터페이스(150)는, 라이브러리 관리자(130)와 통신하는 계산기로 할 수 있다. 유저는, 호스트 장치(105)와는 독립적으로 라이브러리 시스템(115)의 오퍼레이팅 파라미터를 제어할 수 있다.
호스트 장치(105)는, VTS(110)와 테이프 조작을 주고 받는다. 테이프 조작의 실행은, 후술하는 VTS(110) 내의 캐시 내에 저장된 논리 볼륨에서 데이터를 검색하든지, 상기 논리 볼륨에 데이터를 저장한다. VTS(110)는, 캐시 내의 논리 볼륨을 자동적으로 사전에 마이그레이션(오프 로드)한다. 특정의 실시에 있어서는, 최장 시간 미사용의 논리 볼륨이, 캐시에서 라이브러리 시스템(115) 내의 테이프 카트리지(145)에 전송된다. 호스트 장치(105)가, 캐시 내에는 없는 논리 볼륨을 필요로 하는 경우, VTS(110)의 스토리지 관리자는, 요구된 논리 볼륨을 포함하는 테이프 카트리지(145)를 적당한 테이프 드라이브 장치(135)에 마운트하도록, 라이브러리 시스템(115), 즉 라이브러리 관리자(130)에 명령한다. 요구된 데이터는 VTS(110)의 캐시 내의 논리 볼륨으로서, 상기 테이프 카트리지(145)에서 불러내어져 복사된다.
도 2는, 도 1에 나타낸 VTS(110)의 실시 형태를 나타낸 개략 블록 도이다. VTS(110)는, 버스, 프로세서, 메모리, 등을 갖춘 계산기에 의해 실현될 수 있다. 하지만 이러한 요소는, 본 발명에 관한 VTS(110)의 여러 실행 가능 모듈 및 데이터 블록을 보다 명확하게 나타내기 위해서, 도 2에서는 생략되었다. 또 VTS(110)의 실장은, 당 분야에서 알려진 다른 실행 가능 모듈 및 데이터 블록이 존재해도 되지만, 본 발명에 불가결한 요소에 초점을 두기 위해서 그와 같은 요소는 도 2에서는 생략되었다.
도 2에 나타낸 것처럼, VTS(110)는, 복수의 가상 테이프 드라이브(200a, cm), 파일 시스템 관리자(205), 적어도 하나의 직접 액세스 기억 장치(Direct Access Storage Device, DASD) 캐시(210), 스토리지 관리자(215), 및 큐(220)를 포함한다.
DASD 캐시(210)는, 호스트 장치(105)에서 데이터를 논리 볼륨 상에 파일의 형식으로 일시적으로 저장한다. 한 예에 의하면, DASD 캐시(210)는, RAID(5) 등의 독립 드라이브의 장황 어레이 내에 배치 구성 가능한 하나 또는 복수의 하드 디스크 드라이브에 의해 실현된다. 호스트 장치(105)에서의 기록 커맨드 및 데이터는, 가상 테이프 드라이브(200)에 의해 수신되고, 처리된 후, 파일로서 DASD 캐시(210)에 기록된다. 그 후 적당한 타이밍에, 스토리지 관리자(215)는, 테이프 카트리지(145)에의 파일의 복사를, 라이브러리 관리자(130)에 요구한다. 그 후, 갱신이 끝난 논리 볼륨은, 스토리지 관리자(215)에 의해, DASD 캐시(210)에서 테이프 드라이브 장치(135)에 마운트 된 적절한 테이프 카트리지(145)에 전송된다. 또한, 가상 테이프 드라이브(200)는, 호스트 장치(105)로부터의 제어 커맨드도 처리한다.
파일 시스템 관리자(205)는, DASD 캐시(210) 내의 데이터 스토리지를 관리 및 조정한다. 스토리지 관리자(215)는, 파일 시스템 관리자(205)와 테이프 드라이브 장치(135)와의 사이의 통신을 제어한다. 스토리지 관리자(215)는 또, VTS(110)와 라이브러리 관리자(130)와의 사이의 통신도 제어한다. 호스트 장치(105)가, 특정의 논리 볼륨을 요구하면, 가상 테이프 드라이브(200)를 통해서 상기 요구를 수신한 스토리지 관리자(215)는, 요구된 논리 볼륨이 DASD 캐시(210) 내에 있는지를 판단한다.
DASD 캐시(210) 내에 없는 경우, 스토리지 관리자(215)는, 요구된 논리 볼륨의 다시 불러내기를, 라이브러리 관리자(130)에 요구한다. 그 후 테이프 드라이브 장치(135)에서 VTS(110)에 돌아오라고 요구된 논리 볼륨은, DASD 캐시(210)에 복사됨과 같이, 가상 테이프 드라이브(200)를 통해서 호스트 장치(105)에 보내진다. 스토리지 관리자(215)는, 추가 다시 불러내기 요구를 일시적으로 넣기 위한 큐(220)를 포함할 수 있다. 따라서, 스토리지 관리자(215)는, 테이프 드라이브 장치(135)를 이용해서 테이프 카트리지(145)에서 논리 볼륨을 다시 불러내기 위한 장치이다.
또한, 도 1에 나타낸 라이브러리 관리자(130)는, 그 내부에, 논리 볼륨 및 물리 볼륨에 관한 정보를 저장하는 데이터 베이스(도시 없음)를 가진다. VTS(110)로부터 명령을 수신하면, 라이브러리 관리자(130)는, 그 데이터 베이스를 참조하여, 논리 볼륨의 복사본이 작성되는 또는 검색되는 테이프 카트리지(145)를 발견하여, 상기 테이프 카트리지(145)를 마운트 하기 위한 명령을, 적절한 테이프 드라이브 장치(135) 또는 액세스 기구(140) 또는 그 양쪽에 보낸다.
(제 1 실시 형태)
도 3은, 본 발명의 제 1 실시 형태에 관계되는, 데이터의 다시 불러내기 순을 결정하기 위한 장치로서의 스토리지 관리자(300a)의 기능 구성의 한 예를 나타낸 도이다. 도한, 제 1 실시 형태에서는, 도 1에서 나타낸 라이브러리 시스템(115)은 테이프 드라이브 장치(135)를 하나만 포함한다. 제 1 실시 형태에 관계되는 스토리지 관리자(300a)는, 큐 테이블에 들어간 모든 요구의 생각될 수 있는 모든 실행 순 중에서, 요구가 수신되고 나서 라이브러리 시스템(115)에 있어서 그 처리가 완료하기까지의 대기 시간의 평균이 최소가 되는 실행 순을 구하여, 상기 실행 순에 따라서 큐 테이블 내의 요구의 순서를 바꾼다.
그와 같은 제 1 실시 형태에 관계되는 스토리지 관리자(300a)는, 요구 수신부(305), 저장부(310), 큐 테이블(315), 최소 대기 시간 결정부(320a), 순서 바꾸기부(335)를 포함한다. 여기서, 최소 대기 시간 결정부(320a)는, 제 1 대기 시간 예측부(325) 및 제 1실행 순 결정부(330)를 포함한다.
요구 수신부(305)는, 라이브러리 시스템(115)에서 다시 불러내기 할 필요가 있는 데이터에 대한 호스트 장치(105)의 요구 X를 수신한다. 이 때, 요구 수신부(305)는, 요구 X의 수신 시각으로서 현재 시각을 취득한다. 요구 수신부(305)는 또, 요구 X를 바로 식별하기 위한 커맨드 ID를, 수신한 요구에 할당한다. 또한 요구 수신부(305)가 수신하는 호스트 장치(105)의 요구 X는, 데이터 읽어내기 또는 기록 요구 어느 쪽이든 있을 수 있지만, 본 실시 예에서는 데이터의 읽어내기 요구에 대해서 설명한다.
호스트 장치(105)로부터 데이터 읽어내기 요구에서는, 목적의 데이터를 식별하기 위한 정보가 포함된다. 여기서, 요구 수신부(305)는, 목적의 데이터 식별 정보에서, 목적의 데이터가 기록된 미디어 ID, 즉 테이프 카트리지 식별자, 테이프 카트리지 상의 읽어내기 시작 장치, 목적의 데이터의 읽어내기에 걸리는 실행 시간, 및 테이프 카트리지 상의 읽어내기 종료 위치를 결정한다. 여기서, 실행 시간은, 읽어내기 시작 위치에서 읽어내기 종료 위치까지 테이프를 이동시키기 위해서 필요한 시간을 의미한다. 실행 시간을 구할 때에, 예를 들면, 디폴트 설정이 되어 있을 때 읽어내기 할 때의 테이프 속도(예를 들면 8.5m/sec)를 이용할 수 있다. 요구 수신부(305)는, 수신한 요구에 관한 각종 정보를 저장부(310)에 보낸다.
저장부(310)는, 요구 수신부(305)에 의해 수신된 요구 X를 큐 테이블(315)에 저장한다. 도 4(a)는, 본 발명에 관계되는 큐 테이블(315)의 한 예를 나타낸다. 도 4(a)에 나타낸 것처럼, 본 실시 형태에 있어서 큐 테이블(315)은, 커맨드 ID 필드, 수신 시각 필드, 미디어 ID 필드, 시작 위치 필드, 실행 시간 필드, 및 종료 위치 필드를 포함한다. 저장부(310)는, 요구 수신부(305)에서 보내진 각 정보를, 큐 테이블(315)의 대응하는 필드에 각각 저장한다. 또한, 요구 X는, 처리를 위해 큐 테이블(315)에서 꺼낼 때에 큐 테이블(315)에서 삭제된다. 하지만 꺼낸 요구 X의 각종 정보는, 그 처리 시작 시각과 함께, 요구 X의 처리가 완료하기까지 메모리에 유지된다. 도 4(a)에서는, 이해를 용이하게 하기 위해서, 처리 중의 요구(커맨드 #0)의 엔트리를 포함한, 시작 시각 필드를 가진 큐 테이블(315)을 나타낸다.
제 1 대기 시간 예측부(325)는, 큐 테이블(315)에의 요구 X의 저장에 응답하여, 큐 테이블(315) 내에 저장된 모든 요구의 생각될 수 있는 모든 실행 순의 각각에 대해서, 상기 실행 순으로 처리한 경우의 각 요구에 대해서의 대기 시간을 예측한다. 여기서, 대기 시간이란, 요구 수신부(305)에 의한 요구 X의 수신에서부터 요구 X의 라이브러리 시스템(115)에서 처리의 완료까지의 시간을 의미한다. 이와 같은 요구 X의 대기 시간 Tx는, 다음의 식에 의해 나타낼 수 있다.
Tx = Wx(o) + Ax(p,n) - (1)
식(1)에서는, 요구 수신부(305)에서 요구 X가 수신되고 나서 요구 X의 처리가 시작되기까지의, 시작 전 대기 시간을 나타낸다. Wx(o)는, 큐 테이블(315)에 저장된 모든 요구의 처리 순에 의존하는 함수이다. 또 Ax(p,n)는, 요구 X의 처리가 시작되고 나서 종료하기까지의 처리 소요 시간을 나타낸다. Ax(p,n)는, 직전 및 직후에 처리되는 요구에 의존하는 함수이다. 처리 소요 시간을 나타내는 는 또, 다음의 식에 의해 나타낼 수 있다.
Ax(p,n) = Lx(p) + Sx(p) + Cx + Rx(n) + Ux(n) - (2)
Lx(p)는, 요구 X가 대상으로 하는 데이터를 기록하는 미디어, 즉 테이프 카트리지(145)를 테이프 드라이브 장치(135)에 로드하는데 필요한 로드 시간을 나타낸다. 로드 시간은, 엄밀하게는 테이프 카트리지(145)의 저장 장소와 테이프 드라이브 장치(135)의 물리적인 위치 관계에 의존하는 것으로 간주된다. 하지만 테이프 드라이브 장치(135)가 테이프 카트리지(145)를 언 로드 하는 동안에, 액세스 기구(140)가 다음으로 사용하는 테이프 카트리지(145)를 테이프 드라이브 장치(135)의 바로 옆에 이동시키는 라이브러리 시스템(115) 하에서는 차이가 없다. 라이브러리 시스템(115) 하에서는 차이가 없다). 본 실시 예에서 Lx(p)는, 미리 정해진 로드 시간, 예를 들면 10초라고 하자. 단, 요구 X가 대상이 되는 데이터가, 직전에 처리되는 요구와 같은 테이프 카트리지(145)에 기록된 경우, 테이프 카트리지(145)를 로드 할 필요가 없기 때문에, Lx(p)는 0이 된다. 이상과 같이 Lx(p)는, 직전에 처리되는 요구에 의존하는 함수이다.
Sx(p)는, 요구 X가 대상이 되는 데이터의 읽어내기 시작 위치에 테이프를 이동시키는데 필요한 위치 맞춤 시간을 나타낸다. Sx(p)는, 테이프의 선두에서 요구 X가 대상이 되는 데이터의 읽어내기 시작 위치까지의 테이프의 길이를, 테이프의 이동 속도로 나누는 것으로 구할 수 있다. 테이프의 이동 속도는, 디폴트 설정된 테이프 이동 속도(예를 들면 10m/sec)를 이용할 수 있다. 단, 요구 X가 대상으로 하는 데이터가, 직전에 처리되는 요구와 같은 테이프 카트리지(145)에 기록된 경우, 함수 Sx(p)는, 직전의 요구의 데이터의 읽어내기 종료 위치에서, 요구 X가 대상으로 하는 데이터의 읽어내기 시작 위치까지의 테이프의 길이를, 테이프의 이동 속도로 나누는 것으로 구할 수 있다. 이상과 같이 Sx(p)는, 직전에 처리된 요구에 의존하는 함수이다.
Cx는, 상술한, 목적의 데이터의 읽어내기에 실제로 걸리는 실행 시간을 나타낸다. Rx(n)는, 목적의 데이터의 읽어내기 종료 후에, 테이프를 그 선두까지 되감는데 필요한 되감기 시간을 나타낸다. Rx(n)는, 요구 X가 대상으로 하는 데이터의 읽어내기 종료 위치에서 테이프의 선두까지의 테이프의 길이를, 테이프 이동 속도로 나누는 것으로 구할 수 있다. 테이프의 이동 속도는, 상술한 것처럼 디폴트 설정된 테이프 이동 속도(예를 들면, 10m/sec)를 이용할 수 있다. 단, 요구 X가 대상으로 하는 데이터가, 직후에 처리되는 요구와 같은 테이프 카트리지(145)에 기록된 경우 테이프의 되감기는 필요 없기 때문에, Rx(n)는 0이 된다. 이상과 같이 Rx(n)는, 직후에 처리된 요구에 의존하는 함수이다.
마지막으로 Ux(n)는, 데이터의 읽어내기가 종료한 테이프 카트리지(145)를, 테이프 드라이브 장치(135)에서 언로드하는데 필요한 언로드 시간을 나타낸다. 또한, 테이프 드라이브 장치(135)는, 테이프 카트리지(145)를 언로드한 후는 다음의 처리를 수행할 수 있기 때문에, 본 실시 예에서 언로드 시간은, 테이프 카트리지(145)를 테이프 드라이브 장치(135)에서 원래의 저장 장소까지 이동시키는데 필요한 시간을 포함하지 않는다. 본 실시 예에서, Ux(p)는, 미리 정한 언로드 시간, 예를 들면 20초라고 하자. 단, 요구 X가 대상으로 하는 데이터가, 직후에 처리되는 요구와 같은 테이프 카트리지(145)에 기록된 경우, 테이프 카트리지(145)를 언로드할 필요는 없기 때문에, Ux(p)는 0이 된다. 이상과 같이 Ux(p)는, 직후에 처리된 요구에 의존하는 함수이다.
여기서, 도 5(a) 및 (b)를 참조해서, Wx(o)가, 큐 테이블(315)에 저장된 모든 요구의 처리 순에 의존하는 것을 설명한다. 도 5(a) 및 (b)에서는, 현재 시각 Tour에서 요구(커맨드 #0)의 다시 불러내기 요구가 처리되어 있고, 큐 테이블(315)에서는, 요구(커맨드 #1)와, 시각 Tour에 수신된 지 얼마 안된 요구(커맨드 #2)가 저장된 것으로 한다. 그리고, 요구(커맨드 #1)의 실행 시간 C1은, 상당히 길게, 한편 요구(커맨드 #2)의 실행 시간 C2는 상당히 짧게 한다.
도 5(a) 및 (b)에서, 시각 TR0 , TR1, TR2는 각각, 요구(커맨드 #0) ~ 요구(커맨드 #2)의 요구 수신부(305)에서 수신 시간을 나타낸다. 또 시각 TS0은, 요구(커맨드 #0)의 처리 시작 시각을, 시각 TE0, TE1/T'E1, TE2/T'E2는 각각, 요구(커맨드 #0) ~요구(커맨드 #2)의 처리 종료 시각을 나타낸다. 또한, 이해를 용이하게 하기 위해, 요구(커맨드 #0) ~요구(커맨드 #2)가 각각 목적으로 하는 데이터는, 모두 같은 테이프 카트리지(145)에 기록된다.
이와 같은 상황에서, 요구 수신부(305)에서 수신 시각이 빠른 순으로 요구를 처리하는 경우의 각 요구의 시작 전 대기 시간 W 및 처리 소요 시간 A를 나타낸 것이 도 5(a)이다. 도 5(a)를 보면 알 수 있듯이, 요구(커맨드 #1)의 처리 소요 시간 (508)이 그 실행 시간 C1에 기인하여 상당히 길기 때문에, 요구(커맨드 #2)의 시작 전 대기 시간 W2(510)는, 그 처리 소요 시간 A2(512)는 상당히 짧으면서도, 길다.
한편, 요구(커맨드 #1) 보다 나중에 수신된 요구(커맨드 #2)를 먼저 처리한 경우의 각 요구의 시작 전 대기 시간 W 및 처리 소요 시간 A를 나타낸 것이 도 5(b)이다. 이 경우, 요구(커맨드 #2)는, 긴 실행 시간 C1을 가진 요구(커맨드 #1)의 처리를 기다릴 필요가 없기 때문에, 그 시작 전 대기 시간 W2(526)는 도 5(a)에서 요구(2)의 시작 전 대기 시간 W2(510)보다 상당히 짧아졌다. 한편 요구(커맨드 #1)의 시작 전 대기 시간 W1(530)은, 도 5(a)에서 요구(커맨드 #1)의 시작 전 대기 시간 W1(506)보다 길어졌지만, 먼저 처리된 요구(커맨드 #2)의 실행 시간 C2가 상당히 짧기 때문에, 그 차는 아주 적다. 그 결과, 요구(커맨드 #0) ~ 요구(커맨드 #2)의 대기 시간의 평균은, 도 5(a)의 경우보다 도 5(b)의 경우가 짧다. 이와 같이, 요구 X의 시작 전 대기 시간 Wx(o)는, 큐 테이블(315)에 저장된 모든 요구의 처리 순에 의존한다.
제 1 대기 시간 예측부(325)는, 상술한 식(1) 및 (2)를 이용해서, 큐 테이블(315) 내에 저장된 모든 요구에 대해 생각될 수 있는 모든 실행 순의 각각에 대해서, 상기 실행 순으로 처리한 경우의 각 요구의 대기 시간을 예측한다. 한 예로서, 제 1 대기 시간 예측부(325)는, 다음과 같이 해서 각 요구의 대기 시간을 산출한다. 또한, 설명을 위해서, 현재 요구(커맨드 #0)의 다시 불러내기가 처리 중이고, 큐 테이블(315)에서는, 요구(커맨드 #1) ~ 요구(커맨드 #N)까지의 N개의 요구가 저장되었다고 가정하자. 그러면, 모든 요구의 생각될 수 있는 실행 순은 N! 대로(N! 개) 존재한다. 여기서 N!의 실행 순에 대해서, 도 6(a)에 나타낸 것처럼 대기 시간 산출 테이블을 순서대로 작성한다.
도 6(a)에서 나타낸 복수의 대기 시간 산출 테이블의 각각은, 커맨드 ID 필드, 수신 시각 필드, 시작 시각 필드, 처리 소요 시간 필드, 완료 시각 필드, 대기 시간 필드를 가진다. 여기서 어떤 하나의 실행 순 D에 대해서, 대기 시간 산출 테이블의 작성 방법을 설명한다. 실행 순 D의 대기 시간 산출 테이블을 완성시키기 위해서, 우선, 실행 순 D에 따라서 순서대로, 각 요구의 커맨드 ID와 수신 시각을 대기 시간 산출 테이블에 등록한다. 여기서, 등록하는 요구는 현재 처리 중의 요구(커맨드 #0)도 포함한다. 단, 어느 실행 순의 대기 시간 산출 테이블에 대해서도, 요구(커맨드 #0)는 실행 순 0으로서 대기 시간 산출 테이블의 제일 처음 등록한다.
다음으로, 상술한 식(2)를 이용해서, 실행 순 D에 따라서 순서대로 각 요구의 처리 소요 시간을 산출하고, 산출한 처리 소요 시간을 대기 시간 산출 테이블에 등록한다. 또한, 임의의 요구 X의 처리 소요 시간 Ax(p,n)는, 그 전후에 실행되는 요구가 정해지면, 큐 테이블(315) 내의 값을 사용해서, 상기 식(2)에 의해 구할 수 있다는 것에 유의하길 바란다. 단, 요구(커맨드 #0)의 직전에 처리된 요구의 미디어 ID와 읽어내기 종료 위치는, 항상 메모리에 일시적으로 유지해 두고, 요구(커맨드 #0)의 처리 소요 시간 Ax(p,n)를 구할 때에 참조한다.
그리고 다음으로, 큐 테이블(315)에서 요구(커맨드 #0)의 시작 시각 TS0을 읽어내서 대기 시간 산출 테이블에 등록한다. 또, 요구(0)의 시작 시각 TS0에 요구(커맨드 #0)의 처리 소요 시간 A0을 더하는 것으로, 요구(0)의 완료 시각 TE0을 구한다. 최종적으로 요구(커맨드 #0)의 대기 시간은, 완료 시각 TE0에서 수신 시각 TR0을 빼는 것으로 구해진다.
다른 요구에 대해서도, 요구(커맨드 #0)와 같은 처리를 실행 순 D에 따라서 순서대로 수행한다. 단, 다른 요구에 대해서의 시작 시각은, 상기 요구의 직전의 요구의 완료 시각이 된다. 그리고 상기 대기 시간 산출 테이블 작성 처리를, N! 개의 실행 순 각각에 대해서 수행하면, 최종적으로, 모든 실행 순의 각각에 대해서, 상기 실행 순으로 처리한 경우의 각 요구의 대기 시간이 구해진다.
제 1 실행 순 결정부(330)는, 제 1대기 시간 예측부(325)에 의해 예측된 대기 시간을 실행 중의 요구를 포함한 모든 요구를 더한 합계가 최소가 되는 실행 순인 제 1 실행 순을, 적용해야 할 실행 순으로서 결정한다. 제 1 실행 순 결정부(330)는, 제 1 대기 시간 예측부(325)에 의해 작성된 N! 개의 대기 시간 산출 테이블의 각각에 대해서, 요구(0~N)까지의 대기 시간의 합계를 산출한다. 그리고, 제 1실행 순 결정부(330)는, 대기 시간의 합계가 최소가 되는 대기 시간 산출 테이블에 대응하는 실행 순인 제 1 실행 순을, 실제로 적용해야 할 실행 순으로서 결정한다.
바람직하게는 제 1 실행 순 결정부(330)는, 제 1 대기 시간 예측부(325)에 의해 예측된 대기 시간을 실행 중의 요구를 포함한 모든 요구를 더한 합계가 최소가 되고, 각 요구의 대기 시간이 모두 최대 허용 대기 시간을 초과하지 않는 실행 순인 제 1 실행 순을, 적용해야 할 실행 순으로서 결정한다. 여기서, 최대 허용 대기 시간은, 미리 관리자에 의해 장치에 설정되어 있어도 되고, 또는, 호스트 장치(105)에서 요구와 함께 지정되는 것이어도 된다.
이 경우, 제 1 실행 순 결정부(330)는, 제 1 대기 시간 예측부(325)에 의해 작성된 N! 개의 테이블에서, 요구(커맨드 #0) ~ 요구(커맨드 #N)까지의 각 대기 시간이 모두 최대 허용 대기 시간을 초과하지 않는 대기 시간 산출 테이블을 뽑아낸다. 그리고 제 1 실행 순 결정부(330)는, 뽑아낸 대기 시간 산출 테이블 각각에 대해서, 요구(커맨드 #0) ~ 요구(커맨드 #N)까지의 대기 시간의 합계를 산출한다. 마지막으로 제 1 실행 순 결정부(330)는, 대기 시간의 합계가 최소가 되는 대기 시간 산출 테이블에 대응하는 실행 순인 제 1 실행 순을, 실제로 적용해야 할 실행 순으로서 결정한다.
순서 바꾸기부(335)는, 제 1 실행 순 결정부(330)에 의해 결정된 적용해야 할 실행 순에 따라서, 큐 테이블(315) 내의 모든 요구의 실행 순을 바꾼다.
이와 같이 제 1 실시 형태에 관계되는 스토리지 관리자(300a)에서는, 큐 테이블(315)에 들어간 각 요구는, 요구가 수신되고 나서 그 처리가 완료하기까지의 대기 시간의 모든 요구에 대한 합계가 최소가 되도록 실행 순으로 바꿀 수 있다. 그 결과, 본 발명에 관계되는 장치에서는, 호스트 장치(105)의 평균 대기 시간을 최소로 할 수 있어, 호스트 장치에서 본 다시 불러내기 요구의 효율이 높아진다.
(제 2 실시 형태)
도 7은, 본 발명의 제 2 실시 형태에 관계되는 데이터의 다시 불러내기 순을 결정하기 위한 장치로서의 스토리지 관리자(300b)의 기능 구성의 한 예를 나타낸 도이다. 또한, 제 2 실시 형태에서, 도 1에 나타낸 라이브러리 시스템(115)은 테이프 드라이브 장치(315)를 하나만 포함한다. 제 2 실시 형태에 관계되는 스토리지 관리자(300b)는, 현재 실행 중의 요구의 처리를 일단 중단해서 나중에 수신한 요구를 먼저 처리하는 편이, 오버 헤드를 고려해도 호스트 장치(105)의 평균 대기 시간을 단축할 수 있는 경우가 있다는 것을 고려한다.
이처럼 현재 실행 중의 요구의 처리를 일단 중단하는 편이, 호스트 장치(105)의 평균 대기 시간을 단축할 수 있는 경우를, 도 5(a) 및 도 8을 참조해서 설명한다. 도 5(a) 및 도 8에서는, 현재 시각 Tour에서 요구(커맨드 #0)의 다시 불러내기 요구가 처리되고, 큐 테이블(315)에서는, 요구(커맨드 #1)와, 시각 Tour에 막 수신한 요구(커맨드 #2)가 저장된다. 그리고 요구(커맨드 #0)의 실행 시간 C0과 요구(커맨드 #1)의 실행 시간 C1은 상당히 길고, 한편 요구(커맨드 #2)의 실행 시간 C2는 상당히 짧은 것으로 한다.
또 도 5(a) 및 도 8에서, 시각 TR0, TR1, TR2는 각각, 요구(커맨드 #0) ~ 요구(커맨드 #2)의 요구 수신부(305)에서 수신 시각을 나타낸다. 시각 TS0은, 요구(커맨드 #0)의 처리 시작 시각을 나타낸다. 도 5(a)에서 시각 TE0, TE1, TE2는 각각, 요구(커맨드 #0) ~ 요구(커맨드 #2)의 처리 종료 시각을 나타낸다. 또, 도 8에서, 시각 T'E0은 요구(커맨드 #0)를 중단한 시각(동시에, 현재 시각 Tour, 요구(커맨드 #2)의 수신 시각이기도 하다), T''E0, T''E1, T''E2는 각각, 재개한 요구(커맨드 #0), 요구(커맨드 #1) 및 요구(커맨드 #2)의 처리 종료 시각을 나타낸다. 또한, 이해를 용이하게 하기 위해서, 요구(커맨드 #0) ~ 요구(커맨드 #2)가 각각 목적으로 하는 데이터는, 모두 같은 테이프 카트리지(145)에 기록된다.
이와 같은 상황에서, 요구 수신부(305)에 있어서 수신 시각이 빠른 순으로 요구를 처리하는 경우의 각 요구의 시작 전 대기 시간 W 및 처리 소요 시간 A를 나타낸 것이 도 5(a)이다. 도 5(a)를 보면 알 수 있듯이, 요구(커맨드 #0)의 처리 소요 시간 A0(504) 및 요구(커맨드 #1)의 처리 소요 시간 A1(508)이 그 실행 시간 C0, C1에 기인하여 각각 상당히 길기 때문에, 요구(커맨드 #2)의 시작 전 대기 시간 W2(510)는, 그 처리 소요 시간 A2(512)는 상당히 짧지만, 길게 되어 있다.
한편, 요구(커맨드 #0)의 다시 불러내기 처리를, 요구(커맨드 #2)를 수신한 현재 시각 Tour에서 일단 중지하고, 요구(커맨드 #2)를 먼저 처리한 경우의 각 요구의 시작 전 대기 시간 W 및 처리 소요 시간 A를 나타낸 것이 도 8이다. 이 경우 요구(커맨드 #2)는, 긴 실행 시간 C0, C1을 각각 가진 요구(0) 및 요구(1)의 처리를 기다릴 필요가 없기 때문에, 그 시작 전 대기 시간은 0이 된다. 또한, 요구(커맨드 #0)와 요구(커맨드 #2)가, 각각 다른 테이프 카트리지(145)에 등록된 데이터를 목적으로 하는 경우는, 요구(커맨드 #2)는, 요구(커맨드 #0)에 대해서 되감기 시간 R1(n) 및 언로드 시간 U1(n)을 가질 필요가 있다.
한편, 요구(커맨드 #0)는, 처리의 재개를 기다리기 위해서, 새롭게 시작 전 대기 시간 W'0(808)의 대기 시간이 발생한다. 또, 요구(커맨드 #1)도, 요구(커맨드 #2)의 처리를 기다릴 필요가 있기 때문에, 그 시작 전 대기 시간 W1(812)은 도 5(a)의 시작 전 대기 시간 W1(506)보다 길다. 하지만 요구(커맨드 #2)의 실행 시간 C2가 상당히 짧기 때문에, 그 영향은 아주 적다. 그 결과, 요구(커맨드 #0) ~ 요구(커맨드 #2)의 대기 시간의 평균은, 도 5(a)의 경우보다 도 8의 경우가 짧다. 또한 요구(커맨드 #0)의 대기 시간은, W0(802), A0(804), W'0(808) 및 A'0(810)의 합계이다. 이와 같이, 현재 실행 중의 요구의 처리를 일단 중지하는 편이, 호스트 장치(105)의 평균 대기 시간을 단축할 수 있는 경우가 있다. 또한, 중단하기 전에 요구(커맨드 #0)에 대해서 읽어낸 데이터는 일시적으로 유지할 수 있다. 그리고 요구(커맨드 #0)를 재개할 때에는, 남은 데이터만을 읽어내도록 할 수 있다.
이와 같이 현재 처리 중의 요구의 중단을 고려한, 제 2 실시 형태에 관계되는 스토리지 관리자(300b)는, 제 1 실시 형태에 관계되는 스토리지 관리자(300)와 일부 같은 기능 구성을 가진다. 하지만, 제 2 실시 형태에 관계되는 최소 대기 시간 결정부(320)는, 또한, 현재 실행 중의 요구의 처리를 일단 중지한다고 가정한 경우의 최소 대기 시간의 평균치를 구하기 위한, 제 2 대기 시간 예측부(340) 및 제 2 실행 순 결정부(345)를 포함한다. 또, 제 2 실시 형태에 관계되는 최소 대기 시간 결정부(320)는, 현재 실행 중의 요구의 처리를 중단하지 않는다고 가정한 경우의 최소 대기 시간의 평균치와, 현재 실행 중의 요구의 처리를 일단 중지한다고 가정한 경우의 최소의 대기 시간의 평균치를 비교하고, 중단한 편이 대기 시간의 평균치가 작은 경우에 현재 실행 중의 요구의 처리를 중단하기 위한, 적용 실행 순 결정부(350) 및 중단부(355)를 포함한다.
여기서 이하에서는, 새롭게 추가된 상기 복수의 구성 요소에 대해서 설명한다. 또한, 제 2 대기 시간 예측부(340) 및 제 2 실행 순 결정부(345)에 의한 처리는, 제 1 대기 시간 예측부(325) 및 제 1 실행 순 결정부(330)에 의한 처리에서 독립되고, 따라서, 이것들의 처리는 동시에 할 수 있고, 또는 어느 한쪽이 먼저 처리할 수도 있고, 어느 쪽이든 된다.
제 2 대기 시간 예측부(340)는, 큐 테이블(315)에의 요구 X의 저장에 응답해서, 실행 중의 요구를 현재까지의 처리를 수행하는 제 1 요구와 남은 처리를 수행하는 제 2 요구에 가상적으로 분할하고, 상기 제 2 요구를 포함한 큐 테이블(315) 내에 저장된 모든 요구의 생각될 수 있는 모든 실행 순의 각각에 대해서, 상기 실행 순으로 처리한 경우의 각 요구에 대해서 대기 시간을 예측한다. 제 2 대기 시간 예측부(340)에 의한 처리의 구체적인 방법을 이하에 설명하였다.
우선, 제 2 대기 시간 예측부(340)는, 큐 테이블(315)에 요구 X의 저장에 응답하여, 큐 테이블(315)의 복사본을 작성한다. 단, 큐 테이블(315)의 복사본에는, 제 1 요구와 제 2 요구의 엔트리를 추가한다. 예를 들면, 요구 X가 요구 수신부)(305)에 의해 수신되었을 때, 요구(커맨드 #0)가 처리 중이고, 도 4(a)에서 나타낸 큐 테이블(315)이 있다고 가정하자. 또한 제 1 실시 형태에 관해서 설명한 것처럼, 도 4(a)에서 나타낸 큐 테이블(315)에서는, 설명을 용이하게 하기 위해서, 요구(커맨드 #0)의 엔트리를 남기고, 또, 시작 시간 필드를 포함한다. 실제로는 이것들의 데이터는, 큐 테이블(315)과는 다른 메모리에 유지된다. 그러면, 제 2 대기 시간 예측부(340)는, 도 4(a)에서 나타낸 큐 테이블(315)을 기초로, 도 4(b)에서 나타낸 새로운 큐 테이블을 작성한다.
도 4(a)에서, 현재 처리 중의 요구의 커맨드 ID는 커맨드 #0이다. 또, 도 4(b)에서, 현재 처리 중의 요구를 분할해서 생긴 제 1 요구와 제 2 요구의 커맨드 ID는 각각, 커맨드 #01과 커맨드 #02이다. 제 2 요구의 미디어 ID 필드와 종료 위치 필드, 또, 제 1 요구의 수신 시각 필드, 미디어 ID필드, 시작 위치 필드 및 시작 시각 필드에는, 원래 현재 처리 중의 요구, 즉 커맨드 #0의 엔트리의 대응하는 값이 그대로 복사된다(도 4(a) 및 도 4(b) 참조). 제 1 요구의 남은 필드, 즉, 제 1 요구의 종료 위치 필드에는, 요구 X가 큐 테이블(315)에 들어간 시점에 있어서 테이프 드라이브 장치(135)의 헤드의 현재 위치 E'0이 등록된다. 제 1 요구의 실행 시간 필드에는, 시작 위치 S0에서 종료 위치 E'0까지의 거리를, 읽어낼 때의 테이프 속도(예를 들면 8.5m/Sec)에서 나눈 값 C'0이 등록된다.
한편, 제 2 요구의 시작 위치 필드에는, 제 1 요구의 종료 위치 E'0의 값이 등록된다. 또 제 2 요구의 실행 시간 필드에는, 원래 현재 처리 중의 요구, 즉 커맨드 #0의 실행 시간 C0에서 제 1 요구의 실행 시간 C'0을 뺀 값 C''0이 등록된다. 또한, 제 2 요구의 수신 시각 필드는, 공란인 채로 둔다. 이것은 다음의 이유에 의한다. 제 2 요구의 수신 시각은, 제 1 요구의 처리의 완료 시각이 된다. 하지만, 제 1 요구의 처리는, 현재 처리 중의 요구(커맨드 #0)의 중단의 결정과 동시에 종료하는 것이 아니라, 제 1 요구에 대해서 테이프를 되감고, 및 테이프 카트리지의 언 로드가 종료한 시점에서 종료한다. 그리고, 되감기 시간 R과 언 로드 시간 U는, 상술한 것처럼, 직후의 요구에 의존한다. 그 때문에, 제 1 요구의 다음으로 처리되는 요구가 결정되지 않는 것에는, 제 1 요구의 처리의 완료 시각을 산출할 수 없다.
큐 테이블(315)의 복사본이 작성되면, 제 2 대기 시간 예측부(340)는, 제 1 실시 형태에 관해 설명한 대기 시간 산출 테이블을, 제 1 실시 형태에 관해 설명한 것과 기본적으로 같은 방법으로 작성한다. 그와 같은 대기 시간 산출 테이블을 도 6(b)에 나타낸다. 또한, 제 2 대기 시간 예측부(340)는, 처리 중의 요구(커맨드 #0)를 가상적으로 분할해서, 실행 중의 제 1 요구와 처리 대기의 제 2 요구로서 취급한다. 그 때문에, 큐 테이블(315) 내의 처리 대기의 요구의 수가 하나 증가한 것과 같아지고, 제 2 대기 시간 예측부(340)는, 대기 시간 산출 테이블을 작성하는 것에 있어서, 큐 테이블(315)만이 아니라, 상기 작성한 큐 테이블(315)의 복사본을 이용한다. 또, 모든 요구에 대해서 생각될 수 있는 실행 순은 (N+1)!로 되기 때문에, (N+1)! 개의 대기 시간 산출 테이블이 작성된다.
또한, 어느 대기 시간 산출 테이블에서도, 요구 2의 수신 시간 필드는, 제 1 요구의 처리의 완료 시각의 산출 후에, 상기 완료 시각이 등록되는 것에 유의하길 바란다. 제 2 대기 시간 예측부(340)에 의해서, (N+1)! 개의 대기 시간 산출 테이블이 작성되는 것과 동시에, 제 2 요구를 포함한 큐 테이블(315) 내에 저장된 모든 요구의 생각될 수 있는 모든 실행 순의 각각에 대해서, 상기 실행 순으로 처리한 경우의 각 요구에 대해서 대기 시간이 구해진다.
[00057] 제 2 실행 순 결정부(345)는, 제 2 대기 시간 예측부(340)에 의해 예측된 대기 시간을 제 1 요구를 포함한 모든 요구에 대해서 더한 합계가 최소가 되는 실행 순을, 제 2 실행 순으로서 결정한다. 제 2 실행 순 결정부(345)는, 제 2 대기 시간 예측부(340)에 의해 작성된 (N+1)! 개의 대기 시간 산출 테이블의 각각에 대해서, 제 1 요구(커맨드 #0-1), 제 2 요구(커맨드 #0-2), 및 요구(커맨드 #1) ~ 요구(커맨드 #N)까지의 대기 시간의 합계를 산출한다. 그리고, 제 2 실행 순 결정부(345)는, 대기 시간의 합계가 최소가 되는 대기 시간 산출 테이블에 대응하는 실행 순을, 제 2 실행 순으로서 결정한다.
바람직하게는 제 2 실행 순 결정부(345)는, 제 2 대기 시간 예측부(340)에 의해 예측된 대기 시간을 제 1 요구를 포함한 모든 요구에 대해서 더한 합계가 최소가 되고, 각 요구의 대기 시간이 모두 최대 허용 대기 시간을 초과하지 않는 실행 순을, 제 2 실행 순으로서 결정한다. 여기서, 최대 허용 대기 시간은, 미리 관리자에 의해 장치에 설정될 수 있고, 또는, 호스트 장치(105)에서 요구와 함께 지정되는 것으로도 할 수 있다.
이 경우, 제 2 실행 순 결정부(345)는, 제 2 대기 시간 예측부(340)에 의해 작성된(N+1)! 개의 대기 시간 산출 테이블에서, 제 1 요구(커맨드 #0-1), 제 2 요구(커맨드 #0-2), 및 요구(커맨드 #1) ~ 요구(커맨드 #N)의 각 대기 시간이 모두 최대 허용 대기 시간을 초과하지 않는 대기 시간 산출 테이블을 꺼낸다. 그리고 제 2 실행 순 결정부(345)는, 꺼낸 대기 산출 테이블에 대해서, 제 1 요구(커맨드 #0-1), 제 2 요구(커맨드 #0-2), 및 요구(커맨드 #1) ~ 요구(커맨드 #N)까지의 대기 시간의 합계를 산출한다. 마지막으로 제 2 실행 순 결정부(345)는, 대기 시간의 합계가 최소가 되는 대기 시간 산출 테이블에 대응하는 실행 순을 제 2 실행 순으로서 결정한다.
적용 실행 순 결정부(350)는, 제 2 실행 순 결정부(345)에 의해 결정된 제 2 실행 순에 대기 시간의 합계가, 제 1 실행 순 결정부(330)에 의해 결정된 제 1 실행 순에 대기 시간의 합계 보다 작은 경우에 제 2 실행 순을, 그 이외의 경우는, 제 1 실행 순을, 적용해야 할 실행 순으로서 재결정한다. 제 2 실행 순을 적용해야 할 실행 순으로서 결정한 경우, 적용 실행 순 결정부(350)는, 순서 바꾸기부(335)에, 제 2 요구의 엔트리를 큐 테이블(315)에 추가하도록 통지한다.
순서 바꾸기부(335)는, 적용 실행 순 결정부(350)에 의해 결정된 적용해야 할 실행 순에 따라서, 큐 테이블(315) 내의 모든 요구의 실행 순을 바꾼다. 적용 실행 순 결정부(350)에서 제 2 요구의 엔트리를 추가하도록 통지를 받은 경우, 순서 바꾸기부(335)는, 제 2 대기 시간 예측부(340)에 의해 작성된 큐 테이블(315)의 복사본을 이용해서, 큐 테이블(315)에 제 2 요구의 엔트리를 추가한다. 그 후, 순서 바꾸기부(335)는, 큐 테이블(315) 내의 모든 요구의 실행 순의 순서 바꾸기를 실행한다.
중단부(355)는, 적용 실행 순 결정부(350)에 의한 적용해야 할 실행 순으로서의 제 2 실행 순의 결정에 응답해서, 실행 중의 요구의 처리를 실제로 중단한다. 또한, 상술한 것처럼, 재개 때에는 남은 데이터만을 읽어내면 되도록, 중단 전에 읽어낸 데이터는 일시적으로 메모리에 보존할 수 있다.
이와 같이 제 2 실시 형태에 관계되는 스토리지 관리자(300b)에서는, 오버 헤드를 고려해서도 호스트 장치(105)의 평균 대기 시간을 단축할 수 있는 경우에는, 현재 실행 중의 요구의 처리를 일단 중단해서 나중에 수신한 요구를 먼저 처리한다. 그 결과, 본 발명에 관계되는 장치에서는, 호스트 장치(105)의 평균 대기 시간을 최소로 할 수 있고, 호스트 장치에서 본 다시 불러내기 요구의 효율이 높아진다.
(제 3 실시 형태)
도 9는, 본 발명의 제 3 실시 형태에 관계되는 데이터의 다시 불러내기 순서를 결정하기 위한 장치로서의 스토리지 관리자(300c)의 기능 구성의 한 예를 나타낸 도이다. 제 3 실시 형태에 관계되는 스토리지 관리자(300c)는, 제 1 실시 형태에 관계되는 스토리지 관리자(300a)과 기본적으로 같은 기능 구성을 가진다. 단, 제 3 실시 형태에서는, 도 1에 나타낸 라이브러리 시스템(115)은, 복수의 테이프 드라이브 장치(135)를 포함한다. 단, 제 3 실시 형태에 관계되는 스토리지 관리자(300c)는, 제 1 실시 형태에 관계되는 스토리지 관리자(300a)를, 복수의 테이프 드라이브 장치(135a, b, ...)를 포함한 라이브러리 시스템(115)에 적용 가능하도록 확장한 것이다.
제 3 실시 형태에 관계되는 스토리지 관리자(300c)는, 테이프 드라이브 장치(135)마다, 큐 테이블(315), 제 1 대기 시간 예측부(325), 및 제 1 실행 순 결정부(330)를 각각 준비한다. 제 3 실시 형태에 관계되는 저장부(310)는, 하나의 요구를, 복수의 큐 테이블(315a, b, ...)에 각각 가상적으로 저장한다. 테이프 드라이브 장치(135)마다 복수 개로 준비되는 상기 각 구성 요소는, 가상적으로 저장되는 요구에 대해서, 제 1 실시 형태에 관해 설명한 것과 같이 기능한다.
즉, 제 3 실시 형태에 관계되는 최소 대기 시간 결정부(320c)에서는, 동일의 큐 테이블(315)에 대응하는 제 1 대기 시간 예측부 및 제 1 실행 순 결정부(330)의 페어마다, 대응하는 큐 테이블(315)에 들어간 모든 요구의 생각될 수 있는 모든 실행 순 중에서, 요구가 수신되고 나서 그 처리가 완료하기까지의 대기 시간의 평균이 최소가 되는 실행 순이 구해진다. 또한, 최소가 되는 실행 순의 구하는 방법은 제 1 실시 형태에서 설명했기 때문에, 반복을 피하기 위해 여기서는 설명을 생략한다.
제 3 실시 형태에 관계되는 스토리지 관리자(300c)는 또, 할당처 결정부(360)를 포함한다. 할당처 결정부(360)는, 제 1 대기 시간 예측부(325) 및 제 1 실행 순 결정부(330)의 각 페어에 의해 각각 구해진 복수의 실행 순에 근거하여, 상기 요구를 실제로 할당하는 테이프 드라이브 장치(135)를 결정한다. 즉, 할당처 결정부(360)는, 복수의 제 1 실행 순 결정부(330a, b, ...)가 각각 결정한, 복수의 제 1 실행 순에서 복수의 대기 시간의 합계 중에서, 최소의 대기 시간의 합계를 결정한 제 1 실행 순 결정부(330)를 준비한 테이프 드라이브 장치(135)에서, 상기 하나의 요구를 할당한다.
제 3 실시 형태에 관계되는 순서 바꾸기부(335)는, 할당처 결정부(360)에 의해 할당처로서 결정된 테이프 드라이브 장치(135)에 대응하는 큐 테이블(315)에의 상기 요구의 저장을 확정한다. 그리고, 순서 바꾸기부(335)는, 상기 요구의 저장을 확정한 큐 테이블(315) 내의 모든 요구의 실행 순을 할당처로서 결정된 상기 테이프 드라이브(135)에 대응하는 제 1 실행 순 결정부(330)에 의해 결정된 제 1 실행 순에 따라 바꾼다.
(제 4 실시 형태)
도 10은, 본 발명의 제 4 실시 형태에 관계되는 데이터의 다시 불러내기 순을 결정하기 위한 장치로서의 스토리지 관리자(300d)의 기능 구성의 한 예를 나타낸 도이다. 제 4 실시 형태에 관계되는 스토리지 관리자(300d)는, 제 2 실시 형태에 관계되는 스토리지 관리자(300b)와 기본적으로 같은 기능 구성을 가진다. 단, 제 4 실시 형태에서는, 도 1에서 나타낸 라이브러리 시스템(115)은, 복수의 테이프 드라이브 장치(135)를 포함한다. 즉, 제 4 실시 형태에 관계되는 스토리지 관리자(300d)는, 제 2 실시 형태에 관계되는 스토리지 관리자(300d)를, 복수의 테이프 드라이브 장치(135a, b, ...)를 포함하는 라이브러리 시스템(115)에 적용 가능하도록 확장한 것이다.
제 4 실시 형태에 관계되는 스토리지 관리자(300d)는, 테이프 드라이브 장치(135)마다, 큐 테이블(315), 제 1 대기 시간 예측부(325), 제 1 실행 순 결정부(330), 제 2 대기 시간 예측부(340), 제 2 실행 순 결정부(345), 적용 실행 순 결정부(350) 및 중단부(355)를 각각 준비한다. 제 4 실시 형태에 관계되는 저장부(310)는, 하나의 요구를 복수의 큐 테이블(315a, b, ...)에 각각 가상적으로 저장한다. 테이프 드라이브 장치(135)마다 복수 준비되는 상기 각 구성 요소는, 가상적으로 저장되는 요구에 대해서, 제 1 실시 형태 및 제 2 실시 형태에 관해 설명한 것과 같이 기능한다.
즉, 제 4 실시 형태에 관계되는 최소 대기 시간 결정부(320d)에서는, 큐 테이블(315)마다, 대응하는 적용 실행 순 결정부(350)가, 대응하는 제 1 실행 순 결정부(330) 및 제 2 실행 순 결정부(345)에 의해 각각 결정된 제 1 실행 순과 제 2 실행 순을 비교하여, 적용해야 할 실행 순을 결정한다. 또한, 최소가 되는 실행 순을 구하는 방법은 제 2 실시 형태에서 설명했기 때문에, 반복을 피하기 위해 여기서는 설명을 생략한다.
제 4 실시 형태에 관계되는 스토리지 관리자(300c)는 또, 할당처 결정부(360)를 포함한다. 제 4 실시 형태에 관계되는 할당처 결정부(360)는, 복수의 적용 실행 순 결정부(350a, b, ...)에 의해 각각 구해진 복수의 실행 순에 근거하여, 상기 요구를 실제로 할당하는 테이프 드라이브 장치(135)를 최종적으로 결정한다. 즉, 제 4 실시 형태에 관계되는 할당처 결정부(360)는, 복수의 적용 실행 순 결정부(350a, b, ...)가 각각 결정한, 복수의 적용해야 할 실행 순에서 복수의 대기 시간의 합계 중에서, 최소의 대기 시간의 합계를 결정한 적용 실행 순 결정부(350)에 대응하는 테이프 드라이브 장치(135)에, 상기 하나의 요구를 할당한다.
제 4 실시 형태에 관계되는 순서 바꾸기부(335)는, 상기 할당처 결정부(360)에 의해 요구가 할당된 테이프 드라이브 장치(135)에 대응하는 큐 테이블(315)에의 상기 요구의 저장을 확정한다. 그리고, 순서 바꾸기부(335)는, 상기 요구의 저장을 확정한 큐 테이블(315) 내의 모든 요구의 실행 순을, 요구가 할당된 상기 테이프 드라이브 장치(315)에 대응하는 적용 실행 순 결정부(350)에 의해 결정된 적용해야 할 실행 순에 따라서 순서를 바꾼다.
다음으로, 도 11의 흐름도를 참조해서, 제 1 실시 형태에 관계되는 데이터의 다시 불러내기 순을 결정하기 위한 장치로서의 스토리지 관리자(300a)의 동작을 설명한다. 도 11에서 처리는 단계(100)에서 시작하고, 스토리지 관리자(300a)는, 호스트 장치(105)에서 N번째의 요구를 수신하여, 상기 요구를 큐 테이블(315)에 저장한다(단계(105)). 이 때 실행 중의 요구의 커맨드 ID를 커맨드 #0으로 하고, 큐 테이블(315)에는, 요구(커맨드 #1) ~ 요구(커맨드 #(N-1))까지의 N-1개의 요구가 저장되는 것으로 한다.
요구(커맨드 #N)를 큐 테이블(315)에 저장하면, 스토리지 관리자(300a)는, 큐 테이블(315) 내에 저장된 모든 요구의 생각될 수 있는 모든 실행 순, 즉, N! 개의 순서의 각각에 대해서, 상기 실행 순으로 처리한 경우의 각 요구의 대기 시간 Ti(i=0~N)를 산출한다(단계(110)). 여기서, 각 요구의 대기 시간이란, 각 요구의 스토리지 관리자(300a)에 수신하고 테이프 드라이브 장치(315)에 처리의 완료까지의 대기 시간을 의미한다.
N! 개의 순서의 각각에 대해서 각 요구의 대기 시간을 산출하면, 스토리지 관리자(300a)는, 각 요구의 대기 시간이 모두 최대 허용 대기 시간을 초과하지 않는, 그와 같은 순서를 모두 결정한다. 그리고, 스토리지 관리자(300a)는, 결정한 순서 중에서, 실행 중의 요구(커맨드 #0)를 포함한 모든 요구에 대해서 대기 시간을 더해, 그 합계가 최소가 되는 실행 순을 제 1 실행 순으로서 결정한다(단계(115)). 또한, 모든 요구의 대기 시간이 모두 최대 허용 대기 시간 내에 있는 순서가 없는 경우, 처리는 거기서 종료한다.
마지막으로 스토리지 관리자(300a)는, 제 1 실행 순을 적용해야 할 실행 순으로 하고, 제 1 실행 순에 따라서 큐 테이블(315) 내의 요구의 순서를 바꾼다(단계(120)). 그리고 처리는 종료한다.
또한, 제 3 실시 형태에 관계되는 스토리지 관리자(300c)의 동작도, 기본적인 부분은, 도 11에 나타낸 흐름도와 같다. 하지만, 제 3 실시 형태에 관계되는 스토리지 관리자(300c)의 경우, 단계(105)에서, 요구는 확정적이 아니라, 가상적으로 복수의 큐 테이블(315a, b, ...)에 저장된다. 그리고, 스토리지 관리자(300c)는, 각 큐 테이블(315)에 대해서, 단계(110) 및 단계(115)를 실행한다.
그 후 제 3 실시 형태에 관계되는 스토리지 관리자(300c)는, 단계(120)에 진행하기 전에, 각 큐 테이블(315)에 대해서 각 결정한 복수의 제 1 실행 순 중에서, 대기 시간의 합계가 최소가 되는 제 1 실행 순을 적용해야 할 실행 순으로서 결정한다. 그리고, 스토리지 관리자(300c)는, 적용해야 할 실행 순으로서의 제 1 실행 순을 결정한 큐 테이블(315)에 대응하는 테이프 드라이브 장치(135)에, 상기 요구를 할당한다. 즉, 적용해야 할 실행 순으로서의 제 1 실행 순을 결정된 큐 테이블(315)에 대해서만, 상기 요구의 저장을 확정한다. 그 후 처리는 단계(120)에 진행하고, 스토리지 관리자(300c)는, 적용해야 할 실행 순에 따라서, 상기 요구를 할당된 테이프 드라이브 장치(135)에 대응하는 큐 테이블(315) 내의 요구의 순서를 바꾼다.
다음으로 도 12의 흐름도를 참조해서, 제 2 실시 형태에 관계되는 데이터의 다시 불러내기 순을 결정하기 위한 장치로서의 스토리지 관리자(300b)의 동작을 설명한다. 도 12에 있어서 처리는 단계(200)에서 시작하고, 스토리지 관리자(300b)는, 호스트 장치(105)에서 N번째의 요구를 수신하고, 상기 요구를 큐 테이블(315)에 저장한다(단계(205)). 이 때 실행 중의 요구의 커맨드 ID를 커맨드 #0으로 하고, 큐 테이블(315)에는, 요구(커맨드 #1) ~ 요구(커맨드 #(N-1))까지의, N-1 개의 요구가 저장되는 것으로 한다.
요구(커맨드 #N)를 큐 테이블(315)에 저장하면, 스토리지 관리자(300b)는, 단계(210)에서 단계(215)까지의 제 1 처리와, 단계(220)에서 단계(235)까지의 제 2 처리를 병렬로, 또는 순서대로 실행한다. 또한, 단계(210) 및 단계(215)의 처리에 대해서는, 도 11의 단계(110) 및 (115)를 참조해서 설명한 처리와 같기 때문에, 상세한 설명은 생략한다. 제 2 실시 형태에 관계되는 스토리지 관리자(300b)는, 단계(215)의 처리 후, 제 1 실행 순 O1과 상기 실행 순 O1에 대응하는 최소의 대기 시간의 합계 값 S1을 취득한다. 단, 단계(215)에 대해서, 모든 요구의 대기 시간이 모두 최대 허용 대기 시간 내인 순서가 없는 경우, 처리는 단계(245)에 진행한다.
스토리지 관리자(300b)는 또, 실행 중의 요구(커맨드 #0)의 중단을 가정해서, 테이프 드라이브 장치(135)의 읽기 헤드의 현재 위치를 취득한다(단계 (220)). 그리고, 스토리지 관리자(300b)는, 실행 중의 요구(커맨드 #0)를, 현재까지의 처리를 수행하는 제 1 요구(커맨드 #0-1)와 남은 처리를 수행하는 제 2 요구(커맨드 #0-2)에 가상적으로 분할하고, 상기 헤드의 현재 위치를 이용해서, 요구(2)를 포함한 큐 테이블(315)의 복사본을 새롭게 작성한다(단계(225)).
그리고 스토리지 관리자(300b)는, 요구(2)를 포함한 N+1 개의 요구가 저장된 큐 테이블(315)의 복사본을 기초로, (N+1)! 개의 순서의 각각에 대해서, 상기 실행 순으로 처리한 경우의 각 요구의 대기 시간 Ti(i=0-1, 0-2, 1~N)를 산출한다(단계(230)). 또한, 여기서도 각 요구의 대기 시간이란, 각 요구의 스토리지 관리자(300b)에 수신하고 테이프 드라이브 장치(135)에 처리의 완료까지의 대기 시간을 의미한다.
(N+1)! 개의 순서의 각각에 대해서 각 요구의 대기 시간을 산출하면, 스토리지 관리자(300b)는, 각 요구의 대기 시간이 모두 최대 허용 대기 시간을 초과하지 않는, 그와 같은 순서를 모두 결정한다. 그리고, 스토리지 관리자(300b)는, 결정한 순서 중에서, 요구(1) 및 요구(2)를 포함한 모든 요구에 대해서 대기 시간을 더하고 그 합계가 최소가 되는 실행 시간을 제 2 실행 순 O2로서, 또 제 2 실행 순 O2에 대응하는 최소의 대기 시간의 합계 값 S2를 결정한다(단계(235)). 단, 모든 요구의 대기 시간이 모두 최대 허용 대기 시간 내에 있는 순서가 없는 경우, 처리는 단계(255)에 진행한다.
그 후 스토리지 관리자(300b)는, 제 1 실행 순 O1에 대응하는 최소의 대기 시간의 합계 값 S1과, 제 2 실행 순 O2에 대응하는 최소의 대기 시간의 합계 값 S2를 비교한다(단계(240)). 합계 값 S2가 S1 이하의 경우(단계(240): NO), 스토리지 관리자(300b)는, 실행 중의 요구(커맨드 #0)의 중단을 라이브러리 시스템(115)에 지시한다(단계(245)). 그리고, 스토리지 관리자(300b)는, 큐 테이블(315)의 복사본을 이용해서 원래의 큐 테이블(315)을 갱신하고, 갱신 수의 요구(2)를 포함한 큐 테이블(315) 내의 요구를, 제 2 실행 순 O2에 따라서 바꾼다(단계(250)). 그리고 처리는 종료한다.
한편, 합계 값 S2가 S1보다 큰 경우(단계(240): YES), 스토리지 관리자(300b)는, 큐 테이블(315) 내의 요구를, 제 1 실행 순 O1에 따라서 바꾼다(단계(255)). 그리고 처리는 종료한다.
또한, 제 4 실시 형태에 관계되는 스토리지 관리자(300d)의 동작도, 기본적인 부분은, 도 12에 나타낸 흐름도와 단계(240)까지 같다. 하지만, 제 4 실시 형태에 관계되는 스토리지 관리자(300d)의 경우, 단계(205)에서, 요구는 확정적이 아니라, 가상적으로 복수의 큐 테이블(315a, b, ...)에 저장된다. 스토리지 관리자(300d)는, 각 큐 테이블(315)에 대해서, 단계(210)에서 단계(240)까지의 처리를 실행하고, 적용해야 할 실행 순을 결정한다. 즉, 단계(240)에 있어서 YES이면, 제 1 실행 순 O1을 채용하게 되고, 단계(240)에 있어서 NO이면, 제 2 실행 순 O2를 채용하게 된다.
그 후 제 4 실시 형태에 관계되는 스토리지 관리자(300d)는, 큐 테이블(315)에 대해서 각각 결정한 복수의 실행 순 중에서, 대기 시간의 합계가 최소가 되는 실행 순을 적용해야 할 실행 순으로서 결정한다. 그리고, 스토리지 관리자(300d)는, 적용해야 할 실행 순을 결정된 큐 테이블(315)에 대응하는 테이프 드라이브 장치(135)에, 상기 요구를 할당한다. 즉, 적용해야 할 실행 순을 결정된 큐 테이블(315)에 대해서만, 상기 요구의 저장을 확정한다. 마지막으로 스토리지 관리자(300d)는, 적용해야 할 실행 순에 따라서, 상기 요구를 할당된 테이프 드라이브 장치(135)에 대응하는 큐 테이블(315) 내의 요구의 순서를 바꾼다.
이상, 실시 형태를 이용해서 본 발명을 설명했지만, 본 발명의 기술 범위는 상기 실시 형태에 기재의 범위에는 한정되지 않는다. 예를 들면 본 발명의 제 1 실시 형태를, 복수의 테이프 드라이브 장치(135a, b, ...)를 포함한 라이브러리 시스템(115)에 적용 가능하도록 확장하는 것에 있어서, 본 발명의 제 3 실시 형태에서는, 테이프 드라이브 장치(135)마다 준비된 복수의 큐 테이블 각각에 대해서, 새롭게 수신한 요구의 할당을 가정해서, 평균 대기 시간을 계산했다. 하지만, 계산 시간을 보다 단축시키기 위해서 다음과 같은 방법을 채용할 수도 있다.
즉, 새롭게 수신한 요구가, 테이프 드라이브 장치(135)의 어느 쪽에 마운트 된 테이프 카트리지(145)에 대응하는 것인 경우, 상기 테이프 카트리지(145)를 마운트 된 테이프 드라이브 장치(135)에 요구를 할당한다. 새롭게 수신한 요구가, 테이프 드라이브 장치(135)에 마운트 된 테이프 카트리지(145)의 어느 쪽에 대한 것도 아닌 경우, 같은 테이프 카트리지(145)에 대한 요구를 모아서 그룹화 한다. 그리고, 멤버 수가 많은 그룹부터 순서대로, 그 큐 테이블(315)에 저장된 요구가 적은 테이프 드라이브 장치(135)에 정리한다. 그리고, 요구의 할당이 결정한 후에, 요구를 할당된 테이프 드라이브 장치(135)의 큐 테이블(315)에 대해서, 제 1 실시 형태에 관계되는 스토리지 관리자(300c)에 의한 요구의 재배치를 실행한다.
같은 방법으로, 제 2 실시 형태를, 복수의 테이프 드라이브 장치(135a, b, ...)를 포함한 라이브러리 시스템(115)에 적용 가능하도록 확장할 수 있다. 이와 같이 상기의 실시 형태에, 여러 가지의 변경 또는 개량을 추가할 수 있다는 것이 당업자이면 알 수 있다. 따라서, 그와 같은 변경 또는 개량을 추가한 형태도 당연히 본 발명의 기술 배경에 포함된다.

Claims (10)

  1. 테이프 라이브러리에 접속된, 데이터의 다시 불러내기 순을 결정하기 위한 장치에 있어서,
    상기 테이프 라이브러리에서 다시 불러내기 할 필요가 있는 데이터에 대한 호스트 장치의 요구를 수신하는 요구 수신 수단과,
    상기 요구를 큐 테이블에 저장하는 저장 수단과,
    상기 큐 테이블에의 상기 요구의 저장에 응답하여, 상기 큐 테이블 내에 저장된 모든 요구에 대해 생각될 수 있는 모든 실행 순 각각에 있어서 처리를 수행하는 경우, 상기 요구 수신 수단에 의한 수신에서부터 상기 테이프 라이브러리에서의 처리 완료까지의 대기 시간을 예측하는 제 1 대기 시간 예측 수단과,
    제 1 실행 순 - 상기 제 1 실행 순은 실행 중의 요구를 포함한 모든 요구에 대해 상기 제 1 대기 시간 예측 수단에 의해 예측된 상기 대기 시간의 총 합이 최소가 되는 실행 순임 - 을, 적용해야 할 실행 순으로서 결정하는, 제1 실행 순 결정 수단과,
    결정된 상기 적용해야 할 실행 순에 따라서, 상기 큐 테이블 내의 상기 모든 요구의 실행 순을 바꾸는 순서 바꾸기 수단을
    포함하는, 장치.
  2. 청구항 1에 있어서,
    상기 제 1 실행 순 결정 수단은, 상기 제 1 대기 시간 예측 수단에 의해 예측된 상기 대기 시간을 실행 중의 요구를 포함한 모든 요구에 대해서 더한 합계가 최소가 되고, 각 요구의 상기 대기 시간이 모두 최대 허용 대기 시간을 초과하지 않는 실행 순의 제 1 실행 순을, 적용해야 할 실행 순으로 결정하는, 장치.
  3. 청구항 1 또는 2에 있어서,
    상기 테이프 라이브러리는 복수의 테이프 드라이브를 포함하고, 상기 큐 테이블, 상기 제 1 대기 시간 예측 수단 및 상기 제 1 실행 순 결정 수단은 각각 상기 테이프 드라이브마다 복수 개로 준비되어,
    상기 저장 수단은 하나의 상기 요구를 복수의 상기 큐 테이블에 각각 가상적으로 저장하고,
    상기 장치는,
    복수의 상기 제 1 실행 순 결정 수단이 각각 결정한, 복수의 상기 제 1 실행 순에서 복수의 상기 대기 시간의 합계 중에, 최소의 상기 대기 시간의 합계를 결정한 상기 제 1 실행 순 결정 수단이 준비된 상기 테이프 드라이브에, 상기 하나의 요구를 할당하는 할당처 결정 수단을 더 포함하고,
    상기 순서 바꾸기 수단은, 상기 요구를 할당된 상기 테이프 드라이브에 대응하는 상기 큐 테이블에의 상기 하나의 요구의 저장을 확정하고, 상기 큐 테이블 내의 모든 요구의 실행 순을 상기 요구를 할당된 상기 테이프 드라이브에 대응하는 상기 제 1 실행 순 결정 수단에 의해 결정된 상기 제 1 실행 순에 따라서 순서를 바꾸는 장치.
  4. 청구항 1에 있어서, 상기 장치는
    상기 큐 테이블에의 상기 요구의 저장에 응답하여, 상기 실행 중의 요구를 현재까지의 처리를 수행하는 제 l 요구와 남은 처리를 수행하는 제 2 요구로 가상적으로 분할하고, 상기 제 2 요구를 포함한 상기 큐 테이블 내에 저장된 모든 요구에 대해 생각될 수 있는 모든 실행 순의 각각에 대해서, 상기 실행 순으로 처리한 경우의 각 요구에 대해서 상기 대기 시간을 예측하는 제 2 대기 시간 예측 수단과,
    상기 제 2 대기 시간 예측 수단에 의해 예측된 상기 대기 시간을 상기 제 1 요구를 포함한 모든 요구에 대해서 더한 합계가 최소가 되는 실행 순을, 제 2 실행 순으로 결정하는 제 2 실행 순 결정 수단과,
    상기 제 2 실행 순에서 상기 대기 시간의 합계가, 상기 제 1 실행 순에서 상기 대기 시간의 합계보다 작은 경우에 상기 제 2 실행 순을, 그 이외의 경우는 상기 제 1 실행 순을, 상기 적용해야 할 실행 순으로서 재결정하는 적용 실행 순 결정 수단과,
    상기 적용해야 할 실행 순으로서의 상기 제 2 실행 순의 결정에 응답하여, 상기 실행 중의 요구의 처리를 중단하는 중단 수단을 더 포함하는, 장치.
  5. 청구항 4에 있어서,
    상기 제 1 실행 순 결정 수단은, 상기 제 1 대기 시간 예측 수단에 의해 예측된 상기 대기 시간을 실행 중의 요구를 포함하는 모든 요구에 대해서 더한 합계가 최소가 되고, 각 요구의 상기 대기 시간이 모두 최대 허용 대기 시간을 초과하지 않는 실행 순인 제 1 실행 순을, 적용해야 할 실행 순으로서 결정하고,
    상기 제 2 실행 순 결정 수단은, 상기 제 2 대기 시간 예측 수단에 의해 에측된 상기 대기 시간을 상기 제 1 요구를 포함한 모든 요구에 대해서 더한 합계가 최소가 되고, 각 요구의 상기 대기 시간이 모두 상기 최대 허용 대기 시간을 초과하지 않는 실행 순을 상기 제 2 실행 순으로서 결정하는, 장치.
  6. 청구항 4 또는 5에 있어서,
    상기 테이프 라이브러리는 복수의 테이프 드라이브를 포함하고, 상기 큐 테이블, 상기 제 1 대기 시간 예측 수단, 상기 제 1 실행 순 결정 수단, 상기 제 2 대기 시간 예측 수단, 상기 제 2 실행 순 결정 수단, 상기 중단 수단 및 상기 적용 실행 순 결정 수단은, 각각 상기 테이프 드라이브 마다 복수 개로 준비되어,
    상기 저장 수단은 하나의 상기 요구를 복수의 상기 큐 테이블에 각각 가상적으로 저장하고,
    복수의 상기 적용 실행 순 결정 수단이 각각 결정한, 복수의 상기 적용해야 할 실행 순에서 복수의 상기 대기 시간의 합계 중에, 최소의 상기 대기 시간의 합계를 결정한 상기 적용 실행 순 결정 수단이 준비된 상기 테이프 드라이브에, 상기 하나의 요구를 할당하는 할당처 결정 수단을 포함하고,
    상기 복수의 중단 수단은 각각, 대응하는 상기 테이프 드라이브에 상기 하나의 요구가 할당된 경우에, 대응하는 상기 제 2 실행 순의 상기 적용해야 할 실행 순으로서의 결정에 응답해서, 상기 실행 중의 요구의 처리를 중단하고,
    상기 순서 바꾸기 수단은, 상기 요구를 할당된 상기 테이프 드라이브에 대응하는 상기 큐 테이블에의 상기 하나의 요구의 저장을 확정하고, 상기 큐 테이블 내의 모든 요구의 실행 순을 상기 요구를 할당된 상기 테이프 드라이브에 대응하는 상기 적용 실행 순 결정 수단에 의해 결정된 상기 적용해야 할 실행 순에 따라서 순서를 바꾸는, 장치.
  7. 테이프 라이브러리에 접속된 장치에서, 데이터의 다시 불러내기 순을 결정하기 위한 방법으로,
    상기 테이프 라이브러리에서 다시 불러내기 할 필요가 있는 데이터에 대응하는 호스트 장치의 요구를 수신하는 단계와,
    상기 요구를 큐 테이블에 저장하는 단계와,
    상기 큐 테이블에의 상기 요구의 저장에 응답하여, 상기 큐 테이블 내에 저장된 모든 요구에 대해 생각될 수 있는 모든 실행 순 각각에 있어서 처리를 수행하는 경우, 상기 요구 수신 수단에 의한 수신에서부터 상기 테이프 라이브러리에서의 처리 완료까지의 대기 시간을 예측하는 단계와,
    예측한 상기 대기 시간을 실행 중의 요구를 포함하는 모든 요구에 대해서 더한 합계가 최소가 되는 실행 순인 제 1 실행 순을, 적용해야 할 실행 순으로서 결정하는 단계와,
    결정된 상기 적용해야 할 실행 순에 따라서, 상기 큐 테이블 내의 상기 모든 요구의 실행 순을 바꾸는 단계를 포함하는 방법.
  8. 청구항 7에 있어서,
    상기 큐 테이블에 상기 요구의 저장에 응답하여, 상기 실행 중의 요구를 현재까지의 처리를 수행하는 제 1 요구와 남은 처리를 수행하는 제 2 요구에 가상적으로 분할하고, 상기 제 2 요구를 포함하는 상기 큐 테이블 내에 저장된 모든 요구에 대해 생각될 수 있는 모든 실행 순의 각각에 대해서, 상기 실행 순으로 처리한 경우의 각 요구에 대해서 상기 대기 시간을 예측하는 단계와,
    예측한 상기 대기 시간을 상기 제 1 요구를 포함하는 모든 요구에 대해서 더한 합계가 최소가 되는 실행 순을, 제 2 실행 순으로서 결정하는 단계와,
    상기 제 2 실행 순에서 상기 대기 시간의 합계가, 상기 제 1 실행 순에 상기 대기 시간의 합계보다 작은 경우에 상기 제 2 실행 순을 그 이외의 경우는 상기 제 1 실행 순을, 상기 적용해야 할 실행 순으로서 재결정하는 단계와,
    상기 적용해야 할 실행 순으로서의 상기 제 2 실행 순의 결정에 응답하여, 상기 실행 중의 요구의 처리를 중단하는 단계를 포함하는, 방법.
  9. 테이프 라이브러리에 접속된 장치에서 실행되는, 데이터의 다시 불러내기 순을 결정하기 위한 프로그램으로, 상기 프로그램은, 상기 장치에,
    상기 테이프 라이브러리에서 다시 불러내기 할 필요가 있는 데이터에 대한 호스트 장치의 요구를 수신하는 단계와,
    상기 요구를 큐 테이블에 저장하는 단계와,
    상기 큐 테이블에의 상기 요구의 저장에 응답하여, 상기 큐 테이블 내에 저장된 모든 요구에 대해 생각될 수 있는 모든 실행 순 각각에 있어서 처리를 수행하는 경우, 상기 요구 수신 수단에 의한 수신에서부터 상기 테이프 라이브러리에서의 처리 완료까지의 대기 시간을 예측하는 단계와,
    예측한 상기 대기 시간을 실행 중의 요구를 포함한 모든 요구에 대해서 더한 합계가 최소가 되는 실행 순인 제 1 실행 순을, 적용해야 할 실행 순으로서 결정하는 단계와,
    결정된 상기 적용해야 할 실행 순에 따라서, 상기 큐 테이블 내의 상기 모든 요구의 실행 순을 바꾸는 단계를 실행시키는, 프로그램.
  10. 청구항 9에 있어서,
    상기 큐 테이블에의 모든 요구의 저장에 응답하여, 상기 실행 중의 요구를 현재까지의 처리를 수행하는 제 1 요구와 남은 처리를 수행하는 제 2 요구에 가상적으로 분할하고, 상기 제 2 요구를 포함하는 상기 큐 테이블 내에 저장된 모든 요구에 대해 생각될 수 있는 모든 실행 순의 각각에 대해서, 상기 실행 순으로 처리한 경우의 각 요구에 대해서 상기 대기 시간을 예측하는 단계와,
    예측한 상기 대기 시간을 상기 제 1 요구를 포함한 모든 요구에 대해서 더한 합계가 최소가 되는 실행 순을, 제 2 실행 순으로서 결정하는 단계와,
    상기 제 2 실행 순에서 상기 대기 시간의 합계가, 상기 제 1 실행 순에 상기 대기 시간의 합계 보다 작은 경우에 상기 제 2 실행 순을, 그 이외의 경우는 상기 제 1 실행 순을, 상기 적용해야 할 실행 순으로서 재결정하는 단계와,
    상기 적용해야 할 실행 순으로서 상기 제 2 실행 순의 결정에 응답해서, 상기 실행 중의 요구의 처리를 중단하는 단계를 상기 장치에 실행시키는, 프로그램.
KR1020117005325A 2008-09-29 2009-09-02 데이터의 다시 불러내기 순을 결정하기 위한 장치, 방법, 및 프로그램 KR20110066140A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2008-251719 2008-09-29
JP2008251719 2008-09-29

Publications (1)

Publication Number Publication Date
KR20110066140A true KR20110066140A (ko) 2011-06-16

Family

ID=42059623

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117005325A KR20110066140A (ko) 2008-09-29 2009-09-02 데이터의 다시 불러내기 순을 결정하기 위한 장치, 방법, 및 프로그램

Country Status (6)

Country Link
US (3) US8732393B2 (ko)
EP (1) EP2352081B1 (ko)
JP (1) JP5166541B2 (ko)
KR (1) KR20110066140A (ko)
CN (1) CN102165408B (ko)
WO (1) WO2010035617A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9952770B2 (en) 2016-06-14 2018-04-24 International Business Machines Corporation Responding to recall operations based on file migration time

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110066140A (ko) 2008-09-29 2011-06-16 인터내셔널 비지네스 머신즈 코포레이션 데이터의 다시 불러내기 순을 결정하기 위한 장치, 방법, 및 프로그램
US9021175B2 (en) 2010-08-24 2015-04-28 International Business Machines Corporation Method for reordering access to reduce total seek time on tape media
JP5617540B2 (ja) * 2010-11-02 2014-11-05 富士通株式会社 仮想テープ装置および仮想テープ装置における物理テープ選択方法
JP5633432B2 (ja) * 2011-03-04 2014-12-03 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
JP5910128B2 (ja) * 2012-02-03 2016-04-27 富士通株式会社 仮想テープ装置及び仮想テープ装置の制御方法
KR101993258B1 (ko) 2012-11-22 2019-09-27 삼성전자주식회사 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩
JP6191209B2 (ja) * 2013-04-12 2017-09-06 富士通株式会社 ストレージ装置、制御プログラムおよび制御方法
JP2015022345A (ja) * 2013-07-16 2015-02-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ転送が停止しまうことがないように、キャッシュされているデータの転送レートを適合させる方法、システム、および、プログラム
US9256370B2 (en) 2013-12-05 2016-02-09 International Business Machines Corporation Average response time improvement from a file system for a tape library
JP6242326B2 (ja) * 2014-11-19 2017-12-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報提供システム、情報提供方法およびプログラム
US9477408B1 (en) 2015-04-14 2016-10-25 Samsung Electronics Co., Ltd. Memory systems having improved out-of-order execution of commands and methods for operating the same
US10223179B2 (en) 2016-05-17 2019-03-05 International Business Machines Corporation Timeout processing for messages
US10216660B1 (en) * 2017-07-13 2019-02-26 EMC IP Holding Company LLC Method and system for input/output (IO) scheduling in a storage system
US10621448B2 (en) 2017-08-02 2020-04-14 Wing Aviation Llc Systems and methods for determining path confidence for unmanned vehicles
JP2019121342A (ja) * 2017-12-28 2019-07-22 富士通株式会社 情報処理装置、予測方法、及び予測プログラム
JP2020021186A (ja) * 2018-07-31 2020-02-06 富士通株式会社 トランザクション制御装置、トランザクション制御プログラムおよびトランザクション制御方法
JP7287123B2 (ja) * 2019-06-03 2023-06-06 富士通株式会社 仮想テープ装置,キャッシュ制御装置およびキャッシュ制御プログラム
US10929025B2 (en) * 2019-06-25 2021-02-23 Seagate Technology Llc Data storage system with I/O determinism latency optimization
US11256621B2 (en) * 2019-06-25 2022-02-22 Seagate Technology Llc Dual controller cache optimization in a deterministic data storage system
CN111352868B (zh) * 2020-03-30 2021-09-28 厦门科灿信息技术有限公司 串口访问方法、装置、终端设备及存储介质
US11231866B1 (en) * 2020-07-22 2022-01-25 International Business Machines Corporation Selecting a tape library for recall in hierarchical storage
CN112040001A (zh) * 2020-09-07 2020-12-04 平安科技(深圳)有限公司 一种基于分布式存储的请求处理方法及装置
US11809731B2 (en) 2021-09-28 2023-11-07 International Business Machines Corporation Appending data to a tape cartridge during recall operations
US11972148B2 (en) * 2022-06-14 2024-04-30 Western Digital Technologies, Inc. Proactive storage operation management using thermal states

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418971A (en) * 1992-04-20 1995-05-23 International Business Machines Corporation System and method for ordering commands in an automatic volume placement library
JP2000048549A (ja) * 1998-08-03 2000-02-18 Fujitsu Ltd テープ装置
JP2002007999A (ja) * 2000-06-19 2002-01-11 Murata Mfg Co Ltd 遺伝的アルゴリズムを用いた最適化方法
AU2003249500A1 (en) * 2002-06-07 2003-12-22 Sankyo Seiki Mfg. Co., Ltd. Production lines utilizing auto guided pallet and production line design support system
JP2004303190A (ja) * 2003-03-20 2004-10-28 Hitachi Ltd プログラム、情報処理装置、情報処理装置の制御方法、及び記録媒体
US7206866B2 (en) 2003-08-20 2007-04-17 Microsoft Corporation Continuous media priority aware storage scheduler
US7757052B2 (en) * 2005-01-05 2010-07-13 International Business Machines Corporation Apparatus, system, and method for optimizing recall of logical volumes in a virtual tape server
JP4407654B2 (ja) * 2006-03-07 2010-02-03 日本電気株式会社 入出力要求制御方法、計算機システム及びコンピュータプログラム
GB2447688B (en) 2007-03-22 2011-05-18 Advanced Risc Mach Ltd A data processing apparatus and method for arbitrating between messages routed over a communication channel
KR20110066140A (ko) 2008-09-29 2011-06-16 인터내셔널 비지네스 머신즈 코포레이션 데이터의 다시 불러내기 순을 결정하기 위한 장치, 방법, 및 프로그램

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9952770B2 (en) 2016-06-14 2018-04-24 International Business Machines Corporation Responding to recall operations based on file migration time

Also Published As

Publication number Publication date
US9477411B2 (en) 2016-10-25
US20140215146A1 (en) 2014-07-31
US8732393B2 (en) 2014-05-20
JP5166541B2 (ja) 2013-03-21
US20110179222A1 (en) 2011-07-21
WO2010035617A1 (ja) 2010-04-01
CN102165408B (zh) 2014-08-06
CN102165408A (zh) 2011-08-24
EP2352081A4 (en) 2012-10-17
EP2352081B1 (en) 2014-12-31
EP2352081A1 (en) 2011-08-03
JPWO2010035617A1 (ja) 2012-02-23
US20160011793A1 (en) 2016-01-14
US9104318B2 (en) 2015-08-11

Similar Documents

Publication Publication Date Title
KR20110066140A (ko) 데이터의 다시 불러내기 순을 결정하기 위한 장치, 방법, 및 프로그램
EP0848321B1 (en) Method of data migration
US6381677B1 (en) Method and system for staging data into cache
JP4808489B2 (ja) 論理ボリュームを再呼び出しするためのシステム
US6978325B2 (en) Transferring data in virtual tape server, involves determining availability of small chain of data, if large chain is not available while transferring data to physical volumes in peak mode
US20040205297A1 (en) Method of cache collision avoidance in the presence of a periodic cache aging algorithm
US10394819B2 (en) Controlling mirroring of tables based on access prediction
US9244628B2 (en) Reducing elapsed time to access data from a storage medium during a recall operation
CN112346653B (zh) 驱动器箱、存储系统和数据传送方法
US9367492B2 (en) Storage virtualization apparatus causing access request process to be delayed based on incomplete count and storage virtualization method
US11016697B2 (en) Prefetching data blocks from a primary storage to a secondary storage system while data is being synchronized between the primary storage and secondary storage
CN116097228A (zh) 在针对写入集合中的轨道释放高速缓存资源之后获得用于对写入集合中的轨道的预期写入的高速缓存资源
US8683151B2 (en) Variable data preservation prewrite
WO2016001959A1 (ja) ストレージシステム
KR20010081013A (ko) 자기 디스크 장치, 자기 디스크 장치의 디스크 액세스방법 및 자기 디스크 장치용 디스크 액세스 제어프로그램을 기록한 기록 매체
JP5055252B2 (ja) データ処理の方法及びシステム
JP5915215B2 (ja) 仮想テープ装置及び仮想テープ装置の制御方法
JP2006059110A (ja) ライブラリ制御方法、ライブラリ制御装置、及びライブラリ制御プログラム
CN118020055A (zh) 在召回操作期间将数据附加到磁带盒

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination