WO2011058821A1 - ストレージシステム、ストレージプログラム更新方法、及びプログラム - Google Patents

ストレージシステム、ストレージプログラム更新方法、及びプログラム Download PDF

Info

Publication number
WO2011058821A1
WO2011058821A1 PCT/JP2010/066283 JP2010066283W WO2011058821A1 WO 2011058821 A1 WO2011058821 A1 WO 2011058821A1 JP 2010066283 W JP2010066283 W JP 2010066283W WO 2011058821 A1 WO2011058821 A1 WO 2011058821A1
Authority
WO
WIPO (PCT)
Prior art keywords
execution unit
storage
virtual machine
old
storage execution
Prior art date
Application number
PCT/JP2010/066283
Other languages
English (en)
French (fr)
Inventor
賀洋 長谷部
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Publication of WO2011058821A1 publication Critical patent/WO2011058821A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Definitions

  • the present invention relates to a case where a storage program operating in an execution environment on a virtual machine virtualized on physical hardware such as a server writes or reads data in a storage medium in accordance with a command from a host computer.
  • the present invention relates to a technique for updating a storage program in a storage system that performs redundancy control when there are a plurality of storage media and performs cache control to fill a performance difference between the storage media.
  • a storage system and a host computer that inputs / outputs data to / from the storage system are mounted in separate boxes, and have physical entities for storage using FC (Fibre Channel), iSCSI, or the like. It was connected with.
  • FC Fibre Channel
  • iSCSI iSCSI
  • servers and the like are gaining sufficient ability to execute single applications due to high performance of single processors and multiprocessor / many core.
  • the virtual machines virtualized by the above-described virtualization technology can communicate with each other between the virtual machines, and can communicate with each other by being connected to the virtual machine and a computer outside the computer.
  • the storage system executes the storage program if the control data structures in the memory used by the storage program before and after the update match. Pause, update the storage medium in which the storage program is stored, and then restart the storage program. Using the control data before the update, you can continue to operate the state before the update. It is.
  • control data structures used by the storage program before and after the update do not match (for example, when the storage length of certain control data is changed, new control data is added, or control data is deleted). If the addresses accessed by the storage program before and after the update are different, the storage program after the update will access the different control data when referring to the control data before the update. There is a problem that continued execution is impaired.
  • an object of the present invention is to provide a storage system, a storage program update method, and a program that can solve the above-described problems and can update a storage program without interruption.
  • the storage system of the present invention A storage medium; Cache memory for writing or reading data to or from the storage medium in response to a command from a host computer, and storing cache data associated with a logical address of an area on the storage medium in which the data is stored
  • a virtual machine monitor that virtually generates a virtual machine to which The virtual machine monitor is Start the old storage program, virtually create an old storage execution unit containing the old storage program as a virtual machine, When the old storage program is updated to the new storage program, the new storage program is started, and a new storage execution unit including the new storage program is virtually generated as a virtual machine, and the old storage execution unit and the new storage program are generated. Make the storage execution unit coexist.
  • the storage program update method of the present invention comprises: A storage program update method by a storage system, The storage system A storage medium; Cache memory for writing or reading data to or from the storage medium in response to a command from a host computer, and storing cache data associated with a logical address of an area on the storage medium in which the data is stored And a virtual machine monitor that virtually generates a virtual machine to which The virtual machine monitor starts an old storage program and virtually generates an old storage execution unit including the old storage program as a virtual machine; When the virtual machine monitor updates the old storage program to the new storage program, the virtual machine monitor starts the new storage program, virtually creates a new storage execution unit including the new storage program as a virtual machine, and And having the storage execution unit and the new storage execution unit coexist.
  • the program of the present invention A storage medium; Cache memory for writing or reading data to or from the storage medium in response to a command from a host computer, and storing cache data associated with a logical address of an area on the storage medium in which the data is stored
  • a storage system comprising a virtual machine monitor that virtually generates a virtual machine to which The virtual machine monitor starts an old storage program and virtually creates an old storage execution unit including the old storage program as a virtual machine; When the virtual machine monitor updates the old storage program to the new storage program, the virtual machine monitor starts the new storage program, virtually creates a new storage execution unit including the new storage program as a virtual machine, and And causing the storage execution unit and the new storage execution unit to coexist.
  • an old storage execution unit including an old storage program and a new storage execution unit including a new storage program are made to coexist using a virtualization technology based on a virtual machine monitor. .
  • the storage program can be updated without stopping by coexisting the old storage program and the new storage program before and after the update.
  • the cache data can be taken over between the old storage program and the new storage program, the continuous execution of the storage program due to the different addresses accessed by the old storage program and the new storage program is impaired. This can also be avoided.
  • FIG. 1 is a block diagram showing a configuration of a storage system according to an embodiment of the present invention. It is a figure which shows the hardware constitutions which implement
  • FIG. 2 is a diagram showing a data structure of cache data managed by the storage system shown in FIG. 1.
  • the storage system of the present embodiment includes an old storage execution unit 101, a new storage execution unit 102, a takeover instruction control unit 103, and a storage medium 110.
  • the old storage execution unit 101 also has a takeover transfer control unit 105 and a cache memory 106.
  • the new storage execution unit 102 includes a takeover reception control unit 107 and a cache memory 109.
  • the storage medium 110 includes one or more of a magnetic disk device, an optical disk device, a silicon disk, a flash memory, and the like.
  • the old storage execution unit 101 and the new storage execution unit 102 are virtually generated as virtual machines on the server by the virtual machine monitor 304 (see FIG. 3), and are connected to the host computer 201, respectively.
  • the takeover instruction control unit 103 instructs the virtual machine monitor 304 to start the newly updated storage program, thereby starting the new storage execution unit 102.
  • the takeover instruction control unit 103 sends the command transmission destination from the host computer 201 to the virtual machine monitor 304 from the old storage execution unit 101 to the new storage execution unit 102. And the new storage execution unit 102 and the old storage execution unit 101 are instructed to start the takeover process of the cache data of the new storage execution unit 102.
  • the takeover reception control unit 107 of the new storage execution unit 102 receives an instruction to start a takeover process from the takeover instruction control unit 103, every time a command is received from the host computer 201, the takeover reception control unit 107 of the storage medium 110 specified by the command is stored. An inquiry is made as to whether the cache data linked to the logical address exists in the old storage execution unit 101.
  • the takeover giving control unit 105 of the old storage execution unit 101 separates the area on the cache memory 106 including the cache data, and the cache data
  • the virtual machine monitor 304 is notified of the fact that the data is to be transferred to the new storage execution unit 102 and the logical address of the storage medium 110 to which the cache data is linked. Further, the takeover giving control unit 105 notifies the takeover reception control unit 107 that there is cache data for which an inquiry has been made.
  • the takeover reception control unit 107 When the takeover reception control unit 107 receives a notification from the takeover giving control unit 105 that cache data exists, the takeover reception control unit 107 takes over the cache data of the old storage execution unit 101 via the virtual machine monitor 304.
  • the takeover giving control unit 105 when the takeover giving control unit 105 receives an instruction to start the takeover process from the takeover instruction control unit 103, the takeover giving control unit 105 stores the cache data stored in the cache memory 106 managed by the old storage execution unit 101. If the content is a read cache, it is discarded, and if it is a write cache, an operation of writing to the storage medium 110 is performed, and the area (cache area) where the cache data is stored in the cache memory 106 is discarded.
  • the takeover giving control unit 105 notifies the takeover instruction control unit 103 that the takeover has been completed, and the takeover instruction control unit 103 stops the old storage execution unit 101 and the old storage
  • the virtual machine monitor 304 is instructed to release the resources used for starting the execution unit 101.
  • the virtual machine monitor 304 notifies the new storage execution unit 102 that the old storage execution unit 101 has been stopped. Thereafter, the new storage execution unit 102 stops the inquiry to the old storage execution unit 101 and performs normal control. Migrate to
  • the above takeover reception control unit 107 exists in the old storage execution unit 101 as the takeover reception control unit 104 because of the storage program structure. Similarly, the takeover transfer control unit 105 also transfers to the new storage execution unit 102 as a takeover transfer control unit. 108 exists. As a result, the storage program can be continuously updated.
  • FIG. 2 shows a hardware configuration for realizing the storage system shown in FIG.
  • the takeover reception control unit 104 and the takeover giving control unit 105 are executed by the CPU 102 in FIG. 2, and the cache memory 106 exists in the area of the memory 203 in FIG.
  • the takeover reception control unit 107 and the takeover giving control unit 108 are executed by the CPU 102 in FIG. 2
  • the cache memory 109 exists in the area of the memory 203 in FIG. 2.
  • the virtual machine monitor 304 (see FIG. 3) is present in the area of the memory 203 in FIG.
  • the CPU 102 is shown as a single object. However, there may be a plurality of CPUs, and each control unit may exist on the same CPU, or may exist on different CPUs.
  • the old storage control unit 101 and the new storage control unit 102 in FIG. 1 are managed by the virtual machine monitor 304 as if a plurality of virtual servers are operating.
  • the cache memories 106 and 109 in FIG. 1 are also managed as independent memory spaces by the virtual machine monitor 304.
  • FIG. 3 shows a software layer for realizing the storage system shown in FIG.
  • a plurality of execution programs are running on the virtual machine monitor 304.
  • the cache memory 106 includes a cache memory 106 and an old storage program 301, and the cache memory 106 is allocated as a data storage area from the virtual machine monitor 304 when the program is started.
  • the new storage execution unit 102 in FIG. 1 includes a cache memory 109 and a new storage program 302, and the cache memory 109 is allocated as a data storage area from the virtual machine monitor 304 when the program is started.
  • the application program 303 other than the storage program is also managed by the virtual machine monitor 304.
  • the application program 303 includes, for example, management software including the takeover instruction control 103 shown in FIG. 1 and a database for accessing the storage, and these accesses are performed via the virtual machine monitor 304.
  • the virtual machine monitor 304 also has a function of connecting to the host computer 201 and a function of distributing commands from the host computer 201 to the respective virtual machines.
  • the virtual machine monitor 304 has a storage medium 110 that is the final storage destination of storage under the subordinate, and allows access from each storage program.
  • the old storage execution unit 101 If the received command is a write command, the old storage execution unit 101 accumulates the write data in the temporary cache memory 106, and then notifies the host computer 201 that the execution of the write command has been completed. Execution ends (write operation).
  • the old storage execution unit 101 reads data from the area on the storage medium 110 indicated by the logical address of the storage medium 110 specified by the read command, and stores the data in the cache memory After the data is stored in 106, the data is transferred to the host computer 201 to notify that the execution of the read command is completed, and the execution of the read command is completed (read operation).
  • the data structure of the data at the time of the write operation described above is the cache data 403 that is the substance of the data, the tag 401 for managing the cache data 403, and the area where the cache data 403 on the cache memory 106 is stored. And a pointer 402 indicating an address.
  • the tag 401 further includes a Dirty Flag 404 indicating whether write cache data is stored or read cache data, and a logical address 405 indicating an area on the storage medium 110 to which the cache data is associated. And consist of
  • Dirty Flag 404 sets 1 if the content of the cache data is a write command, and sets it to 0 if the content is a read command.
  • the storage program has a plurality of data structures including the tag 401, the pointer 402, and the cache data 403.
  • the old storage execution unit 101 refers to the pointer 402 and uses the contents of the cache data 403 stored in the area on the cache memory 106 indicated by the pointer 402 as the host.
  • the data is transferred to the computer 201 to notify that the execution of the read command is finished, and the execution of the read command is finished.
  • the old storage execution unit 101 reads the data from the area on the storage medium 110 indicated by the logical address specified by the read command, and no cache data is registered.
  • the data is stored in the cache data 403, the Dirty Flag 404 is set to 0, and the logical address specified by the read command is stored in the logical address 405.
  • the pointer 402 may be linked in advance to the start address of the cache data 403, or from the free area on the cache memory 106 when securing the tag 401 and the pointer 402 to which no cache data is registered.
  • the area of the cache data 403 may be cut out and used as the address of the area.
  • the old storage execution unit 101 refers to the pointer 402, stores the write data as cache data 403 in the area on the cache memory 106 indicated by the pointer 402, and the tag
  • the Dirty Flag on 401 is set to 1 to notify the host computer 201 that the execution of the write command has ended, and the execution of the write command is ended.
  • the old storage execution unit 101 newly secures a set of the tag 401, the pointer 402, and the cache data 403, and uses the write data from the host computer 201 as the cache data.
  • set Dirty Flag 404 of tag 401 1, store the logical address specified by the write command in logical address 405, and then notify host computer 201 that the execution of the write command has been completed. Then, the execution of the write command is finished.
  • the new storage execution unit 102 and the old storage execution unit 101 can communicate with each other through the virtual machine monitor 304, and the communication path is also connected to the takeover instruction control unit 103.
  • the communication path may be a virtual network provided by the virtual machine monitor 304 or the like.
  • the takeover instruction control unit 103 When the takeover instruction control unit 103 confirms that the new storage execution unit 102 is activated, the takeover instruction control unit 103 issues an instruction to start the takeover process to the new storage execution unit 102 and the old storage execution unit 101, and the host computer 201 connects to the old storage execution unit 104.
  • the virtual machine monitor 304 is instructed to switch the route to the new storage execution unit 102.
  • the virtual machine monitor 304 receives the instruction and switches the command transmission destination from the host computer 201 to the new storage execution unit 102.
  • the takeover reception control unit 107 of the new storage execution unit 102 receives the takeover processing start instruction from the takeover instruction control unit 103, the read command is received each time a read command or a write command is received from the host computer 201. Alternatively, the old storage control unit 101 is inquired whether there is cache data that matches the logical address of the storage medium 110 specified by the write command.
  • the takeover giving control unit 105 searches the logical address 405 of the tag 401 for a match with the logical address for which the inquiry is received.
  • the takeover giving control unit 105 confirms that there is no cache data indicated by the logical address that has been inquired by the new storage execution unit 102.
  • the notification is sent to the control unit 107, and the takeover reception control unit 107 subsequently performs processing including storing the read command or write command data in the cache memory 109.
  • the area where the cache data is stored is separated from the subordinate of the old storage execution unit 101.
  • the takeover giving control unit 105 sends a set of the takeover notification of the cache data to the new storage execution unit 102 and the logical address of the storage medium 110 associated with the cache data to the virtual machine monitor 304. Send.
  • the takeover giving control unit 105 notifies the takeover reception control unit 107 that the inquired logical address exists.
  • the takeover reception control unit 107 When the takeover reception control unit 107 receives the above notification, the takeover reception control unit 107 transmits a notification to the virtual machine monitor 304 to take over the cache data 403, and designates which cache data to take over. Therefore, the logical address inquired of the old storage control unit 101 is also transmitted.
  • the virtual machine monitor 304 takes out cache data 403 having the same logical address from the cache data 403 taken over from the old storage execution unit 101 in advance, and stores an area on the cache memory 109 of the new storage execution unit 102 (an area reserved in advance by the storage program). Or the new area), the cache data 403 is allocated, and the address of the allocated area is notified to the takeover reception control unit 107.
  • the takeover reception control unit 107 newly secures a set of the tag 401 and the pointer 402 and stores the address of the cache data 403 notified from the virtual machine monitor 304 in the pointer 402.
  • the takeover reception control unit 107 sets 1 in the Dirty Flag 404 of the tag 401 described above and stores the logical address specified by the write command in the logical address 405. After that, the host computer 201 is notified that the execution of the write command has ended, and the execution of the write command is ended.
  • the takeover reception control unit 107 transmits the taken over cache data to the host computer 201 to notify the host computer 201 that the execution of the read command is completed, Ends the execution of the read command.
  • the takeover giving control unit 105 receives an instruction to start the takeover process from the takeover instruction control unit 103, the content of the data stored in the cache memory 106 of the old storage execution unit 101 is read cache. If it is a write cache, an operation of writing to the storage medium 110 is performed, and an area (cache area) in which data on the cache memory 106 is stored is discarded.
  • the takeover giving control unit 105 notifies the takeover instruction control unit 103 that the takeover has been completed, and the takeover instruction control unit 103 stops the old storage execution unit 101 and the old storage
  • the virtual machine monitor 304 is instructed to release the resources used for starting the execution unit 101.
  • the virtual machine monitor 304 notifies the new storage execution unit 102 that the old storage execution unit 101 has been stopped. Thereafter, the new storage execution unit 102 stops the inquiry to the old storage execution unit 101 and performs normal control. Migrate to
  • the takeover transfer control unit 105 of the old storage execution unit 101 reads the contents of the data stored in the cache memory 106 in parallel with the transfer of the cache data to the new storage execution unit 102. If it is a cache, the cache area on the cache memory 106 is discarded by performing an operation of writing to the storage medium 110 if it is a write cache.
  • the takeover giving control unit 105 discards the read cache after a certain time after receiving the takeover processing start instruction from the takeover instruction control unit 103. It is conceivable that the set of data indicated by the tag 401, the pointer 402, and the cache data 403 is managed by LRU (Least Recently Used), and the read cache is sequentially discarded at regular intervals. .
  • the write cache is not written to the storage medium 110 at the same time, but is written to the new storage execution unit 102 by writing after a fixed time, or by managing by LRU and sequentially writing at fixed time intervals. It is also possible to increase the opportunities for data transfer.
  • the method performed in the storage system of the present invention may be applied to a program for causing a computer to execute.
  • the program can be stored in a storage medium and can be provided to the outside via a network.
  • the present invention relates to a control program for a magnetic disk device or an optical disk device, a storage control program for a nonvolatile memory such as a flash memory, a flash memory built in a computer (server or personal computer), a control program for a magnetic disk, etc. Applicable to storage program updates.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

 本発明のストレージシステムは、記憶媒体と、ホストコンピュータからのコマンドに応じて記憶媒体に対するデータの書き込みまたは読み込みを行い、該データが格納されている記憶媒体上の領域の論理アドレスに紐付けられたキャッシュデータを格納するためのキャッシュメモリを割り当てたバーチャルマシンを、仮想的に生成するバーチャルマシンモニタと、を備え、バーチャルマシンモニタは、旧ストレージプログラムを起動して、該旧ストレージプログラムを含む旧ストレージ実行部をバーチャルマシンとして仮想的に生成し、旧ストレージプログラムから新ストレージプログラムへの更新時に、該新ストレージプログラムを起動して、該新ストレージプログラムを含む新ストレージ実行部をバーチャルマシンとして仮想的に生成して、旧ストレージ実行部及び新ストレージ実行部を併存させる。

Description

ストレージシステム、ストレージプログラム更新方法、及びプログラム
 本発明は、サーバ等の物理ハードウェア上で仮想化されたバーチャルマシン上の実行環境で動作するストレージプログラムが、記憶媒体に対し、ホストコンピュータからのコマンドに応じたデータの書き込みまたは読み込みを行う際に、記憶媒体が複数の場合の冗長化や記憶媒体間の性能差を埋めるためのキャッシュ制御を行うストレージシステムにおいて、ストレージプログラムの更新を行う技術に関する。
 従来、ストレージシステムと、該ストレージシステムへのデータの入出力を行うホストコンピュータとは、別の箱に実装されており、FC(ファイバーチャネル)やiSCSI等によるストレージ用の物理的な実体を持つインターフェイスで接続されていた。
 現在、サーバ等は、プロセッサ単体の高性能化やマルチプロセッサ化/メニイコア化により、単体アプリケーションを実行し得る十分な能力を獲得しつつある。
 そこで、最近は、サーバ等の物理ハードウェア上のCPUやメモリ等の領域を複数に論理的に分割し、それぞれを仮想的なコンピュータ(バーチャルマシン)で使用する技術(仮想化技術)が取り入れられてきている(例えば、特許文献1)。
 前述の仮想化技術により仮想化されたバーチャルマシンは、バーチャルマシン間で相互に通信可能であり、また、バーチャルマシンとコンピュータ外部のコンピュータ等と接続され相互に通信可能である。
特開2007-219571号公報
 従来、ストレージシステムは、ストレージシステム内でストレージの制御を司るストレージプログラムの更新に際し、更新前と更新後のストレージプログラムが利用するメモリ上の制御データ構造が一致する場合には、ストレージプログラムの実行を一時停止し、該ストレージプログラムの格納されている記憶媒体の更新を行い、しかる後にストレージプログラムのリスタートを行うことで、更新前の制御データを利用し更新前の状態を引継ぎ継続して動作可能である。
 しかし、更新前と更新後のストレージプログラムが利用する制御データ構造が不一致の場合(例えば、ある制御データの格納長を変えた場合や、新たな制御データを追加した場合や、制御データを削除した場合など)、更新前と更新後のストレージプログラムがアクセスするアドレスが異なると、更新後のストレージプログラムが更新前の制御データの参照を行う際に異なる制御データにアクセスを行うこととなり、ストレージプログラムの継続した実行が損なわれるという課題がある。
 また、ストレージプログラムの更新の際、一時的にストレージプログラムの実行の停止を行うためにストレージに接続されるホストコンピュータからのコマンドの処理が一時停止するという課題もある。
 そこで、本発明の目的は、上述した課題を解決し、ストレージプログラムの更新を無停止で行うことができるストレージシステム、ストレージプログラム更新方法、及びプログラムを提供することにある。
 本発明のストレージシステムは、
 記憶媒体と、
 ホストコンピュータからのコマンドに応じて前記記憶媒体に対するデータの書き込みまたは読み込みを行い、該データが格納されている前記記憶媒体上の領域の論理アドレスに紐付けられたキャッシュデータを格納するためのキャッシュメモリを割り当てたバーチャルマシンを、仮想的に生成するバーチャルマシンモニタと、を備え、
 前記バーチャルマシンモニタは、
 旧ストレージプログラムを起動して、該旧ストレージプログラムを含む旧ストレージ実行部をバーチャルマシンとして仮想的に生成し、
 旧ストレージプログラムから新ストレージプログラムへの更新時に、該新ストレージプログラムを起動して、該新ストレージプログラムを含む新ストレージ実行部をバーチャルマシンとして仮想的に生成して、前記旧ストレージ実行部及び前記新ストレージ実行部を併存させる。
 本発明のストレージプログラム更新方法は、
 ストレージシステムによるストレージプログラム更新方法であって、
 前記ストレージシステムは、
 記憶媒体と、
 ホストコンピュータからのコマンドに応じて前記記憶媒体に対するデータの書き込みまたは読み込みを行い、該データが格納されている前記記憶媒体上の領域の論理アドレスに紐付けられたキャッシュデータを格納するためのキャッシュメモリを割り当てたバーチャルマシンを、仮想的に生成するバーチャルマシンモニタと、を備えるものであり、
 前記バーチャルマシンモニタが、旧ストレージプログラムを起動して、該旧ストレージプログラムを含む旧ストレージ実行部をバーチャルマシンとして仮想的に生成するステップと、
 前記バーチャルマシンモニタが、旧ストレージプログラムから新ストレージプログラムへの更新時に、該新ストレージプログラムを起動して、該新ストレージプログラムを含む新ストレージ実行部をバーチャルマシンとして仮想的に生成して、前記旧ストレージ実行部及び前記新ストレージ実行部を併存させるステップと、を有する。
 本発明のプログラムは、
 記憶媒体と、
 ホストコンピュータからのコマンドに応じて前記記憶媒体に対するデータの書き込みまたは読み込みを行い、該データが格納されている前記記憶媒体上の領域の論理アドレスに紐付けられたキャッシュデータを格納するためのキャッシュメモリを割り当てたバーチャルマシンを、仮想的に生成するバーチャルマシンモニタと、を備えるストレージシステムに、
 前記バーチャルマシンモニタが、旧ストレージプログラムを起動して、該旧ストレージプログラムを含む旧ストレージ実行部をバーチャルマシンとして仮想的に生成する手順と、
 前記バーチャルマシンモニタが、旧ストレージプログラムから新ストレージプログラムへの更新時に、該新ストレージプログラムを起動して、該新ストレージプログラムを含む新ストレージ実行部をバーチャルマシンとして仮想的に生成して、前記旧ストレージ実行部及び前記新ストレージ実行部を併存させる手順と、を実行させる。
 本発明によれば、ストレージプログラムの更新に際し、バーチャルマシンモニタによる仮想化技術を用いて、旧ストレージプログラムを含む旧ストレージ実行部と、新ストレージプログラムを含む新ストレージ実行部と、を併存させている。
 このように、更新前後の旧ストレージプログラムと新ストレージプログラムとを併存させることで、ストレージプログラムの更新を無停止で行うことができる。
 また、旧ストレージプログラムと新ストレージプログラム間でのキャッシュデータの引継ぎ等が可能になるため、旧ストレージプログラムと新ストレージプログラムがアクセスするアドレスが異なることに起因した、ストレージプログラムの継続した実行が損なわれることも回避することができる。
本発明の一実施形態のストレージシステムの構成を示すブロック図である。 図1に示したストレージシステムを実現するハードウェア構成を示す図である。 図1に示したストレージシステムを実現するソフトウェアレイアを示す図である。 図1に示したストレージシステムで管理されるキャッシュデータのデータ構造を示す図である。
 以下に、本発明を実施するための形態について図面を参照して説明する。
 図1を参照すると、本実施形態のストレージシステムは、旧ストレージ実行部101と、新ストレージ実行部102と、引継ぎ指示制御部103と、記憶媒体110と、を有する。また、旧ストレージ実行部101は、引継ぎ授与制御部105と、キャッシュメモリ106と、を有する。また、新ストレージ実行部102は、引継ぎ受領制御部107と、キャッシュメモリ109と、を有する。
 記憶媒体110は、磁気ディスク装置、光ディスク装置、シリコンディスク、フラッシュメモリ等の1つ若しくは複数から構成される。
 旧ストレージ実行部101及び新ストレージ実行部102は、サーバ上でバーチャルマシンモニタ304(図3参照)により仮想的にバーチャルマシンとして生成されたものであり、それぞれ、ホストコンピュータ201と接続される。
 引継ぎ指示制御部103は、ストレージプログラムの更新時に、バーチャルマシンモニタ304に対し、新規に更新したストレージプログラムの起動を指示し、それにより、新ストレージ実行部102が起動される。
 また、引継ぎ指示制御部103は、新ストレージ実行部102の起動が完了した後に、バーチャルマシンモニタ304に対し、ホストコンピュータ201からのコマンドの送信先を、旧ストレージ実行部101から新ストレージ実行部102に切り替えるよう指示すると共に、新ストレージ実行部102及び旧ストレージ実行部101に対し、新ストレージ実行部102のキャッシュデータの引継ぎ処理開始の指示をする。
 新ストレージ実行部102の引継ぎ受領制御部107は、引継ぎ指示制御部103からの引継ぎ処理開始の指示を受けると、ホストコンピュータ201からコマンドを受信する毎に、該コマンドで指定される記憶媒体110の論理アドレスに紐付けされているキャッシュデータが旧ストレージ実行部101に存在するか問い合わせを行う。
 旧ストレージ実行部101の引継ぎ授与制御部105は、引継ぎ受領制御部107から問い合わせを受けたキャッシュデータがキャッシュメモリ106に存在すれば、該キャッシュデータを含むキャッシュメモリ106上の領域を切り離し、該キャッシュデータの新ストレージ実行部102への引継ぎを行う旨と、該キャッシュデータが紐付けられている記憶媒体110の論理アドレスと、をバーチャルマシンモニタ304に通知する。さらに、引継ぎ授与制御部105は、引継ぎ受領制御部107に対して、問い合わせを受けたキャッシュデータが存在する旨の通知を行う。
 引継ぎ受領制御部107は、引継ぎ授与制御部105からキャッシュデータが存在する旨の通知を受けると、旧ストレージ実行部101のキャッシュデータをバーチャルマシンモニタ304を介して引き継ぐ。
 以上の処理と並行して、引継ぎ授与制御部105は、引継ぎ指示制御部103からの引継ぎ処理開始の指示を受けると、旧ストレージ実行部101の管理するキャッシュメモリ106に格納されているキャッシュデータの内容がリードキャッシュであれば破棄し、ライトキャッシュであれば記憶媒体110に書き込む動作を行い、キャッシュメモリ106上のキャッシュデータが格納されていた領域(キャッシュ領域)を破棄する。
 引継ぎ授与制御部105は、キャッシュ領域の全てを破棄すると、引継ぎ指示制御部103に対し、引継ぎを完了した旨を通知し、引継ぎ指示制御部103は、旧ストレージ実行部101の停止と、旧ストレージ実行部101の起動のために用いていたリソースの開放とを、バーチャルマシンモニタ304に対して指示する。
 バーチャルマシンモニタ304は、新ストレージ実行部102に対し、旧ストレージ実行部101を停止した旨を通知し、以降、新ストレージ実行部102は、旧ストレージ実行部101に対する問い合わせを停止し、通常の制御に移行する。
 前述の引継ぎ受領制御部107は、ストレージプログラムの構造から旧ストレージ実行部101にも引継ぎ受領制御部104として存在し、同様に、引継ぎ授与制御部105も、新ストレージ実行部102に引継ぎ授与制御部108として存在する。これにより、継続したストレージプログラムの更新を可能にしている。
 図2は、図1で示されるストレージシステムを実現するハードウェア構成を示している。
 図1の旧ストレージ制御部101は、引継ぎ受領制御部104及び引継ぎ授与制御部105が図2のCPU102で実行され、キャッシュメモリ106が図2のメモリ203の領域に存在する。また、図1の新ストレージ実行部102は、引継ぎ受領制御部107及び引継ぎ授与制御部108が図2のCPU102で実行され、キャッシュメモリ109が図2のメモリ203の領域に存在する。また、バーチャルマシンモニタ304(図3参照)は、図2のメモリ203の領域に存在する。尚、図では、CPU102は1つの物として示したが、これが複数あっても良く、それぞれの制御部が同じCPU上に存在しても良いし、異なるCPUに存在してもよい。
 このように、図1の旧ストレージ制御部101及び新ストレージ制御部102は、バーチャルマシンモニタ304により、あたかも複数の仮想的なサーバが動作しているように管理されている。また、図1のキャッシュメモリ106,109も、同じくバーチャルマシンモニタ304により、独立したメモリ空間として管理されている。
 図3は、図1で示されるストレージシステムを実現するソフトウェアレイアを示している。
 バーチャルマシンモニタ304上でそれぞれ複数の実行プログラムが起動している。
 図1の旧ストレージ実行部101は、キャッシュメモリ106と旧ストレージプログラム301を含み、キャッシュメモリ106はプログラム起動時にバーチャルマシンモニタ304からデータ格納領域として割り当てられる。
 また、同様に、図1の新ストレージ実行部102は、キャッシュメモリ109と新ストレージプログラム302を含み、キャッシュメモリ109はプログラム起動時にバーチャルマシンモニタ304からデータ格納領域として割り当てられる。
 本発明では、ストレージプログラム以外に他のアプリケーションプログラム303もバーチャルマシンモニタ304により管理されている。
 このアプリケーションプログラム303には、例えば、図1の引継ぎ指示制御103を含む管理ソフトウェアやストレージに対してアクセスを行うデータベースなども含まれ、これらのアクセスはバーチャルマシンモニタ304を介して行われる。
 また、バーチャルマシンモニタ304は、ホストコンピュータ201との接続を行う機能や、ホストコンピュータ201からのコマンドをそれぞれのバーチャルマシンに振り分ける機能も持つ。
 さらに、バーチャルマシンモニタ304は、配下にストレージの最終的な格納先である記憶媒体110を持ち、それぞれのストレージプログラムからのアクセスを可能にしている。
 以下に、図1、図3、及び図4を用いて、本実施形態の全体の動作について説明する。
(1)初期時(ストレージプログラムの更新前)の動作
 初期時は、図1の新ストレージ実行部102は起動されていない。この状態では、ホストコンピュータ201からのコマンドは旧ストレージ実行部101で受信されて処理される。
 旧ストレージ実行部101は、受信したコマンドがライトコマンドであれば、ライトデータを一時キャッシュメモリ106に蓄積し、その後にホストコンピュータ201に対してライトコマンドの実行を終了した旨を通知し、ライトコマンドの実行を終了する(ライト動作)。
 また、旧ストレージ実行部101は、受信したコマンドがリードコマンドであれば、該リードコマンドで指定される記憶媒体110の論理アドレスが示す記憶媒体110上の領域からデータを読み込み、該データをキャッシュメモリ106に格納した後に該データをホストコンピュータ201に転送し、リードコマンドの実行を終了した旨を通知し、リードコマンドの実行を終了する(リード動作)。
 キャッシュデータの管理は、図4の様なデータ構造にて実現される。
 前述のライト動作時のデータのデータ構造は、該データの実体であるキャッシュデータ403と、キャッシュデータ403を管理するためのタグ401と、キャッシュメモリ106上のキャッシュデータ403が格納されている領域のアドレスを示すポインタ402と、からなる。
 タグ401は、更にライトのキャッシュデータを格納しているか、リードのキャッシュデータを格納しているかを示すDirty Flag404と、該キャッシュデータが紐付けられている記憶媒体110上の領域を示す論理アドレス405と、からなる。
 Dirty Flag404は、キャッシュデータの内容がライトコマンドによるものであれば1を立て、リードコマンドによるものであれば0にする。
 このタグ401、ポインタ402、及びキャッシュデータ403からなるデータ構造は、ストレージプログラムで複数持っている。
(1-1)初期時のリード動作
 ホストコンピュータ201からのコマンドがリードコマンドであれば、旧ストレージ実行部101は、タグ401の論理アドレス405を複数参照して、該リードコマンドで指定される記憶媒体110の論理アドレスと一致するキャッシュデータの検索を行う。
 その際、論理アドレスの一致するキャッシュデータが存在すれば、旧ストレージ実行部101は、ポインタ402を参照し、ポインタ402が示すキャッシュメモリ106上の領域に格納されているキャッシュデータ403の内容をホストコンピュータ201に転送し、リードコマンドの実行を終了した旨を通知し、リードコマンドの実行を終了する。
 一方、論理アドレスの一致するキャッシュデータが存在しなければ、旧ストレージ実行部101は、リードコマンドで指定される論理アドレスが示す記憶媒体110上の領域からデータを読み込み、キャッシュデータの登録されていないタグ401及びポインタ402からなるセットを確保した上で、該データをキャッシュデータ403に格納すると共に、Dirty Flag404を0にセットし、リードコマンドで指定される論理アドレスを論理アドレス405に格納する。この時、ポインタ402は、キャッシュデータ403の先頭アドレスに予め紐付けられていても良いし、キャッシュデータの登録されていないタグ401及びポインタ402を確保する際に、キャッシュメモリ106上の空き領域からキャッシュデータ403の領域を切り出し、該領域のアドレスとしても良い。
(1-2)初期時のライト動作
 また、ホストコンピュータ201からのコマンドがライトコマンドであれば、旧ストレージ実行部101は、タグ401の論理アドレス405を複数参照して、該ライトコマンドで指定される記憶媒体110の論理アドレスと一致するキャッシュデータの検索を行う。
 その際、論理アドレスの一致するキャッシュデータが存在すれば、旧ストレージ実行部101は、ポインタ402を参照し、ポインタ402が示すキャッシュメモリ106上の領域にライトデータをキャッシュデータ403として格納し、タグ401上のDirty Flagを1にセットし、ホストコンピュータ201に対してライトコマンドの実行を終了した旨を通知し、ライトコマンドの実行を終了する。
 一方、論理アドレスの一致するキャッシュデータが存在しなければ、旧ストレージ実行部101は、タグ401、ポインタ402、及びキャッシュデータ403のセットを新たに確保し、ホストコンピュータ201からのライトデータをキャッシュデータ403に格納した後に、タグ401のDirty Flag404を1にセットし、ライトコマンドで指定される論理アドレスを論理アドレス405に格納した後、ホストコンピュータ201に対してライトコマンドの実行を完了した旨を通知し、ライトコマンドの実行を終了する。
(2)ストレージプログラムの更新時の動作
 この状態でストレージプログラムを更新する際には、引継ぎ指示制御部103は、バーチャルマシンモニタ304に対し、新規に更新したストレージプログラムの起動を指示し、このストレージプログラムの起動によって図1の新ストレージ実行部102が起動する。新ストレージ実行部102と旧ストレージ実行部101は、バーチャルマシンモニタ304を仲介として相互に通信可能な状態になっており、該通信経路は引継指示制御部103とも接続されている。また、該通信経路はバーチャルマシンモニタ304が提供する仮想ネットワークなどで良い。
 引継ぎ指示制御部103は、新ストレージ実行部102の起動を確認すると、新ストレージ実行部102と旧ストレージ実行部101に引継ぎ処理開始の指示を出すと共に、ホストコンピュータ201が旧ストレージ実行部104と接続していた経路を新ストレージ実行部102に切り替える指示をバーチャルマシンモニタ304に行う。バーチャルマシンモニタ304は、該指示を受け取り、ホストコンピュータ201からのコマンドの送信先を新ストレージ実行部102に切り替える。
 新ストレージ実行部102の引継ぎ受領制御部107は、前述の引継ぎ指示制御部103からの引継ぎ処理開始の指示を受け取ると、ホストコンピュータ201からのリードコマンド若しくはライトコマンドを受信する毎に、該リードコマンド若しくはライトコマンドで指定される記憶媒体110の論理アドレスと一致するキャッシュデータが存在するか旧ストレージ制御部101に問い合わせを行う。
 旧ストレージ制御部101の引継ぎ授与制御部105は、前述の問い合わせを受けると、問い合わせを受けた論理アドレスと一致するものがタグ401の論理アドレス405に存在するか検索する。
 その際、引継ぎ授与制御部105は、問い合わせを受けた論理アドレスが論理アドレス405に存在しなければ、問い合わせを受けた論理アドレスで示されるキャッシュデータは存在しない旨を新ストレージ実行部102の引継ぎ受領制御部107に通知し、該引継ぎ受領制御部107は、以降、前述のリードコマンド若しくはライトコマンドのデータのキャッシュメモリ109への格納を含む処理を行う。
 一方、引継ぎ授与制御部105は、問い合わせを受けた論理アドレスが論理アドレス405に存在すれば、該論理アドレス405が格納されているタグ401とセットになっているポインタ402が示すキャッシュメモリ106上のキャッシュデータが格納されている領域を旧ストレージ実行部101配下から切り離す。そして、引継ぎ授与制御部105は、該キャッシュデータの新ストレージ実行部102への引継ぎ通知と、該キャッシュデータが紐付けられている記憶媒体110の論理アドレスとのセットを、バーチャルマシンモニタ304に対して送る。後に、引継ぎ授与制御部105は、引継ぎ受領制御部107に対して、問い合わせを受けた論理アドレスが存在する旨の通知を行う。
 引継ぎ受領制御部107は、前述の通知を受け取ると、バーチャルマシンモニタ304に対してキャッシュデータ403の引き取りを行うため、引き取りを行う旨の通知を送信すると共に、どのキャッシュデータを引き取るかを指定するため、旧ストレージ制御部101に問い合わせた論理アドレスを併せて送信する。
 バーチャルマシンモニタ304は、旧ストレージ実行部101から予め引き継いだキャッシュデータ403のうち論理アドレスの一致するものを取り出し、新ストレージ実行部102のキャッシュメモリ109上の領域(ストレージプログラムにより予め予約された領域、あるいは、新規の領域)に対して、該キャッシュデータ403を割り付け、割り付けた領域のアドレスを引継ぎ受領制御部107に対して通知する。
 引継ぎ受領制御部107は、タグ401とポインタ402のセットを新たに確保し、バーチャルマシンモニタ304から通知されたキャッシュデータ403のアドレスをポインタ402に格納する。
 さらに、ホストコンピュータ201からのコマンドがライトコマンドであれば、引継ぎ受領制御部107は、前述のタグ401のDirty Flag404に1をセットすると共に、ライトコマンドで指定される論理アドレスを論理アドレス405に格納した後、ホストコンピュータ201に対してライトコマンドの実行を終了した旨を通知し、ライトコマンドの実行を終了する。一方、ホストコンピュータ201からのコマンドがリードコマンドであれば、引継ぎ受領制御部107は、引き継いだキャッシュデータをホストコンピュータ201に送信し、リードコマンドの実行が終了した旨をホストコンピュータ201に通知し、リードコマンドの実行を終了する。
 以上の処理と並行して、引継ぎ授与制御部105は、引継ぎ指示制御部103から引継ぎ処理開始の指示を受けると、旧ストレージ実行部101のキャッシュメモリ106に格納されているデータの内容がリードキャッシュであれば全て破棄し、ライトキャッシュであれば記憶媒体110に書き込む動作を行い、キャッシュメモリ106上のデータが格納されていた領域(キャッシュ領域)を破棄する。
 引継ぎ授与制御部105は、キャッシュ領域の全てを破棄すると、引継ぎ指示制御部103に対し、引継ぎを完了した旨を通知し、引継ぎ指示制御部103は、旧ストレージ実行部101の停止と、旧ストレージ実行部101の起動のために用いていたリソースの開放とを、バーチャルマシンモニタ304に対して指示する。
 バーチャルマシンモニタ304は、新ストレージ実行部102に対し、旧ストレージ実行部101を停止した旨を通知し、以降、新ストレージ実行部102は、旧ストレージ実行部101に対する問い合わせを停止し、通常の制御に移行する。
 以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解し得る様々な変更をすることができる。
 例えば、本実施形態においては、旧ストレージ実行部101の引継ぎ授与制御部105は、新ストレージ実行部102へのキャッシュデータの引継ぎと並行して、キャッシュメモリ106に格納されているデータの内容がリードキャッシュであれば全て破棄し、ライトキャッシュであれば記憶媒体110に書き込む動作を行うことで、キャッシュメモリ106上のキャッシュ領域を破棄している。
 その代わりに、新ストレージ実行部102に対するキャッシュデータの引継ぎをなるべく早く行うために、引継ぎ授与制御部105は、引継ぎ指示制御部103から引継ぎ処理開始の指示を受け取ってから一定時間後にリードキャッシュの破棄を行うことや、タグ401、ポインタ402、及びキャッシュデータ403で示されるデータのセットをLRU(Least Recently Used)により管理し、一定時間の間隔を持ってリードキャッシュを順次破棄すること等が考えられる。
 また、ライトキャッシュも同等に一度に記憶媒体110に書き込むのでは無く、一定時間後に書き込みを行うか、LRUにより管理を行い一定時間間隔で順次書き込みを行うことで、新ストレージ実行部102へのキャッシュデータの引継ぎが行われる機会を増すことも考えられる。
 このようにすることで記憶媒体110に対する余分なリードライトが防止でき、引継ぎ時に性能劣化を最小限に抑えることも可能となる。
 なお、本発明のストレージシステムにて行われる方法は、コンピュータに実行させるためのプログラムに適用してもよい。また、そのプログラムを記憶媒体に格納することも可能であり、ネットワークを介して外部に提供することも可能である。
 本発明は、磁気ディスク装置や光ディスク装置の制御プログラムや、フラッシュメモリ等の不揮発メモリを対象とするストレージ制御プログラム、また、コンピュータ(サーバやパーソナルコンピュータ)内蔵のフラッシュメモリや磁気ディスクの制御プログラムなどのストレージプログラムの更新に適用可能である。
 本出願は、2009年11月11日に出願された日本出願特願2009-257991を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 

Claims (11)

  1.  記憶媒体と、
     ホストコンピュータからのコマンドに応じて前記記憶媒体に対するデータの書き込みまたは読み込みを行い、該データが格納されている前記記憶媒体上の領域の論理アドレスに紐付けられたキャッシュデータを格納するためのキャッシュメモリを割り当てたバーチャルマシンを、仮想的に生成するバーチャルマシンモニタと、を備え、
     前記バーチャルマシンモニタは、
     旧ストレージプログラムを起動して、該旧ストレージプログラムを含む旧ストレージ実行部をバーチャルマシンとして仮想的に生成し、
     旧ストレージプログラムから新ストレージプログラムへの更新時に、該新ストレージプログラムを起動して、該新ストレージプログラムを含む新ストレージ実行部をバーチャルマシンとして仮想的に生成して、前記旧ストレージ実行部及び前記新ストレージ実行部を併存させる、ストレージシステム。
  2.  新ストレージプログラムへの更新時に、前記バーチャルマシンモニタに対し、前記ホストコンピュータからのコマンドの送信先の前記旧ストレージ実行部から前記新ストレージ実行部への切り替え指示を行うとともに、前記旧ストレージ実行部及び前記新ストレージ実行部に対し、前記旧ストレージ実行部に存在するキャッシュデータの前記新ストレージ実行部への引継ぎ指示を行う引継ぎ指示制御部をさらに有し、
     前記バーチャルマシンモニタは、
     前記引継ぎ指示制御部から前記切り替え指示を受けると、前記ホストコンピュータからのコマンドの送信先を前記旧ストレージ実行部から前記新ストレージ実行部に切り替え、
     前記新ストレージ実行部は、
     前記引継ぎ指示制御部から前記引継ぎ指示を受けると、前記ホストコンピュータからコマンドを受信する毎に、前記旧ストレージ実行部に対し、該コマンドで指定される論理アドレスに紐付けられたキャッシュデータが存在するか否かを問い合わせ、該キャッシュデータが存在すれば、該キャッシュデータを前記旧ストレージ実行部から前記バーチャルマシンモニタを介して引き継ぐ、請求項1に記載のストレージシステム。
  3.  前記旧ストレージ実行部は、前記引継ぎ指示制御部から前記引継ぎ指示を受けると、自己のキャッシュメモリに格納されているキャッシュデータの内容がリードキャッシュであれば該キャッシュデータを全て破棄し、ライトキャッシュであれば該キャッシュデータを前記記憶媒体に書き込むことで、自己のキャッシュメモリ上のキャッシュデータが格納されていたキャッシュ領域を全て破棄し、
     前記バーチャルマシンモニタは、前記旧ストレージ実行部にてキャッシュ領域が全て破棄されると、前記旧ストレージ実行部を停止するとともに、該旧ストレージ実行部の起動のために用いていたリソースを開放し、さらに、前記新ストレージ実行部に対し、前記旧ストレージ実行部を停止した旨を通知し、
     前記新ストレージ実行部は、前記バーチャルマシンモニタから前記旧ストレージ実行部を停止した旨の通知を受けると、以降、前記旧ストレージ実行部に対するキャッシュデータの問い合わせを停止する、請求項2に記載のストレージシステム。
  4.  前記旧ストレージ実行部は、
     前記引継ぎ指示制御部から前記引継ぎ指示を受けてから一定時間経過後に、キャッシュ領域を全て破棄する、請求項3に記載のストレージシステム。
  5.  前記旧ストレージ実行部は、
     前記引継ぎ指示制御部から前記引継ぎ指示を受けてから一定時間間隔で、キャッシュ領域を順次破棄する、請求項3に記載のストレージシステム。
  6.  ストレージシステムによるストレージプログラム更新方法であって、
     前記ストレージシステムは、
     記憶媒体と、
     ホストコンピュータからのコマンドに応じて前記記憶媒体に対するデータの書き込みまたは読み込みを行い、該データが格納されている前記記憶媒体上の領域の論理アドレスに紐付けられたキャッシュデータを格納するためのキャッシュメモリを割り当てたバーチャルマシンを、仮想的に生成するバーチャルマシンモニタと、を備えるものであり、
     前記バーチャルマシンモニタが、旧ストレージプログラムを起動して、該旧ストレージプログラムを含む旧ストレージ実行部をバーチャルマシンとして仮想的に生成するステップと、
     前記バーチャルマシンモニタが、旧ストレージプログラムから新ストレージプログラムへの更新時に、該新ストレージプログラムを起動して、該新ストレージプログラムを含む新ストレージ実行部をバーチャルマシンとして仮想的に生成して、前記旧ストレージ実行部及び前記新ストレージ実行部を併存させるステップと、を有するストレージプログラム更新方法。
  7.  引継ぎ指示制御部が、新ストレージプログラムへの更新時に、前記バーチャルマシンモニタに対し、前記ホストコンピュータからのコマンドの送信先の前記旧ストレージ実行部から前記新ストレージ実行部への切り替え指示を行うとともに、前記旧ストレージ実行部及び前記新ストレージ実行部に対し、前記旧ストレージ実行部に存在するキャッシュデータの前記新ストレージ実行部への引継ぎ指示を行うステップと、
     前記バーチャルマシンモニタが、前記引継ぎ指示制御部から前記切り替え指示を受けると、前記ホストコンピュータからのコマンドの送信先を前記旧ストレージ実行部から前記新ストレージ実行部に切り替えるステップと、
     前記新ストレージ実行部が、前記引継ぎ指示制御部から前記引継ぎ指示を受けると、前記ホストコンピュータからコマンドを受信する毎に、前記旧ストレージ実行部に対し、該コマンドで指定される論理アドレスに紐付けられたキャッシュデータが存在するか否かを問い合わせ、該キャッシュデータが存在すれば、該キャッシュデータを前記旧ストレージ実行部から前記バーチャルマシンモニタを介して引き継ぐ引継ぎステップと、をさらに有する請求項6に記載のストレージプログラム更新方法。
  8.  前記旧ストレージ実行部が、前記引継ぎ指示制御部から前記引継ぎ指示を受けると、自己のキャッシュメモリに格納されているキャッシュデータの内容がリードキャッシュであれば該キャッシュデータを全て破棄し、ライトキャッシュであれば該キャッシュデータを前記記憶媒体に書き込むことで、自己のキャッシュメモリ上のキャッシュデータが格納されていたキャッシュ領域を全て破棄する破棄ステップと、
     前記バーチャルマシンモニタが、前記旧ストレージ実行部にてキャッシュ領域が全て破棄されると、前記旧ストレージ実行部を停止するとともに、該旧ストレージ実行部の起動のために用いていたリソースを開放し、さらに、前記新ストレージ実行部に対し、前記旧ストレージ実行部を停止した旨を通知するステップと、
     前記新ストレージ実行部が、前記バーチャルマシンモニタから前記旧ストレージ実行部を停止した旨の通知を受けると、以降、前記旧ストレージ実行部に対するキャッシュデータの問い合わせを停止するステップと、を有する請求項7に記載のストレージプログラム更新方法。
  9.  前記破棄ステップでは、前記旧ストレージ実行部が、前記引継ぎ指示制御部から前記引継ぎ指示を受けてから一定時間経過後に、キャッシュ領域を全て破棄する、請求項8に記載のストレージプログラム更新方法。
  10.  前記破棄ステップでは、前記旧ストレージ実行部が、前記引継ぎ指示制御部から前記引継ぎ指示を受けてから一定時間間隔で、キャッシュ領域を順次破棄する、請求項8に記載のストレージプログラム更新方法。
  11.  記憶媒体と、
     ホストコンピュータからのコマンドに応じて前記記憶媒体に対するデータの書き込みまたは読み込みを行い、該データが格納されている前記記憶媒体上の領域の論理アドレスに紐付けられたキャッシュデータを格納するためのキャッシュメモリを割り当てたバーチャルマシンを、仮想的に生成するバーチャルマシンモニタと、を備えるストレージシステムに、
     前記バーチャルマシンモニタが、旧ストレージプログラムを起動して、該旧ストレージプログラムを含む旧ストレージ実行部をバーチャルマシンとして仮想的に生成する手順と、
     前記バーチャルマシンモニタが、旧ストレージプログラムから新ストレージプログラムへの更新時に、該新ストレージプログラムを起動して、該新ストレージプログラムを含む新ストレージ実行部をバーチャルマシンとして仮想的に生成して、前記旧ストレージ実行部及び前記新ストレージ実行部を併存させる手順と、を実行させるプログラム。
     
PCT/JP2010/066283 2009-11-11 2010-09-21 ストレージシステム、ストレージプログラム更新方法、及びプログラム WO2011058821A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009257991 2009-11-11
JP2009-257991 2009-11-11

Publications (1)

Publication Number Publication Date
WO2011058821A1 true WO2011058821A1 (ja) 2011-05-19

Family

ID=43991481

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/066283 WO2011058821A1 (ja) 2009-11-11 2010-09-21 ストレージシステム、ストレージプログラム更新方法、及びプログラム

Country Status (1)

Country Link
WO (1) WO2011058821A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013003684A1 (en) 2011-06-30 2013-01-03 Amazon Technologies, Inc. Methods and apparatus for remotely updating executing processes
US10579268B2 (en) 2017-02-07 2020-03-03 Nec Corporation Disk control device, disk control method, and recording medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338741A (ja) * 1998-05-25 1999-12-10 Yamatake Corp 監視制御システム
JP2006236387A (ja) * 2006-05-26 2006-09-07 Hitachi Ltd 記憶制御装置
JP2007219571A (ja) * 2006-02-14 2007-08-30 Hitachi Ltd 記憶制御装置及びストレージシステム
JP2009116809A (ja) * 2007-11-09 2009-05-28 Hitachi Ltd 記憶制御装置、ストレージシステム及び仮想ボリュームの制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338741A (ja) * 1998-05-25 1999-12-10 Yamatake Corp 監視制御システム
JP2007219571A (ja) * 2006-02-14 2007-08-30 Hitachi Ltd 記憶制御装置及びストレージシステム
JP2006236387A (ja) * 2006-05-26 2006-09-07 Hitachi Ltd 記憶制御装置
JP2009116809A (ja) * 2007-11-09 2009-05-28 Hitachi Ltd 記憶制御装置、ストレージシステム及び仮想ボリュームの制御方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013003684A1 (en) 2011-06-30 2013-01-03 Amazon Technologies, Inc. Methods and apparatus for remotely updating executing processes
CN103765406A (zh) * 2011-06-30 2014-04-30 亚马逊科技公司 用于远程更新执行进程的方法和设备
EP2727002A1 (en) * 2011-06-30 2014-05-07 Amazon Technologies, Inc. Methods and apparatus for remotely updating executing processes
JP2014518426A (ja) * 2011-06-30 2014-07-28 アマゾン・テクノロジーズ・インコーポレーテッド 実行中のプロセスをリモートに更新するための方法および装置
EP2727002A4 (en) * 2011-06-30 2015-02-25 Amazon Tech Inc METHODS AND APPARATUS FOR REMOTELY UPDATING EXECUTING PROCESSES
CN103765406B (zh) * 2011-06-30 2016-08-17 亚马逊科技公司 用于远程更新执行进程的方法和装置
US9886257B1 (en) 2011-06-30 2018-02-06 Amazon Technologies, Inc. Methods and apparatus for remotely updating executing processes
US10579268B2 (en) 2017-02-07 2020-03-03 Nec Corporation Disk control device, disk control method, and recording medium

Similar Documents

Publication Publication Date Title
JP5459811B2 (ja) 仮想ストレージ移行のための方法およびシステム、ならびに仮想マシンモニタ
JP6314355B2 (ja) メモリ管理方法およびデバイス
CN108183871B (zh) 一种虚拟交换机、虚拟交换机启动方法,电子设备
US9811276B1 (en) Archiving memory in memory centric architecture
US8607004B2 (en) Distributed symmetric multiprocessing computing architecture
JP4769484B2 (ja) 仮想計算機をマイグレーションするための方法およびシステム
US20140297780A1 (en) Method and system for vm-granular ssd/flash cache live migration
US20080028402A1 (en) Method of setting operation environment and computer system
US20140012940A1 (en) Systems, Methods and Apparatus for a Virtual Machine Cache
US20050138312A1 (en) Method for acquiring snapshot
US20160085460A1 (en) Optimized read access to shared data via monitoring of mirroring operations
JP2011203842A (ja) ホスト装置と連携して重複データを排除するストレージ装置、同ストレージ装置を備えたストレージシステム、及び同システムにおける重複排除方法
CN101419535A (zh) 虚拟机的分布式虚拟磁盘系统
JP2004227558A (ja) 仮想化制御装置およびデータ移行制御方法
JP6123626B2 (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
WO2015046552A1 (ja) ストレージシステムとノード装置とキャッシュ制御方法並びにプログラム
JP2008090657A (ja) ストレージシステム及び制御方法
JP6663478B2 (ja) データ移行方法及び計算機システム
JPWO2009069326A1 (ja) ネットワークブートシステム
JP2009205614A (ja) ストレージシステムの制御方法、スイッチ装置およびストレージシステム
JP2016115253A (ja) 情報処理装置、メモリ管理方法およびメモリ管理プログラム
JP2007048323A (ja) 仮想化制御装置およびデータ移行制御方法
KR102421315B1 (ko) 문맥 감지 배리어 명령어 실행
WO2011058821A1 (ja) ストレージシステム、ストレージプログラム更新方法、及びプログラム
WO2014061068A1 (en) Storage system and method for controlling storage system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10829781

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10829781

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP