KR20130111351A - 액세스 제어 방법, 서버 장치 및 스토리지 장치 - Google Patents
액세스 제어 방법, 서버 장치 및 스토리지 장치 Download PDFInfo
- Publication number
- KR20130111351A KR20130111351A KR1020130031744A KR20130031744A KR20130111351A KR 20130111351 A KR20130111351 A KR 20130111351A KR 1020130031744 A KR1020130031744 A KR 1020130031744A KR 20130031744 A KR20130031744 A KR 20130031744A KR 20130111351 A KR20130111351 A KR 20130111351A
- Authority
- KR
- South Korea
- Prior art keywords
- service level
- virtual machine
- server
- storage device
- queue
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
- H04L41/5022—Ensuring fulfilment of SLA by giving priorities, e.g. assigning classes of service
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
서버 장치에서 실행되는 가상 기계로부터 스토리지 장치로의 액세스 제어 방법으로서, 가상 기계로부터 입출력 명령과 함께 출력된 가상 기계를 식별하는 가상 기계 식별자에 기초하여, 가상 기계 식별 정보와 서비스 레벨과의 대응 관계를 기억하는 기억부를 참조하여, 가상 기계 식별자에 대응하는 서비스 레벨을 취득하고, 서버 장치 및 스토리지 장치 중 적어도 한쪽에 있어서, 가상 기계로부터의 입출력 명령을 취득한 서비스 레벨에 따라서 실행하는 액세스 제어 방법.
Description
본 발명은, 서버 장치상의 가상 기계로부터 스토리지 장치로의 액세스의 제어 방법, 서버 장치 및 스토리지 장치에 관한 것이다.
종래, 가상 서버를 제공하는 복수의 서버와, 스토리지 장치를 포함하는 계산기 시스템이 있다. 복수의 서버로부터 스토리지 장치에 데이터 액세스가 실행되는 경우, 실행되는 데이터 액세스의 총수에 따라서, 계산기 시스템의 처리 능력은 분산된다. 그로 인해, 실행되는 데이터 액세스가 증가하면, 1개의 데이터 액세스당의 실행 시간도 길어진다. 그 결과, 계산기 시스템의 처리 성능이 저하되게 된다.
상기 기술과 관련하여, 가상 서버를 제공하는 서버와 스토리지 시스템의 양쪽을 고려하여, 계산기 시스템 전체로서의 성능 관리를 행하는 계산기 시스템에 대해 알려져 있다. 이 계산기 시스템은, 가상 서버마다 가상 서버에 관한 I/O 우선도에 따라서 가상 서버의 I/O 처리를 제어함으로써, 가상 서버간의 I/O 처리 성능의 조정을 행하는 서버와, 스토리지 시스템의 설정을 연계시킨다.
또한, 이동 후의 가상 머신에 있어서의 어레이 그룹에의 입출력(I/O)을 고려한 가상 머신의 이동을 행하는 관리 서버에 대해 알려져 있다. 이 관리 서버는, 이동 후의 가상 머신의 예측 I/O량을 산출하고, 이동 후의 가상 머신에 접속되어 있는 어레이 그룹의 최대 I/O량이 예측 I/O량을 초과하고 있었던 경우, 최대 I/O량이 예측 I/O량을 하회하는 어레이 그룹을 검색한다.
계산기 시스템의 처리 성능이 저하되지 않도록 하기 위해, 예를 들어 스토리지 장치에 있어서, 스토리지 장치와 접속하는 서버마다 정의한 액세스 레벨에 따라서, 스토리지 장치로의 데이터 액세스의 우선 제어를 행하는 것이 생각된다.
그러나, 예를 들어 서버가 제공하는 가상 서버마다 서비스 레벨을 설정하고자 하는 경우, 스토리지 장치에 있어서, 액세스 레벨에 따라서, 스토리지 장치로의 데이터 액세스의 우선 제어를 행하는 것은 어렵다.
일 측면에서는, 본 발명은, 가상 기계로부터 스토리지 장치로의 데이터 액세스를, 가상 기계마다 제어할 수 있는 액세스 제어 방법을 제공하는 것을 목적으로 한다.
본 액세스 제어 방법의 일 관점에 따르면, 본 액세스 제어 방법은, 서버 장치에서 실행되는 가상 기계로부터 스토리지 장치로의 액세스 제어 방법이며, 이하의 처리를 행한다.
상기 가상 기계로부터 입출력 명령과 함께 출력된 상기 가상 기계를 식별하는 가상 기계 식별자에 기초하여, 가상 기계 식별자와 서비스 레벨과의 대응 관계를 기억하는 기억부를 참조하여, 상기 가상 기계 식별자에 대응하는 서비스 레벨을 취득한다.
상기 서버 장치 및 상기 스토리지 장치 중 적어도 한쪽에 있어서, 상기 가상 기계로부터의 입출력 명령을 취득한 상기 서비스 레벨에 따라서 실행한다.
발명의 일 형태에서는, 가상 기계로부터 스토리지 장치로의 데이터 액세스를, 가상 기계마다 제어할 수 있는 액세스 제어 방법을 제공할 수 있다.
도 1은 스토리지 시스템(100)의 개요를 설명하는 도면이다.
도 2는 스토리지 시스템(200)의 구성예를 나타내는 도면이다.
도 3은 스토리지 시스템(200)의 개요를 설명하는 도면이다.
도 4는 서비스 레벨 관리 테이블(400)의 예를 나타내는 도면이다.
도 5는 가상 서버 관리 테이블(500)의 예를 나타내는 도면이다.
도 6은 물리 서버(210)에 구비되는 1차 큐(331)의 예를 나타내는 도면이다.
도 7은 스토리지 장치에 구비되는 2차 큐(341)의 예를 나타내는 도면이다.
도 8은 가상 서버가 송신하는 I/O 요구 패킷(800)의 예를 나타내는 도면이다.
도 9는 물리 서버(210)에 의한 가상 서버의 감시 처리를 나타내는 흐름도이다.
도 10은 물리 서버(210)에 의한 I/O 요구의 실행 처리를 나타내는 흐름도이다.
도 11은 물리 서버(210)에 의한 I/O 요구의 실행 처리를 나타내는 흐름도이다.
도 12는 시스템 관리 서버(250)에 의한 서비스 레벨 관리 테이블(400)의 감시 처리를 나타내는 흐름도이다.
도 13은 시스템 관리 서버(250)에 의한 가상 서버 관리 테이블(500)의 감시 처리를 나타내는 흐름도이다.
도 14는 스토리지 장치(220)에 의한 서비스 레벨 관리 테이블(400)의 감시 처리를 나타내는 흐름도이다.
도 15는 스토리지 장치(220)에 의한 I/O 요구의 실행 처리를 나타내는 흐름도이다.
도 16은 스토리지 장치(220)에 의한 I/O 요구의 실행 처리를 나타내는 흐름도이다.
도 17은 스토리지 장치(220)에 의한 I/O 요구의 실행 처리를 나타내는 흐름도이다.
도 2는 스토리지 시스템(200)의 구성예를 나타내는 도면이다.
도 3은 스토리지 시스템(200)의 개요를 설명하는 도면이다.
도 4는 서비스 레벨 관리 테이블(400)의 예를 나타내는 도면이다.
도 5는 가상 서버 관리 테이블(500)의 예를 나타내는 도면이다.
도 6은 물리 서버(210)에 구비되는 1차 큐(331)의 예를 나타내는 도면이다.
도 7은 스토리지 장치에 구비되는 2차 큐(341)의 예를 나타내는 도면이다.
도 8은 가상 서버가 송신하는 I/O 요구 패킷(800)의 예를 나타내는 도면이다.
도 9는 물리 서버(210)에 의한 가상 서버의 감시 처리를 나타내는 흐름도이다.
도 10은 물리 서버(210)에 의한 I/O 요구의 실행 처리를 나타내는 흐름도이다.
도 11은 물리 서버(210)에 의한 I/O 요구의 실행 처리를 나타내는 흐름도이다.
도 12는 시스템 관리 서버(250)에 의한 서비스 레벨 관리 테이블(400)의 감시 처리를 나타내는 흐름도이다.
도 13은 시스템 관리 서버(250)에 의한 가상 서버 관리 테이블(500)의 감시 처리를 나타내는 흐름도이다.
도 14는 스토리지 장치(220)에 의한 서비스 레벨 관리 테이블(400)의 감시 처리를 나타내는 흐름도이다.
도 15는 스토리지 장치(220)에 의한 I/O 요구의 실행 처리를 나타내는 흐름도이다.
도 16은 스토리지 장치(220)에 의한 I/O 요구의 실행 처리를 나타내는 흐름도이다.
도 17은 스토리지 장치(220)에 의한 I/O 요구의 실행 처리를 나타내는 흐름도이다.
이하, 본 발명의 실시 형태의 일례에 대해, 도 1 내지 도 17에 기초하여 설명한다. 또한, 이하에 설명하는 실시 형태는 어디까지나 예시이며, 이하에 명시하지 않는 다양한 변형이나 기술의 적용을 배제하는 의도는 아니다. 즉, 본 실시 형태는, 그 취지를 일탈하지 않는 범위에서, 각 실시예를 조합하는 등 다양하게 변형하여 실시할 수 있다. 또한, 도 10-도 17에 흐름도의 형식으로 나타낸 처리 수순은, 처리의 순서를 한정하는 취지는 아니다. 따라서, 가능한 경우에는, 처리의 순서를 바꾸어도 되는 것은 당연하다.
《실시예》
도 1은 일 실시예에 관한 스토리지 시스템(100)의 개요를 설명하는 도면이다.
스토리지 시스템(100)은, 서버 장치(110)와, 스토리지 장치(120)를 구비한다. 그리고, 서버 장치(110)와 스토리지 장치(120)는, 네트워크(130) 등을 통해 서로 통신 가능하게 접속되어 있다.
서버 장치(110)는, 서버 장치(110)에 구비되는 도시하지 않은 CPU(Central Processing Unit)가 소정의 프로그램을 실행함으로써 1 또는 2 이상의 가상 기계(111-0, 111-1, … 및 111-n)를 제공한다. 단, n은 1 이상의 정수로 한다. 가상 기계(111-0, 111-1, … 및 111-n)의 임의의 가상 기계를 「가상 기계(111)」라고 한다.
서버 장치(110)는, 기억부(112)와, 서비스 레벨별 큐(113-0, 113-1, … 및 113-m)와, 제어부(114)와, 인터페이스부(115)를 포함할 수 있다. 단, m은 1 이상의 정수로 한다. 서비스 레벨별 큐(113-0, 113-1, … 및 113-m)의 임의의 서비스 레벨별 큐를 「서비스 레벨별 큐(113)」라고 한다.
기억부(112)는, 가상 기계(111)를 식별하는 가상 기계 식별자에 대응시켜 가상 기계(111)에 설정된 서비스 레벨을 기억한다. 기억부(112)에는, 예를 들어 RAM(Random Access Memory) 등 메모리를 사용할 수 있다.
서비스 레벨별 큐(113)는, 제어부(114)의 조작에 의해, 가상 기계(111)로부터의 입출력 명령(116)을 가상 기계(111)에 대응하는 서비스 레벨별로 기억하여 대기한다.
제어부(114)는, 서비스 레벨에 따라서 서비스 레벨별 큐(113)에 기억되어 있는 입출력 명령(116)을 대기 행렬순으로 판독한다.
인터페이스부(115)는, 스토리지 장치(120)에 대해, 제어부(114)가 판독한 입출력 명령(116)을 가상 기계에 대응하는 가상 기계 식별자와 함께 발행한다.
스토리지 장치(120)는, 기억부(121)와, 인터페이스부(122)와, 서비스 레벨별 입출력 큐(123-0, 123-1, … 및 123-j)와, 제어부(124)를 포함할 수 있다. 단, j는 1 이상의 정수로 한다. 서비스 레벨별 입출력 큐(123-0, 123-1, … 및 123-j)의 임의의 서비스 레벨별 입출력 큐를 「서비스 레벨별 입출력 큐(123)」라고 한다.
스토리지 장치(120)에는, 기억 장치(125)를 더 포함할 수 있다. 기억 장치(125)는, 임의의 데이터를 기억하는 기억 장치이다. 기억 장치(125)에는, 예를 들어 1 또는 2 이상의 자기 디스크 장치 등을 사용할 수 있다.
기억부(121)는, 서버 장치(110)에서 실행되는 가상 기계(111)를 식별하는 가상 기계 식별자에 대응시켜 가상 기계(111)에 설정된 서비스 레벨을 기억한다. 기억부(121)에는, RAM 등의 메모리를 사용할 수 있다.
인터페이스부(122)는, 입출력 명령(116)을 가상 기계 식별자와 함께 수신한다.
서비스 레벨별 입출력 큐(123)는, 제어부(124)의 조작에 의해, 수신한 입출력 명령(116)을, 가상 기계 식별자에 대응하는 서비스 레벨별로 기억하여 대기한다.
제어부(124)는, 서비스 레벨에 따라서 서비스 레벨별 입출력 큐(123)에 기억되어 있는 입출력 명령(116)을 대기 행렬순으로 판독하여, 기억 장치(125)로의 액세스를 실행한다.
또한, 도 1의 예에서는, 간단하게 하기 위해, 서버 장치(110)와 스토리지 장치(120)를 각각 1대씩 예시하였지만, 스토리지 시스템(100)을 도 1에 나타낸 구성에 한정하는 취지는 아니다. 서버 장치(110)는, 복수의 스토리지 장치(120)와 접속해도 되고, 스토리지 장치(120)는, 복수의 서버 장치(110)와 접속해도 된다.
이상의 구성에 있어서, 예를 들어 서버 장치(110) 및 스토리지 장치(120) 중 적어도 한쪽은, 가상 기계(111)로부터 입출력 명령(116)과 함께 출력된 가상 기계(111)를 식별하는 가상 기계 식별자에 기초하여, 가상 기계 식별자와 서비스 레벨과의 대응 관계를 기억하는 기억부(112 또는 121)를 참조하여, 가상 기계 식별자에 대응하는 서비스 레벨을 취득한다.
그리고, 서버 장치(110) 및 스토리지 장치(120) 중 적어도 한쪽은, 가상 기계(111)로부터의 입출력 명령(116)을 가상 기계 식별자에 대응하는 서비스 레벨에 따라서 실행한다.
이상과 같이, 스토리지 시스템(100)이 실현하는 스토리지 액세스 제어 방법에 따르면, 가상 기계(111)로부터 스토리지 장치(120)로의 데이터 액세스를, 가상 기계(111)마다 제어하는 스토리지 액세스 제어 방법을 실현할 수 있다.
《그 밖의 실시예》
도 2는 그 밖의 실시예에 관한 스토리지 시스템(200)의 구성예를 나타내는 도면이다.
스토리지 시스템(200)은, 물리 서버(210)와, 스토리지 장치(220)와, 시스템 관리 서버(250)를 구비한다. 물리 서버(210)와, 스토리지 장치(220)와, 시스템 관리 서버(250)와, 서로 네트워크를 통해 통신 가능하게 접속되어 있다. 또한, 물리 서버(210)는, 스토리지 장치(220)와 특정 I/F를 사용하여 통신 가능하게 접속할 수 있다.
또한, 도 2에서는, 스토리지 장치(220)에 대해 물리 서버(210)가 1대만 접속되어 있는 경우를 예시하고 있지만, 스토리지 장치(220)는, 복수의 물리 서버(210)를 접속할 수 있다. 마찬가지로, 물리 서버(210)는, 복수의 스토리지 장치(220)와 접속할 수 있다.
물리 서버(210)는, 프로세서(211)와, 메인 메모리(212)와, 기억 장치(213)와, 네트워크 I/F(214)와, 스토리지 I/F(215)와, 매체 구동 장치(216)를 구비하는 정보 처리 장치이다. 그리고, 이들 장치가 버스에 접속되어 서로 데이터의 전달을 행할 수 있는 구성으로 되어 있다.
프로세서(211)는, 주변 기기나 각종 소프트웨어를 실행하는 것 이외에 본 실시예에 관한 스토리지 제어를 실현하는 프로그램, 예를 들어 기억 장치(213)에 기억되어 있는 가상 서버 관리 프로그램 등을 실행하는 연산 장치이다.
메인 메모리(212)는, 프로그램을 실행하기 위해 사용되는 휘발성 기억 장치이다. 메인 메모리(212)에는, 예를 들어 RAM 등을 사용할 수 있다.
기억 장치(213)는, 물리 서버(210)가 동작하기 위해 필요한 프로그램이나 데이터 외에 본 실시예에 관한 스토리지 제어를 실현하는 프로그램을 기억하는 비휘발성 기억 장치이다. 기억 장치(213)에는, 예를 들어 자기 디스크 기억 장치 등을 사용할 수 있다.
기억 장치(213)에는, 예를 들어 서비스 레벨 관리 테이블, 가상 서버 관리 테이블, 가상 서버 관리 프로그램, I/O 요구 실행 프로그램 등을 기억시킬 수 있다. 물리 서버(210)는, 예를 들어 기동시에 시스템 관리 서버(250)로부터 서비스 레벨 관리 테이블, 가상 서버 관리 테이블을 취득하여 기억 장치(213)에 기억시킬 수 있다.
또한, 서비스 레벨 관리 테이블에 대해서는, 도 3에서 후술한다. 또한, 가상 서버 관리 테이블에 대해서는, 도 4에서 후술한다. 또한, 가상 서버 관리 프로그램은, 후술하는 도 9에서 후술하는 처리를 실현하기 위한 프로그램이다. I/O 요구 실행 프로그램은, 후술하는 도 10-도 11에서 후술하는 처리를 실현하기 위한 프로그램이다.
네트워크 I/F(214)는, 네트워크(260)에 접속하는 장치이다.
스토리지 I/F(215)는, 스토리지 장치(220)와 특정 규격에 따라서 통신을 행하는 I/F이다. 스토리지 I/F(215)에는, 예를 들어 Fiber Channel의 HBA(Host Bus Adapter)나, iSCSI(Internet Small Computer System Interface)의 NIC(Network Interface Card) 등을 사용할 수 있다.
스토리지 I/F(215)는, 예를 들어 프로세서(215a)와, 메모리(215b)와, I/F 포트(215c)를 구비한다. 프로세서(215a)는, I/F 포트(215c)를 통해 접속하는 스토리지 장치(220)와 특정 규격에 따른 통신을 실현하기 위해 필요한 프로그램을 실행하는 연산 장치이다. 또한, 프로세서(215a)는, 본 실시예에 관한 스토리지 제어를 실현하는 프로그램, 예를 들어 기억 장치(213)에 기억되어 있는 I/O 요구 실행 프로그램 등을 실행한다. 메모리(215b)에는, 후술하는 1차 큐(330)를 저장할 수 있다.
매체 구동 장치(216)는, 메인 메모리(212)나 기억 장치(213)의 데이터를 가반 기억 매체, 예를 들어 플로피 디스크나 MO 디스크, CD-R이나 DVD-R 등에 출력하거나, 또는 가반 기억 매체로부터 프로그램이나 데이터 등을 판독하는 장치이다.
스토리지 장치(220)는, 상용 컨트롤러(230)와 대기 컨트롤러(240)를 구비한다. 상용 컨트롤러(230)와 대기 컨트롤러(240)는, 내부 버스(221)에 의해 접속되어, 서로 데이터의 교환을 행할 수 있다.
상용 컨트롤러(230)와 대기 컨트롤러(240)는, 도 4에서 후술하는 서비스 레벨 관리 테이블(400)에 설정되는 지연 플래그를 이용하여 구분하여 사용할 수 있다. 예를 들어, 상용 컨트롤러(230)는, 지연 플래그가 ON인 경우에만, 대기 컨트롤러(240)에 I/O 요구를 전송해도 된다.
상용 컨트롤러(230)는, 프로세서(231)와, 캐시 메모리(232)와, 플래시 메모리(233)와, 네트워크 I/F(234)와, 스토리지 I/F(235)와, 매체 구동 장치(236)를 구비한다. 그리고, 이들 장치가 버스에 접속되어 서로 데이터를 전달을 행할 수 있는 구성으로 되어 있다.
프로세서(231)는, 기억 장치(222)에 대한 제어를 위한 프로그램을 실행하는 것 외에 본 실시예에 관한 스토리지 제어를 실현하는 프로그램, 예를 들어 플래시 메모리(233)에 기억되어 있는 서비스 레벨 동기 프로그램이나 I/O 제어 프로그램 등을 실행하는 연산 장치이다.
캐시 메모리(232)는, 프로세서(231)가 실행하는 프로그램이나, 후술하는 2차 큐(340), 기억 장치(222)에 기억되어 있는 데이터의 일부 등을 기억하기 위해서 등에 사용되는 휘발성 기억 장치이다. 캐시 메모리(232)에는, 예를 들어 RAM 등을 사용할 수 있다.
플래시 메모리(233)는, 상용 컨트롤러(230)가 동작하기 위해 필요한 프로그램이나 데이터 외에 본 실시예에 관한 스토리지 제어를 실현하는 프로그램을 기억하는 비휘발성 기억 장치이다.
플래시 메모리(233)에는, 예를 들어 서비스 레벨 관리 테이블, 가상 서버 관리 테이블, 서비스 레벨 동기 프로그램, I/O 제어 프로그램 등을 기억시킬 수 있다. 상용 컨트롤러(230)는, 예를 들어 기동시에 시스템 관리 서버(250)로부터 서비스 레벨 관리 테이블, 가상 서버 관리 테이블을 취득하여 플래시 메모리(233)에 기억시킬 수 있다.
또한, 서비스 레벨 동기 프로그램은, 후술하는 도 14에 나타내는 처리를 실현하기 위한 프로그램이다. I/O 제어 프로그램은, 후술하는 도 15-도 17에 나타내는 처리를 실현하기 위한 프로그램이다.
네트워크 I/F(234)는, 네트워크(260)에 접속하는 장치이다.
I/F 포트(235)는, 스토리지 I/F(215)와 특정 규격에 따라서 통신을 행하는 I/F이다.
매체 구동 장치(236)는, 캐시 메모리(232)나 플래시 메모리(233)의 데이터를 가반 기억 매체, 예를 들어 플로피 디스크나 MO 디스크, CD-R이나 DVD-R 등에 출력하거나, 또는 가반 기억 매체로부터 프로그램이나 데이터 등을 판독하는 장치이다.
대기 컨트롤러(240)는, 상용 컨트롤러(230)와 마찬가지의 구성을 포함할 수 있다. 예를 들어, 대기 컨트롤러(240)에 구비되는 프로세서(241), 캐시 메모리(242) 및 플래시 메모리(243)는, 각각 상용 컨트롤러(230)에 구비되는 프로세서(231), 캐시 메모리(232) 및 플래시 메모리(233)와 마찬가지의 것을 사용할 수 있다. 마찬가지로, 대기 컨트롤러(240)에 구비되는 네트워크 I/F(244), I/F 포트(245) 및 매체 구동 장치(246)는, 각각 상용 컨트롤러(230)에 구비되는 네트워크 I/F(234), I/F 포트(235) 및 매체 구동 장치(236)와 마찬가지의 것을 사용할 수 있다. 따라서, 대기 컨트롤러(240)에 대한 설명은 생략한다.
시스템 관리 서버(250)는, 프로세서(251)와, 메인 메모리(252)와, 기억 장치(253)와, 네트워크 I/F(254)와, 매체 구동 장치(255)를 구비하는 정보 처리 장치이다. 그리고, 이들 장치가 버스에 접속되어 서로 데이터의 전달을 행할 수 있는 구성으로 되어 있다. 단, 시스템 관리 서버(250)는, 독립된 하나의 정보 처리 장치인 것에 한정되는 것은 아니다. 예를 들어, 시스템 관리 서버(250)는, 물리 서버(210)가 제공하는 후술하는 가상 서버(311)에 의해서도 실현할 수 있다.
시스템 관리 서버(250)에 구비되는 프로세서(251), 메인 메모리(252) 및 기억 장치(253)는, 각각 물리 서버(210)에 구비되는 프로세서(211), 메인 메모리(212) 및 기억 장치(213)와 마찬가지의 것을 사용할 수 있다. 마찬가지로, 시스템 관리 서버(250)에 구비되는 네트워크 I/F(254) 및 매체 구동 장치(255)는, 각각 물리 서버(210)에 구비되는 네트워크 I/F(214) 및 매체 구동 장치(216)와 마찬가지의 것을 사용할 수 있다. 따라서, 프로세서(251), 메인 메모리(252), 기억 장치(253), 네트워크 I/F(254) 및 매체 구동 장치(255)에 대한 구체적인 설명은 생략한다.
또한, 기억 장치(253)에는, 서비스 레벨 관리 테이블, 가상 서버 관리 테이블, 서비스 레벨 관리 테이블용 관리 프로그램 및 가상 서버 관리 테이블용 관리 프로그램 등을 기억시킬 수 있다. 서비스 레벨 관리 테이블용 관리 프로그램은, 후술하는 도 12에 나타내는 처리를 실현하기 위한 프로그램이다. 가상 서버 관리 테이블용 관리 프로그램은, 후술하는 도 13에 나타내는 처리를 실현하기 위한 프로그램이다.
또한, 메인 메모리(212, 252), 메모리(215c), 기억 장치(213, 253), 캐시 메모리(232, 242), 플래시 메모리(233, 243) 및 가반 기억 매체 등의 정보 처리 장치에 판독 가능한 기억 매체에는, 비일시적(non-transitory)인 매체를 사용할 수 있다.
도 3은 스토리지 시스템(200)의 개요를 설명하는 도면이다.
물리 서버(210)는, 소정의 프로그램을 실행함으로써, VMM(Virtual Machine Monitor)(310)을 제공한다. 이 VMM(310)은, 1 또는 2 이상의 가상 서버(VM:Virtual Machine)(311)를 제공할 수 있다. 도 3에서는, VM01-VM03의 3개의 가상 서버(311)를 VMM(310)이 제공하고 있는 경우를 예시하고 있다. 단, VMM(310)이 제공하는 가상 서버(311)의 수를 한정하는 취지는 아니다. 이하에 기재하는 (1)-(12)는, 도 3에 기재하는 (1)-(12)에 대응한다.
(1) VMM(310)은, 가상 서버(311)로부터 I/O 요구를 수신하면, 스토리지 I/F(215)로 전송한다. 스토리지 I/F(215)는, VMM(310)으로부터 수신한 I/O 요구를, 가상 서버(311)마다 입출력용 큐를 설치한 일시 큐(320)에 저장한다.
도 3에는, 3개의 일시 큐(321, 322 및 323)를 사용하는 경우에 대해 예시하고 있지만, 사용하는 일시 큐(320)의 수를 한정하는 취지는 아니다. 일시 큐(321)는, VM01으로부터 수신한 I/O 요구를 저장하고, VM01에 출력하는 응답을 저장하는 큐이다. 일시 큐(321)는, VM02로부터 수신한 I/O 요구를 저장하고, VM01에 출력하는 응답을 저장하는 큐이다. 일시 큐(321)는, VM01로부터 수신한 I/O 요구를 저장하고, VM01에 출력하는 응답을 저장하는 큐이다. 또한, 도 3에 나타내는 COM01, 02, …는, I/O 요구를 나타낸다. 또한, 도 3에 나타내는 STS01, 02, …는, I/O 요구에 대한 응답을 나타낸다.
(2) 스토리지 I/F(215)는, 일시 큐(320)에 저장되어 있는 I/O 요구를 취출한다. 그리고, 스토리지 I/F(215)는, 취출한 I/O 요구를 1차 큐(330)에 저장한다. 또한, 1차 큐(330)에는, I/O 요구를 저장하는 1차 큐(331)와, I/O 요구에 대한 응답을 저장하는 1차 큐(332)가 포함된다.
1차 큐(331)는, I/O 요구의 요구원의 가상 서버(311)의 서비스 레벨마다, I/O 요구를 저장하는 큐이다. 1차 큐(331)의 구체예에 있어서는, 도 6에서 후술한다. 1차 큐(332)는, FIFO(First-In First-Out) 형식의 데이터 구조에 의해 실현하는 단일의 큐이므로 설명은 생략한다.
(3) 스토리지 I/F(215)는, 요구원의 가상 서버(311)마다, 요구원의 가상 서버(311)의 서비스 레벨에 따른 I/O 요구수의 I/O 요구를 1차 큐(331)로부터 취출하고, 스토리지 장치(220)에 대해 I/O 요구를 발행한다. 단, 도 5에서 후술하는 가상 서버 관리 테이블(500)에 0이 아닌 I/O 억지수가 설정되어 있는 가상 서버(311)로부터의 I/O 요구의 경우, 스토리지 I/F(215)는, 요구원의 가상 서버(311)의 서비스 레벨에 따른 I/O 요구수로부터 I/O 억지수를 뺀 수의 I/O 요구를 발행한다.
스토리지 I/F(215)는, 일정 기간마다, 1초간당 전송 데이터량을 산출한다. 그리고, 스토리지 I/F(215)는, 산출한 전송 데이터량이, 서비스 레벨 관리 테이블(400)의 성능 제한을 초과하면, 그 초과분에 기초하여 I/O 억지수를 산출한다. 그리고, 스토리지 I/F(215)는, 산출한 I/O 억지수를, 가상 서버 관리 테이블(500)의, 성능 제한을 초과한 가상 서버(311)에 설정한다.
(4) 스토리지 장치(220)의 상용 컨트롤러(230)는, 물리 서버(210)로부터 수신한 I/O 요구를, 2차 큐(340)에 저장한다. 2차 큐(340)에는, I/O 요구를 저장하는 2차 큐(341)와, I/O 요구의 실행 결과를 저장하는 2차 큐(342)가 포함된다. 2차 큐(341)는, I/O 요구의 요구원의 가상 서버(311)의 서비스 레벨마다, I/O 요구를 저장하는 큐이다. 2차 큐(341)의 구체예에 대해서는, 도 7에서 후술한다. 2차 큐(342)는, 1차 큐(332)와 마찬가지로, FIFO 형식의 데이터 구조에 의해 실현하는 단일의 큐이므로 설명은 생략한다.
(5) 상용 컨트롤러(230)는, 요구원의 가상 서버(311)마다, 요구원의 가상 서버(311)의 서비스 레벨에 따른 I/O 요구수의 I/O 요구를 2차 큐(341)로부터 취출하여 실행한다. 그리고, 상용 컨트롤러(230)는 I/O 요구의 실행 결과를 2차 큐(342)에 저장한다. 또한, 상용 컨트롤러(230)는, 2차 큐(342)로부터 응답을 취출하여 물리 서버(210)에 송신한다.
상용 컨트롤러(230) 및 대기 컨트롤러(240)는, 일정 기간마다, I/O 요구를 수신하고 나서 응답을 보낼 때까지의 응답 시간의 평균, 즉, 평균 응답 시간을 산출한다. 그리고, 예를 들어 상용 컨트롤러(230)는, 평균 응답 시간이 서비스 레벨 관리 테이블(400)의 이양 레벨을 초과한 것을 검출한다. 이 경우, 상용 컨트롤러(230)는, 평균 응답 시간이 이양 레벨을 초과한 I/O 요구의 요구원인 가상 서버(311)의 서비스 레벨에 대응하는, 서비스 레벨 관리 테이블(400)의 지연 플래그를 ON으로 설정한다.
또한, 상용 컨트롤러(230) 및 대기 컨트롤러(240)는, 평균 응답 시간이 서비스 레벨 관리 테이블(400)의 복귀 레벨 이하로 되면, 평균 응답 시간이 복귀 레벨 이하로 된 것을 검출한다. 이 경우, 상용 컨트롤러(230) 및 대기 컨트롤러(240)는 I/O 요구의 요구원인 가상 서버(311)의 서비스 레벨에 대응하는, 서비스 레벨 관리 테이블(400)의 지연 플래그를 OFF로 설정한다.
(6) 한편, 서비스 레벨 관리 테이블(400)의 지연 플래그가 ON으로 설정되어 있는 경우, 상용 컨트롤러(230)는, 지연 플래그가 ON으로 설정되어 있는 서비스 레벨의 가상 서버(311)로부터 수신한 I/O 요구를 대기 컨트롤러(240)로 전송한다.
(7) 대기 컨트롤러(240)는, 상용 컨트롤러(230)로부터 수신한 I/O 요구를, 2차 큐(350)에 저장한다. 2차 큐(350)는, 2차 큐(340)와 마찬가지의 구성을 사용할 수 있으므로 설명은 생략한다.
(8) 대기 컨트롤러(240)는, 요구원의 가상 서버(311)마다, 요구원의 가상 서버(311)의 서비스 레벨에 따른 I/O 요구수의 I/O 요구를 2차 큐(351)로부터 취출하여 실행한다. 그리고, 대기 컨트롤러(240)는, I/O 요구의 실행 결과를 2차 큐(352)에 저장한다.
(9) 대기 컨트롤러(240)는, 2차 큐(352)로부터 응답을 취출하여 상용 컨트롤러(230)에 출력한다. 상용 컨트롤러(230)는, 대기 컨트롤러(240)로부터 수신한 응답을 물리 서버(210)에 출력한다.
(10) 스토리지 I/F(215)는, 스토리지 장치(220)로부터 응답을 수신하면, 수신한 응답을 1차 큐(332)에 저장한다. 그리고, (11) 스토리지 I/F(215)는, 1차 큐(332)로부터 응답을 취출하여, 취출한 응답을 일시 큐(320)에 저장한다. 스토리지 I/F(215)는, 일시 큐(320)로부터 응답을 취출하여 VMM(310)에 출력한다.
(12) VMM(310)은, 스토리지 I/F(215)로부터 수신한 응답을, 가상 서버 VM01-03 중 어느 하나로 전송한다.
도 4는, 서비스 레벨 관리 테이블(400)의 예를 나타내는 도면이다.
서비스 레벨 관리 테이블(400)에는, 서비스 레벨, I/O 우선수, 성능 제한, 평균 I/O 응답 시간, 이양 레벨, 복귀 레벨 및 지연 플래그에 대한 정보 등을 포함할 수 있다.
서비스 레벨은, 가상 서버(311)마다 설정되는 서비스의 우선도이다. 본 실시예에서는, 「고」, 「중」 및 「저」의 3종류를 사용한다. 서비스 레벨은, 「고」가 가장 우선도가 높고, 「고」 다음에 「중」의 우선도가 높다. 그리고, 「저」의 우선도가 가장 낮다.
I/O 우선수는, 서비스 레벨마다, 한 번에 실행할 수 있는 I/O 발행수의 상한을 정한 값이다.
성능 제한은, 라이트 처리에 대한 성능 제한과, 리드 처리에 대한 성능 제한을 포함할 수 있다. 성능 제한이라 함은, 서비스 레벨마다 허가하는 전송 데이터량(MB/S)의 상한이다.
평균 I/O 응답 시간은, 가상 서버(311)의 I/O 요구의 실행에 필요로 하는 평균 시간(ms)이다. 예를 들어, 물리 서버(210)는, I/O 요구를 발행하고 나서 그 응답을 수신할 때까지의 시간의 평균 시간을, 평균 I/O 응답 시간으로서 산출할 수 있다. 또한, 스토리지 장치(220)는, I/O 요구를 수신하고 나서 그 I/O 요구에 대한 응답을 출력할 때까지의 시간의 평균 시간을, 평균 I/O 응답 시간으로서 산출할 수 있다.
이양 레벨은, 수신하는 I/O 요구를 모두 상용 컨트롤러가 처리하는 통상 모드로부터, 상용 컨트롤러가 수신하는 I/O 요구의 일부의 처리를 대기 컨트롤러로 이양하는 부하 분산 모드로 이행하는지 여부를 판별하기 위한 임계값이다. 이양 레벨은, 평균 I/O 응답 시간에 대한 비율로 나타낼 수 있다.
복귀 레벨은, 부하 분산 모드로부터 통상 모드로 복귀하는지 여부를 판별하기 위한 임계값이다. 복귀 레벨도, 이양 레벨과 마찬가지로, 평균 I/O 응답 시간에 대한 비율로 나타낼 수 있다.
지연 플래그는, 수신하는 I/O 요구를 상용 컨트롤러 또는 대기 컨트롤러 중 어느 쪽에서 실행하는지를 판정하기 위한 플래그이다. 지연 플래그가 OFF인 경우, 수신하는 I/O 요구를 상용 컨트롤러가 실행한다. 또한, 지연 플래그가 ON인 경우, 수신하는 I/O 요구를 대기 컨트롤러가 실행한다.
도 5는, 가상 서버 관리 테이블(500)의 예를 나타내는 도면이다.
가상 서버 관리 테이블(500)에는, 물리 서버(210), 가상 서버, 식별자, 서비스 레벨, 평균 I/O 처리 시간(물리 서버), 전송 데이터량, I/O 억지수 및 평균 I/O 처리 시간(스토리지 장치)에 대한 정보 등을 포함할 수 있다.
물리 서버(210)는, 물리 서버(210)를 식별하는 식별 정보이다.
가상 서버는, 물리 서버(210)상에서 동작하는 가상 서버(311)에 할당된 고유 ID이다.
식별자는, 수신한 I/O 요구의 요구원인 가상 서버(311)를 스토리지 장치(220)가 식별하기 위한 정보이다.
서비스 레벨은, 가상 서버(311)에 할당되는 서비스 레벨이다.
평균 I/O 처리 시간(물리 서버)은, 가상 서버(311)의 I/O 요구에 대한 처리가 완료될 때까지의 평균 시간(ms)이다. 이 평균 I/O 처리 시간(물리 서버)은, 예를 들어 가상 서버(311)로부터 I/O 요구를 수신한 물리 서버(210)가 I/O 요구를 스토리지 장치(220)에 대해 발행하고 나서, 그 I/O 요구에 대한 응답을 물리 서버(210)가 스토리지 장치(220)로부터 수신할 때까지의 시간의 평균값 등을 사용할 수 있다.
전송 데이터량은, I/O 요구에 의한 처리가 라이트 처리일 때의 데이터 전송량(MB/s)과, I/O 요구에 의한 처리가 리드 처리일 때의 데이터 전송량(MB/s)을 포함할 수 있다.
I/O 억지수는, 데이터 전송량이 서비스 레벨 관리 테이블(400)의 성능 제한을 초과한 가상 서버(311)의, 다음 회 발행하는 I/O 요구를 제한하는 수이다. I/O 억지수에는, 0 이상의 정수값을 사용할 수 있다.
평균 I/O 처리 시간(스토리지 장치)은, 가상 서버(311)의 I/O 요구에 대한 처리가 완료될 때까지의 평균 시간(ms)이다. 이 평균 I/O 처리 시간(스토리지 장치)은, 예를 들어 스토리지 장치(220)가 I/O 요구를 수신하고 나서, I/O 요구에 대한 응답을 물리 서버(210)로 송신할 때까지의 평균 시간 등을 사용할 수 있다.
도 6은 물리 서버(210)에 구비되는 1차 큐(331)의 예를 나타내는 도면이다.
1차 큐(331)는, 고레벨 큐(331a)와, 중레벨 큐(331b)와, 저레벨 큐(331c)를 구비한다. 이하에서는, 고레벨 큐(331a), 중레벨 큐(331b) 및 저레벨 큐(331c), 또는 도 7에서 후술하는 고레벨 큐(341a), 중레벨 큐(341b) 및 저레벨 큐(341c)를 합쳐서 「레벨별 큐」라고 한다.
고레벨 큐(331a)는, 서비스 레벨이 「고」로 설정되어 있는 가상 서버(311)로부터 수신한 I/O 요구를 저장하는 큐이다. 중레벨 큐(331b)는, 서비스 레벨이 「중」으로 설정되어 있는 가상 서버(311)로부터 수신한 I/O 요구를 저장하는 큐이다. 저레벨 큐(331c)는, 서비스 레벨이 「저」로 설정되어 있는 가상 서버(311)로부터 수신한 I/O 요구를 저장하는 큐이다.
고레벨 큐(331a), 중레벨 큐(331b) 및 저레벨 큐(331c)에는, 각각 가상 서버(311)마다 그 가상 서버(311)로부터 수신한 I/O 요구만을 저장하는 개별 큐를 구비한다. 개별 큐는, FIFO 형식의 데이터 구조로 실현할 수 있다. 도 6에는, 예를 들어 가상 서버(VM01)로부터 수신한 I/O 요구를 저장하는 개별 큐(511)와, 가상 서버(VM04)로부터 수신한 I/O 요구를 저장하는 개별 큐(512)를 포함하는 고레벨 큐(331a)가 예시되어 있다.
도 7은 스토리지 장치(220)에 구비되는 2차 큐(341)의 예를 나타내는 도면이다.
2차 큐(341)는, 1차 큐(331)와 마찬가지로, 고레벨 큐(341a)와, 중레벨 큐(341b)와, 저레벨 큐(341c)를 구비한다.
고레벨 큐(341a)는, 서비스 레벨이 「고」로 설정되어 있는 가상 서버(311)가 요구원의 I/O 요구를 저장하는 큐이다. 중레벨 큐(341b)는, 서비스 레벨이 「중」으로 설정되어 있는 가상 서버(311)가 요구원의 I/O 요구를 저장하는 큐이다. 저레벨 큐(341c)는, 서비스 레벨이 「저」로 설정되어 있는 가상 서버(311)가 요구원의 I/O 요구를 저장하는 큐이다.
고레벨 큐(341a), 중레벨 큐(341b) 및 저레벨 큐(341c)에는, 각각 가상 서버(311)마다 그 가상 서버(311)로부터 수신한 I/O 요구만을 저장하는 개별 큐를 구비한다. 개별 큐는, FIFO 형식의 데이터 구조로 실현할 수 있다. 도 7에는, 예를 들어 물리 서버(SV01)에서 동작하는 가상 서버(VM01)가 요구원의 I/O 요구를 저장하는 개별 큐(611)와, 물리 서버(SVC2)에서 동작하는 가상 서버(VM01)가 요구원의 I/O 요구를 저장하는 개별 큐(612)를 포함하는 고레벨 큐(341a)가 예시되어 있다.
도 8은 가상 서버(311)가 송신하는 I/O 요구 패킷(800)의 예를 나타내는 도면이다.
I/O 요구 패킷(800)에는, 예를 들어 IEEE(The Institute of Electrical and Electronic Engineers) 802.1에 준거한 포맷의 패킷을 사용할 수 있다.
이 경우, I/O 요구 패킷(800)에는, 송신처 MAC(Media Access Control) 어드레스, 송신원 MAC 어드레스, 태그 헤더, 타입, 데이터 및 FCS(Frame Check Sequence)에 대한 정보 등을 포함할 수 있다.
또한, 태그 헤더에는, TPID(Tag Protocol Identifier)와, TCI(Tag Control Information)를 포함할 수 있다. 그리고, TCI에는, PCP(Priority Code Point)와, CFI(Canonical Format Indicator) 및 VLAN ID에 대한 정보를 포함할 수 있다.
VLAN ID에는, 도 5에 나타낸 가상 서버(311)의 식별자를 설정할 수 있다. 또한, 도 8에 예시한 I/O 요구 패킷(800)은, IEEE 802.1에 준거한 포맷의 패킷이므로, I/O 요구 패킷(800)에 포함되는 VLAN ID 이외의 정보에 대한 설명은 생략한다. 단, I/O 요구 패킷(800)을, IEEE 802.1에 준거한 포맷에 한정하는 취지는 아니며, I/O 요구 패킷(800)의 포맷은, 필요에 따라서 미리 정해 둘 수 있다.
도 9는 물리 서버(210)에 의한 가상 서버(311)의 감시 처리를 나타내는 흐름도이다.
물리 서버(210)는, 기동되면(스텝 S900), 기억 장치(213)로부터 서비스 레벨 관리 테이블(400)과 가상 서버 관리 테이블(500)을 판독하여, 메인 메모리(212)에 전개한다(스텝 S901). 그리고, 물리 서버(210)는, 신규로 기동되는 가상 서버(311)의 감시를 개시한다(스텝 S902 "아니오"). 신규로 기동된 가상 서버(311)를 이하에서는, 「신규 가상 서버」라고 한다.
신규 가상 서버를 검출하면(스텝 S903 "예"), 물리 서버(210)는, 검출한 신규 가상 서버에 할당하는 고유 ID를 결정한다(스텝 S904). 물리 서버(210)는, 도 5에 예시한 바와 같이, 가상 서버(311)의 고유 ID는, VM01로부터 차례로 VM02, VM03, …등으로 기계적으로 정할 수 있다.
그리고, 물리 서버(210)는, 도시하지 않은 표시 장치 등에, 신규 가상 서버의 서비스 레벨의 설정을 촉구하는 표시를 출력한다. 그리고, 이용자가, 입력 장치를 조작하여 신규 가상 서버에 대한 서비스 레벨을 입력한 것을 검출하면, 물리 서버(210)는, 그 입력된 서비스 레벨을 취득한다(스텝 S905).
물리 서버(210)는, 신규 가상 서버에 대한, 스텝 S904에서 결정한 고유 ID와, 스텝 S905에서 취득한 서비스 레벨을 자신의 식별 정보와 함께, 메인 메모리(212)의 가상 서버 관리 테이블(500)에 추가한다(스텝 S906).
물리 서버(210)는, 신규 가상 서버에 대한, 스텝 S904에서 결정한 고유 ID와, 스텝 S905에서 취득한 서비스 레벨을 자신의 식별 정보와 함께, 시스템 관리 서버(250)에 통지한다(스텝 S907). 그리고, 물리 서버(210)는, 시스템 관리 서버(250)에 대해, 신규 가상 서버의 식별자를 요구한다(스텝 S908). 그 후, 물리 서버(210)는, 시스템 관리 서버(250)로부터 신규 가상 서버의 식별자를 수신할 때까지 대기한다(스텝 S909 "아니오").
시스템 관리 서버(250)로부터 신규 가상 서버의 식별자를 수신하면(스텝 S909 "예"), 물리 서버(210)는, 수신한 식별자를 메인 메모리(212)의 가상 서버 관리 테이블(500)에 기억시킨다(스텝 S910). 그리고, 물리 서버(210)는, 메인 메모리(212)의 가상 서버 관리 테이블(500)의 변경 내용을, 기억 장치(213)의 가상 서버 관리 테이블(500)에 반영하고, 처리를 스텝 S903으로 이행한다.
도 10 및 도 11은 물리 서버(210)에 의한 I/O 요구의 실행 처리를 나타내는 흐름도이다. 또한, 본 실시예에서는, 스토리지 I/F(215)가, 도 10 및 도 11에 나타내는 처리를 행하지만, 물리 서버(210)에 포함되는 프로세서(211)에 소정의 프로그램을 실행시킴으로써도 행할 수 있다. 따라서, 이하에서는, 처리의 주체를 「물리 서버(210)」로 하여 설명한다.
물리 서버(210)는, 타이머를 기동시켜 일정 시간의 계측을 개시한다(스텝 S1001).
가상 서버(311)로부터 I/O 요구를 수신하면(스텝 S1002), 물리 서버(210)는, 메인 메모리(212)에 기억되어 있는 가상 서버 관리 테이블(500)을 참조한다. 그리고, 물리 서버(210)는 I/O 요구의 요구원의 가상 서버(311)의 식별자와 서비스 레벨을 취득한다(스텝 S1003). 이하의 처리의 설명에서는, 스텝 S1002에서 수신한 I/O 요구의 요구원의 가상 서버(311)를 「대상 가상 서버」라고 한다.
물리 서버(210)는, 스텝 S1003에서 취득한 대상 가상 서버의 식별자를, 스텝 S1002에서 수신한 I/O 요구의 패킷의 소정의 위치, 예를 들어 도 8에서 예시한 VLAN ID의 위치에 설정한다(스텝 S1004).
물리 서버(210)는, 1차 큐(331)에 포함되는 고레벨 큐, 중레벨 큐 및 저레벨 큐 중, 스텝 S1003에서 취득한 서비스 레벨에 대응하는 큐에, 대상 가상 서버의 개별 큐를 생성한다(스텝 S1005). 단, 이미 대상 가상 서버의 개별 큐가 존재하는 경우, 물리 서버(210)는, 스텝 S1005의 처리를 스킵하고 스텝 S1006으로 이행한다.
그리고, 물리 서버(210)는, 스텝 S1003에서 취득한 서비스 레벨에 대응하는 큐에 포함되는, 스텝 S1005에서 생성된 개별 큐에, I/O 요구를 저장한다(스텝 S1006).
물리 서버(210)는, 스텝 S1001에서 기동시킨 타이머를 참조하여, 소정의 시각으로부터의 경과 시간을 취득한다(스텝 S1007).
스텝 S1007에서 취득한 경과 시간이 일정 시간 미만인 경우(스텝 S1008 "아니오"), 물리 서버(210)는, 처리를 스텝 S1002로 이행한다. 그리고, 물리 서버(210)는, 스텝 S1002-S1008의 처리를 반복한다.
스텝 S1007에서 취득한 경과 시간이 일정 시간 이상인 경우(스텝 S1008 "예"), 물리 서버(210)는, 시간 계측을 종료하고 처리를 스텝 S1009로 이행한다. 그리고, 물리 서버(210)는, 서비스 레벨마다, 가상 서버(311)가 실행 가능한 I/O 요구의 수를 산출한다(스텝 S1009).
물리 서버(210)는, 물리 서버(210)에서 동작하는 서비스 레벨마다 가상 서버(311)의 수에 기초하여, 서비스 레벨마다, 가상 서버(311)가 실행 가능한 I/O 요구의 수를 산출할 수 있다. 일례로서, 하기 조건의 경우에 대해 설명한다.
인터페이스의 최대 I/O 처리수 : 100,000IOPS
서비스 레벨 「고」의 가상 서버(311)의 수 : 2대
서비스 레벨 「중」의 가상 서버(311)의 수 : 5대
서비스 레벨 「저」의 가상 서버(311)의 수 : 2대
서비스 레벨마다의 I/O 우선수 : 도 4에 나타낸 I/O 우선수
또한, 최대 I/O 처리수라 함은, 물리 서버(210)에 실장되어 있는, 스토리지 장치(220)와의 인터페이스가, 한 번에 처리할 수 있는 I/O의 수의 최대값이다. 인터페이스에는, Fiber Channel의 HBA나 iSCSI의 NIC 등의 스토리지 I/F(215)가 포함된다. 최대 I/O 처리수는, 미리 기억 장치(213) 등에 기억시켜 둘 수 있다. 본 실시예 중에서 표기하는 「IOPS」는, 단위 시간당 처리되는 I/O 요구의 수를 나타내는 단위이다.
(1) 우선, 물리 서버(210)는, 메인 메모리(212)에 기억되어 있는 서비스 레벨 관리 테이블(400)을 참조하여, 서비스 레벨마다의 I/O 우선수를 취득한다. 본 실시예에서는, 서비스 레벨이 「고」인 I/O 우선수는 「4」, 서비스 레벨이 「중」인 I/O 우선수는 「2」, 서비스 레벨이 「저」인 I/O 우선수는 「1」이다.
(2) 다음으로, 물리 서버(210)는, 물리 서버(210)에서 동작하고 있는 서비스 레벨마다의 가상 서버(311)의 수를 취득한다. 이 서비스 레벨마다의 가상 서버(311)의 수는, 예를 들어 메인 메모리(212)에 기억되어 있는 가상 서버 관리 테이블(500)로부터 취득할 수 있다. 본 실시예에서는, 물리 서버(210)에서 동작하고 있는 가상 서버(311) 중, 서비스 레벨이 「고」인 가상 서버(311)는 2대, 서비스 레벨이 「중」인 가상 서버(311)는 5대, 서비스 레벨이 「저」인 가상 서버(311)는 2대이다.
(3) 그리고 물리 서버(210)는, I/O 할당 상수를 산출한다. 물리 서버(210)는, 다음 식을 사용하여 I/O 할당 상수를 산출할 수 있다.
「I/O 할당 상수」= 「인터페이스의 최대 I/O 처리수」÷(「서비스 레벨 「고」의 IO 우선수」×「서비스 레벨 「고」의 가상 서버(311)의 수」+「서비스 레벨 「중」의 IO 우선수」×「서비스 레벨 「중」의 가상 서버(311)의 수」+「서비스 레벨 「저」의 IO 우선수」×「서비스 레벨 「저」의 가상 서버(311)의 수」)…(1)
따라서, 본 실시예의 경우, 물리 서버(210)는, I/O 할당 상수를 5,000IOPS(=100,000IOPS÷(4IO×2대+2IO×5대+1IO×2대))로 산출할 수 있다. 또한, 본 실시예 중에서 표기하는 「IO」는, I/O 처리의 수를 의미한다.
(4) 그리고, 물리 서버(210)는, 서비스 레벨마다의, 가상 서버(311)가 실행 가능한 I/O 요구의 수를 산출한다. 물리 서버(210)는, 다음 식을 사용하여, 서비스 레벨마다의, 가상 서버(311)가 실행 가능한 I/O 요구의 수를 산출할 수 있다.
「서비스 레벨마다의, 가상 서버(311)가 실행 가능한 I/O 요구의 수」=
「I/O 할당 상수」×「서비스 레벨마다의 I/O 우선수」…(2)
따라서, 본 실시예의 경우, 물리 서버(210)는, 서비스 레벨 「고」의, 가상 서버(311)가 실행 가능한 I/O 요구의 수를, 20,000IO(=4IO×5,000IOPS)로 산출할 수 있다. 또한, 물리 서버(210)는, 서비스 레벨 「중」의, 가상 서버(311)가 실행 가능한 I/O 요구의 수를, 10,000IO(=2IO×5,000IOPS)로 산출할 수 있다. 또한, 물리 서버(210)는, 서비스 레벨 「저」의, 가상 서버(311)가 실행 가능한 I/O 요구의 수를, 5,000IO(=1IO×5,000IOPS)로 산출할 수 있다.
서비스 레벨마다의, 가상 서버(311)가 실행 가능한 I/O 요구의 수를 산출하면, 물리 서버(210)는, 1차 큐(331)에 I/O 요구가 기억되어 있는 가상 서버(311) 중, 임의의 가상 서버(311)를 선택한다(스텝 S1010). 이하의 처리에서는, 선택한 가상 서버(311)를 「선택 가상 서버」라고 한다.
또한, 가상 서버(311)의 선택은, 고레벨 큐(331a)에 I/O 요구가 저장되어 있는 가상 서버(311), 중레벨 큐(331b)에 I/O 요구가 저장되어 있는 가상 서버(311), 저레벨 큐(331c)에 I/O 요구가 저장되어 있는 가상 서버(311)의 순으로 행한다. 또한, 예를 들어 고레벨 큐(331a)에 I/O 요구가 저장되어 있는 가상 서버(311)가 복수 있는 경우, 그들 가상 서버(311)를 모두 선택한 후에, 중레벨 큐(331b)에 I/O 요구가 저장되어 있는 가상 서버(311)를 선택한다.
물리 서버(210)는, 메인 메모리(212)에 기억되어 있는 가상 서버 관리 테이블(500)을 참조하여, 선택 가상 서버에, 0 이외의 I/O 억지수가 설정되어 있는지 여부를 확인한다(스텝 S1011). 본 실시예의 I/O 억지수는, 초기값으로서 0이 설정되어 있는 것으로 한다.
선택 가상 서버에 0 이외의 I/O 억지수가 설정되어 있는 경우(스텝 S1012 "예"), 물리 서버(210)는, 처리를 스텝 S1013으로 이행한다. 이 경우, 물리 서버(210)는, 스텝 S1009에서 산출한 I/O 요구의 수로부터, I/O 억지수만큼 뺀다(스텝 S1013). 예를 들어, 스텝 S1009의 예에서, 선택 가상 서버의 서비스 레벨이 「고」인 경우, 물리 서버(210)는, 20,000IO로부터 I/O 억지수만큼 감산을 행한다. 그리고, 물리 서버(210)는, 처리를 스텝 S1014로 이행한다. 또한, 선택 가상 서버에 I/O 억지수가 0으로 설정되어 있는 경우(스텝 S1012 "아니오"), 물리 서버(210)는, 처리를 스텝 S1014로 이행한다.
물리 서버(210)는, 1차 큐(331)로부터, 스텝 S1009에서 산출한 I/O 요구의 수, 단, 스텝 S1013의 처리를 행한 경우에는, 스텝 S1013에서 산출한 I/O 요구의 수만큼, 선택 가상 서버의 I/O 요구를 취출한다. 그리고, 물리 서버(210)는, 취출한 I/O 요구를, 스토리지 장치(220)에 대해 발행한다(스텝 S1014).
물리 서버(210)는, 스텝 S1014에서 발행한 I/O 요구의 처리 종별과 전송 데이터수를 메인 메모리(212)의 소정의 영역에 기억시킨다(스텝 S1015). I/O 요구의 처리 종별이라 함은, I/O 요구가 요구하는, 예를 들어 라이트 처리나 리드 처리 등의 처리이다. I/O 요구의 전송 데이터수라 함은, 예를 들어 I/O 요구의 처리 종별이 라이트 처리인 경우의 라이트 처리 대상의 데이터수나, I/O 요구의 처리 종별이 리드 처리인 경우의 리드 처리 대상의 데이터수 등이다. I/O 요구의 처리 종별과 전송 데이터수는, I/O 요구 패킷의 헤더부 등으로부터 취득할 수 있다.
또한, 물리 서버(210)는, 스텝 S1014에서 I/O 요구를 발행한 발행 시각을 메인 메모리(212)의 소정의 영역에 기억시킨다(스텝 S1016). 그리고, 물리 서버(210)는, 발행한 I/O 요구의 실행이 완료되면, 즉, 스토리지 장치(220)로부터 I/O 요구에 대한 응답을 수신하면, 그 응답을 수신한 시각을 I/O 요구의 완료 시각으로서 메인 메모리(212)의 소정의 영역에 기억시킨다(스텝 S1017).
물리 서버(210)는, 스텝 S1014에서 발행한 I/O 요구 중, 스토리지 장치(220)로부터 응답을 수신한 것에 대해, 각각 스텝 S1016에서 기억한 발행 시각과 스텝 S1017에서 기억한 완료 시각의 차분으로부터 응답 시간을 산출한다. 그리고 물리 서버(210)는, 산출한 응답 시간으로부터, 스텝 S1014에서 발행한 I/O 요구 중 스토리지 장치(220)로부터 응답을 수신한 I/O 요구의 평균 응답 시간을 산출한다(스텝 S1018). 물리 서버(210)는, 산출한 평균 응답 시간을, 메인 메모리(212)에 기억되어 있는 가상 서버 관리 테이블(500)의 평균 I/O 처리 시간(물리 서버)으로서 기억한다.
물리 서버(210)는, 스텝 S1014에서 발행한 I/O 요구 중, 스토리지 장치(220)로부터 응답을 수신한 것에 대한 전송 데이터량의 총합을 산출한다. 또한, 물리 서버(210)는, 스텝 S1014에서 발행한 I/O 요구 중, 스토리지 장치(220)로부터 응답을 수신한 것에 대한 응답 시간의 총합을 산출한다. 그리고, 물리 서버(210)는, 전송 데이터량의 총합을 응답 시간의 총합으로 나눔으로써, 1초당의 전송 데이터량을 산출한다(스텝 S1019). 또한, 물리 서버(210)는, 산출한 1초당의 전송 데이터량을, 메인 메모리(212)에 기억되어 있는 가상 서버 관리 테이블(500)의 전송 데이터량으로서 기억시킨다.
물리 서버(210)는, 메인 메모리(212)에 기억되어 있는 서비스 레벨 관리 테이블(400)을 참조하여, 선택 가상 서버의 서비스 레벨에 대응하는 성능 제한을 취득한다(스텝 S1020). 스텝 S1019에서 산출한 1초당의 데이터 전송량이, 스텝 S1020에서 취득한 성능 제한을 초과하고 있는 경우(스텝 S1021 "예"), 물리 서버(210)는 I/O 억지수를 산출한다(스텝 S1022). 물리 서버(210)는, I/O 억지수를, 다음 식 (3)에 의해 산출할 수 있다.
「I/O 억지수」=
(「전송 데이터량(A)」―「성능 제한(B)」)÷(「전송 데이터량(C)」÷「I/O 요구수(D)」) …(3)
단, 상기 식 (3)에 있어서, 전송 데이터량(A)은, 스텝 S1019에서 산출한 1초당의 전송 데이터량이다. 또한, 성능 제한(B)은, 메인 메모리(212)에 기억되어 있는 서비스 레벨 관리 테이블(400)에 설정되어 있는 성능 제한이다. 또한, 전송 데이터량(C)은, 스텝 S1014에서 발행한 I/O 요구 중, 스토리지 장치(220)로부터 응답을 수신한 것에 대한 전송 데이터량의 총합이다. 또한, I/O 요구수(D)는, 스텝 S1014에서 발행한 I/O 요구 중, 스토리지 장치로부터 응답을 수신한 I/O 요구의 수이다.
I/O 억지수를 산출하면, 물리 서버(210)는, 처리를 스텝 S1023으로 이행한다. 또한, 스텝 S1019에서 산출한 1초당의 데이터 전송량이, 스텝 S1020에서 취득한 성능 제한을 초과하고 있지 않은 경우도(스텝 S1021 "아니오"), 물리 서버(210)는, 처리를 스텝 S1023으로 이행한다.
1차 큐(331)에 미발행 I/O 요구가 있는 경우(스텝 S1023, S1024 "예"), 물리 서버(210)는, 처리를 스텝 S1010으로 이행한다. 또한, 1차 큐(331)에 미발행 I/O 요구가 없는 경우(스텝 S1023, S1024 "아니오"), 물리 서버(210)는, I/O 요구의 실행 처리를 종료한다(스텝 S1025).
물리 서버(210)에 의한 서비스 레벨 관리 테이블(400)의 감시 처리는, 스토리지 장치(220)와 마찬가지이다. 스토리지 장치(220)에 의한 서비스 레벨 관리 테이블(400)의 감시 처리에 대해서는, 도 14에서 후술한다.
또한, 스텝 S1022에서는, 1초당의 데이터 전송량이, 성능 제한을 초과한 경우에 I/O 억지수를 산출하고 있지만, 평균 I/O 처리 시간(물리 서버)이, 예를 들어 서비스 레벨 관리 테이블(400)의 평균 I/O 응답 시간을 초과한 경우에 I/O 억지수를 산출해도 된다.
도 12는, 시스템 관리 서버(250)에 의한 서비스 레벨 관리 테이블(400)의 감시 처리를 나타내는 흐름도이다.
시스템 관리 서버(250)는, 기동되면(스텝 S1200), 기억 장치(253)로부터 서비스 레벨 관리 테이블(400)을 판독한다. 그리고, 시스템 관리 서버(250)는, 판독한 서비스 레벨 관리 테이블(400)을, 메인 메모리(252)의 소정의 영역에 전개한다(스텝 S1201).
그리고, 시스템 관리 서버(250)는, 기억 장치(253)에 기억되어 있는 서비스 레벨 관리 테이블(400)의 변경을 감시한다(스텝 S1202, S1203 "아니오"). 이 경우, 예를 들어 시스템 관리 서버(250)는, 정기적으로 기억 장치(253)로부터 서비스 레벨 관리 테이블(400)을 판독하여, 스텝 S1201에서 메인 메모리(252)의 소정의 영역에 전개한 서비스 레벨 관리 테이블(400)과 비교한다. 그리고, 기억 장치(253)로부터 판독한 서비스 레벨 관리 테이블(400)과, 메인 메모리(252)의 소정의 영역에 전개한 서비스 레벨 관리 테이블(400)에 차이가 있는 경우, 시스템 관리 서버(250)는, 서비스 레벨 관리 테이블(400)이 변경되었다고 판단한다.
기억 장치(253)에 기억된 서비스 레벨 관리 테이블(400)에 변경이 있었던 경우(스텝 S1202 "예"), 시스템 관리 서버(250)는, 변경된 항목을, 메인 메모리(252)의 소정의 영역에 전개한 서비스 레벨 관리 테이블(400)에 반영한다(스텝 S1204). 또한, 시스템 관리 서버(250)는, 서비스 레벨 관리 테이블(400)의 변경된 항목을, 물리 서버(210)나 스토리지 장치(220)에도 통지한다. 통지를 받은 물리 서버(210)는, 변경된 항목을, 메인 메모리(212)의 소정의 영역에 전개한 서비스 레벨 관리 테이블(400)에 반영한다. 마찬가지로, 통지를 받은 스토리지 장치(220)는, 변경된 항목을, 캐시 메모리(232)의 소정의 영역에 전개한 서비스 레벨 관리 테이블(400)에 반영한다.
이상의 처리가 종료되면, 시스템 관리 서버(250)는, 처리를 스텝 S1203으로 이행하여, 스텝 S1202-S1204의 처리를 반복한다.
도 13은, 시스템 관리 서버(250)에 의한 가상 서버 관리 테이블(500)의 감시 처리를 나타내는 흐름도이다.
시스템 관리 서버(250)는, 기동되면(스텝 S1300), 기억 장치(253)로부터 가상 서버 관리 테이블(500)을 판독한다. 그리고, 시스템 관리 서버(250)는, 판독한 가상 서버 관리 테이블(500)을, 메인 메모리(252)의 소정의 영역에 전개한다(스텝 S1301).
그리고, 시스템 관리 서버(250)는, 물리 서버(210)로부터 신규 가상 서버의 고유 ID와 서비스 레벨을 수신하였는지 확인한다(스텝 S1302, S1303 "아니오").
물리 서버(210)로부터 신규 가상 서버의 고유 ID와 서비스 레벨을 수신한 경우(스텝 S1303 "예"), 시스템 관리 서버(250)는 처리를 스텝 S1304로 이행한다. 이 경우, 시스템 관리 서버(250)는, 메인 메모리(252)에 기억되어 있는 가상 서버 관리 테이블(500)에, 신규 가상 서버의 테이블 영역을 추가한다(스텝 S1304).
그리고, 시스템 관리 서버(250)는 스텝 S1304에서 추가한 신규 가상 서버의 테이블 영역에, 스텝 S1302에서 물리 서버(210)로부터 수신한 신규 가상 서버의 고유 ID와 서비스 레벨을 반영한다(스텝 S1305).
시스템 관리 서버(250)는, 신규 가상 서버의 식별자를 생성한다(스텝 S1306). 예를 들어, 시스템 관리 서버(250)는, 「vLAN01」, 「vLAN02」, …와 같이, 문자열 「vLAN」에 2자리수의 숫자를 추가하여 식별자를 생성할 수 있다.
시스템 관리 서버(250)는, 메인 메모리(252)에 기억되어 있는 가상 서버 관리 테이블(500)을 참조하여, 스텝 S1306에서 생성된 식별자와 동일한 식별자를 검색한다(스텝 S1307).
스텝 S1306에서 생성된 식별자와 동일한 식별자가, 이미 가상 서버 관리 테이블(500)에서 사용되고 있는 경우, 식별자가 중복되어 있다고 판단하여(스텝 S1308 "예"), 시스템 관리 서버(250)는, 처리를 스텝 S1309로 이행한다. 그리고, 시스템 관리 서버(250)는 신규 가상 서버의 새로운 식별자를 생성한다(스텝 S1309). 그리고, 시스템 관리 서버(250)는 처리를 스텝 S1307로 이행한다.
스텝 S1306에서 생성된 식별자와 동일한 식별자가, 가상 서버 관리 테이블(500)에서 사용되고 있지 않은 경우, 식별자는 중복되지 않는다고 판단하여(스텝 S1308 "아니오"), 시스템 관리 서버(250)는 처리를 스텝 S1310으로 이행한다. 그리고, 시스템 관리 서버(250)는 스텝 S1306 또는 S1309에서 생성된 식별자를, 메인 메모리(252)에 기억되어 있는 가상 서버 관리 테이블(500)에 반영한다(스텝 S1310). 또한, 시스템 관리 서버(250)는 메인 메모리(252)의 가상 서버 관리 테이블(500)의 변경 내용을, 기억 장치(253)의 가상 서버 관리 테이블(500)에 반영한다.
시스템 관리 서버(250)는, 스텝 S1306 또는 1309에서 생성된 식별자를, 물리 서버(210)에 통지한다(스텝 S1311). 또한, 시스템 관리 서버(250)는, 캐시 메모리(232)에 기억되어 있는 가상 서버 관리 테이블(500)의 갱신 내용을 포함하는 갱신 정보를 스토리지 장치(220)에 통지한다(스텝 S1312). 이 갱신 정보에는, 예를 들어 물리 서버(210)로부터 수신한 신규 가상 서버의 고유 ID 및 서비스 레벨, 스텝 S1306 또는 S1309에서 생성된 신규 가상 서버의 식별자 등을 포함할 수 있다.
이상의 처리가 종료되면, 시스템 관리 서버(250)는, 처리를 스텝 S1302로 이행한다.
도 14는 스토리지 장치(220)에 의한 서비스 레벨 관리 테이블(400)의 감시 처리를 나타내는 흐름도이다.
스토리지 장치(220)는, 기동되면(스텝 S1400), 플래시 메모리(233)로부터 서비스 레벨 관리 테이블(400)을 판독한다. 그리고, 스토리지 장치(220)는, 판독한 서비스 레벨 관리 테이블(400)을, 캐시 메모리(232)의 소정의 영역에 전개한다(스텝 S1401).
스토리지 장치(220)는, 시스템 관리 서버(250)로부터 서비스 레벨 관리 테이블(400)의 변경된 항목을 수신하였는지 여부를 확인한다(스텝 S1402, S1403 "아니오").
시스템 관리 서버(250)로부터 서비스 레벨 관리 테이블(400)의 변경된 항목을 수신한 경우(스텝 S1403 "예"), 스토리지 장치(220)는, 처리를 스텝 S1404로 이행한다. 이 경우, 스토리지 장치(220)는, 서비스 레벨 관리 테이블(400)의 변경된 항목을, 캐시 메모리(232)의 처리의 영역에 저장되어 있는 서비스 레벨 관리 테이블(400)과, 플래시 메모리(232)에 기억되어 있는 서비스 레벨 관리 테이블(400)에 반영한다. 그리고, 스토리지 장치(220)는, 처리를 스텝 S1402로 이행한다.
도 15, 도 16 및 도 17은 스토리지 장치(220)에 의한 I/O 요구의 실행 처리를 나타내는 흐름도이다. 또한, 스텝 S1501-S1511의 처리는, 스토리지 장치(220)에 포함되는 상용 컨트롤러(230)가 항상 행하지만, 설명의 사정상, 스토리지 장치(220)를 주체로 하여 기재한다.
스토리지 장치(220)는, 기동되면(스텝 S1500), 플래시 메모리(233)로부터 가상 서버 관리 테이블(500)을 판독한다. 그리고, 스토리지 장치(220)는 판독한 가상 서버 관리 테이블(500)을 캐시 메모리(232)의 소정의 영역에 전개한다(스텝 S1501).
스토리지 장치(220)는, 시스템 관리 서버(250)로부터 가상 서버 관리 테이블(500)의 갱신 정보를 수신하였는지를 확인한다(스텝 S1502, S1503 "아니오").
시스템 관리 서버(250)로부터 가상 서버 관리 테이블(500)의 갱신 정보를 수신하면(스텝 S1503 "예"), 스토리지 장치(220)는, 수신한 갱신 정보를, 플래시 메모리(233)에 기억되어 있는 가상 서버 관리 테이블(500)에 반영한다(스텝 S1504). 또한, 스토리지 장치(220)는, 수신한 갱신 정보를, 캐시 메모리(232)에 기억되어 있는 가상 서버 관리 테이블(500)에 반영한다(스텝 S1504).
그리고, 스토리지 장치(220)는, 타이머를 기동시켜 일정 시간의 계측을 개시하면(스텝 S1505), 물리 서버(210)로부터 I/O 요구를 수신하였는지 확인한다(스텝 S1506, S1507 "아니오").
물리 서버(210)로부터 I/O 요구를 수신하면(스텝 S1507 "예"), 스토리지 장치(220)는, 캐시 메모리(232)에 기억되어 있는 가상 서버 관리 테이블(500)을 참조한다. 그리고, 스토리지 장치(220)는, I/O 요구에 포함되는 식별자에 대응하는 가상 서버(311)와, 그 가상 서버(311)의 서비스 레벨을 특정한다(스텝 S1508). 이때의, I/O 요구에 포함되는 식별자에 대응하는 가상 서버(311)를, 이하의 처리에서는 「대상 가상 서버」라고 한다. I/O 요구에 포함되는 식별자라 함은, 도 8에 나타낸 VLAN ID에 포함되는 정보이다.
또한, 스토리지 장치(220)는, 캐시 메모리(232)에 기억되어 있는 서비스 레벨 관리 테이블(400)을 참조하여, 스텝 S1509에서 특정한 서비스 레벨의 지연 플래그를 취득한다(스텝 S1509). 그리고, 지연 플래그가 ON인 경우(스텝 S1510 "아니오"), 스토리지 장치(220)는, I/O 요구를 대기 컨트롤러(240)에 전송한다(스텝 S1511). 그리고, 스토리지 장치(220)는, 처리를 스텝 S1512로 이행한다. 이 경우, 이후의 처리는, 스토리지 장치(220)에 포함되는 대기 컨트롤러(240)가 행한다.
지연 플래그가 OFF인 경우(스텝 S1510 "예"), 스토리지 장치(220)는, 처리를 스텝 S1512로 이행한다. 이 경우, 이후의 처리는, 스토리지 장치(220)에 포함되는 상용 컨트롤러(230)가 계속해서 행한다. 이후의 처리는, 상용 컨트롤러(230)와 대기 컨트롤러(240)에서 동일하므로, 처리의 주체는 스토리지 장치(220)로 하여 설명한다.
스토리지 장치(220)는, 대상 가상 서버의 서비스 레벨에 따른 레벨별 큐, 즉, 고레벨 큐, 중레벨 큐, 저레벨 큐 중 어느 하나에, 대상 가상 서버용의 개별 큐를 생성한다(스텝 S1512). 이미 대상 가상 서버용의 개별 큐가 존재하는 경우, 스토리지 장치(220)는, 스텝 S1512를 스킵하고 스텝 S1513으로 이행할 수 있다. 스토리지 장치(220)는, 대상 가상 서버용의 개별 큐에, 대상 가상 서버의 I/O 요구를 저장한다(스텝 S1513).
스토리지 장치(220)는, 스텝 S1505에서 기동시킨 타이머를 참조하여, 소정의 시각으로부터의 경과 시간을 취득한다(스텝 S1514).
스텝 S1514에서 취득한 경과 시간이 일정 기간 미만인 경우(스텝 S1515 "아니오"), 스토리지 장치(220)는, 처리를 스텝 S1506으로 이행한다. 그리고, 스토리지 장치(220)는, 스텝 S1506-S1515의 처리를 반복한다.
스텝 S1514에서 취득한 경과 시간이 일정 시간 이상인 경우(스텝 S1515 "예"), 스토리지 장치(220)는, 시간 계측을 종료하고 처리를 스텝 S1516으로 이행한다. 이 경우, 스토리지 장치(220)는, 캐시 메모리(232)에 기억되어 있는 서비스 레벨 관리 테이블(400)을 참조하여, 서비스 레벨마다의 I/O 우선수를 취득한다(스텝 S1516). 그리고, 스토리지 장치(220)는, 서비스 레벨마다의, 가상 서버(311)가 실행 가능한 I/O 요구의 수를 산출한다(스텝 S1517). 서비스 레벨마다의, 가상 서버(311)가 실행 가능한 I/O 요구의 수는, 스텝 S1009와 마찬가지로 산출할 수 있다.
스토리지 장치(220)는, 2차 큐(341)에 I/O 요구가 저장되어 있는 가상 서버(311) 중 임의의 가상 서버를 선택한다. 선택 방법에 대해서는, 스텝 S1010으로 설명한 바와 같다. 스토리지 장치(220)는, 선택한 가상 서버(311)용의 개별 큐로부터, 스텝 S1517에서 산출한 수의 I/O 요구를 취출하여 실행한다(스텝 S1518). 이하의 처리에서는, 스텝 S1518에서 선택된 가상 서버(311)를 「선택 가상 서버」라고 한다.
스토리지 장치(220)는, 스텝 S1518에서 실행한 I/O 요구의 처리 종별과 전송 데이터수를 캐시 메모리(232)의 소정의 영역에 기억시킨다(스텝 S1519). I/O 요구의 처리 종별과 전송 데이터수는, 스텝 S1015에서 설명한 바와 같다.
또한, 스토리지 장치(220)는, 스텝 S1518에서 I/O 요구를 실행한 개시 시각을 캐시 메모리(232)의 소정의 영역에 기억시킨다(스텝 S1520). 그리고, 스토리지 장치(220)는, I/O 요구의 실행이 종료되면, I/O 요구에 대한 처리가 완료된 취지의 응답을 물리 서버(210)에 출력한다. 스토리지 장치(220)는, 응답을 출력하면, 현재 시각을 캐시 메모리(232)의 소정의 영역에 기억시킨다(스텝 S1521).
스토리지 장치(220)는, 스텝 S1518에서 실행한 I/O 요구 중, 처리를 종료한 I/O 요구에 대해, 각각 스텝 S1520에서 기억한 개시 시각과 스텝 S1521에서 기억한 종료 시각의 차분으로부터 응답 시간을 산출한다. 그리고, 스토리지 장치(220)는 산출한 응답 시간으로부터, 스텝 S1518에서 실행한 I/O 요구 중, 처리를 종료한 I/O 요구의 평균 응답 시간을 산출한다(스텝 S1522). 스토리지 장치(220)는, 산출한 평균 응답 시간을, 캐시 메모리(232)에 기억되어 있는 가상 서버 관리 테이블(500)의 평균 I/O 처리 시간(스토리지 장치)에 반영한다(스텝 S1522).
스토리지 장치(220)는, 캐시 메모리(232)에 기억되어 있는 서비스 레벨 관리 테이블(400)을 참조하여, 선택 가상 서버의 서비스 레벨에 따른 지연 플래그를 취득한다(스텝 S1523).
지연 플래그가 OFF인 경우(스텝 S1524 "예"), 스토리지 장치(220)는 이양 레벨의 평균 I/O 응답 시간을 산출한다(스텝 S1525). 이양 레벨의 평균 I/O 응답 시간은, 캐시 메모리(232)에 기억되어 있는 서비스 레벨 관리 테이블(400)에 설정되어 있는 평균 I/O 응답 시간과 이양 레벨의 승산에 의해 산출할 수 있다.
스토리지 장치(220)는, 스텝 S1525에서 산출한, 이양 레벨의 평균 I/O 응답 시간과, 스텝 S1522에서 산출한, 선택 가상 서버의 평균 I/O 처리 시간(스토리지 장치)을 비교한다(스텝 S1526).
선택 가상 서버의 평균 I/O 처리 시간(스토리지 장치)이, 이양 레벨의 평균 I/O 응답 시간을 초과한 경우(스텝 S1527 "예"), 스토리지 장치(220)는, 지연 플래그를 ON으로 설정한다(스텝 S1528). 그리고, 스토리지 장치(220)는, 처리를 스텝 S1533으로 이행한다. 또한, 선택 가상 서버의 평균 I/O 처리 시간(스토리지 장치)이, 이양 레벨의 평균 I/O 응답 시간 이하인 경우도(스텝 S1527 "아니오"), 스토리지 장치(220)는, 처리를 스텝 S1533으로 이행한다.
한편, 지연 플래그가 ON인 경우(스텝 S1524 "아니오"), 스토리지 장치(220)는, 복귀 레벨의 평균 I/O 응답 시간을 산출한다(스텝 S1529). 복귀 레벨의 평균 I/O 응답 시간은, 캐시 메모리(232)에 기억되어 있는 서비스 레벨 관리 테이블(400)에 설정되어 있는 평균 I/O 응답 시간과 복귀 레벨의 승산에 의해 산출할 수 있다.
스토리지 장치(220)는, 스텝 S1529에서 산출한 복귀 레벨의 평균 I/O 응답 시간과, 스텝 S1522에서 산출한 선택 가상 서버와 동일한 서비스 레벨의 가상 서버 각각의 평균 I/O 처리 시간(스토리지 장치)을 비교한다(스텝 S1530).
선택 가상 서버와 동일한 서비스 레벨의 가상 서버의 평균 I/O 처리 시간(스토리지 장치)이, 모두 복귀 레벨의 평균 I/O 응답 시간 이하인 경우(스텝 S1531 "예"), 스토리지 장치(220)는 지연 플래그를 OFF로 설정한다(스텝 S1532). 그리고, 스토리지 장치(220)는, 처리를 스텝 S1533으로 이행한다.
또한, 선택 가상 서버와 동일한 서비스 레벨의 가상 서버의 평균 I/O 처리 시간(스토리지 장치) 중 어느 하나가, 복귀 레벨의 평균 I/O 응답 시간을 초과하고 있는 경우도(스텝 S1531 "아니오"), 스토리지 장치(220)는, 처리를 스텝 S1533으로 이행한다.
2차 큐(341)에 미실행 I/O 요구가 있는 경우, 즉, I/O 요구가 저장되어 있는 개별 큐가 있는 경우(스텝 S1533, S1534 "예"), 스토리지 장치(220)는, 처리를 스텝 S1518로 이행한다.
또한, 2차 큐(341)에 미실행 I/O 요구가 없는 경우, 즉, I/O 요구가 저장되어 있는 개별 큐가 없는 경우(스텝 S1533, S1534 "아니오"), 스토리지 장치(220)는, I/O 요구의 실행 처리를 종료한다(스텝 S1535).
또한, 스텝 S1528에서는, 평균 I/O 처리 시간(스토리지 장치)이, 이양 레벨의 평균 I/O 응답 시간을 초과한 경우에, 지연 플래그를 ON으로 설정하고 있지만, 이것에 한정하는 취지는 아니다. 스텝 S1528에서는, 예를 들어 1초당의 전송 데이터량이 이양 레벨의 전송 데이터량을 초과한 경우에 지연 플래그를 ON으로 설정해도 된다. 이 경우, 1초당의 전송 데이터량은, 스텝 S1015-S1019와 마찬가지의 처리에 의해 산출할 수 있다. 또한, 이양 레벨의 전송 데이터량은, 예를 들어 서비스 레벨 관리 테이블(400)에 설정되어 있는 성능 제한과 이양 레벨의 승산에 의해 산출할 수 있다. 마찬가지로, 스텝 S1532에서는, 1초당의 전송 데이터량이 복귀 레벨의 전송 데이터량 이하인 경우에 지연 플래그를 OFF로 설정해도 된다.
이상에 서술한 바와 같이, 스토리지 장치(220)는, 수신한 I/O 요구에 설정된 식별자에 대응하는 가상 서버(311)의 서비스 레벨을 특정한다. 그리고, 스토리지 장치(220)는, 수신한 I/O 요구를, 특정한 서비스 레벨에 대응하는, 2차 큐(341)의 레벨별 큐에 저장한다. 또한, 스토리지 장치(220)는, 서비스 레벨마다, 가상 서버(311)가 실행 가능한 I/O 요구의 수를 산출한다. 그리고, 스토리지 장치(220)는, 산출한 수의 I/O 요구를 2차 큐(341)로부터 취득하여 실행한다. 이와 같이, 스토리지 장치(220)는, 가상 서버(311)로부터 스토리지 장치(220)로의 데이터 액세스를, 서비스 레벨을 이용하여 가상 서버(311)마다 제어하는 것이 가능해진다. 예를 들어, 스토리지 장치(220)는, 가상 서버(311)마다 서비스 레벨을 설정함으로써, 가상 서버(311)마다, 가상 서버(311)로부터 스토리지 장치(220)로의 데이터 액세스에 우선 순위를 부여하여 제어하는 우선 제어가 가능해진다.
또한, 스토리지 장치(220)는, 서비스 레벨마다, 통상 모드와 부하 분산 모드를 갖는다. 그리고, 스토리지 장치(220)는, 평균 I/O 처리 시간(스토리지 장치)이 이양 레벨을 초과하면, 통상 모드로부터 부하 분산 모드로 전환한다. 이 경우, 스토리지 장치(220)는, 부하 분산 모드로 전환된 서비스 레벨의 가상 서버(311)로부터 수신한 I/O 요구를 대기 컨트롤러(240)에서 처리하므로, 스토리지 장치(220)는, 서비스 레벨마다, I/O 요구의 처리에 가해지는 부하를 분산할 수 있다. 이 경우, I/O 요구의 처리에 가해지는 부하가, 상용 컨트롤러(230)와 대기 컨트롤러(240)로 분산되므로, 이양 레벨을 초과한 평균 I/O 처리 시간(스토리지 장치)을 단축하는 것이 가능해진다.
또한, 물리 서버(210)는, 서비스 레벨 관리 테이블(400)의 성능 제한을 초과하면, 초과한 만큼에 따른 I/O 억지수를 산출하고, 다음에 I/O 요구를 발행할 때에는, I/O 억지수만큼 뺀 수의 I/O 요구를 발행한다. 그 결과, 물리 서버(210)는, 서비스 레벨마다, 서비스 레벨 관리 테이블(400)의 성능 제한을 포함하는 일정 범위 내에, 가상 서버(311)로부터의 스토리지 장치(220)로의 데이터 액세스의 성능을 제어하는 것이 가능해진다.
100 : 스토리지 시스템
110 : 서버 장치
111 : 가상 기계
112 : 기억부
113 : 서비스 레벨별 큐
114 : 제어부
115 : 인터페이스부
120 : 스토리지 장치
121 : 기억부
122 : 인터페이스부
123 : 서비스 레벨별 입출력 큐
124 : 제어부
125 : 기억 장치
110 : 서버 장치
111 : 가상 기계
112 : 기억부
113 : 서비스 레벨별 큐
114 : 제어부
115 : 인터페이스부
120 : 스토리지 장치
121 : 기억부
122 : 인터페이스부
123 : 서비스 레벨별 입출력 큐
124 : 제어부
125 : 기억 장치
Claims (9)
- 서버 장치에서 실행되는 가상 기계로부터 스토리지 장치로의 액세스 제어 방법으로서,
상기 가상 기계로부터 입출력 명령과 함께 출력된 상기 가상 기계를 식별하는 가상 기계 식별자에 기초하여, 가상 기계 식별자와 서비스 레벨과의 대응 관계를 기억하는 기억부를 참조하여, 상기 가상 기계 식별자에 대응하는 서비스 레벨을 취득하고,
상기 서버 장치 및 상기 스토리지 장치 중 적어도 한쪽에 있어서, 상기 가상 기계로부터의 입출력 명령을 취득한 상기 서비스 레벨에 따라서 실행하는 것을 특징으로 하는 액세스 제어 방법. - 제1항에 있어서,
상기 서버 장치 및 상기 스토리지 장치는, 상기 서비스 레벨을 관리 서버 장치로부터 취득하여 각각에 있어서 유지하고,
상기 서버 장치 및 상기 스토리지 장치 중 적어도 한쪽에 있어서, 상기 서비스 레벨마다 상기 입출력 명령의 실행 순서를 현재까지의 상기 입출력 명령의 실행 상황에 따라서 변경하는 것을 더 행하는 액세스 제어 방법. - 제1항 또는 제2항에 있어서,
상기 서버 장치에서,
상기 가상 기계로부터의 입출력 명령을 상기 가상 기계에 대응하는 서비스 레벨별로 서비스 레벨별 큐에 기억시켜 대기하고,
상기 서비스 레벨에 따른 허용수로 상기 서비스 레벨별 큐에 기억되어 있는 상기 입출력 명령을 대기 행렬순으로 판독하고,
상기 판독한 입출력 명령을 상기 가상 기계에 대응하는 가상 기계 식별자와 함께 상기 스토리지 장치에 대해 발행하는 것을 특징으로 하는 액세스 제어 방법. - 제1항 또는 제2항에 있어서,
상기 스토리지 장치에서,
상기 입출력 명령을 상기 가상 기계 식별자와 함께 상기 서버 장치로부터 수신하고,
상기 수신한 입출력 명령을, 상기 가상 기계 식별자에 대응하는 서비스 레벨별로 서비스 레벨별 입출력 큐에 기억시켜 대기하고,
상기 서비스 레벨에 따른 허용수로 상기 서비스 레벨별 입출력 큐에 기억되어 있는 상기 입출력 명령을 대기 행렬순으로 판독하여, 기억 장치로의 액세스를 실행하는 것을 특징으로 하는 액세스 제어 방법. - 제4항에 있어서,
상기 스토리지 장치에서,
자기 장치에 포함되는 특정 컨트롤러가 입출력 처리를 실행하는 통상 모드와, 자기 장치에 포함되는 상기 특정 컨트롤러 이외의 컨트롤러가 입출력 명령을 실행하는 부하 분산 모드의 2개의 운전 모드를 상기 서비스 레벨마다 갖고,
상기 가상 기계마다 입출력 명령의 평균 처리 시간을 감시하고,
상기 통상 모드 중의 동일한 서비스 레벨의 상기 가상 기계 중 어느 하나의 상기 평균 처리 시간이 제1 임계값을 초과한 것을 계기로, 상기 동일한 서비스 레벨의 운전 모드를 상기 부하 분산 모드로 전환하고,
상기 부하 분산 모드 중의 동일한 서비스 레벨의 모든 상기 가상 기계의 평균 처리 시간이 제2 임계값을 하회한 것을 계기로, 상기 동일한 서비스 레벨의 운전 모드를 통상 모드로 전환하는 것을 특징으로 하는 액세스 제어 방법. - 가상 기계가 동작하는 서버 장치로서,
상기 가상 기계를 식별하는 가상 기계 식별자에 대응시켜 상기 가상 기계에 설정된 서비스 레벨을 기억하는 기억부와,
상기 가상 기계로부터의 입출력 명령을 상기 가상 기계에 대응하는 서비스 레벨별로 기억하여 대기하는 서비스 레벨별 큐와,
상기 서비스 레벨에 따라서 상기 서비스 레벨별 큐에 기억되어 있는 상기 입출력 명령을 대기 행렬순으로 판독하는 제어부와,
상기 판독한 입출력 명령을 상기 가상 기계에 대응하는 가상 기계 식별자와 함께 발행하는 인터페이스부를 구비하는 것을 특징으로 하는 서버 장치. - 제6항에 있어서,
상기 제어부는, 상기 서비스 레벨마다 상기 입출력 명령의 실행 순서를 현재까지의 상기 입출력 명령의 실행 상황에 따라서 변경하는 것을 특징으로 하는 서버 장치. - 서버 장치에서 실행되는 가상 기계를 식별하는 가상 기계 식별자에 대응시켜 상기 가상 기계에 설정된 서비스 레벨을 기억하는 기억부와,
상기 입출력 명령을 상기 가상 기계 식별자와 함께 수신하는 인터페이스부와,
상기 수신한 입출력 명령을, 상기 가상 기계 식별자에 대응하는 서비스 레벨별로 기억하여 대기하는 서비스 레벨별 입출력 큐와,
상기 서비스 레벨에 따라서 상기 서비스 레벨별 입출력 큐에 기억되어 있는 상기 입출력 명령을 대기 행렬순으로 판독하여, 기억 장치로의 액세스를 실행하는 제어부를 구비하는 것을 특징으로 하는 스토리지 장치. - 제8항에 있어서,
상기 제어부는, 상기 서비스 레벨마다 상기 입출력 명령의 실행 순서를 현재까지의 상기 입출력 명령의 실행 상황에 따라서 변경하는 것을 특징으로 하는 스토리지 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2012-075578 | 2012-03-29 | ||
JP2012075578A JP5891900B2 (ja) | 2012-03-29 | 2012-03-29 | アクセス制御方法、サーバ装置およびストレージ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130111351A true KR20130111351A (ko) | 2013-10-10 |
KR101431970B1 KR101431970B1 (ko) | 2014-08-19 |
Family
ID=47843154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130031744A KR101431970B1 (ko) | 2012-03-29 | 2013-03-25 | 액세스 제어 방법, 서버 장치 및 스토리지 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9276824B2 (ko) |
EP (1) | EP2648127B1 (ko) |
JP (1) | JP5891900B2 (ko) |
KR (1) | KR101431970B1 (ko) |
CN (1) | CN103365803B (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845863A (zh) * | 2018-06-12 | 2018-11-20 | 北京百度网讯科技有限公司 | 用于虚拟机与宿主机的通信方法、装置和系统 |
WO2021020746A1 (ko) * | 2019-07-31 | 2021-02-04 | 고려대학교 산학협력단 | 가상 머신 관리 장치 및 방법 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6179321B2 (ja) | 2013-09-27 | 2017-08-16 | 富士通株式会社 | ストレージ管理装置、制御方法及び制御プログラム |
US9135259B2 (en) * | 2013-11-06 | 2015-09-15 | Linkedin Corporation | Multi-tenancy storage node |
JP6281354B2 (ja) * | 2014-03-20 | 2018-02-21 | 日本電気株式会社 | 情報処理システム、情報処理装置、情報処理方法、及び、プログラム |
JP6273966B2 (ja) | 2014-03-27 | 2018-02-07 | 富士通株式会社 | ストレージ管理装置、性能調整方法及び性能調整プログラム |
WO2016020979A1 (ja) * | 2014-08-05 | 2016-02-11 | 株式会社日立製作所 | 計算機システム及び仲介デバイス |
CN106155646B (zh) * | 2015-03-31 | 2020-01-07 | 阿里巴巴集团控股有限公司 | 一种限制外部应用程序调用服务的方法及装置 |
JP2018517201A (ja) * | 2015-04-08 | 2018-06-28 | ティントリ・インコーポレーテッドTintri Incorporated | 仮想マシンのためのネイティブなストレージサービス品質 |
US11036533B2 (en) | 2015-04-17 | 2021-06-15 | Samsung Electronics Co., Ltd. | Mechanism to dynamically allocate physical storage device resources in virtualized environments |
US10838852B2 (en) | 2015-04-17 | 2020-11-17 | Samsung Electronics Co., Ltd. | System and method to extend NVME queues to user space |
US10089266B2 (en) * | 2015-07-10 | 2018-10-02 | Apple Inc. | Power saving feature for storage subsystems |
US20170371694A1 (en) * | 2016-06-23 | 2017-12-28 | Advanced Micro Devices, Inc. | Virtualization of a graphics processing unit for network applications |
JP6848278B2 (ja) | 2016-09-07 | 2021-03-24 | 富士通株式会社 | ストレージ管理装置、性能調整方法及び性能調整プログラム |
US10515038B2 (en) | 2016-09-26 | 2019-12-24 | Red Hat, Inc. | Input/output command rebalancing in a virtualized computer system |
CN107918613B (zh) | 2016-10-08 | 2022-01-21 | 上海宝存信息科技有限公司 | 因应服务质量的固态硬盘访问方法以及使用该方法的装置 |
WO2019061014A1 (en) * | 2017-09-26 | 2019-04-04 | Intel Corporation | METHODS AND APPARATUS FOR PROCESSING CONTROLS FROM VIRTUAL MACHINES |
CN108111571B (zh) * | 2017-11-15 | 2021-05-04 | 广东睿江云计算股份有限公司 | 一种基于iSCSI协议的存储QoS方法 |
US10963284B2 (en) * | 2019-01-31 | 2021-03-30 | EMC IP Holding Company LLC | Associating storage system performance objectives with virtual machines |
US10963165B2 (en) | 2019-01-31 | 2021-03-30 | EMC IP Holding Company LLC | Applying virtual machine performance objectives on a storage system |
JP7235295B2 (ja) * | 2019-03-01 | 2023-03-08 | Necソリューションイノベータ株式会社 | 仮想マシン管理装置、仮想マシン管理方法、及びプログラム |
US11687244B2 (en) * | 2019-10-24 | 2023-06-27 | Micron Technology, Inc. | Quality of service for memory devices using weighted memory access operation types |
US11620053B2 (en) * | 2019-10-24 | 2023-04-04 | Micron Technology, Inc. | Quality of service for the multiple functions in memory devices |
JP7443195B2 (ja) | 2020-08-21 | 2024-03-05 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11954344B2 (en) * | 2021-06-16 | 2024-04-09 | EMC IP Holding Company LLC | Host device comprising layered software architecture with automated tiering of logical storage devices |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2212574C (en) | 1995-02-13 | 2010-02-02 | Electronic Publishing Resources, Inc. | Systems and methods for secure transaction management and electronic rights protection |
US5996026A (en) | 1995-09-05 | 1999-11-30 | Hitachi, Ltd. | Method and apparatus for connecting i/o channels between sub-channels and devices through virtual machines controlled by a hypervisor using ID and configuration information |
US7984147B2 (en) * | 2000-12-29 | 2011-07-19 | Hewlett-Packard Development Company, L.P. | Apparatus and method for identifying a requested level of service for a transaction |
WO2005029363A1 (en) | 2003-08-21 | 2005-03-31 | Microsoft Corporation | Systems and methods for interfacing application programs with an item-based storage platform |
JP4227035B2 (ja) | 2004-02-03 | 2009-02-18 | 株式会社日立製作所 | 計算機システム、管理装置、ストレージ装置及びコンピュータ装置 |
US7797699B2 (en) * | 2004-09-23 | 2010-09-14 | Intel Corporation | Method and apparatus for scheduling virtual machine access to shared resources |
US20060184936A1 (en) * | 2005-02-11 | 2006-08-17 | Timothy Abels | System and method using virtual machines for decoupling software from management and control systems |
US20070174429A1 (en) | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
CN100489782C (zh) * | 2006-06-29 | 2009-05-20 | 联想(北京)有限公司 | 一种虚拟机系统及硬件设备的访问控制方法 |
JP4996929B2 (ja) * | 2007-01-17 | 2012-08-08 | 株式会社日立製作所 | 仮想計算機システム |
JP5089429B2 (ja) * | 2008-02-21 | 2012-12-05 | キヤノン株式会社 | 情報処理装置及びその制御方法、プログラム |
CN101520738A (zh) * | 2008-02-27 | 2009-09-02 | 黄歆媚 | 基于设备访存管理技术的虚拟机系统及其设备访问方法 |
KR20090108868A (ko) * | 2008-04-14 | 2009-10-19 | 삼성전자주식회사 | 가상 머신 관리 시스템 및 그의 프로세서 자원 관리방법 |
JP5558684B2 (ja) | 2008-07-25 | 2014-07-23 | 株式会社デンソー | 地図データ更新装置、地図データ更新プログラム及び地図データの更新方法 |
US8281305B2 (en) * | 2008-10-17 | 2012-10-02 | Hitachi, Ltd. | Method and apparatus for resource provisioning |
JP5193801B2 (ja) | 2008-10-29 | 2013-05-08 | 株式会社日立製作所 | ストレージシステムの性能向上又は管理方法、システム、装置及びプログラム |
JP2010108409A (ja) | 2008-10-31 | 2010-05-13 | Hitachi Ltd | ストレージ管理方法及び管理サーバ |
WO2010089808A1 (ja) * | 2009-02-09 | 2010-08-12 | 富士通株式会社 | 仮想計算機の割当方法及び割当プログラム並びに仮想計算機環境を有する情報処理装置 |
JP5182162B2 (ja) * | 2009-03-10 | 2013-04-10 | 日本電気株式会社 | 計算機システム及びi/o制御方法 |
US8595740B2 (en) | 2009-03-31 | 2013-11-26 | Microsoft Corporation | Priority-based management of system load level |
US8291416B2 (en) | 2009-04-17 | 2012-10-16 | Citrix Systems, Inc. | Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution |
US8276139B2 (en) * | 2009-09-30 | 2012-09-25 | International Business Machines Corporation | Provisioning virtual machine placement |
US9389895B2 (en) | 2009-12-17 | 2016-07-12 | Microsoft Technology Licensing, Llc | Virtual storage target offload techniques |
US8234400B2 (en) | 2010-03-16 | 2012-07-31 | Microsoft Corporation | Shaping virtual machine communication traffic |
JP5644150B2 (ja) | 2010-03-23 | 2014-12-24 | 日本電気株式会社 | サービス提供システム、仮想マシンサーバ、サービス提供方法及びサービス提供プログラム |
CN102238208A (zh) * | 2010-04-29 | 2011-11-09 | 国际商业机器公司 | 用于激活虚拟方案中的虚拟机的方法和装置 |
US8793707B2 (en) * | 2011-05-31 | 2014-07-29 | Hitachi, Ltd. | Computer system and its event notification method |
JP2013205870A (ja) * | 2012-03-27 | 2013-10-07 | Nec Corp | コンピュータ・ストレージシステム |
-
2012
- 2012-03-29 JP JP2012075578A patent/JP5891900B2/ja not_active Expired - Fee Related
-
2013
- 2013-03-08 US US13/790,946 patent/US9276824B2/en not_active Expired - Fee Related
- 2013-03-11 EP EP13158537.4A patent/EP2648127B1/en not_active Not-in-force
- 2013-03-21 CN CN201310092405.8A patent/CN103365803B/zh not_active Expired - Fee Related
- 2013-03-25 KR KR1020130031744A patent/KR101431970B1/ko not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845863A (zh) * | 2018-06-12 | 2018-11-20 | 北京百度网讯科技有限公司 | 用于虚拟机与宿主机的通信方法、装置和系统 |
CN108845863B (zh) * | 2018-06-12 | 2022-08-26 | 北京百度网讯科技有限公司 | 用于虚拟机与宿主机的通信方法、装置和系统 |
WO2021020746A1 (ko) * | 2019-07-31 | 2021-02-04 | 고려대학교 산학협력단 | 가상 머신 관리 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
EP2648127A1 (en) | 2013-10-09 |
CN103365803A (zh) | 2013-10-23 |
EP2648127B1 (en) | 2015-01-14 |
JP5891900B2 (ja) | 2016-03-23 |
KR101431970B1 (ko) | 2014-08-19 |
JP2013206229A (ja) | 2013-10-07 |
CN103365803B (zh) | 2016-05-04 |
US20130262649A1 (en) | 2013-10-03 |
US9276824B2 (en) | 2016-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101431970B1 (ko) | 액세스 제어 방법, 서버 장치 및 스토리지 장치 | |
CN105893139B (zh) | 在云存储环境中用于向租户提供存储服务的方法和装置 | |
JP6005795B2 (ja) | 仮想マシンの信頼性のある決定論的ライブ移行 | |
US10659318B2 (en) | Methods and apparatus related to management of unit-based virtual resources within a data center environment | |
JP4428483B2 (ja) | 情報処理装置、制御方法、プログラム及び記録媒体 | |
US9569245B2 (en) | System and method for controlling virtual-machine migrations based on processor usage rates and traffic amounts | |
US9069465B2 (en) | Computer system, management method of computer resource and program | |
JP6287864B2 (ja) | QoS制御システム、QoS制御方法及びプログラム | |
JP4375435B2 (ja) | 予知型データ移行を行う階層ストレージシステム | |
US20120102291A1 (en) | System and Method for Storage Allocation in a Cloud Environment | |
CN105892943B (zh) | 一种分布式存储系统中块存储数据的访问方法及系统 | |
US20150269187A1 (en) | Apparatus and method for providing virtual machine image file | |
JP2012142012A5 (ko) | ||
JP2014038364A (ja) | リソース管理サーバ、リソース管理方法及びリソース管理プログラム | |
WO2015027771A1 (zh) | 一种虚拟机的资源配置方法和通信设备 | |
JP2012043071A (ja) | 調整システム、調整装置、調整方法、及びそのプログラム | |
CN108351810B (zh) | 用于虚拟化图形处理的扩展 | |
JP5503678B2 (ja) | ホスト提供システム及びホスト提供方法 | |
US10613893B2 (en) | System and method for reducing downtime during hypervisor conversion | |
US9164885B2 (en) | Storage control device, storage control method, and recording medium | |
US10459768B2 (en) | Computer system, management system, and resource management method | |
US20130077130A1 (en) | Printing control system, printing control method, and image processor | |
US20170371707A1 (en) | Data analysis in storage system | |
JP5251974B2 (ja) | 管理装置、管理方法及びプログラム | |
WO2017056208A1 (ja) | リクエスト実行順序制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170719 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |