従来技術における前述の問題を解決するために、本発明の実施形態は、ストレージシステムにおいて操作要求を処理するための方法及び装置、及び不揮発性コンピュータ可読記憶媒体、並びにフローテーブルエントリ転送ルールを生成するための方法及び装置、及び不揮発性コンピュータ可読記憶媒体を提供する。
第1の態様によれば、本発明の実施形態が、ストレージシステムにおいて操作要求を処理するための方法を提供し、ストレージシステムは、コントローラと、スイッチと、スイッチと通信するストレージデバイスとを含み、コントローラは、スイッチと通信し、コントローラは、スイッチのフローテーブルを策定し、配信するように構成され、この方法は、
スイッチによって操作要求を受信するステップであって、操作要求は要求識別を搬送し、要求識別はユーザグループ情報、及びストレージ方針情報のうちの少なくとも1つを含む、ステップと、
要求識別に従ってスイッチによって、スイッチのフローテーブルに問合せして、操作要求にマッチするフローテーブルエントリを取得するステップと、
マッチするフローテーブルエントリの転送ルールに従って、ストレージデバイスの中からターゲットストレージデバイスに操作要求を、スイッチによって転送するステップと
を含む。
第1の態様の実施形態によれば、第1の可能な実施方法において、要求識別がユーザグループ情報であるとき、操作要求の仮想ローカルエリアネットワーク識別ビットが、ユーザグループ情報を搬送し、マッチするフローテーブルエントリのパケットヘッダフィールド中の仮想ローカルエリアネットワーク識別ビットが、ユーザグループ情報を搬送する、又は
要求識別がストレージ方針情報であるとき、操作要求のインターネットプロトコルサービス種別ビットが、ストレージ方針情報を搬送し、マッチするフローテーブルエントリのパケットヘッダフィールド中のインターネットプロトコルサービス種別ビットが、ストレージ方針情報を搬送する、又は、
要求識別がユーザグループ情報及びストレージ方針情報であるとき、操作要求の仮想ローカルエリアネットワーク識別ビットが、ユーザグループ情報を搬送し、操作要求のインターネットプロトコルサービス種別ビットが、ストレージ方針情報を搬送し、マッチするフローテーブルエントリのパケットヘッダフィールド中の仮想ローカルエリアネットワーク識別ビットが、ユーザグループ情報を搬送し、マッチするフローテーブルエントリのパケットヘッダフィールド中のインターネットプロトコルサービス種別ビットが、ストレージ方針情報を搬送する。
第1の態様の実施形態によれば、第2の可能な実施方法において、操作要求が読取要求であるとき、マッチするフローテーブルエントリの転送ルールは、要求されるデータを記憶するストレージデバイスのフロー負荷に従ってコントローラによって策定される。
第2の可能な実施方法によれば、第3の可能な実施方法において、方法は、
読取要求がターゲットストレージデバイスに転送される回数を、スイッチによって更新するステップであって、回数は、マッチするフローテーブルエントリに記録される、ステップ
をさらに含む。
第1の態様の実施形態又は第1の態様の実施形態の第1の可能な実施方法によれば、第4の可能な実施方法において、操作要求が書込要求であるとき、マッチするフローテーブルエントリの転送ルールは、ストレージデバイスの残存記憶容量に従ってコントローラによって策定される。
第4の可能な実施方法によれば、第5の可能な実施方法において、方法は、
書込要求がターゲットストレージデバイスに転送される回数を、スイッチによって更新するステップであって、回数は、マッチするフローテーブルエントリに記録される、ステップ
をさらに含む。
第2の態様によれば、本発明の実施形態が、フローテーブルエントリ転送ルールを生成するための方法を提供し、この方法は、ストレージシステムに適用され、ストレージシステムは、コントローラと、スイッチと、スイッチと通信するストレージデバイスとを含み、コントローラはスイッチと通信し、コントローラは、スイッチのフローテーブルを策定し、配信するように構成され、この方法は、
スイッチと通信するストレージデバイスの残存記憶容量情報をコントローラによって取得するステップと、
ストレージデバイスの残存記憶容量情報に従って、書込要求にマッチする転送ルールをコントローラによって生成するステップであって、書込要求はスイッチと通信するストレージデバイスにデータを書き込むために使用される、ステップと
を含む。
第2の態様によれば、第1の可能な実施方法において、スイッチと通信するストレージデバイスの残存記憶容量情報をコントローラによって取得するステップは、具体的には、
ストレージデバイスによって報告される残存記憶容量情報をコントローラによって受信するステップ
を含む。
第2の態様によれば、第2の可能な実施方法において、スイッチと通信するストレージデバイスの残存記憶容量情報をコントローラによって取得するステップは、具体的には、
書込要求がストレージデバイスに転送される回数及び書き込まれたデータのサイズをコントローラによって取得するステップであって、回数及びサイズは、スイッチのフローテーブルのフローテーブルエントリに記録される、ステップと、
ストレージデバイスの記憶容量、書込要求の回数、及び書き込まれたデータのサイズに従って、ストレージデバイスの残存記憶容量をコントローラによって計算するステップと
を含む。
第3の態様によれば、本発明の一実施形態が、フローテーブルエントリ転送ルールを生成するための方法を提供し、この方法は、ストレージシステムに適用され、ストレージシステムは、コントローラと、スイッチと、スイッチと通信するストレージデバイスとを含み、コントローラは、スイッチと通信し、コントローラは、スイッチのフローテーブルを策定し、配信するように構成され、この方法は、
要求されるデータを記憶するストレージデバイスのフロー負荷情報をコントローラによって取得するステップと、
要求されるデータを記憶するストレージデバイスのフロー負荷情報に従って、読取要求にマッチする転送ルールをコントローラによって生成するステップと
を含む。
第3の態様によれば、第1の可能な実施方法において、要求されるデータを記憶するストレージデバイスのフロー負荷情報をコントローラによって取得するステップは、具体的には、
要求されるデータを記憶するストレージデバイスによって報告されるフロー負荷情報をコントローラによって受信するステップ
を含む。
第3の態様によれば、第2の可能な実施方法において、要求されるデータを記憶するストレージデバイスのフロー負荷情報をコントローラによって取得するステップは、具体的には、
要求されるデータを記憶するストレージデバイスに操作要求が転送される回数をコントローラによって取得するステップであって、回数が、スイッチのフローテーブルのフローテーブルエントリに記録され、操作要求が、書込要求と、読取要求とを含む、ステップ
を含む。
第4の態様によれば、本発明の一実施形態が、スイッチを提供し、スイッチは、ストレージシステムに適用され、ストレージシステムは、コントローラと、スイッチと、スイッチと通信するストレージデバイスとを含み、コントローラは、スイッチと通信し、コントローラは、スイッチのフローテーブルを策定し、配信するように構成され、スイッチは、
操作要求を受信するように構成された受信ユニットであって、操作要求は要求識別を搬送し、要求識別はユーザグループ情報、及びストレージ方針情報のうちの少なくとも1つを含む、受信ユニットと、
要求識別に従って、スイッチのフローテーブルに問合せして、操作要求にマッチするフローテーブルエントリを取得するように構成された、問合せユニットと、
マッチするフローテーブルエントリの転送ルールに従って、ストレージデバイスの中からターゲットストレージデバイスに操作要求を転送するように構成された、転送ユニットと
を含む。
第4の態様によれば、第1の可能な実施方法において、操作要求が読取要求であるとき、マッチするフローテーブルエントリの転送ルールは、要求されるデータを記憶するストレージデバイスのフロー負荷に従ってコントローラによって策定される。
第4の態様によれば、第2の可能な実施方法において、操作要求が書込要求であるとき、マッチするフローテーブルエントリの転送ルールは、ストレージデバイスの残存記憶容量に従ってコントローラによって策定される。
第5の態様によれば、本発明の一実施形態が、コントローラを提供し、コントローラは、ストレージシステムに適用され、ストレージシステムは、コントローラと、スイッチと、スイッチと通信するストレージデバイスとを含み、コントローラは、スイッチと通信し、コントローラは、スイッチのフローテーブルを策定し、配信するように構成され、コントローラは、
スイッチと通信するストレージデバイスの残存記憶容量情報を取得するように構成された、取得ユニットと、
ストレージデバイスの残存記憶容量情報に従って、書込要求にマッチする転送ルールを生成するように構成された、生成ユニットであって、書込要求は、スイッチと通信するストレージデバイスにデータを書き込むために使用される、生成ユニットと
を含む。
第5の態様によれば、第1の可能な実施方法において、取得ユニットは、具体的には、ストレージデバイスによって報告される残存記憶容量情報を受信するように構成される。
第5の態様によれば、第2の可能な実施方法において、取得ユニットは、具体的には、書込要求がストレージデバイスに転送される回数及び書き込まれたデータのサイズを取得するように構成され、回数及びサイズは、スイッチのフローテーブルのフローテーブルエントリに記録され、
コントローラは、ストレージデバイスの記憶容量、書込要求の回数、及び書き込まれたデータのサイズに従って、ストレージデバイスの残存記憶容量を計算する。
第6の態様によれば、本発明の一実施形態が、コントローラを提供し、コントローラは、ストレージシステムに適用され、ストレージシステムは、コントローラと、スイッチと、スイッチと通信するストレージデバイスとを含み、コントローラは、スイッチと通信し、コントローラは、スイッチのフローテーブルを策定し、配信するように構成され、コントローラは、
要求されるデータを記憶するストレージデバイスのフロー負荷情報を取得するように構成された、取得ユニットと、
要求されるデータを記憶するストレージデバイスのフロー負荷情報に従って、読取要求にマッチする転送ルールを生成するように構成された、生成ユニットと
を含む。
第6の態様によれば、第1の可能な実施方法において、取得ユニットは、具体的には、要求されるデータを記憶するストレージデバイスによって報告されるフロー負荷情報を受信するように構成される。
第6の態様によれば、第2の可能な実施方法において、取得ユニットは、具体的には、要求されるデータを記憶するストレージデバイスに操作要求が転送される回数を取得するように構成され、回数は、スイッチのフローテーブルのフローテーブルエントリに記録され、操作要求は、書込要求と、読取要求とを含む。
第7の態様によれば、本発明の一実施形態が、スイッチを提供し、スイッチは、ストレージシステムに適用され、ストレージシステムは、コントローラと、スイッチと、スイッチと通信するストレージデバイスとを含み、コントローラは、スイッチと通信し、コントローラは、スイッチのフローテーブルを策定し、配信するように構成され、スイッチは、中央処理装置と、メモリとを含み、中央処理装置及びメモリは、バスを使用することによって接続され、メモリは、コンピュータ命令を記憶するように構成され、中央処理装置は、本発明における第1の態様又は第1の態様の第1から第4の可能な実施方法のいずれか1つを実施するために、メモリに記憶されたコンピュータ命令を実行する。
第8の態様によれば、本発明の一実施形態が、コントローラを提供し、コントローラは、ストレージシステムに適用され、ストレージシステムは、コントローラと、スイッチと、スイッチと通信するストレージデバイスとを含み、コントローラは、スイッチと通信し、コントローラは、スイッチのフローテーブルを策定し、配信するように構成され、コントローラは、中央処理装置と、メモリとを含み、中央処理装置及びメモリは、バスを使用することによって接続され、メモリは、コンピュータ命令を記憶するように構成され、中央処理装置は、本発明における第2の態様又は第2の態様の第1若しくは第2の可能な実施方法を実施するために、メモリに記憶されたコンピュータ命令を実行する。
第9の態様によれば、本発明の一実施形態が、コントローラを提供し、コントローラは、ストレージシステムに適用され、ストレージシステムは、コントローラと、スイッチと、スイッチと通信するストレージデバイスとを含み、コントローラは、スイッチと通信し、コントローラは、スイッチのフローテーブルを策定し、配信するように構成され、コントローラは、中央処理装置と、メモリとを含み、中央処理装置及びメモリは、バスを使用することによって接続され、メモリは、コンピュータ命令を記憶するように構成され、中央処理装置は、本発明における第3の態様又は第3の態様の第1若しくは第2の可能な実施方法を実施するために、メモリに記憶されたコンピュータ命令を実行する。
第10の態様によれば、本発明の一実施形態が、不揮発性コンピュータ可読記憶媒体を提供し、コンピュータ記憶媒体は、コンピュータ命令を記憶し、コンピュータがコンピュータ命令を実行するとき、本発明における第1の態様又は第1の態様の第1から第4の可能な実施方法のいずれか1つを実施するように構成される。
第11の態様によれば、本発明の一実施形態が、不揮発性コンピュータ可読記憶媒体を提供し、コンピュータ記憶媒体は、コンピュータ命令を記憶し、コンピュータがコンピュータ命令を実行するとき、本発明における第2の態様又は第2の態様の第1若しくは第2の可能な実施方法を実施するように構成される。
第12の態様によれば、本発明の一実施形態が、不揮発性コンピュータ可読記憶媒体を提供し、コンピュータ記憶媒体は、コンピュータ命令を記憶し、コンピュータがコンピュータ命令を実行するとき、本発明における第3の態様又は第3の態様の第1若しくは第2の可能な実施方法を実施するように構成される。
本発明の諸実施形態によれば、ストレージシステムにおいて、スイッチが、操作要求を受信し、操作要求は、要求識別を搬送し、スイッチは、要求識別に従って、スイッチのフローテーブルに問合せして、操作要求にマッチするフローテーブルエントリを取得し、スイッチは、マッチするフローテーブルエントリの転送ルールに従ってストレージデバイスの中からターゲットストレージデバイスに操作要求を転送する。ソフトウェア定義ネットワーク(Software Defined Network)の特性を使用することによって、操作要求は、スイッチのフローテーブルエントリの転送ルールに従って処理され、それによってストレージデバイスの負荷均衡化を実施し、ストレージデバイス間の情報相互作用を減少させる。
本発明の諸実施形態における技術的解決法について、本発明の諸実施形態における添付の図面を参照して以下に明確に説明する。記載する実施形態は、本発明の実施形態の全部ではなく一部であることは明らかである。創造的な努力なしに本発明の諸実施形態に基づいて当業者によって得られる他のすべての実施形態は、本発明の保護範囲内に含まれるものとする。
本発明の諸実施形態が、ストレージシステムに適用され、ストレージシステムは、コントローラと、スイッチと、スイッチと通信するストレージデバイスとを含み、コントローラは、スイッチと通信し、コントローラは、スイッチのフローテーブルを策定し、配信するように構成される。ストレージシステムは、ファイルレベルストレージシステム、データブロックレベルストレージシステム、又はオブジェクトストレージシステムでもよい。ストレージシステムは、ファイルレベルストレージシステム、データブロックレベルストレージシステム、及びオブジェクトストレージシステムのうちの少なくとも2つも含んでもよい。
図1に示すように、本発明の一実施形態で提供されるストレージシステムにおいて操作要求を処理するための方法は、次の通りである:
101:スイッチが、操作要求を受信し、操作要求は要求識別を搬送し、要求識別はユーザグループ情報、及びストレージ方針情報のうちの少なくとも1つを含む。
102:スイッチが、要求識別に従って、スイッチのフローテーブルに問合せして、操作要求にマッチするフローテーブルエントリを取得する。
103:スイッチは、マッチするフローテーブルエントリの転送ルールに従って、ストレージデバイスの中からターゲットストレージデバイスに操作要求を転送する。
一実施方法では、要求識別がユーザグループ情報であるとき、操作要求の仮想ローカルエリアネットワーク識別ビットが、ユーザグループ情報を搬送し、マッチするフローテーブルエントリのパケットヘッダフィールド中の仮想ローカルエリアネットワーク識別ビットが、ユーザグループ情報を搬送する、又は
要求識別がストレージ方針情報であるとき、操作要求のインターネットプロトコルサービス種別ビットが、ストレージ方針情報を搬送し、マッチするフローテーブルエントリのパケットヘッダフィールド中のインターネットプロトコルサービス種別ビットが、ストレージ方針情報を搬送する、又は
要求識別がユーザグループ情報及びストレージ方針情報であるとき、操作要求の仮想ローカルエリアネットワーク識別ビットが、ユーザグループ情報を搬送し、操作要求のインターネットプロトコルサービス種別ビットが、ストレージ方針情報を搬送し、マッチするフローテーブルエントリのパケットヘッダフィールド中の仮想ローカルエリアネットワーク識別ビットが、ユーザグループ情報を搬送し、マッチするフローテーブルエントリのパケットヘッダフィールド中のインターネットプロトコルサービス種別ビットが、ストレージ方針情報を搬送する。
一実施方法では、操作要求が読取要求であるとき、マッチするフローテーブルエントリの転送ルールは、要求されるデータを記憶するストレージデバイスのフロー負荷に従ってコントローラによって策定される。
方法は、読取要求がターゲットストレージデバイスに転送される回数を、スイッチによって更新するステップをさらに含み、回数は、マッチするフローテーブルエントリに記録される。
一実施方法では、操作要求が書込要求であるとき、マッチするフローテーブルエントリの転送ルールは、ストレージデバイスの残存記憶容量に従ってコントローラによって策定される。
方法は、書込要求がターゲットストレージデバイスに転送される回数を、スイッチによって更新するステップをさらに含み、回数は、マッチするフローテーブルエントリに記録される。
本発明の実施形態によれば、要求識別は、ユーザグループ情報及びストレージ方針情報のうちの少なくとも1つを含み、ユーザグループ情報は、クライアントのIPアドレス情報、又はクライアントのアドレス情報などでもよく、ストレージ方針情報は、ストレージデバイス中の要求されるデータのコピー数、又はストレージデバイスに書き込まれることになる要求されるデータのコピー数でもよい。
本発明の実施形態において提供されるストレージシステムで操作要求を処理するための方法によれば、ソフトウェア定義ネットワークの特性を使用することによって、操作要求は、スイッチのフローテーブルの転送ルールに従って処理され、それによってストレージデバイスの負荷均衡化を実施し、ストレージデバイス間の情報相互作用を減少させる。
オブジェクトストレージシステムを例として使用すると、オブジェクトストレージシステムでは、オブジェクトがデータストレージの基本単位として使用される。1つのオブジェクトは、ファイルデータと、ファイルメタデータとを含み、操作要求は、オブジェクト読取要求及びオブジェクト書込要求を含むオブジェクト操作要求であり、読取要求によって要求される、すなわちオブジェクト読取要求によって要求されるデータがオブジェクトであり、オブジェクト書込要求によって書き込まれるデータがオブジェクトであり、オブジェクトストレージシステム中のストレージデバイスが、オブジェクトストレージデバイスである。本発明の実施形態では、図2に示すように、オブジェクトストレージシステムが、メタデータサーバ103と、コントローラ104と、スイッチ1051〜105mと、ストレージデバイス1061、1062、及び1063〜106L、すなわち、オブジェクトストレージシステム中のオブジェクトストレージデバイス1061、1062、及び1063〜106Lとを含む。ここでLは整数であり、オブジェクトストレージデバイスの数を示し、特定の値は限定されない。メタデータサーバ103は、オブジェクトストレージデバイス1061、1062、及び1063〜106Lに記憶されたデータの要求識別を記憶するように構成される、すなわち、オブジェクトストレージデバイス1061、1062、及び1063〜106Lに記憶されたオブジェクトの要求識別を記憶するように構成される。要求識別について、以下に詳細を述べる。オブジェクトストレージデバイス1061、1062、及び1063〜106Lは、データを記憶するように構成される、すなわち、オブジェクトストレージシステムにオブジェクトを記憶するように構成される。スイッチ1051〜105m及びコントローラ104は、ソフトウェア定義ネットワークを形成する。スイッチ1051〜105mは、オブジェクトストレージデバイス1061、1062、及び1063〜106Lと通信する。スイッチ1051〜105mは、操作要求、すなわちオブジェクトストレージシステム中のオブジェクト操作要求を、フローテーブル中のフローテーブルエントリの転送ルールに従ってオブジェクトストレージデバイス1061、1062、及び1063〜106Lに転送するように構成される。コントローラ104は、スイッチ1051〜105mのフローテーブル中のフローテーブルエントリを策定し、更新するように構成される。本発明の実施形態では、コントローラ104のみが説明される。本発明の実施形態のオブジェクトストレージシステムでは、コントローラの数は1に限定されず、負荷均衡化及び冗長化を実施するために複数のコントローラが存在してもよい。図2に示すクライアント1011〜101nについては、一実施方法では、オブジェクトストレージデバイス1061、1062、及び1063〜106Lにアクセスするためにオブジェクトストレージシステムプロキシ102を使用することによって、オブジェクト操作要求が送信される。ここでnは整数であり、クライアントの数を示し、特定の値は限定されない。本発明の実施形態では、オブジェクトストレージシステムプロキシ102は、独立した物理サーバでもよく、又はクライアント1011〜101nに統合されてもよく、これは本発明では限定されない。
コントローラ104及びスイッチ1051〜105mによって形成されるソフトウェア定義ネットワークでは、コントローラ104は、セキュアチャネルを使用することによってスイッチ1051〜105mと通信する。たとえば、コントローラ104は、Openflowプロトコルを使用することによってスイッチ1051〜105mと通信してもよく、コントローラ104は、スイッチ1051〜105mに記憶されたフローテーブルのフローテーブルエントリを策定し、更新する。本発明の実施形態では、コントローラ104とスイッチ1051との間でOpenflowプロトコルが使用されることは、例示的な説明にすぎない。本発明は、ソフトウェア定義ネットワークでの実施に別のプロトコルが使用される方法にも適用可能である。図3に示すように、例としてスイッチ1051及びコントローラ104を使用すると、コントローラ104は、スイッチ1051におけるフローテーブルのフローテーブルエントリを策定し、更新し、スイッチ1051がオブジェクト操作要求を受信するとき、オブジェクト操作要求を解析し、スイッチ1051のフローテーブル中のオブジェクト操作要求にマッチするフローテーブルエントリに問合せし、マッチするフローテーブルエントリの転送ルールに従ってオブジェクト操作要求を処理する。具体的には、一実施方法では、スイッチ1051中のフローテーブルは、フローテーブルエントリ1及びフローテーブルエントリ2〜Rによって形成される。ここでRは自然数である。図4に示すように、スイッチ1051は、オブジェクト操作要求を受信し、フローテーブルのフローテーブルエントリに問合せし、一般にフローテーブルのフローテーブルエントリは、ストリームラインの形で(in a stream line manner)問合せされ、問合せすることによってオブジェクト操作要求にマッチするフローテーブルエントリが取得される場合、マッチするフローテーブルエントリの転送ルールに従って処理を行う。図4に示すフローテーブルのフローテーブルエントリについては、特定の構造が、図5に示され、3つの部分すなわちパケットヘッダフィールド、カウンタ、及び転送ルールを含む。パケットヘッダフィールドは、オブジェクト操作要求にマッチさせるために使用され、カウンタは、フローテーブルエントリにマッチするオブジェクト操作要求が処理される回数をカウントするために使用され、転送ルールは、たとえば、オブジェクト操作要求をどのように転送するかを判断するため、操作要求がどのポートに転送されるかを判断するためなど、オブジェクト操作要求の転送方法を決定するために使用される。図6に示すように、パケットヘッダフィールドは、入力ポートと、ソース媒体アクセス制御(Media Access Control, MAC)アドレスと、宛先MACアドレスと、イーサネットタイプと、仮想ローカルエリアネットワーク識別(Virtual Local Area Network Identification, VLAN ID)と、ソースインターネットプロトコル(Internet Protocol, IP)アドレスと、宛先IPアドレスと、IPポートと、IPサービス種別(Type of Service, ToS)ビットと、ソース伝送制御プロトコル(Transmission Control Protocol, TCP)ポートと、宛先TCPポートとを含む。本発明の実施形態では、オブジェクト操作要求が、要求識別をカプセル化してもよく、要求識別は、ユーザグループ情報、及びストレージ方針情報のうちの少なくとも1つを含む。たとえば、ユーザグループ情報は、オブジェクト操作要求にカプセル化される。具体的には、ユーザグループ情報は、オブジェクト操作要求のVLAN IDビットにカプセル化されてもよく、ストレージ方針情報は、オブジェクト操作要求のIP ToSビットにカプセル化されてもよい。要求識別のカプセル化は、オブジェクトストレージシステムプロキシ102によって実施されてもよい。オブジェクト操作要求を受信した後、スイッチ1051は、スイッチ1051のフローテーブルにおいて、オブジェクト操作要求にマッチするフローテーブルエントリに問合せする。オブジェクト操作要求は、問合せによって取得されたマッチするフローテーブルエントリの転送ルールに従って処理される。転送ルールに従ってオブジェクト操作要求が転送された後、カウンタは、フローテーブルエントリに従ってオブジェクト操作要求を転送するための回数を更新する。オブジェクト操作要求にマッチするフローテーブルエントリが存在しないとき、オブジェクト操作要求は、コントローラ104に転送され、コントローラ104は、オブジェクト操作要求に対して転送ルールを策定し、フローテーブルエントリを生成し、スイッチ1051中のフローテーブルを更新する。
前述の説明に基づいて、図7に示すように、本発明の一実施形態は、以下のステップを含む、図2に示すシステムアーキテクチャの下でオブジェクトストレージシステムにおいてオブジェクト操作要求を処理するための方法を提供する:
ステップ701:スイッチが、オブジェクト操作要求を受信し、オブジェクト操作要求は要求識別を搬送し、要求識別はユーザグループ情報、及びストレージ方針情報のうちの少なくとも1つを含む。
702:スイッチは、要求識別に従って、スイッチのフローテーブルに問合せして、オブジェクト操作要求にマッチするフローテーブルエントリを取得する。
703:スイッチは、マッチするフローテーブルエントリの転送ルールに従って、オブジェクトストレージデバイスの中からターゲットオブジェクトストレージデバイスにオブジェクト操作要求を転送する。
オブジェクトストレージシステムにおいてオブジェクト操作要求を処理するための前述の方法では、要求識別がユーザグループ情報であるとき、オブジェクト操作要求の仮想ローカルエリアネットワーク識別ビットが、ユーザグループ情報を搬送し、マッチするフローテーブルエントリのパケットヘッダフィールド中の仮想ローカルエリアネットワーク識別ビットが、ユーザグループ情報を搬送する、又は
要求識別がストレージ方針情報であるとき、オブジェクト操作要求のインターネットプロトコルサービス種別ビットが、ストレージ方針情報を搬送し、マッチするフローテーブルエントリのパケットヘッダフィールド中のインターネットプロトコルサービス種別ビットが、ストレージ方針情報を搬送する、又は
要求識別がユーザグループ情報及びストレージ方針情報であるとき、オブジェクト操作要求の仮想ローカルエリアネットワーク識別ビットが、ユーザグループ情報を搬送し、オブジェクト操作要求のインターネットプロトコルサービス種別ビットが、ストレージ方針情報を搬送し、マッチするフローテーブルエントリのパケットヘッダフィールド中の仮想ローカルエリアネットワーク識別ビットが、ユーザグループ情報を搬送し、マッチするフローテーブルエントリのパケットヘッダフィールド中のインターネットプロトコルサービス種別ビットが、ストレージ方針情報を搬送する。
本発明の実施形態で提供されるオブジェクトストレージシステムでは、要求識別を搬送するオブジェクト操作要求が、ソフトウェア定義ネットワークにおいてスイッチを使用することによって対応するオブジェクトストレージデバイスに転送され、コントローラが、スイッチのフローテーブルエントリ中の転送ルールを策定し、スイッチが、フローテーブルエントリ中の転送ルールに従ってオブジェクト操作要求を転送し、それによってオブジェクトストレージデバイスの負荷均衡化を実施し、オブジェクトストレージデバイス間の情報相互作用を減少させる。
図2を参照して、具体的には図7に示すオブジェクト操作要求を処理するための方法において、オブジェクト操作要求がオブジェクト読取要求であるとき、マッチするフローテーブルエントリの転送ルールは、要求されるオブジェクトを記憶するオブジェクトストレージデバイスのフロー負荷に従ってコントローラによって策定される。スイッチが、マッチするフローテーブルエントリの転送ルールに従ってオブジェクトストレージデバイスの中からターゲットオブジェクトストレージデバイスにオブジェクト操作要求を転送した後、方法は、オブジェクト読取要求がターゲットオブジェクトストレージデバイスに転送される回数を、スイッチによって更新するステップをさらに含み、回数は、マッチするフローテーブルエントリに記録される。以下に詳細を説明する。
クライアント101が読取要求をオブジェクトストレージシステムに送信する例を使用すると、クライアント101は、読取要求を送信し、オブジェクトストレージシステムプロキシ102は、クライアント101によって送信された読取要求を受信し、読取要求に従ってメタデータサーバ103にアクセスし、要求されるオブジェクトの要求識別を取得し、要求識別は、ユーザグループ情報及びストレージ方針情報のうちの少なくとも1つを含み、要求識別は、メタデータサーバ103において、オブジェクトがオブジェクトストレージデバイスに書き込まれた後、オブジェクト書込要求で搬送されるユーザグループ情報及びストレージ方針情報のうちの少なくとも1つを記憶するために使用され、メタデータサーバ103に記憶される要求識別は、書き込まれたオブジェクトを記憶するオブジェクトストレージデバイスによってメタデータサーバ103に登録されるオブジェクトの要求識別の内容によって決定される。クライアントが、オブジェクトストレージシステムに対してオブジェクトの読取要求を開始するとき、メタデータサーバ103は、オブジェクトの要求識別を取得するために問合せされ、ユーザグループ情報は、オブジェクトをオブジェクトストレージシステムに書き込むクライアントのIPアドレス情報、又はオブジェクトをオブジェクトストレージシステムに書き込むクライアントを識別することができる他の情報でもよく、ストレージ方針情報は、オブジェクトストレージデバイス中の要求されるオブジェクトのコピー数でもよい。オブジェクト読取要求については、要求されるオブジェクトがオブジェクトストレージデバイスにすでに記憶されているので、要求されるオブジェクトがオブジェクトストレージデバイスに書き込まれるとき、オブジェクトの要求識別は、メタデータサーバ103に送信される。本発明の実施形態では、ユーザグループ情報及びストレージ方針情報を含んだ要求識別が、例として使用され、ユーザグループ情報は、オブジェクトをオブジェクトストレージシステムに書き込むクライアントのIPアドレス情報であり、ストレージ方針情報は、要求されるオブジェクトのコピー数であり、ここでは3である。オブジェクトストレージシステムプロキシ102は、メタデータサーバ103から取得された要求識別をカプセル化して、オブジェクト読取要求を生成し、オブジェクト読取要求の特定のフォーマットが、図6に示されている。本発明の実施形態では、ユーザグループ情報は、オブジェクト読取操作要求のVLAN IDビットにカプセル化され、ストレージ方針情報は、オブジェクト読取操作要求のIP ToSビットにカプセル化される。
オブジェクトストレージシステムプロキシ102は、オブジェクト読取要求をスイッチ1051に送信する。
スイッチ1051は、ストレージシステムプロキシ102によって送信されたオブジェクト読取要求を受信し、オブジェクト読取要求のVLAN IDビット及びIP ToSビット情報を解析して、それぞれユーザグループ情報及びストレージ方針情報を取得する。解析することによって取得されるユーザグループ情報及びストレージ方針情報に従って、フローテーブルのフローテーブルエントリが問合せされる。オブジェクト読取要求のVLAN IDビットから解析されるユーザグループ情報及びオブジェクト読取要求のIP ToSビットから解析されるストレージ方針情報は、フローテーブルエントリのパケットヘッダフィールドにマッチさせるために使用されて、それぞれマッチするフローテーブルエントリを見つけ、その後、オブジェクト読取要求は、マッチするフローテーブルエントリの転送ルールに従って転送される。具体的には、オブジェクト読取要求に対して、フローテーブルエントリの転送ルールは、要求されるオブジェクトを記憶するオブジェクトストレージデバイスのフロー負荷に従って、コントローラ104によって策定される、すなわち、要求されるオブジェクトが位置しているオブジェクトストレージデバイスのフロー負荷に従って、ターゲットオブジェクトストレージデバイスが選択される。たとえば、図4に示すフローテーブルでは、フローテーブルエントリ3は、オブジェクト読取要求にマッチするフローテーブルエントリであって、フローテーブルエントリ3の構造が、図5に示され、パケットヘッダフィールドのVLAN ID中の情報が、オブジェクト読取要求のVLAN ID中の情報にマッチし、パケットヘッダフィールドのIP ToSビット中の情報が、オブジェクト読取要求のIP ToSビット中の情報にマッチする。フローテーブルエントリ3の転送ルールは、要求されるオブジェクトを記憶するオブジェクトストレージデバイスのフロー負荷に従ってコントローラ104によって策定され、たとえば、オブジェクトストレージデバイス1061、1062、及び1063は、要求されるオブジェクトの3つのコピーを記憶するオブジェクトストレージデバイスである。コントローラ104は、オブジェクトストレージデバイス1061、1062、及び1063のフロー負荷に従って、オブジェクトストレージデバイス1061は、最も軽いフロー負荷のオブジェクトストレージデバイスであると決定し、転送ルールは、オブジェクトストレージデバイス1061にオブジェクト読取要求を転送することである。コントローラ104は、オブジェクトストレージデバイス1061、1062、及び1063のフロー負荷に従って転送ルールを策定し、具体的には、スイッチ1051は、オブジェクト操作要求を転送した回数を、コントローラ104に定期的に報告し、回数は、フローテーブルの各フローテーブルエントリに記録される、又はコントローラ104は、オブジェクト操作要求を転送した回数を、スイッチ1051から定期的に取得し、回数は、フローテーブルの各フローテーブルエントリに記録される、又はオブジェクトストレージデバイス1061、1062、及び1063は、フローテーブルエントリの転送ルールを更新するために、フロー負荷をコントローラ104に報告する。ここではオブジェクト操作要求は、オブジェクト読取要求と、オブジェクト書込要求とを含む。一方法では、コントローラ104は、オブジェクト操作要求がオブジェクトストレージデバイス1061、1062、及び1063に転送される回数に従ってフローテーブルエントリの転送ルールを策定し、又は更新し、回数は、フローテーブルエントリのカウンタに記録される。たとえば、オブジェクト操作要求をオブジェクトストレージデバイス1061に転送することである転送ルールを有する50個のフローテーブルエントリがあって、前述の期間に、この50個のフローテーブルについて、オブジェクト操作要求を転送した総回数は5000であり、回数は、各フローテーブルエントリのカウンタによって記録され、オブジェクト操作要求をオブジェクトストレージデバイス1062に転送することである転送ルールを有する45個のフローテーブルエントリがあって、前述の期間に、この45個のフローテーブルについて、オブジェクト操作要求を転送した総回数は5500であり、回数は、オブジェクト操作要求を転送した各フローテーブルエントリ回数のカウンタによって記録され、オブジェクト操作要求をオブジェクトストレージデバイス1063に転送することである転送ルールを有する50個のフローテーブルエントリがあって、前述の期間に、この50個のフローテーブルについては、オブジェクト操作要求を転送した総回数は6000であり、回数は、オブジェクト操作要求を転送した各フローテーブルエントリ回数のカウンタによって記録される。前述の期間において、オブジェクトストレージデバイス1061は、最も軽い負荷を有する。したがって、本発明の実施形態では、オブジェクト読取要求によって要求されるオブジェクトについて、コントローラ104がオブジェクトを記憶するオブジェクトストレージデバイス1061、1062、及び1063のフロー負荷に従ってオブジェクト読取要求に対して策定する転送ルールは、オブジェクト読取要求をオブジェクトストレージデバイス1061に転送することである。マッチするフローテーブルエントリが、スイッチ1051によって問合せすることによって取得されないとき、スイッチ1051は、Openflowプロトコルを使用することによって、図2に示すセキュアチャネルを通じてオブジェクト読取要求をコントローラ104に転送し、コントローラ104は、オブジェクト読取要求で搬送される要求識別に従って要求されるオブジェクトを決定し、要求されるオブジェクトを記憶するオブジェクトストレージデバイスのフロー負荷に従ってオブジェクト読取要求に対してフローテーブルエントリを策定し、スイッチ1051中のフローテーブルを更新するために、フローテーブルエントリをスイッチ1051に配信し、スイッチ1051は、コントローラ104によって配信されたフローテーブルエントリに従ってオブジェクト読取要求を転送する。
本発明の実施形態では、オブジェクトストレージデバイス1061は、最も軽いフロー負荷を有するオブジェクトストレージデバイスであると仮定し、スイッチは、フローテーブルエントリ3中のマッチする転送ルールに従って、オブジェクトストレージデバイス1061及びスイッチ1051が通信するポートにオブジェクト操作要求を転送する。フローテーブルエントリ3中のカウンタは、オブジェクト読取要求をオブジェクトストレージデバイス1061に転送した回数を更新する。
スイッチ1051は、オブジェクト読取要求の宛先IPアドレスを、オブジェクトストレージデバイス1062のIPアドレスに変え、オブジェクト読取要求の宛先MACアドレスを、オブジェクトストレージデバイス1062のMACアドレスに変え、変更されたオブジェクト読取要求をオブジェクトストレージデバイス1062に転送する。
変更されたオブジェクト読取要求を受信した後、オブジェクトストレージデバイス1062は、要求されるオブジェクトの内容をオブジェクトストレージシステムプロキシ102に返す。
オブジェクトストレージシステムプロキシ102は、要求されるオブジェクトの内容をクライアント101に返す。
本発明の実施形態によれば、オブジェクト読取要求のための別の実施方法は、2つより多くのコピーを有するオブジェクト、たとえば、オブジェクトストレージデバイスに3つのコピーを有する、本発明の実施形態における要求されるオブジェクトについて、オブジェクト読取要求にマッチするフローテーブルエントリの転送ルールは、オブジェクト読取要求を2つのオブジェクトストレージデバイスに転送することであってもよい、というものである。前述の実施形態に記載するように、たとえば、オブジェクト操作要求をオブジェクトストレージデバイス1061に転送することである転送ルールを有する50個のフローテーブルエントリがあって、前述の期間に、この50個のフローテーブルについて、オブジェクト操作要求を転送した総回数は5000であり、オブジェクト操作要求は、各フローテーブルエントリのカウンタによって記録され、オブジェクト操作要求をオブジェクトストレージデバイス1062に転送することである転送ルールを有する45個のフローテーブルエントリがあって、前述の期間に、この45個のフローテーブルについて、各フローテーブルエントリのカウンタによって記録されるオブジェクト操作要求を転送した総回数は5500であり、オブジェクト操作要求をオブジェクトストレージデバイス1063に転送することである転送ルールを有する50個のフローテーブルエントリがあって、前述の期間に、この50個のフローテーブルについて、各フローテーブルエントリのカウンタによって記録されるオブジェクト操作要求を転送した総回数は6000である。前述の期間において、オブジェクトストレージデバイス1061及び1062は、比較的軽いフロー負荷を有するターゲットオブジェクトストレージデバイスであり、オブジェクト読取要求が、2つのターゲットデバイスに転送されることになる場合、コントローラ104がオブジェクト読取要求に対して策定するフローテーブルエントリ転送ルールは、オブジェクト読取要求をオブジェクトストレージデバイス1061及び1062に転送することであり、それによってオブジェクト読取同時実行(object read concurrency)を実施し、オブジェクト読取要求の効率を向上させる。
本発明の実施形態では、オブジェクト読取要求において搬送される要求識別は、ユーザグループ情報又はストレージ方針情報のうちの1つのみを含んでもよく、これは本発明では限定されない。
本発明の実施形態で提供されるオブジェクトストレージシステムでは、ソフトウェア定義ネットワークにおいてスイッチを使用することによって対応するオブジェクトストレージデバイスに要求識別を搬送するオブジェクト読取要求を転送するための処理方法に従って、コントローラが、ターゲットオブジェクトストレージデバイスのフロー負荷に従って、オブジェクト読取要求の転送ルールに対応するフローテーブルエントリを配信し、スイッチが、フローテーブルエントリ中の転送ルールに従ってオブジェクト読取要求を転送し、それによってオブジェクトストレージデバイスの負荷均衡化を実施し、オブジェクトストレージデバイス間の情報相互作用を減少させる。
図2を参照して、具体的には図7に示すオブジェクト操作要求を処理するための方法において、オブジェクト操作要求がオブジェクト書込要求であるとき、マッチするフローテーブルエントリの転送ルールは、オブジェクトストレージデバイスの残存記憶容量に従ってコントローラによって策定される。スイッチが、マッチするフローテーブルエントリの転送ルールに従ってオブジェクトストレージデバイスの中からターゲットオブジェクトストレージデバイスにオブジェクト操作要求を転送した後、方法は、書込要求がターゲットオブジェクトストレージデバイスに転送される回数を、スイッチによって更新するステップをさらに含み、回数は、マッチするフローテーブルエントリに記録される。以下に詳細を説明する。
クライアント101がオブジェクトストレージシステムに書込要求を送信する例を使用すると、クライアント101は、書込要求を送信し、オブジェクトストレージシステムプロキシ102は、クライアント101によって送信された書込要求を受信する。オブジェクトが、オブジェクトストレージシステムに書き込まれることになるので、メタデータサーバ103には、書き込まれることになるオブジェクトの要求識別を有さず、オブジェクトストレージシステムプロキシ102は、書き込まれることになるオブジェクトの要求識別を書込要求から取得する。要求識別は、ユーザグループ情報及びストレージ方針情報のうちの少なくとも1つを含み、ユーザグループ情報は、オブジェクトストレージシステムにオブジェクトを書き込むクライアントのIPアドレス情報、又はオブジェクトストレージシステムにオブジェクトを書き込むクライアントを識別することができる他の情報でもよく、ストレージ方針は、オブジェクトストレージデバイス中の書き込まれたオブジェクトのコピー数でもよい。本発明の実施形態では、ユーザグループ情報及びストレージ方針情報を含んだ要求識別が例として使用され、ユーザグループ情報はクライアントのIPアドレス情報であり、ストレージ方針情報は、具体的には、オブジェクトストレージデバイス1061、1062、及び1063〜106L中のユーザによって要求されるオブジェクトのコピー数であり、ここではオブジェクトのコピー数は3である。
オブジェクトストレージシステムプロキシ102は、要求識別をカプセル化して、オブジェクト書込要求を生成する。オブジェクト書込要求の特定のフォーマットを図6に示す。オブジェクトストレージシステムプロキシ102は、オブジェクト書込要求の特定の識別ビットに、取得された要求識別をカプセル化する。本発明の実施形態では、ユーザグループ情報は、オブジェクト書込要求のVLAN IDビットにカプセル化され、ストレージ方針情報は、オブジェクト書込要求のIP ToSビットにカプセル化される。
オブジェクトストレージシステムプロキシ102は、オブジェクト書込要求をスイッチ1051に送信する。
スイッチ1051は、オブジェクトストレージシステムプロキシ102によって送信されたオブジェクト書込要求を受信し、オブジェクト書込要求のVLAN IDビット及びIP ToSビット情報を解析して、それぞれユーザグループ情報及びストレージ方針情報を取得する。解析することによって取得されるユーザグループ情報及びストレージ方針情報に従って、フローテーブルのフローテーブルエントリが問合せされる。オブジェクト書込要求のVLAN IDから解析されるユーザグループ情報及びオブジェクト書込要求のIP ToSビットから解析されるストレージ方針情報は、それぞれフローテーブルエントリのパケットヘッダフィールドにマッチさせるために使用されて、マッチするフローテーブルエントリを見つけ、その後オブジェクト書込要求は、マッチするフローテーブルエントリの転送ルールに従って転送される。
具体的には、オブジェクト書込要求に対して、フローテーブルエントリの転送ルールは、オブジェクトストレージデバイス1061、1062、及び1063〜106Lの残存記憶容量に従って、コントローラ104によって策定される、すなわち、オブジェクトストレージデバイスの残存記憶容量に従って、オブジェクト書込要求に対して、ターゲットオブジェクトストレージデバイスが選択される。たとえば、図4に示すフローテーブルでは、フローテーブルエントリ3は、オブジェクト書込要求にマッチするフローテーブルエントリであって、フローテーブルエントリ3の構造が、図5に示され、パケットヘッダフィールドのVLAN ID中の情報が、オブジェクト書込要求のVLAN ID中の情報にマッチし、パケットヘッダフィールドのIP ToSビット中の情報が、オブジェクト書込要求のIP ToSビット中の情報にマッチする。フローテーブルエントリ3の操作ルールが、オブジェクトストレージデバイス1061、1062、及び1063〜106Lの残存記憶容量に従って、コントローラ104によって決定される、すなわち、オブジェクトストレージデバイス1061、1062、及び1063〜106Lの残存記憶容量のサイズに従って、ターゲットオブジェクトストレージデバイスが決定される。一実施方法は、スイッチ1051が、オブジェクト書込要求を転送した回数をコントローラ104に定期的に報告し、回数は、フローテーブル中の各フローテーブルエントリに記録されること、又は、コントローラ104が、オブジェクト書込要求を転送した回数をスイッチ1051から定期的に取得し、回数は、フローテーブル中の各フローテーブルエントリに記録されること、又はオブジェクトストレージデバイス1061、1062、及び1063〜106Lが、残存記憶容量をコントローラ104に報告することである。各オブジェクトストレージデバイスの残存記憶容量は、オブジェクト書込要求が各オブジェクトストレージデバイスに転送される回数、及び書き込まれることになるオブジェクトのサイズに従って計算され、回数は、スイッチ1051のフローテーブル中の各フローテーブルエントリによってカウントされる。具体的には、一実施手法は、例としてオブジェクトストレージデバイス1061を使用すると、コントローラ104は、オブジェクトストレージデバイス1061にオブジェクト書込要求を転送した回数、及びオブジェクト書込要求各回の書き込まれたオブジェクトのサイズに従って、記憶のためにオブジェクトストレージデバイス1061に書き込まれたオブジェクトの総サイズを計算し、回数は、各フローテーブルエントリに記録され、オブジェクトストレージデバイス1061の総記憶容量から占有されたオブジェクト記憶容量を引くことによって、オブジェクトストレージデバイス1061の残存記憶容量を取得する、というものである。同様に、一期間におけるオブジェクトストレージデバイス1062〜106Lの残存記憶容量を取得することができる。本発明の実施形態では、オブジェクト書込要求が、最初のオブジェクト書込要求であり、スイッチ1051のフローテーブルにはマッチするフローテーブルエントリがないとき、スイッチ1051は、Openflowプロトコルを使用することによって図3に示すセキュアチャネルを通じてオブジェクト書込要求をコントローラ104に転送する。コントローラ104は、現在のオブジェクトストレージデバイス1061、1062、及び1063〜106Lの残存記憶容量に従って、オブジェクト書込要求に対して転送ルールを策定し、本発明の実施形態でフローテーブルエントリ3を生成し、フローテーブルエントリ3をスイッチ1051に配信する。スイッチ1051は、フローテーブルエントリ3に従ってフローテーブルを更新し、フローテーブルエントリ3の転送ルールに従って、オブジェクト書込要求を転送する。たとえば、スイッチ1051がオブジェクト書込要求を解析することによって取得するストレージ方針情報に従って、書き込まれるオブジェクトのコピー数は3であり、コントローラ104は、オブジェクトストレージデバイス1061、1062、及び1063〜106Lから、最大の残存記憶容量を有する3つのオブジェクトストレージデバイスをターゲットオブジェクトストレージデバイスとして選択する。たとえば、オブジェクトストレージデバイス1063、1067、及び1068は、最大残存記憶容量を有する3つのオブジェクトストレージデバイスであり、その残存記憶容量は、すべて1000Gbであり、他のオブジェクトストレージデバイスの残存記憶容量は1000Gb未満である、又はオブジェクトストレージデバイス1063、1067、及び1068は、最大残存記憶容量を有する3つのオブジェクトストレージデバイスであり、その残存記憶容量は、順番に1000Gb、950Gb、及び900Gbであり、他のオブジェクトストレージデバイスの残存記憶容量は、900Gb未満である。したがって、コントローラ104がオブジェクト書込要求に対して策定する操作ルールは、オブジェクト書込要求をオブジェクトストレージデバイス1064、1067、及び1068に転送することである。オブジェクト書込要求は、フローテーブルエントリ3の転送ルールに従ってスイッチ1051の宛先ポートに転送され、スイッチ1051の宛先ポートは、それを通じてスイッチ1051がオブジェクトストレージデバイス1064、1067、及び1068と個々に通信するポートである。コントローラ104は、オブジェクト書込要求で搬送される要求識別に従って、オブジェクトを記憶するオブジェクトストレージデバイスの情報を記録し、オブジェクトを記憶するオブジェクトストレージデバイスの記録された情報を使用することによって、オブジェクトを記憶するオブジェクトストレージデバイスのフロー負荷を取得してもよく、オブジェクトを記憶するオブジェクトストレージデバイスのフロー負荷に従って、オブジェクトを読み取るオブジェクト読取要求に対する転送ルールを策定し、オブジェクトを読み取るオブジェクト読取要求にマッチするフローテーブルエントリを生成し、フローテーブルエントリは、オブジェクトの要求識別を搬送し、マッチするフローテーブルエントリを決定するために、オブジェクト読取要求で搬送される要求識別を、フローテーブルエントリで搬送される要求識別とマッチさせる。特定の手順については、実施形態のオブジェクト読取要求部分の説明を参照してもよく、ここでは詳細を繰り返して説明しない。
スイッチ1051は、オブジェクト書込要求の宛先IPアドレスを、オブジェクトストレージデバイス1062のIPアドレスに変え、オブジェクト書込要求の宛先MACアドレスを、オブジェクトストレージデバイス1062のMACアドレスに変える。本発明の実施形態では、オブジェクト書込要求は、マッチするフローテーブルエントリの転送ルールに従って、オブジェクトストレージデバイス1064、1067、及び1068に個々に転送される。それに応じて、オブジェクト書込要求の宛先IPアドレスは、オブジェクトストレージデバイス1064のIPアドレスに変えられ、オブジェクト書込要求の宛先MACアドレスは、オブジェクトストレージデバイス1064のMACアドレスに変えられ、変更されたオブジェクト書込要求は、オブジェクトストレージデバイス1064に転送される。同様に、オブジェクトストレージデバイス1067及び1068に転送されるオブジェクト書込要求は変更され、変更されたオブジェクト書込要求が、オブジェクトストレージデバイス1067及び1068に個々に転送される。
フローテーブルエントリ3中のカウンタは、オブジェクト書込要求をオブジェクトストレージデバイス1064、1067、及び1068に転送した回数を個々に更新する。
オブジェクトストレージデバイス1064、1067、及び1068は、書き込まれたオブジェクトを記憶し、書き込まれたオブジェクトの要求識別をメタデータサーバ103に登録し、メタデータサーバ103は、オブジェクトの特定のストレージ位置情報を記憶しなくてもよいが、オブジェクトの要求識別だけは含む必要がある。
本発明の実施形態では、オブジェクト書込要求で搬送される要求識別は、ユーザグループ情報及びストレージ方針情報のうちの1つのみを含むんでもよく、これは本発明では限定されない。要求識別は少なくともユーザグループ情報を含むことが好ましい。
本発明の実施形態で提供されるオブジェクトストレージシステムでは、ソフトウェア定義ネットワークにおいてスイッチを使用することによって対応するオブジェクトストレージデバイスに要求識別を搬送するオブジェクト書込要求を転送するための処理方法に従って、コントローラが、オブジェクトストレージデバイスの残存記憶容量に従って、オブジェクト書込要求の転送ルールを配信してスイッチのフローテーブルエントリを生成し、スイッチは、マッチするフローテーブルエントリの転送ルールに従ってオブジェクト書込要求を転送し、それによってオブジェクトストレージデバイスの記憶容量の負荷均衡化を実施し、オブジェクトストレージデバイス間の情報相互作用を減少させる。さらに、オブジェクトストレージシステムに書き込まれたオブジェクトに対して、メタデータサーバは、オブジェクトの要求識別を記録するだけでよく、それによってメタデータサーバの作業負荷を軽減させる。
本発明の実施形態で提供されるオブジェクトストレージシステムでは、オブジェクトストレージデバイスが追加されるとき、たとえば、オブジェクトストレージデバイス1061(L+1)が追加されるとき、オブジェクトストレージデバイス1061(L+1)はコントローラ104に登録され、コントローラ104に登録される情報は、オブジェクトストレージデバイス1061(L+1)のMACアドレスと、スイッチ1051と通信するためのポート数と、記憶容量とを含む。オブジェクトストレージデバイス1061(L+1)の登録情報を受信した後、コントローラ104は、オブジェクトストレージデバイス1061(L+1)の登録情報を記録し、転送ルールを策定し、新しいフローテーブルエントリを生成し、フローテーブルエントリをスイッチ1051に配信する。
本発明の実施形態で提供されるオブジェクトストレージシステムでは、オブジェクトストレージシステム中のオブジェクトストレージデバイスが、障害又は別の理由のために終了するとき、たとえば、オブジェクトストレージデバイス1061Lが終了するとき、コントローラ104は、オブジェクトストレージデバイス1061Lの状態変化メッセージを受信し、メッセージは、オブジェクトストレージデバイス1061LのMACアドレス、スイッチ1051と通信するためのポート番号、及び記憶容量情報を搬送し、コントローラ104は、状態変化メッセージに従って、オブジェクトストレージデバイス1061Lに転送することである転送ルールを有するフローテーブルエントリを削除する。オブジェクト読取要求をオブジェクトストレージデバイス1061Lに転送することである転送ルールを有するフローテーブルエントリに対して、コントローラ104は、オブジェクトストレージデバイス1061Lの冗長オブジェクトストレージデバイスに転送することである転送ルールを有するフローテーブルエントリを生成する。冗長オブジェクトストレージデバイスは、オブジェクトストレージデバイス1061Lのオブジェクトを記憶するオブジェクトストレージデバイスである。
したがって、オブジェクトストレージシステムにおけるソフトウェア定義ネットワークの使用は、オブジェクトストレージシステムのオブジェクトストレージデバイスの増加又は減少を実施し、オブジェクトストレージシステムの柔軟性を向上させる。
ストレージシステムにおいて操作要求を処理するための方法の実施形態の説明に従って、コントローラ104は、図8に示すように、以下のステップを含む、フローテーブルエントリ転送ルールを生成するための方法を提供する:
ステップ801:コントローラは、スイッチと通信するストレージデバイスの残存記憶容量情報を取得する。
ステップ802:コントローラは、ストレージデバイスの残存記憶容量情報に従って、書込要求にマッチする転送ルールを生成し、書込要求は、スイッチと通信するストレージデバイスにデータを書き込むために使用される。
一実施方法では、コントローラがスイッチと通信するストレージデバイスの残存記憶容量情報を取得することは、具体的には、ストレージデバイスによって報告される残存記憶容量情報をコントローラによって受信することを含む。
一実施方法では、コントローラがスイッチと通信するストレージデバイスの残存記憶容量情報を取得することは、具体的には、ストレージデバイスに書込要求を転送した回数及び書き込まれたデータのサイズをコントローラによって取得し、回数及びサイズは、スイッチのフローテーブルのフローテーブルエントリに記録されることと、ストレージデバイスの記憶容量、書込要求の回数、及び書き込まれたデータのサイズに従ってストレージデバイスの残存記憶容量をコントローラによって計算することとを含む。
具体的には、オブジェクトストレージシステムでは、本発明の実施形態のコントローラ104が、フローテーブルエントリ転送ルールを生成するための方法を提供する方法に従って、ストレージデバイスが、具体的にはオブジェクトストレージデバイスであり、書込要求が、具体的にはオブジェクト書込要求であり、オブジェクト書込要求に従ってオブジェクトストレージデバイスに書き込まれるデータがオブジェクトである。
本発明の実施形態で提供されるストレージシステムでは、ソフトウェア定義ネットワークに基づくコントローラが、ストレージデバイスの残存記憶容量情報に従って、書込要求にマッチするフローテーブルエントリの転送ルールを生成し、スイッチが、コントローラによって生成された転送ルールに従って書込要求を処理するようにし、それによってストレージデバイスの負荷均衡化を実施し、ストレージデバイス間の情報相互作用を減少させる。本発明の実施形態に適用可能なストレージシステムは、ファイルレベルストレージシステム、データブロックレベルストレージシステム、若しくはオブジェクトストレージシステムでもよく、又は、ファイルレベルストレージシステム、データブロックレベルストレージシステム、及びオブジェクトストレージシステムのうちの少なくとも2つを含むストレージシステムでもよい。具体的には、オブジェクトストレージシステムへの適用可能性については、オブジェクト操作システムにおいてオブジェクト操作要求を処理する前述の実施形態を参照してもよく、ここでは詳細を繰り返して説明しない。
ストレージシステムにおいて操作要求を処理するための方法の実施形態の説明に従って、コントローラ104は、図9に示すように、以下のステップを含む、フローテーブルエントリ転送ルールを生成するための方法を提供する:
901:コントローラは、要求されるデータを記憶するストレージデバイスのフロー負荷情報を取得する。
902:コントローラは、要求されるデータを記憶するストレージデバイスのフロー負荷情報に従って、読取要求にマッチする転送ルールを生成する。
一実施方法では、コントローラが要求されるデータを記憶するストレージデバイスのフロー負荷情報を取得することは、具体的には、要求されるデータを記憶するストレージデバイスによって報告されるフロー負荷情報をコントローラによって受信することを含む。
一実施方法では、コントローラが要求されるデータを記憶するストレージデバイスのフロー負荷情報を取得することは、具体的には、要求されるデータを記憶するストレージデバイスに操作要求を転送した回数をコントローラによって取得することを含み、回数は、スイッチのフローテーブル中のフローテーブルエントリに記録され、操作要求は、書込要求と、読取要求とを含む。
具体的には、オブジェクトストレージシステムでは、コントローラ104が本発明の実施形態においてフローテーブルエントリ転送ルールを生成するための方法を提供する方法により、ストレージデバイスは、具体的にはオブジェクトストレージデバイスであり、読取要求は、具体的にはオブジェクト読取要求であり、オブジェクト読取要求によって要求され、オブジェクトストレージデバイスに記憶されるデータはオブジェクトである。
本発明の実施形態で提供されるストレージシステムでは、ソフトウェア定義ネットワークに基づくコントローラが、要求されるデータを記憶するストレージデバイスのフロー負荷に従って、読取要求にマッチするフローテーブルエントリの転送ルールを生成し、スイッチが、コントローラによって生成された転送ルールに従って読取要求を処理するようにし、それによってストレージデバイスの負荷均衡化を実施し、ストレージデバイス間の情報相互作用を減少させる。本発明の実施形態に適用可能なストレージシステムは、ファイルレベルストレージシステム、データブロックレベルストレージシステム、若しくはオブジェクトストレージシステムでもよく、又は、ファイルレベルストレージシステム、データブロックレベルストレージシステム、及びオブジェクトストレージシステムのうちの少なくとも2つを含むハイブリッドストレージシステムでもよい。具体的には、オブジェクトストレージシステムへの適用可能性については、オブジェクト操作システムにおいてオブジェクト操作要求を処理する前述の実施形態を参照してもよく、ここでは詳細を繰り返して説明しない。
本発明の前述の実施形態によれば、ストレージシステムにおいてソフトウェア定義ネットワークが使用され、ソフトウェア定義ネットワークでは、コントローラの特定の実施は、データ転送プレーン上のスイッチを通じた制御を実施するために、コントローラソフトウェアを実行するユニバーサルサーバでもよい。ユニバーサルサーバの構造は、中央処理装置、及びメモリなどを含み、中央処理装置及びメモリは、バスを使用することによって接続され、コントローラ及びスイッチは、前述の実施形態で説明した通信を実施する。データ転送プレーンに設置されるスイッチは、中央処理装置、及びメモリなどを含む、ユニバーサルスイッチ又はOpenflowスイッチでもよく、中央処理装置及びメモリは、バスを使用することによって接続され、中央処理装置及びコントローラは、前述の実施形態で説明した通信を実施し、同時にオブジェクト操作要求の転送を実施する。本発明の実施形態では、コントローラ及びスイッチは、例示的に説明されるにすぎず、ソフトウェア定義ネットワークを実施することができる他のスイッチ及びコントローラも、本発明を実施するために使用されてもよい。
本発明の前述の方法の実施形態の説明によれば、本発明の一実施形態は、図10に示すように、受信ユニット1001と、問合せユニット1002と、転送ユニット1003とを含んだスイッチを提供する。受信ユニット1001は、操作要求を受信するように構成され、操作要求は要求識別を搬送し、要求識別は、ユーザグループ情報、及びストレージ方針情報のうちの少なくとも1つを含み、問合せユニット1002は、要求識別に従って、操作要求にマッチするフローテーブルエントリを取得するためにスイッチのフローテーブルに問合せするように構成され、転送ユニット1003は、マッチするフローテーブルエントリの転送ルールに従ってストレージデバイスの中からターゲットストレージデバイスに操作要求を転送するように構成される。
図10に示すスイッチによれば、操作要求が読取要求であるとき、マッチするフローテーブルエントリの転送ルールは、要求されるデータを記憶するストレージデバイスのフロー負荷に従って、コントローラによって策定され、操作要求が書込要求であるとき、マッチするフローテーブルエントリの転送ルールは、ストレージデバイスの残存記憶容量に従って、コントローラによって策定される。
具体的には、オブジェクトストレージシステムでは、受信ユニット1001は、オブジェクト操作要求を受信するように構成され、オブジェクト操作要求は、要求識別を搬送し、要求識別は、ユーザグループ情報及びストレージ方針情報のうちの少なくとも1つを含み、問合せユニット1002は、オブジェクト操作要求にマッチするフローテーブルエントリを取得するためにスイッチのフローテーブルを、要求識別に従って問合せするように構成され、転送ユニット1003は、マッチするフローテーブルエントリの転送ルールに従って、オブジェクトストレージデバイスの中からターゲットオブジェクトストレージデバイスにオブジェクト操作要求を転送するように構成され、オブジェクト操作要求が、オブジェクト読取要求であるとき、マッチするフローテーブルエントリの転送ルールは、要求されるオブジェクトを記憶するオブジェクトストレージデバイスのフロー負荷に従って、コントローラによって策定され、オブジェクト操作要求がオブジェクト書込要求であるとき、マッチするフローテーブルエントリの転送ルールは、オブジェクトストレージデバイスの残存記憶容量に従って、コントローラによって策定される。
本発明の実施形態で提供されるストレージシステムでは、要求識別を搬送する操作要求を、ソフトウェア定義ネットワークにおいてスイッチを使用することによって対応するストレージデバイスに転送するための処理方法に従って、コントローラが、スイッチのフローテーブルエントリ中の転送ルールを策定し、スイッチが、フローテーブルエントリ中の転送ルールに従って操作要求を転送し、それによってストレージデバイスの負荷均衡化を実施し、ストレージデバイス間の情報相互作用を減少させる。
本発明の前述の方法の実施形態の説明によれば、本発明の一実施形態は、図11に示すように、取得ユニット1101と、生成ユニット1102とを含んだコントローラを提供し、取得ユニット1101は、スイッチと通信するストレージデバイスの残存記憶容量情報を取得するように構成され、生成ユニット1102は、ストレージデバイスの残存記憶容量情報に従って、書込要求にマッチする転送ルールを生成するように構成され、書込要求は、スイッチと通信するストレージデバイスにデータを書き込むために使用される。一実施方法では、取得ユニット1101は、具体的には、ストレージデバイスによって報告される残存記憶容量情報を受信するように構成される。一実施方法では、取得ユニット1101は、具体的には、ストレージデバイスに書込要求を転送した回数及び書き込まれたデータのサイズを取得し、回数及びサイズは、スイッチのフローテーブルのフローテーブルエントリに記録され、ストレージデバイスの記憶容量、書込要求の回数、及び書き込まれたデータのサイズに従ってストレージデバイスの残存記憶容量を計算するように構成される。
具体的には、オブジェクトストレージシステムでは、取得ユニット1101は、スイッチと通信するオブジェクトストレージデバイスの残存記憶容量情報を取得するように構成され、生成ユニット1102は、オブジェクトストレージデバイスの残存記憶容量情報に従って、オブジェクト書込要求にマッチする転送ルールを生成するように構成され、オブジェクト書込要求は、スイッチと通信するオブジェクトストレージデバイスにオブジェクトを書き込むために使用される。一実施方法では、取得ユニット1101は、具体的には、オブジェクトストレージデバイスによって報告される残存記憶容量情報を受信するように構成される。一実施方法では、取得ユニット1101は、具体的には、オブジェクトストレージデバイスにオブジェクト書込要求を転送した回数及び書き込まれたデータのサイズを取得し、回数及びサイズは、スイッチのフローテーブルのフローテーブルエントリに記録され、オブジェクトストレージデバイスの記憶容量、オブジェクト書込要求を転送する回数、及び書き込まれたオブジェクトのサイズに従ってオブジェクトストレージデバイスの残存記憶容量を計算するように構成される。
本発明の実施形態で提供されるコントローラによれば、ソフトウェア定義ネットワークを使用することによって、コントローラは、ストレージシステム中の各ストレージデバイスの残存記憶容量に従って、スイッチのフローテーブルエントリ及び書込要求にマッチする転送ルールを策定し、それによって各ストレージデバイスの負荷均衡化を実施し、ストレージデバイス間の情報相互作用を減少させる。
本発明の前述の方法の実施形態の説明によれば、本発明の一実施形態は、コントローラを提供する。図11に示すように、コントローラは、取得ユニット1101と、生成ユニット1102とを含む。本発明の実施形態では、取得ユニット1101は、要求されるデータを記憶するストレージデバイスのフロー負荷情報を取得するように構成され、生成ユニット1102は、要求されるデータを記憶するストレージデバイスのフロー負荷情報に従って、読取要求にマッチする転送ルールを生成するように構成される。一実施方法では、取得ユニット1101は、具体的には、要求されるデータを記憶するストレージデバイスによって報告されるフロー負荷情報を受信するように構成される。一実施方法では、取得ユニット1101は、具体的には、要求されるデータを記憶するストレージデバイスに操作要求を転送する回数を取得するように構成され、回数は、スイッチのフローテーブルのフローテーブルエントリに記録され、操作要求は、書込要求と、読取要求とを含む。
具体的には、オブジェクトストレージシステムでは、取得ユニット1101は、要求されるオブジェクトを記憶するオブジェクトストレージデバイスのフロー負荷情報を取得するように構成され、生成ユニット1102は、要求されるオブジェクトを記憶するオブジェクトストレージデバイスのフロー負荷情報に従って、オブジェクト読取要求にマッチする転送ルールを生成するように構成される。一実施方法では、取得ユニット1101は、具体的には、要求されるオブジェクトを記憶するオブジェクトストレージデバイスによって報告されるフロー負荷情報を受信するように構成される。一実施方法では、取得ユニット1101は、具体的には、要求されるオブジェクトを記憶するオブジェクトストレージデバイスにオブジェクト操作要求を転送する回数を取得するように構成され、回数は、スイッチのフローテーブルのフローテーブルエントリに記録され、オブジェクト操作要求は、オブジェクト書込要求と、オブジェクト読取要求とを含む。
本発明の実施形態で提供されるコントローラによれば、ソフトウェア定義ネットワークを使用することによって、コントローラは、ストレージシステム中に要求されるデータを記憶するストレージデバイスのフロー負荷に従って、スイッチのフローテーブルエントリ及び読取要求にマッチする転送ルールを策定し、それによって各ストレージデバイスの負荷均衡化を実施し、ストレージデバイス間の情報相互作用を減少させる。
本発明の前述の装置実施形態で記載するスイッチ及びコントローラの特定の機能的説明については、方法の実施形態をさらに参照してもよく、加えて、適用シナリオについては、図2に示すアーキテクチャ図及び説明を参照してもよく、ここでは詳細を繰り返して説明しない。
この明細書で開示される実施形態で記載される例と組み合わせて、ユニット及びアルゴリズムステップが、電子ハードウェア又はコンピュータソフトウェアと電子ハードウェアの組合せによって実施されてもよいことを、当業者は認識し得る。機能がハードウェアによって行われるか、ソフトウェアによって行われるかは、技術的解決法の特定の用途及び設計制約条件に依存する。当業者は、様々な方法を使用して、各特定の用途に対して説明した機能を実施することができるが、実施は、本発明の範囲を逸脱すると考えられるべきではない。
簡便な及び簡単な説明にするために、前述のシステム、装置、及びユニットの具体的な作業プロセスについては、前述の方法の実施形態における対応するプロセスを参照してもよく、ここでは詳細を再び説明しないことは、当業者には明確に理解され得る。
本出願で提供されるいくつかの実施形態では、開示される装置及び方法は、他の方法で実施され得ることを理解されたい。たとえば、記載する装置実施形態は、例示にすぎない。たとえば、ユニット分割は、単に論理的機能分割であり、実際の実施においては他の分割であってもよい。たとえば、複数のユニット若しくは構成要素は、別のシステムに結合されてもよく、若しくは一体化されてもよく、又は、いくつかの機能は無視されてもよく、若しくは行われなくてもよい。さらに、表示される又は論じられる相互結合、又は直接結合、又は通信接続は、いくつかのインターフェースを通じて実施されてもよい。装置又はユニット間の間接結合又は通信接続は、電子的形式、機械的形式、又は他の形式で実施されてもよい。
分かれた部分として記載するユニットは、物理的に分かれていてもよく、又は物理的に分かれていなくてもよく、ユニットとして表示する部分が、物理的ユニットでもよく、又は物理的ユニットでなくてもよく、1つの場所に設置されてもよく、又は複数のネットワークユニット上に分散されてもよい。ユニットの一部又は全部が、実際の必要に従って選択されて、諸実施形態の解決法の目的を実現してもよい。
さらに、本発明の実施形態における機能ユニットが、1つの処理ユニットに統合されてもよく、又は、ユニットのそれぞれが、物理的に単体で存在してもよく、又は、2つ以上のユニットが、1つのユニットに統合される。
機能が、ソフトウェア機能ユニットの形式で実装され、独立した製品として販売される又は使用されるとき、機能は、コンピュータ可読記憶媒体に記憶されもよい。このような理解に基づいて、本質的に本発明の技術的解決法、又は従来技術に寄与する部分、又は技術的解決法の一部は、ソフトウェア製品の形式で実施されてもよい。ソフトウェア製品は、記憶媒体に記憶され、本発明の実施形態で記載される方法のステップの全部又は一部を行うように、コンピュータデバイス(パーソナルコンピュータ、サーバ、又はネットワークデバイスであってもよい)に命令するためのいくつかの命令を含む。前述の不揮発性記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読み取り専用メモリ(Read−Only Memory, ROM)、磁気ディスク、又は光ディスクなど、プログラムコードを記憶することができるいずれかの媒体を含む。
前述の説明は、単に本発明の特定の実施方法であり、本発明の保護範囲を限定することを意図されていない。本発明において開示した技術範囲内で当業者に容易に考え出されるいかなる変形又は置換も、本発明の保護範囲内に入るものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。