図面 (/)

技術 データ処理方法および装置

出願人 華為技術有限公司
発明者 羅雄
出願日 2014年11月5日 (6年8ヶ月経過) 出願番号 2016-560892
公開日 2017年6月1日 (4年1ヶ月経過) 公開番号 2017-514217
状態 特許登録済
技術分野 外部記憶装置との入出力 検索装置 計算機におけるファイル管理
主要キーワード プリセット条件 移行モジュール 最大数量 プリセット閾値 分割係数 デジタル数 等差数列 本識別子
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年6月1日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (8)

課題・解決手段

データ処理技術を提供しており、データ処理技術はパーティション管理デバイスに適用される。前記パーティション管理デバイスは、パーティションビューを記憶し、前記パーティションビューは、カレントパーティションのIDとストレージディスクアドレスとの間の対応付けを記録し、カレントパーティションの総数は、確定パーティションの総数未満であり得る。前記技術を使用することによって、データ転送を、カレントパーティションを使用して、キーバリューデータに対して行い得るし、それによって、パーティションビューの複雑度を低減している。

概要

背景

社会発展するにつれて、量が増加し続けるデータは、記憶および管理する必要があり、さらにマッシブデータとも称される。超大規模データを従来の集中型ストレージを用いて管理する場合には、効率的な読み込み/書き込み処理を提供することがほとんどできなくなり、優れた拡張性および高い可用性を満たすことがほとんどできない。

こうした状況を背景に、各ストレージノードストレージ領域を提供し得る、複数の物理ストレージノードからなるストレージシステム出現している。本ストレージ方式を分散ストレージと称する。キーバリューストレージと称する分散ストレージ方式が存在する。キーバリューストレージにおいては、記憶されているデータ(または、データフラグメント)をバリュー(value)と称し、データの各部分は、ストレージシステム全体の範囲で一意な識別子を有し、本識別子キー(key)である。キーとバリューとは、一対一対応関係にある。

キーおよびキーに対応するバリューを、概して、キーバリュー、略して、K-Vと称する。各キーバリューは、ストレージシステムのストレージディスク上に記憶される。分散ハッシュテーブル(DHT)技術においては、特定のキーバリューに関して、キーバリューが記憶されているストレージディスクを、マッピングルールを使用して決定し得る。このマッピングルールは、ハッシュ(hash)演算をキーに対して行うことによって生成されるハッシュ(Hash)値に基づいている、ここで、各キーバリューが1つのストレージディスクに対応するように、各ハッシュ値は1つのパーティションに属し、パーティションはストレージディスクに対応する。本方法に基づいて、2つの異なるキーの計算後のハッシュ値が同一である場合には、2つのキーに対応するキーバリューは、同一のストレージディスク上に記憶される。パーティションとストレージディスクとの間の対応付けをパーティションビューと称する。

従来技術では、DHT技術を使用してキーに従って計算されたHash値は、例えば、[0, 2^32-1]の整数の範囲内に含まれる。システム初期化中には、各セグメントがサイズにおいて等しいまたはおおよそ等しい、セグメンテーションをこの大きな整数の範囲に対して行う。この場合には、1つのセグメントがパーティション(Partition)であり、パーティション内のハッシュ値の数量は基本的に同一である。ストレージディスククラスタ内のストレージディスクの数量が比較的小さい場合には、各ストレージディスクは、必要以上のパーティションを有し、パーティションビューが過度に複雑になることを引き起こし、その結果、パーティションビューに従ったデータパケット転送が非効率的になる。具体的な例は、以下の通りである。

最大25,000個のストレージディスクをサポートするクラスタが存在すると仮定すると、最大数量のストレージディスクのケースでは、各ストレージディスクは、おおよそ100個のパーティションを有する。すなわち、クラスタ全体は、総計2,500,000個のパーティションを有する。各パーティション内の情報が4ビットのストレージ領域を占有していると仮定する。これらのパーティション内の情報は総計10MBのストレージ領域を占有することになり、パーティションビュー内の情報は10MBより大きくなる。

パーティションビューを使用する場合には、大量のシステムリソースを占有することになる。

概要

データ処理技術を提供しており、データ処理技術はパーティション管理デバイスに適用される。前記パーティション管理デバイスは、パーティションビューを記憶し、前記パーティションビューは、カレントパーティションのIDとストレージディスクのアドレスとの間の対応付けを記録し、カレントパーティションの総数は、確定パーティションの総数未満であり得る。前記技術を使用することによって、データ転送を、カレントパーティションを使用して、キーバリューデータに対して行い得るし、それによって、パーティションビューの複雑度を低減している。

目的

超大規模データを従来の集中型ストレージを用いて管理する場合には、効率的な読み込み/書き込み処理を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

パーティション管理デバイスに適用されるデータ処理方法であって、前記パーティション管理デバイスは、パーティションビューを記憶し、前記パーティションビューは、カレントパーティションのIDとストレージディスクアドレスとの間の対応付けを記録し、前記方法は、キーバリューデータ内のキーを取得して、前記キーに従って、前記キーバリューデータに対応する確定パーティションのIDを計算するステップであって、前記キーバリューデータは、バリューおよび前記バリューに一意に対応している前記キーを含む、ステップと、前記確定パーティションの前記IDに対応するカレントパーティションのIDを計算するステップであって、各カレントパーティションのIDは、複数の確定パーティションのIDに対応している、ステップと、前記カレントパーティションの前記IDに対応するストレージディスクのアドレスを取得するために、前記パーティションビューを検索するステップと、前記ストレージディスクの前記アドレスを宛先アドレスとして使用することによってキーバリューパケットを生成して、前記キーバリューパケットを前記ストレージディスクに送信するステップであって、前記キーバリューパケットは、前記キーバリューデータを搬送する、ステップとを含む、データ処理方法。

請求項2

前記パーティション管理デバイスは、確定パーティションの総数Lをさらに記録し、前記キーに従って、前記キーバリューデータに対応する確定パーティションのIDを計算するステップは、前記キーのハッシュ値を取得するために前記キーに対してハッシュ演算を行い、確定パーティションの前記総数Lに従って、モジュロ演算を前記ハッシュ値に対して行うステップであって、剰余は、前記確定パーティションの前記IDとして使用される、ステップを特に含む、請求項1に記載のデータ処理方法。

請求項3

前記パーティション管理デバイスは、カレントパーティションの総数Tをさらに記録し、前記確定パーティションの前記IDに対応するカレントパーティションのIDを計算するステップは、カレントパーティションの前記総数Tに従って、モジュロ演算を前記確定パーティションの前記IDに対して行うステップであって、剰余は、前記カレントパーティションの前記IDとして使用され、前記確定パーティションの前記IDは、0以上の整数である、ステップを特に含む、請求項1または2に記載のデータ処理方法。

請求項4

前記確定パーティションは、前記カレントパーティションのサブパーティションであるとともに、前記カレントパーティションの分割により取得される、請求項1に記載のデータ処理方法。

請求項5

前記データ処理方法は、特にデータ書き込み方法であり、前記キーバリューデータ内のキーを取得するステップの前に、前記方法は、前記バリューを含むバリューセットを取得するために書き込み予定のデータを分割して、前記キーバリューデータを形成するために前記バリューの前記キーを生成するステップをさらに含む、請求項1に記載のデータ処理方法。

請求項6

データ処理装置であって、前記装置は、パーティションビューを記憶するように構成される、記憶モジュールであって、前記パーティションビューは、カレントパーティションのIDとストレージディスクのアドレスとの間の対応付けを記録する、記憶モジュールと、キーバリューデータ内のキーを取得して、前記キーに従って、前記キーバリューデータに対応する確定パーティションのIDを計算するように構成される、確定パーティション計算モジュールであって、前記キーバリューデータは、バリューおよび前記バリューに一意に対応している前記キーを含む、確定パーティション計算モジュールと、前記確定パーティションの前記IDに対応するカレントパーティションのIDを計算するように構成される、カレントパーティション計算モジュールであって、各カレントパーティションのIDは、複数の確定パーティションのIDに対応している、カレントパーティション計算モジュールと、前記カレントパーティションの前記IDに対応するストレージディスクのアドレスを取得するために、前記記憶モジュールによって記憶されている前記パーティションビューを検索するように構成される、検索モジュールと、前記ストレージディスクの前記アドレスを宛先アドレスとして使用することによってキーバリューパケットを生成して、前記キーバリューパケットを前記ストレージディスクに送信するように構成される、送信モジュールであって、前記キーバリューパケットは、前記キーバリューデータを搬送する、送信モジュールとを備える、データ処理装置。

請求項7

前記記憶モジュールは、確定パーティションの総数Lを記録するようにさらに構成され、前記確定パーティション計算モジュールは、前記キーのハッシュ値を取得するために前記キーに対してハッシュ演算を行い、確定パーティションの前記総数Lに従って、モジュロ演算を前記ハッシュ値に対して行うように特に構成され、剰余は、前記確定パーティションの前記IDとして使用される、請求項6に記載のデータ処理装置。

請求項8

前記記憶モジュールは、カレントパーティションの総数Tを記録するようにさらに構成され、前記カレントパーティション計算モジュールは、カレントパーティションの前記総数Tに従って、モジュロ演算を前記確定パーティションの前記IDに対して行うように特に構成され、剰余は、前記カレントパーティションの前記IDとして使用され、前記確定パーティションの前記IDは、0以上の整数である、請求項6または7に記載のデータ処理装置。

請求項9

前記確定パーティションは、前記カレントパーティションのサブパーティションであるとともに、前記カレントパーティションの分割により取得される、請求項6に記載のデータ処理装置。

請求項10

前記データ処理装置は、前記バリューを含むバリューセットを取得するために書き込み予定のデータを分割して、前記キーバリューデータを形成するために前記バリューの前記キーを生成するように構成される、キーバリューデータ生成モジュールをさらに備える、請求項6に記載のデータ処理装置。

請求項11

データ処理デバイスであって、前記データ処理デバイスは、パーティションビューを記憶するように構成される、メモリであって、前記パーティションビューは、カレントパーティションのIDとストレージディスクのアドレスとの間の対応付けを記録する、メモリと、外部接続を提供するように構成される、インターフェースと、コンピュータプログラムを記憶するように構成される、コンピュータ可読媒体と、前記メモリ、前記インターフェース、および前記コンピュータ可読媒体に接続されるとともに、前記プログラムを動作することによって、キーバリューデータ内のキーを取得して、前記キーに従って、前記キーバリューデータに対応する確定パーティションのIDを計算するステップであって、前記キーバリューデータは、バリューおよび前記バリューに一意に対応している前記キーを含む、ステップと、前記確定パーティションの前記IDに対応するカレントパーティションのIDを計算するステップであって、各カレントパーティションのIDは、複数の確定パーティションのIDに対応している、ステップと、前記カレントパーティションの前記IDに対応するストレージディスクのアドレスを取得するために、前記パーティションビューを検索するステップと、前記ストレージディスクの前記アドレスを宛先アドレスとして使用することによってキーバリューパケットを生成して、前記キーバリューパケットを前記インターフェースを介して前記ストレージディスクに送信するステップであって、前記キーバリューパケットは、前記キーバリューデータを搬送する、ステップとを実行するように構成される、プロセッサとを備える、データ処理デバイス。

請求項12

前記メモリは、確定パーティションの総数Lを記録するようにさらに構成され、前記キーに従って、前記キーバリューデータに対応する確定パーティションのIDを計算するステップは、前記キーのハッシュ値を取得するために前記キーに対してハッシュ演算を行い、確定パーティションの前記総数Lに従って、モジュロ演算を前記ハッシュ値に対して行うステップであって、剰余は、前記確定パーティションの前記IDとして使用される、ステップを特に含む、請求項11に記載のデータ処理デバイス。

請求項13

前記メモリは、カレントパーティションの総数Tを記録するようにさらに構成され、前記確定パーティションの前記IDに対応するカレントパーティションのIDを計算するステップは、カレントパーティションの前記総数Tに従って、モジュロ演算を前記確定パーティションの前記IDに対して行うステップであって、剰余は、前記カレントパーティションの前記IDとして使用され、前記確定パーティションの前記IDは、0以上の整数である、ステップを特に含む、請求項11または12に記載のデータ処理デバイス。

請求項14

前記確定パーティションは、前記カレントパーティションのサブパーティションであるとともに、前記カレントパーティションの分割により取得される、請求項11に記載のデータ処理デバイス。

請求項15

前記キーバリューデータ内のキーを取得するステップの前に、前記プロセッサは、前記バリューを含むバリューセットを取得するために書き込み予定のデータを分割して、前記キーバリューデータを形成するために前記バリューの前記キーを生成するステップを実行するようにさらに構成される、請求項12に記載のデータ処理デバイス。

請求項16

コントローラによって実行されるパーティション管理方法であって、前記コントローラは、パーティション管理をクラスタ内のストレージディスクに対して行い、前記クラスタは、複数のストレージディスクを含み、前記方法は、N個の新規ストレージディスクが前記クラスタに追加されようとしていることを検出すると、前記クラスタ内のカレントストレージディスクの数量Mおよび前記クラスタ内のカレントパーティションの総数Tを獲得するステップであって、M、N、およびTは、すべての自然数である、ステップと、カレントパーティションの前記総数Tとストレージディスクの総数M+Nとの間の数学的関係が第1のプリセット条件を満たしているかどうかを決定するステップと、前記関係が前記第1のプリセット条件を満たす場合には、分割後に取得したパーティションの総数SがS>Tを満たすように、少なくとも1つの前記カレントパーティションを分割するステップと、前記分割後に取得した前記パーティションを前記M+N個のストレージディスクに割り振るステップであって、前記分割後に取得したパーティションの前記総数Sとストレージディスクの前記総数M+Nとの間の数学的関係は、第2のプリセット条件を満たし、前記分割後に取得したパーティションの前記総数は、前記クラスタがサポートする確定パーティションの総数Lより大きくなく、LおよびSの両方は、1より大きい自然数である、ステップとを含む、パーティション管理方法。

請求項17

カレントパーティションの前記総数Tとストレージディスクの総数M+Nとの間の数学的関係が第1のプリセット条件を満たすことは、T/(M+N)が第1の閾値未満であり、前記第1の閾値が自然数であることを指す、請求項16に記載の方法。

請求項18

前記第1の閾値は、10より大きく20未満である、請求項17に記載の方法。

請求項19

前記分割後に取得したパーティションの前記総数Sとストレージディスクの前記総数M+Nとの間の数学的関係が第2のプリセット条件を満たすことは、S/(M+N)が第2の閾値より大きく、前記第2の閾値が自然数であることを指す、請求項16に記載の方法。

請求項20

前記第2の閾値は、25より大きく50未満である、請求項19に記載の方法。

請求項21

前記カレントパーティションのIDは、0以上の整数であり、前記カレントパーティションのすべての前記パーティションIDのセットは、初項が0であり、項数がTであり、公差が1であり、等差数列であり、前記分割後に取得した前記パーティションのパーティションIDは、0以上の整数であり、前記分割後に取得した前記パーティションのすべての前記パーティションIDのセットは、初項が0であり、項数がSであり、公差が1であり、等差数列である、請求項16に記載の方法。

請求項22

パーティション管理をクラスタ内のストレージディスクに対して行うように構成される、パーティション管理装置であって、前記クラスタは、複数のストレージディスクを含み、前記装置は、N個の新規ストレージディスクが前記クラスタに追加されようとしていることを検出すると、前記クラスタ内のカレントストレージディスクの数量Mおよび前記クラスタ内の現在存在するパーティションの総数Tを獲得するように構成される、ストレージディスク検出モジュールであって、M、N、およびTは、すべての自然数である、ストレージディスク検出モジュールと、カレントパーティションの前記総数Tとストレージディスクの総数M+Nとの間の数学的関係が第1のプリセット条件を満たしているかどうかを決定するように構成される、第1のプリセット条件決定モジュールと、前記関係が前記第1のプリセット条件を満たす場合には、分割後に取得したパーティションの総数がSとなるように、少なくとも1つの前記カレントパーティションを分割し、前記分割後に取得した前記パーティションを前記M+N個のストレージディスクに割り振るように構成される、パーティション分割モジュールであって、前記分割後に取得したパーティションの前記総数Sとストレージディスクの前記総数M+Nとの間の数学的関係は、第2のプリセット条件を満たし、前記分割後に取得したパーティションの前記総数は、前記クラスタがサポートする確定パーティションの総数Lより大きくなく、LおよびSの両方は、1より大きい自然数である、パーティション分割モジュールとを備える、パーティション管理装置。

請求項23

カレントパーティションの前記総数Tが第1のプリセット条件を満たすことは、T/(M+N)が第1の閾値未満であり、前記第1の閾値が自然数であることを指す、請求項22に記載のパーティション管理装置。

請求項24

前記第1の閾値は、10より大きく20未満である、請求項23に記載のパーティション管理装置。

請求項25

前記分割後に取得したパーティションの前記総数Sとストレージディスクの前記総数M+Nとの間の数学的関係が第2のプリセット条件を満たすことは、S/(M+N)が第2の閾値より大きく、前記第2の閾値が自然数であることを指す、請求項22に記載のパーティション管理装置。

請求項26

前記第2の閾値は、25より大きく50未満である、請求項25に記載のパーティション管理装置。

請求項27

前記カレントパーティションのIDは、0以上の整数であり、前記カレントパーティションのすべての前記パーティションIDのセットは、初項が0であり、項数がTであり、公差が1であり、等差数列であり、前記分割後に取得した前記パーティションのパーティションIDは、0以上の整数であり、前記分割後に取得した前記パーティションのすべての前記パーティションIDのセットは、初項が0であり、項数がSであり、公差が1であり、等差数列である、請求項25に記載のパーティション管理装置。

請求項28

クラスタに接続されるとともに、パーティション管理を前記クラスタ内のストレージディスクに対して行うように構成される、パーティション管理デバイスであって、前記クラスタは、複数のストレージディスクを含み、前記パーティション管理デバイスは、パーティションビューを記憶するように構成される、メモリであって、前記パーティションビューは、カレントパーティションのIDとストレージディスクのアドレスとの間の対応付けを記録する、メモリと、外部インターフェースを提供するように構成される、インターフェースと、コンピュータプログラムを記憶するように構成される、コンピュータ可読媒体と、前記メモリ、前記インターフェース、および前記コンピュータ可読媒体に接続されるとともに、前記プログラムを動作することによって、前記インターフェースを使用して、N個の新規ストレージディスクが前記クラスタに追加されようとしていることを検出すると、前記クラスタ内のカレントストレージディスクの数量Mおよび前記クラスタ内の現在存在するパーティションの総数Tを獲得するステップであって、M、N、およびTは、すべての自然数である、ステップと、カレントパーティションの前記総数Tとストレージディスクの総数M+Nとの間の数学的関係が第1のプリセット条件を満たしているかどうかを決定するステップと、前記関係が前記第1のプリセット条件を満たす場合には、分割後に取得したパーティションの総数がSとなるように、少なくとも1つの前記カレントパーティションを分割して、前記分割後に取得した前記パーティションを前記M+N個のストレージディスクに割り振るステップであって、前記分割後に取得したパーティションの前記総数Sとストレージディスクの前記総数M+Nとの間の数学的関係は、第2のプリセット条件を満たし、前記分割後に取得したパーティションの前記総数は、前記クラスタがサポートする確定パーティションの総数Lより大きくなく、LおよびSの両方は、1より大きい自然数である、ステップとを実行するように構成される、プロセッサとを備える、パーティション管理デバイス。

請求項29

カレントパーティションの前記総数Tが第1のプリセット条件を満たすことは、T/(M+N)が第1の閾値未満であり、前記第1の閾値が自然数であることを指す、請求項28に記載のパーティション管理デバイス。

請求項30

前記第1の閾値は、10より大きく20未満である、請求項29に記載のパーティション管理デバイス。

請求項31

前記分割後に取得したパーティションの前記総数Sとストレージディスクの前記総数M+Nとの間の数学的関係が第2のプリセット条件を満たすことは、S/(M+N)が第2の閾値より大きく、前記第2の閾値が自然数であることを指す、請求項28に記載のパーティション管理デバイス。

請求項32

前記第2の閾値は、25より大きく50未満である、請求項31に記載のパーティション管理デバイス。

技術分野

0001

本出願は、データ処理技術に関し、詳細には、データ処理方法および装置に関する。

背景技術

0002

社会発展するにつれて、量が増加し続けるデータは、記憶および管理する必要があり、さらにマッシブデータとも称される。超大規模データを従来の集中型ストレージを用いて管理する場合には、効率的な読み込み/書き込み処理を提供することがほとんどできなくなり、優れた拡張性および高い可用性を満たすことがほとんどできない。

0003

こうした状況を背景に、各ストレージノードストレージ領域を提供し得る、複数の物理ストレージノードからなるストレージシステム出現している。本ストレージ方式を分散ストレージと称する。キーバリューストレージと称する分散ストレージ方式が存在する。キーバリューストレージにおいては、記憶されているデータ(または、データフラグメント)をバリュー(value)と称し、データの各部分は、ストレージシステム全体の範囲で一意な識別子を有し、本識別子キー(key)である。キーとバリューとは、一対一対応関係にある。

0004

キーおよびキーに対応するバリューを、概して、キーバリュー、略して、K-Vと称する。各キーバリューは、ストレージシステムのストレージディスク上に記憶される。分散ハッシュテーブル(DHT)技術においては、特定のキーバリューに関して、キーバリューが記憶されているストレージディスクを、マッピングルールを使用して決定し得る。このマッピングルールは、ハッシュ(hash)演算をキーに対して行うことによって生成されるハッシュ(Hash)値に基づいている、ここで、各キーバリューが1つのストレージディスクに対応するように、各ハッシュ値は1つのパーティションに属し、パーティションはストレージディスクに対応する。本方法に基づいて、2つの異なるキーの計算後のハッシュ値が同一である場合には、2つのキーに対応するキーバリューは、同一のストレージディスク上に記憶される。パーティションとストレージディスクとの間の対応付けをパーティションビューと称する。

0005

従来技術では、DHT技術を使用してキーに従って計算されたHash値は、例えば、[0, 2^32-1]の整数の範囲内に含まれる。システム初期化中には、各セグメントがサイズにおいて等しいまたはおおよそ等しい、セグメンテーションをこの大きな整数の範囲に対して行う。この場合には、1つのセグメントがパーティション(Partition)であり、パーティション内のハッシュ値の数量は基本的に同一である。ストレージディスククラスタ内のストレージディスクの数量が比較的小さい場合には、各ストレージディスクは、必要以上のパーティションを有し、パーティションビューが過度に複雑になることを引き起こし、その結果、パーティションビューに従ったデータパケット転送が非効率的になる。具体的な例は、以下の通りである。

0006

最大25,000個のストレージディスクをサポートするクラスタが存在すると仮定すると、最大数量のストレージディスクのケースでは、各ストレージディスクは、おおよそ100個のパーティションを有する。すなわち、クラスタ全体は、総計2,500,000個のパーティションを有する。各パーティション内の情報が4ビットのストレージ領域を占有していると仮定する。これらのパーティション内の情報は総計10MBのストレージ領域を占有することになり、パーティションビュー内の情報は10MBより大きくなる。

0007

パーティションビューを使用する場合には、大量のシステムリソースを占有することになる。

課題を解決するための手段

0008

本発明は、キーバリューデータを処理する際のシステムリソースの占有を低減することができる、データ処理方法および装置を提供している。

0009

第1の態様によれば、本発明は、パーティション管理デバイスに適用されるデータ処理方法を提供しており、パーティション管理デバイスは、パーティションビューを記憶し、パーティションビューは、カレントパーティションのIDとストレージディスクのアドレスとの間の対応付けを記録し、方法は、キーバリューデータ内のキーを取得して、キーに従って、キーバリューデータに対応する確定パーティションのIDを計算するステップであって、キーバリューデータは、バリューおよびバリューに一意に対応しているキーを含む、ステップと、確定パーティションのIDに対応するカレントパーティションのIDを計算するステップであって、各カレントパーティションのIDは、複数の確定パーティションのIDに対応している、ステップと、カレントパーティションのIDに対応するストレージディスクのアドレスを取得するために、パーティションビューを検索するステップと、ストレージディスクのアドレスを宛先アドレスとして使用することによってキーバリューパケットを生成して、キーバリューパケットをストレージディスクに送信するステップであって、キーバリューパケットは、キーバリューデータを搬送する、ステップとを含む。

0010

第2の態様によれば、本発明は、データ処理装置を提供しており、装置は、パーティションビューを記憶するように構成される、記憶モジュールであって、パーティションビューは、カレントパーティションのIDとストレージディスクのアドレスとの間の対応付けを記録する、記憶モジュールと、キーバリューデータ内のキーを取得して、キーに従って、キーバリューデータに対応する確定パーティションのIDを計算するように構成される、確定パーティション計算モジュールであって、キーバリューデータは、バリューおよびバリューに一意に対応しているキーを含む、確定パーティション計算モジュールと、確定パーティションのIDに対応するカレントパーティションのIDを計算するように構成される、カレントパーティション計算モジュールであって、各カレントパーティションのIDは、複数の確定パーティションのIDに対応している、カレントパーティション計算モジュールと、カレントパーティションのIDに対応するストレージディスクのアドレスを取得するために、記憶モジュールによって記憶されているパーティションビューを検索するように構成される、検索モジュールと、ストレージディスクのアドレスを宛先アドレスとして使用することによってキーバリューパケットを生成して、キーバリューパケットをストレージディスクに送信するように構成される、送信モジュールであって、キーバリューパケットは、キーバリューデータを搬送する、送信モジュールとを備える。

0011

第3の態様によれば、本発明は、データ処理デバイスを提供しており、データ処理デバイスは、パーティションビューを記憶するように構成される、メモリであって、パーティションビューは、カレントパーティションのIDとストレージディスクのアドレスとの間の対応付けを記録する、メモリと、外部インターフェースを提供するように構成される、インターフェースと、コンピュータプログラムを記憶するように構成される、コンピュータ可読媒体と、メモリ、インターフェース、およびコンピュータ可読媒体に接続されるとともに、プログラムを動作することによって、キーバリューデータ内のキーを取得して、キーに従って、キーバリューデータに対応する確定パーティションのIDを計算するステップであって、キーバリューデータは、バリューおよびバリューに一意に対応しているキーを含む、ステップと、確定パーティションのIDに対応するカレントパーティションのIDを計算するステップであって、各カレントパーティションのIDは、複数の確定パーティションのIDに対応している、ステップと、カレントパーティションのIDに対応するストレージディスクのアドレスを取得するために、パーティションビューを検索するステップと、ストレージディスクのアドレスを宛先アドレスとして使用することによってキーバリューパケットを生成して、キーバリューパケットをインターフェースを介してストレージディスクに送信するステップであって、キーバリューパケットは、キーバリューデータを搬送する、ステップとを実行するように構成される、プロセッサとを備える。

0012

第4の態様によれば、本発明は、コントローラによって実行されるパーティション管理方法を提供しており、コントローラは、パーティション管理をクラスタ内のストレージディスクに対して行い、クラスタは、複数のストレージディスクを含み、方法は、N個の新規ストレージディスクがクラスタに追加されようとしていることを検出すると、クラスタ内のカレントストレージディスクの数量Mおよびクラスタ内の現在存在するパーティションの総数Tを獲得するステップであって、M、N、およびTは、すべての自然数である、ステップと、カレントパーティションの総数Tとストレージディスクの総数M+Nとの間の数学的関係が第1のプリセット条件を満たしているかどうかを決定するステップと、関係が第1のプリセット条件を満たす場合には、分割後に取得したパーティションの総数がSとなるように、少なくとも1つのカレントパーティションを分割して、分割後に取得したパーティションをM+N個のストレージディスクに割り振るステップであって、分割後に取得したパーティションの総数Sとストレージディスクの総数M+Nとの間の数学的関係は、第2のプリセット条件を満たし、分割後に取得したパーティションの総数は、クラスタがサポートする確定パーティションの総数Lより大きくなく、LおよびSの両方は、1より大きい自然数である、ステップとを含む。

0013

第4の態様の第1の実施様態においては、パーティションビューを更新する処理がさらに実行される、ここで、パーティションビューは、カレントパーティションとIPディスクとの間の対応付けを記録する。

0014

第5の態様によれば、本発明は、パーティション管理をクラスタ内のストレージディスクに対して行うように構成される、パーティション管理装置を提供しており、クラスタは、複数のストレージディスクを含み、装置は、N個の新規ストレージディスクがクラスタに追加されようとしていることを検出すると、クラスタ内のカレントストレージディスクの数量Mおよびクラスタ内の現在存在するパーティションの総数Tを獲得するように構成される、ストレージディスク検出モジュールであって、M、N、およびTは、すべての自然数である、ストレージディスク検出モジュールと、カレントパーティションの総数Tとストレージディスクの総数M+Nとの間の数学的関係が第1のプリセット条件を満たしているかどうかを決定するように構成される、第1のプリセット条件決定モジュールと、関係が第1のプリセット条件を満たす場合には、分割後に取得したパーティションの総数がSとなるように、少なくとも1つのカレントパーティションを分割し、分割後に取得したパーティションをM+N個のストレージディスクに割り振るように構成される、パーティション分割モジュールであって、分割後に取得したパーティションの総数Sとストレージディスクの総数M+Nとの間の数学的関係は、第2のプリセット条件を満たし、分割後に取得したパーティションの総数は、クラスタがサポートする確定パーティションの総数Lより大きくなく、LおよびSの両方は、1より大きい自然数である、パーティション分割モジュールとを備える。

0015

第5の態様の第1の実施様態においては、パーティション分割モジュールは、パーティションビューを更新する処理を実行するようにさらに構成される、ここで、パーティションビューは、カレントパーティションとIPディスクとの間の対応付けを記録する。

0016

第6の態様によれば、本発明は、クラスタに接続されるとともに、パーティション管理をクラスタ内のストレージディスクに対して行うように構成される、パーティション管理デバイスを提供しており、クラスタは、複数のストレージディスクを含み、パーティション管理デバイスは、パーティションビューを記憶するように構成される、メモリであって、パーティションビューは、カレントパーティションのIDとストレージディスクのアドレスとの間の対応付けを記録する、メモリと、外部インターフェースを提供するように構成される、インターフェースと、コンピュータプログラムを記憶するように構成される、コンピュータ可読媒体と、メモリ、インターフェース、およびコンピュータ可読媒体に接続されるとともに、プログラムを動作することによって、インターフェースを使用して、N個の新規ストレージディスクがクラスタに追加されようとしていることを検出すると、クラスタ内のカレントストレージディスクの数量Mおよびクラスタ内の現在存在するパーティションの総数Tを獲得するステップであって、M、N、およびTは、すべての自然数である、ステップと、カレントパーティションの総数Tとストレージディスクの総数M+Nとの間の数学的関係が第1のプリセット条件を満たしているかどうかを決定するステップと、関係が第1のプリセット条件を満たす場合には、分割後に取得したパーティションの総数がSとなるように、少なくとも1つのカレントパーティションを分割して、分割後に取得したパーティションをM+N個のストレージディスクに割り振るステップであって、分割後に取得したパーティションの総数Sとストレージディスクの総数M+Nとの間の数学的関係は、第2のプリセット条件を満たし、分割後に取得したパーティションの総数は、クラスタがサポートする確定パーティションの総数Lより大きくなく、LおよびSの両方は、1より大きい自然数である、ステップとを実行するように構成される、プロセッサとを備える。

0017

第6の態様の第1の実施様態においては、プロセッサは、パーティションビューを更新する処理をさらに実行する、ここで、パーティションビューは、カレントパーティションとIPディスクとの間の対応付けを記録する。

0018

本発明の解決手法を使用することによって、パーティション管理デバイスは、キーバリューデータ転送を行うためにカレントパーティションを使用してもよい。カレントパーティションの数量が確定パーティションのもの未満であるため、リソース消費は、 確定パーティションが転送を行うために使用される従来技術における解決手法と比較して低減される。

図面の簡単な説明

0019

本発明による、ストレージシステムの実施形態のトポロジー図である。
本発明による、パーティション管理方法の実施形態のフローチャートである。
本発明による、コントローラの実施形態の構造図である。
本発明による、パーティション管理装置の実施形態の概略図である。
本発明による、データ処理方法の実施形態のフローチャートである。
本発明による、データ処理デバイスの実施形態の構造図である。
本発明による、データ処理装置の実施形態の概略図である。

実施例

0020

本発明の実施形態における添付の図面を参照して本発明の実施形態における技術的解決手法を以下に明確に説明する。説明した実施形態が本発明の実施形態のすべてではなく一部にすぎないことは明らかであろう。本発明の実施形態に基づいて得られる他の実施形態のすべては、本発明の保護範囲に含まれるものとする。

0021

図1に示したように、図1は、本発明の実施形態による、ストレージシステムのトポロジー図である。アプリケーションサーバ11は、管理サーバクラスタ12に接続されており、管理サーバクラスタ12は、スイッチクラスタ13に接続されており、スイッチクラスタ13は、IPディスククラスタ14に接続されており、コントローラ15は、管理サーバクラスタ12およびIPディスククラスタ14に接続されている。管理サーバクラスタ12は、少なくとも1つの管理サーバ121からなり、IPディスククラスタ14は、少なくとも1つのIPディスク141からなる。

0022

アプリケーションサーバ1は、データ読み込みコマンドまたはデータ書き込みコマンドを送信する。管理サーバ121は、例えば、分散オブジェクトプール(distribute object pool、DOP)であり、オブジェクトのインターフェースをアプリケーションサーバ11に提供している、ここで、オブジェクトは、非常に大きくてもよく、例えば、基本単位がGBであってもよい。

0023

オブジェクトが過度に大きい場合には、管理サーバ121は、オブジェクトを小さなセグメントに分割し得る。例えば、管理サーバ121は、オブジェクトを各々1MBのサイズを有するセグメントに分割し得る、ここで、各セグメントはバリューであり、各バリューはキーと呼ばれるタグを有する。管理サーバ121は、ハッシュ演算をキーに対して行い、計算後のハッシュ値とパーティションとのマッチングを行い得る。加えて、管理サーバ121は、パーティションビューをさらに記憶し得る、ここで、パーティションビューは、特にカレントパーティションのIDとIPディスクとの間の対応付けであり得る、IPディスクとパーティションとの間の対応付けを記録する。したがって、管理サーバは、各キーバリューに対応するIPディスクを探し出し得る。探し出されるIPディスクは、ターゲットディスクと称され、管理サーバ121は、ターゲットIPディスクのアドレスを宛先アドレスとして使用することによってIPパケットを生成して、IPパケットをスイッチクラスタ13に送信し得る。例えば、パーティションビューに記録されているコンテンツを表1に示す、ここで、iは自然数であり、mは1より大きい自然数である。

0024

0025

スイッチクラスタ13は、少なくとも1つのスイッチからなり、データ読み込みまたはデータ書き込み中に管理サーバ121とIPディスク141との間でデータを交換するために使用される。パーティションビューを検索する処理はまた、スイッチクラスタ13内のスイッチに委ねられ、スイッチクラスタ13内のスイッチによって実行されてもよい、すなわち、スイッチクラスタ13内のスイッチは、パーティションビューを記憶する。本シナリオにおいて、データをスイッチクラスタ3に送信する場合には、管理サーバ121は、IPパケットを使用せずに、キーバリューパケットと称し得る新規タイプのパケットを使用してもよい。キーバリューパケットとIPパケットとの間の違いは、キーバリューパケットの宛先アドレスが、キーを使用して、計算により取得したパーティション番号であり、パケットタイプフィールドが、IPパケットとキーバリューパケットとを区別するために使用される点だけであり、キーバリューパケットの他の部分は、IPパケットのそれと同一である。スイッチは、パーティション番号とIPディスクのアドレスとの間のマッピングテーブルを検索する、ここで、マッピングテーブルは、スイッチによって記憶され、宛先アドレスをパーティションに対応するIPディスクのアドレスに置換し、キーバリューパケットをIPパケットに変換するためにパケットタイプ修正し、その後、IPパケットを記憶するために対応するIPディスクに転送する。

0026

管理サーバ121においては、パーティションとIPディスクとの間の対応付けを記録する方式は、パーティション番号(パーティションIDとも称される)とIPディスクのアドレスとの間の対応付けを記録することであり得る。理解を容易にするために、対応付けの別の表現方法をすれば、パーティションは、IPディスクに属しており、さらに別の表現方法をすれば、IPディスクは、パーティションを所有している。

0027

パーティションは論理的な概念であり、パーティションはストレージ領域を所有しておらず、実際にデータを記憶しているのはIPディスクである。ただし、各パーティションは、対応するIPディスクを有し、データストレージプロセス間に、パーティションに対応するIPディスクが、実際のストレージを行うために、パーティションビューを検索することによって学習され得る。ユーザの視点からは、データは、パーティションに記憶されているように見える、したがって、ときには、我々は、パーティション内にデータを記憶することとして、パーティションに対応するIPディスク内のデータを記憶するプロセスを指すこともある。

0028

コントローラ15は、パーティションの総数を計算し、IPディスクに関する情報を獲得し、IPディスクとパーティションとの間の対応付けを確立し、各管理サーバにある対応付けを適宜更新するように構成される。対応付けは、パーティションビューとも称される。

0029

従来技術では、パーティションの総数が一定であるため、IPディスクの数量が増大するにつれて、各IPディスクに対応するパーティションは低減する。したがって、IPディスクの数量が比較的小さい場合には、各IPディスクは、必要以上のパーティションに対応することになる。例えば、背景技術における例では、25,000個のストレージディスクが存在する場合には、各ストレージディスクが100個のパーティションを有しており適切である、しかしながら、75個のストレージディスクが存在するケースでは、各ストレージディスクが33,333個のパーティションを有しており、このことは少なくとも以下の問題を生じ得るため、不適切である。

0030

(1)パーティションビューが、25,000個のストレージディスクが存在するケースにおける対応付けの数量と近似する、75×33,333=2,499,975個の対応付けを有するため、パーティションビューが、過度に複雑になる。パーティションビューを使用してIPパケットを転送する場合には、管理サーバは、パーティションビュー内の対応付けを読み出す必要がある。IPディスクの数量が小さい場合には、そのような大量の対応付けを読み出す必要があり、その結果、低転送効率となる。加えて、パーティションビューを周知する場合には、コントローラは、パーティションビューを各管理サーバに周知する必要があり、このことは、比較的大きな帯域幅を占有することになる。したがって、管理サーバの必要以上の処理リソースおよびストレージシステムの必要以上の帯域幅リソースを占有している。

0031

(2)データ信頼性を向上させるために、各パーティションは、別のIPディスク上にデュプリケートパーティションを有している、ここで、パーティションおよびそのデュプリケートパーティションは、異なるIPディスクに位置しているが、同一のデータを記憶している。本ケースを複数のデュプリケートと称する。パーティションBおよびパーティションCは、パーティションAのデュプリケートパーティションであると仮定する。パーティションAが位置しているIPディスク上にパケットが記憶されていると、パケットは、パーティションBが位置しているIPディスク上およびパーティションCが位置しているIPディスク上に、同時に、記憶されている。

0032

複数のデュプリケートのシナリオにおいて、障害がIPディスク上で発生していると仮定する。障害のあるストレージディスク内のデータは、データ信頼性を保証するために、デュプリケートを使用することによってリカバリされる必要がある。具体的には、障害のあるIPディスクがパーティションのうちのデュプリケートパーティションに関して検索され、デュプリケートパーティション内のデータがコピーされる、コピーされたデータは障害が生じていないIPディスク上に記憶されている。各IPディスク内に必要以上のパーティションが存在する場合には、これらのパーティションのデュプリケートパーティションの数量も非常に大きくなり、これらのデュプリケートパーティションが大量の他のIPディスクにあることになり得る。結果として、1つのIPディスクに障害があると、大量の他のIPディスクもデータリカバリに巻き込まれることになり、データリカバリの間、データリカバリに巻き込まれたこれらすべてのIPディスクのパフォーマンスに影響を及ぼす。

0033

(3) 複数のデュプリケートのシナリオにおいて、各IPディスクが必要以上の数量のパーティションを有する場合には、1つのIPディスクに対して、IPディスクのパーティションのデュプリケートが大量のIPディスクに散在することになる。デュプリケートを記憶しているIPディスクの数量が比較的大きいため、障害が複数のIPディスクで同時に発生する確率が増大し、それによって、データ信頼性を低下させてしまう。

0034

(4) 本発明の本実施形態は、親パーティションおよび確定パーティションの概念を導入している、ここで、確定パーティションの総数は一定である、このことは、従来技術におけるパーティショニングに類似している。親パーティションは、複数のサブパーティションに分割され得るし、サブパーティションを新規サブパーティションに分割し得る場合には、サブパーティションは、次の段階のサブパーティションの親パーティションである。クラスタ内のIPディスクの数量が増大すると、分割プロセスは、確定パーティションが分割により取得されるまで、継続し得る。この場合には、クラスタ全体が所有するパーティションの数量は、確定パーティションの総数に達する。

0035

従来技術では、ユーザにより見えるパーティションの数量とストレージシステム内部で管理されるパーティションの数量とが同一であることに留意されたい。どれほど多くのIPディスククラスタを所有していたとしてもパーティションの数量は一定であり、同時に、本発明の本実施形態では、ユーザに見えているものは、常に確定パーティションの数量である。ただし、親パーティションが確定パーティションに分割される前は、ストレージシステムは、親パーティションを使用して管理されている。すなわち、パーティションビューおよびパケット転送の両方は、親パーティションを使用して処理される。本発明の実施形態においては、特に断りのない限り、パーティションは、ストレージシステムによって管理されるパーティションを指す。

0036

クラスタ内に比較的少量のIPディスクが存在する場合には、適切な数量の親パーティションが各IPディスクに割り振られ、各IPディスクのマージしたパーティションの数量は、管理者によって指定またはシステムによって自動的に設定されてもよく、確定パーティションの数量によって制限されない。例えば、クラスタが75個のIPディスクを所有している場合には、各IPディスクは、100個の親パーティションに対応しており、75×100=7,500個のみの対応付けが、パーティションビュー内に存在することになる。クラスタが150個のIPディスクを所有しており、各親パーティションが2個のサブパーティションに分割されている場合には、各IPディスクは、100個のパーティションにいまだに対応しており、各パーティションが1つのデュプリケートを所有していると仮定すると、障害がIPディスク上で発生した場合には、影響を受ける他のIPディスクの数量は100以内に限定されることになるであろう。すなわち、本発明は、各IPディスクが所有するパーティションの数量が制御可能となるように、パーティションの数量のカスタマイズ実装し得る。本発明の本実施形態において提供した方法に基づいて、コントローラがパーティションビューを管理サーバクラスタ内の各管理サーバに送信する場合には、より小さい帯域幅が占有されることになる。加えて、対応付けのエントリの数量が低減された後は、管理サーバは、キー(key)に対応するストレージディスクのアドレスのクエリを行うことがより速くなる。

0037

アプリケーションサーバ1がデータを読み込むまたはデータを書き込む必要がある場合には、データは、順に管理サーバ21およびスイッチクラスタ3を通ってIPディスクに到達する。

0038

IPディスクは、記憶媒体として磁気ディスクまたはフラッシュメモリを使用し、ソフトウェア内にキーバリューインターフェースを提供し、ハードウェア内にイーサネット(登録商標)インターフェースを提供し、イーサネット(登録商標)インターフェースを介して受信したイーサネット(登録商標)フレーム展開してIPパケットを取得し得る。IPディスクは、例えば、シーゲートテクノロジーのKinetic製品である。

0039

本発明の本実施形態においては、キーバリューデータを記憶するためのメモリは、ストレージディスクと総称される。IPディスクに加えて、別の実施様態においては、ストレージディスクはまた、キーバリューインターフェースをサポートする別のストレージデバイスを使用し、ハードウェア内に非イーサネット(登録商標)インターフェースを使用してもよい。ストレージディスクによって使用される記憶媒体は、ハードディスクまたはフラッシュメモリであってもよい。

0040

図2は、本発明の実施形態によるパーティション管理方法を導入し、IPディスククラスタ内のIPディスクの数量が大きくなった場合に新たに追加されたIPディスクの要件を満たすようにパーティションの数量を増大する方法を説明している。本方法は、コントローラによって実行され、方法は、以下のステップを含む。

0041

ステップ21:クラスタがサポートするIPディスクの最大数量に従って、自然数である確定パーティションの数量Lを決定し、初期IPディスクの数量に従って、各IPディスクが所有する初期パーティションの数量を決定する。本ステップは、コントローラが初期化される際に実行される前置ステップであり、随意的なものである。加えて、各初期パーティションは、1つのストレージディスクに対応しており、本対応付けは、パーティションビューを使用することによって記録される。

0042

本ステップが実行された後に、コントローラは、初期IPディスクの数量をカレントIPディスクの数量Mとして記録し、各IPディスクが所有する初期パーティションの数量をカレントパーティションの数量Pとして記録する、ここで、クラスタ内の現在存在するパーティションの総数Tは、T=M・Pである。コントローラは、確定パーティションの数量Lをさらに記録する。その後に、クラスタ内のIPディスクの数量が変化または各IPディスクのパーティションの数量が変化した場合には、カレントIPディスクの数量Mおよびカレントパーティションの数量Pが更新される。本発明の実施形態においては、記号「・」は、積を表す。

0043

確定パーティションの数量は一定であり、確定パーティションは、分割することはできず、ユーザが知覚することができる。初期パーティションは、一般的に親パーティションであり、親パーティションは、分割により次の段階の親パーティションまたは確定パーティションを生成するために分割され得るパーティションである。親パーティションは、ストレージシステムによって使用され、ユーザは、親パーティションの存在を知覚することはできない。本発明の本実施形態においては、カレントパーティションは、現時点において管理サーバによって使用されるパーティションを指し、コントローラによって管理サーバに周知される。パーティションの分割が実行された場合には、カレントパーティションは、パーティション分割後に取得したパーティションである。カレントパーティションは、親パーティションであり得るし、または、確定パーティションを含み得る。

0044

Lの値は、ユーザによって設定され得るし、または、システムによって自動的に割り振られ得るし、IPディスクの最大数量およびIPディスクの数量が最大である場合の各IPディスクのパーティションの数量の両方によって一般的に決定される、すなわち、L=IPディスクの最大数量×各IPディスクのパーティションの数量である。X個のパーティションを所有することが各IPディスクにとって望ましい値であると仮定する。例えば、各IPディスクが100個のパーティションを所有すること、すなわち、X=100が比較的適切な値であるとユーザが考えたとすると、IPディスククラスタがサポートすることができるIPディスクの最大数量は10,000であり、その結果、L=10,000×100=1,000,000となる。

0045

同様に、初期パーティションの数量は、ユーザによって設定され得るし、または、システムによって自動的に割り振られ得る。1つの随意的な方式は、初期状況において、IPディスクの数量MがM=75であり、100個のパーティションが各IPディスクに割り振られていると仮定すると、その結果、初期パーティションの総数=75×100=7,500である。本発明の方法を使用することによって、初期段階では、ストレージシステム内の各IPディスクが所有するパーティションの数量を自由に設定してもよい、ここで、パーティションの数量は、ユーザの要求を満たすとともにパーティションがストレージリソース計算リソース、および帯域幅リソースなどの必要以上のリソースを占有しない値に設定され得る。

0046

各初期パーティションは、確定パーティションに対応している。各初期パーティションはIDを有し、IDの番号は0以上の整数である。各確定パーティションはIDを有し、番号は0以上の整数である。初期パーティションに対応する確定パーティションを取得するための方法は、確定パーティションのIDを使用して、モジュロ演算を初期パーティションの総数に対して行うことであり、剰余のバリューは、確定パーティションに対応する初期パーティションのIDを示す。この場合には、初期パーティションは、カレントパーティションである。

0047

ステップ22: N個の新規IPディスクがIPディスククラスタに追加されようとしていることを検出すると、クラスタ内のカレントストレージディスクの数量Mおよびクラスタ内の現在存在するパーティションの総数Tを獲得する、ここで、M、N、およびTは、すべての自然数である。

0048

コントローラは、IPディスククラスタに接続されており、したがって、クラスタに追加されようとしている新規IPディスクをコントローラによって検出することができる。現時点、既にM個のIPディスクが存在しており、カレントパーティションの総数は、M・Pである。N個のIPディスクは、物理的にクラスタに接続されており、コントローラによって検出され得るが、パーティションがIPディスクに割り振られていないためデータを記憶することはできない。

0049

「カレント」は本ステップが実行されようとしている時点を指すことに留意されたい。本実施形態においては、コントローラが初期化された後にIPディスクは追加されない、したがって、カレントIPディスクの数量はMである。別の実施形態においては、本ステップが実行される前にIPディスククラスタ内のIPディスクの数量が変化した場合には、カレントIPディスクの数量はMではない。本ステップが実行される前にパーティションが分割されていた場合には、各IPディスクによって現時点所有されている初期パーティションの数量はPより大きい。T個のパーティションが、M個のIPディスクにおおよそ均等に割り振られている。

0050

ステップ23:カレントパーティションの数量がカレントIPディスクおよび新たに追加されたIPディスクの共通の要件を満たしているかどうかを決定し、すなわち、カレントパーティションの総数Tとストレージディスクの総数M+Nとの間の数学的関係が第1のプリセット条件を満たしているかどうかを決定する。具体的には、決定は、式M・P/(M+N)と第1の閾値とを比較する方式で行われ得る、ここで、第1の閾値は、自然数であり、第1の閾値は、コントローラによってプリセットされていてもよい。コントローラが初期化された後の第1回目に本ステップが実行される場合には、T=M・Pである。必要に応じて、前述の第1の閾値は、16、17、18、または19などの10より大きく20未満の整数であり得る。

0051

1つの決定方法は、T/(M+N)が第1の閾値未満である場合には、第1のプリセット条件を満たしており、分割を行う必要がある。各IPディスクが所有するパーティションの数量が分割閾値未満である(または、分割閾値以下に設定され得る)場合には、分割を実行しなければ、各IPディスクが所有するパーティションの数量が過度に小さくなる、したがって、分割によりパーティションの総数を増大する必要があり、その結果、ステップ24が実行される。各IPディスクが所有するパーティションの数量が分割閾値未満ではない場合には、ステップ25が実行される。

0052

別の決定方法は、各IPディスクが所有するパーティションの平均数量が、1回目のパーティション分割後、閾値より大きい(または、閾値以上に設定され得る)場合には、分割を行えば、各IPディスクが所有するパーティションの数量が過度に大きくなることを示しており、その結果、ステップ25が実行される。各IPディスクが所有するパーティションの平均数量が閾値より大きくない場合には、ステップ24が実行される。加えて、2つの決定方法はまた、決定を行うように組み合わされてもよく、サービスに対して最も高い満足度を有する解決手法が選択される。以下の実施形態のすべては、第1の決定方法を例として使用することによって、本発明を説明している。

0053

ステップ24: 分割後に取得したパーティションの数量が要件を満たすまで、1回分割または複数回分割され得る少なくとも1つのカレントパーティションを分割する、その後、ステップ26を実行する。分割後に取得したパーティションの数量が要件を満たすということは、分割後に取得したパーティションの総数Sとストレージディスクの総数M+Nとの間の数学的関係が第2のプリセット条件を満たし、分割後に取得したパーティションの総数が確定パーティションの総数Lより大きくないということであり得る。複数回分割するということは、分割により生成したパーティションに対して複数回の分割を行うことを指す。

0054

分割後に取得したパーティションの総数Sとストレージディスクの総数M+Nとの間の数学的関係が第2のプリセット条件を満たすということは、特に、S/(M+N)が第2の閾値以上であり、第2の閾値が自然数であるということであり得る。第2の閾値は、例えば、25、26、27、48、または49などの25より大きく50未満の自然数であり得る。

0055

分割後に取得したパーティションの数量が要件を満たしているかどうかを決定するための様々な方式が存在し得る。例えば、分割後に取得したパーティションの総数Sとストレージディスクの総数M+Nとの間の数学的関係が第2のプリセット条件を満たす場合には、分割は終了する。具体的には、例えば、分割後の各IPディスクが所有するパーティションの平均数量が第2の閾値以上である場合には、第2のプリセット条件を満たしているとみなされ、分割は終了する。あるいは、分割後の各IPディスクが所有するパーティションの平均数量がプリセット閾値範囲を満たす場合には、要件を満たしているとみなす

0056

各回の分割において各パーティションを複数のサブパーティションに分割する場合には、各パーティションを同一の数量のサブパーティションに分割する。第1回目の分割から分割の終了までのパーティションの数量を変化させる倍率分割係数と称する。各親パーティションを各回の分割において2つのサブパーティションに分割すると仮定する。その結果、1回目の分割後に分割が終了した場合には、分割係数は2であり、2回目の分割後に分割が終了した場合には、分割係数は22である。

0057

少なくとも1つのカレントパーティションを分割することがすべてのカレントパーティションを分割することを指す場合には、分割後に取得したパーティションの総数S=T×分割係数である。少なくとも1つのカレントパーティションを分割することが一部のカレントパーティションを分割することを指す場合には、分割後に取得したパーティションの総数S分割方式における分割速度がより高く、後者の分割方式においては、分割後に取得したパーティションの総数の調整機能がより優れている。説明の便宜上、本発明の本実施形態を前者の分割方式を使用して説明する。

0058

後者の分割方法の例を以下に示す。確定パーティションの総数が1,000であり、カレントパーティションの総数が512であり、分割係数が2であると仮定すれば、各パーティションを分割すると、確定パーティションの総数を超過した、1,024個のパーティションが分割後に取得されることになる。カレントパーティションの総数が確定パーティションの総数より大きいことは認められない。このようなケースを避けるために、488個のカレントパーティションだけを分割し得る、つまり、488+512=1,000となる、すなわち、分割後に取得したカレントパーティションの総数は、1,000にちょうど達し、確定パーティションの総数より大きくならない。加えて、1,000個のカレントパーティションは過度に大きな数量であるとユーザが考えたとすると、例えば、分割後に取得したカレントパーティションの総数が800に達することが最も適切であるとユーザが考えたとすると、分割後に取得したカレントパーティションの総数が800にちょうど達するように、512個のカレントパーティションの288個のパーティションを分割係数2に従って分割し得る。後者の分割方法を使用して、1個のパーティションだけを毎回分割することであってもよく、分割係数が2である場合には、分割前後のカレントパーティションの総数の差は1であり、したがって、パーティションを分割するための粒度は最小である。

0059

加えて、前述の実施形態に基づいて、分割係数を変更してもよい。例えば、第1回目の分割中は、2が分割係数として使用されるが、第2回目の分割中は、分割係数が5に変更される。このことは、分割後に取得したパーティションの総数の値をより調整可能にする目的を達成することもできる。

0060

カレントパーティションと確定パーティションとの間に対応付けが存在しており、本対応付けは、コントローラに記憶され得るし、コントローラによって各管理サーバに周知され得る。各カレントパーティションはIDを有し、カレントパーティションのIDは0以上の整数であり得る。総計T個のカレントパーティションが存在しており、T個のカレントパーティションのIDは、初項が0であり、公差が1であり、項数がTである、等差数列を形成する。各確定パーティションはIDを有し、確定パーティションのIDは0以上の整数であり得る。総計S個の確定パーティションが存在しており、S個の確定パーティションのIDは、初項が0であり、差が1であり、項数がSである、等差数列を形成する。例えば、12個のパーティションを24個のパーティションに分割する、ここで、分割前のパーティションのIDは、0、1、2、3、...、9、10、および11であり、分割後のパーティションのIDは、0、1、2、3、...、21、22、および23である。

0061

パーティションを分割した後は、パーティションID生成ルールは、分割後に取得したパーティションにおいて、1つのパーティションがパーティションの元のIDを保持し、他のパーティションのIDの値およびパーティションの元のIDの値が等差数列を形成することであってもよい、ここで、数列の項は、分割前のパーティションの総数Mの公差で漸増する。例えば、分割前に総計200個のパーティションが存在しており、分割後には、各パーティションが3個のパーティションに分割され、IDが21であるパーティションの分割後に生成される3個のパーティションのIDは、順に221、421、および621である。全分割プロセスが終了した後に、カレントパーティションのIDが、初項が0であり、公差が1であり、漸増する、等差数列をさらに形成するならば、本ID生成ルールを変更してもよい。

0062

例えば、別のパーティションID生成ルールによれば、IDが0であるパーティションを分割することによって取得した3個のパーティションのIDは、0、201、および202でさらにあり得るし、IDが1であるパーティションを分割することによって取得したパーティションのIDは、1、203、および204であり、IDが3であるパーティションを分割することによって取得したパーティションのIDは、3、205、および206であり、他のパーティションのIDも同様に取得することができる。

0063

カレントパーティションの総数Sが確定パーティションの総数Lにまさに達しようとしている場合には、次のようなケースが生じ得る、すなわち、各パーティションを1回分割することによって生成されたパーティションの総数が確定パーティションの総数Lより大きい場合には、パーティションの総数が分割により増大され得るので、パーティションの総数が確定パーティションの総数Lを超過しないように、パーティションの一部のみが分割されるまたは分割係数が低減されることになり得ることに留意されたい。

0064

ステップ25: M・P個のパーティションがM+N個のIPディスクに均等に分布するように、元のM個のIPディスクが所有するパーティションの一部を新たに追加されたN個のIPに移行するべく、パーティション移行を行う。ステップ25が実行された後は、システム全体におけるパーティションの総数は変化しないので、各IPディスクが所有するパーティションの平均数量は低減する。ステップ24とステップ25とは二者択一的に実行される。パーティション管理方法のすべての実施形態においては、ステップ24が実行された後に、ステップ25またはステップ26は実行されない。

0065

ステップ26:コントローラに記録されているカレントIPディスクの総数をM+Nに更新し、カレントパーティションの総数をSに更新する。本ステップを、ステップ24と同時に実行してもよい。各IPディスクのカレントパーティションの数量はおおよそS/(M+N)である、したがって、パーティションの総数Sを記録しなくてもよく、その代わりに、クラスタ内の各IPディスクのカレントパーティションの数量がおおよそS/(M+N)であることを記録する。

0066

ステップ26は次回の分割のための準備であり、したがって、カレントパーティション管理処理にとって、ステップ26は必須のステップではない。

0067

S個のカレントパーティションをM+N個のIPディスクに割り振っていることに留意されたい。パーティションビューを更新する処理がさらに実行されてもよい、ここで、パーティションビューは、カレントパーティションに対応するIPディスクを記録しており、特にカレントパーティションのIDとIPディスクのアドレスとの間の対応付けであり得る。パーティションビューを更新する処理をステップ24またはステップ26で実行してもよい。以下のデータ処理方法は、本ステップで更新されたパーティションビューを使用してもよい。実際には、カレントパーティションとIPディスクとの間の対応付けが正しく記録された後のみパーティションを使用することができるため、本発明の別の実施形態においては、カレントパーティションに対する変化が引き起こされた場合には、パーティションビューを更新する処理が実行される必要がある。

0068

前述のパーティション管理方法が図3に示したハードウェアを使用して実行されてもよい。図3においては、コントローラ3は、インターフェース31、プロセッサ32、および記憶媒体33を備える。

0069

インターフェース31は、例えば、ストレージディスククラスタおよび管理サーバと接続するために、外部インターフェースを提供するように構成される。記憶媒体33は、コンピュータプログラムコードを記憶するように構成される。プロセッサ32は、記憶媒体33内のプログラムコードを動作することによって前述のパーティション管理方法を実行する。

0070

図4を参照すれば、本発明の実施形態は、パーティション管理装置4をさらに提供している、ここで、パーティション管理装置4は、ハードウェア、または、ソフトウェアによって形成された仮想ハードウェアであり得る。パーティション管理装置4は、前述のパーティション管理方法を実行し得る。パーティション管理装置4は、ストレージディスク検出モジュール41、第1のプリセット条件決定モジュール42、およびパーティション分割モジュール43を含む。必要に応じて、パーティション管理装置4は、初期化モジュール40をさらに備えていてもよい。必要に応じて、パーティション管理装置4は、更新モジュール44をさらに備えていてもよい。

0071

初期化モジュール40は、クラスタ内のIPディスクの最大数量に従って、自然数である確定パーティションの数量Lを決定し、初期IPディスクの数量に従って、各IPディスクが所有する初期パーティションの数量を決定するように構成される。本ステップは、コントローラが初期化される際にのみ実行される前置ステップである、したがって、随意的なものである。

0072

更新モジュール44は、初期IPディスクの数量をカレントIPディスクの数量Mとして記録し得るし、各IPディスクが所有する初期パーティションの数量をカレントパーティションの数量Pとして記録する、ここで、クラスタ内の現在存在するパーティションの総数Tは、T=M・Pである。更新モジュール44は、確定パーティションの数量Lをさらに記録する。その後に、クラスタ内のIPディスクの数量が変化または各IPディスクのパーティションの数量が変化した場合には、カレントIPディスクの数量Mおよびカレントパーティションの数量Pが更新される。本発明の実施形態においては、記号「・」は、積を表す。

0073

確定パーティションの数量は一定であり、確定パーティションは、分割することはできず、ユーザが知覚することができる。初期パーティションは、一般的に親パーティションであり、親パーティションは、分割により次の段階の親パーティションまたは確定パーティションを生成するために分割され得るパーティションである。親パーティションは、ストレージシステムによって使用され、ユーザは、親パーティションの存在を知覚することはできない。

0074

Lの値は、ユーザによって設定され得るし、または、システムによって自動的に割り振られ得るし、IPディスクの最大数量およびIPディスクの数量が最大である場合の各IPディスクの数量の両方によって一般的に決定される、すなわち、L=IPディスクの最大数量×各IPディスクのパーティションの数量である。X個のパーティションを所有することが各パーティションにとって望ましい値であると仮定する。例えば、各IPディスクが100個のパーティションを所有すること、すなわち、X=100が比較的適切な値であるとユーザが考えたとすると、IPディスククラスタがサポートすることができるIPディスクの最大数量は10,000であり、その結果、L=10,000×100=1,000,000となる。

0075

同様に、初期パーティションの数量は、ユーザによって設定され得るし、または、システムによって自動的に割り振られ得る。1つの随意的な方式は、初期状況において、IPディスクの数量MがM=75であり、100個のパーティションが各パーティションに割り振られていると仮定すると、その結果、初期パーティションの総数=75×100=7,500である。本発明の方法を使用することによって、初期段階では、ストレージシステム内の各IPディスクが所有するパーティションの数量を自由に設定してもよい、ここで、パーティションの数量は、ユーザの要求を満たすとともにパーティションがストレージリソース、計算リソース、および帯域幅リソースなどの必要以上のリソースを占有しない値に設定され得る。

0076

ストレージディスク検出モジュール41は、N個の新規ストレージディスクがクラスタに追加されようとしていることを検出すると、クラスタ内のカレントストレージディスクの数量Mおよびクラスタ内の現在存在するパーティションの総数Tを獲得するように構成される、ここで、M、N、およびTは、すべての自然数である。

0077

パーティション管理装置4は、IPディスククラスタに接続されており、したがって、クラスタに新たに追加されたIPディスクをストレージディスク検出モジュール41によって検出することができる。現時点、既にM個のIPディスクが存在しており、カレントパーティションの総数は、M・Pである。N個のIPディスクは、物理的にクラスタに接続されており、ストレージディスク検出モジュール41によって検出され得るが、パーティションがIPディスクに割り振られていないためデータを記憶することはできない。

0078

「カレント」は処理が実行されようとしている時点を指すことに留意されたい。本実施形態においては、パーティション管理装置4が初期化された後にIPディスクは追加されない、したがって、カレントIPディスクの数量はMである。別の実施形態においては、本ステップが実行される前にIPディスククラスタ内のIPディスクの数量が変化した場合には、カレントIPディスクの数量はMではない。本ステップが実行される前にパーティションが分割されていた場合には、各IPディスクによって現時点所有されている初期パーティションの数量はPより大きい。T個のパーティションが、M個のIPディスクにおおよそ均等に割り振られている。

0079

第1のプリセット条件決定モジュール42は、カレントパーティションの総数Tとストレージディスクの総数M+Nとの間の数学的関係が第1のプリセット条件を満たしているかどうかを決定するように構成される。

0080

カレントパーティションの数量がカレントIPディスクおよび新たに追加されたIPディスクの共通の要件を満たしているかどうかを決定する。すなわち、カレントパーティションの総数Tとストレージディスクの総数M+Nとの間の数学的関係が第1のプリセット条件を満たしているかどうかを決定する、ここで、決定は、式T/(M+N)と第1の閾値とを比較する方式で行われ得る。分割閾値は、コントローラによってプリセットされていてもよい。コントローラが初期化された後の第1回目に本処理が実行される場合には、T=M・Pである。第1の閾値は、16、17、18、19、または20などの10より大きく20未満の整数であり得る。

0081

1つの決定方法は、T/(M+N)が第1の閾値未満である場合には、第1のプリセット条件を満たしており、分割を行う必要がある。各IPディスクが所有するパーティションの数量が分割閾値未満である(または、分割閾値以下に設定され得る)場合には、分割を実行しなければ、各IPディスクが所有するパーティションの数量が過度に小さくなることを示しており、その結果、少なくとも1つのカレントパーティションを分割する必要がある。各IPディスクが所有するパーティションの数量が分割閾値未満ではない場合には、パーティション移行を行う必要がある。

0082

別の決定方法は、各IPディスクが所有するパーティションの平均数量が、1回目のパーティション分割後、閾値より大きい(または、閾値以上に設定され得る)場合には、分割を行えば、各IPディスクが所有するパーティションの数量が過度に大きくなることを示しており、その結果、パーティション移行を行う必要がある。各IPディスクが所有するパーティションの平均数量が閾値より大きくない場合には、少なくとも1つのカレントパーティションを分割する必要がある。加えて、2つの決定方法はまた、決定を行うように組み合わされてもよく、サービスに対して最も高い満足度を有する解決手法が選択される。以下の実施形態のすべては、第1の決定方法を例として使用することによって、本発明を説明している。

0083

パーティション分割モジュール43については、第1のプリセット条件決定モジュール42による決定の結果が、関係が第1のプリセット条件を満たしていることである場合には、パーティション分割モジュール43は、分割後に取得したパーティションの総数がSとなるように、少なくとも1つのカレントパーティションを分割し、分割後に取得したパーティションをM+N個のストレージディスクに割り振るように構成される。分割後に取得したパーティションの総数Sとストレージディスクの総数M+Nとの間の数学的関係は、第2のプリセット条件を満たし、分割後に取得したパーティションの総数は、クラスタがサポートする確定パーティションの総数Lより大きくなく、LおよびSの両方は、1より大きい自然数である。分割後に取得したパーティションは、M+N個のストレージディスクに均等に割り振られ得る、または、M+N個のストレージディスクにおおよそ均等に割り振られる。

0084

分割後に取得したパーティションの数量が要件を満たすまで、少なくとも1つのカレントパーティションは、1回分割され得る、または、複数回分割され得る。分割後に取得したパーティションの総数Sとストレージディスクの総数M+Nとの間の数学的関係が第2のプリセット条件を満たすということは、特に、S/(M+N)が第2の閾値以上であり、第2の閾値が自然数であるということであり得る。第2の閾値は、例えば、47、48、49、または50などの25より大きく50未満の自然数であり得る。

0085

分割後に取得したパーティションの数量が要件を満たしているかどうかを決定するための様々な方式が存在し得る。例えば、分割後に取得したパーティションの総数Sとストレージディスクの総数M+Nとの間の数学的関係が第2のプリセット条件を満たす場合には、分割は終了する。具体的には、例えば、分割後の各IPディスクが所有するパーティションの平均数量が第2の閾値以上である場合には、第2のプリセット条件を満たしているとみなされ、分割の継続は終了する。あるいは、分割後の各IPディスクが所有するパーティションの平均数量がプリセット閾値範囲を満たす場合には、要件を満たしているとみなす。

0086

各回の分割において各パーティションを複数のサブパーティションに分割する場合には、各パーティションを同一の数量のサブパーティションに分割する。第1回目の分割から分割の終了までのパーティションにおける変化の倍率を分割係数と称する。各親パーティションを各回の分割において2つのサブパーティションに分割すると仮定する。その結果、1回目の分割後に分割が終了した場合には、分割係数は2であり、2回目の分割後に分割が終了した場合には、分割係数は22である。

0087

少なくとも1つのカレントパーティションを分割することがすべてのカレントパーティションを分割することを指す場合には、分割後に取得したパーティションの総数S=T×分割係数である。少なくとも1つのカレントパーティションを分割することが一部のカレントパーティションを分割することを指す場合には、分割後に取得したパーティションの総数S分割方式における分割速度がより高く、後者の分割方式においては、分割後に取得したパーティションの総数の調整機能がより優れている。具体的な詳細については、パーティション管理方法の実施形態の説明を参照されたい。説明の便宜上、本発明の本実施形態を前者の分割方式を使用して説明する。

0088

後者の分割方法の例を以下に示す。確定パーティションの総数が1,000であり、カレントパーティションの総数が512であり、分割係数が2であると仮定すれば、各パーティションを分割すると、確定パーティションの総数を超過した、1,024個のパーティションが分割後に取得されることになる。カレントパーティションの総数が確定パーティションの総数より大きいことは認められない。このようなケースを避けるために、488個のカレントパーティションだけを分割し得る、つまり、488+512=1,000となる、すなわち、分割後に取得したカレントパーティションの総数は、1,000にちょうど達し、確定パーティションの総数の値より大きくならない。加えて、1,000個のカレントパーティションは過度に大きな数量であるとユーザが考えたとすると、例えば、分割後に取得したカレントパーティションの総数が800に達することが最も適切であるとユーザが考えたとすると、分割後に取得したカレントパーティションの総数が800にちょうど達するように、512個のカレントパーティションの288個のパーティションを分割係数2に従って分割し得る。後者の分割方法を使用して、1個のパーティションだけを毎回分割することであってもよく、分割係数が2である場合には、分割前後のカレントパーティションの総数の差は1であり、したがって、パーティションを分割するための粒度は最小である。

0089

加えて、前述の実施形態に基づいて、分割係数を変更してもよい。例えば、第1回目の分割中は、2が分割係数として使用されるが、第2回目の分割中は、分割係数が5に変更される。このことは、分割後に取得したパーティションの総数の値をより調整可能にする目的を達成することもできる。カレントパーティションと確定パーティションとの間に対応付けが存在しており、本対応付けは、更新モジュール44によって記憶され得るし、更新モジュール44によってデータ処理装置にさらに周知され得る。各カレントパーティションはIDを有し、カレントパーティションのIDは0以上の整数であり得る。すべてのカレントパーティションのIDは、初項が0であり、公差が1であり、等差数列を形成する。各確定パーティションはIDを有し、確定パーティションのIDは0以上の整数であり得る。すべての確定パーティションのIDは、初項が0であり、差が1であり、等差数列を形成する。例えば、12個のパーティションを24個のパーティションに分割する、ここで、分割前のパーティションのIDは、0、1、2、3、...、9、10、および11であり、分割後のパーティションのIDは、0、1、2、3、...、21、22、および23である。

0090

パーティションを分割した後は、パーティションID生成ルールは、分割後に取得したパーティションにおいて、1つのパーティションがパーティションの元のIDを保持し、他のパーティションのIDの値およびパーティションの元のIDの値が等差数列を形成することであってもよい、ここで、等差数列の項は、分割前のパーティションの総数Mの公差で漸増する。例えば、分割前に総計200個のパーティションが存在しており、分割後には、各パーティションが3個のパーティションに分割され、IDが21であるパーティションの分割後に生成される3個のパーティションのIDは、順に221、421、および621である。全分割プロセスが終了した後に、カレントパーティションのIDが、初項が0であり、公差が1であり、漸増する、等差数列をさらに形成するならば、本ID生成ルールを変更してもよい。

0091

カレントパーティションの総数Sが確定パーティションの総数Lにまさに達しようとしている場合には、次のようなケースが生じ得る、すなわち、各パーティションを1回分割することによって生成されたパーティションの総数が確定パーティションの総数Lより大きい場合には、パーティションの総数が分割により増大され得るので、パーティションの総数が確定パーティションの総数Lを超過しないように、パーティションの一部のみが分割されるまたは分割係数が低減されることになり得ることに留意されたい。

0092

更新モジュール44は、パーティション分割モジュール43の処理が実行された後に、パーティション管理装置4に記録されているカレントIPディスクの総数をM+Nに更新し、カレントパーティションの総数をSに更新するように構成される。各IPディスクのカレントパーティションの数量はおおよそS/(M+N)である、したがって、パーティションの総数Sを記録しなくてもよく、その代わりに、クラスタ内の各IPディスクのカレントパーティションの数量がおおよそS/(M+N)であることを記録する。

0093

更新モジュール44によって行われる処理は、次回の分割のための準備であり、したがって、このパーティション管理処理にとって、更新モジュール44は、必須のモジュールではない。

0094

必要に応じて、パーティション分割モジュール43または更新モジュール44は、パーティションビューに関する処理をさらに実行してもよい、ここで、パーティションビューは、IPディスクがカレントパーティションに対応していること、例えば、カレントパーティションのパーティションIDとIPディスクの対応するIPディスクアドレスとの間の対応付けを記録する。すなわち、パーティションビューは、M+N個のIPディスクのうちのどのIPディスクに、S個のカレントパーティションのうちの各パーティションが対応しているかを記録する。以下のデータ処理装置は、更新後のパーティションビューを使用し得る。

0095

必要に応じて、パーティション移行モジュール(図示せず)をさらに含んでいてもよい。パーティション分割が実行されなかった場合には、M・P個のパーティションがM+N個のIPディスクに均等に分布するように、パーティション移行モジュールが、M個の元のIPディスクが所有するパーティションの一部を新たに追加されたN個のIPに移行するべく、パーティション移行を行うために使用され得る。

0096

図5を参照すれば、本発明は、パーティション管理デバイスに適用されるデータ処理方法をさらに提供している。パーティション管理デバイスは、パーティションビューを記憶し、パーティションビューは、カレントパーティションのIDとストレージディスク(例えば、IPディスク)のアドレスとの間の対応付けを記録する。データ処理方法は、パーティション管理方法の後に実行され、パーティション管理方法に基づいている。しかしながら、2つの方法は、相対的に独立している。パーティション管理デバイスは、コントローラに接続されている。パーティション管理デバイスは、例えば、管理サーバまたはスイッチクラスタである。管理サーバを例として使用して以下に説明する。データ処理方法の実施形態を上述したパーティション管理方法において提供したパーティションビューに基づいて実行してもよい。パーティションビューは、コントローラによって生成され、記憶するためにパーティション管理デバイスクラスタ内のパーティション管理デバイスに送信される。

0097

ステップ51:書き込み予定のデータに従って、キーバリューデータを生成する。例えば、バリューを含むセットを取得するために書き込み予定のデータを分割し、キーバリューデータを形成するためにバリューのキーを生成する、ここで、キーバリューは、キーおよびキーに対応するバリューの組合せである。書き込み予定のデータの一部を複数のバリューに分割し得るため、それに対応して、複数のキーバリューを生成し得る。説明を簡潔にするために、特定のキーバリューのプロセスを以下のステップだけで説明する。

0098

書き込み予定のデータ、例えば、ファイルまたはデータストリームはアプリケーションサーバからのものである。書き込み予定のデータのサイズ(Size)が比較的大きい場合には、ストレージを容易にするために、管理サーバは、データを分割し得る。例えば、管理サーバは、データを各々1MBの等しいサイズのデータセグメントに分割し得るし、各セグメントをバリューと称する。キーは、バリューを一意に識別するために使用される。したがって、異なるバリューのキーは異なる。例えば、「データファイル名+数詞」をバリューのキーとして使用してもよい。比較的小さなサイズのデータを必ずしも分割する必要はなく、データのキーを直接生成し、その後、キーバリューデータを形成する。いくつかの特別なシナリオにおいては、大きなサイズのデータを必ずしも分割する必要はなく、対応するキーバリューデータは、直接形成され、その後、記憶するためにIPディスクに送信される。

0099

ステップ52:キーバリューデータ内のキーを取得し、キーに従って、キーバリューデータに対応する確定パーティションのIDを計算する。上述したように、キーバリューデータは、バリューおよびバリューに一意に対応しているキーを含む。

0100

確定パーティションのIDを計算するための方法は、キーのハッシュ値を取得するためにキーに対してハッシュ演算を行い、確定パーティションの総数Lに従って、モジュロ演算をハッシュ値に対して行うことであり、剰余は、確定パーティションのIDとして使用され、Lは、2以上の自然数である。このように、確定パーティションの取得したIDは、デジタル数である。別の実施形態においては、等価変換は、デジタル数を別の符号、例えば、英語表記の番号にマッピングすることであり、英語表記の番号を確定パーティションのIDとして使用している。確定パーティションに加えて、初期パーティションおよびカレントパーティションはまた、英語表記の番号を使用することによって表されてもよい。キーに対応する確定パーティションを計算する場合には、または、カレントパーティションと確定パーティションとの間の対応付けを計算する場合には、英語表記の番号をデジタル数に再マッピングしてもよく、「モジュロ」法を使用した数値形式のパーティションIDのように、マッピングにより取得したデジタル数をカウントする。本アルゴリズムにおける、確定パーティションの概念については、パーティション管理方法の前述の実施形態における説明を参照されたい。

0101

ステップ53:確定パーティションのIDに対応するカレントパーティションのIDを計算する、ここで、各カレントパーティションのIDは、複数の確定パーティションのIDに対応している。

0102

確定パーティションのカレントパーティションを計算するアルゴリズムは、カレントパーティションの総数Tに従って、モジュロ演算を確定パーティションのIDに対して行うことであり、剰余は、カレントパーティションのIDとして使用され、カレントパーティションの総数Tは、自然数である。同様に、カレントパーティションのIDは、デジタル数であり、等価変換は、カレントパーティションのIDとして、デジタル数を別の符号にマッピングすることである。カレントパーティションは、現時点においてIPディスククラスタが所有するパーティションを指し、各カレントパーティションは、1つのIPディスクに対応している。パーティション管理方法の前述の実施形態におけるカレントパーティションの説明を参照してもよい。確定パーティションは、カレントパーティションのサブパーティションである。

0103

このような事情かんがみて、カレントパーティションのIDと複数の確定パーティションのIDとの間に対応付けが存在する。対応付けに関する詳細については、パーティション管理方法の実施形態を参照されたい。カレントパーティションと確定パーティションとの間に対応付けが存在しており、本対応付けは、コントローラに記憶され得るし、ステップ53を実行する際に読み込まれる、または、対応付けは、事前に記憶されていなくてもよいし、ステップ53を実行する際にはアルゴリズムにしたがった計算により取得される。各カレントパーティションはIDを有し、カレントパーティションのIDは0以上の整数であり得る。すべてのカレントパーティションのIDのセットは、初項が0であり、公差が1であり、等差数列を形成する。各確定パーティションはIDを有し、確定パーティションのIDは0以上の整数であり得る。すべての確定パーティションのIDのセットは、初項が0であり、差が1であり、等差数列を形成する。カレントパーティションに対応する確定パーティションを取得するための方法は、確定パーティションのIDを使用して、モジュロ演算をカレントパーティションの総数に対して行うことであり、剰余のバリューは、確定パーティションに対応するカレントパーティションのIDとして使用される。

0104

加えて、パーティションを分割した後は、ID生成ルールは、分割後に取得したパーティションにおいて、1つのパーティションがパーティションの元のIDを保持し、他のパーティションのIDの値およびパーティションの元のIDの値が等差数列を形成することであってもよい、ここで、数列の項は、分割前のパーティションの総数の公差で漸増する。例えば、分割前に総計200個のパーティションが存在しており、分割後には、各パーティションが3個のパーティションに分割され、IDが21であるパーティションの分割後に生成される3個のパーティションのIDは、順に221、421、および621である。全分割プロセスが終了した後に、カレントパーティションのIDが、初項が0であり、公差が1であり、漸増する、等差数列をさらに形成するならば、本ID生成ルールを変更してもよい。例えば、IDが0であるパーティションを別の分割方法に従って分割する。分割後に取得した3個のパーティションのIDは、0、201、および202でさらにあり得るし、IDが1であるパーティションを分割することによって取得したパーティションのIDは、1、203、および204であり、IDが3であるパーティションを分割することによって取得したパーティションのIDは、3、205、および206であり、他のパーティションのIDも同様に取得することができる。

0105

ステップ54:カレントパーティションのIDに対応するストレージディスクのアドレスを取得するために、パーティションビューを検索する。

0106

パーティション管理デバイスは、パーティションビューを記憶し、パーティションビューは、カレントパーティションのIDとストレージディスクのアドレスとの間の対応付けを記録する。ストレージディスクがIPディスクである場合には、ストレージディスクのアドレスは、IPアドレスであり得る。ストレージディスクが、例えば、ATMまたはIPXプロトコルといった、別のタイプのプロトコルに基づく場合には、ストレージディスクのアドレスは、ATMアドレスまたはIPXアドレスである。

0107

ステップ55:ストレージディスクのアドレスを宛先アドレスとして使用することによってキーバリューパケットを生成して、キーバリューパケットをストレージディスクに送信する、ここで、キーバリューパケットのペイロードは、キーバリューデータを搬送する。

0108

キーバリューパケットを受信した後に、ストレージディスクは、キーバリューデータを記憶する。

0109

図6に示したように、図6は、本発明による、データ処理デバイスの実施形態である。データ処理デバイスは、パーティションビューを記憶するように構成される、メモリ61であって、パーティションビューは、カレントパーティションのIDとストレージディスクのアドレスとの間の対応付けを記録する、メモリ61と、外部インターフェースを提供するように構成される、インターフェース62と、コンピュータプログラムを記憶するように構成される、コンピュータ可読媒体63と、メモリ61、インターフェース62、およびコンピュータ可読媒体63に接続されるとともに、プログラムを動作することによって前述のデータ処理方法を実行するように構成される、プロセッサ64とを備える。
データ処理方法は、例えば、キーバリューデータ内のキーを取得して、キーに従って、キーバリューデータに対応する確定パーティションのIDを計算するステップであって、キーバリューデータは、バリューおよびバリューに一意に対応しているキーを含む、ステップと、確定パーティションのIDに対応するカレントパーティションのIDを計算するステップであって、各カレントパーティションのIDは、複数の確定パーティションのIDに対応している、ステップと、カレントパーティションのIDに対応するストレージディスクのアドレスを取得するために、パーティションビューを検索するステップと、ストレージディスクのアドレスを宛先アドレスとして使用することによってキーバリューパケットを生成して、キーバリューパケットをストレージディスクに送信するステップであって、キーバリューパケットは、キーバリューデータを搬送する、ステップを含む。

0110

図7に示したように、図7は、本発明の実施形態による、データ処理装置7の添付の図面である。データ処理装置7は、記憶モジュール71、確定パーティション計算モジュール6、カレントパーティション計算モジュール73、検索モジュール74、および送信モジュール75を備える。必要に応じて、データ処理装置7は、キーバリューデータ生成モジュール76をさらに備えていてもよい。

0111

記憶モジュール71は、パーティションビューを記憶するように構成され、パーティションビューは、カレントパーティションのIDとストレージディスクのアドレスとの間の対応付けを記録する。記憶モジュール71によって使用される記憶媒体は、フラッシュメモリまたはハードディスクであり得る。

0112

記憶モジュール71のパーティションビューは、パーティション管理装置、例えば、図4内のパーティション管理装置4からのものである。記憶モジュール71は、パーティションビューを受信するために、パーティション管理装置4に接続され得る。

0113

確定パーティション計算モジュール72は、キーバリューデータ内のキーを取得し、キーに従って、キーバリューデータに対応する確定パーティションのIDを計算するように構成される、ここで、キーバリューデータは、バリューおよびバリューに一意に対応しているキーを含む。

0114

確定パーティションのIDを計算するために確定パーティション計算モジュール72によって使用される方法は、キーのハッシュ値を取得するためにキーに対してハッシュ演算を行い、確定パーティションの総数Lに従って、モジュロ演算をハッシュ値に対して行うことであり、剰余は、確定パーティションのIDとして使用され、Lは、2以上の自然数である。このように、確定パーティションの取得したIDは、デジタル数である。別の実施形態においては、等価変換は、デジタル数を別の符号、例えば、英語表記の番号にマッピングすることであり、英語表記の番号を確定パーティションのIDとして使用している。確定パーティションに加えて、初期パーティションおよびカレントパーティションはまた、英語表記の番号を使用することによって表されてもよい。キーに対応する確定パーティションを計算する場合には、または、カレントパーティションと確定パーティションとの間の対応付けを計算する場合には、英語表記の番号をデジタル数に再マッピングしてもよく、「モジュロ」法を使用した数値形式のパーティションIDのように、マッピングにより取得したデジタル数をカウントする。確定パーティションの概念については、パーティション管理方法の前述の実施形態における説明を参照されたい。

0115

カレントパーティション計算モジュール73は、確定パーティションのIDに対応するカレントパーティションのIDを計算するように構成され、各カレントパーティションのIDは、複数の確定パーティションのIDに対応している。

0116

確定パーティションのIDに対応するカレントパーティションのIDを計算するためにカレントパーティション計算モジュール73によって使用される方法は、カレントパーティションの総数Tに従って、モジュロ演算を確定パーティションのIDに対して行うことであり、剰余は、カレントパーティションのIDとして使用され、カレントパーティションの総数Tは、自然数である。同様に、カレントパーティションのIDは、デジタル数であり、等価変換は、カレントパーティションのIDとして、デジタル数を別の符号にマッピングすることである。カレントパーティションは、現時点におけるIPディスククラスタが所有するパーティションを指し、各カレントパーティションは、1つのIPディスクに対応している。パーティション管理方法の前述の実施形態におけるカレントパーティションの説明を参照してもよい。確定パーティションは、カレントパーティションのサブパーティションである。

0117

このような事情にかんがみて、カレントパーティションのIDと複数の確定パーティションのIDとの間に対応付けが存在する。対応付けに関する詳細については、パーティション管理装置の実施形態を参照されたい。対応付けを生成した後に、パーティション管理装置は、対応付けを各データ処理装置に周知する。カレントパーティションと確定パーティションとの間に対応付けが存在しており、本対応付けは、カレントパーティション計算モジュール73に記憶され得る、または、対応付けは、事前に記憶されていなくてもよいし、カレントパーティション計算モジュール73によって計算により取得されてもよい。各カレントパーティションはIDを有し、カレントパーティションのIDは0以上の整数であり得る。すべてのカレントパーティションのIDのセットは、初項が0であり、公差が1であり、漸増する等差数列を形成し得る。各確定パーティションはIDを有し、確定パーティションのIDは0以上の整数であり得る。すべての確定パーティションのIDのセットは、初項が0であり、差が1であり、漸増する等差数列を形成する。例えば、12個のパーティションを24個のパーティションに分割する、ここで、分割前のパーティションのIDは、0、1、2、3、...、9、10、および11であり、分割後のパーティションのIDは、0、1、2、3、...、21、22、および23である。

0118

加えて、パーティションを分割した後は、ID生成ルールは、分割後に取得したパーティションにおいて、1つのパーティションがパーティションの元のIDを保持し、他のパーティションのIDの値およびパーティションの元のIDの値が等差数列を形成することであってもよい、ここで、数列の項は、分割前のパーティションの総数の公差で漸増する。例えば、分割前に総計200個のパーティションが存在しており、分割後には、各パーティションが3個のパーティションに分割され、IDが21であるパーティションの分割後に生成される3個のパーティションのIDは、順に221、421、および621である。全分割プロセスが終了した後に、カレントパーティションのIDが、初項が0であり、公差が1であり、漸増する、等差数列をさらに形成するならば、本ID生成ルールを変更してもよい。例えば、IDが0であるパーティションを別の分割方法に従って分割する。分割後に取得した3個のパーティションのIDは、0、201、および202でさらにあり得るし、IDが1であるパーティションを分割することによって取得したパーティションのIDは、1、203、および204であり、IDが3であるパーティションを分割することによって取得したパーティションのIDは、3、205、および206であり、他のパーティションのIDも同様に取得することができる。

0119

検索モジュール74は、カレントパーティションのIDに対応するストレージディスクのアドレスを取得するために、記憶モジュールによって記憶されているパーティションビュー71を検索するように構成される。

0120

パーティションビューは、カレントパーティションのIDとストレージディスクのアドレスとの間の対応付けを記録する。ストレージディスクがIPディスクである場合には、ストレージディスクのアドレスは、IPアドレスであり得る。ストレージディスクが別のタイプのプロトコルに基づく場合には、例えば、ATMまたはIPXプロトコル、ストレージディスクのアドレスは、ATMアドレスまたはIPXアドレスである。

0121

ストレージディスクのアドレスを宛先アドレスとして使用することによってキーバリューパケットを生成して、キーバリューパケットをストレージディスクに送信するように構成される、送信モジュール75、ここで、キーバリューパケットは、キーバリューデータを搬送する。

0122

次に、キーバリューパケットの宛先デバイスとして、ストレージディスクは、スイッチクラスタを使用して、キーバリューパケットを受信し、その後、キーバリューデータを記憶するように構成される。

0123

キーバリューデータ生成モジュール76は、キーバリューデータを生成するように構成される、例えば、バリューを含むセットを取得するために書き込み予定のデータを分割し、キーバリューデータを形成するためにバリューのキーを生成する、ここで、キーバリューは、キーおよびキーに対応するバリューの組合せである。書き込み予定のデータの一部を複数のバリューに分割し得るため、それに対応して、複数のキーバリューを生成し得る。説明を簡潔にするために、本発明の本実施形態は、特定のキーバリューの処理方式のみを説明する。

0124

書き込み予定のデータ、例えば、ファイルまたはデータストリームはアプリケーションサーバからのものである。書き込み予定のデータのサイズ(Size)が比較的大きい場合には、ストレージを容易にするために、管理サーバは、データを分割し得る。例えば、管理サーバは、データを各々1MBの等しいサイズのデータセグメントに分割し得るし、各セグメントをバリューと称する。キーは、バリューを一意に識別するために使用される。したがって、異なるバリューのキーは異なる。例えば、「データファイル名+数詞」をバリューのキーとして使用してもよい。比較的小さなサイズのデータを必ずしも分割する必要はなく、データは、キーバリューデータを生成するために、バリューとして直接使用される。いくつかの特別なシナリオにおいては、大きなサイズのデータを必ずしも分割する必要はなく、キーバリューデータを生成するために、バリューとして直接使用される。

0125

データ処理デバイス7がキーバリューデータ生成モジュール76を備える場合には、確定パーティション計算モジュール72は、キーバリューデータ生成モジュール76に接続され得るし、データ処理デバイス7がキーバリューデータ生成モジュール76を備えていない場合には、確定パーティション計算モジュール72は、キーバリューデータを外部インターフェースを介してアプリケーションサーバから直接取得し得る。

0126

本発明の各態様または各態様の可能な実施様態がシステム、方法、またはコンピュータプログラム製品として特に実装され得ることを当業者は理解できよう。したがって、本発明の各態様または各態様の可能な実施様態は、本明細書では「回路」、「モジュール」、または「システム」と一様に称する、ハードウェアのみの実施形態、ソフトウェアのみの実施形態(ファームウェア常駐ソフトウェアなどを含む)、またはソフトウェアとハードウェアとの組合せを用いた実施形態の形式を使用し得る。加えて、本発明の各態様または各態様の可能な実施様態は、コンピュータプログラム製品の形式をとっていてもよい、ここで、コンピュータプログラム製品は、コンピュータ可読媒体に記憶されているコンピュータ可読プログラムコードを指す。

0127

コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、光ファイバ、およびコンパクトディスクリードオンリーメモリ(CD-ROM)などの、電子磁気光学電磁気赤外線、ならびに半導体システムデバイス、または装置、または任意の適切なその組合せを含むが、それに限定されない。

0128

コンピュータ内のプロセッサは、プロセッサがフローチャート内の各ステップまたはステップの組合せで規定された機能および動作を実行することができるように、コンピュータ可読媒体に記憶されているコンピュータ可読プログラムコードを読み込み、装置は、ブロック図内の各ブロックまたはブロックの組合せで規定された機能および動作を実施するように生成される。

0129

11アプリケーションサーバ
12管理サーバクラスタ
13スイッチクラスタ
14 IPディスククラスタ
15コントローラ
121 管理サーバ
141 IPディスク
3 コントローラ
31インターフェース
32プロセッサ
33記憶媒体
4パーティション管理装置
40初期化モジュール
41ストレージディスク検出モジュール
42 第1のプリセット条件決定モジュール
43パーティション分割モジュール
44更新モジュール
6データ処理装置
61メモリ
62 インターフェース
63コンピュータ可読媒体
64 プロセッサ
7 データ処理装置
71記憶モジュール
72確定パーティション計算モジュール
73カレントパーティション計算モジュール
74検索モジュール
75送信モジュール
76キーバリューデータ生成モジュール

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ