JP2018169637A - Information processing apparatus, virtualization program, and virtualization method - Google Patents

Information processing apparatus, virtualization program, and virtualization method Download PDF

Info

Publication number
JP2018169637A
JP2018169637A JP2017064102A JP2017064102A JP2018169637A JP 2018169637 A JP2018169637 A JP 2018169637A JP 2017064102 A JP2017064102 A JP 2017064102A JP 2017064102 A JP2017064102 A JP 2017064102A JP 2018169637 A JP2018169637 A JP 2018169637A
Authority
JP
Japan
Prior art keywords
allocation
unit
lun
segment
storage
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2017064102A
Other languages
Japanese (ja)
Inventor
一範 小橋
Kazunori Kobashi
一範 小橋
恵一 中井
Keiichi Nakai
恵一 中井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017064102A priority Critical patent/JP2018169637A/en
Publication of JP2018169637A publication Critical patent/JP2018169637A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide efficiently allocate a unit storage area to a virtual storage device.SOLUTION: A setting unit 203 for setting reservation information in at least a part of the unused unit storage area of a unit storage areas respectively provided in a plurality of storage areas 31, before a unit storage area allocation request to a virtual storage device is made, and an allocation unit 203 for allocating a unit storage area in which reservation information is set to a virtual storage device, upon receiving an assignment request, are provided.SELECTED DRAWING: Figure 1

Description

本発明は、情報処理装置,仮想化プログラムおよび仮想化方法に関する。   The present invention relates to an information processing apparatus, a virtualization program, and a virtualization method.

仮想化処理機能をそなえ、実ストレージ(実ディスク)を仮想化して仮想ストレージを形成する仮想化ストレージ管理システムが知られている。   There is known a virtual storage management system that has a virtual processing function and virtualizes a real storage (real disk) to form a virtual storage.

仮想化ストレージ装置において、稼働ストレージであるVDISK(Virtual Disk)を作成するためには、VDISKを構成するためのセグメントを複数のLUN(Logical Unit Number)に割り当てる。   In the virtual storage apparatus, in order to create a VDISK (Virtual Disk) that is an active storage, segments for configuring the VDISK are allocated to a plurality of LUNs (Logical Unit Numbers).

従来、複数のLUNにセグメントの割り当てを行なう場合には、例えば、空き容量で複数のLUNをソートし、空容量の大きいLUNから順に、セグメントを1つずつ取得し、取得したセグメントにVDISK内インデックスを割り当てる処理を、繰り返し行なう。   Conventionally, when assigning segments to a plurality of LUNs, for example, a plurality of LUNs are sorted by free capacity, and segments are obtained one by one in order from the LUN with the largest free capacity, and the index in the VDISK is assigned to the obtained segments. The process of assigning is repeated.

なお、セグメントについての情報は、例えば、ストレージ装置に備えられたデータベースにおいてLUN毎に管理されている。   Note that information about segments is managed for each LUN in a database provided in the storage device, for example.

国際公開第2010/106574号International Publication No. 2010/106574 特表2008−539531号公報Special table 2008-539531 gazette

VDISKとして要求されるサイズは、以前は数100GB程度が一般的であったが、近年では10TBを超えることもあり、今後は、さらに増加することが見込まれる。   The size required for VDISK was generally about several hundred GB, but in recent years it may exceed 10 TB, and is expected to increase further in the future.

VDISKのサイズが大きくなるほど、VDISKを構築するためのセグメント割り当て時のデータベースへのアクセス回数が増加し、そのため、セグメント割り当てに要する時間も増大する。これにより、顧客への応答遅延や、データベースの長時間負荷が発生する。   As the size of the VDISK increases, the number of accesses to the database at the time of segment allocation for constructing the VDISK increases, and therefore the time required for segment allocation also increases. As a result, a response delay to the customer and a long load on the database occur.

1つの側面では、本発明は、単位記憶領域を仮想記憶装置に効率的に割り当てることを目的とする。   In one aspect, the present invention is directed to efficiently allocating unit storage areas to virtual storage devices.

このため、この情報処理装置は、仮想記憶装置への単位記憶領域の割り当て要求がされる前に、複数の記憶領域にそれぞれ備えられる単位記憶領域のうち、未使用単位記憶領域の少なくとも一部に予約情報を設定する設定部と、前記割り当て要求を受け付けると、前記予約情報が設定された前記単位記憶領域を仮想記憶装置に割り当てる割当部とを備える。   For this reason, this information processing device is used as at least a part of the unused unit storage area among the unit storage areas respectively provided in the plurality of storage areas before the request for allocation of the unit storage area to the virtual storage device is made. A setting unit that sets reservation information; and an allocation unit that allocates the unit storage area in which the reservation information is set to a virtual storage device when the allocation request is received.

一実施形態によれば、単位記憶領域を仮想記憶装置に効率的に割り当てることができる。   According to one embodiment, a unit storage area can be efficiently allocated to a virtual storage device.

実施形態の一例としてのストレージシステムの機能構成を示す図である。It is a figure which shows the function structure of the storage system as an example of embodiment. 実施形態の一例としてのストレージシステムのハードウェア構成の一部を示す図である。2 is a diagram illustrating a part of a hardware configuration of a storage system as an example of an embodiment; FIG. VDISKの構成を説明するための図である。It is a figure for demonstrating the structure of VDISK. 実施形態の一例としてのストレージシステムの拡張を例示する図である。FIG. 3 is a diagram illustrating expansion of a storage system as an example of an embodiment. 実施形態の一例としてのストレージシステムにおけるLUNの容量管理手法を示す図である。3 is a diagram illustrating a LUN capacity management method in a storage system as an example of an embodiment; FIG. 実施形態の一例としてのストレージシステムにおけるセグメント情報を例示する図である。It is a figure which illustrates the segment information in the storage system as an example of embodiment. 実施形態の一例としてのストレージシステムにおけるLUN情報を例示する図である。3 is a diagram illustrating LUN information in a storage system as an example of an embodiment; FIG. 実施形態の一例としてのストレージシステムにおける割当部が管理するLUN情報を例示する図である。It is a figure which illustrates LUN information which the allocation part in the storage system as an example of an embodiment manages. 実施形態の一例としてのストレージシステムにおける割当部による事前割り当て方法を説明するための図である。It is a figure for demonstrating the prior allocation method by the allocation part in the storage system as an example of embodiment. 実施形態の一例としてのストレージシステムにおける事前割り当て数を説明するための図である。It is a figure for demonstrating the number of prior allocation in the storage system as an example of embodiment. 実施形態の一例としてのストレージシステムにおけるセグメント割り当て方法を説明するための図である。It is a figure for demonstrating the segment allocation method in the storage system as an example of embodiment. 実施形態の一例としてのストレージシステムにおける割当部による一括割り当て方法を説明するための図である。It is a figure for demonstrating the batch allocation method by the allocation part in the storage system as an example of embodiment. 実施形態の一例としてのストレージシステムにおける割当部による事前割り当て処理を説明するフローチャートである。It is a flowchart explaining the prior allocation process by the allocation part in the storage system as an example of embodiment. 実施形態の一例としてのストレージシステムにおける割当部の実割り当て処理を説明するフローチャートである。4 is a flowchart for explaining actual allocation processing of an allocation unit in a storage system as an example of an embodiment.

以下、図面を参照して本情報処理装置,仮想化プログラムおよび仮想化方法にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。   Hereinafter, embodiments of the information processing apparatus, virtualization program, and virtualization method will be described with reference to the drawings. However, the embodiment described below is merely an example, and there is no intention to exclude application of various modifications and techniques not explicitly described in the embodiment. That is, the present embodiment can be implemented with various modifications without departing from the spirit of the present embodiment. Each figure is not intended to include only the components shown in the figure, and may include other functions.

(A)構成
まず、図1および図2を参照しながら、本実施形態のストレージシステム(情報処理装置)1の構成について説明する。なお、図1は本実施形態のストレージシステム1の機能構成を示す図、図2はそのハードウェア構成の一部を示す図である。
(A) Configuration First, the configuration of the storage system (information processing apparatus) 1 of this embodiment will be described with reference to FIGS. 1 and 2. FIG. 1 is a diagram showing a functional configuration of the storage system 1 of this embodiment, and FIG. 2 is a diagram showing a part of the hardware configuration.

本ストレージシステム1は、ストレージユニット(Storage Unit:SU)30の記憶領域を用いて仮想的なボリューム(Virtual Disk;以下、VDISKと呼ぶ)を構築し、このVDISKを提供する仮想化ストレージシステムである。仮想化ストレージシステムは、ストレージの物理的なボリューム構成や容量に制限されることなく、自由な容量および構成を実現する。   The storage system 1 is a virtual storage system that constructs a virtual volume (hereinafter referred to as VDISK) using a storage area of a storage unit (SU) 30 and provides this VDISK. . The virtual storage system realizes free capacity and configuration without being limited by the physical volume configuration and capacity of the storage.

ストレージシステム1は、基本ノード4aおよび拡張ノード4bをそなえ、VDISKを、上位装置であるホスト装置(業務サーバ)2に提供する。   The storage system 1 includes a basic node 4a and an extended node 4b, and provides VDISK to a host device (business server) 2 that is a host device.

仮想ストレージ環境においては、物理的なストレージのボリューム構成や容量に縛られることなく、自由な容量、構成を実現することができる。   In a virtual storage environment, free capacity and configuration can be realized without being restricted by the volume configuration and capacity of physical storage.

図3はVDISKの構成を説明するための図である。   FIG. 3 is a diagram for explaining the configuration of VDISK.

上述の基本ノード4aおよび拡張ノード4bは、例えば、ワイドストライピングによるデータアクセスを行なう。ワイドストライピングとは、1つのボリュームに対するデータアクセスを、複数のLUNに分散し、固定長のストリップと呼ばれる単位でアクセスする技術である。   The basic node 4a and the extended node 4b described above perform data access by, for example, wide striping. Wide striping is a technique in which data access to one volume is distributed over a plurality of LUNs and accessed in units called fixed-length strips.

図3に示すように、VDISKは、それぞれが、所定サイズ(例えば2ギガバイト(GB))のセグメントセットの集合体である。セグメントセットは、それぞれが、所定サイズ(例えば256メガバイト(MB))の所定数(図3に示す例では#1〜#8の8つ)のセグメントの集合体である。そして、各セグメント#1〜#8はSU30内のLUN31毎に割り当てられている。ユーザのデータは、固定長のストリップ(例えば1MB)単位で記録され、このストリップはセグメントを順に利用する形でストライピングされる。   As shown in FIG. 3, each VDISK is an aggregate of segment sets each having a predetermined size (for example, 2 gigabytes (GB)). Each segment set is an aggregate of segments of a predetermined number (eight, # 1 to # 8 in the example shown in FIG. 3) of a predetermined size (for example, 256 megabytes (MB)). Each segment # 1 to # 8 is assigned to each LUN 31 in the SU 30. User data is recorded in units of fixed-length strips (for example, 1 MB), and the strips are striped using segments in order.

VDISKは、後述するエージェント210の仮想化部211(図1参照)としての機能により実現され、本ストレージシステム1において管理される仮想的なボリュームとSU30上の物理的な記憶領域との対応付けが行なわれる。   VDISK is realized by the function of the virtualization unit 211 (see FIG. 1) of the agent 210 described later, and the virtual volume managed in the storage system 1 is associated with the physical storage area on the SU 30. Done.

本ストレージシステム1は、1以上(図1に示す例では1つ)のホスト装置2に対して通信可能に接続されている。ホスト装置2とストレージシステム1とは、後述するCA(Communication Adapter)101,102により接続されている。   The storage system 1 is communicably connected to one or more host apparatuses 2 (one in the example shown in FIG. 1). The host device 2 and the storage system 1 are connected by CA (Communication Adapter) 101 and 102 described later.

ホスト装置2は、例えば、サーバ機能を備えた情報処理装置であり、本ストレージシステム1との間において、NAS(Network Attached Storage)やSAN(Storage Area Network)等のコマンドを送受信する。ホスト装置2は、例えば、ストレージシステム1に対してNASにおけるリード/ライト等のストレージアクセスコマンドを送信することにより、ストレージシステム1が提供する記憶領域(ボリューム)にデータの書込または読出を行なう。   The host device 2 is, for example, an information processing device having a server function, and exchanges commands such as NAS (Network Attached Storage) and SAN (Storage Area Network) with the storage system 1. For example, the host device 2 writes or reads data to or from a storage area (volume) provided by the storage system 1 by transmitting a storage access command such as read / write in NAS to the storage system 1.

ホスト装置2は、不図示の業務アプリケーションを実行しており、例えば、図示しないCPU(Central Processing Unit),メモリ,ディスクドライブ,ディスプレイ,インタフェース(Interface;I/F),キーボード,マウス等をそなえる。   The host device 2 executes a business application (not shown) and includes, for example, a CPU (Central Processing Unit), a memory, a disk drive, a display, an interface (Interface; I / F), a keyboard, a mouse, and the like (not shown).

そして、本ストレージシステム1は、ホスト装置2からボリュームに対して行なわれる入出力要求(例えば、書込み要求や読出し要求)に応じて、このボリュームに対応するLUN31に対して、データの読出(リード)や書込(ライト)等の処理を行なう。なお、以下では、ホスト装置2からの入出力要求のことをI/O要求という場合がある。   The storage system 1 reads (reads) data from the LUN 31 corresponding to the volume in response to an input / output request (for example, a write request or a read request) made from the host device 2 to the volume. And write processing. In the following, an input / output request from the host device 2 may be referred to as an I / O request.

また、ストレージシステム1には、管理端末3が通信可能に接続されている。管理端末3は、キーボードやマウス等の入力装置や、表示装置を備える情報処理装置であって、システム管理者等のユーザが各種情報の入力操作を行なう。例えば、ユーザは、管理端末3を介して、各種設定等にかかる情報を入力する。入力された情報は、ホスト装置2やストレージシステム1に送信される。   A management terminal 3 is communicably connected to the storage system 1. The management terminal 3 is an information processing device including an input device such as a keyboard and a mouse, and a display device, and a user such as a system administrator performs input operations of various information. For example, the user inputs information related to various settings and the like via the management terminal 3. The input information is transmitted to the host device 2 and the storage system 1.

本ストレージシステム1は、スケールアウト型のストレージシステムとして構成されており、拡張ノード4b(図4参照)を増設することで、仮想ボリュームの容量等や各種性能を拡張(スケールアウト)することができる。例えば、追加の記憶領域が必要になったときに、スケールアウトを行なう。   The storage system 1 is configured as a scale-out storage system, and by expanding the expansion node 4b (see FIG. 4), the capacity of the virtual volume and various performances can be expanded (scale-out). . For example, the scale-out is performed when an additional storage area is required.

図4は実施形態の一例としてのストレージシステム1の拡張を例示する図である。   FIG. 4 is a diagram illustrating expansion of the storage system 1 as an example of the embodiment.

スケールアウト型のストレージシステム1は、例えば、クラウドシステムに用いて好適であり、VDISKを仮想システムのシステムディスクや拡張ディスクとして利用することができる。   The scale-out storage system 1 is suitable for use in, for example, a cloud system, and VDISK can be used as a system disk or an expansion disk of a virtual system.

図4の例では、図1のストレージシステム1の基本ノード4aに対して、PU(Processor Unit)100およびSU30を有する複数の拡張ノード4bを追加することができることを示している。   The example of FIG. 4 shows that a plurality of expansion nodes 4b having PU (Processor Unit) 100 and SU 30 can be added to the basic node 4a of the storage system 1 of FIG.

なお、図4に示す例においては、基本ノード4aにおいて、PU100−1,100−2とSU30−1とは、スイッチ(SW)を介して接続されている例を示している。スイッチは、スイッチング機能を有するネットワークスイッチである。   In the example illustrated in FIG. 4, in the basic node 4a, the PUs 100-1 and 100-2 and the SU 30-1 are connected via a switch (SW). The switch is a network switch having a switching function.

例えば、本ストレージシステム1をIaaS(Infrastructure as a Service)に適用する場合には、顧客が管理端末3等を用いて仮想システム(VDISK)の作成要求を入力する。ストレージシステム1においては、この仮想システム(VDISK)の作成要求を受け付けた際に、VDISKを形成するディスク域としてSU30のLUN31(セグメント)を論理ボリューム(VDISK)に割り当てる。   For example, when the present storage system 1 is applied to IaaS (Infrastructure as a Service), a customer inputs a virtual system (VDISK) creation request using the management terminal 3 or the like. When the storage system 1 receives a request to create this virtual system (VDISK), the LUN 31 (segment) of the SU 30 is allocated to the logical volume (VDISK) as a disk area that forms the VDISK.

また、例えば、リソース管理機能を有するミドルウェア等からVDISK作成要求を入力してもよい。このようなVDISK作成要求を受け付けると、本ストレージシステム1においては、SU30において分散されたLUN31からセグメントを集めてVDISKを構成する。   Further, for example, a VDISK creation request may be input from middleware having a resource management function. When such a VDISK creation request is received, the storage system 1 collects segments from the LUNs 31 distributed in the SU 30 to configure the VDISK.

なお、一のVDISKを構成するためのセグメントは、I/O平準化のために、可能な限り分散したLUN31から割り当てることが望ましい。   It should be noted that it is desirable to allocate segments for configuring one VDISK from LUNs 31 that are dispersed as much as possible for I / O leveling.

図1に示すように、本ストレージシステム1は、基本ノード4aおよび拡張ノード4bを備える。   As shown in FIG. 1, the storage system 1 includes a basic node 4a and an expansion node 4b.

基本ノード4aはPU100−1,100−2およびSU30−1を備える。また、拡張ノード4bは、PU100−3およびSU30−2を備える。   The basic node 4a includes PUs 100-1 and 100-2 and SU 30-1. The extended node 4b includes a PU 100-3 and an SU 30-2.

本ストレージシステム1においては、基本ノード4aに対して拡張ノード(拡張セット)4bを増設することで、実ストレージ装置であるSU30−2とこのSU30−2を管理するPU100−3とが1つのセットとして拡張される。これにより、本システムの全体性能と容量を拡大することができる。   In the present storage system 1, an expansion node (expansion set) 4b is added to the basic node 4a, so that the SU 30-2 that is an actual storage device and the PU 100-3 that manages this SU 30-2 are in one set. As extended. As a result, the overall performance and capacity of the present system can be expanded.

図1に示す例においては、1つの拡張ノード4bを備えているが、これに限定されるものではなく、2つ以上の拡張ノード4bを備えてもよく、また、拡張ノード4bの増設を省略してもよい。   In the example shown in FIG. 1, one expansion node 4b is provided. However, the present invention is not limited to this. Two or more expansion nodes 4b may be provided, and the expansion of the expansion node 4b is omitted. May be.

本ストレージシステム1は、図1に示すように、複数(本実施形態では3つ)のPU100−1〜100−3および1つ以上(図1に示す例では1つ)のSU30−1,30−2を備える。以下、SUを示す符号としては、複数のSUのうち1つを特定する場合には符号30−1,30−2を用い、任意のSUを指すときには符号30を用いる。   As shown in FIG. 1, the storage system 1 includes a plurality (three in this embodiment) of PUs 100-1 to 100-3 and one or more (one in the example shown in FIG. 1) SUs 30-1, 30. -2. Hereinafter, as a code indicating SU, reference numerals 30-1 and 30-2 are used when one of a plurality of SUs is specified, and reference numeral 30 is used when indicating an arbitrary SU.

PU100−1〜100−3は、ストレージシステム1内の動作を制御する制御装置(情報処理装置,コンピュータ,コントローラ,ストレージ制御装置)であり、後述するSU30を制御してVDISKを提供する。PU100−1〜100−3は、ホスト装置2から送信されるリード/ライト等の入出力(Input/Output;I/O)コマンドを受け取り、種々の制御を行なう。すなわち、PU100−1〜100−3は、I/O要求に従って、SU30のLUN31へのデータアクセス制御等、各種制御を行なう。   The PUs 100-1 to 100-3 are control devices (information processing device, computer, controller, storage control device) that control the operation in the storage system 1, and provide VDISK by controlling the SU 30 described later. The PUs 100-1 to 100-3 receive input / output (I / O) commands such as read / write transmitted from the host device 2 and perform various controls. That is, the PUs 100-1 to 100-3 perform various controls such as data access control to the LUN 31 of the SU 30 according to the I / O request.

また、図2に示すように、PU100−1〜100−3は互いに同様のハードウェア構成を有している。なお、図2においては、便宜上、拡張ノード4bの図示を省略している。   Further, as shown in FIG. 2, the PUs 100-1 to 100-3 have the same hardware configuration. In FIG. 2, illustration of the extended node 4b is omitted for convenience.

以下、PUを示す符号としては、複数のPUのうち1つを特定する場合には符号100−1,100−2,100−3を用い、任意のPUを指すときには符号100を用いる。また、PU100−1をPU#1と、PU100−2をPU#2と、PU100−3をPU#3と、それぞれ表す場合がある。   Hereinafter, as a code indicating the PU, the code 100-1, 100-2, 100-3 is used when one of a plurality of PUs is specified, and the code 100 is used when indicating an arbitrary PU. In some cases, PU100-1 is represented as PU # 1, PU100-2 as PU # 2, and PU100-3 as PU # 3.

PU100は、図2に示すように、CA101,102と複数(図2に示す例では2つ)のDA103,103とを備えるとともに、CPU105,メモリ106,フラッシュメモリ107およびIOC(Input Output Controller)108を備える。CA101,102,DA103,CPU105,メモリ106,フラッシュメモリ107,IOC108は、例えばPCIeインタフェース104を介して相互に通信可能に接続される。   As shown in FIG. 2, the PU 100 includes CAs 101 and 102 and a plurality (two in the example shown in FIG. 2) DAs 103 and 103, as well as a CPU 105, a memory 106, a flash memory 107, and an IOC (Input Output Controller) 108. Is provided. The CAs 101, 102, DA 103, CPU 105, memory 106, flash memory 107, and IOC 108 are connected to be communicable with each other via, for example, the PCIe interface 104.

CA101,102は、ホスト装置2や管理端末3等から送信されたデータを受信したり、PU100から出力するデータをホスト装置2や管理端末3等に送信したりするアダプタである。すなわち、CA101,102は、ホスト装置2等の外部装置との間でのデータの入出力を制御する。   The CAs 101 and 102 are adapters that receive data transmitted from the host device 2, the management terminal 3, and the like, and transmit data output from the PU 100 to the host device 2, the management terminal 3, and the like. That is, the CAs 101 and 102 control data input / output with an external device such as the host device 2.

CA101は、例えば、NASを介してホスト装置2や管理端末3と通信可能に接続するネットワークアダプタであり、LAN(Local Area Network)インタフェース等である。各PU100は、CA101により通信回線を介してホスト装置2等とNASにより接続され、I/O要求の受信やデータの送受信等を行なう。図1に示す例においては、PU100a,100bのそれぞれに2つのCA101,101が備えられている。   The CA 101 is, for example, a network adapter that is communicably connected to the host device 2 and the management terminal 3 via the NAS, and is a LAN (Local Area Network) interface or the like. Each PU 100 is connected to the host apparatus 2 and the like via the communication line by the CA 101 via the NAS, and receives an I / O request, transmits / receives data, and the like. In the example illustrated in FIG. 1, two CAs 101 and 101 are provided in each of the PUs 100 a and 100 b.

CA102は、SANを介してホスト装置2と通信可能に接続するネットワークアダプタであり、例えば、iSCSI(Internet Small Computer System Interface)インタフェースやFC(Fibre Channel)インタフェースである。各PU100は、CA102により図示しない通信回線を介してホスト装置2等とSANにより接続され、I/O要求の受信やデータの送受信等を行なう。図1に示す例においては、PU100a,100bのそれぞれに1つのCA102が備えられている。   The CA 102 is a network adapter that is communicably connected to the host apparatus 2 via the SAN, and is, for example, an iSCSI (Internet Small Computer System Interface) interface or an FC (Fibre Channel) interface. Each PU 100 is connected to the host apparatus 2 and the like by a SAN via a communication line (not shown) by the CA 102, and receives an I / O request, transmits and receives data, and the like. In the example illustrated in FIG. 1, one CA 102 is provided in each of the PUs 100 a and 100 b.

DA103は、SU30と通信可能に接続するためのインタフェースである。DA103にはSU30が接続され、各PU100は、ホスト装置2から受信したI/O要求に基づき、SU30に対するアクセス制御を行なう。   The DA 103 is an interface for connecting to the SU 30 so as to be communicable. The SU 30 is connected to the DA 103, and each PU 100 performs access control on the SU 30 based on the I / O request received from the host device 2.

また、図1に示す例においては、PU100a,100bのそれぞれに2つのDA103,103が備えられている。そして、PU100a,100bのそれぞれにおいて、各DA103にSU30が接続されている。   In the example shown in FIG. 1, two DAs 103 and 103 are provided in each of the PUs 100a and 100b. And in each of PU100a, 100b, SU30 is connected to each DA103.

SU30は、例えば、HDD(Hard Disk Drive),SSD(Solid State Drive)等の記憶装置(ストレージ,実ストレージ装置)であり、種々のデータを格納する。   The SU 30 is a storage device (storage, actual storage device) such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive), and stores various data.

SU30は、1以上(図1に示す例では4つ)のLUN31を備え、これらのLUN31の記憶領域を、本ストレージシステム1に対して提供する。LUN31を論理ディスク31と表現してもよい。   The SU 30 includes one or more (four in the example shown in FIG. 1) LUNs 31, and provides storage areas for these LUNs 31 to the storage system 1. The LUN 31 may be expressed as a logical disk 31.

例えば、SU30は、複数段のスロット(図示省略)を備えるデバイスエンクロージャに搭載され、これらのスロットに、記憶装置を着脱することにより、実ボリューム容量を随時変更し、LUNの追加や削除を行なうことができる。また、複数の記憶装置を用いてRAID(Redundant Arrays of Inexpensive Disks)を構成することができる。   For example, the SU 30 is mounted in a device enclosure having a plurality of slots (not shown), and by attaching / detaching a storage device to / from these slots, the real volume capacity is changed as needed, and LUNs are added or deleted. Can do. Further, RAID (Redundant Arrays of Inexpensive Disks) can be configured using a plurality of storage devices.

各SU30は、PU100aのデバイスアダプタDA103,103とPU100bのDA103,103とそれぞれ接続されている。そして、各SU30には、PU100a,100bのいずれからもアクセスして、データの書込や読出を行なうことができる。すなわち、SU30の各LUN31に対して、PU100a,100bのそれぞれを接続することにより、LUN31へのアクセス経路が冗長化されている。   Each SU 30 is connected to the device adapters DA 103 and 103 of the PU 100a and the DAs 103 and 103 of the PU 100b, respectively. Each SU 30 can be accessed from any of the PUs 100a and 100b to write and read data. That is, by connecting each of the PUs 100a and 100b to each LUN 31 of the SU 30, the access path to the LUN 31 is made redundant.

これにより、SU30の各LUN31には、PU100a,100bのいずれからもデータの書込や読出を行なうことができる。   As a result, data can be written to and read from each of the PUs 100a and 100b in each LUN 31 of the SU 30.

フラッシュメモリ107は、CPU105が実行するプログラムや種々のデータ等を格納する記憶装置である。   The flash memory 107 is a storage device that stores programs executed by the CPU 105 and various data.

メモリ106はROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ106のROMには、仮想化制御にかかるソフトウェアプログラム(制御プログラム)やこのプログラム用のデータ類が書き込まれている。   The memory 106 is a storage memory including a ROM (Read Only Memory) and a RAM (Random Access Memory). A software program (control program) related to virtualization control and data for the program are written in the ROM of the memory 106.

制御プログラムは、例えば、本実施形態の制御機能(例えば、図1に示すセグメント管理部202や仮想化部211としての機能)を実現すべくCPU105が実行するプログラムであり、メモリ106あるいはフラッシュメモリ107に保存される。   The control program is, for example, a program executed by the CPU 105 to realize the control function of the present embodiment (for example, the function as the segment management unit 202 or the virtualization unit 211 shown in FIG. 1). Saved in.

メモリ106上のソフトウェアプログラムは、CPU105に適宜読み込まれて実行される。また、メモリ106のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。また、メモリ106のRAMは、キャッシュ領域を有し、ホスト装置2から受信したデータや、ホスト装置2に対して送信するデータが一時的に格納される。   The software program on the memory 106 is appropriately read by the CPU 105 and executed. The RAM of the memory 106 is used as a primary storage memory or a working memory. The RAM of the memory 106 has a cache area and temporarily stores data received from the host device 2 and data to be transmitted to the host device 2.

IOC108は、各PU100内におけるデータ転送を制御する制御装置であり、例えば、メモリ106に格納されたデータをCPU105を介することなく転送させるDMA(Direct Memory Access)転送を実現する。   The IOC 108 is a control device that controls data transfer in each PU 100, and implements, for example, DMA (Direct Memory Access) transfer that transfers data stored in the memory 106 without passing through the CPU 105.

CPU105は、種々の制御や演算を行なう処理装置であり、例えばマルチコアプロセッサ(マルチコアCPU)である。CPU105は、メモリ106,フラッシュメモリ107等に格納されたOS(Operating System)やプログラムを実行することにより、種々の機能を実現する。特に、本実施形態において、CPU105は、制御プログラムを実行することで、後述するセグメント管理部202としての機能、もしくは仮想化部211としての機能を果たす。   The CPU 105 is a processing device that performs various controls and operations, and is, for example, a multi-core processor (multi-core CPU). The CPU 105 implements various functions by executing an OS (Operating System) and programs stored in the memory 106, the flash memory 107, and the like. In particular, in the present embodiment, the CPU 105 performs a function as the segment management unit 202 described later or a function as the virtualization unit 211 by executing a control program.

すなわち、PU100aが制御プログラムのマネージャ用モジュール(仮想化プログラム)を実行することで、図2に示すように、PU100aがマネージャ200として機能し、セグメント管理部202としての機能が実現される。また、PU100bが制御プログラムのエージェント用モジュールを実行することで、PU100bがエージェント210として機能し、仮想化部211としての機能が実現される。   That is, when the PU 100a executes the manager module (virtualization program) of the control program, the PU 100a functions as the manager 200 and the function as the segment management unit 202 is realized as shown in FIG. Further, the PU 100b executes the module for the agent of the control program, so that the PU 100b functions as the agent 210 and the function as the virtualization unit 211 is realized.

セグメント管理部202は、データベース201および割当部203を備える。   The segment management unit 202 includes a database 201 and an allocation unit 203.

割当部203は、VDISKに対してLUN31のセグメントを割り当てるセグメント割り当て処理を行なう。以下、VDISKに既に割り当てられている(割り当て済みの)セグメントを割り当て済セグメントという。また、これに対して、VDISKに割り当てがされていない(未割り当ての)セグメントを空きセグメントという場合がある。   The allocation unit 203 performs a segment allocation process for allocating the LUN 31 segment to the VDISK. Hereinafter, a segment already allocated (allocated) to VDISK is referred to as an allocated segment. On the other hand, a segment that is not allocated (unallocated) to VDISK may be referred to as an empty segment.

本ストレージシステム1においては、割当部203は、VDISKへのセグメントの割り当てを、事前割り当てと実割り当てとの2つのフェーズに分けて行なうことで、割り当て処理の高速化を実現する。   In the present storage system 1, the allocation unit 203 realizes speeding up of allocation processing by performing segment allocation to VDISK in two phases of pre-allocation and actual allocation.

割当部203は、空きセグメントの少なくとも一部に対して、VDISKに割り当てられる順序を予め決定し、データベース201に設定する事前割り当てを行なう。以下、空セグメントであって事前割り当てが行なわれているセグメントを事前割り当て済セグメントという場合がある。   The assigning unit 203 determines in advance the order in which the VDISK is assigned to at least a part of the empty segments, and performs pre-assignment that is set in the database 201. Hereinafter, a segment that is an empty segment and has been pre-allocated may be referred to as a pre-allocated segment.

割当部203は、空きセグメントに対して採番を行なうことで順序付けを行なう。このように空きセグメントに予め設定された割り当て順序を事前割り当て順序という場合がある。事前割り当て順序は、例えばシーケンシャルな整数で表され、この事前割り当て順序を示す数値を事前割り当てインデックスという場合がある。   The allocating unit 203 performs ordering by assigning numbers to empty segments. In this way, the allocation order set in advance for the empty segments may be referred to as a pre-allocation order. The pre-allocation order is expressed by, for example, a sequential integer, and a numerical value indicating the pre-allocation order may be referred to as a pre-allocation index.

すなわち、割当部203は、空きセグメントの少なくとも一部に対して事前割り当てインデックスを設定することで、事前割り当てを行なう。   That is, the allocating unit 203 performs pre-allocation by setting a pre-allocation index for at least part of the empty segments.

割当部203は、VDISKを作成する際に、実割り当てフェーズにおいて、事前割り当てインデックスが設定されたセグメントを、事前割り当てインデックスが示す順序に従ってVDISKに割り当てる。従って、事前割り当てインデックスは、VDISKに割り当てる順序を、VDISKの作成前に予め規定する予約情報(予約番号)として機能する。   When creating the VDISK, the allocating unit 203 allocates the segment in which the pre-allocation index is set to the VDISK in the actual allocation phase according to the order indicated by the pre-allocation index. Therefore, the pre-allocation index functions as reservation information (reservation number) that predefines the order of allocation to the VDISK before creating the VDISK.

割当部203は、空きセグメントの中からVDISKに優先して割り当てるセグメントを選択し、シーケンシャルな事前割り当てインデックスを設定することで、VDISKに割り当てられる順番予約を行なう。なお、事前割り当てを事前予約といってもよい。   The allocation unit 203 selects a segment to be allocated with priority over the VDISK from among the free segments, and sets a sequential pre-allocation index, thereby making an order reservation for allocation to the VDISK. Prior allocation may be referred to as advance reservation.

割当部203は、VDISKの構築を行なう際に、事前割り当てにおいて設定された事前割り当て順序(事前割り当てインデックス)に従って、事前割り当て済セグメントを選択し、VDISKに割り当てる。このように、セグメントをVDISKに割り当てることを実割り当てという。   When the VDISK is constructed, the allocating unit 203 selects a preallocated segment according to the preallocation order (preallocation index) set in the preallocation and allocates it to the VDISK. In this way, allocating segments to VDISK is called actual allocation.

実割り当てにおいて、割当部203は、事前割り当てインデックスが設定されたセグメントを、各事前割り当てインデックスの順序に従ってセグメントを割り当てる。すなわち、値が小さい事前割り当てインデックスが設定された事前割り当てインデックスから順番に選択してVDISKに割り当てる。   In actual allocation, the allocation unit 203 allocates segments to which pre-allocation indexes are set according to the order of each pre-allocation index. That is, the pre-allocation index having a smaller value is selected in order from the pre-allocation index that is set and allocated to the VDISK.

これにより、実割り当て時のセグメント選択コストをなくしVDISK作成にかかる時間を削減することができるのである。   As a result, the segment selection cost at the time of actual allocation can be eliminated, and the time required for VDISK creation can be reduced.

セグメント管理部202は、VDISKを構成するセグメントおよびそのセグメントが属するLUN31を管理する。   The segment management unit 202 manages the segments constituting the VDISK and the LUN 31 to which the segments belong.

セグメント管理部202は、データベース201を用いてセグメントの管理を行なう。   The segment management unit 202 manages segments using the database 201.

図5は実施形態の一例としてのストレージシステム1におけるLUN31の容量管理手法を示す図である。   FIG. 5 is a diagram illustrating a LUN 31 capacity management method in the storage system 1 as an example of the embodiment.

上述の如く、LUN31内のセグメントは、セグメント管理部202が、LUN31内のセグメントをVDISKに割り当てることで割り当て済セグメントとなり、事前割り当てを行なうことで事前割り当て済セグメントとなる。また、VDISKへの割り当ても事前割り当ても行なわれていないセグメントが空きセグメントとして扱われる。   As described above, the segment in the LUN 31 becomes an allocated segment by the segment management unit 202 assigning the segment in the LUN 31 to the VDISK, and becomes a pre-allocated segment by performing pre-allocation. In addition, a segment that has not been assigned to VDISK or pre-assigned is treated as a free segment.

本ストレージシステム1においては、LUN31における割当済セグメントの容量を割り当て済容量といい、また、LUN31における事前割り当て済セグメントの容量を事前割り当て済容量という。さらに、LUN31において、割り当て済セグメントでも事前割り当て済セグメントでもない空きセグメントの容量を空き容量という。   In this storage system 1, the allocated segment capacity in the LUN 31 is referred to as allocated capacity, and the pre-allocated segment capacity in the LUN 31 is referred to as pre-allocated capacity. Furthermore, in the LUN 31, the capacity of an empty segment that is neither an allocated segment nor a pre-allocated segment is referred to as an empty capacity.

事前割り当て済容量は、実際にはVDISKに割り当たっていないが、事前割り当てが行なわれたセグメントの領域の合計値である。また、空き容量は、LUN31の全領域の容量から事前割り当て済容量および割り当て済容量を除いた値となる。   The pre-allocated capacity is the total value of the areas of the segments that have been pre-allocated although they are not actually allocated to VDISK. The free capacity is a value obtained by removing the pre-allocated capacity and the allocated capacity from the capacity of the entire area of the LUN 31.

データベース201は、セグメント情報301およびLUN情報302を管理する。   The database 201 manages segment information 301 and LUN information 302.

図6は実施形態の一例としてのストレージシステム1におけるセグメント情報301を例示する図、図7はそのLUN情報302を例示する図である。   FIG. 6 is a diagram illustrating segment information 301 in the storage system 1 as an example of the embodiment, and FIG. 7 is a diagram illustrating LUN information 302 thereof.

セグメント情報301はセグメントに関する情報である。図6に例示するセグメント情報301は、LUN名,LUN内インデックス,VDISK名,VDISK内インデックスおよび事前割り当てインデックスを関連付けて構成されており、セグメント毎にこれらの情報が登録される。   The segment information 301 is information related to the segment. The segment information 301 illustrated in FIG. 6 is configured by associating a LUN name, an intra-LUN index, a VDISK name, an intra-VDISK index, and a pre-allocated index, and these pieces of information are registered for each segment.

LUN名はそのセグメントを含むLUN31を特定する情報である。LUN内インデックスは、そのセグメントのLUN31内における位置(格納位置)を示す。VDISK名は、VDISKを特定するための情報であり、そのセグメントがVDISKに割り当てられている場合に、その割り当て先のVDISKのVDISK名が登録される。   The LUN name is information for specifying the LUN 31 including the segment. The intra-LUN index indicates the position (storage position) of the segment in the LUN 31. The VDISK name is information for specifying the VDISK. When the segment is assigned to the VDISK, the VDISK name of the assignment destination VDISK is registered.

VDISK内インデックスは、そのセグメントのVDISK内における位置(格納位置)を示し、そのセグメントがVDISKに割り当てられている場合に、その割り当て先のVDISKにおける位置(インデックス)が登録される。   The VDISK index indicates the position (storage position) of the segment in the VDISK. When the segment is assigned to the VDISK, the position (index) in the assignment destination VDISK is registered.

事前割り当てインデックスは、上述の如く、事前割り当て順序を示す数値であり、そのセグメントが事前割り当てされている場合に設定される。   The pre-allocation index is a numerical value indicating the pre-allocation order as described above, and is set when the segment is pre-allocated.

例えば、図6に例示するセグメント情報301において、先頭のエントリが示すセグメントは、LUN名が“LUN1”であるLUN31のインデックス“122”に位置する。また、このセグメントには事前割り当てが行なわれており、事前割り当てインデックス“1”が設定されている。   For example, in the segment information 301 illustrated in FIG. 6, the segment indicated by the top entry is located at the index “122” of the LUN 31 whose LUN name is “LUN1”. Further, this segment is pre-allocated, and a pre-allocation index “1” is set.

また、図6に例示するセグメント情報301において、最後尾(最下部)のエントリが示すセグメントは、LUN名が“LUN3”であるLUN31のインデックス“2”に位置する。また、このセグメントは、VDISK名が“VDISK4”のVDISKに割り当てられており、この“VDISK4”のインデックス“2”に対応する。   Further, in the segment information 301 illustrated in FIG. 6, the segment indicated by the last (lowermost) entry is located at the index “2” of the LUN 31 whose LUN name is “LUN3”. This segment is assigned to a VDISK whose VDISK name is “VDISK4”, and corresponds to the index “2” of this “VDISK4”.

LUN情報302は、LUN31におけるセグメントに関する情報である。図7に例示するLUN情報302は、LUN名,全セグメント数,空セグメント数および事前割り当てセグメント数を関連付けて構成されている。   The LUN information 302 is information related to the segment in the LUN 31. The LUN information 302 illustrated in FIG. 7 is configured by associating a LUN name, the total number of segments, the number of empty segments, and the number of pre-allocated segments.

LUN名は、LUN31を特定する情報である。全セグメント数は、そのLUN31が有するセグメントの総数である。空セグメント数は、そのLUN31における空きセグメントの数であり、事前割り当てセグメント数は、そのLUN31における事前割り当て済セグメントの数である。   The LUN name is information that identifies the LUN 31. The total number of segments is the total number of segments that the LUN 31 has. The number of empty segments is the number of empty segments in the LUN 31, and the number of pre-allocated segments is the number of pre-allocated segments in the LUN 31.

(a)事前割り当て
以下に、割当部203による事前割り当てについて説明する。
(A) Pre-allocation Hereinafter, pre-allocation by the allocation unit 203 will be described.

ストレージ装置の運用中においては、装置内のLUN数やLUN内の空き容量が動的に変化する。このため、従来においては、VDISKを作成するためにセグメントの割り当てを行なう際に、その都度、複数のLUNを空き容量が大きい順にソートし、セグメントセット単位でセグメント割り当てを実施していた。   During operation of the storage apparatus, the number of LUNs in the apparatus and the free capacity in the LUNs dynamically change. For this reason, conventionally, when assigning segments to create a VDISK, each time a plurality of LUNs are sorted in descending order of available capacity, segment assignment is performed in units of segment sets.

ここで、LUN数やLUN内の空き容量は、主に、LUN追加,LUN削除,VDISK作成およびVDISK削除を行なう際に変化する。しかし、実際の運用ではLUN追加と、それ以外であるLUN削除,VDISK作成およびVDISK削除とでは実行頻度は大きく異なる。すなわち、装置運用の本番が始まると、容量追加はほとんどなく、LUNの追加が実行されることは少ない。   Here, the number of LUNs and the free capacity in the LUN change mainly when LUN addition, LUN deletion, VDISK creation, and VDISK deletion are performed. However, in actual operation, the execution frequency is greatly different between LUN addition and other LUN deletion, VDISK creation, and VDISK deletion. That is, when the actual operation of the apparatus starts, there is almost no capacity addition, and LUN addition is rarely executed.

さて、ストレージシステムにおいてセグメントが増加するタイミングは、主にLUN追加およびVDISK削除である。   Now, the timing at which segments increase in the storage system is mainly LUN addition and VDISK deletion.

LUN追加は他のLUNと比較して空き容量が極端に大きくなる可能性がある。そのため、即時にセグメント割り当てへの考慮が必要であり、それまでに行なった事前割り当てを、全て一旦やり直し、平準化を進める必要がある。   The LUN addition may cause the free capacity to become extremely large compared to other LUNs. For this reason, it is necessary to immediately consider the segment allocation, and it is necessary to re-perform all the prior allocations performed so far and proceed with leveling.

一方、VDISK削除により増加する空きセグメントは、すでにストライピングされており平準化された状態であるため、全体としてのLUNの偏りに影響がない。従って、即時のセグメント割り当てを考慮する必要はなく、次に事前割り当てを行なう際に考慮すればよい。また、VDISK作成は、既に事前に割り当てたセグメントから取得するため、LUNの偏りに影響を与えない。   On the other hand, empty segments that increase due to VDISK deletion are already striped and leveled, so there is no effect on the overall LUN bias. Therefore, it is not necessary to consider immediate segment allocation, and it may be considered when performing pre-allocation next time. In addition, since VDISK creation is acquired from segments that have already been assigned in advance, LUN bias is not affected.

本ストレージシステム1においては、事前割り当てによる事前割り当てインデックスの決め直しが頻発すると、後述する実割り当ての妨げとなるおそれがあるので、割当部203は、LUN31の追加が行なわれた場合に事前割り当てを行なう。すなわち、割当部203は、VDISKの作成要求(セグメントの割り当て要求)が管理端末3等から入力される前に、事前割り当てを行なう。   In this storage system 1, if re-determination of pre-allocation indexes by pre-allocation occurs frequently, there is a risk of hindering actual allocation described later. Therefore, the allocation unit 203 performs pre-allocation when LUN 31 is added. Do. That is, the allocating unit 203 performs prior allocation before a VDISK creation request (segment allocation request) is input from the management terminal 3 or the like.

LUN削除はLUN31の空き容量の偏りへの影響がないが、単純にLUN31を削除するだけでは事前に割り当てたセグメントの順序どおりに実割り当てを行なった場合にストライプ幅を維持できなくなる。   LUN deletion does not affect the bias of the free capacity of the LUN 31, but if the LUN 31 is simply deleted, the stripe width cannot be maintained when actual allocation is performed in the order of the segments allocated in advance.

そこで、本ストレージシステム1においては、割当部203は、事前割り当てを行なうに際して、LUN31が削除されることを想定し、ストライプ幅より削除されるLUN数(例えばβとする)分多くセグメントを割り当てる。これにより、事前割り当て順序が設定されたセグメントにおいては、LUN31が削除された場合においてもストライプ幅を維持できる。   Therefore, in the present storage system 1, the allocation unit 203 allocates as many segments as the number of LUNs to be deleted (for example, β) from the stripe width, assuming that the LUN 31 is deleted when performing pre-allocation. As a result, in the segment for which the pre-allocation order is set, the stripe width can be maintained even when the LUN 31 is deleted.

このため、割当部203は、LUN31毎に、同一のLUN31内に既に設定されている事前割り当てインデックスの最大値を管理する。以下、LUN31内に既に設定されている事前割り当てインデックスの最大値を事前割り当て最大インデックスといい、また、この事前割り当て最大インデックスを符号aを用いて表す場合がある。   For this reason, the allocation unit 203 manages, for each LUN 31, the maximum value of the pre-allocation index that is already set in the same LUN 31. Hereinafter, the maximum value of the pre-allocation index already set in the LUN 31 is referred to as a pre-allocation maximum index, and this pre-allocation maximum index may be expressed using the symbol a.

図8は実施形態の一例としてのストレージシステム1における割当部203が管理するLUN情報304を例示する図である。   FIG. 8 is a diagram illustrating LUN information 304 managed by the allocation unit 203 in the storage system 1 as an example of the embodiment.

割当部203は、例えば、この図8に例示するLUN情報304を用いて、各LUN31のセグメントの状態等を管理する。   For example, the allocating unit 203 uses the LUN information 304 illustrated in FIG. 8 to manage the state of each LUN 31 segment.

図8に例示するLUN情報304は、LUN名,全セグメント数,空セグメント数,事前割り当てセグメント数および事前割り当て最大インデックスを関連付けて構成されている。   The LUN information 304 illustrated in FIG. 8 is configured by associating a LUN name, the total number of segments, the number of empty segments, the number of preassigned segments, and the preassigned maximum index.

すなわち、このLUN情報304は、図7に例示したLUN情報302に、管理項目としてさらに事前割り当て最大インデックスを加えたものである。なお、図中、記述の項目と同一の項目は同様の内容を示しているので、その説明は省略する。   That is, the LUN information 304 is obtained by adding a pre-assigned maximum index as a management item to the LUN information 302 illustrated in FIG. In the figure, the same items as the description items indicate the same contents, and the description thereof is omitted.

事前割り当て最大インデックスは、そのLUN31内に既に設定されている事前割り当てインデックスの最大値である。   The pre-allocation maximum index is the maximum value of the pre-allocation index already set in the LUN 31.

なお、LUN情報304において、LUN名,全セグメント数,空セグメント数および事前割り当てセグメント数の各情報は、例えば、データベース201からLUN情報302を読み出すことにより取得することができる。LUN情報304は、例えば、メモリ106のRAMに格納される。   In the LUN information 304, information on the LUN name, the total number of segments, the number of empty segments, and the number of pre-allocated segments can be acquired by reading the LUN information 302 from the database 201, for example. The LUN information 304 is stored in the RAM of the memory 106, for example.

そして、割当部203は、セグメントに対して事前割り当てインデックスを設定する際に、事前割り当てインデックスが、「事前割り当て最大インデックスa+ストライプ幅γ+削除を許容するLUN数β」以上となるように設定する。   Then, when setting the pre-allocation index for the segment, the allocation unit 203 sets the pre-allocation index to be equal to or greater than “pre-allocation maximum index a + stripe width γ + number of LUNs β allowing deletion”. .

ここで、ストライプ幅γは、1つのデータを分割(ストライピング)して同時に書き込む際の分割数もしくは分散数である。以下、ストライプ幅γを単にγと表す場合がある。   Here, the stripe width γ is the number of divisions or the number of distributions when one data is divided (striped) and simultaneously written. Hereinafter, the stripe width γ may be simply expressed as γ.

削除を許容するLUN数βとは、削除してもストライピング違反が生じないLUN31の数の上限値であり、LUN31の削除(LUN抜き)に関する自由度を示す。本ストレージシステム1においては、削除を許容するLUN数βとして自然数の固定値が予め設定される。以下、削除を許容するLUN数βを、単にβと表す場合がある。βの値は、実際のシステム運用においてLUN31の削除が行なわれる頻度等にもとづいて見積もり、予め設定することが望ましい。   The number of LUNs β that is allowed to be deleted is an upper limit value of the number of LUNs 31 that do not cause a striping violation even if deleted, and indicates a degree of freedom related to deletion of LUNs 31 (without LUNs). In this storage system 1, a fixed value of a natural number is preset as the LUN number β that is allowed to be deleted. Hereinafter, the LUN number β that is allowed to be deleted may be simply expressed as β. The value of β is preferably estimated and set in advance based on the frequency at which LUN 31 is deleted in actual system operation.

ただし、割当部203によるセグメントの事前割り当てが開始されてから実割り当てが行なわれるまでの間に、βより大きい回数、LUN31の削除が実施された場合には、本ストレージシステム1の全セグメントセットについて完全にストライピングされていることを保証できなくなる。そこで、βの値は、システム管理者等が任意に設定(調節)できることが望ましい。   However, if LUN 31 is deleted a number of times greater than β between the start of segment pre-allocation by the allocation unit 203 and actual allocation, all segment sets of the storage system 1 are deleted. It can no longer be guaranteed that it is completely striped. Therefore, it is desirable that the value of β can be arbitrarily set (adjusted) by a system administrator or the like.

図9は実施形態の一例としてのストレージシステム1における割当部203による事前割り当て方法を説明するための図である。   FIG. 9 is a diagram for explaining a pre-allocation method by the allocation unit 203 in the storage system 1 as an example of the embodiment.

この図9において、符号(A)は、セグメントに対して事前割り当てを行なう際に、事前割り当て最大インデックスaやストライプ幅γ,削除を許容するLUN数βを考慮することなく事前割り当てインデックスを設定する例を示す。   In FIG. 9, the code (A) sets the pre-allocation index without considering the pre-allocation maximum index a, the stripe width γ, and the LUN number β that allows deletion when pre-allocation is performed to the segment. An example is shown.

符号(A)に示す例においては、lun1〜lun8の8つのLUNが備えられ、lun1,lun2,lun3,lun4,lun5,lun6,lun7,lun8の順で空き容量が大きいものとする。また、ストライプ幅γ=8であるものとする。   In the example indicated by reference numeral (A), eight LUNs of lun1 to lun8 are provided, and it is assumed that the free capacity is large in the order of lun1, lun2, lun3, lun4, lun5, lun6, lun7, and lun8. Further, it is assumed that the stripe width γ = 8.

例えば、lun1に事前割り当てインデックス“1”および“9”が設定されている。同様に、lun2に事前割り当てインデックス“2”および“10”が、lun3に事前割り当てインデックス“3”および“11”が、lun4に事前割り当てインデックス“4”および“12”が、lun5に事前割り当てインデックス“5”および“13”が、それぞれ設定されている。さらに、lun6に事前割り当てインデックス“6”および“14”が、lun7に事前割り当てインデックス“7”および“15”が、lun8に事前割り当てインデックス“8”および“16”が、それぞれ設定されている。   For example, pre-assigned indexes “1” and “9” are set in lun1. Similarly, pre-assigned indexes “2” and “10” for lun2, pre-assigned indexes “3” and “11” for lun3, pre-assigned indexes “4” and “12” for lun4, and pre-assigned indexes for lun5 “5” and “13” are set respectively. Furthermore, pre-assigned indexes “6” and “14” are set in lun6, pre-assigned indexes “7” and “15” are set in lun7, and pre-assigned indexes “8” and “16” are set in lun8, respectively.

このような状態において、例えば、lun2が削除(LUN抜き)された場合には、割当部203は、事前割り当てインデックス“1”,“3”,“4”,“5”,“6”,“7”,“8”,“9”のセグメントを実割り当てする。この際、事前割り当てインデックス“1”のセグメントと事前割り当てインデックス“9”のセグメントとが同一のlun1となる。これにより、ストライピングにかかるストレージポリシーに違反し、システムの信頼性が低下することになる。   In such a state, for example, when lun2 is deleted (LUN removed), the allocation unit 203 performs the pre-allocation indexes “1”, “3”, “4”, “5”, “6”, “ Actually allocate the segments “7”, “8”, and “9”. At this time, the segment of the pre-allocation index “1” and the segment of the pre-allocation index “9” are the same lun1. This violates the storage policy related to striping and reduces the reliability of the system.

一方、図9において、符号(B)は本ストレージシステム1の割当部203による事前割り当て例を示す。割当部203は、各LUN31のセグメントに事前割り当てを行なう際に、「同一LUN31における事前割り当て最大インデックスa+ストライプ幅γ+削除を許容するLUN数β」以上となる事前割り当てインデックスを設定する。   On the other hand, in FIG. 9, reference numeral (B) shows an example of prior allocation by the allocation unit 203 of the storage system 1. The allocating unit 203 sets a pre-allocation index that is equal to or greater than “the maximum pre-allocation index a in the same LUN 31 a + the stripe width γ + the number of LUNs β that are allowed to be deleted” when performing pre-allocation to the segment of each LUN 31.

図9の符号(B)においては、lun1〜lun13の13個のLUN31のセグメントに事前割り当てを行なう例を示している。   In the code (B) of FIG. 9, an example is shown in which pre-allocation is performed to the 13 LUN 31 segments of lun1 to lun13.

例えば、lun8においては、先に事前割り当てインデックス(事前割り当て最大インデックス)“4”が設定されている。ここで、ストライプ幅γ=8であり、削除を許容するLUN数β=1とする場合に、セグメント管理部202は、このlun8のセグメントに、次は13(=4+8+1)以上の事前割り当てインデックスを設定する。   For example, in lun8, a pre-allocation index (pre-allocation maximum index) “4” is set in advance. Here, when the stripe width γ = 8 and the number of LUNs β = 1 that allow deletion, the segment management unit 202 adds 13 (= 4 + 8 + 1) or more to this lun8 segment. Set the pre-allocated index.

このようにして、図9の符号(B)においては、lun1に事前割り当てインデックス“8”が設定されている。同様に、lun2に事前割り当てインデックス“5”が、lun3に事前割り当てインデックス“3”が、lun4に事前割り当てインデックス“9”が、lun5に事前割り当てインデックス“10”が、それぞれ設定されている。また、lun6に事前割り当てインデックス“11”が、lun7に事前割り当てインデックス“12”が、lun8に事前割り当てインデックス“4”および“13”が、それぞれ設定されている。さらに、lun9に事前割り当てインデックス“14”が、lun10に事前割り当てインデックス“7”が、lun11に事前割り当てインデックス“6”および“15”が、lun12に事前割り当てインデックス“1”および“16”が、lun13に事前割り当てインデックス“2”が、それぞれ設定されている。   In this way, in FIG. 9B, the pre-assigned index “8” is set to lun1. Similarly, a pre-allocation index “5” is set in lun2, a pre-allocation index “3” is set in lun3, a pre-allocation index “9” is set in lun4, and a pre-allocation index “10” is set in lun5. Also, the pre-allocation index “11” is set to lun6, the pre-allocation index “12” is set to lun7, and the pre-allocation indexes “4” and “13” are set to lun8. Furthermore, the pre-allocation index “14” is assigned to lun9, the pre-allocation index “7” is assigned to lun10, the pre-allocation indexes “6” and “15” are assigned to lun11, and the preallocation indexes “1” and “16” are assigned to lun12. The pre-assigned index “2” is set for lun13.

なお、事前割り当てインデックス“1〜5”が設定されたセグメントは実割り当て済みであるものとする。   It is assumed that the segments for which the pre-allocation index “1 to 5” is set have already been allocated.

ここで、例えば、lun6が削除(LUN抜き)された場合には、割当部203により、事前割り当てインデックス“6”,“7”,“8”,“9”,“10”,“12”,“13”,“14”のセグメントが実割り当てされる。この際、同一LUN31に割り当てられるセグメントはなく、ストライピングにかかるストレージポリシーに違反することもない。   Here, for example, when lun6 is deleted (LUN removed), the allocation unit 203 causes the pre-allocation indexes “6”, “7”, “8”, “9”, “10”, “12”, The segments “13” and “14” are actually allocated. At this time, there is no segment assigned to the same LUN 31, and the storage policy for striping is not violated.

すなわち、各LUN31のセグメントに対して、事前割り当て最大インデックスとの差が「ストライプ幅(γ=8)+削除を許容するLUN数(β=1)」となる事前割り当てインデックスを設定することで、LUN31が1つ削除されてもストライピングを維持することができる。   That is, for each LUN 31 segment, by setting a pre-allocation index in which the difference from the pre-allocation maximum index is “strip width (γ = 8) + number of LUNs allowed to be deleted (β = 1)”, Even if one LUN 31 is deleted, striping can be maintained.

また、割当部203は、複数のLUN31間における空き容量の平準化の度合いにより動的に事前割り当て数を変更する。   Further, the allocation unit 203 dynamically changes the number of pre-allocations according to the level of free capacity between the plurality of LUNs 31.

複数のLUN31間において、空き容量の偏りが大きく、平準化できていない間は、セグメント管理部202は、先ず、複数のLUN31を空き容量が多い順にソートする。   The segment management unit 202 first sorts the plurality of LUNs 31 in the descending order of the free capacity while the uneven free capacity is large among the plurality of LUNs 31 and leveling is not possible.

そして、セグメント管理部202は、1回のソートで1度に事前割り当てるセグメント数を少なくする。例えば、1つのLUN31から1セグメントを取得する。これにより同じLUN31が選択される頻度をあげ、早く割り当てることよりも早く平準化することを優先する。なお、このように平準化を優先する間は、ソート回数が増える。   Then, the segment management unit 202 reduces the number of segments that are pre-allocated at one time by one sort. For example, one segment is acquired from one LUN 31. As a result, the frequency with which the same LUN 31 is selected is increased, and priority is given to leveling earlier than to assign earlier. Note that the number of sorts increases while priority is given to leveling.

一方、平準化がされている場合には、割当部203は、事前割り当て速度を優先し、1回のソートで1度に割り当てるセグメント数を多くする。すなわち、割当部203は、各LUN31から割り当てを行なうセグメントを均等に選択する。
なお、平準化がされているか否かは、例えば、全LUN31を対象としたLUNの空き容量の最大値と最小値との差で判断する。空き容量の最大値と最小値との差が閾値F以下であれば平準化されたと判断し、空き容量の最大値と最小値との差がFより大きければ平準化されていないと判断する。閾値Fとしては、例えば、1セグメントのサイズを用いてもよく、例えば、256MBである。
On the other hand, when leveling is performed, the allocating unit 203 prioritizes the pre-allocation speed and increases the number of segments allocated at one time by one sort. That is, the allocating unit 203 uniformly selects segments to be allocated from each LUN 31.
Whether or not leveling is performed is determined by, for example, the difference between the maximum value and the minimum value of the free capacity of the LUNs for all the LUNs 31. If the difference between the maximum value and the minimum value of the free space is equal to or less than the threshold value F, it is determined that the level has been leveled. If the difference between the maximum value and the minimum value of the free space is greater than F, it is determined that the level has not been leveled. As the threshold value F, for example, the size of one segment may be used, for example, 256 MB.

平準化ができていない間において、1回のソートで1度に異なったLUN31に対して事前割り当てするセグメント数をαとする。   Let α be the number of segments that are pre-allocated to different LUNs 31 at one time during one sort while leveling is not possible.

事前割り当て時には、割当部203は、全LUN31の事前割り当て最大インデックスをメモリ上に記憶しておく(LUN情報304参照)。   At the time of pre-allocation, the allocation unit 203 stores the pre-allocation maximum index of all LUNs 31 on the memory (see LUN information 304).

そして、割当部203は、新たに選択したセグメントについて、事前割り当てインデックスの候補値αと、そのセグメントが属するLUN31の事前割り当て最大インデックスaとを比較する。割当部203は、事前割り当てインデックスの候補値αと、事前割り当て最大インデックスaとが“ストライプ幅γ+削除を許容するLUN数β”以上の差がある場合に、その事前割り当てインデックスの候補値αを選択したセグメントに事前割り当てインデックスとして設定する。すなわち、事前割り当てを行なう。   Then, for the newly selected segment, the allocation unit 203 compares the candidate value α of the pre-allocation index with the maximum pre-allocation index a of the LUN 31 to which the segment belongs. The allocation unit 203, when there is a difference between the candidate value α of the pre-allocation index and the maximum pre-allocation index a equal to or greater than “the stripe width γ + the number of LUNs β that allows deletion” is greater than the candidate value α of the pre-allocation index Set as the pre-allocated index for the selected segment. That is, prior allocation is performed.

なお、割当部203は、この割り当てに併せて、LUN情報304における事前割り当て最大インデックスの更新も行なう。   The allocation unit 203 also updates the pre-allocation maximum index in the LUN information 304 in conjunction with this allocation.

また、β本以上LUN31の削除が実施された場合には、割当部203(セグメント管理部202)は、LUN31の追加が実施されたときと同様に、全ての事前割り当て順序を再設定し直すことで、ストライプ幅を保障する。   In addition, when β or more LUNs 31 are deleted, the allocation unit 203 (segment management unit 202) resets all the pre-allocation orders in the same manner as when the LUNs 31 are added. In order to guarantee the stripe width.

一方、平準化ができている場合には、割当部203は、1回のソートで1度に全てのLUN31からセグメントを事前割り当てする。   On the other hand, if leveling is possible, the allocating unit 203 preallocates segments from all LUNs 31 at a time by one sort.

事前割り当ては、全てのLUN31についての、“空き容量+事前割り当て済容量”の総計に占める“事前割り当て済容量”の総計の割合が、所定値(LIMIT;例えば70%程度)以上になった場合を終了条件とすることが望ましい。これは、あるセグメントに対して事前割り当てが完了してから実割り当てまでの時間を短縮するためであり、LUN31の削除を複数回実行することによって、実割り当て時にストライピングを維持したセグメント割り当てができなくなるリスクを軽減するためである。   In the pre-allocation, the ratio of the total of “pre-allocated capacity” to the total of “free capacity + pre-allocated capacity” for all LUNs 31 exceeds a predetermined value (LIMIT; for example, about 70%) It is desirable to use as an end condition. This is to shorten the time from completion of pre-allocation to a certain segment until actual allocation. By executing LUN 31 deletion a plurality of times, segment allocation that maintains striping during actual allocation cannot be performed. This is to reduce the risk.

図10は実施形態の一例としてのストレージシステム1における事前割り当て数を説明するための図である。   FIG. 10 is a diagram for explaining the number of prior allocations in the storage system 1 as an example of the embodiment.

以下、全てのLUN31を対象とした、LUN31の空き容量の最大値と最小値との差をdとする。すなわち、dは、空き容量が最も大きいLUN31における当該空き容量の値から、空き容量が最も小さいLUN31における当該空き容量の値を減算した値である。SU30に備えられた複数のLUN31において、平準化が進んでいる場合にはdの値は小さくなる。従って、dを平準化の状態を表す指標として用いることができる。   Hereinafter, let d be the difference between the maximum value and the minimum value of the free capacity of the LUN 31 for all LUNs 31. That is, d is a value obtained by subtracting the value of the free capacity in the LUN 31 with the smallest available capacity from the value of the free capacity in the LUN 31 with the largest available capacity. In the plurality of LUNs 31 provided in the SU 30, the value of d is small when the leveling is advanced. Therefore, d can be used as an index representing the leveling state.

割当部203は、dを予め設定した閾値Fと比較することで平準化がされているかを判断する。すなわち、割当部203は、d≦Fの場合には平準化がされた状態であると判断し、d>Fの場合には平準化がされていない状態であると判断する。   The allocation unit 203 determines whether leveling is performed by comparing d with a preset threshold value F. That is, the allocation unit 203 determines that the leveling is performed when d ≦ F, and determines that the leveling is not performed when d> F.

図10に示すグラフは、dと1回のソートで事前割り当てするセグメント数αとの関係を示す。   The graph shown in FIG. 10 shows the relationship between d and the number of segments α pre-assigned in one sort.

上述の説明においては、1回のソートで事前割り当てするセグメント数αを固定値としているが、これに限定されるものではない。   In the above description, the number of segments α pre-assigned in one sort is a fixed value, but the present invention is not limited to this.

例えば、SU30内のLUN31が全て同じサイズである場合には、dが大きい間は事前割り当てするセグメント数αを少なくすることで、単位時間当りの特定のLUN31の出現数を増やすことが望ましい。また、LUN31のサイズdが小さくなるに連れて、すなわち平準化されるにつれてセグメント数αを可変にして動的に増やすことが望ましい。これにより、事前割り当てをより短時間で完了させることができる。   For example, when all the LUNs 31 in the SU 30 have the same size, it is desirable to increase the number of appearances of a specific LUN 31 per unit time by reducing the number of segments α to be pre-allocated while d is large. In addition, it is desirable to dynamically increase the number of segments α as the size d of the LUN 31 decreases, that is, as the level is equalized. Thereby, pre-allocation can be completed in a shorter time.

1回のソートで事前割り当てするセグメント数αは、以下の式で求めた値を用いることが望ましい。   As the number of segments α to be pre-assigned in one sort, it is desirable to use a value obtained by the following formula.

α=最大LUN数−(最大LUN数−ストライプ幅γ−β)× d / LUNサイズ   α = maximum number of LUNs− (maximum number of LUNs−stripe width γ−β) × d / LUN size

(b)実割り当て
割当部203は、例えば、管理端末3等からVDISK作成要求を受信すると、LUN31のセグメントをVDISKに割り当てる実割り当てを行なう。
(B) Real allocation When the allocation unit 203 receives a VDISK creation request from the management terminal 3 or the like, for example, the allocation unit 203 performs actual allocation to allocate the LUN 31 segment to the VDISK.

実割り当てにおいては、割当部203は、VDISK作成要求に対する処理の延長で行なうセグメント割り当て時には、事前割り当てにおいて事前割り当てインデックス(予約順序)が設定されたセグメントを、その事前割り当てインデックスの順に従って、セグメントをVDISKに割り当てる。すなわち、実割り当てにおいて、割当部203は、事前割り当てインデックスを割り当て順序として用いてセグメントをVDISKに割り当てる。   In actual allocation, the allocation unit 203 assigns a segment in which a pre-allocation index (reservation order) is set in the pre-allocation according to the order of the pre-allocation index at the time of segment allocation performed as an extension of the process for the VDISK creation request. Assign to VDISK. That is, in actual allocation, the allocation unit 203 allocates segments to VDISK using the pre-allocation index as the allocation order.

この実割り当て処理は、データベース201に対して1つのSQR文(1SQL文)を発行することにより実現される。この1SQL文は、例えば、データベース201のセグメント情報301に対して、VDISKへの割り当てられる複数のセグメントのそれぞれについて、VDISK名およびVDISK内インテックスの各を割り当て後の状態に一括で更新する。   This real allocation process is realized by issuing one SQL statement (1SQL statement) to the database 201. This 1SQL statement, for example, updates the VDISK name and the VDISK intex to the state after the assignment for each of a plurality of segments assigned to the VDISK for the segment information 301 of the database 201, for example.

また、割り当てが行なわれたLUN31の情報は、データベース201のセグメント情報301およびLUN情報302に反映される。   Further, the information on the assigned LUN 31 is reflected in the segment information 301 and the LUN information 302 of the database 201.

割当部203は、例えば、ユーザ操作によりVDISKの作成指示を受け付けると、このVDISKのマップ情報をデータベース201から抽出した情報に基づいて作成し、エージェント210内の仮想化部211に対してVDISKのマップ情報を送信する。   For example, when the allocation unit 203 receives a VDISK creation instruction by a user operation, the allocation unit 203 creates this VDISK map information based on the information extracted from the database 201, and maps the VDISK to the virtualization unit 211 in the agent 210. Send information.

マップ情報とは、論理アドレスと物理アドレスの変換テーブルである。割当部203が、実割り当てを行なうことで、マップ情報が作成される。なお、マップ情報は既知であり、その詳細な説明は省略する。   The map information is a logical address / physical address conversion table. Map information is created by the allocation unit 203 performing actual allocation. The map information is already known, and detailed description thereof is omitted.

以下、仮想化ストレージ装置内の利用可能な全ストレージ領域をストレージプールという。   Hereinafter, all available storage areas in the virtual storage apparatus are referred to as a storage pool.

割当部203は、SU30内のLUN31を2つのストレージプールSPZ1,SPZ2とに分け、ストレージプールSPZ1から抽出したセグメントと、ストレージプールSPZ2から抽出したセグメントとをVDISKに割り当てる。   The allocation unit 203 divides the LUN 31 in the SU 30 into two storage pools SPZ1 and SPZ2, and allocates the segment extracted from the storage pool SPZ1 and the segment extracted from the storage pool SPZ2 to the VDISK.

例えば、SU30における奇数番目のLUN31をストレージプールSPZ1とし、偶数番目のLUN31をストレージプールSPZ2とする。なお、以下、ストレージシステムを示す符号としては、複数のストレージプールのうち1つを特定する必要があるときには符号SPZ1,SPZ2を用いるが、任意のストレージプールを指すときには符号SPZを用いる。   For example, an odd-numbered LUN 31 in the SU 30 is a storage pool SPZ1, and an even-numbered LUN 31 is a storage pool SPZ2. Hereinafter, as a code indicating a storage system, the codes SPZ1 and SPZ2 are used when one of a plurality of storage pools needs to be specified, but the code SPZ is used when indicating an arbitrary storage pool.

割当部203は、例えば、冗長度2のVDISKを作成する場合は、異なるSPZに属するLUN31からセグメントを割り当てる。これにより、SU30が故障した場合でもデータにアクセスできる。   For example, when creating a VDISK having a redundancy of 2, the allocation unit 203 allocates segments from LUNs 31 belonging to different SPZs. Thereby, data can be accessed even when the SU 30 fails.

図11は実施形態の一例としてのストレージシステム1におけるセグメント割り当て方法を説明するための図である。   FIG. 11 is a diagram for explaining a segment allocation method in the storage system 1 as an example of the embodiment.

図11においては、VDISKにおいて、ストレージプールSPZ1から抽出したセグメントと、ストレージプールSPZ2から抽出したセグメントとを用いてペアセグメントを構成している。   In FIG. 11, in VDISK, a pair segment is configured using a segment extracted from the storage pool SPZ1 and a segment extracted from the storage pool SPZ2.

また、VDISKへの割り当て番号は、1変数で管理することができるように、SPZ番号が異なる、すなわち、属するストレージプールSPZが異なるセグメントを交互に割り当てる。   Further, the allocation numbers to the VDISK are alternately allocated segments having different SPZ numbers, that is, different storage pool SPZs, so that they can be managed by one variable.

ペアセグメントのVDISK内インデックスは、データベース201上で隣り合うように配置する。これにより、多変数(多次元)配列(変数はSPZ番号、VDISK内インデックス)を1変数で実現することができる。   The indexes in the VDISK of the pair segments are arranged adjacent to each other on the database 201. As a result, a multi-variable (multi-dimensional) array (variables are SPZ numbers and VDISK indexes) can be realized with one variable.

また、割当部203は、以下の理由により、ストレージプールSPZ毎に事前割り当てインデックスを割り当てる。   The allocation unit 203 allocates a pre-allocation index for each storage pool SPZ for the following reason.

事前割り当てをVDISKへの割り当て番号と同じ形で割り当てると、LUN31の削除でセグメントが削除された場合に、下記のようにセグメントの並びが崩れるため、最初から割り当てなおす必要があるからである。   This is because if the pre-assignment is assigned in the same form as the assignment number to the VDISK, when the segment is deleted by deleting the LUN 31, the arrangement of the segments is broken as follows, and it is necessary to reassign from the beginning.

すなわち、単純に間をつめると、SPZの並び順が狂い、同一SPZが連続することになる。また、別のLUN31のセグメントを割り当てると、LUN31の使用頻度が均等でなくなる。   That is, if the gap is simply closed, the SPZ arrangement order is out of order, and the same SPZ continues. Further, if a segment of another LUN 31 is allocated, the usage frequency of the LUN 31 is not uniform.

しかし、SPZ毎に割り当てを行なえば、LUN31の削除でセグメントが削除された場合でも、事前割り当てインデックスの並び順をそのまま使用してセグメント割り当てを行なうことができる。これにより、同一ストレージプールSPZだけで割り当てているため、ストレージプールSPZの並び順が狂うことはない。また、割り当て時に、整列された順に連番を付与すれば番号をつめておく必要はない。さらに、均等なLUN31を削除するだけになるので、LUN31間の使用頻度に差はでない。   However, if the allocation is performed for each SPZ, even when the segment is deleted by deleting the LUN 31, the segment allocation can be performed using the order of the pre-allocated index as it is. As a result, since the allocation is performed only by the same storage pool SPZ, the arrangement order of the storage pools SPZ will not be out of order. In addition, when assigning serial numbers in the order of arrangement, it is not necessary to pack the numbers. Furthermore, since only the uniform LUN 31 is deleted, there is no difference in the usage frequency between the LUNs 31.

図12は実施形態の一例としてのストレージシステム1における割当部203による一括割り当て方法を説明するための図である。   FIG. 12 is a diagram for explaining a batch allocation method by the allocation unit 203 in the storage system 1 as an example of the embodiment.

割当部203は、以下の一連の処理1〜3を例えばSQLのようなデータベース言語を用いて実行することで、VDISKへのセグメントの一括割り当てを行なう。   The allocating unit 203 performs batch allocation of segments to the VDISK by executing the following series of processes 1 to 3 using a database language such as SQL.

処理1:副問い合わせで事前割り当ての行なわれたセグメントを同一ストレージプールSPZの事前割り当てインデックスの小さい方から割り当て数分抽出する。   Process 1: Segments that have been pre-allocated by sub-query are extracted from the smaller pre-allocation index of the same storage pool SPZ by the number of allocations.

なお、図12に示す例においては、各ストレージプールSPZからの割り当て数は5とする。また、図12に示す例においては、ストレージプールSPZ1から事前割り当てインデックス4,5,7,10,11が抽出され(矢印P1参照)、ストレージプールSPZ2から事前割り当てインデックス4,5,6,7,8が抽出されている(矢印P2参照)。   In the example shown in FIG. 12, the number of allocations from each storage pool SPZ is 5. In the example shown in FIG. 12, the pre-allocation indexes 4, 5, 7, 10, 11 are extracted from the storage pool SPZ1 (see arrow P1), and the pre-allocation indexes 4, 5, 6, 7, and 11 are extracted from the storage pool SPZ2. 8 is extracted (see arrow P2).

処理2:抽出したセグメント情報に、例えばDBMS(Data Base Managing System)のウィンドウ関数(row_number():行番号を順序付け ,over():事前割り当てインデックスの小さいというルール)を用いて連番を再付与する。   Process 2: Reassign serial numbers to the extracted segment information using, for example, a DBMS (Data Base Managing System) window function (row_number (): order row numbers, over (): rule that the pre-allocated index is small) To do.

図12に示す例においては、ストレージプールSPZ1に関する事前割り当てインデックス4,5,7,10,11を、連番1,2,3,4,5に変更する(矢印P3参照)。同様に、ストレージプールSPZ2に関する事前割り当てインデックス4,5,6,7,8を、連番1,2,3,4,5に変更する(矢印P4参照)。   In the example shown in FIG. 12, the pre-allocated indexes 4, 5, 7, 10, 11 relating to the storage pool SPZ1 are changed to serial numbers 1, 2, 3, 4, 5 (see arrow P3). Similarly, the pre-allocated indexes 4, 5, 6, 7, and 8 for the storage pool SPZ2 are changed to serial numbers 1, 2, 3, 4, and 5 (see arrow P4).

処理3:付与された連番を元にVDISK内インデックス番号を付与する。   Process 3: An index number in VDISK is assigned based on the assigned serial number.

なお、VDISK内インデックス= SPZの割り当て開始位置(VDISK内インデックス)+ (連番−1) * 冗長度 である。   In addition, VDISK index = SPZ allocation start position (VDISK index) + (serial number−1) * redundancy.

なお、連番はrow_numberにより1から採番される。そのため開始位置から始まるよう1を引いているのである。   Serial numbers are numbered from 1 by row_number. Therefore, 1 is subtracted to start from the starting position.

また、割当部203は、ストレージプールSPZ1の複数(図12に示す例では5つ)のセグメントを、VDISKにおけるインデックス(VDISK内インデックス)に1つとばしに一度に割り当てる(図12の符号P5参照)。同様に、割当部203は、ストレージプールSPZ2の複数(図12に示す例では5つ)のセグメントを、VDISKにおける、ストレージプールSPZ1のセグメントの割り当て開始位置に隣接するインデックスを開始位置として、インデックス(VDISK内インデックス)に1つとばしに一度に割り当てる(図12の符号P6参照)。   Further, the allocation unit 203 allocates a plurality of segments (five in the example shown in FIG. 12) of the storage pool SPZ1 to the index (index in the VDISK) in the VDISK at a time (see P5 in FIG. 12). . Similarly, the allocation unit 203 sets a plurality of segments (five in the example shown in FIG. 12) of the storage pool SPZ2 as index start points by using an index adjacent to the segment allocation start position of the storage pool SPZ1 in VDISK as a start position. (VDISK index) are assigned one at a time (see P6 in FIG. 12).

上述の如く、基本ノード4aのPU100−2や拡張ノード4bのPU100−3等が制御プログラムのエージェント用モジュールを実行することで、PU100bがエージェント210として機能し、仮想化部211としての機能が実現される。   As described above, the PU 100-2 of the basic node 4a, the PU 100-3 of the extended node 4b, and the like execute the agent module of the control program, so that the PU 100b functions as the agent 210 and the function as the virtualization unit 211 is realized. Is done.

仮想化部211は、SU30の各LUN31に対するI/Oアクセスを管理する。仮想化部211は、マネージャ200のセグメント管理部202からマップ情報を受け付けると、メモリ106上に展開する。   The virtualization unit 211 manages I / O access to each LUN 31 of the SU 30. When the virtualization unit 211 receives map information from the segment management unit 202 of the manager 200, the virtualization unit 211 develops it on the memory 106.

仮想化部211は、ホスト装置2からVDISKへのI/O要求を受信すると、マップ情報に従って論理アドレスから物理アドレスへの変換を行ない、SU30内のLUN31へI/Oを発行する。なお、この仮想化部211の処理は既知であり、その詳細な説明は省略する。   When the virtualization unit 211 receives an I / O request from the host apparatus 2 to the VDISK, the virtualization unit 211 performs conversion from a logical address to a physical address according to the map information, and issues an I / O to the LUN 31 in the SU 30. Note that the processing of the virtualization unit 211 is known, and detailed description thereof is omitted.

(B)動作
上述の如く構成された実施形態の一例としてのストレージシステム1における割当部203による事前割り当て処理を、図13に示すフローチャート(ステップA1〜A16)に従って説明する。
(B) Operation The pre-allocation process by the allocation unit 203 in the storage system 1 as an example of the embodiment configured as described above will be described according to the flowchart (steps A1 to A16) shown in FIG.

ステップA1において、割当部203は、LUN31の追加が行なわれたかを確認する。確認の結果、LUN31の追加があった場合には(ステップA1のYESルート参照)、ステップA2において、事前割り当てインデックスを全てリセットする。   In step A1, the assigning unit 203 confirms whether or not the LUN 31 has been added. If the LUN 31 is added as a result of the confirmation (see YES route in step A1), all the pre-assigned indexes are reset in step A2.

LUN31の追加がされていない場合には(ステップA1のNOルート参照)、ステップA3に移行する。ステップA3において、割当部203は、“空き容量+事前割り当て済容量”の総計に占める“事前割り当て済容量”の総計の割合が、所定値(LIMIT)未満であるかを確認する。すなわち、割当部203は、以下の条件を満たすか否かを確認する。   If the LUN 31 has not been added (see the NO route in step A1), the process proceeds to step A3. In step A3, the allocation unit 203 confirms whether the ratio of the total of “pre-allocated capacity” to the total of “free capacity + pre-allocated capacity” is less than a predetermined value (LIMIT). That is, the assigning unit 203 checks whether or not the following condition is satisfied.

(Σ事前割り当て済容量)/(Σ(空き容量+事前割り当て済容量))*100<LIMIT
“空き容量+事前割り当て済容量”の総計に占める“事前割り当て済容量”の総計の割合が、所定値(LIMIT)以上である場合には(ステップA3のNOルート)、ステップA13に移行し、割り当て処理を終了する。その後、ステップA16に移行する。
(Σpre-allocated capacity) / (Σ (free capacity + pre-allocated capacity)) * 100 <LIMIT
When the ratio of the total of “pre-allocated capacity” to the total of “free capacity + pre-allocated capacity” is equal to or greater than a predetermined value (LIMIT) (NO route of step A3), the process proceeds to step A13, The allocation process ends. Thereafter, the process proceeds to step A16.

“空き容量+事前割り当て済容量”の総計に占める“事前割り当て済容量”の総計の割合が、所定値(LIMIT)未満である場合には(ステップA3のYESルート参照)、ステップA4に移行する。   When the ratio of the total of “pre-allocated capacity” to the total of “free capacity + pre-allocated capacity” is less than a predetermined value (LIMIT) (see YES route in step A3), the process proceeds to step A4. .

ステップA4において、割当部203は、各LUN31について「空き容量−事前割り当て済容量」を算出し、その値が大きい順にLUN31のソートを行なう。   In step A4, the allocation unit 203 calculates “free capacity−pre-allocated capacity” for each LUN 31, and sorts the LUNs 31 in descending order of the value.

ステップA5において、割当部203は、全LUN31における空き容量の最大値と最小値との差dを閾値Fと比較する。すなわち、割当部203は、d≦Fであるかを確認する(ステップA5)。これにより、割当部203は、SU30の複数のLUN31間において平準化がされているかを判断する。   In step A <b> 5, the allocation unit 203 compares the difference d between the maximum value and the minimum value of the free capacity in all LUNs 31 with the threshold value F. That is, the assigning unit 203 confirms whether d ≦ F (step A5). Thereby, the allocating unit 203 determines whether leveling is performed between the plurality of LUNs 31 of the SU 30.

確認の結果、d≦Fである場合(ステップA5のYESルート参照)、すなわち、平準化がされている場合には、ステップA14に移行する。ステップA14において、割当部203は、全てのLUN31から1セグメントずつ1度に割り当てる。   As a result of the confirmation, if d ≦ F (see YES route in step A5), that is, if leveling is performed, the process proceeds to step A14. In step A14, the assigning unit 203 assigns one segment at a time from all the LUNs 31.

ステップA15において、割当部203は、メモリ106上のLUN情報304に、事前割り当て最大インデックスを設定する。すなわち、LUN情報304の更新を行なう。その後、処理はステップA16に移行する。   In step A <b> 15, the allocation unit 203 sets a pre-allocation maximum index in the LUN information 304 on the memory 106. That is, the LUN information 304 is updated. Thereafter, the process proceeds to step A16.

一方、ステップA5において、F>dである場合(ステップA5のNOルート参照)、すなわち、平準化がされていない場合には、ステップA6に移行する。   On the other hand, if F> d in step A5 (see NO route in step A5), that is, if leveling is not performed, the process proceeds to step A6.

ステップA6において、割当部203は、変数Nおよび変数iにそれぞれ“0”を設定することで初期化する。   In step A6, the allocation unit 203 initializes the variable N and the variable i by setting “0” respectively.

ここで変数iはソート後のLUN31のインデックスを示す。また、変数Nは、事前割り当てインデックスの設定数を示す。   Here, the variable i indicates the index of the LUN 31 after sorting. A variable N indicates the number of preset allocation indexes.

ステップA7では、ソートされた全LUN31に対して、ステップA11までの制御を、Nがαより大きくなるまで(N>αになるまで)繰り返し実施するループ処理を開始する。なお、αは、1回のソートで事前割り当てするセグメント数である。   In step A7, a loop process is started in which the control up to step A11 is repeatedly performed on all sorted LUNs 31 until N is greater than α (N> α). Note that α is the number of segments that are pre-allocated in one sort.

ステップA8では、事前割り当てインデックスの候補値(N)が、「事前割り当て最大インデックスa+ストライプ幅γ+削除を許容するLUN数β」以上であるかを確認する。   In Step A8, it is confirmed whether or not the candidate value (N) of the pre-assigned index is equal to or larger than “pre-assigned maximum index a + stripe width γ + number of LUNs β allowing deletion”.

確認の結果、事前割り当てインデックスの候補値(N)が、「事前割り当て最大インデックスa+ストライプ幅γ+削除を許容するLUN数β」以上である場合(ステップA8のYESルート参照)、ステップA9に移行する。   As a result of the confirmation, if the candidate value (N) of the pre-allocation index is equal to or greater than “pre-allocation maximum index a + stripe width γ + number of LUNs β allowing deletion” (see YES route in step A8), the process proceeds to step A9. .

ステップA9において、割当部203は、事前割り当てインデックスの候補値(N)を事前割り当てインデックスとして設定する(割り当てる)。   In step A9, the assigning unit 203 sets (assigns) the preassigned index candidate value (N) as the preassigned index.

ステップA10において、変数Nをインクリメント(N=N+1)し、ステップA11において、変数iをインクリメント(i=i+1)する。   In step A10, the variable N is incremented (N = N + 1), and in step A11, the variable i is incremented (i = i + 1).

なお、ステップA12では、ステップA7に対応するループ端処理が実施される。ここで、全LUN31についての処理が完了すると、制御がステップA16に進み、処理をスリープした後、ステップA1に戻る。   In step A12, a loop end process corresponding to step A7 is performed. Here, when the processing for all the LUNs 31 is completed, the control proceeds to step A16, and the processing returns to step A1 after sleeping.

次に、実施形態の一例としてのストレージシステム1における割当部203の実割り当て処理を、図14に示すフローチャート(ステップB1〜B4)に従って説明する。   Next, real allocation processing of the allocation unit 203 in the storage system 1 as an example of the embodiment will be described according to the flowchart (steps B1 to B4) illustrated in FIG.

ステップB1において、割当部203は、事前割り当てが行なわれた複数のセグメントを1つのSQL(1SQL)でVDISKに割り当て、データベース201の更新を行なう。すなわち、割当部203は、1SQLで、VDISK内に事前割り当てインデックスが設定されたインデックスを割り当て、データベース201のセグメント情報301を更新する。   In step B1, the assigning unit 203 assigns a plurality of pre-assigned segments to the VDISK with one SQL (1SQL), and updates the database 201. That is, the allocation unit 203 allocates an index in which a pre-allocation index is set in VDISK in 1 SQL, and updates the segment information 301 of the database 201.

すなわち、割当部203は、セグメント情報301において、割り当てを行なったセグメントについてのVDISK名,VDISK内のインデックスを割り当てたVDISKの情報を用いて更新し、また、事前割り当てインデックスを削除する。   That is, the allocation unit 203 updates the segment information 301 by using the VDISK name and the information of the VDISK to which the index in the VDISK is allocated for the allocated segment, and deletes the pre-allocation index.

ステップB2において、割当部203は、VDISKに割り当てたセグメントについての情報を収集する。すなわち、割当部203は、データベース201(セグメント情報301)を参照して、割り当てたセグメントについてのLUN名や割り当てたセグメントの数(セグメント数)を取得する。   In step B2, the assigning unit 203 collects information about the segments assigned to the VDISK. That is, the allocating unit 203 refers to the database 201 (segment information 301), and acquires the LUN name for the allocated segment and the number of allocated segments (number of segments).

ステップB3において、割当部203は、データベース201から読み出したLUN情報302に基づき、LUN情報304をメモリ106に格納する。また、割当部203は、割り当てたセグメントについて、メモリ106上のLUN情報304を更新する。すなわち、割当部203は、LUN情報304において、空きセグメント数および事前割り当てセグメント数から、割り当てを行なったセグメント数をそれぞれ減算することで、LUN情報304を更新する。   In step B <b> 3, the assignment unit 203 stores the LUN information 304 in the memory 106 based on the LUN information 302 read from the database 201. Further, the allocation unit 203 updates the LUN information 304 on the memory 106 for the allocated segment. That is, the allocation unit 203 updates the LUN information 304 by subtracting the number of allocated segments from the number of free segments and the number of pre-allocated segments in the LUN information 304, respectively.

ステップB4において、割当部203は、更新したメモリ上のLUN情報304をデータベース201に反映させる。すなわち、データベース201におけるLUN情報302を、更新したメモリ上のLUN情報304において更新した情報を用いて更新する。その後、処理を終了する。   In step B4, the allocation unit 203 reflects the updated LUN information 304 in the memory on the database 201. That is, the LUN information 302 in the database 201 is updated using the information updated in the LUN information 304 in the updated memory. Thereafter, the process ends.

(C)効果
このように、実施形態の一例としてのストレージシステム1によれば、割当部203が、LUN31のセグメントに対して、事前割り当てを行ない、事前割り当てインデックスを予め設定する。
(C) Effect As described above, according to the storage system 1 as an example of the embodiment, the allocating unit 203 performs pre-allocation on the segment of the LUN 31 and sets a pre-allocation index in advance.

割当部203は、VDISKの作成要求を受け付けると、事前割り当てインデックスが設定されたセグメントを選択してVDISKに割り当てる。これにより、VDISKの作成時において、VDISK割り当てるセグメントの選択を短時間で行なうことができ、VDISKの作成に要する時間を短縮することができる。   When the allocation unit 203 receives a VDISK creation request, the allocation unit 203 selects a segment in which a pre-allocation index is set and allocates the segment to the VDISK. As a result, when the VDISK is created, a segment to be assigned to the VDISK can be selected in a short time, and the time required for creating the VDISK can be shortened.

また、割当部203が、セグメントの事前割り当てを行なうに際して、LUN31が削除されることを想定し、ストライプ幅より削除されるLUN数(例えばβとする)分多くセグメントを割り当てる。すなわち、LUN31のセグメントに対して、「事前割り当て最大インデックスa+ストライプ幅γ+削除を許容するLUN数β」以上となる事前割り当てインデックスを設定する。ここで、事前割り当てインデックスにストライプ幅γを含めることで、ストライピングにかかるストレージポリシー違反を回避することができる。また、事前割り当てインデックスに削除を許容するLUN数βを含めることで、LUN31が削除された場合であっても、ストライピングにかかるストレージポリシーに違反することがない。   In addition, when the allocation unit 203 performs segment pre-allocation, it is assumed that the LUN 31 is deleted, and allocates as many segments as the number of LUNs to be deleted (for example, β) from the stripe width. That is, a pre-allocation index that is equal to or greater than “pre-allocation maximum index a + stripe width γ + number of LUNs β that are allowed to be deleted” is set for the LUN 31 segment. Here, by including the stripe width γ in the pre-assigned index, it is possible to avoid a storage policy violation related to striping. In addition, by including the number of LUNs β that are allowed to be deleted in the pre-assigned index, even if the LUN 31 is deleted, the storage policy related to striping is not violated.

また、割当部203は、複数のLUN31が平準化されていない場合には、複数のLUN31を空き容量の大きいものから順にソートを行なった後、1回のソートで1度に事前割り当てるセグメント数を少なくする。これにより同じLUN31が選択される頻度をあげ、早く平準化させることができる。   In addition, when the plurality of LUNs 31 are not leveled, the allocating unit 203 sorts the plurality of LUNs 31 in descending order of the free capacity, and then determines the number of segments to be pre-allocated at a time in one sort. Reduce. As a result, the frequency with which the same LUN 31 is selected can be increased and leveled quickly.

(D)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
(D) Others The disclosed technique is not limited to the above-described embodiment, and various modifications can be made without departing from the spirit of the present embodiment. Each structure and each process of this embodiment can be selected as needed, or may be combined suitably.

例えば、上述した実施形態においては、割当部203が、LUN31の追加が行なわれた場合に、事前割り当てを行なうが、これに限定されるものではない。割当部203は、事前割り当てによる事前割り当てインデックスの決め直しが実割り当ての妨げとならない範囲で、LUN削除,VDISK作成およびVDISK削除の少なくともいずれかが行なわれたタイミングで事前割り当てを行なってもよい。   For example, in the above-described embodiment, the allocation unit 203 performs prior allocation when the LUN 31 is added, but the present invention is not limited to this. The allocating unit 203 may perform the pre-allocation at a timing when at least one of LUN deletion, VDISK creation, and VDISK deletion is performed within a range in which re-determination of the pre-allocation index by pre-allocation does not hinder actual allocation.

また、上述した実施形態では、割当部203が、事前割り当てにおいて、空きセグメントの一部に対してシーケンシャルな番号を事前割り当てインデックスとして設定しているが、これに限定されるものではない。割当部203は、シーケンシャルな番号に代えて、単に、事前割り当てされたセグメントであることを示す識別子を設定してもよい。割当部203は、VDISKの作成要求を受け付けると、このような事前割り当てされたセグメントであることを示す識別子が設定された複数のセグメントを一括でVDISKに割り当てることで、VDISKの作成に要する時間を短縮することができる。   In the above-described embodiment, the allocation unit 203 sets a sequential number as a pre-allocation index for a part of empty segments in the pre-allocation. However, the present invention is not limited to this. The allocating unit 203 may simply set an identifier indicating a pre-allocated segment instead of the sequential number. When the allocation unit 203 receives the VDISK creation request, the allocation unit 203 allocates a plurality of segments in which identifiers indicating such pre-allocated segments are set to the VDISK at a time, thereby reducing the time required for creating the VDISK. It can be shortened.

また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。   Further, according to the above-described disclosure, this embodiment can be implemented and manufactured by those skilled in the art.

(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(E) Additional remarks The following additional remarks are disclosed regarding the above embodiment.

(付記1)
仮想記憶装置への単位記憶領域の割り当て要求がされる前に、複数の記憶領域にそれぞれ備えられる単位記憶領域のうち、未使用単位記憶領域の少なくとも一部に予約情報を設定する設定部と、
前記割り当て要求を受け付けると、前記予約情報が設定された前記単位記憶領域を仮想記憶装置に割り当てる割当部と
を備える、情報処理装置。
(Appendix 1)
A setting unit that sets reservation information in at least a part of an unused unit storage area among unit storage areas provided in each of a plurality of storage areas before a request to allocate a unit storage area to a virtual storage device;
An information processing apparatus comprising: an allocation unit that allocates the unit storage area in which the reservation information is set to a virtual storage device when receiving the allocation request.

(付記2)
前記予約情報が前記仮想記憶装置に割り当てられる順序を示し、
前記設定部が、前記複数の記憶領域が平準化されていない場合には、同一記憶領域に先に設定されている予約情報の最大値と、データ分散数と、記憶領域の削除許容数との合計以上の値を前記予約情報として設定する
ことを特徴とする、付記1記載の情報処理装置。
(Appendix 2)
Indicating the order in which the reservation information is assigned to the virtual storage device;
If the plurality of storage areas are not leveled, the setting unit includes a maximum value of reservation information previously set in the same storage area, a data distribution number, and a deletion allowable number of storage areas. The information processing apparatus according to appendix 1, wherein a value equal to or greater than a total is set as the reservation information.

(付記3)
前記予約情報が前記仮想記憶装置に割り当てられる順序を示し、
前記設定部が、前記複数の記憶領域が平準化されている場合には、前記複数の記憶領域から割り当てを行なう単位記憶領域を均等に選択する
ことを特徴とする、付記1または2記載の情報処理装置。
(Appendix 3)
Indicating the order in which the reservation information is assigned to the virtual storage device;
The information according to appendix 1 or 2, wherein, when the plurality of storage areas are leveled, the setting unit uniformly selects unit storage areas to be allocated from the plurality of storage areas. Processing equipment.

(付記4)
前記設定部が、記憶領域の追加が行なわれた場合に前記予約情報の設定を行なう
ことを特徴とする、付記1〜3のいずれか1項に記載の情報処理装置。
(Appendix 4)
The information processing apparatus according to any one of appendices 1 to 3, wherein the setting unit sets the reservation information when a storage area is added.

(付記5)
前記割当部が、前記複数の記憶領域を管理する記憶領域管理情報に、割り当てを行なう前記複数の記憶領域の情報を一括で登録する
ことを特徴とする、付記1〜4のいずれか1項に記載の情報処理装置。
(Appendix 5)
In any one of appendices 1 to 4, wherein the allocating unit collectively registers the information of the plurality of storage areas to be allocated in the storage area management information for managing the plurality of storage areas. The information processing apparatus described.

(付記6)
仮想記憶装置への単位記憶領域の割り当て要求がされる前に、複数の記憶領域にそれぞれ備えられる単位記憶領域のうち、未使用単位記憶領域の少なくとも一部に予約情報を設定し、
前記割り当て要求を受け付けると、前記予約情報が設定された前記単位記憶領域を仮想記憶装置に割り当てる
処理をコンピュータに実行させる、仮想化プログラム。
(Appendix 6)
Before the unit storage area allocation request to the virtual storage device is made, set the reservation information in at least a part of the unused unit storage area among the unit storage areas respectively provided in the plurality of storage areas,
A virtualization program that, upon receiving the allocation request, causes a computer to execute a process of allocating the unit storage area in which the reservation information is set to a virtual storage device.

(付記7)
前記予約情報が前記仮想記憶装置に割り当てられる順序を示し、
前記複数の記憶領域が平準化されていない場合には、同一記憶領域に先に設定されている予約情報の最大値と、データ分散数と、記憶領域の削除許容数との合計以上の値を前記予約情報として設定する
処理を前記コンピュータに実行させる、付記6記載の仮想化プログラム。
(Appendix 7)
Indicating the order in which the reservation information is assigned to the virtual storage device;
When the plurality of storage areas are not leveled, a value that is equal to or greater than the sum of the maximum value of the reservation information set in advance in the same storage area, the number of data distributions, and the allowable number of deletions in the storage area is set. The virtualization program according to appendix 6, which causes the computer to execute processing to be set as the reservation information.

(付記8)
前記予約情報が前記仮想記憶装置に割り当てられる順序を示し、
前記複数の記憶領域が平準化されている場合には、前記複数の記憶領域から割り当てを行なう単位記憶領域を均等に選択する
処理を前記コンピュータに実行させる、付記6または7記載の仮想化プログラム。
(Appendix 8)
Indicating the order in which the reservation information is assigned to the virtual storage device;
The virtualization program according to appendix 6 or 7, wherein when the plurality of storage areas are leveled, the computer executes a process of equally selecting unit storage areas to be allocated from the plurality of storage areas.

(付記9)
記憶領域の追加が行なわれた場合に前記予約情報の設定を行なう
処理を前記コンピュータに実行させる、付記6〜8のいずれか1項に記載の仮想化プログラム。
(Appendix 9)
The virtualization program according to any one of appendices 6 to 8, which causes the computer to execute a process of setting the reservation information when a storage area is added.

(付記10)
前記複数の記憶領域を管理する記憶領域管理情報に、割り当てを行なう前記複数の記憶領域の情報を一括で登録する
処理を前記コンピュータに実行させる、付記6〜9のいずれか1項に記載の仮想化プログラム。
(Appendix 10)
The virtual according to any one of appendices 6 to 9, which causes the computer to execute a process of collectively registering the information of the plurality of storage areas to be assigned to the storage area management information for managing the plurality of storage areas. Program.

(付記11)
仮想記憶装置への単位記憶領域の割り当て要求がされる前に、複数の記憶領域にそれぞれ備えられる単位記憶領域のうち、未使用単位記憶領域の少なくとも一部に予約情報を設定する処理と、
前記割り当て要求を受け付けると、前記予約情報が設定された前記単位記憶領域を仮想記憶装置に割り当てる処理と
を備える、仮想化方法。
(Appendix 11)
A process of setting reservation information in at least a part of an unused unit storage area among unit storage areas respectively provided in a plurality of storage areas before a request to allocate a unit storage area to a virtual storage device is performed;
A virtualization method comprising: a process of allocating the unit storage area in which the reservation information is set to a virtual storage device when receiving the allocation request.

(付記12)
前記予約情報が前記仮想記憶装置に割り当てられる順序を示し、
前記複数の記憶領域が平準化されていない場合には、同一記憶領域に先に設定されている予約情報の最大値と、データ分散数と、記憶領域の削除許容数との合計以上の値を前記予約情報として設定する処理
を備える、付記11記載の仮想化方法。
(Appendix 12)
Indicating the order in which the reservation information is assigned to the virtual storage device;
When the plurality of storage areas are not leveled, a value that is equal to or greater than the sum of the maximum value of the reservation information set in advance in the same storage area, the number of data distributions, and the allowable number of deletions in the storage area The virtualization method according to appendix 11, comprising a process of setting as the reservation information.

(付記13)
前記予約情報が前記仮想記憶装置に割り当てられる順序を示し、
前記複数の記憶領域が平準化されている場合には、前記複数の記憶領域から割り当てを行なう単位記憶領域を均等に選択する処理
を備える、付記11または12記載の仮想化方法。
(Appendix 13)
Indicating the order in which the reservation information is assigned to the virtual storage device;
The virtualization method according to appendix 11 or 12, further comprising a process of equally selecting unit storage areas to be allocated from the plurality of storage areas when the plurality of storage areas are leveled.

(付記14)
記憶領域の追加が行なわれた場合に前記予約情報の設定を行なう処理
を備える、付記11〜13のいずれか1項に記載の仮想化方法。
(Appendix 14)
The virtualization method according to any one of appendices 11 to 13, further comprising a process of setting the reservation information when a storage area is added.

(付記15)
前記複数の記憶領域を管理する記憶領域管理情報に、割り当てを行なう前記複数の記憶領域の情報を一括で登録する処理
を備える、付記11〜14のいずれか1項に記載の仮想化方法。
(Appendix 15)
15. The virtualization method according to any one of appendices 11 to 14, further comprising a process of collectively registering information of the plurality of storage areas to be allocated in storage area management information for managing the plurality of storage areas.

1 ストレージシステム
2 ホスト装置
3 管理端末
30 SU
31 LUN
100,100a,100b PU(情報処理装置)
101,102 CA
103 DA
104 PCIeインタフェース
105 CPU(コンピュータ)
106 メモリ
107 フラッシュメモリ
108 IOC
200 マネージャ
201 データベース
202 セグメント管理部
203 割当部
210 エージェント
211 仮想化部
301 セグメント情報
302,304 LUN情報
1 Storage System 2 Host Device 3 Management Terminal 30 SU
31 LUN
100, 100a, 100b PU (information processing device)
101,102 CA
103 DA
104 PCIe interface 105 CPU (computer)
106 memory 107 flash memory 108 IOC
200 Manager 201 Database 202 Segment management unit 203 Allocation unit 210 Agent 211 Virtualization unit 301 Segment information 302, 304 LUN information

Claims (7)

仮想記憶装置への単位記憶領域の割り当て要求がされる前に、複数の記憶領域にそれぞれ備えられる単位記憶領域のうち、未使用単位記憶領域の少なくとも一部に予約情報を設定する設定部と、
前記割り当て要求を受け付けると、前記予約情報が設定された前記単位記憶領域を仮想記憶装置に割り当てる割当部と
を備える、情報処理装置。
A setting unit that sets reservation information in at least a part of an unused unit storage area among unit storage areas provided in each of a plurality of storage areas before a request to allocate a unit storage area to a virtual storage device;
An information processing apparatus comprising: an allocation unit that allocates the unit storage area in which the reservation information is set to a virtual storage device when receiving the allocation request.
前記予約情報が前記仮想記憶装置に割り当てられる順序を示し、
前記設定部が、前記複数の記憶領域が平準化されていない場合には、同一記憶領域に先に設定されている予約情報の最大値と、データ分散数と、記憶領域の削除許容数との合計以上の値を前記予約情報として設定する
ことを特徴とする、請求項1記載の情報処理装置。
Indicating the order in which the reservation information is assigned to the virtual storage device;
If the plurality of storage areas are not leveled, the setting unit includes a maximum value of reservation information previously set in the same storage area, a data distribution number, and a deletion allowable number of storage areas. The information processing apparatus according to claim 1, wherein a value greater than a total is set as the reservation information.
前記予約情報が前記仮想記憶装置に割り当てられる順序を示し、
前記設定部が、前記複数の記憶領域が平準化されている場合には、前記複数の記憶領域から割り当てを行なう単位記憶領域を均等に選択する
ことを特徴とする、請求項1または2記載の情報処理装置。
Indicating the order in which the reservation information is assigned to the virtual storage device;
3. The unit according to claim 1, wherein when the plurality of storage areas are leveled, the setting unit equally selects unit storage areas to be allocated from the plurality of storage areas. Information processing device.
前記設定部が、記憶領域の追加が行なわれた場合に前記予約情報の設定を行なう
ことを特徴とする、請求項1〜3のいずれか1項に記載の情報処理装置。
The information processing apparatus according to claim 1, wherein the setting unit sets the reservation information when a storage area is added.
前記割当部が、前記複数の記憶領域を管理する記憶領域管理情報に、割り当てを行なう前記複数の記憶領域の情報を一括で登録する
ことを特徴とする、請求項1〜4のいずれか1項に記載の情報処理装置。
5. The information processing apparatus according to claim 1, wherein the allocating unit collectively registers information of the plurality of storage areas to be allocated in storage area management information for managing the plurality of storage areas. The information processing apparatus described in 1.
仮想記憶装置への単位記憶領域の割り当て要求がされる前に、複数の記憶領域にそれぞれ備えられる単位記憶領域のうち、未使用単位記憶領域の少なくとも一部に予約情報を設定し、
前記割り当て要求を受け付けると、前記予約情報が設定された前記単位記憶領域を仮想記憶装置に割り当てる
処理をコンピュータに実行させる、仮想化プログラム。
Before the unit storage area allocation request to the virtual storage device is made, set the reservation information in at least a part of the unused unit storage area among the unit storage areas respectively provided in the plurality of storage areas,
A virtualization program that, upon receiving the allocation request, causes a computer to execute a process of allocating the unit storage area in which the reservation information is set to a virtual storage device.
仮想記憶装置への単位記憶領域の割り当て要求がされる前に、複数の記憶領域にそれぞれ備えられる単位記憶領域のうち、未使用単位記憶領域の少なくとも一部に予約情報を設定する処理と、
前記割り当て要求を受け付けると、前記予約情報が設定された前記単位記憶領域を仮想記憶装置に割り当てる処理と
を備える、仮想化方法。
A process of setting reservation information in at least a part of an unused unit storage area among unit storage areas respectively provided in a plurality of storage areas before a request to allocate a unit storage area to a virtual storage device is performed;
A virtualization method comprising: a process of allocating the unit storage area in which the reservation information is set to a virtual storage device when receiving the allocation request.
JP2017064102A 2017-03-29 2017-03-29 Information processing apparatus, virtualization program, and virtualization method Pending JP2018169637A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017064102A JP2018169637A (en) 2017-03-29 2017-03-29 Information processing apparatus, virtualization program, and virtualization method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017064102A JP2018169637A (en) 2017-03-29 2017-03-29 Information processing apparatus, virtualization program, and virtualization method

Publications (1)

Publication Number Publication Date
JP2018169637A true JP2018169637A (en) 2018-11-01

Family

ID=64020274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017064102A Pending JP2018169637A (en) 2017-03-29 2017-03-29 Information processing apparatus, virtualization program, and virtualization method

Country Status (1)

Country Link
JP (1) JP2018169637A (en)

Similar Documents

Publication Publication Date Title
US9244616B2 (en) Management system and management method of storage system that performs control based on required performance assigned to virtual volume
US10853139B2 (en) Dynamic workload management based on predictive modeling and recommendation engine for storage systems
JP5303066B2 (en) Method and storage device for limiting total capacity of virtual volume associated with pool
US9696931B2 (en) Region-based storage for volume data and metadata
JP5439581B2 (en) Storage system, storage apparatus, and storage system optimization method for storage system
JP5406363B2 (en) Storage control device and storage control method for dynamically allocating part of pool area as data storage area
US8612704B2 (en) Storage system with virtual areas and method for managing storage system
JP5706531B2 (en) Computer system and information management method
JP6260407B2 (en) Storage management device, performance adjustment method, and performance adjustment program
US20130311740A1 (en) Method of data migration and information storage system
US20100125715A1 (en) Storage System and Operation Method Thereof
US20130138908A1 (en) Storage system and pool capacity scale-down control method
US9250813B2 (en) Storage system coupled to a host computer and a management device
JP2009238114A (en) Storage management method, storage management program, storage management apparatus, and storage management system
US20170351434A1 (en) Method and apparatus of shared storage between multiple cloud environments
US20170212705A1 (en) Dynamic Weighting for Distributed Parity Device Layouts
US20180307426A1 (en) Storage apparatus and storage control method
US20170262220A1 (en) Storage control device, method of controlling data migration and non-transitory computer-readable storage medium
JP5730446B1 (en) Hierarchical storage system with trial area, storage controller and program
US9239681B2 (en) Storage subsystem and method for controlling the storage subsystem
US20160364400A1 (en) Management server which outputs file relocation policy, and storage system
JP2018169637A (en) Information processing apparatus, virtualization program, and virtualization method
JP6035363B2 (en) Management computer, computer system, and management method
JP6039149B2 (en) Storage apparatus and control method thereof
US9223510B2 (en) Optimizing storage utilization by modifying a logical volume offset