JP7332488B2 - ストレージシステム及びストレージシステムの制御方法 - Google Patents

ストレージシステム及びストレージシステムの制御方法 Download PDF

Info

Publication number
JP7332488B2
JP7332488B2 JP2020004910A JP2020004910A JP7332488B2 JP 7332488 B2 JP7332488 B2 JP 7332488B2 JP 2020004910 A JP2020004910 A JP 2020004910A JP 2020004910 A JP2020004910 A JP 2020004910A JP 7332488 B2 JP7332488 B2 JP 7332488B2
Authority
JP
Japan
Prior art keywords
server
distributed
storage
servers
logical
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.)
Active
Application number
JP2020004910A
Other languages
English (en)
Other versions
JP2021114010A (ja
Inventor
崇元 深谷
光雄 早坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020004910A priority Critical patent/JP7332488B2/ja
Priority to US17/008,954 priority patent/US20210223966A1/en
Publication of JP2021114010A publication Critical patent/JP2021114010A/ja
Application granted granted Critical
Publication of JP7332488B2 publication Critical patent/JP7332488B2/ja
Active 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/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • 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

Description

本発明は、ストレージシステム及びストレージシステムの制御方法に関する。
AI(Artificial Intelligence)およびビッグデータ解析のための大容量データの格納先として、容量および性能を安価に拡張できるスケールアウト型の分散ストレージシステムが広まっている。ストレージに格納するデータの増加にともない、ノード当たりの格納データ容量も増え、サーバ障害回復時のリビルド時間が長期化し、信頼性および可用性の低下を招いている。
特許文献1では、多数のサーバから構成される分散ファイルシステム(Distributed File System:以下、分散FSと言う)において、内蔵ディスクに格納したデータをサーバ間で冗長化し、サーバ障害時に他のサーバにサービスのみをフェールオーバする方式が開示されている。障害サーバに格納したデータは、フェールオーバ後に、他のサーバに格納した冗長データから回復される。
特許文献2では、共有ストレージを用いたNAS(Network Attached Storage)システムにおいて、サーバ障害時に、ユーザデータを格納した共有ストレージのLU(Logical Unit)に対するアクセスパスを、障害サーバからフェールオーバ先のサーバに切り替えることで、サービスをフェールオーバする方法が開示されている。本方式では、サーバ障害回復後に、回復したサーバにLUのアクセスパスを切り替えることで、リビルドなしの障害回復が可能であるが、特許文献1に示した分散ストレージシステムのように、サーバ数に比例したユーザボリュームの容量および性能のスケールアウトが実現できない。
米国特許出願公開第2015/121131号明細書 米国特許第7930587号明細書
特許文献1に示されるような多数のサーバ間でデータを冗長化する分散ファイルシステムでは、障害回復時にリビルドが必要となる。リビルドでは、復旧したサーバに対し、他のサーバ上の冗長データから、ネットワーク経由でデータをリビルドする必要があり、障害回復時間が長期化する。
また、特許文献2に示される方式では、共有ストレージを用いることでユーザデータをサーバ間で共有でき、LUのパス切り替えによるサービスのフェールオーバおよびフェールバックが可能となる。この場合、データは共有ストレージにあるため、サーバ障害時のリビルドを不要とし、障害回復時間を短くすることができる。
しかしながら、全サーバをまたがって巨大なストレージプールを構成する分散ファイルシステムでは、フェールオーバ後の負荷分散が課題となる。分散ファイルシステムでは、サーバ間で負荷を均等分散するため、障害サーバのサービスを他のサーバに引き継いだ場合、フェールオーバ先のサーバの負荷が他のサーバの2倍になる。その結果、フェールオーバ先のサーバが過負荷となり、アクセス応答時間が悪化する。
また、フェールオーバ中のLUは、他のサーバからアクセスすることができない状態となる。分散ファイルシステムでは、サーバをまたがりデータを分散配置するため、ひとつでもアクセスできないLUがあれば、ストレージプール全体のIOに影響する。ストレージプールを構成するサーバ数が増えた場合に、フェールオーバの頻度が増え、ストレージプールの可用性が低下する。
本発明は、上記事情に鑑みなされたものであり、その目的は、フェールオーバによる負荷集中を低減することが可能なストレージシステムを提供することにある。
上記目的を達成するため、第1の観点に係るストレージシステムは、複数のサーバと、
前記複数のサーバが共用してデータを格納できる共有ストレージとを備えたストレージシステムにおいて、前記複数のサーバは、それぞれ、1または複数の論理ノードを備え、前記複数のサーバの複数の論理ノードは、ストレージプールを提供するとともに、前記ストレージプールに入出力されるユーザデータを、いずれかの論理ノードが処理して前記共有ストレージに入出力する分散ファイルシステムを形成し、前記論理ノードは、前記サーバ間で移動可能である。
本発明によれば、フェールオーバによる負荷集中を低減することができる。
図1は、第1実施形態に係るストレージシステムのフェールオーバ方法の一例を示すブロック図である。 図2は、第1実施形態に係るストレージシステムの構成例を示すブロック図である。 図3は、図2の分散FSサーバのハードウェア構成例を示すブロック図である。 図4は、図2の共有ストレージアレイのハードウェア構成例を示すブロック図である。 図5は、図2の管理サーバのハードウェア構成例を示すブロック図である。 図6は、図2のホストサーバのハードウェア構成例を示すブロック図である。 図7は、図1の論理ノード制御情報の一例を示す図である。 図8は、図3のストレージプール管理テーブルの一例を示す図である。 図9は、図3のRAID制御テーブルの一例を示す図である。 図10は、図3のフェールオーバ制御テーブルの一例を示す図である。 図11は、図4のLU制御テーブルの一例を示す図である。 図12は、図5のLU管理テーブルの一例を示す図である。 図13は、図5のサーバ管理テーブルの一例を示す図である。 図14は、図5のアレイ管理テーブルの一例を示す図である。 図15は、第1実施形態に係るストレージシステムのストレージプール作成処理の一例を示すフローチャートである。 図16は、第1実施形態に係るストレージシステムのフェールオーバ処理の一例を示すシーケンス図である。 図17は、第1実施形態に係るストレージシステムのフェールバック処理の一例を示すシーケンス図である。 図18は、第1実施形態に係るストレージシステムのストレージプール拡張処理の一例を示すフローチャートである。 図19は、第1実施形態に係るストレージシステムのストレージプール縮小処理の一例を示すフローチャートである。 図20は、第1実施形態に係るストレージシステムのストレージプール作成画面の一例を示す図である。 図21は、第2実施形態に係るストレージシステムのフェールオーバ方法の一例を示すブロック図である。 図22は、第2実施形態に係るストレージシステムのストレージプール作成処理の一例を示すフローチャートである。
以下、実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、実施形態の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
また、以下の説明では、「aaaテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「aaaテーブル」を「aaa情報」と呼ぶこともできる。
また、以下の説明では、「ネットワークI/F」は、1以上の通信インタフェースデバイスを含んでよい。1以上の通信インタフェースデバイスは、1以上の同種の通信インタフェースデバイス(例えば、1以上のNIC(Network Interface Card))であってもよいし、2以上の異種の通信インタフェースデバイス(例えば、NICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部または一部が1つのテーブルであってもよい。
また、以下の説明では、記憶装置は、物理的な不揮発性の記憶デバイス(例えば、補助記憶デバイス(例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)またはSCM(Storage Class Memory)))である。
また、以下の説明では、「メモリ」は、1以上のメモリを含む。少なくとも1つのメモリは、揮発性メモリであってもよいし、不揮発性メモリであってもよい。メモリは、主に、プロセッサ部による処理の際に使用される。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、CPU(Central Processing Unit)によって実行されることで、定められた処理を、適宜に記憶部(例えばメモリ)及び/又はインタフェース部(例えばポート)を用いながら行うため、処理の主語がプログラムとされてもよい。プログラムを主語として説明された処理は、プロセッサ部またはそのプロセッサ部を有する計算機(例えば、サーバ)が行う処理としてもよい。また、コントローラ(ストレージコントローラ)は、プロセッサ部それ自体であってもよいし、コントローラが行う処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから各コントローラにインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたはコンピュータ読取可能な(例えば、非一時的な)記憶メディアであってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
また、以下の説明では、要素の識別情報として、IDが使用されるが、それに代えてまたは加えて他種の識別情報が使用されてもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用することがある。
また、以下の説明では、分散ファイルシステムは、1以上の物理的な計算機(ノード)およびストレージアレイを含む。1以上の物理的な計算機は、物理的なノードと物理的なストレージアレイとのうちの少なくとも1つを含んでよい。少なくとも1つの物理的な計算機が、仮想的な計算機(例えば、VM(Virtual Machine))を実行してもよいし、SDx(Software-Defined anything)を実行してもよい。SDxとしては、例えば、SDS(Software Defined Storage)(仮想的なストレージ装置の一例)またはSDDC(Software-defined Datacenter)を採用することができる。
図1は、第1実施形態に係るストレージシステムのフェールオーバ方法の一例を示すブロック図である。
図1において、分散ストレージシステム10Aは、N(Nは、2以上の整数)台の分散FSサーバ11A~11Eと、1台以上の共有ストレージを含む共有ストレージアレイ6Aを備える。分散ストレージシステム10Aは、ファイルを管理するファイルシステムが論理的な管理単位に基づいてN台の分散FSサーバ11A~11Eに分散された分散ファイルシステムを構築する。各分散FSサーバ11A~11E上では、論理的な分散ファイルシステムの構成要素である論理ノード4A~4Eが設けられ、初期状態では、各分散FSサーバ11A~11E当たり1論理ノードが存在する。論理ノードは、分散ファイルシステムの論理的な管理単位であり、ストレージプールの構成に用いられる。論理ノード4A~4Eは、物理サーバと同様に分散ファイルシステムを構成する1ノードとして動作するが、物理的に特定の分散FSサーバ11A~11Eに括り付けられていない点で物理サーバと異なる。
共有ストレージアレイ6Aは、N台の分散FSサーバ11A~11Eが個別に参照可能であり、異なる分散FSサーバ11A~11Eの論理ノード4A~4Eを分散FSサーバ11A~11E間で引き継ぐための論理ユニット(Logical Unit:以下、LUと言うことがある)を格納する。共有ストレージアレイ6Aは、論理ノード4A~4Eごとにユーザデータを格納するデータLU6A、6B、・・・と、論理ノード4A~4Eごとの論理ノード制御情報12A、12B、・・・を格納する管理LU10A、10B、・・・を有する。各論理ノード制御情報12A、12B、・・・は、各分散FSサーバ11A~11E上で論理ノード4A~4Eを構成するために必要な情報である。
分散ファイルシステム10Aは1つ以上の分散FSサーバから構成され、ストレージプールをホストサーバに提供する。このとき、各ストレージプールには、1つ以上の論理ノードが割り当てられる。図1では、ストレージプール2Aは、論理ノード4A~4Cを含む1つ以上の論理ノードから構成され、ストレージプール2Bは、論理ノード4D、4Eを含む1つ以上の論理ノードから構成された例を示した。分散ファイルシステムは、複数のホストから参照可能な1以上のストレージプールをホストに提供する。例えば、分散ファイルシステムは、ストレージプール2Aをホストサーバ1A、1Bに対して提供し、ストレージプール2Bをホストサーバ1Cに対して提供する。
ストレージプール2A、2Bともに、共有ストレージアレイ6Aに格納された複数のデータLU6A、6B、・・・を、各分散FSサーバ11A~11E内でRAID8A~8E(Redundant Array of Inexpensive Disks)構成とすることでデータを冗長化する。冗長化は、論理ノード4A~4Eごとに行い、分散FSサーバ11A~11E間でのデータの冗長化は行わない。
分散ストレージシステム10Aは、各分散FSサーバ11A~11Eの障害発生時にはフェールオーバを実施し、その分散FSサーバ11A~11Eの障害回復後にフェールバクを実施する。このとき、分散ストレージシステム10Aは、同一のストレージプールを構成する分散FSサーバ以外の分散FSサーバをフェールオーバ先として選択する。
例えば、分散FSサーバ11A~11Cは、同一のストレージプール2Aを構成し、分散FSサーバ11D、11Eは、同一のストレージプール2Bを構成する。このとき、分散FSサーバ11A~11Cのいずれかに障害が発生した場合、その障害が発生した分散FSサーバの論理ノードのフェールオーバ先として、分散FSサーバ11D、11Eのいずれかを選択する。例えば、分散FSサーバ11Aの障害発生時には、分散FSサーバ11Aの論理ノード4Aを分散FSサーバ11Dにフェールオーバすることで、サービスを継続する。
具体的には、ハードウェア障害またはソフトウェア障害などが原因で分散FSサーバ11Aが応答不能となり、分散FSサーバ11Aが管理するデータへのアクセスが不可となったものとする(A101)。
次に、分散FSサーバ11B、11Cのうち1台が分散FSサーバ11Aの障害を検知する。障害を検知した分散FSサーバ11B、11Cは、ストレージプール2Aに含まれない分散FSサーバ11D、11Eのうち、最も負荷の低い分散FSサーバ11Dをフェールオーバ先に選出する。分散FSサーバ11Dは、分散FSサーバ11Aの論理ノード4Aに割当てられたデータLU6Aと管理LU10AのLUパスを自らに切り替え、アタッチする(A102)。ここで言うアタッチとは、分散FSサーバ11Aのプログラムが該当するLUにアクセス可能な状態とする処理である。LUパスは、LUにアクセスするためのアクセスパスである。
次に、分散FSサーバ11Dは、A102でアタッチされたデータLU6Aと管理LU10Aを用いて、論理ノード4Aを分散FSサーバ11D上で起動し、サービスを再開する(A103)。
次に、分散FSサーバ11Dは、分散FSサーバ11Aの障害回復後に、論理ノード4Aを停止し、論理ノード4Aに割当てられたデータLU6Aと管理LU10Aをデタッチする(A104)。ここで言うデタッチとは、分散FSサーバ11Dの全ての書き込みデータをLUに反映した上で、分散FSサーバ11DのプログラムからLUにアクセスできない状態とする処理である。その後、分散FSサーバ11Aは、論理ノード4Aに割当てられたデータLU6Aと管理LU10Aを分散FSサーバ11Aにアタッチする。
次に、分散FSサーバ11AはA104でアタッチしたデータLU6Aと管理LU10Aを用いて、論理ノード4Aを分散FSサーバ11A上で起動し、サービスを再開する(A105)。
以上説明したように、上述した第1実施形態によれば、LUパス切り替えによるフェールオーバとフェールバックにより、分散FSサーバ11A~11E間でデータ冗長化が不要となり、サーバ障害時のリビルドも不要となる。その結果、分散FSサーバ11Aの障害発生時の回復時間を減らすことができる。
また、上述した第1実施形態によれば、障害が発生した分散FSサーバ11Aと同一のストレージプール2Aを構成する分散FSサーバ11B、11C以外の分散FSサーバ11Dをフェールオーバ先として選択することにより、分散FSサーバ11B、11Cの負荷集中を防止することができる。
なお、上述した第1実施形態では、分散FSサーバがRAID制御を有する例を示したが、これは例示に過ぎない。他に、共有ストレージアレイ6AがRAID制御を有し、LUを冗長化する構成も可能である。
図2は、第1実施形態に係るストレージシステムの構成例を示すブロック図である。
図2において、分散ストレージシステム10Aは、管理サーバ5、N個の分散FSサーバ11A~11C、・・・および1つまたは複数の共有ストレージアレイ6A、6Bを備える。1つまたは複数のホストサーバ1A~1Cが分散ストレージシステム10Aに接続する。
ホストサーバ1A~1C、管理サーバ5および分散FSサーバ11A~11C、・・・は、フロントエンド(FE)ネットワーク9を介して接続されている。分散FSサーバ11A~11C、・・・は、バックエンド(BE)ネットワーク19を介して互いに接続されている。分散FSサーバ11A~11C、・・・および共有ストレージアレイ6A、6Bは、SAN(Storage Area Network)18を介して接続されている。
各ホストサーバ1A~1Cは、分散FSサーバ11A~11C、・・・のクライアントである。各ホストサーバ1A~1Cは、ネットワークI/F3A~3Cを備える。各ホストサーバ1A~1Cは、ネットワークI/F3A~3Cを介してFEネットワーク9に接続し、分散FSサーバ11A~11C、・・・に対してファイルI/Oを発行する。このとき、NFS(Network File System)、CIFS(Common Internet File System)、AFP(Apple Filing Protocol)などのネットワークを介したファイルI/Oインタフェースのためのいくつかのプロトコルを用いることができる。
管理サーバ5は、分散FSサーバ11A~11C、・・・および共有ストレージアレイ6A、6Bの管理用のサーバである。管理サーバ5は、管理ネットワークI/F7を備える。管理サーバ5は、管理ネットワークI/F7を介してFEネットワーク9に接続し、分散FSサーバ11A~11C、・・・と共有ストレージアレイ6A、6Bに対して管理要求を発行する。管理要求の通信形態として、SSH(Secure Shell)を介したコマンド実行またはREST API(Representational State Transfer Application Program Interface)などを使用する。管理サーバ5は、管理者に対し、CLI(Command Line Interface)、GUI(Graphical User Interface)またはREST APIなどの管理インタフェースを提供する。
分散FSサーバ11A~11C、・・・は、各ホストサーバ1A~1Cに対して論理的な記憶領域であるストレージプールを提供する分散ファイルシステムを構成する。各分散FSサーバ11A~11C、・・・は、FE I/F13A~13C、・・・、BE I/F15A~15C、・・・、HBA16A~16C、・・・およびBMC(Baseboard Management Controller)17A~17C、・・・をそれぞれ備える。各分散FSサーバ11A~11C、・・・は、FE I/F13A~13C、・・・を介してFEネットワーク9に接続し、各ホストサーバ1A~1CからのファイルI/Oと、管理サーバ5からの管理要求を処理する。各分散FSサーバ11A~11C、・・・は、HBA16A~16C、・・・を介してSAN18に接続し、ストレージアレイ6A、6Bにユーザデータと制御情報を格納する。各分散FSサーバ11A~11C、・・・は、BE I/F15A~15C、・・・を介してBEネットワーク19に接続し、分散FSサーバ11A~11C、・・・間で通信する。各分散FSサーバ11A~11C、・・・は、BMC(Baseboard Management Controller)17A~17C、・・・を介して正常時および障害発生時の外部から電源操作を可能とする。
SAN18の通信プロトコルとして、SCSI(Small Computer System Interface)、iSCSIまたはNon-Volatile Memory Express(NVMe)などが使用でき、通信媒体としてFC(ファイバチャネル)またはEthernetを使用できる。BMC17A~17C、・・・の通信プロトコルとして、Intelligent Platform Management Interface (IPMI)が使用できる。SAN18は、FEネットワーク9から分離している必要はない。FEネットワーク9とSAN18の両方を併合することが可能である。
BEネットワーク19について、各分散FSサーバ11A~11C、・・・は、BE I/F15A~15Cを使用し、BEネットワーク19を介して他の分散FSサーバ11A~11C、・・・と通信する。このBEネットワーク19は、メタデータを交換したり、他の様々な目的に使用することができる。BEネットワーク19は、FEネットワーク9から分離している必要はない。FEネットワーク9とBEネットワーク19の両方を併合することが可能である。
共有ストレージアレイ6A、6Bは、各分散FSサーバ11A~11C、・・・が管理するユーザデータおよび制御情報を格納するための論理的な記憶領域としてLUを各分散FSサーバ11A~11C、・・・に提供する。
なお、図2では、ホストサーバ1A~1Cと管理サーバ5を分散FSサーバ11A~11C、・・・とは物理的に別のサーバとして示したが、これは例示に過ぎない。他にも、ホストサーバ1A~1Cと分散FSサーバ11A~11C、・・・で同じサーバを共有してもよいし、管理サーバ5と分散FSサーバ11A~11C、・・・で同じサーバを共有してもよい。
図3は、図2の分散FSサーバのハードウェア構成例を示すブロック図である。なお、図3では、図2の分散FSサーバ11Aを例にとるが、他の分散FSサーバ11B、11C、・・・も同様に構成することができる。
図3において、分散FSサーバ11Aは、CPU21A、メモリ23A、FE I/F13A、BE I/F15A、HBA16A、BMC17Aおよび記憶装置27Aを備える。
メモリ23Aは、ストレージデーモンプログラムP1、監視デーモンプログラムP3、メタデータサーバデーモンプログラムP5、プロトコル処理プログラムP7、フェールオーバ制御プログラムP9、RAID制御プログラムP11、ストレージプール管理テーブルT2、RAID制御テーブルT3およびフェールオーバ制御テーブルT4を保持する。
CPU21は、メモリ23A上のプログラムに従ってデータを処理することによって、所定の機能を提供する。
ストレージデーモンプログラムP1、監視デーモンプログラムP3およびメタデータサーバデーモンプログラムP5は、他の分散FSサーバ11B、11C、・・・と協調し、分散ファイルシステムを構成する。以下、ストレージデーモンプログラムP1、監視デーモンプログラムP3およびメタデータサーバデーモンプログラムP5を総称して、分散FS制御デーモンと呼ぶ。分散FS制御デーモンは、分散FSサーバ11A上で、分散ファイルシステムの論理的な管理単位である論理ノード4Aを構成し、他の分散FSサーバ11B、11C、・・・と協調して分散ファイルシステムを実現する。
ストレージデーモンプログラムP1は、分散ファイルシステムのデータ格納を処理する。ストレージデーモンプログラムP1は、論理ノードごとに1つ以上割り当てられ、それぞれがRAID Groupごとのデータの読み書きを担当する。
監視デーモンプログラムP3は、分散ファイルシステムを構成する分散FS制御デーモン群と定期的に通信し、生死監視を行う。監視デーモンプログラムP3は、分散ファイルシステム全体で事前に決められた1つ以上のプロセス数動作し、分散FSサーバ11Aによっては存在しない場合もある。
メタデータサーバデーモンプログラムP5は、分散ファイルシステムのメタデータを管理する。ここで言うメタデータとは、分散ファイルシステムのファイル・ディレクトリの名前空間、Inode番号、アクセス権限情報およびQuotaなどを指す。メタデータサーバデーモンプログラムP5も、分散ファイルシステム全体で事前に決められた1つ以上のプロセス数のみ動作し、分散FSサーバ11Aによっては存在しない場合もある。
プロトコル処理プログラムP7は、NFSまたはSMBなどのネットワーク通信プロトコルの要求を受信し、分散ファイルシステムへのファイルI/Oへと変換する。
フェールオーバ制御プログラムP9は、分散ストレージシステム10A内の1台以上の分散FSサーバ11A~11C、・・・からHA(High availability)クラスタを構成する。ここで言うHAクラスタは、HAクラスタを構成するあるノードに障害が発生した際に、障害ノードのサービスを他のサーバに引き継ぐシステム構成を指す。フェールオーバ制御プログラムP9は、同一の共有ストレージアレイ6A、6Bに対してアクセス可能な2台以上の分散FSサーバ11A~11C、・・・に対してHAクラスタを構築する。HAクラスタの構成は、管理者が設定してもいいし、フェールオーバ制御プログラムP9が自動で設定してもいい。フェールオーバ制御プログラムP9は、分散FSサーバ11A~11C、・・・の生死を監視し、ノード障害を検知した際に、障害ノードの分散FS制御デーモンを他の分散FSサーバ11A~11C、・・・にフェールオーバする制御を行う。
RAID制御プログラムP11は、共有ストレージアレイ6A、6Bが提供するLUを冗長化し、LU障害発生時にIOを継続可能とする。各種テーブル類については、図8から図10を用いて後述する。
FE I/F13A、BE I/F15AおよびHBA16Aはそれぞれ、FEネットワーク9、BEネットワーク19およびSAN18に接続するための通信インタフェースデバイスである。
BMC17Aは、分散FSサーバ11Aの電源制御インタフェースを提供するデバイスである。BMC17Aは、CPU21Aおよびメモリ23Aとは独立して動作し、CPU21Aおよびメモリ23Aに障害が発生した場合でも、外部からの電源制御要求を受け付け処理することができる。
記憶装置27Aは、分散FSサーバ11Aで使用する各種プログラムを格納した不揮発性記憶媒体である。記憶装置27Aは、HDD、SSDまたはSCMを使用することができる。
図4は、図2の共有ストレージアレイのハードウェア構成例を示すブロック図である。なお、図4では、図2の共有ストレージアレイ6Aを例にとるが、他の共有ストレージアレイ6Bも同様に構成することができる。
図4において、ストレージアレイ6Aは、CPU21B、メモリ23B、FE I/F13、ストレージI/F25、HBA16および記憶装置27Bを有する。
メモリ23Bは、IO制御プログラムP13、アレイ管理プログラムP15およびLU制御テーブルT5を保持する。
CPU21Bは、IO制御プログラムP13およびアレイ管理プログラムP15に従ってデータ処理することによって、所定の機能を提供する。
IO制御プログラムP13は、HBA16経由で受信したLUに対するIO要求を処理し、記憶装置27Bに格納したデータの読み書きを行う。アレイ管理プログラムP15は、管理サーバ5から受信したLU管理要求に従い、ストレージアレイ6A内のLUの作成、拡張、縮小および削除を行う。LU制御テーブルT5は、図11を用いて後述する。
FE I/F13およびHBA16は、それぞれSAN18およびFEネットワーク9に接続するための通信インタフェースデバイスである。
記憶装置27Bは、ストレージアレイ6Aで使用する各種プログラムに加え、分散FSサーバ11A~11C、・・・が格納したユーザデータおよび制御情報を記録する。CPU21Bは、ストレージI/F25を介して記憶装置27Bのデータを読み書きできる。CPU21BとストレージI/F25との間の通信には、FC(ファイバチャネル)、SATA(Serial Attached Technology Attachment)、SAS(Serial Attached SCSI)またはIDE(Integrated Device Electronics)などのインタフェースが用いられる。記憶装置27Bの記憶媒体には、HDD、SSD、SCM、フラッシュメモリ、光ディスクまたは磁気テープなどのような複数の種類の記憶媒体を使用することができる。
図5は、図2の管理サーバのハードウェア構成例を示すブロック図である。
図5において、管理サーバ5は、CPU21C、メモリ23C、管理ネットワークI/F7および記憶装置27Cを備える。管理プログラムP17は、入力装置29およびディスプレイ31に接続されている。
メモリ23Cは、管理プログラムP17、LU管理テーブルT6、サーバ管理テーブルT7およびアレイ管理テーブルT8を保持する。
CPU21Cは、管理プログラムP17に従ってデータ処理することによって、所定の機能を提供する。
管理プログラムP17は、管理者から管理ネットワークI/F7を介して受信した管理要求に従い、分散FSサーバ11A~11C、・・・およびストレージアレイ6A、6Bに対して構成変更要求を発行する。ここで言う管理者からの管理要求とは、ストレージプールの作成・削除・拡大・縮小および論理ノードのフェールオーバ・フェールバックなどを含む。分散FSサーバFS11A~11C、・・・への構成変更要求とは、ストレージプールの作成・削除・拡大・縮小および論理ノードのフェールオーバ・フェールバックなどを含む。ストレージアレイ6A、6Bへの構成変更要求とは、LU作成・削除・拡張・縮小およびLUパスの追加、削除、変更を含む。各種テーブルは、図11から図13を用いて後述する。
管理ネットワークI/F7は、FEネットワーク9に接続するための通信インタフェースデバイスである。記憶装置27Cは、管理サーバ5で使用する各種プログラムを格納した不揮発性記憶媒体である。記憶装置27Cには、HDD、SSDまたはSCMなどを使用することができる。入力装置29は、キーボード、マウスまたはタッチパネルを含み、利用者(あるいは管理者)の操作を受け付ける。ディスプレイ31には、管理インタフェースの画面などが表示される。
図6は、図2のホストサーバのハードウェア構成例を示すブロック図である。なお、図6では、図2のホストサーバ1Aを例にとるが、他のホストサーバ1B、1Cも同様に構成することができる。
図6において、ホストサーバ1Aは、CPU21D、メモリ23D、ネットワークI/F3Aおよび記憶装置27Dを有する。
メモリ23Dは、アプリケーションプログラムP21およびネットワークファイルアクセスプログラムP23を保持する。
アプリケーションプログラムP21は、分散ストレージシステム10Aを利用してデータ処理を行う。アプリケーションプログラムP21は、例えば、Relational Database Management System(RDMS)またはVM Hypervisorなどのプログラムである。
ネットワークファイルアクセスプログラムP23は、分散FSサーバ11A~11C、・・・に対してファイルI/Oを発行して分散FSサーバ11A~11C、・・・に対するデータの読み書きを行う。ネットワークファイルアクセスプログラムP23は、ネットワーク通信プロトコルにおいて、クライアント側の制御を提供するが、これに限定されるものではない。
図7は、図1の論理ノード制御情報の一例を示す図である。なお、図7では、図1の論理ノード制御情報12Aを例にとるが、他の論理ノード制御情報12B、・・・も同様に構成することができる。
図7において、論理ノード制御情報12Aは、図1の分散FSサーバ11Aの分散FS制御デーモンが管理する論理ノードの制御情報を格納する。
論理ノード制御情報12Aは、論理ノードID C11、IPアドレスC12、監視デーモンIP C13、認証情報C14、デーモンID C15およびデーモン種別C16のエントリを含む。
論理ノードID C11は、分散ストレージシステム10A内で一意に識別可能な論理ノードの識別子を格納する。
IPアドレスC12は、論理ノードID C11で示された論理ノードのIPアドレスを格納する。IPアドレスC12は、図2のFEネットワーク9およびBEネットワーク19それぞれのIPアドレスを格納する。
監視デーモンIP C13は、分散ファイルシステムの監視デーモンプログラムP3のIPアドレスを格納する。分散FS制御デーモンは、監視デーモンIP C13に格納されたIPアドレスを介して監視デーモンプログラムP3と通信することで、分散FSに参加する。
認証情報C14は、分散FS制御デーモンが監視デーモンプログラムP3と接続する際の認証情報を格納する。この認証情報には、例えば、監視デーモンプログラムP3から取得した公開鍵を用いることができるが、他の認証情報を用いてもいい。
デーモンID C15は、論理ノードID C11で示された論理ノードを構成する分散FS制御デーモンのIDを格納する。デーモンID C15は、ストレージデーモン、監視デーモンおよびメタデータサーバデーモンそれぞれに対し管理し、1つの論理ノードに対し複数のデーモンID C15を持つことができる。
デーモン種別C16は、デーモンID C15の各デーモンの種別を格納する。デーモン種別として、ストレージデーモン、メタデータサーバデーモンおよび監視デーモンの3つのうちいずれかを格納できる。
なお、本実施形態では、IPアドレスC12および監視デーモンIP C13にIPアドレスを使用しているが、これは例示に過ぎない。他にホスト名を用いた通信を行うことも可能である。
図8は、図3のストレージプール管理テーブルの一例を示す図である。
図8において、ストレージプール管理テーブルT2は、分散FS制御デーモンがストレージプールの構成を管理するための情報を格納する。分散ファイルシステムを構成するすべての分散FSサーバ11A~11Eは、互いに通信し、同一の内容を持つストレージプール管理テーブルT2を保持する。
ストレージ管理テーブルT2は、プールID C21、冗長化レベルC22および所属ストレージデーモンC23のエントリを含む。
プールID C21は、図1の分散ストレージシステム10A内で一意に識別可能なストレージプールの識別子を格納する。プールID C21は、新規に作成されるストレージプールに対し、分散FS制御デーモンが生成する。
冗長化レベルC22は、プールID C21に示されたストレージプールのデータの冗長化レベルを格納する。冗長化レベルC22には、「無効」、「二重化」、「三重化」および「Erasure Code」のいずれかを指定できるが、本実施形態では、分散FSサーバ11A~11E間では冗長化を行わないため、「無効」を指定する。
所属ストレージデーモンC23は、プールID C21に示されたストレージプールを構成するストレージデーモンプログラムP1の識別子を1つ以上格納する。所属ストレージデーモンC23は、ストレージプール作成時に管理プログラムP17が設定する。
図9は、図3のRAID制御テーブルの一例を示す図である。
図9において、RAID制御テーブルT3は、RAID制御プログラムP11がLUを冗長化するための情報を格納する。RAID制御プログラムP11は、起動時に管理サーバ5と通信し、LU管理テーブルT6の内容に基づき、RAID制御テーブルT3を作成する。RAID制御プログラムP11は、RAID制御テーブルT3の内容に従い、共有ストレージアレイ6Aが提供するLUからRAID Groupを構築し、分散FS制御デーモンに提供する。ここで言うRAID Groupとは、データの読み書きが可能な論理的な記憶領域を指す。
RAID制御テーブルT3は、RAID Group ID C31、冗長化レベルC32、オーナノードID C33、デーモンID C34、ファイルパスC35およびWWN C36のエントリを含む。
RAID Group ID C31は、分散ストレージシステム10A内で一意に識別可能なRAID Groupの識別子を格納する。
冗長化レベルC32は、RAID Group ID C31で示されたRAID Groupの冗長化レベルを格納する。冗長化レベルには、RAID1(nD+mD)、RAID5(nD+1P)またはRAID6(nD+2P)などのRAID構成を格納する。なお、nとmは、それぞれRAID Group内のデータ数と冗長化データ数を表す。
オーナノードID C33は、RAID Group ID C31で示されたRAID Groupを割り当てる論理ノードのIDを格納する。
デーモンID C34は、RAID Group ID C31で示されたRAID Groupを使用するデーモンのIDを格納する。また、RAID Groupが複数のデーモンで共有される場合、共有されることを示すIDである「共有」を格納する。
ファイルパスC35は、RAID Group ID C31で示されたRAID Groupにアクセスするためのファイルパスを格納する。ファイルパスC35に格納されるファイルの種別は、RAID Groupを使用するデーモンの種別により異なる。ストレージデーモンプログラムP1がRAID Groupを使用する場合、ファイルパスC35には、デバイスファイルのパスを格納する。RAID Groupをデーモン間で共有する場合、RAID Groupをマウントしたマウントパスを格納する。
WWN C36は、SAN18でLUN(Logical Unit Number)を一意に識別するための識別子であるWWN(World Wide Name)を格納する。WWN C36は、分散FSサーバ11A~11EがLUにアクセスする際に使用する。
図10は、図3のフェールオーバ制御テーブルの一例を示す図である。
図10において、フェールオーバ制御テーブルT4は、フェールオーバ制御プログラムP9が論理ノードの稼働サーバを管理するための情報を格納する。HAクラスタを構築する全ノードのフェールオーバ制御プログラムP9は、お互いに通信することで、全てのノードで同一内容のフェールオーバ制御T4を保持する。
フェールオーバ制御テーブルT4は、論理ノードID C41、主サーバC42、稼働サーバC43およびフェールオーバ可能サーバC44のエントリを含む。
論理ノードID C41は、分散ストレージシステム10A内で一意に識別可能な論理ノードの識別子を格納する。論理ノードIDは、サーバの新規追加時に、管理プログラムP17がサーバと対応付けられた名前を設定する。図10では、例えば、Server0に対して、論理ノードIDをNode0としている。
主サーバC42は、初期状態で論理ノードが稼働する各分散FSサーバ11A~11EのサーバIDを格納する。
稼働サーバC43は、論理ノードID C41で示された論理ノードが稼働する各分散FSサーバ11A~11EのサーバIDを格納する。
フェールオーバ可能サーバC44は、論理ノードID C41で示された論理ノードがフェールオーバ可能な分散FSサーバ11A~11EのサーバIDを格納する。フェールオーバ可能サーバC44には、HAクラスタを構成する分散FSサーバ11A~11Eのうち、同一のストレージプールを構成する分散FSサーバを除いた分散FSサーバを格納する。フェールオーバ可能サーバC44は、管理プログラムP17がボリューム作成時に設定する。
図11は、図4のLU制御テーブルの一例を示す図である。
図11において、LU制御テーブルT5は、IO制御プログラムP13およびアレイ管理プログラムP15が、LUの構成を管理し、LUに対するIO要求処理のための情報を格納する。
LU制御テーブルT5は、LUN C51、冗長化レベルC52、物理デバイスID C53、WWN C54、デバイス種別C55および容量C56のエントリを含む。
LUN C51は、ストレージアレイ6A内のLUの管理番号を格納する。冗長化レベルC52は、ストレージアレイ6A内のLUの冗長化レベルを指定する。冗長レベルC52に格納できる値は、RAID制御テーブルT3の冗長化レベルC32と同等となる。本実施形態では、各分散FSサーバ11A~11EのRAID制御プログラムP11がLUを冗長化し、ストレージアレイ6Aは冗長化を行わないため、「無効」を指定する。
記憶装置ID C53は、LUを構成する記憶装置27Bの識別子を格納する。WWN C54は、SAN18でLUNを一意に識別するための識別子であるWWN(World Wide Name)を格納する。WWN C54は、分散FSサーバ11がLUにアクセスする際に使用する。
デバイス種別C55は、LUを構成する記憶装置27Bの記憶媒体の種別を格納する。デバイス種別C55には、「SCM」、「SSD」または「HDD」などのデバイス種別を示す記号を格納する。容量C56は、LUの論理容量を格納する。
図12は、図5のLU管理テーブルの一例を示す図である。
図12において、LU管理テーブルT6は、管理プログラムP17が、分散ストレージシステム10A全体で共有するLUの構成を管理するための情報を格納する。管理プログラムP17は、アレイ管理プログラムP15およびRAID制御プログラムP11と連携し、LUの作成・削除および論理ノードへの割当てを行う。
LU管理テーブルT6は、LU ID C61、論理ノードC62、RAID Group ID C63、冗長化レベルC64、WWN C65および用途C66のエントリを含む。
LU ID C61は、分散ストレージシステム10A内で一意に識別可能なLUの識別子を格納する。LU ID C61は、管理プログラムP17がLU作成時に生成する。論理ノードC62は、LUを所有する論理ノードの識別子を可能する。
RAID Group ID C63は、分散ストレージシステム10A内で一意に識別可能なRAID Groupの識別子を格納する。RAID Group ID C63は、管理プログラムP17がRAID Group作成時に生成する。
冗長化レベルC64は、RAID Groupの冗長化レベルを格納する。WWN C65は、LUのWWNを格納する。用途C66は、LUの用途を格納する。用途C66は、「データLU」または「管理LU」を格納する。
図13は、図5のサーバ管理テーブルの一例を示す図である。
図13において、サーバ管理テーブルT7は、管理プログラムP17が分散FSサーバ11A~11Eと通信したり、LUとRAID Groupの構成を決定したりするために必要な分散FSサーバ11A~11Eの構成情報を格納する。
サーバ管理テーブルT7は、サーバID C71、接続ストレージアレイC72、IPアドレスC73、BMCアドレスC74、MTTF C75および起動時間C76のエントリを含む。
サーバID C71は、分散ストレージシステム10A内で一意に識別可能な分散FSサーバ11A~11Eの識別子を格納する。
接続ストレージアレイC72は、サーバID C71で示された分散FSサーバ11A~11Eからアクセス可能なストレージアレイ6Aの識別子を格納する。
IPアドレスC73は、サーバID C71で示された分散FSサーバ11A~11EのIPアドレスを格納する。
BMCアドレスC74は、サーバID C71で示された分散FSサーバ11A~11Eの各BMCのIPアドレスを格納する。
MTTF C75は、サーバID C71で示された分散FSサーバ11A~11Eの平均故障時間MTTF(Mean Time To Failure)を格納する。MTTFは、例えば、サーバ種別に応じたカタログ値などを使用する。
起動時間C76は、サーバID C71で示された分散FSサーバ11A~11Eの正常状態における起動時間を格納する。管理プログラムP17は、起動時間C76を基に、フェールオーバ時間を見積もる。
なお、本実施形態では、IPアドレスC73およびBMCアドレスC74にIPアドレスを格納する例を示しているが、他にホスト名を使用してもよい。
図14は、図5のアレイ管理テーブルの一例を示す図である。
図14において、アレイ管理テーブルT8は、管理プログラムP17がストレージアレイ6Aと通信したり、LUとRAID Group構成を決定したりするためのストレージアレイ6Aの構成情報を格納する。
アレイ管理テーブルT8は、アレイID C81、管理IPアドレスC82およびLUN ID C83のエントリを含む。
アレイID C81は、分散ストレージシステム10A内で一意に識別可能なストレージアレイ6Aの識別子を格納する。
管理IPアドレスC82は、アレイID C81で示されたストレージアレイ6Aの管理用IPアドレスを格納する。なお、本実施形態では、IPアドレスを格納する例を示しているが、他にホスト名を使用してもよい。
LU IDC83は、アレイID C81で示されたストレージアレイ6Aが提供するLUのIDを格納する。
図15は、第1実施形態に係るストレージシステムのストレージプール作成処理の一例を示すフローチャートである。
図15において、図5の管理プログラムP17は、管理者からストレージプールの作成要求を受信すると、フェールオーバ時の負荷分散および信頼性要件に基づいて、ストレージプールを作成する。
具体的には、管理プログラムP17は、管理者から新規プール名、プールサイズ、冗長化レベルおよび信頼性要件を含んだストレージプール作成要求を受信する(S110)。管理者は、図20に示すストレージプール作成画面を通じて、ストレージプール作成要求を管理サーバ5に発行する。
次に、管理プログラムP17は、1つ以上の分散FSサーバからなるストレージプール構成候補を作成する(S120)。管理プログラムP17は、サーバ管理テーブルT7を参照し、ストレージプールを構成するノードを選択する。この際、管理プログラムP17は、構成ノード数を、分散FSサーバ群の半分以下とすることで、ノード障害時のフェールオーバ先ノードが、同一のストレージプールの構成ノード以外にあることを保証する。
また、管理プログラムP17は、サーバ管理テーブルT7を参照し、候補とするノードと同じストレージアレイに接続可能なノードが、同一のストレージプールの構成ノード以外にあることを保証する。
なお、構成ノード数の制限は例示に過ぎず、分散FSサーバ数が少ない場合には、構成ノード数を「分散FSサーバ群の数-1」としてもよい。
次に、管理プログラムP17は、ストレージプールの稼働率KMを見積もり、稼働率要件を満たすかどうか判断する(S130)。管理プログラムP17は、以下の式(1)を用いてストレージプール構成候補で構成したストレージプールの稼働率KMを計算する。
Figure 0007332488000001
ただし、MTTFserverは、分散FSサーバのMTTF、F.O.Timeserverは、分散FSサーバのF.O.時間(フェールオーバ時間)を表す。分散FSサーバ11のMTTFは、図13のMTTF C75を使用し、F.O.時間は、起動時間C76を1分大きくした値を使用する。なお、MTTFとF.O.時間の見積もり方法は例示であり、その他の方法を用いてもよい。
稼働率要件は、管理者が指定した信頼性要件から設定し、例えば、高信頼が求められた場合は、稼働率の要件を0.99999以上とする。
管理プログラムP17は、式(1)を満たさない場合は、ストレージプール構成候補が稼働率要件を満たさないと判定し、S140に進み、そうでない場合はS150に進む。
稼働率要件を満たさない場合、管理プログラムP17は、ストレージプール構成候補から分散FSサーバを1台減らし、新たなストレージプール構成候補を作成し、S130に戻る(S140)。
稼働率要件を満たす場合、管理プログラムP17は、管理インタフェースを介してストレージプール構成候補の分散FSサーバ一覧を管理者に提示する(S150)。管理者は、分散FSサーバ一覧を参照し、必要な変更を行った上で、変更後の構成をストレージプール構成として確定する。ストレージプール作成の管理インタフェースは、図20にて後述する。
次に、管理プログラムP17は、管理者が指定した冗長度レベルを満たすRAID Group構成を決定する(S160)。管理プログラムP17は、管理者が指定したストレージプール容量を分散FSサーバ数で割った値から、分散FSサーバ当たりのRAID Group容量を算出する。管理プログラムP17は、ストレージアレイ6Aに指示し、RAID Groupを構成するLUを作成し、LU制御テーブルT5を更新する。その後、管理プログラムP17は、RAID制御プログラムP11を介してRAID制御テーブルT3を更新し、RAID Groupを構築する。そして、管理プログラムP17は、LU管理テーブルT6を更新する。
次に、管理プログラムP17は、フェールオーバ制御プログラムP9と通信し、フェールオーバ制御テーブルT4を更新する(S170)。管理プログラムP17は、ストレージプールを構成する分散FSサーバを主サーバC42とする論理ノードID C41について、フェールオーバ可能サーバC44を調べ、そのストレージプールを構成する分散FSサーバが含まれている場合、その分散FSサーバをフェールオーバ可能サーバC44から除外する。
次に、管理プログラムP17は、分散FS制御デーモンに指示し、S160で作成したRAID Groupを使用するストレージデーモンを新たに作成する(S180)。その後、管理プログラムP17は、分散FS制御デーモンを介して、分散FS制御情報T1とストレージプール管理テーブルT2を更新する。
図16は、第1実施形態に係るストレージシステムのフェールオーバ処理の一例を示すシーケンス図である。図16では、図1の分散FSサーバ11A、11B、11Dのフェールオーバ制御プログラムP9および図5の管理プログラムP17の処理を抜粋して示した。
図16において、分散FSサーバ11A、11B、11D間で定期的に通信(ハートビート)を行うことで相互に生死監視を行う(S210)。このとき、例えば、分散FSサーバ11Aでノード障害が発生したものとする(S220)。
分散FSサーバ11Aでノード障害が発生すると、分散FSサーバ11Aからのハートビートが途絶える。このとき、例えば、分散FSサーバ11Bのフェールオーバ制御プログラムP9は、分散FSサーバ11Aからのハートビートが途絶えると、分散FSサーバ11Aの障害を検知する(S230)。
次に、分散FSサーバ11Bのフェールオーバ制御プログラムP9は、フェールオーバ制御テーブルT4を参照し、フェールオーバ可能サーバの一覧を取得する。分散FSサーバ11Bのフェールオーバ制御プログラムP9は、フェールオーバ可能サーバの全てから現在の負荷(例えば、過去24時間のIO数)を取得する(S240)。
次に、分散FSサーバ11Bのフェールオーバ制御プログラムP9は、S240で得た負荷情報から最も負荷の低い分散FSサーバ11Dをフェールオーバ先として選択する(S250)。
次に、分散FSサーバ11Bのフェールオーバ制御プログラムP9は、分散FSサーバ11AのBMC17Aに指示し、分散FSサーバ11Aの電源を停止させる(S260)。
次に、分散FSサーバ11Bのフェールオーバ制御プログラムP9は、分散FSサーバ11Dに論理ノード4Aを起動するよう指示する(S270)。
次に、分散FSサーバ11Dのフェールオーバ制御プログラムP9は、管理サーバ5に問い合わせ、論理ノード4Aが使用するLUを記載したLUリストを取得する(S280)。分散FSサーバ11Dのフェールオーバ制御プログラムP9は、RAID制御テーブルT3を更新する。
次に、分散FSサーバ11Dのフェールオーバ制御プログラムP9は、SAN18を介してWWN C65を持つLUを検索し、分散FSサーバ11Dにアタッチする(S290)。
次に、分散FSサーバ11Dのフェールオーバ制御プログラムP9は、RAID制御プログラムP11に指示し、RAID Groupを構築する(S2100)。RAID制御プログラムP11は、RAID制御テーブルT3を参照し、論理ノード4Aが使用するRAID Groupを構築する。
次に、分散FSサーバ11Dのフェールオーバ制御プログラムP9は、論理ノード4Aの管理LU10A内に格納された論理ノード制御情報12Aを参照し、論理ノード4A用の分散FS制御デーモンを起動する(S2110)。
次に、分散FSサーバ11Dのフェールオーバ制御プログラムP9は、分散FSサーバ11Dが過負荷状態となっており、かつフェールオーバから一定時間(例えば、1週間)経過後もフェールバックされない場合は、図19に示すストレージプール縮小フローを実施し、論理ノード4Aを分散ストレージシステム10Aから減設する(S2120)。分散FS制御デーモンは、残った分散FSサーバ間でデータ容量が均等になるようにデータをリバランスすることで、負荷を均等化する。
図17は、第1実施形態に係るストレージシステムのフェールバック処理の一例を示すシーケンス図である。図17では、図1の分散FSサーバ11A、11Dのフェールオーバ制御プログラムP9および図5の管理プログラムP17の処理を抜粋して示した。
図17において、管理者は、障害が発生した分散FSサーバ11Aを、サーバ交換または障害部位交換などの保守作業により障害回復を実施した後、管理インタフェースを介し管理プログラムP17にノード回復を指示する(S310)。
次に、管理プログラムP17は、ノード回復要求を管理者から受信すると、障害が発生した分散FSサーバ11Aに対し、ノード回復指示を発行する(S320)。
次に、分散FSサーバ11Aのフェールオーバ制御プログラムP9は、ノード回復指示を受信すると、論理ノード4Aが動作する分散FSサーバ11Dに対し、論理ノード4Aの停止指示を発行する(S330)。
次に、分散FSサーバ11Dのフェールオーバ制御プログラムP9は、論理ノード4Aの停止指示を受けると、論理ノード4Aに割当てられた分散FS制御デーモンを停止する(S340)。
次に、分散FSサーバ11Dのフェールオーバ制御プログラムP9は、論理ノード4Aが使用していたRAID Groupを停止する(S350)。
次に、分散FSサーバ11Dのフェールオーバ制御プログラムP9は、論理ノード4Aが使用するLUを分散FSサーバ11Dからデタッチする(S360)。
次に、分散FSサーバ11Aのフェールオーバ制御プログラムP9は、管理プログラムP17に問い合わせ、論理ノード4Aが使用する最新のLUリストを取得し、RAID制御テーブルT3を更新する(S370)。
次に、分散FSサーバ11Aのフェールオーバ制御プログラムP9は、論理ノード4Aが使用するLUを分散FSサーバ11Aにアタッチする(S380)。
次に、分散FSサーバ11Aのフェールオーバ制御プログラムP9は、RAID制御テーブルT3を参照し、RAID Groupを構成する(S390)。
次に、分散FSサーバ11Aのフェールオーバ制御プログラムP9は、論理ノード4Aの分散FS制御デーモンを起動する(S3100)。
なお、図16のS2120で論理ノード4Aが減設されている場合は、図17で示した処理ではなく、図18で後述するストレージプール拡張フローで障害サーバを復旧する。
図18は、第1実施形態に係るストレージシステムのストレージプール拡張処理の一例を示すフローチャートである。
図18において、管理者は、分散FSサーバの増設時またはストレージプールの容量不足時に、管理プログラムP17に対しストレージプール拡張を指示することでストレージプール容量を拡張することができる。ストレージプール拡張が要求された場合、管理プログラムP17は、新規の分散FSサーバまたは指定された既存の分散FSサーバに他のサーバと同容量のデータLUをアタッチし、ストレージプールに追加する。
具体的には、管理プログラムP17は、管理インタフェースを介して管理者からのプール拡張コマンドを受信する(S410)。プール拡張コマンドは、新規にストレージプールに追加する分散FSサーバの情報と、拡張するストレージプールIDを含む。管理プログラムP17は、受け取った情報を基に、新規に追加する分散FSサーバをサーバ管理テーブルT7に追加する。
次に、管理プログラムP17は、ストレージアレイ6Aに指示し、ストレージプールを構成する他の分散FSサーバのデータLUと同じ構成のデータLUを作成する(S420)。
次に、管理プログラムP17は、S420で作成したデータLUを、新規に追加する分散FSサーバまたは管理者により指定された既存の分散FSサーバにアタッチする(S430)。
次に、管理プログラムP17は、RAID制御プログラムP11に指示し、S430でアタッチしたLUからRAID Groupを構成する(S440)。RAID制御プログラムP11は、新規のRAID Groupの情報をRAID制御テーブルT3に反映する。
次に、管理プログラムP17は、ストレージデーモンプログラムP1を介して、S440で作成したRAID Groupを管理するためのストレージデーモンを作成し、ストレージプールに追加する(S450)。ストレージデーモンプログラムP1は、論理ノード制御情報およびストレージプール管理テーブルT2を更新する。また、管理プログラムP17は、フェールオーバ制御プログラムP9を介し、フェールオーバ制御テーブルT4のフェールオーバ可能サーバC44を更新する。
次に、管理プログラムP17は、分散FS制御デーモンに指示し、拡張したストレージプール内のリバランスを開始する(S460)。分散FS制御デーモンは、ストレージプール内の全ストレージデーモンの容量が均一となるように、ストレージデーモン間でデータ移動を行う。
図19は、第1実施形態に係るストレージシステムのストレージプール縮小処理の一例を示すフローチャートである。
図19において、管理者または各種制御プログラムは、管理プログラムP17にストレージ縮小指示を発行することで、分散FSサーバを減設することができる。
具体的には、管理プログラムP17は、プール縮小コマンドを受信する(S510)。プール縮小コマンドは、減設する分散FSサーバの名称を含む。
次に、管理プログラムP17は、フェールオーバ制御テーブルT4を参照し、減設する分散FSサーバを主サーバとする論理ノードIDを調べる。管理プログラムP17は、分散FS制御デーモンに対し、上記論理ノードIDを持つ論理ノードの削除を指示する(S520)。分散FS制御デーモンは、指定された論理ノード上の全てのストレージデーモンに対し、他のストレージへのデータリバランスを行った上で、ストレージデーモンを削除する。また、分散FS制御デーモンは、指定された論理ノードの監視デーモンおよびメタデータサーバデーモンを、その他の論理ノードにマイグレーションする。この際、分散FS制御デーモンは、ストレージ管理テーブルT2と、論理ノード制御情報12Aを更新する。また、管理プログラムP17は、フェールオーバ制御プログラムP9に指示し、フェールオーバ制御テーブルT4を更新する。
次に、管理プログラムP17は、RAID制御プログラムP11に指示して、S520で削除した論理ノードが使用するRAID Groupを削除し、RAID制御テーブルT3を更新する(S530)。
次に、管理プログラムP17は、ストレージアレイ6Aに指示し、削除した論理ノードが使用していたLUを削除する(S540)。そして、管理プログラムP17は、LU管理テーブルT6およびアレイ管理テーブルT8を更新する。
図20は、第1実施形態に係るストレージシステムのストレージプール作成画面の一例を示す図である。ストレージプール作成インタフェースは、ストレージプール作成画面を表示させる。ストレージプール作成画面は、図5の管理サーバ5がディスプレイ31に表示させてもよいし、クライアントがWebブラウザでURLを指定することで表示できるようにしてもよい。
図20において、ストレージプール作成画面は、テキストボックスI10、I20、リストボックスI30、I40、入力ボタンI50、サーバ一覧I60、グラフI70、決定ボタンI80およびキャンセルボタンI90の表示欄を備える。
テキストボックスI10は、管理者が新規プール名を入力する。テキストボックスI20は、管理者がストレージプールサイズを入力する。
リストボックスI30は、管理者が新規に作成するストレージプールの冗長度を指定する。リストボックスI30の用途には、「RAID1(mD+mD)」または「RAID6(mD+2P)」が選択でき、mは任意の値を使用してよい。
リストボックスI40は、管理者が新規に作成するストレージプールの信頼性を指定する。リストボックスI40の用途には、「高信頼(稼働率0.99999以上)」、「普通(稼働率0.9999以上)」または「考慮しない」を選択することができる。
入力ボタンI50は、管理者がテキストボックスI10、I20およびリストボックスI30、I40に入力した後に押下可能となる。入力ボタンI50が押下されると、管理プログラムP17は、ストレージプール作成フローを開始する。
サーバ一覧I60は、ストレージプールを構成する分散FSサーバの一覧を示すラジオボックス付きのリストである。サーバ一覧I60は、図15のストレージプール作成処理のS150に到達後に表示される。このリストの初期状態には、分散ストレージシステム10Aを構成するすべての分散FSサーバに対し、管理プログラムP17が作成したストレージプール構成候補のラジオボックスがオンとなる。管理者は、ラジオボックスのオン・オフを切り替えることでストレージプールの構成を変更することができる。
グラフI70は、サーバ数に対する稼働率見積もりの近似曲線を示す。管理者が、入力ボタンI50を押下し、サーバ一覧I60のラジオボタンを変更したタイミングで式(1)を用いてグラフI70が生成され、ストレージプール作成画面に表示される。管理者は、グラフI70を参照することで、ストレージプール構成変更時の影響を確認することができる。
決定ボタンI80は、管理者が押下することでストレージプールの構成を確定し、ストレージプール作成を継続する。キャンセルボタンI90は、管理者が押下することでストレージプールの構成を確定し、ストレージプール作成をキャンセルする。
図21は、第2実施形態に係るストレージシステムのフェールオーバ方法の一例を示すブロック図である。第2実施形態では、フェールオーバ単位である論理ノードを細粒度化することでフェールオーバ時の負荷分散を実現する。論理ノードを細粒度化では、1台の分散FSサーバが複数の論理ノードを持つ。
図21において、分散ストレージシステム10Bは、N(Nは、2以上の整数)台の分散FSサーバ51A~51C、・・・と、1台以上の共有ストレージアレイ6Aを備える。分散FSサーバ51Aでは、論理ノード61A~63Aが設けられ、分散FSサーバ51Bでは、論理ノード61B~63Bが設けられ、分散FSサーバ51Cでは、論理ノード61C~63Cが設けられている。
共有ストレージアレイ6Aは、N台の分散FSサーバ51A~51C、・・・から参照可能であり、異なる分散FSサーバ51A~51C、・・・の各論理ノード61A~63A、61B~63B、61C~63C、・・・を分散FSサーバ51A~51C、・・・間で引き継ぐための論理ユニットを格納する。共有ストレージアレイ6Aは、論理ノード61A~63A、61B~63B、61C~63C、・・・ごとにユーザデータを格納するデータLU71A~73A、・・・と、論理ノード61A~63A、61B~63B、61C~63C、・・・ごとの論理ノード制御情報91A~93A、・・・を格納する管理LU81A~83A、・・・を有する。各論理ノード制御情報91A~93A、・・・は、各論理ノード61A~63A、61B~63B、61C~63C、・・・を構成するために必要な情報である。
論理ノード61A~63A、61B~63B、61C~63C、・・・は、分散ファイルシステムを構成し、分散ファイルシステムは、分散FSサーバ61A~63A、61B~63B、61C~63C、・・・から構成されるストレージプール2をホストサーバ1A~1Cに提供する。
分散ストレージシステム10Bでは、事前に設定または管理者が事前に指定した目標稼働率に対し、論理ノード61A~63A、61B~63B、61C~63C、・・・の粒度を十分に小さくすることで、フェールオーバ後の過負荷を回避することができる。ここで言う稼働率は、CPUおよびネットワークリソースなどの分散FSサーバ51A~51C、・・・を構成するハードウェアの使用率を指す。
分散ストレージシステム10Bでは、分散FSサーバ51A~51C、・・・当たりに稼働する論理ノード数を増やすことで、論理ノード61A~63A、61B~63B、61C~63C、・・・当たりの負荷と目標稼働率の合計値が、100%を超えないようにする。このように分散FSサーバ51A~51C、・・・当たりの論理ノード数を決めることで、目標稼働率以下の負荷で運用する場合においては、フェールオーバ後に分散FSサーバ51A~51C、・・・が過負荷となることを回避することができる。
具体的には、ハードウェア障害またはソフトウェア障害などが原因で分散FSサーバ51Aが応答不能となり、分散FSサーバ51Aが管理するデータへのアクセスが不可となったものとする(A201)。
次に、分散FSサーバ51A以外の分散FSサーバがフェールオーバ先として選出され、フェールオーバ先として選出された分散FSサーバは、分散FSサーバ51Aの各論理ノード61A~63Aに割当てられたデータLU71A~73Aと管理LU81A~83AのLUパスを論理ノード61A~63Aごとに自らに切り替え、アタッチする(A202)。
次に、フェールオーバ先として選出された各分散FSサーバは、各分散FSサーバが担当する論理ノード61A~63AのデータLU71A~73Aと管理LU81A~83Aを用いて、論理ノード61A~63Aを起動し、サービスを再開する(A203)。
次に、フェールオーバ先として選出された各分散FSサーバは、分散FSサーバ51Aの障害回復後に、自らが担当する論理ノード61A~63Aを停止し、各論理ノード61A~63Aに割当てられたデータLU71A~73Aと管理LU81A~83Aをデタッチする(A204)。その後、分散FSサーバ51Aは、各論理ノード61A~63Aに割当てられたデータLU71A~73Aと管理LU81A~83Aを分散FSサーバ51Aにアタッチする。
次に、分散FSサーバ51Aは、A204でアタッチしたデータLU71A~73Aと管理LU81A~83Aを用いて、論理ノード61A~63Aを分散FSサーバ51A上で起動し、サービスを再開する(A205)。
図1の分散ストレージシステム10Aでは、分散FSサーバ51A~51E当たり1つであった初期状態での論理ノード数が、目標稼働率に従って大きくなる。その結果、分散ストレージシステム10Aでは、フェールオーバ先として同一ストレージプールに所属する分散FSサーバが選べなかった(A102)。これに対し、図21の分散ストレージシステム10Bでは、フェールオーバ先として同一ストレージプール2内の分散FSサーバが選べる(A202)。このため、分散ストレージシステム10Bでは、ストレージプールを分割することなく、フェールオーバ後の分散FSサーバの過負荷を回避することができる。
なお、分散ストレージシステム10Bにおいても、図2と同様のシステム構成を用いることができ、図3~図6と同様のハードウェア構成を用いることができ、図7~図14と同様のデータ構造を用いることができる。
図22は、第2実施形態に係るストレージシステムのストレージプール作成処理の一例を示すフローチャートである。
図22において、このストレージプール作成処理では、図15のS150の処理とS160の処理との間にS155の処理が追加されている。
S155の処理では、管理プログラムP17は、目標稼働率αに対し、分散FSサーバ当たりの論理ノード数NLを計算する。このとき、論理ノード数NLは、以下の式(2)で与えることができる。
Figure 0007332488000002
例えば、目標稼働率が0.75に設定されていた場合、分散FSサーバ当たりの論理ノード数は3となる。論理ノード数が3のときに稼働率0.75で運用した場合、論理ノード当たりのリソース使用率は0.25となるため、他の分散FSサーバにフェールオーバしても、リソース使用率は1以下となる。
S160以降において、管理プログラムP17は、分散FSサーバ当たりの論理ノード数に応じた論理ノードを用意し、RAID構築、フェールオーバ構成更新およびストレージデーモン作成を行う。
また、図16のS250において、分散ストレージシステム10Bは、フェールオーバ先として、ストレージプール構成によらず低負荷のサーバを指定する。また、分散ストレージシステム10Bは、障害ノード上の全論理ノードに対して異なるフェールオーバ先を設定する。また、S270において、障害ノード上の全論理ノードのフェールオーバ先に対してデーモン起動指示を送る。
その他、分散ストレージシステム10Bでは、図17~図19に示した処理については、分散FSサーバ当たりの論理ノード数が複数となった点を除き、分散ストレージシステム10Aと同等である。
以上、本発明の実施形態を説明したが、以上の実施形態は、本発明を分かりやすく説明するために詳細に説明したものであり、本発明は、必ずしも説明した全ての構成を備えるものに限定されるものではない。ある例の構成の一部を他の例の構成に置き換えることが可能であり、ある例の構成に他の例の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。図の構成は説明上必要と考えられるものを示しており、製品上必ずしも全ての構成を示しているとは限らない。
また、実施形態では物理サーバを使用した構成にて説明したが、他に仮想マシンを用いたクラウドコンピューティング環境においても本発明は適用可能である。クラウドコンピューティング環境は、クラウド提供者により抽象化されたシステム・ハードウェア構成上において、仮想マシン/コンテナを運用する構成となる。その場合、実施形態で示したサーバは、仮想マシン/コンテナに、ストレージアレイは、クラウド提供者が提供するブロックストレージサービスに置き換えることとなる。
また、実施形態では分散ファイルシステムの論理ノードを、分散FS制御デーモンとLUにより構成していたが、他にも分散FSサーバをVMとすることで論理ノードとして使用することができる。
1A~1C ホストサーバ、2A、2B ストレージプール、3A~3C ネットワークI/F、5 管理サーバ、6A、6B ストレージアレイ、7 管理ネットワークI/F、9 FEネットワーク、11A~11E 分散FSサーバ、13A~13C FE I/F、15A~15C BE I/F、16A~16C HBA、17A~17C BMC、18 SAN、19 BEネットワーク、21A~21D CPU、23A~23D メモリ、25 ストレージI/F、27A~27D 記憶装置、29 入力装置、31 ディスプレイ、P1 ストレージデーモンプログラム、P3 監視デーモンプログラム、P5 メタデータサーバデーモンプログラム、P7 プロトコル処理プログラム、P9 フェールオーバ制御プログラム、P11 RAID制御プログラム、P13 IO制御プログラム、P15 アレイ管理プログラム、P17 管理プログラム、P19 アプリケーションプログラム、P21 ネットワークファイルアクセスプログラム、T1 論理ノード制御情報、T2 ストレージプール管理テーブル、T3 RAID制御テーブル、T4 フェールオーバ制御テーブル、T5 LU制御テーブル、T6 LU管理テーブル、T7 サーバ管理テーブル、T8 アレイ管理テーブル

Claims (4)

  1. 複数のサーバと、
    前記複数のサーバが共用してデータを格納できる共有ストレージとを備えたストレージシステムにおいて、
    前記複数のサーバは、それぞれ、1または複数の論理ノードを備え、
    前記複数のサーバの複数の論理ノードは、ストレージプールを提供するとともに、前記ストレージプールに入出力されるユーザデータを、いずれかの論理ノードが処理して前記共有ストレージに入出力する分散ファイルシステムを形成し、
    前記論理ノードは、前記サーバ間で移動可能であり
    前記共有ストレージは、論理ノードにかかるユーザデータと、前記ユーザデータにアクセスするために用いる制御情報を保持しており、
    前記論理ノードのサーバ間移動では、ホストがサーバにアクセスするアクセスパスを移動元のサーバから移動先のサーバへ切り替えるとともに、前記移動先のサーバから前記移動にかかる論理サーバの共有ストレージ内の制御情報及びユーザデータを参照し、
    それぞれ複数の論理ノードから形成される複数のストレージプールを提供しており、
    前記移動先のサーバとして、移動にかかる論理ノードと同じストレージプールに属する論理ノードを持たないサーバを選択するストレージシステム。
  2. 複数のサーバと、
    前記複数のサーバが共用してデータを格納できる共有ストレージとを備えたストレージシステムにおいて、
    前記複数のサーバは、それぞれ、1または複数の論理ノードを備え、
    前記複数のサーバの複数の論理ノードは、ストレージプールを提供するとともに、前記ストレージプールに入出力されるユーザデータを、いずれかの論理ノードが処理して前記共有ストレージに入出力する分散ファイルシステムを形成し、
    前記論理ノードは、前記サーバ間で移動可能であり
    前記共有ストレージは、論理ノードにかかるユーザデータと、前記ユーザデータにアクセスするために用いる制御情報を保持しており、
    前記論理ノードのサーバ間移動では、ホストがサーバにアクセスするアクセスパスを移動元のサーバから移動先のサーバへ切り替えるとともに、前記移動先のサーバから前記移動にかかる論理サーバの共有ストレージ内の制御情報及びユーザデータを参照し、
    前記移動元のサーバと前記移動先のサーバは、異なるストレージプールに属するストレージシステム。
  3. 複数のサーバと、
    前記複数のサーバが共用してデータを格納できる共有ストレージとを備えたストレージシステムの制御方法において、
    複数の論理ノードは、前記複数のサーバに配置されるとともに、前記複数のサーバの複数の論理ノードは、ストレージプールを提供する分散ファイルシステムを形成し、
    分散ファイルシステムを形成するいずれかの論理ノードは、前記ストレージプールに入出力されるユーザデータを処理して前記共有ストレージに入出力し、
    前記論理ノードは、前記サーバ間で移動可能であり、
    前記共有ストレージは、論理ノードにかかるユーザデータと、前記ユーザデータにアクセスするために用いる制御情報を保持しており、
    前記論理ノードのサーバ間移動では、ホストがサーバにアクセスするアクセスパスを移動元のサーバから移動先のサーバへ切り替えるとともに、前記移動先のサーバから前記移動にかかる論理サーバの共有ストレージ内の制御情報及びユーザデータを参照し、
    それぞれ複数の論理ノードから形成される複数のストレージプールを提供しており、
    前記移動先のサーバとして、移動にかかる論理ノードと同じストレージプールに属する論理ノードを持たないサーバを選択するストレージシステムの制御方法。
  4. 複数のサーバと、
    前記複数のサーバが共用してデータを格納できる共有ストレージとを備えたストレージシステムの制御方法において、
    複数の論理ノードは、前記複数のサーバに配置されるとともに、前記複数のサーバの複数の論理ノードは、ストレージプールを提供する分散ファイルシステムを形成し、
    分散ファイルシステムを形成するいずれかの論理ノードは、前記ストレージプールに入出力されるユーザデータを処理して前記共有ストレージに入出力し、
    前記論理ノードは、前記サーバ間で移動可能であり、
    前記共有ストレージは、論理ノードにかかるユーザデータと、前記ユーザデータにアクセスするために用いる制御情報を保持しており、
    前記論理ノードのサーバ間移動では、ホストがサーバにアクセスするアクセスパスを移動元のサーバから移動先のサーバへ切り替えるとともに、前記移動先のサーバから前記移動にかかる論理サーバの共有ストレージ内の制御情報及びユーザデータを参照し、
    前記移動元のサーバと前記移動先のサーバは、異なるストレージプールに属するストレージシステムの制御方法。
JP2020004910A 2020-01-16 2020-01-16 ストレージシステム及びストレージシステムの制御方法 Active JP7332488B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020004910A JP7332488B2 (ja) 2020-01-16 2020-01-16 ストレージシステム及びストレージシステムの制御方法
US17/008,954 US20210223966A1 (en) 2020-01-16 2020-09-01 Storage system and control method of storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020004910A JP7332488B2 (ja) 2020-01-16 2020-01-16 ストレージシステム及びストレージシステムの制御方法

Publications (2)

Publication Number Publication Date
JP2021114010A JP2021114010A (ja) 2021-08-05
JP7332488B2 true JP7332488B2 (ja) 2023-08-23

Family

ID=76857047

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020004910A Active JP7332488B2 (ja) 2020-01-16 2020-01-16 ストレージシステム及びストレージシステムの制御方法

Country Status (2)

Country Link
US (1) US20210223966A1 (ja)
JP (1) JP7332488B2 (ja)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006079161A (ja) 2004-09-07 2006-03-23 Hitachi Ltd フェイルオーバ方法及び計算機システム
JP2009237763A (ja) 2008-03-26 2009-10-15 Hitachi Ltd サーバシステム及びその制御方法
JP2009237826A (ja) 2008-03-26 2009-10-15 Hitachi Ltd ストレージシステム及びそのボリューム管理方法
JP2010044635A (ja) 2008-08-14 2010-02-25 Hitachi Ltd ファイルサーバシステム及びファイルサーバシステム起動方法
WO2011096014A1 (ja) 2010-02-05 2011-08-11 株式会社日立製作所 仮想マシンと連携したThin-Provisioning容量管理を行う計算機システム、計算機、及び方法
JP2014215666A (ja) 2013-04-23 2014-11-17 富士通株式会社 制御システム,制御装置及び制御プログラム
JP2015215799A (ja) 2014-05-12 2015-12-03 富士通株式会社 制御装置、通信装置、および、通信方法
JP2016038888A (ja) 2014-08-12 2016-03-22 富士通株式会社 情報処理システム、情報処理方法及び情報処理プログラム
WO2016103471A1 (ja) 2014-12-26 2016-06-30 株式会社日立製作所 計算機システムおよび管理プログラム
JP2016139237A (ja) 2015-01-27 2016-08-04 株式会社日立製作所 計算機システム及び計算機システムの性能障害の対処方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006079161A (ja) 2004-09-07 2006-03-23 Hitachi Ltd フェイルオーバ方法及び計算機システム
JP2009237763A (ja) 2008-03-26 2009-10-15 Hitachi Ltd サーバシステム及びその制御方法
JP2009237826A (ja) 2008-03-26 2009-10-15 Hitachi Ltd ストレージシステム及びそのボリューム管理方法
JP2010044635A (ja) 2008-08-14 2010-02-25 Hitachi Ltd ファイルサーバシステム及びファイルサーバシステム起動方法
WO2011096014A1 (ja) 2010-02-05 2011-08-11 株式会社日立製作所 仮想マシンと連携したThin-Provisioning容量管理を行う計算機システム、計算機、及び方法
JP2014215666A (ja) 2013-04-23 2014-11-17 富士通株式会社 制御システム,制御装置及び制御プログラム
JP2015215799A (ja) 2014-05-12 2015-12-03 富士通株式会社 制御装置、通信装置、および、通信方法
JP2016038888A (ja) 2014-08-12 2016-03-22 富士通株式会社 情報処理システム、情報処理方法及び情報処理プログラム
WO2016103471A1 (ja) 2014-12-26 2016-06-30 株式会社日立製作所 計算機システムおよび管理プログラム
JP2016139237A (ja) 2015-01-27 2016-08-04 株式会社日立製作所 計算機システム及び計算機システムの性能障害の対処方法

Also Published As

Publication number Publication date
US20210223966A1 (en) 2021-07-22
JP2021114010A (ja) 2021-08-05

Similar Documents

Publication Publication Date Title
US11789831B2 (en) Directing operations to synchronously replicated storage systems
US11314543B2 (en) Architecture for implementing a virtualization environment and appliance
US9639277B2 (en) Storage system with virtual volume having data arranged astride storage devices, and volume management method
US9229645B2 (en) Storage management method and storage system in virtual volume having data arranged astride storage devices
KR100644011B1 (ko) 저장 도메인 관리 시스템
US20190310925A1 (en) Information processing system and path management method
US9229749B2 (en) Compute and storage provisioning in a cloud environment
US8938604B2 (en) Data backup using distributed hash tables
US20200026425A1 (en) Efficient scaling of distributed storage systems
US10454810B1 (en) Managing host definitions across a plurality of storage systems
US9098466B2 (en) Switching between mirrored volumes
US20190235777A1 (en) Redundant storage system
US9336093B2 (en) Information processing system and access control method
JP2007207007A (ja) ストレージシステム、ストレージコントローラ及び計算機システム
US20210303178A1 (en) Distributed storage system and storage control method
US9875059B2 (en) Storage system
JP2004355638A (ja) 計算機システム及びそのデバイスの割り当て方法
JP7332488B2 (ja) ストレージシステム及びストレージシステムの制御方法
US11201788B2 (en) Distributed computing system and resource allocation method
WO2016174739A1 (ja) 複合計算機システム、管理計算機、およびデータ連携管理方法
US10768834B2 (en) Methods for managing group objects with different service level objectives for an application and devices thereof
JP7337869B2 (ja) 分散ストレージシステム、及び管理方法
JP2023094302A (ja) 情報処理システム及び構成管理方法
Zhu et al. High availability cluster with combining NAS and ISCSI

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230710

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: 20230725

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230810

R150 Certificate of patent or registration of utility model

Ref document number: 7332488

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150