【課題を解決するための手段】
【0005】
本発明の実施例は、記憶リソースを共有する方法およびシステムを提供し、これは、異種の記憶リソースを統合、共有、および利用するために使用され、それによって、記憶リソースの利用を向上させる。
【0006】
第1の態様に従って、本発明の実施例は、サーバ・クラスタ・システムに適用される、記憶リソースを共有するための方法であって、
前記サーバ・クラスタ・システムはサーバノードおよびネットワーク記憶ノードを含み、前記サーバノードはハードディスクを含み、前記ネットワーク記憶ノードは記憶アレイを含み、前記方法は、
前記ハードディスクおよび前記記憶アレイの記憶リソースを複数の記憶パーティションに分割するステップであって、前記複数の記憶パーティションは共有記憶リソースのプールを形成する、ステップと、
各々の記憶パーティションに読み出し・書き込み制御モジュールを割り当てるステップと、
グローバルパーティション情報を生成するステップであって、前記グローバルパーティション情報は、前記共有記憶リソースのプールにおける各々の記憶パーティションと前記読み出し・書き込み制御モジュールとの間の対応関係を記録する、ステップと、
記憶要求メッセージを受信し、前記記憶要求メッセージに対応する記憶パーティションを決定するステップと、
前記グローバルパーティション情報に従って、前記記憶要求メッセージに対応する記憶パーティションに対応する読み出し・書き込み制御モジュールを決定するステップと、
前記読み出し・書き込み制御モジュールが前記記憶要求メッセージによって要求される操作を実行するように、前記決定された読み出し・書き込み制御モジュールに前記記憶要求メッセージを送信するステップと、
を含む方法を提供する。
【0007】
第1の態様を参照して、第1の可能な実現形態において、前記記憶要求メッセージに対応する記憶パーティションを決定するステップは、
前記記憶要求メッセージに従って操作されるデータが配置されるユーザボリュームのID、および、前記操作されるデータの少なくとも1つのデータブロックの論理ブロックアドレスLBAを決定するステップと、
前記ユーザボリュームのIDおよび前記少なくとも1つのデータブロックのLBAに従って、前記少なくとも1つのデータブロックに対応する記憶パーティションを決定するステップと、
を含む。
【0008】
第1の態様の第1の可能な実現形態を参照して、第2の可能な実現形態において、前記方法は、前記共有記憶リソースのプールにおいて各々の記憶パーティションのメタデータをセットアップするステップであって、各々の記憶パーティションのメタデータは、前記記憶パーティションのIDと、前記記憶パーティションに割り当てられたデータブロックのIDとの間の対応関係を記録する、ステップをさらに含み、
前記ユーザボリュームのIDおよび前記少なくとも1つのデータブロックのLBAに従って、前記少なくとも1つのデータブロックに対応する記憶パーティションを決定するステップは、
前記ユーザボリュームのIDおよび前記少なくとも1つのデータブロックのLBAに従って、前記少なくとも1つのデータブロックのIDを決定し、各々の記憶パーティションのメタデータを問い合わせ、前記少なくとも1つのデータブロックに対応する記憶パーティションのIDを決定するステップ
を含む。
【0009】
第1の態様または第1の態様の第1の可能な実現形態を参照して、第3の可能な実現形態において、前記ユーザボリュームのIDおよび前記少なくとも1つのデータブロックのLBAに従って、前記少なくとも1つのデータブロックに対応する記憶パーティションを決定するステップは、
前記ユーザボリュームのIDおよび各々のデータブロックのLBAを使用することによって、各々のデータブロックのkey値を形成し、各々のデータブロックの前記key値に対応するvalue値を計算し、前記value値に従って各々のデータブロックに対応する記憶パーティションを決定するステップ
を含む。
【0010】
第1の態様の第1の可能な実現形態、第1の態様の第2の可能な実現形態、または第1の態様の第3の可能な実現形態を参照して、第4の可能な実現形態において、記憶要求メッセージを受信することは、ユーザボリューム生成コマンドを受信することを含み、前記ユーザボリューム生成コマンドは前記ユーザボリュームのサイズを示し、
前記記憶要求メッセージに従って操作されるデータが配置されるユーザボリュームのID、および、前記操作されるデータの少なくとも1つのデータブロックの論理ブロックアドレスLBAを決定するステップと、前記ユーザボリュームのIDおよび前記少なくとも1つのデータブロックのLBAに従って、前記少なくとも1つのデータブロックに対応する記憶パーティションを決定するステップと、は、
前記ユーザボリュームに前記ユーザボリュームのIDを割り当てるステップと、
前記ユーザボリュームのサイズに従って、前記ユーザボリュームに割り当てられる初期記憶リソースのサイズを決定し、前記初期記憶リソースのサイズに従って、前記少なくとも1つのデータブロックのLBAを決定するステップと、
前記ユーザボリュームのIDおよび前記少なくとも1つのデータブロックのLBAに従って、前記少なくとも1つのデータブロックに対応する記憶パーティションを決定するステップと、
を含む。
【0011】
第1の態様の第1の可能な実現形態、第1の態様の第2の可能な実現形態、または第1の態様の第3の可能な実現形態を参照して、第5の可能な実現形態において、記憶要求メッセージを受信することは、データ書き込み操作要求を受信することを含み、
前記データ書き込み操作要求において搬送されたファイル名に従って、現在の書き込み操作に対応するユーザボリュームのIDを決定するステップと、
書き込まれるデータを複数の書き込まれるデータブロックに分割し、各々の書き込まれるデータブロックにLBAを割り当てるステップと、
前記現在の書き込み操作に対応するユーザボリュームのID、および、各々の書き込まれるデータブロックのLBAに従って、各々の書き込まれるデータブロックに対応する記憶パーティションを決定するステップと、
前記グローバルパーティション情報に従って、各々の書き込まれるデータブロックに対応する記憶パーティションに対応する読み出し・書き込み制御モジュールを決定するステップと、
複数のデータブロック書き込みコマンドを生成するステップであって、各々のデータブロック書き込みコマンドは1つの書き込まれるデータブロックに対応し、各々のデータブロック書き込みコマンドは、前記書き込まれるデータブロック、および、前記書き込まれるデータ
ブロックのIDを搬送する、ステップと、
各々の書き込まれるデータブロックに対応する読み出し・書き込み制御モジュールが記憶ハードウェアリソースに各々の書き込まれるデータブロックを書き込むように、各々の書き込まれるデータブロックに対応する読み出し・書き込み制御モジュールに各々のデータブロック書き込みコマンドを個々に送信するステップと、
を含む。
【0012】
第1の態様の第1の可能な実現形態、第1の態様の第2の可能な実現形態、または第1の態様の第3の可能な実現形態を参照して、第5の可能な実現形態において、記憶要求メッセージを受信することは、データ読み出し操作要求を受信することを含み、前記データ読み出し操作要求はファイル名および読み出されるデータのオフセットを搬送し、
前記データ読み出し操作要求において搬送されたファイル名に従って、現在の読み出し操作に対応するユーザボリュームのIDを決定するステップと、
前記読み出されるデータのオフセット情報に従って複数の読み出されるデータブロックのLBAを決定するステップと、
前記現在の読み出し操作に対応するユーザボリュームのID、および、各々の読み出されるデータブロックのLBAに従って、各々の読み出されるデータブロックに対応する記憶パーティションを決定するステップと、
前記グローバルパーティション情報に従って、前記複数の読み出されるデータブロックに対応する記憶パーティションに対応する読み出し・書き込み制御モジュールを決定するステップと、
複数のデータブロック読み出しコマンドを生成するステップであって、各々のデータブロック読み出しコマンドは1つの読み出されるデータブロックに対応し、各々のデータブロック読み出しコマンドは、前記読み出されるデータブロック、および、前記読み出されるデータブロックのIDを搬送する、ステップと、
各々の読み出されるデータブロックに対応する読み出し・書き込み制御モジュールが各々の読み出されるデータブロックを読み出すように、各々の読み出されるデータブロックに対応する読み出し・書き込み制御モジュールに各々のデータブロック読み出しコマンドを個々に送信するステップと、
を含む。
【0013】
第2の態様に従って、本発明の実施例は、サーバ・クラスタ・システムであって、前記サーバ・クラスタ・システムはサーバノードおよびネットワーク記憶ノードを含み、前記サーバノードはハードディスクを含み、前記ネットワーク記憶ノードは記憶アレイを含み、前記サーバノードにおいて分散記憶コントローラが動作し、前記分散記憶コントローラは、
前記ハードディスクおよび前記記憶アレイの記憶リソースを複数の記憶パーティションに分割するように構成されたメタデータ・コントローラを含み、前記複数の記憶パーティションは共有記憶リソースのプールを形成し、前記メタデータ・コントローラは、各々の記憶パーティションに読み出し・書き込み制御モジュールを割り当て、グローバルパーティション情報を生成するように構成され、前記グローバルパーティション情報は、前記共有記憶リソースのプールにおける各々の記憶パーティションと前記読み出し・書き込み制御モジュールとの間の対応関係を記録し、前記メタデータ・コントローラは、前記グローバルパーティション情報を仮想ブロック・サービス・モジュールに送出するように構成され、
前記分散記憶コントローラは、
サービス層に向かい、記憶要求メッセージを受信し、前記記憶要求メッセージに対応する記憶パーティションを決定し、前記グローバルパーティション情報に従って、前記記憶要求メッセージに対応する記憶パーティションに対応する読み出し・書き込み制御モジュールを決定し、前記決定された読み出し・書き込み制御モジュールに前記記憶要求メッセージを送信するように構成された前記仮想ブロック・サービス・モジュールと、
前記ハードディスクまたは前記ネットワーク記憶ノードに向かい、前記記憶要求メッセージによって要求される操作を実行するように構成された前記読み出し・書き込み制御モジュールと、
を含むサーバ・クラスタ・システムを提供する。
【0014】
第2の態様を参照して、第1の可能な実現形態において、前記読み出し・書き込み制御モジュールはオブジェクト記憶デリゲートおよびSAN記憶エージェントを含み、
前記メタデータ・コントローラは、読み出し・書き込み制御モジュールとして前記オブジェクト記憶デリゲートをローカル・ハードディスクの記憶パーティションに割り当て、読み出し・書き込み制御モジュールとして前記SAN記憶エージェントを前記記憶アレイの記憶パーティションに割り当てるように特に構成され、
前記オブジェクト記憶デリゲートは、前記記憶要求メッセージを受信し、前記記憶要求メッセージに対応する物理アドレスを決定し、前記物理アドレスに従って前記ハードディスクにおいて前記記憶要求メッセージによって要求される操作を実行するように構成され、
前記SAN記憶エージェントは、前記記憶要求メッセージを受信し、前記ネットワーク記憶ノードの、前記記憶要求メッセージに対応する論理アドレスを決定し、前記論理アドレスに従って前記記憶アレイにおいて前記記憶要求メッセージによって要求される操作を実行するように構成される。
【0015】
第2の態様を参照して、第2の可能な実現形態において、前記仮想ブロック・サービス・モジュールは、前記記憶要求メッセージに従って操作されるデータが配置されるユーザボリュームのID、および、前記操作されるデータの少なくとも1つのデータブロックの論理ブロックアドレスLBAを決定し、前記ユーザボリュームのIDおよび前記少なくとも1つのデータブロックのLBAに従って、前記少なくとも1つのデータブロックに対応する記憶パーティションを決定するように特に構成される。
【0016】
第2の態様の第2の可能な実現形態を参照して、第3の可能な実現形態において、前記仮想ブロック・サービス・モジュールは、前記共有記憶リソースのプールにおいて各々の記憶パーティションのメタデータをセットアップするように特に構成され、各々の記憶パーティションのメタデータは、前記記憶パーティションのIDと、前記記憶パーティションに割り当てられたデータブロックのIDとの間の対応関係を記録し、前記仮想ブロック・サービス・モジュールは、前記ユーザボリュームのIDおよび前記少なくとも1つのデータブロックのLBAに従って、前記少なくとも1つのデータブロックのIDを決定し、各々の記憶パーティションのメタデータを問い合わせ、前記少なくとも1つのデータブロックに対応する記憶パーティションのIDを決定するように特に構成される。
【0017】
第2の態様の第2の可能な実現形態を参照して、第4の可能な実現形態において、前記仮想ブロック・サービス・モジュールは、前記ユーザボリュームのIDおよび各々のデータブロックのLBAを使用することによって、各々のデータブロックのkey値を形成し、各々のデータブロックの前記key値に対応するvalue値を計算し、前記value値に従って各々のデータブロックに対応する記憶パーティションを決定するように特に構成される。
【0018】
第2の態様および第2の態様のいずれか1つの可能な実現形態を参照して、第5の可能な実現形態において、前記仮想ブロック・サービス・モジュールは、ユーザボリューム生成コマンドを受信するように特に構成され、前記ユーザボリューム生成コマンドは前記ユーザボリュームのサイズを示し、前記仮想ブロック・サービス・モジュールは、前記ユーザボリュームに前記ユーザボリュームのIDを割り当て、前記ユーザボリュームのサイズに従って、前記ユーザボリュームに割り当てられる初期記憶リソースのサイズを決定し、前記初期記憶リソースのサイズに従って、前記少なくとも1つのデータブロックのLBAを決定し、前記ユーザボリュームのIDおよび前記少なくとも1つのデータブロックのLBAに従って、前記少なくとも1つのデータブロックに対応する記憶パーティションを決定するように特に構成される。
【0019】
第2の態様および第2の態様のいずれか1つの可能な実現形態を参照して、第6の可能な実現形態において、前記仮想ブロック・サービス・モジュールは、データ書き込み操作要求を受信し、前記データ書き込み操作要求において搬送されたファイル名に従って、現在の書き込み操作に対応するユーザボリュームのIDを決定し、書き込まれるデータを複数の書き込まれるデータブロックに分割し、各々の書き込まれるデータブロックにLBAを割り当て、前記現在の書き込み操作に対応するユーザボリュームのID、および、各々の書き込まれるデータブロックのLBAに従って、各々の書き込まれるデータブロックに対応する記憶パーティションを決定し、前記グローバルパーティション情報に従って、各々の書き込まれるデータブロックに対応する記憶パーティションに対応する読み出し・書き込み制御モジュールを決定し、複数のデータブロック書き込みコマンドを生成するように特に構成され、各々のデータブロック書き込みコマンドは1つの書き込まれるデータブロックに対応し、各々のデータブロック書き込みコマンドは、前記書き込まれるデータブロック、および、前記書き込まれるデータ
ブロックのIDを搬送し、前記仮想ブロック・サービス・モジュールは、各々の書き込まれるデータブロックに対応する読み出し・書き込み制御モジュールに各々のデータブロック書き込みコマンドを個々に送信するように特に構成される。
【0020】
第2の態様および第2の態様のいずれか1つの可能な実現形態を参照して、第7の可能な実現形態において、前記仮想ブロック・サービス・モジュールは、データ読み出し操作要求を受信するように特に構成され、前記データ読み出し操作要求はファイル名および読み出されるデータのオフセットを搬送し、前記仮想ブロック・サービス・モジュールは、前記データ読み出し操作要求において搬送されたファイル名に従って、現在の読み出し操作に対応するユーザボリュームのIDを決定し、前記読み出されるデータのオフセット情報に従って複数の読み出されるデータブロックのLBAを決定し、前記現在の読み出し操作に対応するユーザボリュームのID、および、各々の読み出されるデータブロックのLBAに従って、各々の読み出されるデータブロックに対応する記憶パーティションを決定し、前記グローバルパーティション情報に従って、前記複数の読み出されるデータブロックに対応する記憶パーティションに対応する読み出し・書き込み制御モジュールを決定し、複数のデータブロック読み出しコマンドを生成するように特に構成され、各々のデータブロック読み出しコマンドは1つの読み出されるデータブロックに対応し、各々のデータブロック読み出しコマンドは、前記読み出されるデータブロック、および、前記読み出されるデータブロックのIDを搬送し、前記仮想ブロック・サービス・モジュールは、各々の読み出されるデータブロックに対応する読み出し・書き込み制御モジュールに各々のデータブロック読み出しコマンドを個々に送信するように特に構成される。
【0021】
第2の態様および第2の態様のいずれか1つの可能な実現形態を参照して、第8の可能な実現形態において、前記メタデータ・コントローラは、前記サーバノードにおけるオブジェクト記憶デリゲートおよびSAN記憶エージェントの配置状態を個々に決定し、前記決定された配置状態に従って前記読み出し・書き込み制御モジュールのビュー情報を生成するようにさらに構成され、前記読み出し・書き込み制御モジュールのビュー情報は、各々の読み出し・書き込み制御モジュールが配置されるサーバノードについての情報を示すために使用され、前記メタデータ・コントローラは、前記読み出し・書き込み制御モジュールのビュー情報を前記仮想ブロック・サービス・モジュールに送出するようにさらに構成され、
前記仮想ブロック・サービス・モジュールは、前記読み出し・書き込み制御モジュールのビュー情報に従って、前記読み出し・書き込み制御モジュールのルーティング情報を決定し、前記決定された読み出し・書き込み制御モジュールに前記記憶要求メッセージを送信するように特に構成される。
【0022】
第2の態様の第8の可能な実現形態を参照して、第9の可能な実現形態において、前記メタデータ・コントローラは、前記サーバ・クラスタ・システムにおける、ハードディスクリソースを有するサーバノードにおいて前記オブジェクト記憶デリゲートを配置することを決定し、前記サーバ・クラスタ・システムにおける、少ない負荷を有するサーバノードにおいて前記SAN記憶エージェントを配置することを決定するように特に構成される。
【0023】
第2の態様の第8の可能な実現形態を参照して、第10の可能な実現形態において、前記メタデータ・コントローラは、前記サーバノードのハードディスクの利用可能な記憶リソースおよび前記ネットワーク記憶ノードの記憶アレイの利用可能な記憶リソースを集め、前記ハードディスクおよび前記記憶アレイの利用可能な記憶リソースを複数の記憶パーティションに分割するようにさらに構成される。
【0024】
第3の態様に従って、本発明の実施例は、コンピュータを提供する。
【0025】
第4の態様に従って、本発明の実施例は、コンピュータ記憶媒体を提供する。
【0026】
本発明の実施例において、ハードディスクおよび記憶アレイの記憶リソースは複数の記憶パーティションに分割され、複数の記憶パーティションは共有記憶リソースのプールを形成し、読み出し・書き込み制御モジュールが各々の記憶パーティションに割り当てられ、共有記憶リソースのプールにおける各々の記憶パーティションと読み出し・書き込み制御モジュールの間の対応関係を記録するためにグローバルパーティション情報が生成されることが上述の技術的解決手段から分かる。このようにして、記憶要求メッセージが続いて受信されるとき、記憶要求メッセージに対応する記憶パーティションが決定でき、記憶要求メッセージに対応する記憶パーティションに対応する読み出し・書き込み制御モジュールがグローバルパーティション情報に従って決定でき、最後に、記憶要求メッセージが、決定された読み出し・書き込み制御モジュールに送信でき、それによって、読み出し・書き込み制御モジュールは記憶要求メッセージによって要求される操作を実行する。本発明の実施例は異種の記憶リソースの迅速で簡単な統合を実現し、従って、各種の記憶リソースを効率的に使用し、コストを節約し、リソースの浪費を避けることができる。
【0027】
本発明の実施例または先行技術における技術的解決手段をより明確に説明するために、下記は、実施例または先行技術を説明するために必要な添付図面を簡単に導入する。明らかに、下記の説明における添付図面は本発明のいくつかの実施例を表わす。