JP4815449B2 - 共有バックエンドストレージを備えた複数のストレージシステムにわたりユーザワークロードのバランスをリアルタイムにとるシステム、及び方法 - Google Patents

共有バックエンドストレージを備えた複数のストレージシステムにわたりユーザワークロードのバランスをリアルタイムにとるシステム、及び方法 Download PDF

Info

Publication number
JP4815449B2
JP4815449B2 JP2007543264A JP2007543264A JP4815449B2 JP 4815449 B2 JP4815449 B2 JP 4815449B2 JP 2007543264 A JP2007543264 A JP 2007543264A JP 2007543264 A JP2007543264 A JP 2007543264A JP 4815449 B2 JP4815449 B2 JP 4815449B2
Authority
JP
Japan
Prior art keywords
storage system
physical storage
processor
margin
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.)
Expired - Fee Related
Application number
JP2007543264A
Other languages
English (en)
Other versions
JP2008521140A (ja
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 JP2008521140A publication Critical patent/JP2008521140A/ja
Application granted granted Critical
Publication of JP4815449B2 publication Critical patent/JP4815449B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

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)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

[発明の分野]
本発明は、ストレージシステムに関し、特に、共有バックエンドストレージを備えた複数のストレージシステムにわたりユーザワークロードのバランスをリアルタイムにとることに関する。
[発明の背景]
ストレージシステムは、メモリ、テープ、及びディスクのような書き込み可能な永久的記憶装置上での情報の編成に関するストレージサービスを提供するコンピュータである。ストレージシステムは一般に、ストレージ・エリア・ネットワーク(SAN)環境やネットワーク・アタッチド・ストレージ(NAS)環境において展開される。NAS環境で使用される場合、ストレージシステムは、情報を例えばディスク上にディレクトリやファイルの階層構造として論理編成するためのファイルシステムを実施するオペレーティングシステムを含むファイルサーバとして実施される場合がある。「ディスク上」の各ファイルは、そのファイルの実際のデータのような情報を記憶するように構成された、例えばディスクブロックのような一連のデータ構造として実施される場合がある。一方、ディレクトリは、他のファイルやディレクトリに関する情報を格納するための特殊形式のファイルとして実施される場合がある。
ストレージシステムは、情報配送のクライアント/サーバモデルにしたがって動作するように更に構成され、それによって多数のクライアントシステム(クライアント)は、ストレージシステムに格納されたファイルのような共有リソースにアクセスすることができる。ファイルの共有はNASシステムの特徴であり、これはファイルやファイルシステムに対するセマンティックレベルのアクセスによって可能となる。NASシステム上の情報の記憶は一般に、クライアントがファイルサーバ上の情報(ファイル)を遠隔からアクセスできるようにするための、地理的に分散されたイーサネットのような相互接続通信リンクの集まりを含むコンピュータネットワーク上に展開される。クライアントは一般に、トランスミッション・コントロール・プロトコル/インターネット・プロトコル(TCP/IP)のような所定のプロトコルにしたがってデータフレーム又はデータパケットを交換することによって、ストレージシステムと通信する。
クライアント/サーバモデルでは、クライアントは、ポイント・ツー・ポイントリンク、共用ローカルエリアネットワーク、ワイドエリアネットワーク、あるいはインターネットのような公共ネットワーク上で実施される仮想私設ネットワークのようなコンピュータネットワーク上のストレージシステムに「接続」するためのアプリケーションをコンピュータ上で実行する。NASシステムは一般にファイルベースのアクセスプロトコルを使用している。したがって、各クライアントは、ネットワークを介してファイルシステム・プロトコル・メッセージ(パケットの形をしている)をファイルシステムに対して発行することによって、ストレージシステムのサービスを要求することができる。従来のコモン・インターネット・ファイル・システム(CIFS)プロトコル、ネットワーク・ファイル・システム(NFS)プロトコル、及びダイレクト・アクセス・ファイル・システム(DAFS)プロトコルのような複数のファイルシステムプロトコルをサポートすることにより、ネットワーククライアントに対し、ストレージシステムの有用性を向上させることができる。
SANは、ストレージシステムと、該ストレージシステムが有する記憶装置との間にダイレクト接続を確立することが可能な高速ネットワークである。つまり、SANは、ストレージバスに対する拡張のようなものであり、したがって、ストレージシステムのオペレーティングシステムは、「拡張バス」を介してブロックベースのアクセスプロトコルを使用して、記憶された情報にアクセスすることができる。この例において、拡張バスは一般に、「SCSI over FC」(FCP)プロトコルや「SCSI over TCP/IP/Ethernet」(iSCSI)プロトコルのようなブロックアクセスプロトコルを使用して動作するように構成されたファイバチャネル(FC)、又はイーサネットメディアとして実施される。SAN構成、すなわちSANデプロイメントによれば、アプリケーションサーバのようなストレージシステムからストレージを切り離すことができ、アプリケーションサーバレベルである程度のレベルのストレージ共有が可能になる。ただし、SANが単一のサーバに専用に使用される環境もある。SAN環境で使用される場合、ストレージシステムは、ファイバチャネルにおいて実施されるSCSI(FCP)のような幾つかのブロックベースのプロトコルを使用して一連のディスクに対するデータアクセスを管理するストレージアプライアンスとして実施される場合がある。SANで使用するのに適したマルチプロトコル・ストレージ・アプライアンスを含む、SAN構成の一例は、「MULTI PROTOCOL STORAGE APPLIANCE THAT PROVIDEDS INTEGRATED SUPPORT FOR FILE AND BLOCK ACCESS PROTOCOLS」と題するBrian Pawlowski他による米国特許出願第10/215,917号に記載されている。
ストレージアプライアンスのようなストレージシステムによって提供されるサービスやデータは、出来る限りアクセス可能であると有利である。したがって、ストレージシステムによっては、クラスタを成す複数のストレージアプライアンスを備え、第1のストレージアプライアンスが故障したときでも、第2のストレージアプライアンス(「パートナ」)がそれを引継ぎ、通常ならば第1のストレージアプライアンスによって提供されるサービスやデータを提供し続けるものがある。第1のストレージアプライアンスが故障すると、クラスタ内の第2のパートナストレージアプライアンスは、データアクセス要求を処理し、取り扱うタスクをすべて、第1のストレージアプライアンスによって正常に処理されたものと仮定する。管理者は、例えばハードウェアのアップグレード等の種々の理由から、ストレージアプライアンスをオフラインにしたい場合がある。こうした状況では、フェイルオーバ処理よりはむしろ、ユーザ始動によるテイクオーバ処理を実施する方が有利な場合がある。テイクオーバ処理の完了後、ストレージアプライアンスのデータは、パートナストレージアプライアンスがそのストレージアプライアンスに制御を返すまで、パートナストレージアプライアンスによって提供される。
既知のストレージアプライアンスクラスタ構成の中には、クライアントとクラスタの間の通信に使用されるトランスポート媒体が、FCPプロトコルを使用してデータを運ぶファイバチャネル(FC)ケーブルであるものがある。SCSI用語では、SAN環境で動作するクライアントは、データの要求やコマンドを発行する「イニシエータ」である。したがって、マルチプロトコルストレージアプライアンスは、要求/応答プロトコルにしたがってイニシエータから発行された要求に応答するように構成された「ターゲット」である。FCプロトコルによれば、イニシエータ、及びターゲットは、3つの一意の識別子、すなわち、ノード名、ポート名、及びデバイス識別子を有する。ノード名、及びポート名は世界的に一意の(重複しない)名前であり、例えば、ワールドワイドノード名(WWNN)、及びワールドワイドポート名(WWPN)である。デバイス識別子は、所与のスイッチング構造内で一意の(重複しない)識別子であり、FCポートに結合されたFCスイッチによって、FCポートに動的に割り振られる。
ストレージアプライアンスクラスタを必要とする従来のフェイルオーバ技術では、クラスタ内の各ストレージアプライアンスは、2つの物理的FCポート、すなわちAポートとBポートを管理する。Aポートは、当該ストレージアプライアンスを宛先とするデータアクセス要求を処理し、扱うために使用される。Bポートは通常、待機モードにあり、フェイルオーバ状況が発生すると、Bポートが有効化され、当該ストレージアプライアンスの故障したパートナストレージアプライアンスの「識別子を引き継ぐ」。この時点で、Bポートは、FCターゲットとして機能し、故障したストレージアプライアンスを宛先とするデータアクセス要求を受信し、処理し始める。このように、生き残ったストレージアプライアンスは、そのストレージアプライアンスを宛先とする要求と、そのストレージアプライアンスのパートナストレージアプライアンスを宛先とする要求の両方を処理する場合がある。一般に、「生き残った」ストレージアプライアンスの1つのポートは、そのストレージアプライアンスの故障したパートナストレージアプライアンスのWWNN、及びWWPNを宛先とするデータアクセス要求に対するサービスを提供することにより、故障したストレージアプライアンスの識別子を引き継ぐ。多くのクライアントオペレーティングシステムにとって、クライアントが、生き残ったストレージアプライアンスを故障したストレージアプライアンスと同様に透過的にアクセスできるようにするためには、これで十分である。生き残ったストレージアプライアンスが故障したストレージアプライアンスの識別子を引き継いだ後、故障したストレージアプライアンスのネットワークアドレスを宛先とするデータアクセス要求は、生き残ったストレージアプライアンスによって受信され、処理される。クライアントから見ると、故障したストレージアプライアンスは瞬間的にネットワークから切断され、再度ネットワークに接続されたかのように見え、データ処理、又はデータアクセス要求は継続されることになる。
図1は、例示的なストレージ(アプライアンス)システムネットワーク環境100を示す略ブロック図である。環境100は、クライアント104に接続されたネットワーククラウド102を含む。クライアント104は、PCやワークステーションのような汎用コンピュータであってもよいし、ブロックアクセスプロトコルを有するオペレーティングシステム上でアプリケーションを実行するように構成された、アプリケーションサーバのような特殊な目的のコンピュータであってもよい。ネットワーククラウドには更に、赤色ストレージシステム200Aと青色ストレージシステム200Bを含むストレージシステムクラスタ130が接続されている。これらのストレージシステムは例えば、ディスクシェルフ112及び114上のディスクのような相互接続された多数の記憶装置に対する記憶、及びアクセスを管理するように構成されたストレージアプライアンスとして実施される。
図示の例において、赤色ストレージシステム200Aは、ポートA116によって赤色ディスクシェルフ112に接続される。赤色ストレージシステム200Aは、Bポート118を介して青色ディスクシェルフ114にもアクセスする。同様に、青色ストレージシステム200Bは、Aポート120を介して青色ディスクシェルフ114にアクセスするとともに、Bポート122を介して赤色ディスクシェルフ112にアクセスする。このように、クラスタ内の各ディスクシェルフは、各ストレージアプライアンスにアクセスすることができ、それによって、フェイルオーバ時の冗長データ経路を提供する。なお、赤色ディスクシェルフと青色ディスクシェルフが、ストレージシステム200に直接接続されているのは、単なる例に過ぎない。
赤色ストレージシステム200Aと青色ストレージシステム200Bを接続しているのは、それら2つのストレージシステム間のデータ通信リンクを提供するクラスタ相互接続110である。クラスタ相互接続110は、例えば、イーサネット接続やFCデータリンクといった任意の適当な通信媒体から形成される。
通常のクラスタ動作中、ディスクシェルフの一次(すなわち、A)ポートを介してディスクシェルフに接続されたストレージシステムは、そのディスクシェルフの「所有者」となり、主として、そのディスクシェルフに格納されたボリューム上のブロックを宛先とするデータ要求に対するサービスを提供する働きをする。したがって、この例の場合、赤色ストレージシステム200Aは、赤色ディスクシェルフ112を所有し、主として、そのディスクシェルフに格納されたボリュームに対するデータアクセス要求に対するサービスを提供する働きをする。同様に、青色ストレージシステム200Bは、主として、青色ディスクシェルフ114に対する責任を負う。ストレージシステムクラスタ130のような動作をしているとき、各ストレージシステム200は通常、クラスタ130内の他方のディスクシェルフのデータ処理機能を引き継ぐことが出来るように構成される。
既知のストレージシステムアーキテクチャは、物理的ストレージシステムプラットフォームのような単一の物理的サーバ内に、仮想ストレージシステム(vfiler)のようなブロックベースの仮想サーバの複数のインスタンスを作成し、管理する機能を有する。Vfilerの詳細については、「ARCHITECTURE FOR CREATING AND MAINTAINING VIRTUAL FILERS ON A FILER」と題するMark Muhlestein他による米国特許出願第10/035,664号に記載されている。各Vfilerは、プラットフォーム上の他のvfilerとは全く無関係に管理され、実行される。その目的のために、幾つかのストレージユニット、及びネットワークインタフェースのネットワークアドレスのような専用ストレージシステムリソースが、適宜グループ化され、「ハードパーティション」化され、ストレージアプライアンス内に幾つかのセキュリティドメインを形成する。ストレージオペレーティングシステムやファイルシステムのような更に別の共通ストレージシステムリソースが、vfiler間で共有される場合もある。
各物理的ストレージシステムがその物理的ストレージシステム上で1又は複数のvfilerを実行する複数の物理的ストレージシステムを備えたストレージ環境に関する上記の問題は、例えば、vfilerが、平均負荷よりも高い負荷を受けると、物理的ストレージシステム上の処理負荷のバランスがとれなくなる場合があるということである。もし、単一の物理的ストレージシステム上で実行されている複数のvfilerが平均負荷よりも高い負荷を受けた場合、その物理的ストレージシステムは性能の低下を生じ、それによって、その物理的ストレージシステムで実行されているvfilerのそれぞれの性能に悪影響を与えることになる。システム管理者は、例えば従来のvfilerマイグレーションを利用して、負荷を再分散させようと試みる場合がある。しかしながら、一般的なロードバランシング技術では、負荷バランスのくずれたvfilerを管理者が検出し、マイグレーションを開始することにより修正措置を取らなければならない。
[発明の概要]
本発明は、共有バックエンドストレージを備えた複数の物理的ストレージシステムにわたりユーザワークロードのバランスをリアルタイムにとるシステム、及び方法を提供することによって、従来技術の欠点を克服する。ストレージシステムは、ハブのような複数の中間ネットワークデバイスを介してディスクシェルフに相互接続される。各ストレージシステムは、ターゲットデバイスドライバモジュールを備えたストレージオペレーティングシステムを有する。ロードバランシングプロセスは、ストレージシステム環境における管理コンソールの中で実行され、例えば決められた時間間隔で、各物理的ストレージシステムに関するパフォーマンスデータを収集する。また、ロードバランシングシステムは、収集されたパフォーマンスデータを使用し、通常は所定の時間にわたって、例えば平均値の末尾30分時間枠にわたり、各物理的ストレージシステムについてメトリックを計算する。計算されたメトリックが閾値を超えている物理的ストレージシステムがあった場合、プロセスは、ソース物理的ストレージシステムと宛先物理的ストレージシステムを選択する。選択されるソース物理的ストレージシステムは、相対的に負荷の高い物理的ストレージシステムであることが好ましい。一方、選択される宛先物理的ストレージシステムは、相対的に負荷の低い物理的ストレージシステムであることが好ましい。さらに、ソース物理的ストレージシステムにおいて実行されている各vfilerについて、パフォーマンスメトリックの使用率テーブルが計算される。経験則的なアルゴリズムを使用することにより、ソースから宛先へマイグレートすべきvfilerの選択が可能となる。次に、選択されたvfilerをディストリビュータに「手動」マイグレートすべきことが、管理者に対して提案される。代替実施形態として、ロードバランシングプロセスは、ソースから宛先への選択されたvfilerの「自動」vfilerマイグレーションを開始する場合がある(ユーザの直接介入なしに)。
本発明の上記の利点、及びその他の利点は、添付の図面と併せて下記の説明を読むことにより理解できるであろう。図中、同じ参照符号は、同一の構成要素、又は機能的に同様の構成要素であることを意味している。
A.クラスタ化されたストレージシステム環境
図2は、本発明の原理が実施される例示的ネットワーク環境200を示す略ブロック図である。環境200は、クライアント104に接続されたネットワーククラウド102を含む。クライアント104は、PCやワークステーションのような汎用コンピュータであってもよいし、ブロックアクセスプロトコルを含むオペレーティングシステム上でアプリケーションを実行するように構成された、アプリケーションサーバのような特殊な目的のコンピュータであってもよい。ネットワーククラウド102には更に、赤色ストレージシステム300A、青色ストレージシステム300B、及び緑色ストレージシステム300Cが接続されている。後で詳細を説明するこれらのストレージシステムは、例えば、ディスクシェルフ112、及び114上のディスクのような相互接続されたストレージデバイスに対する記憶、及びアクセスを制御するように構成されたストレージアプライアンスとして実施される。
赤色、青色、及び緑色のストレージシステム300A,B,Cは、データ経路202、204、206をそれぞれ介して、ネットワーク102に接続される。これらのデータ経路202、204、206は、直接のポイント・ツー・ポイントリンクであってもよいし、ルータ、スイッチ、ハブなどを含む種々の中間ネットワークデバイスを含む代替データ経路表わす場合もある。環境200は更に、ストレージシステム300A,B,Cに相互接続されたハブH1、及びH2を含む。ハブH1は、データ接続222を介してディスクシェルフ112に接続されるとともに、データ接続220を介してディスクシェルフ114にも接続される。同様に、ハブH2は、データアクセスループ224を介してディスクシェルフ112に接続されるとともに、データアクセスループ226を介してディスクシェルフ114にも接続される。なお、こうしたデータループは、例えばFC−AL(Fibre Channel Arbitrated Loop)のような任意の適当なネットワーク媒体であってよい。図示の実施形態において、ハブH1、及びH2は、ディスクシェルフ112、114のAポートとBポートの両方に相互接続され、それによって両方のディスクシェルフに対して複数のデータ経路を提供する。赤色ストレージシステム300Aは、データ経路208を介してハブH1に接続され、データ経路210を介してハブH2にも接続される。同様に、青色ストレージシステム300Bは、データ経路212を介してハブH1に接続され、データ経路214を介してハブH2にも接続される。最後に、緑色ストレージシステム300Cは、データ経路216を介してハブH1に接続され、データ経路218を介してハブH2にも接続される。
図示の実施形態において、ハブH1,H2は、中間ネットワークデバイスとして使用される。ただし、スイッチのような他のタイプの中間ネットワークデバイスを本発明の代替実施形態にしたがって使用することも可能である。したがって、中間ネットワークデバイスとしてのハブの使用は、単なる例であるものと捉えなければならない。
また、ネットワーク102には、ロードバランシングプロセス255を実行する管理コンソール250も接続される。管理コンソールは、環境200内の全ての物理的ストレージシステムの一元管理を管理者に提供する。後で詳細を説明するロードバランシングプロセス255は、本発明の新規なロードバランシング技術を実施する。
B.ストレージアプライアンス
図3は、ディスクのような記憶装置上での情報の編成に関するストレージサービスを提供するように構成された例示的ストレージシステム300を示す略ブロック図である。ストレージシステム300は例えば、システムバス330によって相互接続されたプロセッサ305、メモリ315、複数のネットワークアダプタ325a,325b、ストレージアダプタ320、及びクラスタ相互接続アダプタ335を含むストレージアプライアンスとして実施される。ストレージアプライアンスは、ネットワーク・アタッチド・ストレージ(NAS)デプロイメントやストレージ・エリア・ネットワーク(SAN)デプロイメントのユーザ(システム管理者)やクライアントに対し、再利用可能な記憶空間を含む、単純なストレージサービス管理や、簡単なストレージ再構成を提供するコンピュータである。ストレージアプライアンスは、ファイルシステムを通してNASサービスを提供する場合がある一方、同ストレージアプライアンスは、論理ユニット番号エミュレーションのようなSAN仮想化を通してSANサービスを提供する場合がある。こうしたストレージアプライアンスの一例の詳細については、「MULTI PROTOCOL STORAGE APPLIANCE THAT PROVIDEDS INTEGRATED SUPPORT FOR FILE AND BLOCK ACCESS PROTOCOLS」と題する、上で参照した米国特許出願に記載されている。なお、「ストレージシステム」という用語と「ストレージアプライアンス」という用語は、交換可能に使用される。ストレージアプライアンス300は、情報をディレクトリ、ファイル、及び仮想ディスク(vdisk)ストレージオブジェクトの階層構造としてディスク上に論理編成するための仮想化システムを提供するストレージオペレーティングシステム400を更に含む。
NAS系ネットワーク環境のクライアントが、ファイル単位でストレージを参照する一方、SAN系ネットワーク環境のクライアントは、ブロックやディスクの単位でストレージを参照する。その目的のために、ストレージアプライアンス300は、LUN、又はvdiskオブジェクトの生成により、ディスクをSANクライアントに提示(エキスポート)する。vdiskオブジェクト(以後「vdisk」)は、仮想化システムによって実施される特殊なファイルタイプであり、SANクライアントからの参照に応じてエミュレートディスクに変換される。こうしたvdiskオブジェクトの詳細については、「STORAGE VIRTUALIZATION BY LAYERING VIRTUAL DISK OBJECTS ON A FILE SYSTEM」と題するVijayan Rajan他による米国特許出願第10/216,453号に記載されている。そして、マルチプロトコルストレージアプライアンスは、後で詳しく説明するように、エキスポート制御により、それらのエミュレートディスクをSANクライアントがアクセスできるようにする。
図示の実施形態において、メモリ315は、本発明に関連するソフトウェアプログラムコード、及びデータ構造を格納するために、プロセッサ、及びアダプタによってアドレス指定可能な多数の記憶場所を有する。さらに、プロセッサ、及びアダプタは、ソフトウェアプログラムコードの実行、及びデータ構造の操作を実行するように構成された処理要素、及び/又は論理回路を含む場合がある。ストレージオペレーティングシステム400の幾つかの部分は通常、メモリ上にあり、それらの処理要素によって実行され、とりわけ、ストレージアプライアンスによって実施されるストレージサービスを支える記憶処理を実施することにより、ストレージアプライアンスの機能を構成する。当業者には明らかなように、本明細書に記載する本発明のシステム、及び方法に関するプログラム命令の記憶、及び実行には、他の処理手段や、種々のコンピュータ読取媒体を含む他の記憶手段を使用してもよい。
ネットワークアダプタ325a,bは、ポイント・ツー・ポイントリンク、ワイドエリアネットワーク(WAN)、公共ネットワーク(インターネット)上で実施される仮想私設ネットワーク(VPN)、又は共用ローカルエリアネットワーク(LAN)、あるいは他の適当なネットワークアーキテクチャを介して、ストレージアプライアンスをクライアントに接続する。また、ネットワークアダプタ325a,bは、ストレージアプライアンス300をクライアント104に接続し、クライアント104は、記憶された情報をブロック、又はディスクとしてアクセスするように更に構成される場合がある。ネットワークアダプタ325は、ストレージアプライアンス300をネットワーク102に接続するために必要とされる機械的、電気的、及び信号的回路を有するFCホストバスアダプタ(HBA)を含む場合がある。FC HBAは、FCアクセスを可能にするだけでなく、ストレージアプライアンスのプロセッサ305からFCネットワーク処理の負荷を減らす働きもする。FC HBA325は、各物理的FCポートに関連する仮想ポートを有する場合がある。各仮想ポートは、WWPN、及びWWNNを含む一意のネットワークアドレスを有する。
クライアントは、UNIXオペレーティングシステムやWindowsオペレーティングシステムのような種々のオペレーティングシステム上でアプリケーションを実行するように構成された汎用コンピュータであってよい。クライアントは一般に、SAN系ネットワークを介して情報(ブロック、ディスク、又はvdiskの形をしている)にアクセスするときに、スモールコンピュータシステムインタフェース(SCSI)プロトコルのようなブロックベースのアクセスプロトコルを使用する。SCSIは、標準的な、デバイスに依存しないプロトコルを備えた周辺機器入出力(I/O)インタフェースであり、SCSIプロトコルによれば、ディスクのような異なる周辺機器をストレージアプライアンス300に取り付けることが可能になる。
ストレージアプライアンス300は、「SCSI over TCP」(iSCSI)や「SCSI over FC」(FCP)のような、SANデプロイメントで使用される種々のSCSI系プロトコルをサポートする。したがって、イニシエータ(以後、クライアント104)は、ディスク上に格納された情報にアクセスするために、ネットワーク102上にiSCSIメッセージやFCPメッセージを発行することによって、ターゲット(以後、ストレージアプライアンス300)にサービスを要求する場合がある。当業者には分かるように、クライアントは、他のブロックアクセスプロトコルを使用して、統合ストレージアプライアンスにサービスを要求する場合もある。複数のブロックアクセスプロトコルをサポートすることにより、ストレージアプライアンスは、異種SAN環境にあるvdisk/LUNに対する統一的で首尾一貫としたアクセス手段を提供する。
ストレージアダプタ320は、ストレージアプライアンス上で実行されるストレージオペレーティングシステム400と協働し、クライアントから要求された情報にアクセスする。情報は、ディスク上に格納されている場合もあれば、情報を格納するように構成された同様の他の媒体に記憶されている場合もある。ストレージアダプタは、従来の高性能FCシリアルリンク、又はループトポロジのようなI/O相互接続構成でディスクに接続するためのI/Oインタフェース回路を含む。情報は、ストレージアダプタにより取得され、必要に応じてプロセッサ305(又はアダプタ320自体)によって処理された後、システムバス330を介してネットワークアダプタ325a及びbに転送され、そこでその情報はパケット、又はメッセージの形に成形され、クライアントに返送される。
図示の実施形態において、マルチプロトコルストレージアプライアンス上での情報の記憶は、幾つかの物理的ストレージディスクのクラスタを含む1以上のボリュームとして実施され、ディスク空間の全体的論理構成はそれらによって決まる。あるボリューム内のディスクは通常、1以上のRAID(Redundant Array of Independent or Inexpensive Disks)グループに編成される。RAID実施形態は、RAIDグループ内の所定数の物理的ディスクにわたってデータを「ストライプ」状に書き込み、ストライプ状のデータに対して適切な冗長情報を記憶することによって、データ記憶の信頼性/完全性を向上させるものである。冗長情報により、記憶装置が故障したときに失われるデータの復元が可能になる。
具体的には、各ボリュームは幾つかの物理的ディスクのアレイからなり、物理的ディスクは、幾つかのRAIDグループに編成される。例えばRAIDレベル4構成によれば、各RAIDグループの物理的ディスクは、ストライピングされたデータを記憶するように構成されたディスクと、そのデータのパリティを記憶するように構成されたディスクとを含む。ただし、他のRAIDレベル構成(例えばRAID5)を使用することも可能である。図示の実施形態では、最小限である1台のパリティディスクと1台のデータディスクを使用している。しかしながら、一般的実施形態は、1つのRAIDグループあたり3台のデータディスク、及び1台のパリティディスクを有し、1つのボリュームあたり少なくとも1つのRAIDグループを有する場合がある。
ディスクに対するうアクセスを容易にするために、ストレージオペレーティングシステム400は、ディスクによって提供される記憶空間を「仮想化」する機能を有する新規な仮想化システムコードと協働するwrite−anywhereファイルシステムを実施する。このファイルシステムは、情報をディレクトリやファイルオブジェクト(以後、「ディレクトリ」及び「ファイル」)の階層構造としてディスク上に論理編成する。「ディスク上」の各ファイルは、データのような情報を記憶するように構成された一連のディスクブロックとして実施される一方、ディレクトリは、他のファイルやディレクトリの名前やそれらのへのリンクを格納するための特殊形式のファイルとして実施される場合がある。仮想化システムによれば、ファイルシステムは、情報をvdiskとしてディスク上に更に論理編成することができる。その結果、ファイルやディレクトリに対するファイルベースの(NAS)アクセスが可能になるだけでなく、ファイルベースのストレージプラットフォーム上のvdiskに対するブロックベースの(SAN)アクセスのエミュレーションも更に可能となり、したがって、NASアプライアンスとSANアプライアンスの統合アプローチによる記憶が可能となる。
上記のように、vdiskは、普通の(標準的な)ファイルに由来するボリューム内の特殊ファイルタイプであるが、ディスクのエミュレーションをサポートするためのエキスポート制御、及びオペレーション制限を有する。クライアントが例えばNFSプロトコルやCIFSプロトコルを使用して作成可能なファイルとは異なり、vdiskは、例えばユーザインタフェース(UI)を利用して、特殊ファイルタイプのファイル(オブジェクト)としてストレージアプライアンス上に作成される。例えば、vdiskは、データを保持する特殊なファイルinodeと、セキュリティ情報のような属性を保持する少なくとも1つの関連ストリームinodeとを含むマルチノードオブジェクトである。この特殊なファイルinodeは、エミュレートディスクに関連するデータを格納するためのメインコンテナとして機能する。ストリームinodeに格納される属性によれば、リブート処理が行われても、LUNやエキスポートを存続させることができ、また、vdiskをSANクライアントに関連する単一のディスクオブジェクトとして管理することが可能になる。
また、当業者には明らかなように、本明細書に記載する本発明の技術は、いかなるタイプの特殊目的のコンピュータ(例えば、ストレージサービスを提供するアプライアンス)や汎用コンピュータにも適用することができ、ストレージシステムとして実施されるスタンドアロンのコンピュータ若しくはその一部、又はストレージシステムを含むスタンドアロンのコンピュータ若しくはその一部に適用することができる。さらに、本発明の教示は、ネットワーク・アタッチド・ストレージ環境、ストレージ・エリア・ネットワーク、及びクライアントやホストコンピュータに直接取り付けされたディスクアセンブリを含む種々のストレージシステムアーキテクチャに適合する。ただし、それらに限定はしない。したがって、「ストレージシステム」という用語は、それらの構成だけでなく、ストレージ機能を実施するように構成され、他の装置又はシステムに関連する任意のサブシステムを含むものとして広い意味で解釈しなければならない。
C.ストレージオペレーティングシステム
図示の実施形態において、ストレージオペレーティングシステムは、Write Anywhere File Layout(WAFL)ファイルシステムを実施するNetApp Data ONTAPオペレーティングシステムである。しかしながら、write in−placeファイルシステムを含む任意の適当なファイルシステムが、本明細書に記載する本発明の原理にしたがって拡張可能であるものと考えられる。したがって、「WAFL」という用語が使用された場合でも、この用語は、本発明の教示に適合する任意のファイルシステムを指すものとして広い意味で解釈しなければならない。
本明細書で使用される場合、「ストレージオペレーティングシステム」という用語は一般に、データアクセスを管理するコンピュータ上で実行可能なコンピュータ実行可能コードを意味し、ストレージアプライアンスの場合、Data ONTAPストレージオペレーティングシステムのようなデータアクセスセマンティックを実施する場合がある。Data ONTAPストレージオペレーティングシステムは、マイクロカーネルとして実施される。また、ストレージオペレーティングシステムは、UNIXやWindows NTのような汎用オペレーティングシステム、あるいは本明細書に記載するようなストレージアプリケーションのために構成された、構成変更機能を備えた汎用オペレーティングシステム上で動作するアプリケーションプログラムとして実施される場合がある。
図4は、本発明とともに使用するのに都合がよいストレージオペレーティングシステム400を示す略ブロック図である。ストレージオペレーティングシステムは、統合ネットワークプロトコルスタック、又はマルチプロトコルエンジンを形成するように編成された一連のソフトウェア層を含み、それらは、クライアントがブロックアクセスプロトコル、又はファイルアクセスプロトコルを使用して、マルチプロトコルストレージアプライアンス上に格納された情報にアクセスするためのデータ経路を提供する。プロトコルスタックは、IP層412、並びにその補助トランスポート機構であるTCP層414、及びユーザデータグラムプロトコル(UDP)層416のようなネットワークプロトコル層に対するインタフェースを提供するネットワークドライバ(例えば、ギガネットイーサネットドライバ)のメディアアクセス層410を含む。ファイルシステムプロトコル層は、マルチプロトコルファイルアクセスを提供し、その目的のために、ダイレクト・アクセス・ファイル・システム(DAFS)プロトコル418、NFSプロトコル420、CIFSプロトコル422、及びハイパー・テキスト・トランスファ・プロトコル424を含む。仮想インタフェース(VI)層426は、VIアーキテクチャを実施し、DAFSプロトコル418に必要とされるようなリモート・ダイレクト・メモリ・アクセス(RDMA)のようなダイレクト・アクセス・トランスポート(DAT)機能を提供する。
iSCSIドライバ層428は、TCP/IPネットワークプロトコル層を介したブロックプロトコルアクセスを提供する一方、FCドライバ層430は、FC HBA325と協働し、統合ストレージアプライアンスに対するブロックアクセス要求の送信や応答の受信を行う。FCドライバ、及びiSCSIドライバは、LUN(vdisk)に対するFC固有のアクセス制御、及びiSCSI固有のアクセス制御を提供し、したがって、マルチプロトコルストレージアプライアンス上の単一のvdiskをアクセスするときに、iSCSIとFCPのいずれか、あるいは両方に対するvdiskのエキスポートを管理する。また、ストレージオペレーティングシステムは、RAIDプロトコルのようなディスクストレージプロトコルを実施するディスクストレージ層440と、例えばSCSIプロトコルのようなディスクアクセスプロトコルを実施するディスクドライバ層450とを含む。
SCSIエンクロージャ・サービス(SES)モジュール455は、ディスクドライバ層450と協働し、ストレージオペレーティングシステム400に対するSESを実施する。SESモジュール455は、新規なターゲットデバイスドライバ(TDD)モジュール460を利用して、他のストレージシステムから到来するSESメッセージを処理する。後で詳しく説明するように、到来するSESメッセージは、TDD460によって受信され、SESモジュール455へ転送され、更に処理される。応答はSESモジュール455からTDDモジュール460へ送信され、FCドライバ465を介してイニシエータに転送される。図示の実施形態では、FCドライバモジュール465が、ストレージアダプタ320を管理する。
ディスクソフトウェア層を統合ネットワークプロトコルスタック層に橋渡しするのは、ファイルシステム436によって実施される仮想化システム480である。ファイルシステム436は、例えばvdiskモジュール433、及びSCSIターゲットモジュール434として実施される仮想化ソフトウェアと交信する。これらのモジュールは、ソフトウェアとして実施しても、ハードウェアとして実施しても、ファームウェアとして実施しても、それらの組み合わせとして実施してもよい。とりわけ、vdiskモジュール433は、vdiskを実施するために、非常に様々なvdisk(LUN)コマンドを実施し、それらをファイルシステム436、及びSCSIターゲットモジュール434と交信するための原始的なファイルシステムオペレーション(「プリミティブ」)に変換することによって、SANデプロイメントを管理する。
次に、SCSIターゲットモジュール434は、LUNを特殊なvfileタイプに変換するマッピング手順を提供することにより、ディスク、又はLUNのエミュレーションを開始する。SCSIターゲットモジュールは例えば、FCドライバやiSCSIドライバ428、430とファイルシステム436との間に配置され、SANブロック(LUN)空間とファイルシステム空間の間における仮想化システム480の変換層として機能する。ファイルシステム空間では、LUNはvdiskで表される。ファイルシステム436の上にSAN仮想化を「配置」することにより、マルチプロトコルストレージアプライアンスは、従来のシステムで行われているアプローチを逆転させ、実質的に全てのストレージアクセスプロトコルに対し、単一の統一されたストレージプラットフォームを提供する。
ファイルシステム436は、例えば4キロバイト(KB)ブロックを使用し、inodeを使用してファイルを表現するディスク上フォーマット表現を有するWrite Anywhere File Layout(WAFL)ファイルシステムを実施する。ファイルシステムの構造に関する詳しい説明は、1998年10月6日に発行された「METHOD FOR MAINTAINING CONSISTENT STATES OF A FILE SYSTEM AND FOR CREATING USER-ACCSSIBLE READ-ONLY COPIES OF A FILE SYSTEM」と題するDavid Hitz他による米国特許第5,819,292号に記載されており、この文献は、参照により完全に本明細書の中で説明されたものとして本明細書に援用される。
D.仮想ストレージシステム(vfiler)
本発明は、物理的ストレージシステム(アプライアンス)プラットフォームのような単一の物理的サーバ内に、仮想ストレージシステム(vfiler)のようなブロックベースの仮想サーバの複数のインスタンスを作成し、管理する機能を備えたアーキテクチャにおいて使用することができる。vfilerは、iSCSIのようなブロックベースのプロトコルに応答してデータアクセス要求に対するサービスを提供するように構成されたマルチプロトコルサーバのインスタンスを確立するための、ストレージシステムプラットフォームのネットワークリソース、及びストレージリソースの論理パーティションである。各vfilerは、プラットフォーム上の他のvfilerとは全く無関係に管理され、実行される。その目的のために、ストレージユニットや、ネットワークインタフェースのネットワークアドレスといった専用ストレージシステムリソースは、自由にグループ化され、「ハードパーティショニング」され、ストレージアプライアンス内にセキュリティドメインを確立する。ストレージオペレーティングシステムやファイルシステムのような更に別の共通のストレージシステムリソースが、複数のvfiler間で共用される場合もある。
具体的には、各vfilerに、特定量のストレージリソース、若しくは専用かつ個別単位のストレージリソースのサブセットと、1又は複数の専用かつ個別のネットワークアドレスとが割り当てられる。また、各vfilerは、そのクライアントに代わって、共通ファイルシステムに対する共用アクセスが許可される。したがって、例えばクライアントがアクセスする共通ファイルシステムに関連するセキュリティオブジェクトの解釈は、vfilerごとに異なる場合がある。この問題に対処するために、各vfilerは、vfilerコンテキストデータ構造(以後、「vfilerコンテキスト」)を有し、とりわけ、そのvfilerに固有のセキュリティドメインに関連する情報を有することにより、vfilerに割り当てられた共有リソースに対するアクセス制限を可能にする。
例えば、第1のvfilerのvfilerコンテキストは、ストレージアプライアンス上のストレージリソースの第1のサブセットに対するアクセス要求が発行されたときに、第1のセキュリティドメインのユーザ、又はクライアントが、ソースネットワークアドレスと宛先ネットワークアドレスの第1の組を使用できるようにする。同様に、第2のvfilerのvfilerコンテキストは、第2のセキュリティドメインのクライアントが、ソースネットワークアドレスと宛先ネットワークアドレスの第2の組を使用して、ストレージリソースの第2のサブセットにアクセスできるようにする。なお、各セキュリティドメインのクライアントは、ストレージアプライアンス上の互いの「存在」を認識してなく、また、互いのストレージリソースをアクセスすることもできない。
図5は、複数のvfilerを有するストレージシステムプラットフォーム500の一実施形態を示す概略図である。各vfilerは、例えばCIFSサーバやiSCSIサーバのようなサーバとして実施される場合があり、それらは、例えばVF1〜VF3のような論理名で参照される。クライアントから見ると、各vfilerは、他のvfilerとは無関係に独立している。各vfiler VF1〜VF3は、1以上のネットワークインタフェース508a〜cに割り当てられた1又は複数のインターネットプロトコル(IP)アドレスを有するように構成される場合がある。この文脈において、「ネットワークインタフェース」という用語は、IPアドレスを割り振ることが可能なインタフェースを意味し、例えば、仮想インタフェース(VIF)のような「物理的」NIC及び「ソフト」NIC、仮想ローカルエリアネットワーク(VLAN)、及びエミュレートされたLAN(ELAN)などを含む。なお、単一のNICが複数のIPアドレスを有することもでき、そのような構成の場合、必要であれば、複数のvfilerが単一のNICを共用することも可能である。
ストレージアプライアンスの各インタフェースには、そのインタフェースをIP空間に結びつけるためのIP空間識別子(ID)506a〜cが更に割り振られる。「IP空間」とは、ストレージアプライアンス、及び該ストレージアプライアンスが有するストレージオペレーティングシステムが属する固有のIPアドレス空間である。単一のストレージアプライアンスが複数のIP空間を有することも可能である。各vfilerには1つのIPアドレス空間が割り振られ、したがって各vfilerは1つのIP空間に属する。各IP空間内の多数のIPアドレスは、一意(重複しないもの)でなければならない。IP空間に関する詳しい説明は、「TECHNIQUE FOR ENABLING MULTIPLE VIRTUAL FILERS ON A SINGLE FILER TO PARTICIPATE IN MULTIPLE ADDRESS SPACES WITH OVERLAPPING NETWORK ADDRESSES」と題するGaurav Banga他による米国特許出願第10/035,666号に記載されている。
各vfilerに割り当てられるストレージリソースの単位には、ボリュームやサブボリューム(qtree)がある。ボリューム(V)510は、ファイルシステム、すなわちディレクトリとファイルの階層を含むストレージユニットである。Qtree(QT1〜3)520は、例えば、ファイルのinodeの中に格納されたqtree識別子(qtreeID)によってファイルシステム内で自分を識別することが可能な特性を持つ、小型ボリューム、又はボリュームの一区画に似た特殊なディレクトリである。vfilerアーキテクチャは、リソースの作成、割り振り、及びvfilerへのマッピングを含む、ストレージリソースの効率的利用、及び管理を提供する。例えば、仮想サーバ(vfiler等)、及び当該仮想サーバに関連するストレージリソース(qtree等)は、1つのサーバ(ストレージシステム等)にマイグレートされる場合もあれば、同様の名前のリソースを有する他の仮想サーバ(vfiler)に統合される場合もある。ストレージリソースはvfiler単位で割り当てられるため、このようなサーバ統合、及びストレージマイグレーションは、クライアントにとって透過的である。なぜなら、クライアントがそのデータを参照する方法に何ら変更がないからである。
図示の実施形態において、各vfilerは、そのvfilerがアクセス可能な特定量のデータ、例えば、幾つかのボリュームやqtreeを所有する。また、vfilerは、vdiskを直接所有しないが、vdiskが属するボリュームやqtreeの所有権属性を引き継ぐ。したがって、あるvfilerが、所与のボリューム又はqtreeにアクセスできる場合、そのvfilerは、それらのストレージユニットに記憶されたいずれのvdiskにもアクセスすることができる。その結果、ストレージユニットの所有権は単純化され、上で援用した「ARCHITECTURE FOR CREATING AND MAINTAINING VIRTUAL FILERS ON A FILER」と題する米国特許出願に記載されているようなファイルベースのvfilerに適したものとなる。
本発明の一態様によれば、vfilerは、ストレージオペレーティングシステムに関連するUIの次のCLIコマンド:vfiler create [xyz] [-s IPspace-name] [-i IP address(s)] [/vol/vol2] [/vol/vol3/qt1]によって作成される。
ここで、xyzは作成するvfilerの名前を指定し、-s IPspace-nameはそのvfilerが属するIP空間の名前を指定し、-i IP adderss(s)はそのvfilerの特定のIPアドレス又は一連のIPアドレスを指定する。また、/vol/vol2という記載は、第1のストレージユニットへの第1パス記述子であり、/vol/vol3/qt1という記載は、第2のストレージユニットへの第2パス記述子である。デフォルトvfilerは、物理的ストレージアプライアンスの起動時の初期化時に作成されるvfiler0(VF0)である。VF0は、ストレージアプライアンス内にvfilerが何もないときに作成される唯一のvfilerである。ストレージアプライアンス上の全てのvfilerに対するリソース割り当てが全て完了した後、例えば、未割り当てのシステムリソースに対するアクセスを可能にするために、デフォルトVF0は、物理的ストレージアプライアンスプラットフォームに関連付けられる。vfilerが何も定義されていないとき、VF0は、ストレージシステムの全リソースを有する。
各vfilerは、ストレージアプライアンスのルートディレクトリにある特定のメタデータを管理する。このメタデータは、そのvfilerの種々の設定ファイルを含む。さらに、このメタデータは、そのvfilerのルートディレクトリにある隠しメタデータディレクトリにミラーリングされる。通常、メタデータは、vfilerの/etcディレクトリにミラーリングされる。ただし、代替実施形態として、メタデータは、vfilerディレクトリ構造内の他の場所にミラーリングされる場合がある。vfilerメタデータに変更があったときは必ず、隠しメタデータディレクトリにも変更が加えられる。隠しメタデータディレクトリは通常、後で詳しく説明するように、vfilerマイグレーションに使用される。
具体的には、vfiler作成CLIコマンドは、各vfilerに対してvfilerコンテキスト600a〜cを作成する。なお、ストレージアプライアンスの初期化時には、VF0に対してvfilerコンテキストが作成される。図6は、マルチプロトコルサーバのインスタンスを確立するために必要とされる設定情報、又は「状態」を含むvfilerコンテキスト600のコア内表現を示す略ブロック図である。vfilerコンテキスト600は、vfilerの名前602を入れるためのフィールドと、vfilerコンテキストを使用して作成された世界的に一意な(重複のない)識別子(UUID604)を入れるためのフィールドとを有する。UUIDは、例えば、現在の日時や、そのvfilerに関連するメディア・アクセス・コントロール(MAC)アドレスを含む場合がある。vfilerリストフィールド606は、ストレージアプライアンスプラットフォーム上のvfilerのリストを含み、IP空間識別子(ID)フィールド608は、そのvfilerのIP空間IDを有する。
vfilerアーキテクチャによれば、ストレージデバイスやネットワークデバイスのようなハードウェアリソースが、vfilerに直接割り当てられることはない。むしろ、それらのハードウェアデバイスの機能の一部のみに相当するソフトウェアオブジェクトが、vfilerに割り当てられる(最も一般的に言えば)。これらのソフトウェア(「ソフト」)オブジェクトは、ハードウェアリソースのうちの「動的に調節可能な」部分にのみ対応する。vfilerへの割り当てにソフトオブジェクトを使用する利点は、物理的ストレージアプライアンス上のvfiler間で、ハードウェアリソースの一部又は全部を割り当て、追加し、移動し、除去する際の総合的な柔軟性にある。これらの処理は、ハードウェアパーティションを利用する従来の仮想サーバ間でハードウェアオブジェクトを再構成したり、コピーしたりするための複雑で実行時間の長い手順とは違い、実行時間の短い単純なコマンドを使用して非常に迅速に達成することができる。したがって、vfilerコンテキスト構造600の他のフィールドは、仮想ファイラストレージ(vfstore)構造(ソフトオブジェクト)のリスト610、及び仮想filerネットワーク(vfnet)ソフトオブジェクトのリスト612を有する。
「リソースマッピング」は、qtree/volume、及びifnet構造のようなハードウェアリソースの部分に割り当てられたvfilerの割り当て済みリソースを表わすソフトオブジェクト間のマッピングとして定義される。したがって、vfstoreソフトオブジェクトとvfnetソフトオブジェクトは、それらのハードウェアリソースの機能のうちの動的調節可能な部分を表わすある程度の間接的な指示を提供する。すなわち、これらのソフトオブジェクトは、例えば、オブジェクトのポインタを変更することにより、それらのネットワークリソースやストレージリソースを「論理的に」再割り当てするときの柔軟性が得られるような仕方で、ハードウェアリソースを表わす他のソフトウェアオブジェクト(データ構造)に「リンク」される。このような柔軟性によれば、例えば、ネットワークハードウェアリソースやストレージハードウェアリソースを手動で再割り当てすることによるvfiler構成変更の物理的確立とは違い、ファイルシステムレベルでのvfiler構成変更の論理的確立が可能となる。
また、vfilerアーキテクチャにおけるリソースマッピングによれば、例えばvfiler間でのネットワークリソースやストレージリソースのマイグレーション(割り当て)に比べて、効率的なネットワーク及びストレージの管理も可能になる。ネットワーク管理とは、ファイラプラットフォーム上のリソースその他の割り当てに動的変更がなされたときに、vfilerとそれらが有するネットワークリソースとの間のリソースマッピングを管理するための、一連のデータ構造及びアルゴリズムを指す。一方、ストレージ管理とは、プラットフォーム上のリソースその他の割り当てに動的変更がなされたときに、vfilerとそれらが有するストレージリソースとの間のリソースマッピングを管理するための、一連のデータ構造及びアルゴリズムを指す。割り当て変更には例えば、vfiler間でのリソースの追加、移動、及び削除がある。他のシステム変更には例えば、新たなNIC(VIF、VLAN、又は新たなデバイス)の作成や、ストレージボリュームの追加/運転開始/運転停止がある。
また、ネットワーク及びストレージの管理には、vfiler間でリソースの割り当てに変更がなされたときにネットワークオブジェクトやストレージオブジェクトに対して実施されるタスクも含まれる。例えば、IPアドレスのvfiler割り当てが変化したときは、IPアドレスに関連するTCP/IP接続及びルーティングを再初期化しなければならない。同様に、ストレージユニットのvfiler割り当てが変化したときは、qtree又はボリューム上で実行中のディスク入出力処理を中止し、クオータを初期化しなければならない。
各vfilerコンテキスト600は、特定のプロトコル又はサブシステムのインスタンスのために必要となる全ての情報(グローバル変数等)を有する複数の「モジュール」データ構造を更に含む。例えば、CIFSモジュールデータ構造620は、ドメインコントローラ622との接続、CIFSプロトコルのアクティブセッション624、及びCIFSプロトコルに関連する種々の制御ブロック625に関する情報を含む、CIFSプロトコルのインスタンスに必要とされる全ての情報を含む。ドメインコントローラは、ログイン要求を受け取り、それらの認証を開始するサーバである。CIFS要求に対するWindows NTセキュリティを可能にするために、セキュリティドメイン626に関する情報も与えられる。このセキュリティ情報は、ドメイン部分、及び関連ID(RID)部分を含み、後者のRIDは、UNIXセキュリティのユーザIDに似ている。Windowsドメインセキュリティの場合、セキュリティ情報は、ドメインコントローラとの信頼関係も含む。この信頼関係は、vfilerがドメインコントローラを信頼し、vfilerの代わりにドメインコントローラにユーザを認証させるvfilerの機能を意味する。各CIFSモジュール620は、CIFS認証プロセスのプロセスID(PID628)を更に含み、このプロセスIDにより、CIFS層は、正しいCIFS認証プロセスに認証要求を送信することができる。
vfilerに関連するプロトコル、及びサブシステムのそれぞれについて、例えば、iSCSIプロトコル630、vdiskデータ構造640、SCSIターゲット650、NISサブシステム660、ドメインネームサービス(DNS)サブシステム670、及びレジストリ680といった同様の「モジュールごとの」データ構造が存在する。ただし、それらに限定はされない。NISサブシステム、すなわち「イエローページ」は、各ユーザパスワードに関連するユーザIDやグループIDのようなセキュリティ情報を記憶する分散データベースとして実施されるNFSプロトコル用のサービスロケータである。vdiskデータ構造は、vfilerがvfilerに関連するvdiskを管理するための、vfilerによって使用される種々のコア内データ構造を指すポインタを含む。SCSIターゲットデータ構造650はvfilerによって使用され、、vfilerにログインしたイニシエータのIDや種々のアダプタの現在の状態のようなvfilerごとのデータの記憶に使用される。
E.ロードバランシング
本発明は、共有バックエンドストレージを備えた複数の物理的ストレージシステムにわたりユーザワークロードのバランスをリアルタイムにとるシステム、及び方法を提供する。ストレージシステムは、ハブのような複数の中間ネットワークデバイスを介してディスクシェルフに相互接続される。各ストレージシステムは、ターゲットデバイスドライバモジュールを含むストレージオペレーティングシステムを有する。ロードバランシングプロセスが、ストレージシステム環境における管理コンソール内で実行され、例えば決まった時間間隔で、各物理的ストレージシステムのパフォーマンスデータを収集する。また、ロードバランシングプロセスは、収集されたパフォーマンスデータを使用し、通常は所定の時間にわたって、例えば平均値の末尾30分時間枠にわたって、各物理的ストレージシステムについてメトリックを計算する。計算されたメトリックが閾値を超えている物理的ストレージシステムがあった場合、プロセスは、ソース物理的ストレージシステムと宛先物理的ストレージシステムを選択する。
選択されるソース物理的システムは、相対的負荷の高い物理的ストレージシステムであることが好ましい。一方、選択される宛先物理的ストレージシステムは、相対的負荷の低い物理的ストレージシステムであることが好ましい。さらに、ソース物理的ストレージシステムで実行されている各vfilerについて、パフォーマンスメトリックの使用率テーブルが計算される。経験則的なアルゴリズムを使用することにより、ソースから宛先へマイグレートすべきvfilerの選択が可能となる。次に、選択されたvfilerをディストリビュータに「手動」マイグレートすべきことが、管理者に対して提案される。代替実施形態として、ロードバランシングプロセスは、ソースから宛先への選択されたvfilerの「自動」vfilerマイグレーションを開始する場合がある(ユーザの介入なしに)。
図7は、本発明の一実施形態による、複数の物理的ストレージシステム間でユーザワークロードのバランスをとるための手順700のステップの詳細を示すフロー図である。この手順は、ステップ705から開始され、ステップ710へ進み、そこで、ロードバランシングプロセス255は、所定時間にわたって各物理的ストレージシステムについてパフォーマンスデータを収集する。これは、物理的ストレージシステムに対して従来のリモートプロシージャコールを使用し、パフォーマンスデータを収集することによって達成することができる。例示的実施形態において、ロードバランシングプロセスは、約1分の時間間隔でこのデータを収集する。しかしながら、本発明の他の実施形態では、ストレージシステム環境の特定ニーズに適合させるために、他の時間間隔を使用する場合もある。パフォーマンスデータには、とりわけ、物理的ストレージシステムにおけるプロセッサ(複数の場合もあり)の使用率、種々のドメインにおいて消費される処理時間の割合、物理的ストレージシステムによって提供される特定のボリューム、又は他のデータコンテナに対して行われる処理の数、及び物理的ストレージシステム上で機能しているプロセッサ数がある。また、本明細書で使用される場合、ドメインは、2個(又はそれ以上)の異なるプロセッサ上で同時に実行することができない特定のプロセスを識別する。例示的実施形態において、ドメイン使用率はアレイとして管理され、アレイは、特定のストレージシステムアーキテクチャ内で使用される各ドメインについて1つのエントリを有する。なお、本発明の代替実施形態では、更に別のパフォーマンスデータ、又は代替パフォーマンスデータを収集する場合もある。
ステップ715において、ロードバランシングプロセスは、収集されたパフォーマンスデータを使用して、各物理的ストレージシステムについて一組の総合メトリックを計算する。短期スパイクを避けるために、例えば、パフォーマンスメトリックは、移動時間枠にわたる平均として計算される。例えば、メトリックは、30分の移動時間枠に対して計算される場合がある。すなわち、総合メトリックは、過去30分にわたる平均として計算される。移動時間枠を使用することで、一時的なスパイクの発生をなくすことができる。移動時間枠を超えてシステムが過負荷にならない限り、負荷のバランスが再度とられることはない。
各物理的ストレージシステムについて総合メトリックを計算する場合、少なくとも2つの更に別のデータ点、すなわち、(i)物理的ストレージシステム上の全てのボリュームについての合計スピンドル数、及び(ii)物理的ストレージシステムに関連する各ボリュームによって使用される合計容量が収集される。なお、スピンドル数は、所与のボリュームに関連する物理ディスクの数である。これらのデータ点は、従来のRPC処理を使用して物理的ストレージシステムに収集される場合がある。ロードバランシングプロセスは、物理的ストレージシステムの総合スピンドル使用率を計算するために、全ボリュームのスピンドル数の全ての和を計算する。同様に、全てのボリュームによって使用される全ての容量の和も計算される。
他の総合メトリックには、例えば、プロセッサ余裕率、ドメイン「余裕」率、スピンドル余裕、容量余裕、及び一秒あたりの処理の総数がある。本明細書で使用される場合、余裕とは一般に、あるリソースの現在の使用率と、そのリソースの最大使用率との差を意味する。プロセッサ余裕率は、最大パーセンテージから平均プロセッサ使用率を差し引くことによって算出される。マルチプロセッサシステムの場合、平均プロセッサ使用率は、各プロセッサについて結合される。シングルプロセッサシステムの場合、最大パーセンテージは、例えば95%に設定される場合がある。2プロセッサシステムの場合、このプロセッサ値は180%に設定される場合がある。同様に、4プロセッサシステムの場合、最大プロセッサ値は300%に設定される場合がある。これらの値は、物理的ストレージシステムが異なれば異なる場合があり、単なる例として考えなければならない。ドメイン余裕率は、所定のパーセンテージ値から余裕使用率を差し引くことによって算出される。例示的実施形態において、この所定のパーセンテージ値は、90%に設定される。なお、このドメイン余裕率は、各ドメインについて計算される。したがって、このステップの間に、ドメイン余裕率のアレイが生成される。
スピンドル余裕は、ストレージシステムのタイプに関連するスピンドルの最大数から、物理的ストレージシステムによって使用されるスピンドルの合計計算数を差し引くことによって算出される。各タイプの物理的ストレージシステムは、その物理的ストレージシステムに関連する特定の最大スピンドル数を有する。容量余裕は、物理的ストレージシステムに関連する最大容量から当該システムの総和容量を差し引くことによって算出される。一秒当たりの合計処理値は、先行する時間枠にわたる、物理的ストレージシステムに関連するボリュームの一秒当たりの処理の平均である。
総合メトリックを計算した後、次にプロセスは、ステップ720へ進み、そこで所定のマイグレーション閾値を超えている物理的ストレージシステムがあるか否かを判定する。例えば、要望に応じてシステム管理者がストレージシステムのパフォーマンスを調節できるようにするために、それらの閾値は調節可能である場合がある。少なくとも1つの閾値を超える物理的ストレージシステムが何もなければ、手順はステップ710へ戻る。
ただし、物理的ストレージシステムが閾値を超えている場合、手順はステップ725へ移り、そこで、ロードバランシングプロセスは、ソース物理的ストレージシステム、及び宛先物理的ストレージシステムを選択する。適当なソース物理的ストレージシステムを選択する際に、2つの異なる規格が使用される場合がある。すなわち、一方は、シングルプロセッサ物理的ストレージシステムに関するもので、他方はマルチプロセッサ物理的ストレージシステムに関するものである。本発明の例示的実施形態によれば、ある環境内の物理的ストレージシステムは全て、同数のプロセッサを有していなければならない。
ソース物理的ストレージシステムがシングルプロセッサタイプである場合、ソース物理的ストレージシステムの候補は、CPU又はプロセッサ余裕率が所定の値、例えば15%以下のストレージシステムである。なお、代替実施形態において、この値は、管理者の特定の要望に応じて、あるいはハードウェア固有の問題に対処するために、変更される場合がある。この余裕テストを満足する物理的ストレージシステムが複数ある場合、ロードバランシングプロセスは、より低いプロセッサ余裕を有するストレージシステムに優先権を与えるように、それらの物理的ストレージシステムをランク付けする。同じプロセッサ余裕を有する2以上の物理的ストレージシステムは、無作為に順位付けされる場合がある。上記の基準に適合する物理的ストレージシステムがない場合、すなわち、所定値よりも小さいプロセッサ余裕を有する物理的ストレージシステムが存在しない場合、マイグレーションは不要となる。
マルチプロセッサシステムの場合、ソース物理的ストレージシステムは、プロセッサ余裕が所定値以下であるか、又は(ドメインアレイにおける任意のドメインの)ドメイン余裕が所定値以下であるストレージシステムとして識別される場合がある。この判定がドメイン単位で実施される際、いずれかのドメインが、所定値以下の余裕を有する場合、その物理的ストレージシステムが、マイグレーションの候補となる。例示的実施形態では、プロセッサ余裕が30%以下であるか、又はドメイン余裕が10%以下でなければならない。上記のように、これらの割合は単なる例であり、管理者の要望によって、又はハードウェア要件に従う上で異なる場合もある。マイグレーションの候補が複数ある場合、ロードバランシングシステムは、ドメイン余裕が一番少ないストレージシステムに優先権を与えることによって、候補に順位を付ける。この場合も、同数の場合、マイグレーションの候補は無作為に順位付けされる。上記の基準のいずれかに適合する候補が存在しない場合、マイグレーションは不要となる。
ロードバランシングプロセスは、似たような一連のテストを使用して、宛先物理的ストレージシステムを選択する。シングルプロセッサシステムの場合、ロードバランシングプロセスは、プロセッサ余裕が所定値以下である物理的ストレージシステムを宛先の候補として選択する。例示的実施形態において、この所定値は25%である。適合する複数の候補は、最大プロセッサ余裕を有するストレージシステムに優先権を与えることによって順位付けされる。先と同様に、同数の場合、候補ストレージシステムは、無作為に順位付けされる。基準に適合する物理的ストレージシステムが存在しない場合、有効な宛先物理的ストレージシステムが存在しないため、マイグレーションは行われないことになる。
同様の考え方が、マルチプロセッサストレージシステムにおける宛先の決定の際にもなされる。マルチプロセッサストレージシステムの場合、宛先ストレージシステムの候補は、プロセッサ余裕が所定値以上であるか、又は(ドメインアレイの)いずれかのドメインの最小余裕が所定値以上であるストレージシステムである。例示的実施形態では、プロセッサ余裕が60%以上であるか、又はドメイン余裕が20%以上である。複数の候補が存在する場合、ロードバランシングプロセスは、最高ドメイン余裕から開始してストレージシステムを順位付けする。この場合も、この基準に適合する物理的ストレージシステムが存在しない場合、有効な宛先物理的ストレージシステムは存在しないため、マイグレーションは行われないことになる。
ソース物理的ストレージシステムが選択された後、ステップ730において、ロードバランシングプロセスは、ソース物理的ストレージシステム上の各vfilerについて使用率テーブルを作成する。使用率テーブルは、一秒あたりの平均処理数を一秒あたりの合計物理的ストレージシステム処理で割ることにより算出されるvfiler率(VR)、すなわちVR=(一秒当たりのvfiler処理)/(一秒当たりのストレージシステム処理)を含む。VRの計算は、使用率テーブルの構築に使用される。使用率テーブルは、プロセッサ使用値、ドメイン使用率、スピンドル使用率、及び容量使用率値を含む。プロセッサ使用率は、VRに物理的ストレージシステムの平均総合プロセッサ使用率を乗じたものとして規定される。すなわち、プロセッサ使用率=VR*(物理的ストレージシステムの平均プロセッサ使用率)である。ドメイン使用率は、VRに各ドメイン使用率を乗じることによって算出される。すなわち、ドメイン使用率=VR*(平均ドメイン使用率)である。スピンドル使用率は、ボリュームのスピンドル数であり、容量使用率は、vfilerによって提供されるボリュームに使用される容量である。
使用率テーブルを生成した後、ステップ735において、ロードバランシングプロセスは、マイグレートすべき適当なvfilerを選択する。この選択は、図8を参照して後で詳しく説明するように、まずマイグレートすべき適当なvfiler候補を決定し、次いで、最高プロセッサ使用率を有する候補vfilerを選択することによってなされる。次に、ステップ740において、ロードバランシングプロセスは、選択されたvfilerのマイグレーションを管理者に提案する。代替実施形態において、ロードバランシングプロセスは、選択されたvfilerをソース物理的ストレージシステムから宛先物理的ストレージシステムへ「自動的」にマイグレートする場合がある。
図8は、本発明の一実施形態による、ストレージシステムが単一のプロセッサしか有しない環境において、あるvfilerがマイグレーションの候補であるか否かを判定する手順800のステップを詳細に示すフロー図である。この手順は、ステップ805から開始され、ステップ810へ進み、そこで、vfilerのスピンドル使用率が宛先ストレージシステムのスピンドル余裕よりも大きいか否かの判定を行う。vfilerのスピンドル使用率が宛先ストレージシステムのスピンドル余裕以下である場合、手順はステップ815へ進み、そこで、vfilerの容量使用率が、宛先ストレージシステムの容量余裕よりも大きいか否かの判定を行う。vfilerの容量使用率が、宛先ストレージシステムの容量余裕以下であった場合、手順はステップ820へ進み、そこで、宛先ストレージシステムのプロセッサ余裕からvfilerのプロセッサ使用率を引いたものが、所定の閾値、例えば15%未満であるか否かの判定を行う。所定の閾値未満であった場合、手順はステップ825へ進み、そこで、vfilerのプロセッサ使用率が、所定の閾値、例えば2%未満であるか否かの判定を行う。filerのCPU使用率が所定の閾値未満であった場合、ステップ830において、そのvfilerはマイグレーションの候補として識別される。そして、手順はステップ840で終了する。ステップ810〜825において、テストされる条件に合致した場合、プロセスはステップ835へ分岐し、そのvfilerは、マイグレーションの候補ではないものとしてマーキングされる。そして、手順はステップ840で終了する。すなわち、手順800におけるそれらのテストのいずれかに合格したvfilerは、マイグレーションの候補にはならない。なぜなら、宛先物理低ストレージシステムが閾値を超えるか、又はそのvfilerは少量のリソースしか使用しないからである(すなわち、ステップ825)。
図9は、本発明の一実施形態による、マルチプロセッサシステムにおいてあるvfilerがマイグレーションの候補になるか否かを判定するための手順のステップを詳細に示すフロー図である。この手順はステップ905から開始され、ステップ910へ進み、そこで、vfilerのスピンドル使用率が宛先ストレージシステムのスピンドル余裕よりも大きいか否かの判定を行う。大きくなければ、手順はステップ915へ進み、そこで、そのvfilerの容量使用率が宛先ストレージシステムの容量余裕よりも大きいか否かの判定を行う。大きくなければ、手順はステップ920へ進み、そこで、宛先物理的ストレージシステムのプロセッサ余裕からそのvfilerのプロセッサ使用率を差し引いたものが、所定の閾値、例えば30%未満であるか否かを判定する。所定の閾値未満でなければ、ロードバランシングプロセスはステップ925へ進み、宛先物理的ストレージシステムのドメイン余裕からvfilerのドメイン使用率を差し引いたものが、所定の閾値、例えば10%未満であるか否かを判定する。この計算は例えば、ドメインごとに実施される場合がある。したがって、全てのドメインについて、計算結果は所定の値未満でなければならない。所定の閾値未満でなければ、次にロードバランシングシステムは、ステップ930において、vfilerのプロセッサ使用率が、所定の閾値、例えば2%未満であるか否かを判定する。これらの条件のいずれにも適合しなかった場合、すなわち、テストが肯定的であった場合、次にロードバランシングプロセスは、ステップ935において、そのvfilerをマイグレーションの候補として識別し、その後、ステップ945において終了する。一方、ステップ910〜930におけるテストのうちのいずれかの結果が肯定的な結果であれば、手順はステップ940へ分岐し、そのvfilerはマイグレーションの候補ではないものとしてマーキングされ、その後、ステップ945で終了する。
もう一度まとめると、本発明は、共有バックエンドストレージを備えた複数のストレージシステムにわたってユーザワークロードのロードバランスをとるシステム、及び方法に関する。管理コンソール上のロードバランシングプロセスは、ストレージシステム環境における物理的ストレージシステムに関連するパフォーマンスデータを定期的に収集する。収集されたデータから、最後の時間枠にわたって、一連のメトリックが計算機。計算されたメトリックのうちのいずかが所定の閾値を超えている場合、ロードバランシングプロセスは、ソース物理的ストレージシステム、及び宛先物理的ストレージシステムを識別する。物理的ストレージシステムを識別した後、ロードバランシングプロセスは、宛先へマイグレートすべきソース上の適当なvfilerを識別する。次にロードバランシングプロセスは、マイグレーションの候補vfilerを識別し、最高プロセッサ使用率を使用して1つを選択する。
上記の説明は、本発明の特定の実施形態に関するものである。しかしながら、当業者には明らかなように、記載した実施形態の利点の一部、又は全てを維持したままで、記載した実施形態に対して他の変更や修正を施すことも可能である。例えば、本発明の教示は、コンピュータ上で実行されるプログラム命令を有するコンピュータ読取可能媒体を含むソフトウェアとしても、ハードウェアとしても、ファームウェアとしても、あるいはそれらの組み合わせとしても実施することができる。また、本明細書の説明は種々のステップを実施するロードバランシングプロセスを例として記載されているが、ロードバランシングプロセスの機能は、各物理的ストレージシステムにおいて実施してもよい。さらに、例示的実施形態に関係して種々のパーセンテージが記載されているが、それらのパーセンテージ値は、単なる例として解釈されるべきものである。したがって、本明細書の説明は、単なる例として解釈すべきものであり、本発明の範囲を制限するものではない。したがって、添付の特許請求の範囲の目的は、そうした変更や修正も、本発明の思想、及び範囲の中に含めることにある。
ストレージシステムクラスタ環境の略ブロック図である。 本発明の一実施形態による例示的ストレージシステム環境の略ブロック図である。 本発明の一実施形態による例示的ストレージシステムの略ブロック図である。 本発明の一実施形態による例示的ストレージオペレーティングシステムの略ブロック図である。 本発明の一実施形態による物理的ストレージシステム内で実行される複数のvfilerを示す略ブロック図である。 本発明の一実施形態による例示的vfilerコンテキストを示す略ブロック図である。 本発明の一実施形態による、複数のストレージシステム間におけるユーザワークロードのロードバランスをとるための手順のステップの詳細を示すフロー図である。 本発明の一実施形態による、シングルプロセッサシステムにおいてマイグレートすべきvfilerを判定する手順のステップの詳細を示すフロー図である。 本発明の一実施形態による、マルチプロセッサシステムにおいてマイグレートすべきvfilerを判定する手順のステップの詳細を示すフロー図である。

Claims (15)

  1. 複数の物理的ストレージシステムにわたってワークロードのバランスをリアルタイムにとるためにコンピュータで実施される方法であって、
    (a)一定時間にわたって所定の時間間隔で前記複数の物理的ストレージシステムのそれぞれについて、前記物理的ストレージシステムにおけるプロセッサ使用率、種々のドメインにおいて消費される処理時間の割合、前記物理的ストレージシステムによる一秒あたりの処理の総数、及び前記物理的ストレージシステム上で機能しているプロセッサの数のうちの1以上を含むパフォーマンスデータを収集するステップと、
    (b)前記複数の物理的ストレージシステムのそれぞれについて一組の総合メトリックを計算するステップであって、前記一組の総合メトリックにおける各総合メトリックは、収集されたパフォーマンスデータのそれぞれに基いて前記一定時間にわたって計算される平均値である、前記複数の物理的ストレージシステムのそれぞれについて一組の総合メトリックを計算するステップと、
    (c)前記一組の総合メトリックにおけるいずれか1つの総合メトリックが前記一組の総合メトリックにおける各総合メトリックについて予め定義された閾値を超えているか否かを検査することにより、前記物理的ストレージシステムのうちのいずれかがマイグレーション閾値を超えているか否かを判定するステップと、
    (d)前記物理的ストレージシステムのうちの少なくとも1つが前記マイグレーション閾値を超えていることが判定された場合、前記マイグレーション閾値を超えている前記少なくとも1つの物理的ストレージシステムの中から、ソース物理的ストレージシステムを選択するステップと、
    (e)前記物理的ストレージシステムのうちの少なくとも1つが前記マイグレーション閾値を超えていることが判定された場合、前記マイグレーション閾値を超えていない前記物理的ストレージシステムの中から、宛先物理的ストレージシステムを選択するステップと、
    (f)前記ソース物理的ストレージシステム及び前記宛先物理的ストレージシステムを選択した後、前記ソース物理的ストレージシステムから前記宛先物理的ストレージシステムへマイグレートするために、前記ソース物理的ストレージシステムに関連する仮想ストレージシステムを選択するステップとを含み、前記仮想ストレージシステムを選択するステップは、最大のプロセッサ使用率を有する仮想ストレージシステムを選択することを含む方法。
  2. 前記最大のプロセッサ使用率を有する仮想ストレージシステムを選択するステップは、前記ソース物理的ストレージシステムに関連する各仮想ストレージシステムについて使用率テーブルを作成するステップを更に含み、前記使用率テーブルは、一秒当たりの仮想ストレージシステム(vfiler)処理の数を一秒当たりの物理的ストレージシステム処理の数で割ることにより計算されるVfiler率(VR)を含み、前記プロセッサ使用率は、前記VRに前記物理的ストレージシステムの平均プロセッサ使用率を乗じたものとして定義される、請求項1に記載のコンピュータで実施される方法。
  3. 前記選択された仮想ストレージシステムをマイグレートすべきことを管理者に提案するステップを更に含む、請求項1または請求項2に記載のコンピュータで実施される方法。
  4. 前記選択された仮想ストレージシステムを前記ソース物理的ストレージシステムから前記宛先物理的ストレージシステムへマイグレートするステップを更に含む、請求項1または請求項2に記載のコンピュータで実施される方法。
  5. 前記一組の総合メトリックは、最大プロセッサ使用率から平均プロセッサ使用率を差し引くことにより計算されるプロセッサ余裕率、最大ドメイン使用率から平均ドメイン使用率を差し引くことにより計算されるドメイン余裕率、前記物理的ストレージシステムのタイプに関連するスピンドルの数から前記物理的ストレージシステムにより使用されるスピンドルの総数を差し引くことにより計算されるスピンドル余裕、前記物理的ストレージシステムに関連する最大容量から前記物理的ストレージシステムの総合計容量を差し引くことにより計算される容量余裕、及び前記物理的ストレージシステムによる一秒当たりの処理の総数を含む、請求項1〜4のうちのいずれか一項に記載のコンピュータで実施される方法。
  6. 複数の物理的ストレージシステムにわたってワークロードのバランスをリアルタイムにとるシステムであって、
    (a)一定時間にわたって所定の時間間隔で前記複数の物理的ストレージシステムのそれぞれについて、前記物理的ストレージシステムにおけるプロセッサ使用率、種々のドメインにおいて消費される処理時間の割合、前記物理的ストレージシステムによる一秒あたりの処理の総数、及び前記物理的ストレージシステム上で機能しているプロセッサの数のうちの1以上を含むパフォーマンスデータを収集し、
    (b)前記複数の物理的ストレージシステムのそれぞれについて一組の総合メトリックを計算し、前記一組の総合メトリックにおける各総合メトリックは、収集されたパフォーマンスデータのそれぞれに基いて前記一定時間にわたって計算される平均値であり、
    (c)前記一組の総合メトリックにおけるいずれか1つの総合メトリックが前記一組の総合メトリックにおける各総合メトリックについて予め定義された閾値を超えているか否かを検査することにより、前記物理的ストレージシステムのうちのいずれかがマイグレーション閾値を超えているか否かを判定し、
    (d)前記物理的ストレージシステムのうちの少なくとも1つが前記マイグレーション閾値を超えていることが判定された場合、前記マイグレーション閾値を超えている前記少なくとも1つの物理的ストレージシステムの中からソース物理的ストレージシステムを選択し、
    (e)前記物理的ストレージシステムのうちの少なくとも1つが前記マイグレーション閾値を超えていることが判定された場合、前記マイグレーション閾値を超えていない前記物理的ストレージシステムの中から宛先物理的ストレージシステムを選択し、
    (f)前記ソース物理的ストレージシステム及び前記宛先物理的ストレージシステムを選択した後、前記ソース物理的ストレージシステムから前記宛先物理的ストレージシステムへマイグレートするために、前記ソース物理的ストレージシステムに関連する仮想ストレージシステムを選択するように構成されたロードバランシングプロセスを含み、前記仮想ストレージシステムの選択は、最も高いプロセッサ使用率を有する仮想ストレージシステムを選択することを含む、システム。
  7. 前記ロードバランシングプロセスは、前記ソース物理的ストレージシステムに関連する各仮想ストレージシステムについて、一秒当たりの仮想ストレージシステム(vfiler)処理の数を一秒当たりの物理的ストレージシステム処理の数で割ることにより計算されるVfiler率(VR)を含む使用率テーブルを作成するように更に構成され、
    前記プロセッサ使用率は、前記VRに前記物理的ストレージシステムの平均プロセッサ使用率を乗じたものとして定義される、請求項に記載のシステム。
  8. 前記ロードバランシングプロセスは、前記選択された仮想ストレージシステムをマイグレートすべきことを管理者に提案するように更に構成される、請求項6または請求項7に記載のシステム。
  9. 前記ロードバランシングプロセスは、前記選択された仮想ストレージシステムを前記ソース物理的ストレージシステムから前記宛先物理的ストレージシステムへマイグレートするように更に構成される、請求項6または請求項7に記載のシステム。
  10. 前記一組の総合メトリックは、最大プロセッサ使用率から平均プロセッサ使用率を差し引くことにより計算されるプロセッサ余裕率、最大ドメイン使用率から平均ドメイン使用率を差し引くことにより計算されるドメイン余裕率、前記物理的ストレージシステムのタイプに関連するスピンドルの数から前記物理的ストレージシステムにより使用されるスピンドルの総数を差し引くことにより計算されるスピンドル余裕、前記物理的ストレージシステムに関連する最大容量から前記物理的ストレージシステムの総合計容量を差し引くことにより計算される容量余裕、及び前記物理的ストレージシステムによる一秒当たりの処理の総数を含む、請求項6〜9のうちのいずれか一項に記載のシステム。
  11. 複数の物理的ストレージシステムにわたってワークロードのバランスをリアルタイムにとるためにコンピュータで実施される方法であって、
    (a)一定時間にわたって所定の時間間隔で前記複数の物理的ストレージシステムのそれぞれにおいてプロセッサ使用率を収集するステップと、
    (b)前記複数の物理的ストレージシステムのそれぞれにおいて収集された前記プロセッサ使用率に基いて、前記複数の物理的ストレージシステムのそれぞれにおける前記一定時間にわたる平均使用率を計算するステップと、
    (c)前記複数の物理的ストレージシステムのうちのいずれかにおける前記平均使用率が所定の閾値を超えているか否かを判定するステップと、
    (d)前記物理的ストレージシステムのうちの少なくとも1つにおける前記平均使用率が前記所定の閾値を超えていることが判定された場合、所定の値以下のプロセッサ余裕率を有する前記物理的ストレージシステムの中から、最小のプロセッサ余裕率を有するソース物理的ストレージシステムを選択するステップであって、前記プロセッサ余裕率は、最大プロセッサ使用率から平均プロセッサ使用率を差し引くことにより計算される、ソース物理的ストレージシステムを選択するステップと、
    (e)前記物理的ストレージシステムのうちの少なくとも1つにおける前記平均使用率が前記所定の閾値を超えていることが判定された場合、所定の値以上のプロセッサ余裕率を有する前記物理的ストレージシステムの中から、最大のプロセッサ余裕率を有する宛先物理的ストレージシステムを選択するステップと、
    (f)前記ソース物理的ストレージシステム及び前記宛先物理的ストレージシステムを選択した後、前記ソース物理的ストレージシステムから前記宛先物理的ストレージシステムへマイグレートするために、前記ソース物理的ストレージシステムに関連する仮想ストレージシステムの中から、最大のプロセッサ使用率を有する仮想ストレージシステムを選択するステップとを含む方法。
  12. マイグレートするために前記仮想ストレージシステムを選択するステップは、前記ソース物理的ストレージシステムに関連する各仮想ストレージシステムについて使用率テーブルを作成するステップを更に含み、前記使用率テーブルは、一秒当たりの仮想ストレージシステム(vfiler)処理の数を一秒当たりの物理的ストレージシステム処理の数で割ることにより計算されるVfiler率(VR)を含み、前記プロセッサ使用率は、前記VRに前記物理的ストレージシステムの平均プロセッサ使用率を乗じたものとして定義される、請求項11に記載のコンピュータで実施される方法。
  13. 複数の物理的ストレージシステムにわたってワークロードのバランスをリアルタイムにとるためにコンピュータで実施される方法であって、
    (a)一定時間にわたって所定の時間間隔で前記複数の物理的ストレージシステムのそれぞれにおいてプロセッサ使用率を収集するステップと、
    (b)前記複数の物理的ストレージシステムのそれぞれにおいて収集された前記プロセッサ使用率に基いて、前記複数の物理的ストレージシステムのそれぞれにおける平均使用率を計算するステップと、
    (c)前記複数の物理的ストレージシステムのうちのいずれかにおける前記平均使用率が所定の閾値を超えているか否かを判定するステップと、
    (d)前記物理的ストレージシステムのうちの少なくとも1つにおける前記平均使用率が前記所定の閾値を超えていることが判定された場合、所定の値以下のプロセッサ余裕率を有する前記物理的ストレージシステムの中から、最小のプロセッサ余裕率を有するソース物理的ストレージシステムを選択するステップであって、前記プロセッサ余裕率は、最大プロセッサ使用率から平均プロセッサ使用率を差し引くことにより計算される、ソース物理的ストレージシステムを選択するステップと、
    (e)前記物理的ストレージシステムのうちの少なくとも1つにおける前記平均使用率が前記所定の閾値を超えていることが判定された場合、所定の値以上のプロセッサ余裕率を有する前記物理的ストレージシステムの中から、最大のプロセッサ余裕率を有する宛先物理的ストレージシステムを選択するステップと、
    (f)前記ソース物理的ストレージシステム及び前記宛先物理的ストレージシステムを選択した後、前記ソース物理的ストレージシステムに関連する各仮想ストレージシステムについて使用率テーブルを作成するステップであって、前記使用率テーブルは、一秒当たりの仮想ストレージシステム(vfiler)処理の数を一秒当たりの物理的ストレージシステム処理の数で割ることにより計算されるVfiler率(VR)、前記VRに前記物理的ストレージシステムの平均プロセッサ使用率を乗じることにより計算されるプロセッサ使用率、前記VRにドメイン使用率のそれぞれの平均を乗じることにより計算されるドメイン使用率、前記ボリュームのスピンドル数として定義されるスピンドル使用率、及び前記vfilerにより提供されるボリュームに使用される容量として定義される容量使用率を含む、使用率テーブルを作成するステップと、
    (g)前記ソース物理的ストレージシステムから前記宛先物理的ストレージシステムへマイグレートするために、仮想ストレージシステムを選択するステップと
    を含み、前記仮想ストレージシステムを選択するステップは、
    (i)前記仮想ストレージシステムのスピンドル使用率が前記宛先物理的ストレージシステムのスピンドル余裕以下であるか否かを判定するサブステップであって、前記スピンドル余裕は、前記物理的ストレージシステムのタイプに関連するスピンドルの最大数から前記物理的ストレージシステムにより使用されるスピンドルの総数を差し引くことにより計算される、前記仮想ストレージシステムのスピンドル使用率が、前記宛先物理的ストレージシステムのスピンドル余裕率以下であるか否かを判定するサブステップと、
    (ii)前記仮想ストレージシステムによる容量使用率が前記宛先物理的ストレージシステムの容量余裕以下であるか否かを判定するサブステップであって、前記容量余裕は、前記物理的ストレージシステムに関連する最大容量から前記物理的ストレージシステムの総合計容量を差し引くことにより計算される、前記仮想ストレージシステムによる容量使用率が前記宛先物理的ストレージシステムの容量余裕以下であるか否かを判定するサブステップと、
    (iii)前記宛先物理的ストレージシステムのプロセッサ余裕から前記仮想ストレージシステムのプロセッサ使用率を差し引いたものが所定の閾値以上であるか否かを判定するサブステップであって、前記プロセッサ余裕は、最大プロセッサ使用率から平均プロセッサ使用率を差し引くことにより計算される、前記宛先物理的ストレージシステムのプロセッサ余裕から前記仮想ストレージシステムのプロセッサ使用率を差し引いたものが所定の閾値以上であるか否かを判定するサブステップと、
    (iv)前記仮想ストレージシステムのプロセッサ使用率が所定の閾値以上であるか否かを判定するサブステップと、
    (v)全ての前記サブステップにおける判定結果が肯定的であった場合、前記仮想ストレージシステムをマイグレーションの候補として選択するサブステップと
    を含む方法。
  14. 前記選択された仮想ストレージシステムをマイグレートすべきことを管理者に提案するステップを更に含む、請求項11〜13のうちのいずれか一項に記載のコンピュータで実施される方法。
  15. 前記選択された仮想ストレージシステムを前記ソース物理的ストレージシステムから前記宛先物理的ストレージシステムへマイグレートするステップを更に含む、請求項11〜13のうちのいずれか一項に記載のコンピュータで実施される方法。
JP2007543264A 2004-11-19 2005-11-17 共有バックエンドストレージを備えた複数のストレージシステムにわたりユーザワークロードのバランスをリアルタイムにとるシステム、及び方法 Expired - Fee Related JP4815449B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/992,893 2004-11-19
US10/992,893 US7523286B2 (en) 2004-11-19 2004-11-19 System and method for real-time balancing of user workload across multiple storage systems with shared back end storage
PCT/US2005/041794 WO2006055765A2 (en) 2004-11-19 2005-11-17 System and method for real-time balancing of user workload across multiple storage systems with shared back end storage

Publications (2)

Publication Number Publication Date
JP2008521140A JP2008521140A (ja) 2008-06-19
JP4815449B2 true JP4815449B2 (ja) 2011-11-16

Family

ID=36000797

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007543264A Expired - Fee Related JP4815449B2 (ja) 2004-11-19 2005-11-17 共有バックエンドストレージを備えた複数のストレージシステムにわたりユーザワークロードのバランスをリアルタイムにとるシステム、及び方法

Country Status (4)

Country Link
US (1) US7523286B2 (ja)
EP (1) EP1828880B1 (ja)
JP (1) JP4815449B2 (ja)
WO (1) WO2006055765A2 (ja)

Families Citing this family (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560671B1 (en) 2003-10-23 2013-10-15 Netapp, Inc. Systems and methods for path-based management of virtual servers in storage network environments
US8180855B2 (en) 2005-01-27 2012-05-15 Netapp, Inc. Coordinated shared storage architecture
US8019842B1 (en) 2005-01-27 2011-09-13 Netapp, Inc. System and method for distributing enclosure services data to coordinate shared storage
US8510449B1 (en) * 2005-04-29 2013-08-13 Netapp, Inc. Caching of data requests in session-based environment
US7908606B2 (en) * 2005-05-20 2011-03-15 Unisys Corporation Usage metering system
JP2007058728A (ja) * 2005-08-26 2007-03-08 Hitachi Ltd データ移行方式
US20070088917A1 (en) * 2005-10-14 2007-04-19 Ranaweera Samantha L System and method for creating and maintaining a logical serial attached SCSI communication channel among a plurality of storage systems
JP4920391B2 (ja) * 2006-01-06 2012-04-18 株式会社日立製作所 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム
US8285747B1 (en) * 2006-03-14 2012-10-09 Netapp, Inc. Incorporation of client storage into a storage system
US8254262B1 (en) * 2006-03-31 2012-08-28 Verint Americas, Inc. Passive recording and load balancing
JP2007280324A (ja) * 2006-04-12 2007-10-25 Hitachi Ltd 計算機システム、管理計算機および仮想ストレージ装置
US7933993B1 (en) * 2006-04-24 2011-04-26 Hewlett-Packard Development Company, L.P. Relocatable virtual port for accessing external storage
US7543128B2 (en) * 2006-07-25 2009-06-02 Hewlett-Packard Development Company, L.P. Method and apparatus for repurposing compute resources to implement, or not implement, storage access protocols
US8799432B1 (en) * 2006-10-31 2014-08-05 Hewlett-Packard Development Company, L.P. Managed computer network caching requested and related data from remote computers
JP5057792B2 (ja) * 2007-01-29 2012-10-24 株式会社日立製作所 性能ボトルネックを緩和する機能を備えたストレージシステム
US8789052B2 (en) * 2007-03-28 2014-07-22 BlackBery Limited System and method for controlling processor usage according to user input
US8312214B1 (en) 2007-03-28 2012-11-13 Netapp, Inc. System and method for pausing disk drives in an aggregate
US7925749B1 (en) * 2007-04-24 2011-04-12 Netapp, Inc. System and method for transparent data replication over migrating virtual servers
US8090819B1 (en) * 2007-05-31 2012-01-03 American Megatrends, Inc. Communicating with an in-band management application through an out-of band communications channel
US8176168B1 (en) 2007-05-31 2012-05-08 American Megatrends, Inc. Detecting the health of an operating system in virtualized and non-virtualized environments
JP5117120B2 (ja) 2007-06-18 2013-01-09 株式会社日立製作所 ストレージ装置のボリュームを管理する計算機システム、方法及びプログラム
JP4958673B2 (ja) * 2007-07-26 2012-06-20 株式会社日立製作所 ストレージシステム及びこれの管理方法
US8356306B2 (en) * 2007-07-31 2013-01-15 Hewlett-Packard Development Company, L.P. Workload management controller using dynamic statistical control
US8683033B2 (en) * 2007-09-17 2014-03-25 International Business Machines Corporation Apparatus, system, and method for server failover to standby server during broadcast storm or denial-of-service attack
US7984259B1 (en) 2007-12-17 2011-07-19 Netapp, Inc. Reducing load imbalance in a storage system
EP2248003A1 (en) * 2007-12-31 2010-11-10 Netapp, Inc. System and method for automatic storage load balancing in virtual server environments
US8914340B2 (en) * 2008-02-06 2014-12-16 International Business Machines Corporation Apparatus, system, and method for relocating storage pool hot spots
JP5410025B2 (ja) * 2008-03-07 2014-02-05 株式会社日立製作所 ストレージシステム及びその管理方法
US8886909B1 (en) 2008-03-31 2014-11-11 Emc Corporation Methods, systems, and computer readable medium for allocating portions of physical storage in a storage array based on current or anticipated utilization of storage array resources
US9081624B2 (en) * 2008-06-26 2015-07-14 Microsoft Technology Licensing, Llc Automatic load balancing, such as for hosted applications
US8443369B1 (en) 2008-06-30 2013-05-14 Emc Corporation Method and system for dynamically selecting a best resource from each resource collection based on resources dependencies, prior selections and statistics to implement an allocation policy
JP4809413B2 (ja) * 2008-10-08 2011-11-09 株式会社日立製作所 ストレージシステム
WO2010041481A1 (en) 2008-10-10 2010-04-15 Hitachi, Ltd. Storage system and method for controlling the same
US8234654B2 (en) * 2008-10-20 2012-07-31 Xerox Corporation Load balancing using distributed printing devices
EP2406837A2 (en) 2009-03-11 2012-01-18 Alpcon A/S Combustion system for generating heat and power
JP5478107B2 (ja) * 2009-04-22 2014-04-23 株式会社日立製作所 仮想ストレージ装置を管理する管理サーバ装置及び仮想ストレージ装置の管理方法
US8813048B2 (en) 2009-05-11 2014-08-19 Accenture Global Services Limited Single code set applications executing in a multiple platform system
US8832699B2 (en) * 2009-05-11 2014-09-09 Accenture Global Services Limited Migrating processes operating on one platform to another platform in a multi-platform system
US20110023046A1 (en) * 2009-07-22 2011-01-27 Stephen Gold Mitigating resource usage during virtual storage replication
US8099399B2 (en) * 2009-07-27 2012-01-17 Hewlett-Packard Development Company, L.P. Determining whether change in workload of database system has occurred, and/or whether executing current workload will likely result in problem developing with database system
US9389895B2 (en) 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
US20110153715A1 (en) * 2009-12-17 2011-06-23 Microsoft Corporation Lightweight service migration
US8266280B2 (en) * 2010-03-17 2012-09-11 International Business Machines Corporation System and method for a storage area network virtualization optimization
US20110231602A1 (en) * 2010-03-19 2011-09-22 Harold Woods Non-disruptive disk ownership change in distributed storage systems
US8924681B1 (en) * 2010-03-31 2014-12-30 Emc Corporation Systems, methods, and computer readable media for an adaptative block allocation mechanism
US8407445B1 (en) 2010-03-31 2013-03-26 Emc Corporation Systems, methods, and computer readable media for triggering and coordinating pool storage reclamation
US20110283277A1 (en) 2010-05-11 2011-11-17 International Business Machines Corporation Virtualization and dynamic resource allocation aware storage level reordering
US8700811B2 (en) 2010-05-25 2014-04-15 Microsoft Corporation Virtual machine I/O multipath configuration
US8443163B1 (en) 2010-06-28 2013-05-14 Emc Corporation Methods, systems, and computer readable medium for tier-based data storage resource allocation and data relocation in a data storage array
US9311002B1 (en) 2010-06-29 2016-04-12 Emc Corporation Systems, methods, and computer readable media for compressing data at a virtually provisioned storage entity
US8612395B2 (en) 2010-09-14 2013-12-17 Hitachi, Ltd. Server apparatus and control method of the same
US8812403B2 (en) 2010-11-08 2014-08-19 Microsoft Corporation Long term workflow management
WO2012070090A1 (en) * 2010-11-25 2012-05-31 Hitachi, Ltd. Computer system and its control method
US9141508B2 (en) * 2010-12-21 2015-09-22 Oracle International Corporation Assigning read requests based on busyness of devices
US20160162371A1 (en) * 2011-01-05 2016-06-09 Netapp, Inc. Supporting multi-tenancy through service catalog
US9495273B2 (en) * 2011-03-02 2016-11-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Systems and methods for displaying blade chassis data
US20120278553A1 (en) * 2011-04-28 2012-11-01 Mudhiganti Devender R System and method for migration of data clones
JP5736971B2 (ja) 2011-05-30 2015-06-17 富士通株式会社 通信制御方法および管理装置
US8745327B1 (en) 2011-06-24 2014-06-03 Emc Corporation Methods, systems, and computer readable medium for controlling prioritization of tiering and spin down features in a data storage system
US10754813B1 (en) 2011-06-30 2020-08-25 Amazon Technologies, Inc. Methods and apparatus for block storage I/O operations in a storage gateway
US8832039B1 (en) 2011-06-30 2014-09-09 Amazon Technologies, Inc. Methods and apparatus for data restore and recovery from a remote data store
US8806588B2 (en) 2011-06-30 2014-08-12 Amazon Technologies, Inc. Storage gateway activation process
US8639921B1 (en) 2011-06-30 2014-01-28 Amazon Technologies, Inc. Storage gateway security model
US8639989B1 (en) * 2011-06-30 2014-01-28 Amazon Technologies, Inc. Methods and apparatus for remote gateway monitoring and diagnostics
US9294564B2 (en) 2011-06-30 2016-03-22 Amazon Technologies, Inc. Shadowing storage gateway
US8706834B2 (en) 2011-06-30 2014-04-22 Amazon Technologies, Inc. Methods and apparatus for remotely updating executing processes
US8601134B1 (en) 2011-06-30 2013-12-03 Amazon Technologies, Inc. Remote storage gateway management using gateway-initiated connections
US8793343B1 (en) 2011-08-18 2014-07-29 Amazon Technologies, Inc. Redundant storage gateways
US8789208B1 (en) 2011-10-04 2014-07-22 Amazon Technologies, Inc. Methods and apparatus for controlling snapshot exports
US9635132B1 (en) 2011-12-15 2017-04-25 Amazon Technologies, Inc. Service and APIs for remote volume-based block storage
CN103186536A (zh) * 2011-12-27 2013-07-03 中兴通讯股份有限公司 一种调度数据共享装置的方法及系统
US9158734B1 (en) 2012-03-30 2015-10-13 Emc Corporation Method and apparatus for elastic provisioning
US9455883B1 (en) 2012-03-30 2016-09-27 Emc Corporation Method and apparatus for provisioning shared NFS storage
US8918493B1 (en) * 2012-06-28 2014-12-23 Emc Corporation Methods and apparatus for automating service lifecycle management
US20140032738A1 (en) * 2012-07-24 2014-01-30 Sudip S. Chahal Method, apparatus and system for estimating subscription headroom for a storage pool
US8898507B1 (en) 2012-09-27 2014-11-25 Emc Corporation Methods and apparatus for disaster tolerant clusters of hypervisors as a virtualized infrastructure service
US9274956B1 (en) 2012-10-31 2016-03-01 Amazon Technologies, Inc. Intelligent cache eviction at storage gateways
US9268651B1 (en) 2012-10-31 2016-02-23 Amazon Technologies, Inc. Efficient recovery of storage gateway cached volumes
US9268652B1 (en) 2012-10-31 2016-02-23 Amazon Technologies, Inc. Cached volumes at storage gateways
US9697217B1 (en) 2012-10-31 2017-07-04 Amazon Technologies, Inc. Segmented hashing for secure data modification
US9559889B1 (en) 2012-10-31 2017-01-31 Amazon Technologies, Inc. Cache population optimization for storage gateways
WO2014081414A1 (en) * 2012-11-20 2014-05-30 Empire Technology Development Llc Multi-element solid-state storage device management
US9477431B1 (en) * 2012-12-28 2016-10-25 EMC IP Holding Company LLC Managing storage space of storage tiers
US9047239B2 (en) 2013-01-02 2015-06-02 International Business Machines Corporation Determining weight values for storage devices in a storage tier to use to select one of the storage devices to use as a target storage to which data from a source storage is migrated
US10248670B1 (en) 2013-03-14 2019-04-02 Open Text Corporation Method and system for migrating content between enterprise content management systems
JP6142599B2 (ja) * 2013-03-18 2017-06-07 富士通株式会社 ストレージシステム、ストレージ装置および制御プログラム
JP6209863B2 (ja) * 2013-05-27 2017-10-11 富士通株式会社 ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
US9996562B2 (en) 2013-07-09 2018-06-12 Oracle International Corporation Automated database migration architecture
US9491072B2 (en) 2013-07-09 2016-11-08 Oracle International Corporation Cloud services load testing and analysis
US9747311B2 (en) 2013-07-09 2017-08-29 Oracle International Corporation Solution to generate a scriptset for an automated database migration
US9967154B2 (en) 2013-07-09 2018-05-08 Oracle International Corporation Advanced customer support services—advanced support cloud portal
US9805070B2 (en) 2013-07-09 2017-10-31 Oracle International Corporation Dynamic migration script management
US10776244B2 (en) * 2013-07-09 2020-09-15 Oracle International Corporation Consolidation planning services for systems migration
US9792321B2 (en) 2013-07-09 2017-10-17 Oracle International Corporation Online database migration
US9762461B2 (en) 2013-07-09 2017-09-12 Oracle International Corporation Cloud services performance tuning and benchmarking
US11157664B2 (en) * 2013-07-09 2021-10-26 Oracle International Corporation Database modeling and analysis
US20150032839A1 (en) * 2013-07-26 2015-01-29 Netapp, Inc. Systems and methods for managing storage network devices
US20160077886A1 (en) * 2013-07-31 2016-03-17 Hewlett-Packard Development Company, L.P. Generating workload windows
JP6229385B2 (ja) * 2013-09-10 2017-11-15 富士通株式会社 ストレージ制御装置、制御方法およびストレージ制御プログラム
US10225162B1 (en) * 2013-09-26 2019-03-05 EMC IP Holding Company LLC Methods and apparatus for array agnostic automated storage tiering
US9569139B1 (en) 2013-09-26 2017-02-14 EMC IP Holding Company LLC Methods and apparatus for shared service provisioning
JP6209926B2 (ja) * 2013-10-09 2017-10-11 富士通株式会社 ストレージ制御装置、およびストレージ装置の制御プログラム
US9465709B2 (en) * 2013-11-22 2016-10-11 Netapp, Inc. System and method for providing performance sampling in a computing system
US9710308B1 (en) * 2013-12-24 2017-07-18 EMC IP Holding Company LLC Workflow for migration planning of data storage systems
JP6336813B2 (ja) 2014-04-16 2018-06-06 富士通株式会社 ストレージ仮想化装置、ストレージ仮想化装置の制御方法及び制御プログラム
US9485308B2 (en) * 2014-05-29 2016-11-01 Netapp, Inc. Zero copy volume reconstruction
US9880881B1 (en) 2014-12-04 2018-01-30 HCA Holdings, Inc. Multi-tier resource and load orchestration
US9612766B2 (en) * 2014-12-19 2017-04-04 Oracle International Corporation Systems and methods for shadow migration progress estimation
US9875043B1 (en) * 2015-03-31 2018-01-23 EMC IP Holding Company, LLC. Managing data migration in storage systems
US10254992B2 (en) * 2015-04-30 2019-04-09 International Business Machines Corporation Rebalancing data storage in a dispersed storage network
US9875037B2 (en) 2015-06-18 2018-01-23 International Business Machines Corporation Implementing multiple raid level configurations in a data storage device
US10402385B1 (en) * 2015-08-27 2019-09-03 Palantir Technologies Inc. Database live reindex
US11089099B2 (en) * 2015-09-26 2021-08-10 Intel Corporation Technologies for managing data object requests in a storage node cluster
US9588799B1 (en) * 2015-09-29 2017-03-07 Amazon Technologies, Inc. Managing test services in a distributed production service environment
US9703501B2 (en) 2015-09-30 2017-07-11 International Business Machines Corporation Virtual storage instrumentation for real time analytics
US10261690B1 (en) * 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11036696B2 (en) 2016-06-07 2021-06-15 Oracle International Corporation Resource allocation for database provisioning
US10503654B2 (en) 2016-09-01 2019-12-10 Intel Corporation Selective caching of erasure coded fragments in a distributed storage system
US10594553B2 (en) 2016-12-21 2020-03-17 Mastercard International Incorporated Systems and methods for dynamically commissioning and decommissioning computer components
CN106878457B (zh) * 2017-03-24 2019-11-29 网宿科技股份有限公司 分布式网络附属存储方法及系统
CN107734037A (zh) * 2017-10-19 2018-02-23 郑州云海信息技术有限公司 一种nas集群和数据访问方法
US10838747B2 (en) * 2017-12-14 2020-11-17 Hewlett Packard Enterprise Development Lp Virtual appliances
US20190250959A1 (en) * 2018-02-14 2019-08-15 Red Hat, Inc. Computing resource balancing among different computing zones
US11595320B1 (en) 2020-07-01 2023-02-28 C/Hca, Inc. Multi-tier resource, subsystem, and load orchestration
US11201835B1 (en) 2019-05-23 2021-12-14 C/Hca, Inc. Systems and methods for multi-tier resource and subsystem orchestration and adaptation
US11172052B2 (en) 2018-09-13 2021-11-09 International Business Machines Corporation Merging storage protocols
US11329902B2 (en) 2019-03-12 2022-05-10 The Nielsen Company (Us), Llc Methods and apparatus to credit streaming activity using domain level bandwidth information
US11256671B2 (en) 2019-09-13 2022-02-22 Oracle International Corporation Integrated transition control center
CN116209990A (zh) * 2020-07-24 2023-06-02 华为技术有限公司 用于降低远程直接存储器访问系统中时延的设备、方法和系统
US11494076B2 (en) * 2021-01-19 2022-11-08 Dell Products L.P. Storage-usage-based host/storage mapping management system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002082775A (ja) * 2000-07-06 2002-03-22 Hitachi Ltd 計算機システム
JP2003345522A (ja) * 2002-05-27 2003-12-05 Hitachi Ltd データ再配置方法及び装置
JP2004295457A (ja) * 2003-03-27 2004-10-21 Hitachi Ltd 記憶装置

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4156907A (en) * 1977-03-02 1979-05-29 Burroughs Corporation Data communications subsystem
US4399503A (en) * 1978-06-30 1983-08-16 Bunker Ramo Corporation Dynamic disk buffer control unit
US4598357A (en) * 1980-11-14 1986-07-01 Sperry Corporation Cache/disk subsystem with file number for recovery of cached data
US4837675A (en) * 1981-10-05 1989-06-06 Digital Equipment Corporation Secondary storage facility empolying serial communications between drive and controller
JPS60142418A (ja) * 1983-12-28 1985-07-27 Hitachi Ltd 入出力エラ−回復方式
US4896259A (en) * 1984-09-07 1990-01-23 International Business Machines Corporation Apparatus for storing modifying data prior to selectively storing data to be modified into a register
JPS61141056A (ja) * 1984-12-14 1986-06-28 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 揮発性メモリの間欠エラ−検出方法
US4805090A (en) * 1985-09-27 1989-02-14 Unisys Corporation Peripheral-controller for multiple disk drive modules having different protocols and operating conditions
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
USRE34100E (en) * 1987-01-12 1992-10-13 Seagate Technology, Inc. Data error correction system
US4899342A (en) * 1988-02-01 1990-02-06 Thinking Machines Corporation Method and apparatus for operating multi-unit array of memories
US4864497A (en) * 1988-04-13 1989-09-05 Digital Equipment Corporation Method of integrating software application programs using an attributive data model database
US4993030A (en) 1988-04-22 1991-02-12 Amdahl Corporation File system for a plurality of storage classes
US4989206A (en) * 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
US5124987A (en) * 1990-04-16 1992-06-23 Storage Technology Corporation Logical track write scheduling system for a parallel disk drive array data storage subsystem
US5155835A (en) * 1990-11-19 1992-10-13 Storage Technology Corporation Multilevel, hierarchical, dynamically mapped data storage subsystem
US5426747A (en) * 1991-03-22 1995-06-20 Object Design, Inc. Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
JP3160106B2 (ja) * 1991-12-23 2001-04-23 ヒュンダイ エレクトロニクス アメリカ ディスクアレーの区分け方法
US5581724A (en) * 1992-10-19 1996-12-03 Storage Technology Corporation Dynamically mapped data storage subsystem having multiple open destage cylinders and method of managing that subsystem
JP3751018B2 (ja) * 1993-06-03 2006-03-01 ネットワーク・アプライアンス・インコーポレイテッド ライトエニウエアファイルシステムレイアウト
US6721794B2 (en) 1999-04-01 2004-04-13 Diva Systems Corp. Method of data management for efficiently storing and retrieving data to respond to user access requests
US6636879B1 (en) * 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US6516380B2 (en) * 2001-02-05 2003-02-04 International Business Machines Corporation System and method for a log-based non-volatile write cache in a storage controller
US7073044B2 (en) * 2001-03-30 2006-07-04 Intel Corporation Method and apparatus for sharing TLB entries
US6643654B1 (en) * 2001-06-25 2003-11-04 Network Appliance, Inc. System and method for representing named data streams within an on-disk structure of a file system
US20030056058A1 (en) * 2001-09-17 2003-03-20 Alistair Veitch Logical volume data migration
US7873700B2 (en) * 2002-08-09 2011-01-18 Netapp, Inc. Multi-protocol storage appliance that provides integrated support for file and block access protocols
US20040139167A1 (en) * 2002-12-06 2004-07-15 Andiamo Systems Inc., A Delaware Corporation Apparatus and method for a scalable network attach storage system
US20040210724A1 (en) * 2003-01-21 2004-10-21 Equallogic Inc. Block data migration
US7409494B2 (en) * 2004-04-30 2008-08-05 Network Appliance, Inc. Extension of write anywhere file system layout
US20070088702A1 (en) * 2005-10-03 2007-04-19 Fridella Stephen A Intelligent network client for multi-protocol namespace redirection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002082775A (ja) * 2000-07-06 2002-03-22 Hitachi Ltd 計算機システム
JP2003345522A (ja) * 2002-05-27 2003-12-05 Hitachi Ltd データ再配置方法及び装置
JP2004295457A (ja) * 2003-03-27 2004-10-21 Hitachi Ltd 記憶装置

Also Published As

Publication number Publication date
EP1828880A2 (en) 2007-09-05
EP1828880B1 (en) 2015-08-05
WO2006055765A3 (en) 2007-02-22
US7523286B2 (en) 2009-04-21
WO2006055765A2 (en) 2006-05-26
JP2008521140A (ja) 2008-06-19
US20060112247A1 (en) 2006-05-25

Similar Documents

Publication Publication Date Title
JP4815449B2 (ja) 共有バックエンドストレージを備えた複数のストレージシステムにわたりユーザワークロードのバランスをリアルタイムにとるシステム、及び方法
JP6208207B2 (ja) オブジェクト・ストレージ・システムにアクセスするコンピュータ・システム
JP6199452B2 (ja) ストレージ・オブジェクトとして論理ボリュームをエクスポートするデータ・ストレージ・システム
JP6219420B2 (ja) 入力/出力オペレーションのためにオブジェクト・ストレージ・システムを構成すること
JP5026283B2 (ja) 協調的共用ストレージアーキテクチャ
RU2302034C2 (ru) Многопротокольное устройство хранения данных, реализующее интегрированную поддержку файловых и блочных протоколов доступа
US7657613B1 (en) Host-centric storage provisioner in a managed SAN
EP1763734B1 (en) System and method for supporting block-based protocols on a virtual storage appliance executing within a physical storage appliance
US7779201B1 (en) System and method for determining disk ownership model
US9058119B1 (en) Efficient data migration
JP5985642B2 (ja) データ・ストレージ・システムおよびデータ・ストレージ・コントロール方法
US7512832B1 (en) System and method for transport-level failover of FCP devices in a cluster
US11669360B2 (en) Seamless virtual standard switch to virtual distributed switch migration for hyper-converged infrastructure
US10241712B1 (en) Method and apparatus for automated orchestration of long distance protection of virtualized storage
JP2005071333A (ja) クラスタ化ストレージシステムにおける信頼できるピア通信のためのシステム及び方法
JP2004537126A (ja) 高可用性クラスターの仮想サーバ・システム
JP2012507766A (ja) オペレーティング・システムの移行の際におけるストレージ・エリア・ネットワーク(「san」)アクセス権の保持
US7526558B1 (en) System and method for supporting a plurality of levels of acceleration in a single protocol session
US20070112868A1 (en) Storage management system and method
US8996802B1 (en) Method and apparatus for determining disk array enclosure serial number using SAN topology information in storage area network

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101203

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110816

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110829

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140902

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees