(57)【特許請求の範囲】
【請求項１】
クラスタおよびクォーラム記憶装置により形成されたシステムに適用されるクラスタ・ブレイン分割後の調停処理方法であって、前記クラスタは少なくとも２つのクォーラム・ノードを含み、前記クラスタ内の前記少なくとも２つのクォーラム・ノードの１つは初期マスタ・クォーラム・ノードとして予め記録され、前記方法は、
前記クォーラム記憶装置により、リフレッシュ・パケット検出期間を開始するステップであって、前記リフレッシュ・パケット検出期間は反復実行される期間である、ステップと、
ブレイン分割が前記クラスタ内で行われた後、前記クォーラム記憶装置により、第１のリフレッシュ・パケット検出期間内に、前記クラスタ内の前記少なくとも２つのクォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を受信し、前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求が、前記初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むかどうかを判定するステップであって、前記第１のリフレッシュ・パケット検出期間は前記ブレイン分割が前記クラスタ内で発生した時点に対応するリフレッシュ・パケット検出期間である、ステップと、
前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求が、前記初期マスタ・クォーラム・ノードにより送信された前記マスタ・クォーラム・ノード・プリエンプション要求を含むと判定したとき、前記クォーラム記憶装置により、前記初期マスタ・クォーラム・ノードがマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードであると判定するステップと、
前記クォーラム記憶装置により、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに送信するステップと、
前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求が、前記初期マスタ・クォーラム・ノードにより送信された前記マスタ・クォーラム・ノード・プリエンプション要求を含まないと判定したとき、クォーラム記憶装置により、第２のリフレッシュ・パケット検出期間内に受信された第１のマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとして使用し、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに送信するステップであって、前記第２のリフレッシュ・パケット検出期間は前記第１のリフレッシュ・パケット検出期間に続くリフレッシュ・パケット検出期間である、ステップと、
を含む、方法。
【請求項２】
前記クォーラム記憶装置により、ブレイン分割が前記クラスタ内で行われた後、前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求が、前記初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むかどうかを判定するステップは特に、
前記ブレイン分割が前記クラスタで行われた後、前記クォーラム記憶装置により、前記第１のリフレッシュ・パケット検出期間内に受信された全てのマスタ・クォーラム・ノード・プリエンプション要求をキャッシュし、前記クォーラム記憶装置により、全ての前記キャッシュされたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが前記初期マスタ・クォーラム・ノードを含むかどうかを判定するステップ、
または
前記ブレイン分割が前記クラスタで行われた後、前記クォーラム記憶装置により、前記第１のリフレッシュ・パケット検出期間内に受信された各マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが前記初期マスタ・クォーラム・ノードであるかどうかを逐次的に判定するステップ
を含む、請求項１に記載の方法。
【請求項３】
前記クォーラム記憶装置が、前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求が、前記初期マスタ・クォーラム・ノードにより送信された前記マスタ・クォーラム・ノード・プリエンプション要求を含まないと判定した後、前記方法はさらに、
前記クォーラム記憶装置により、マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージを前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードの各々に送信し、その結果、前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードは新たなマスタ・クォーラム・ノード・プリエンプション要求を前記クォーラム記憶装置に再度送信する、ステップ
を含む、請求項１に記載の方法。
【請求項４】
前記クォーラム記憶装置により、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに送信した後、前記方法はさらに、
前記クォーラム記憶装置により、マスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードにより送信された第１のパーミッション制御メッセージを受信するステップであって、前記第１のパーミッション制御メッセージはマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに接続しない第１のカテゴリのクォーラム・ノードの識別子を含む、ステップと、
前記クォーラム記憶装置により、アクセス拒否通知メッセージを前記第１のカテゴリのクォーラム・ノードに送信して、ノード再開動作を実施するように前記第１のカテゴリのクォーラム・ノードに指示するステップと、
を含む、請求項１乃至３の何れか１項に記載の方法。
【請求項５】
前記クォーラム記憶装置により、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに送信した後、前記方法はさらに、
前記クォーラム記憶装置により、マスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードにより送信された第２のパーミッション制御メッセージを受信するステップであって、前記第２のパーミッション制御メッセージは、マスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに接続する第２のカテゴリのクォーラム・ノードの識別子を含む、ステップと、
前記クォーラム記憶装置により、マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを前記第２のカテゴリのクォーラム・ノードに送信して、マスタ・クォーラム・ノード・プリエンプション要求を前記クォーラム記憶装置に送信するのを停止するように前記第２のカテゴリのクォーラム・ノードに指示するステップと、
を含む、請求項１乃至４の何れか１項に記載の方法。
【請求項６】
前記クォーラム記憶装置により、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに送信した後、前記方法はさらに、
前記クォーラム記憶装置により、マスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードにより送信されたパーミッション制御メッセージを受信するステップであって、前記パーミッション制御メッセージは、前記クォーラム記憶装置に対する、前記少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードを除く別のクォーラム・ノードの識別子と、前記少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードを除く前記別のクォーラム・ノードのアクセス・パーミッションとを含み、前記アクセス・パーミッションは許可または拒否を含む、ステップと、
前記パーミッション制御メッセージに従って、前記クォーラム記憶装置により、通知メッセージを前記少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードを除く前記別のクォーラム・ノードに送信するステップと、
を含む、請求項１乃至３の何れか１項に記載の方法。
【請求項７】
アクセス・パーミッションが拒否である第１のカテゴリのクォーラム・ノードに対して、前記パーミッション制御メッセージに従って、前記クォーラム記憶装置により、通知メッセージを前記少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードを除く前記別のクォーラム・ノードに送信するステップは特に、
前記クォーラム記憶装置により、アクセス拒否通知メッセージを前記第１のカテゴリのクォーラム・ノードに送信して、ノード再開動作を実施するように前記第１のカテゴリのクォーラム・ノードに指示するステップ
を含む、請求項６に記載の方法。
【請求項８】
アクセス・パーミッションが許可である第２のカテゴリのクォーラム・ノードに対して、前記パーミッション制御メッセージに従って、前記クォーラム記憶装置により、通知メッセージを前記少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードを除く前記別のクォーラム・ノードに送信するステップは特に、
前記クォーラム記憶装置により、マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを前記第２のカテゴリのクォーラム・ノードに送信して、マスタ・クォーラム・ノード・プリエンプション要求を前記クォーラム記憶装置に送信するのを停止するように前記第２のカテゴリのクォーラム・ノードに指示するステップ
を含む、請求項６または７に記載の方法。
【請求項９】
前記クォーラム記憶装置により、アクセス拒否通知メッセージを前記第１のカテゴリのクォーラム・ノードに送信した後、前記方法はさらに、
前記クォーラム記憶装置により、ファイアウォール・ポリシを拒否に変更するために使用される通知メッセージを前記第１のカテゴリのクォーラム・ノードに送信するステップであって、ファイアウォール・ポリシを拒否に変更するために使用される前記通知メッセージは、前記第１のカテゴリのクォーラム・ノードのファイアウォール内のファイアウォール・ポリシを拒否に変更して、前記第１のカテゴリのクォーラム・ノードにより前記クォーラム記憶装置に送信されたマスタ・クォーラム・ノード・プリエンプション要求をブロックするように前記第１のカテゴリのクォーラム・ノードに指示するために使用される、ステップ
を含む、請求項４または７に記載の方法。
【請求項１０】
前記第１のカテゴリのクォーラム・ノードが前記再開動作を実施し、前記クラスタに再度参加した後、前記方法はさらに、
前記クォーラム記憶装置により、ファイアウォール・ポリシを許可に変更するために使用される通知メッセージを前記第１のカテゴリのクォーラム・ノードに送信して、前記第１のカテゴリのクォーラム・ノードの前記ファイアウォール内の前記ファイアウォール・ポリシを許可に変更して、前記第１のカテゴリのクォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション要求を前記クォーラム記憶装置に送信できるようにするように前記第１のカテゴリのクォーラム・ノードに指示するステップ
を含む、請求項９に記載の方法。
【請求項１１】
クラスタおよびクォーラム記憶装置により形成されたシステムに適用されるクラスタ内の調停処理のためのクォーラム記憶装置であって、前記クラスタは少なくとも２つのクォーラム・ノードを含み、前記クラスタ内の前記少なくとも２つのクォーラム・ノードの１つは初期マスタ・クォーラム・ノードとして予め記録され、前記クォーラム記憶装置は、
リフレッシュ・パケット検出期間を開始するように構成された開始ユニットであって、前記リフレッシュ・パケット検出期間は反復実行される期間である、開始ユニットと、
第１のリフレッシュ・パケット検出期間内に、ブレイン分割が前記クラスタ内で行われた後、前記クラスタ内の前記少なくとも２つのクォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を受信するように構成された受信ユニットであって、前記第１のリフレッシュ・パケット検出期間は前記ブレイン分割が前記クラスタ内で発生した時点に対応するリフレッシュ・パケット検出期間である、受信ユニットと、
前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求が、前記初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むかどうかを判定するように構成された判定ユニットと、
前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求が、前記初期マスタ・クォーラム・ノードにより送信された前記マスタ・クォーラム・ノード・プリエンプション要求を含むと判定されたとき、前記初期マスタ・クォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードであると判定するように構成された実行ユニットと、
マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに送信するように構成された送信ユニットと、
を備え、
前記実行ユニットはさらに、前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求が、前記初期マスタ・クォーラム・ノードにより送信された前記マスタ・クォーラム・ノード・プリエンプション要求を含まないと判定されたとき、第２のリフレッシュ・パケット検出期間内に受信された第１のマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとして使用するように構成され、前記第２のリフレッシュ・パケット検出期間は前記第１のリフレッシュ・パケット検出期間に続くリフレッシュ・パケット検出期間であり、
前記送信ユニットはさらに、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに送信するように構成される、
クォーラム記憶装置。
【請求項１２】
前記判定ユニットは特に、前記ブレイン分割が前記クラスタで行われた後、前記第１のリフレッシュ・パケット検出期間内に受信された全てのマスタ・クォーラム・ノード・プリエンプション要求をキャッシュし、全ての前記キャッシュされたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが前記初期マスタ・クォーラム・ノードを含むかどうかを判定するか、または、前記ブレイン分割が前記クラスタで行われた後、前記第１のリフレッシュ・パケット検出期間内に受信された各マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが前記初期マスタ・クォーラム・ノードであるかどうかを逐次的に判定するように構成される、
請求項１１に記載のクォーラム記憶装置。
【請求項１３】
前記実行ユニットはさらに、前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが前記初期マスタ・クォーラム・ノードを含まないと判定されたとき、マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージを生成するように構成され、
前記送信ユニットはさらに、前記マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージを前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードの各々に送信するように構成され、その結果、前記第１のリフレッシュ・パケット検出期間内に受信された前記マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードは新たなマスタ・クォーラム・ノード・プリエンプション要求を前記クォーラム記憶装置に再度送信する、
請求項１１に記載のクォーラム記憶装置。
【請求項１４】
前記受信ユニットはさらに、前記送信ユニットがマスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに送信した後、マスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードにより送信された第１のパーミッション制御メッセージを受信するように構成され、前記第１のパーミッション制御メッセージは、前記クラスタ内の前記少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに接続しない第１のカテゴリのクォーラム・ノードの識別子を含み、
前記実行ユニットはさらに、マスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードにより送信された前記第１のパーミッション制御メッセージに従ってアクセス拒否通知メッセージを生成するように構成され、
前記送信ユニットはさらに、前記アクセス拒否通知メッセージを前記第１のカテゴリのクォーラム・ノードに送信して、ノード再開動作を実施するように前記第１のカテゴリのクォーラム・ノードに指示するように構成される、
請求項１１乃至１３の何れか１項に記載のクォーラム記憶装置。
【請求項１５】
前記受信ユニットはさらに、前記送信ユニットがマスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに送信した後、マスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードにより送信された第２のパーミッション制御メッセージを受信するように構成され、前記第２のパーミッション制御メッセージは、前記少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに接続する第２のカテゴリのクォーラム・ノードの識別子を含み、
前記実行ユニットはさらに、マスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードにより送信された前記第２のパーミッション制御メッセージに従ってマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを生成するように構成され、
前記送信ユニットはさらに、前記マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを前記第２のカテゴリのクォーラム・ノードに送信して、マスタ・クォーラム・ノード・プリエンプション要求を前記クォーラム記憶装置に送信するのを停止するように前記第２のカテゴリのクォーラム・ノードに指示するように構成される、
請求項１１乃至１４の何れか１項に記載のクォーラム記憶装置。
【請求項１６】
前記受信ユニットはさらに、前記送信ユニットがマスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードに送信した後、マスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードにより送信されたパーミッション制御メッセージを受信するように構成され、前記パーミッション制御メッセージは、前記クォーラム記憶装置に対する、前記少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードを除く別のクォーラム・ノードの識別子と、前記少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードを除く前記別のクォーラム・ノードのアクセス・パーミッションとを含み、前記アクセス・パーミッションは許可または拒否を含み、
前記実行ユニットはさらに、前記パーミッション制御メッセージに従って通知メッセージを生成するように構成され、
前記送信ユニットはさらに、前記通知メッセージを前記少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功した前記クォーラム・ノードを除く前記別のクォーラム・ノードに送信するように構成され、
請求項１１乃至１３の何れか１項に記載のクォーラム記憶装置。
【請求項１７】
前記実行ユニットは特に、アクセス・パーミッションが拒否である第１のカテゴリのクォーラム・ノードに対するアクセス拒否通知メッセージを生成するように構成され、
前記送信ユニットは特に、前記アクセス拒否通知メッセージをアクセス・パーミッションが拒否である前記第１のカテゴリのクォーラム・ノードに送信して、ノード再開動作を実施するように前記第１のカテゴリのクォーラム・ノードに指示するように構成される、
請求項１６に記載のクォーラム記憶装置。
【請求項１８】
前記実行ユニットは特に、アクセス・パーミッションが許可である第２のカテゴリのクォーラム・ノードに対してマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを生成し、マスタ・クォーラム・ノード・プリエンプション要求を前記クォーラム記憶装置に送信するのを停止するように前記第２のカテゴリのクォーラム・ノードに指示するように構成され、
前記送信ユニットは特に、前記マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージをアクセス・パーミッションが許可である前記第２のカテゴリのクォーラム・ノードに送信するように構成される、
請求項１６または１７に記載のクォーラム記憶装置。
【請求項１９】
前記実行ユニットはさらに、前記送信ユニットが前記アクセス拒否通知メッセージを前記第１のカテゴリのクォーラム・ノードに送信した後、前記第１のカテゴリのクォーラム・ノードに対して、ファイアウォール・ポリシを拒否に変更するために使用される通知メッセージを生成するように構成され、ファイアウォール・ポリシを拒否に変更するために使用される前記通知メッセージは、前記第１のカテゴリのクォーラム・ノードのファイアウォール内のファイアウォール・ポリシを拒否に変更して、前記第１のカテゴリのクォーラム・ノードにより前記クォーラム記憶装置に送信されたマスタ・クォーラム・ノード・プリエンプション要求をブロックするように前記第１のカテゴリのクォーラム・ノードに指示するために使用され、
前記送信ユニットはさらに、ファイアウォール・ポリシを拒否に変更するために使用される前記通知メッセージを前記第１のカテゴリのクォーラム・ノードに送信するように構成される、
請求項１４または１７に記載のクォーラム記憶装置。
【請求項２０】
前記実行ユニットはさらに、前記第１のカテゴリのクォーラム・ノードが前記再開動作を実施し、前記クラスタに再度参加した後、前記第１のカテゴリのクォーラム・ノードに対して、ファイアウォール・ポリシを許可に変更するために使用される通知メッセージを生成するように構成され、ファイアウォール・ポリシを許可に変更するために使用される前記通知メッセージは、前記第１のカテゴリのクォーラム・ノードの前記ファイアウォール内の前記ファイアウォール・ポリシを許可に変更して、前記第１のカテゴリのクォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション要求を前記クォーラム記憶装置に送信できるようにするように前記第１のカテゴリのクォーラム・ノードに指示するために使用され、
前記送信ユニットはさらに、ファイアウォール・ポリシを許可に変更するために使用される前記通知メッセージを前記第１のカテゴリのクォーラム・ノードに送信するように構成される、
請求項１９に記載のクォーラム記憶装置。
【請求項２１】
クォーラム記憶装置であって、前記クォーラム記憶装置は、プロセッサ、メモリ、通信インタフェース、およびバスを備え、前記プロセッサ、前記メモリ、および前記通信インタフェースは前記バスを用いて互いと通信し、
前記通信インタフェースはクラスタ内の少なくとも２つのクォーラム・ノードと通信するように構成され、
前記メモリはプログラムを格納するように構成され、
前記記憶装置が実行したとき、前記プロセッサは、前記メモリに格納された前記プログラムを実行して請求項１乃至１０の何れか１項に記載の方法を実行するように構成される、
クォーラム記憶装置。
【請求項２２】
クラスタ・ブレイン分割後の調停処理システムであって、前記システムは、クラスタおよび請求項１１乃至２０の何れか１項に記載のクォーラム記憶装置を備え、前記クラスタは少なくとも２つのクォーラム・ノードを含み、前記クォーラム記憶装置は、前記クラスタ内の前記少なくとも２つのクォーラム・ノードの１つを初期マスタ・クォーラム・ノードに予め構成する、調停処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はクラウド・コンピューティング技術の分野に関し、特に、クラスタ・ブレイン分割後の調停処理方法、クォーラム記憶装置、およびシステムに関する。
【背景技術】
【０００２】
クラスタは２つまたはそれより多くのコンピュータにより形成され、各コンピュータは、クラスタ内のノード（Ｎｏｄｅ）と呼ばれる。ネットワークは故障する（例えば、ネットワーク内のスイッチは故障する）ので、クラスタが２つまたはそれより多くのノード・グループ（Ｎｏｄｅ  Ｇｒｏｕｐ）に分割されることもあり、この現象はブレイン分割（Ｂｒａｉｎ  Ｓｐｌｉｔ）と呼ばれる。当該ブレイン分割がクラスタ内で行われた後、分割された２つまたはそれより多くのノード・グループ内の各ノード・グループはハート・ビート情報またはリース情報を用いて別のノード・グループの存在を検出できず、結果として、当該ノード・グループが当該別のノード・グループ内のノードが故障していると考えるかもしれない。このように、当該ノード・グループ内のノードが同一の期間内に共有記憶リソース（例えば、記憶ディスク）へのアクセスを開始するかもしれず、これが、データ・アクセス・エラーを生じさせるかもしれない。この場合、クラスタ管理ソフトウェアは一般に、特定のアルゴリズムを用いて、どのノード・グループが勝ち、元のクラスタの動作を継続するかを調停する。故障したノード・グループ内のノードは、再開しクラスタに再参加する動作を実施する必要がある。
【０００３】
先行技術では、以下の方式を使用して上述の問題を解決する。即ち、クォーラム（Ｑｕｏｒｕｍ）ノードが投票するアルゴリズムが使用される。即ち、幾つかのノードがクラスタ内の全てのノードから選択され、クォーラム・ノードとして設定される。ブレイン分割が行われたとき、クラスタ内で生き残っているクォーラム・ノードの数はＮである。ブレイン分割が行われ元のクラスタが２つのノード・グループに分割されると、ノード・グループ内のノードが、別のノードのハート・ビート情報またはリース情報を検出することにより当該ノードおよび当該別のノードの間の接続を決定してもよい。当該検出に従って、ｎ個のクォーラム・ノードを含むノード・グループが第１のノード・グループを形成し、Ｎ−ｎ個のクォーラム・ノードを含む別のノード・グループが第２のノード・グループを形成すると判定される。当該２つのノード・グループ内の各クォーラム・ノードは当該クォーラム・ノードのノード・グループ内のクォーラム・ノードの数を検出でき、当該クォーラム・ノードのノード・グループ内のクォーラム・ノードの数がＲｏｕｎｄ（Ｎ／２）＋１（Ｒｏｕｎｄ（＊）は丸め関数である）を超えたと検出したとき、当該クォーラム・ノードのノード・グループが、ブレイン分割が行われた後のクラスタの主要な部分（即ち、ブレイン分割後に調停により決定されたマスタ・ノード・グループ）であると考える。当該ノード・グループはクラスタの動作を継続する。他のノード・グループ内のノードが、当該ノードのノード・グループ内のクォーラム・ノードの数がＲｏｕｎｄ（Ｎ／２）＋１未満であることを検出したとき、当該ノードはノード再開を実施し、動作し続けるノード・グループにより形成されたクラスタに再参加する。
【０００４】
本発明を実装するプロセスにおいて、先行技術は以下の問題、即ち、クラスタが３つまたはそれより多くのノード・グループに分割されるとき、各ノード・グループ内のクォーラム・ノードの数がＲｏｕｎｄ（Ｎ／２）＋１を超えることはできない（Ｎはクラスタ内で生き残っているクォーラム・ノードの総数であり、Ｎは正の整数である）ので、マスタ・ノード・グループを、クラスタの動作を継続するための調停を通じて決定できないという問題を有することが分かる。
【発明の概要】
【課題を解決するための手段】
【０００５】
これに鑑みて、本発明の諸実施形態では、クラスタ・ブレイン分割後の調停処理方法、クォーラム記憶装置、およびシステムを提供する。これらは、ブレイン分割後のクラスタ調停処理を効果的に実装でき、その結果、クラスタ・サービスが高速に復元される。
【０００６】
第１の態様によれば、クラスタおよびクォーラム記憶装置により形成されたシステムに適用される、クラスタ・ブレイン分割後の調停処理方法が提供される。クラスタは、少なくとも２つのクォーラム・ノードを含み、クラスタ内の少なくとも２つのクォーラム・ノードの１つは初期マスタ・クォーラム・ノードとして予め記録され、当該方法は、クォーラム記憶装置により、リフレッシュ・パケット検出期間を開始するステップであって、当該リフレッシュ・パケット検出期間は反復実行される期間である、ステップと、ブレイン分割がクラスタ内で行われた後、クォーラム記憶装置により、第１のリフレッシュ・パケット検出期間内に、クラスタ内の当該少なくとも２つのクォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を受信し、当該第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求が、当該初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むかどうかを判定するステップであって、当該第１のリフレッシュ・パケット検出期間は当該ブレイン分割がクラスタ内で行われた時点に対応するリフレッシュ・パケット検出期間である、ステップと、当該第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求が当該初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むと判定したとき、クォーラム記憶装置により、当該初期マスタ・クォーラム・ノードがマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードであると判定するステップと、クォーラム記憶装置により、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信するステップとを含む。
【０００７】
第１の態様を参照して、第１の可能な実装方式では、第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求が初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含まないと判定したとき、クォーラム記憶装置は、第２のリフレッシュ・パケット検出期間内に受信された第１のマスタ・クォーラム・ノード・プリエンプション要求を送信するクォーラム・ノードをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとして使用して、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信し、第２のリフレッシュ・パケット検出期間は第１のリフレッシュ・パケット検出期間に続くリフレッシュ・パケット検出期間である。
【０００８】
第１の態様または第１の態様の第１の可能な実装方式を参照して、第２の可能な実装方式では、クォーラム記憶装置により、ブレイン分割がクラスタ内で行われた後、初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求が第１のリフレッシュ・パケット検出期間内に受信されたかどうかを判定するステップは、特に、当該ブレイン分割がクラスタ内で行われた後、クォーラム記憶装置により、第１のリフレッシュ・パケット検出期間内に受信された全てのマスタ・クォーラム・ノード・プリエンプション要求をキャッシュし、クォーラム記憶装置により、全てのキャッシュされたマスタ・クォーラム・ノード・プリエンプション要求を送信するクォーラム・ノードが初期マスタ・クォーラム・ノードを含むかどうかを判定するステップ、または、ブレイン分割がクラスタ内で行われた後、クォーラム記憶装置により、第１のリフレッシュ・パケット検出期間内に受信された各マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが初期マスタ・クォーラム・ノードであるかどうかを逐次的に判定するステップを含む。
【０００９】
第１の態様の第１の可能な実装方式を参照して、第３の可能な実装方式では、クォーラム記憶装置が第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求が初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含まないと判定した後、当該方法はさらに、クォーラム記憶装置により、マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージを第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードの各々に送信し、その結果、第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードは新たなマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に再度送信する、ステップを含む。
【００１０】
第１の態様または第１の態様の第１乃至第３の可能な実装方式の何れか１つを参照して、第４の可能な実装方式では、クォーラム記憶装置により、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信した後、当該方法はさらに、クォーラム記憶装置により、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信された第１のパーミッション制御メッセージを受信するステップであって、第１のパーミッション制御メッセージは、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続しない第１のカテゴリのクォーラム・ノードの識別子を含む、ステップと、クォーラム記憶装置により、アクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信して、ノード再開動作を実施するように第１のカテゴリのクォーラム・ノードに指示するステップとを含む。
【００１１】
第１の態様または第１の態様の第１乃至第４の可能な実装方式の何れか１つを参照して、第５の可能な実装方式では、クォーラム記憶装置により、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信した後、当該方法はさらに、クォーラム記憶装置により、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信された第２のパーミッション制御メッセージを受信するステップであって、第２のパーミッション制御メッセージは、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続する第２のカテゴリのクォーラム・ノードの識別子を含む、ステップと、クォーラム記憶装置により、マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを第２のカテゴリのクォーラム・ノードに送信して、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止するように第２のカテゴリのクォーラム・ノードに指示するステップとを含む。
【００１２】
第１の態様または第１の態様の第１乃至第４の可能な実装方式の何れか１つを参照して、第６の可能な実装方式では、クォーラム記憶装置により、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信した後、当該方法はさらに、クォーラム記憶装置により、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信されたパーミッション制御メッセージを受信するステップであって、当該パーミッション制御メッセージは、クォーラム記憶装置に対する、少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードの識別子および当該少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードのアクセス・パーミッションを含み、当該アクセス・パーミッションは許可または拒否を含む、ステップと、当該パーミッション制御メッセージに従って、クォーラム記憶装置により、通知メッセージを当該少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードに送信するステップとを含む。
【００１３】
第１の態様の第６の可能な実装方式を参照して、第７の可能な実装方式では、アクセス・パーミッションが拒否である第１のカテゴリのクォーラム・ノードに対して、パーミッション制御メッセージに従って、クォーラム記憶装置により、通知メッセージを少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードに送信するステップは特に、クォーラム記憶装置により、アクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信して、ノード再開動作を実施するように第１のカテゴリのクォーラム・ノードに指示するステップを含む。
【００１４】
第１の態様の第６または第７の可能な実装方式を参照して、第８の可能な実装方式では、アクセス・パーミッションが許可である第２のカテゴリのクォーラム・ノードに対して、パーミッション制御メッセージに従って、クォーラム記憶装置により、通知メッセージを少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードに送信するステップは特に、クォーラム記憶装置により、マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを第２のカテゴリのクォーラム・ノードに送信して、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止するように第２のカテゴリのクォーラム・ノードに指示するステップを含む。
【００１５】
第１の態様の第４または第７の可能な実装方式を参照して、第９の可能な実装方式では、クォーラム記憶装置により、アクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信した後、当該方法はさらに、クォーラム記憶装置により、ファイアウォール・ポリシを拒否に変更するために使用される通知メッセージを第１のカテゴリのクォーラム・ノードに送信するステップであって、ファイアウォール・ポリシを拒否に変更するために使用される当該通知メッセージは、第１のカテゴリのクォーラム・ノードのファイアウォール内のファイアウォール・ポリシを拒否に変更して、第１のカテゴリのクォーラム・ノードによりクォーラム記憶装置に送信されたマスタ・クォーラム・ノード・プリエンプション要求をブロックするように第１のカテゴリのクォーラム・ノードに指示するために使用される、ステップを含む。
【００１６】
第１の態様の第９の可能な実装方式を参照して、第１０の可能な実装方式では、第１のカテゴリのクォーラム・ノードが再開動作を実施し、クラスタに再度参加した後、当該方法はさらに、クォーラム記憶装置により、ファイアウォール・ポリシを許可に変更するために使用される通知メッセージを第１のカテゴリのクォーラム・ノードに送信するステップであって、ファイアウォール・ポリシを許可に変更するために使用される当該通知メッセージは、第１のカテゴリのクォーラム・ノードのファイアウォール内のファイアウォール・ポリシを許可に変更して、第１のカテゴリのクォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信できるようにするように第１のカテゴリのクォーラム・ノードに指示するために使用される、ステップを含む。
【００１７】
第２の態様によれば、クラスタおよびクォーラム記憶装置により形成されたシステムに適用される、クラスタ・ブレイン分割後の調停処理のためのクォーラム記憶装置が提供される。クラスタは、少なくとも２つのクォーラム・ノードを含み、クラスタ内の当該少なくとも２つのクォーラム・ノードの１つは初期マスタ・クォーラム・ノードとして予め記録され、クォーラム記憶装置は、リフレッシュ・パケット検出期間を開始するように構成された開始ユニットであって、当該リフレッシュ・パケット検出期間は反復実行される期間である、開始ユニットと、第１のリフレッシュ・パケット検出期間内に、ブレイン分割がクラスタ内で行われた後、クラスタ内の当該少なくとも２つのクォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を受信するように構成された受信ユニットであって、第１のリフレッシュ・パケット検出期間はブレイン分割がクラスタ内で行われた時点に対応するリフレッシュ・パケット検出期間である、受信ユニットと、第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求が、初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むかどうかを判定するように構成された判定ユニットと、初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求が第１のリフレッシュ・パケット検出期間内に受信されたと判定されたとき、初期マスタ・クォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードであると判定するように構成された実行ユニットと、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信するように構成された送信ユニットとを備える。
【００１８】
第２の態様を参照して、第１の可能な実装方式では、当該実行ユニットはさらに、第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求が初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含まないと判定されたとき、第２のリフレッシュ・パケット検出期間内に受信された第１のマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとして使用するように構成される。第２のリフレッシュ・パケット検出期間は第１のリフレッシュ・パケット検出期間に続くリフレッシュ・パケット検出期間であり、当該送信ユニットはさらに、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信するように構成される。
【００１９】
第２の態様または第２の態様の第１の実装方式を参照して、第２の可能な実装方式では、当該判定ユニットは特に、ブレイン分割がクラスタ内で行われた後、第１のリフレッシュ・パケット検出期間内に受信された全てのマスタ・クォーラム・ノード・プリエンプション要求をキャッシュし、全てのキャッシュされたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが初期マスタ・クォーラム・ノードを含むかどうかを判定するか、または、ブレイン分割がクラスタ内で行われた後、第１のリフレッシュ・パケット検出期間内に受信された各マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが初期マスタ・クォーラム・ノードであるかどうかを逐次的に判定するように構成される。
【００２０】
第２の態様の第２の実装方式を参照して、第３の可能な実装方式では、当該実行ユニットはさらに、第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが、初期マスタ・クォーラム・ノードを含まないと判定されたとき、マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージを生成するように構成され、当該送信ユニットはさらに、当該マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージを第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードの各々に送信するように構成され、その結果、第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードは新たなマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に再度送信する。
【００２１】
第２の態様または第２の態様の第１乃至第３の実装方式の何れか１つを参照して、第４の可能な実装方式では、当該受信ユニットはさらに、当該送信ユニットがマスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信した後、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信された第１のパーミッション制御メッセージを受信するように構成される。第１のパーミッション制御メッセージは、クラスタ内の少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続しない第１のカテゴリのクォーラム・ノードの識別子を含み、当該実行ユニットはさらに、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信された第１のパーミッション制御メッセージに従ってアクセス拒否通知メッセージを生成するように構成され、当該送信ユニットはさらに、当該アクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信して、ノード再開動作を実施するように第１のカテゴリのクォーラム・ノードに指示するように構成される。
【００２２】
第２の態様または第２の態様の第１乃至第４の実装方式の何れか１つを参照して、第５の可能な実装方式では、当該受信ユニットはさらに、当該送信ユニットがマスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信した後、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信された第２のパーミッション制御メッセージを受信するように構成され、第２のパーミッション制御メッセージは、少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続する第２のカテゴリのクォーラム・ノードの識別子を含み、当該実行ユニットはさらに、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信された第２のパーミッション制御メッセージに従ってマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを生成するように構成され、当該送信ユニットはさらに、当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを第２のカテゴリのクォーラム・ノードに送信して、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止するように第２のカテゴリのクォーラム・ノードに指示するように構成される。
【００２３】
第２の態様または第２の態様の第１乃至第３の実装方式の何れか１つを参照して、第６の可能な実装方式では、当該受信ユニットはさらに、当該送信ユニットがマスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信した後、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信されたパーミッション制御メッセージを受信するように構成され、当該パーミッション制御メッセージは、クォーラム記憶装置に対する、少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードの識別子および当該少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードのアクセス・パーミッションを含み、当該アクセス・パーミッションは許可または拒否を含み、当該実行ユニットはさらに当該パーミッション制御メッセージに従って通知メッセージを生成するように構成され、当該送信ユニットはさらに、当該通知メッセージを当該少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードに送信するように構成される。
【００２４】
第２の態様の第６の実装方式を参照して、第７の可能な実装方式では、当該実行ユニットは特に、アクセス・パーミッションが拒否である第１のカテゴリのクォーラム・ノードに対するアクセス拒否通知メッセージを生成するように構成され、当該送信ユニットは特に、当該アクセス拒否通知メッセージをアクセス・パーミッションが拒否である第１のカテゴリのクォーラム・ノードに送信して、ノード再開動作を実施するように第１のカテゴリのクォーラム・ノードに指示するように構成される。
【００２５】
第２の態様の第６または第７の可能な実装方式を参照して、第８の可能な実装方式では、当該実行ユニットは特に、アクセス・パーミッションが許可である第２のカテゴリのクォーラム・ノードに対してマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを生成し、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止するように第２のカテゴリのクォーラム・ノードに指示するように構成され、当該送信ユニットは特に、当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージをアクセス・パーミッションが許可である第２のカテゴリのクォーラム・ノードに送信するように構成される。
【００２６】
第２の態様の第４または第７の可能な実装方式を参照して、第９の可能な実装方式では、当該実行ユニットはさらに、当該送信ユニットが当該アクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信した後、第１のカテゴリのクォーラム・ノードに対して、ファイアウォール・ポリシを拒否に変更するために使用される通知メッセージを生成するように構成され、ファイアウォール・ポリシを拒否に変更するために使用される当該通知メッセージは、第１のカテゴリのクォーラム・ノードのファイアウォール内のファイアウォール・ポリシを拒否に変更して、第１のカテゴリのクォーラム・ノードによりクォーラム記憶装置に送信されたマスタ・クォーラム・ノード・プリエンプション要求をブロックするように第１のカテゴリのクォーラム・ノードに指示するために使用され、当該送信ユニットはさらに、ファイアウォール・ポリシを拒否に変更するために使用される当該通知メッセージを第１のカテゴリのクォーラム・ノードに送信するように構成される。
【００２７】
第２の態様の第９の可能な実装方式を参照して、第１０の可能な実装方式では、当該実行ユニットはさらに、第１のカテゴリのクォーラム・ノードが再開動作を実施し、クラスタに再度参加した後、第１のカテゴリのクォーラム・ノードに対して、ファイアウォール・ポリシを許可に変更するために使用される通知メッセージを生成するように構成され、ファイアウォール・ポリシを許可に変更するために使用される当該通知メッセージは、第１のカテゴリのクォーラム・ノードのファイアウォール内のファイアウォール・ポリシを許可に変更して、第１のカテゴリのクォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信できるようにするように第１のカテゴリのクォーラム・ノードに指示するために使用され、当該送信ユニットはさらに、ファイアウォール・ポリシを許可に変更するために使用される当該通知メッセージを第１のカテゴリのクォーラム・ノードに送信するように構成される。
【００２８】
第３の態様によればクォーラム記憶装置が提供される。クォーラム記憶装置は、プロセッサ、メモリ、通信インタフェース、およびバスを備える。当該プロセッサ、当該メモリ、および当該通信インタフェースは当該バスを用いて互いと通信し、当該通信インタフェースはクラスタ内の少なくとも２つのクォーラム・ノードと通信するように構成され、当該メモリは、プログラムを格納するように構成され、当該記憶装置が実行したとき、当該プロセッサは、当該メモリに格納されたプログラムを実行して第１の態様の任意の可能な実装方式に従う方法を実行するように構成される。
【００２９】
第４の態様によれば、クラスタ・ブレイン分割後の調停処理システムが提供される。当該システムは、第２の態様または当該可能な実装方式の何れか１つに従うクラスタおよびクォーラム記憶装置を備え、クラスタは少なくとも２つのクォーラム・ノードを備え、クォーラム記憶装置は、クラスタ内の当該少なくとも２つのクォーラム・ノードの１つを初期マスタ・クォーラム・ノードに予め構成する。
【００３０】
クォーラム記憶装置が本発明の諸実施形態で設定される。クォーラム記憶装置が、クラスタ内の少なくとも２つのクォーラム・ノードの１つを初期マスタ・クォーラム・ノードとして事前に記録する。クォーラム記憶装置はリフレッシュ・パケット検出期間を開始する。当該リフレッシュ・パケット検出期間は反復実行される期間である。ブレイン分割がクラスタ内で行われた後、クォーラム記憶装置は、初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求が第１のリフレッシュ・パケット検出期間内に受信されたと判定する。第１のリフレッシュ・パケット検出期間はブレイン分割がクラスタ内で行われた時点に対応するリフレッシュ・パケット検出期間である。クォーラム記憶装置は、初期マスタ・クォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードであると判定し、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信する。上述の解決策では、クォーラム記憶装置が、初期マスタ・クォーラム・ノードのマスタ・クォーラム・ノード・プリエンプション要求を第１のリフレッシュ・パケット検出期間内に受信した後、クォーラム記憶装置は、初期マスタ・クォーラム・ノードを新たなマスタ・クォーラム・ノードとして使用し、これによりクラスタ復元プロセスにおいて、クラスタ・サービスが当該マスタ・クォーラム・ノードのスイッチに起因してハンドオーバされる問題を解決でき、それによりサービスの継続性が維持される。
【００３１】
本発明の諸実施形態における技術的解決策をより明確に説明するために、以下では、本発明の諸実施形態を説明するのに必要な添付図面を簡単に説明する。明らかに、以下の説明における添付図面は本発明の幾つかの実施形態を例示するにすぎず、当業者は、創造的努力なしにこれらの添付図面から他の図面を依然として導出することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の１実施形態に従うクラスタおよび記憶装置により形成されたクラスタ・システムのアーキテクチャの略図である。
【図２Ａ】本発明に従うブレイン分割後の調停処理方法の第１の実施形態の略図である。
【図２Ｂ】本発明に従うブレイン分割後の調停処理方法の第１の実施形態の略図である。
【図２Ｃ】本発明に従うブレイン分割後の調停処理方法の第１の実施形態の略図である。
【図３】本発明に従うブレイン分割後の調停処理方法の第２の実施形態の略図である。
【図４】本発明に従うクォーラム記憶装置の第１の実施形態の略ブロック図である。
【図５】本発明に従うクォーラム記憶装置の第２の実施形態の略ブロック図である。
【図６】本発明に従うノードの第１の実施形態の略ブロック図である。
【図７】本発明に従うノードの第２の実施形態の略ブロック図である。
【図８】本発明に従うブレイン分割後の調停処理システムの１実施形態の略ブロック図である。
【図９Ａ】本発明に従うブレイン分割後の調停処理方法の第３の実施形態の略図である。
【図９Ｂ】本発明に従うブレイン分割後の調停処理方法の第３の実施形態の略図である。
【図９Ｃ】本発明に従うブレイン分割後の調停処理方法の第３の実施形態の略図である。
【図１０】本発明に従うクォーラム記憶装置の第３の実施形態の略ブロック図である。
【発明を実施するための形態】
【００３３】
以下では、本発明の諸実施形態の添付図面を参照して本発明の諸実施形態における技術的解決策を明確かつ十分に説明する。明らかに、説明した実施形態は本発明の諸実施形態の一部であり全部ではない。当業者が創造的努力なしに本発明の諸実施形態に基づいて得る全ての他の実施形態は本発明の保護範囲の保護範囲に入るものとする。
【００３４】
一般に、プログラム・モジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装するために使用されるルーチン、プログラム、コンポーネント、データ構造、および別のタイプの構造を含む。さらに、当該実施形態を、ハンドヘルド装置、マルチプロセッサ・システム、マイクロプロセッサベースのまたはプログラム可能な消費者電子製品、小型コンピュータ、メインフレーム・コンピュータ、および同様なコンピュータ装置を含む、別のコンピュータ・システムにより実装してもよいことは当業者に理解されうる。当該実施形態を、通信ネットワークにより接続されたリモート処理装置によりタスクが実行される分散コンピューティング環境で実装してもよい。分散コンピューティング環境では、プログラム・モジュールを、ローカル・メモリまたはリモート・メモリのような記憶装置に配置してもよい。
【００３５】
当該実施形態を、コンピュータ実装されたプロセス、コンピューティング・システム、またはコンピュータ・プログラムを格納するコンピュータ記憶媒体として実装してもよい。コンピュータ・プログラムは、コンピュータ・システムまたはコンピュータ・プログラム製品により実行され例示的なプロセスの命令により形成される。例えば、当該コンピュータ可読記憶媒体を、揮発性コンピュータ・メモリ、不揮発性メモリ、ハード・ディスク・ドライブ、フラッシュ・ドライブ、フロッピ・ディスクまたはコンパクト・ディスク、または同様な媒体のうち１つまたは複数により実装してもよい。
【００３６】
本明細書では、「クラスタ（Ｃｌｕｓｔｅｒ）」という用語は、高速ネットワークを用いて相互接続された独立なコンピュータのグループを含み、当該コンピュータはグループを形成し、シングルシステム・モードで管理される。クラスタ内の各コンピュータは「ノード」と呼ばれる。
【００３７】
本明細書では、「ノード（Ｎｏｄｅ）」という用語は一般にネットワーク環境内で１つまたは複数のソフトウェア・プログラムを実行するために使用されるコンピューティング装置を指し、「ノード」を、ネットワーク内のサーバの１つまたは複数のコンピューティング装置で実行される仮想ノード（ソフトウェア・プログラム）として実装してもよい。特定の実装では、ノードが、物理マシン（Ｐｈｙｓｉｃａｌ  Ｍａｃｈｉｎｅ）または物理マシンにインストールされた仮想マシンであってもよい。
【００３８】
本明細書では、「ブレイン分割（Ｂｒａｉｎ  Ｓｐｌｉｔ）」という用語はネットワークが故障しているので、クラスタが２つまたはそれより多くのノード・グループ（Ｎｏｄｅ  Ｇｒｏｕｐ）に分割されることを指し、当該現象はブレイン分割と呼ばれる。
【００３９】
本明細書では、「ブレイン分割調停」という用語は一般に、クラスタ内でブレイン分割が行われた後、元のクラスタがノードにより形成された幾つかのノード・グループに分割されることを指し、クラスタ管理ソフトウェアは一般に、特定のアルゴリズムを用いて、当該幾つかのノード・グループ内のどのノード・グループがマスタ・ノード・グループとして使用されるかを判定し、マスタ・ノード・グループを決定するプロセスはブレイン分割調停プロセスと呼ばれる。
【００４０】
本明細書では、「マスタ・ノード・グループ（Ｍａｓｔｅｒ  Ｎｏｄｅ  Ｇｒｏｕｐ）」という用語は、ブレイン分割が行われた後、ブレイン分割後のノード・グループがブレイン分割調停方法に従って決定され、元のクラスタの動作を継続するために使用されることを指し、当該ノード・グループはマスタ・ノード・グループと呼ばれる。
【００４１】
本明細書では、「クォーラム・ノード（Ｑｕｏｒｕｍ  Ｎｏｄｅ）」という用語は、ブレイン分割がクラスタを（特にネットワーク・パーティションであってもよい）複数のノード・グループに分割させるとき、クラスタ内の特殊な機能を有する幾つかのノードは一般に判定に参加し、ブレイン分割調停を実施して、どのノード・グループが生き延びてクラスタ・サービスを提供し続けることができるかを判定し、他のノード・グループは故障と判定され、クラスタ・サービスを提供し続けることはできず、ブレイン分割調停に参加するこれらのノードはクォーラム・ノードと呼ばれる。一般に、クラスタ内の少数のノードのみがクォーラム・ノードと呼ばれる。クォーラム・ノードをシステムにより事前に構成してもよい。
【００４２】
本明細書では、「マスタ・クォーラム・ノード（Ｍａｓｔｅｒ  Ｑｕｏｒｕｍ  Ｎｏｄｅ）」という用語は、クラスタ内の複数のクォーラム・ノードの１つを指し、当該マスタ・クォーラム・ノードが配置されるノード・グループがマスタ・ノード・グループであると判定するために使用される。ブレイン分割がクラスタ内で行われたためクラスタが複数のノード・グループに分割されるとき、当該システムは当該マスタ・クォーラム・ノードを決定し、当該マスタ・クォーラム・ノードが配置されたノード・グループは、元のクラスタの動作を継続するためにマスタ・ノード・グループとして使用される。当該マスタ・クォーラム・ノードが決定された後、ネットワーク内のマスタ・クォーラム・ノードに接続するノードがハート・ビート（Ｈｅａｒｔ  Ｂｅａｔ）またはリース（Ｌｅａｓｅ）による検出を通じて取得され、当該ノードにより形成されるノード・グループは、ブレイン分割がクラスタ内で行われた後、クラスタのサービスを継続するためのマスタ・ノード・グループとして使用される。
【００４３】
本明細書では、「マスタ・クォーラム・ノード・プリエンプション要求」という用語は、ブレイン分割がクラスタ内で行われたときにクラスタ内のクォーラム・ノードにより生成され、マスタ・クォーラム・ノードにプリエンプトするためにクォーラム記憶装置に送信された要求を指す。当該要求は一般に当該クォーラム・ノードの識別子を含む。当該識別子が、クラスタ内の当該クォーラム・ノードのＩＰアドレスまたは数のようなマーキング方式であってもよい。
【００４４】
本明細書では、「クォーラム記憶装置」という用語は、調停機能を引き受け、マスタ・クォーラム・ノード選択プロセスにおけるマスタ・クォーラム・ノードを最終的に決定する記憶装置を指す。クォーラム記憶装置が調停機能を実施するとき、クォーラム記憶装置が、クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を受信し、マスタ・クォーラム・ノードを当該クォーラム・ノードから決定する。既存のアプリケーション・シナリオにおいて、記憶ディスクは、マスタ・クォーラム・ノードを決定するための調停装置として使用されるので、クォーラム記憶装置が指定される。調停機能を引き受け記憶に使用されない別の装置も「クォーラム記憶装置」の説明範囲に入ることは当業者には理解されうる。
【００４５】
本明細書では、「ファイアウォール（Ｆｉｒｅｗａｌｌ）」という用語は一般に、情報セキュリティを保証することを支援する装置が、特定のルールに従って、送信されたデータが当該装置を通過するのを許可または制限できることを指す。特定の実装では、当該ファイアウォールが、専用のハードウェアまたは汎用ハードウェアにインストールされた１組のソフトウェアであってもよい。
【００４６】
本明細書では、「ＩＯアクセス要求」という用語は一般に、記憶装置により受信され、当該記憶装置に格納されたデータを読むかまたは書くために使用される要求を指す。
【００４７】
本明細書では、「接続」という用語はネットワーク内の接続を指す。クラスタ内のノードが、ハート・ビート検出またはリース検出により、別のノードと当該ノードの間の接続を決定してもよい。ブレイン分割がクラスタ内で行われた後、元のクラスタが幾つかのノード・グループに分割される。同一のノード・グループ内のノードは、ハート・ビート検出またはリース検出により互いの存在を検出する。これは、当該２つのノードが互いと接続することを表す。異なるノード・グループ内のノードはハート・ビート検出またはリース検出により互いの存在を検出できない。これは、当該２つのノードが互いと接続しないことを表す。
【００４８】
本発明の諸実施形態のシステム・アーキテクチャ
本発明の諸実施形態を説明する前に、図１に示すように、クラスタ・ノードと記憶装置により形成されるクラスタ・システムのアーキテクチャの略図を先ず説明する。当該システムは、Ｎ個のノード（Ｎ≧１およびＮは整数である）により形成されるクラスタ１００であって、各ノードを物理ノード（例えば、サーバ）に展開してもよく、または、仮想ノード（例えば、仮想マシン）に展開してもよく、アプリケーションまたはクライアントにより送信されたデータ・アクセス要求を受信し、当該データ・アクセス要求を当該記憶装置に対するＩＯアクセス要求に変換する責任を負う、クラスタ１００と、Ｍ個の記憶装置（Ｍ≧１およびＭは整数である）により形成された記憶装置リソース・プール２００とを備える。各記憶装置を、記憶管理ソフトウェアと記憶媒体を含む記憶装置として理解してもよい。記憶装置リソース・プール２００内の当該Ｍ個の記憶装置は様々な方式で接続される。図１に示すＭ個の記憶装置はリング構造接続方式である（これは例示的な説明にすぎない）。実際の適用では、星型構造、バス構造、分散構造、ツリー構造、メッシュ構造、セルラ構造等があってもよく、詳細は本発明の当該実施形態では説明しない。当該記憶装置リソース・プール２００において、少なくとも１つの記憶装置をクォーラム記憶装置として使用してもよい。クォーラム記憶装置はクラスタ内のマスタ・クォーラム・ノードの識別子を格納するために使用され、当該識別子がクラスタ内のクォーラム・ノードのＩＰアドレス、数等であってもよい。
【００４９】
クラスタ１００内のノードおよび記憶装置リソース・プール２００内の記憶装置を直接接続するか、または、ネットワーク（図１では図示せず）を用いて接続してもよい。これらの接続方式は当業界で公知な技術に属するので、詳細は本発明の当該実施形態では説明しない。
【００５０】
クラスタ１００に含まれるＮ個のノード内のＰ（Ｐ≧２、Ｐは整数であり、Ｐ＜Ｎである）個のノードをクォーラム・ノードとして使用してもよく、これらのクォーラム・ノードは管理者または別のシステムにより当該ノードから選択され構成される。ブレイン分割がクラスタ内で行われると、当該Ｐ個のクォーラム・ノードは別々にマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信する。クォーラム記憶装置は、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードの識別子を記録し、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージを当該識別子に対応するクォーラム・ノードに送信する。当該応答メッセージは、マスタ・クォーラム・ノードのプリエンプションが成功したことを当該識別子に対応するクォーラム・ノードに通知するために使用される。
【００５１】
本発明の方法の実施形態
図２Ａ乃至図２Ｃは、クラスタ内でブレイン分割が行われた後にクォーラム記憶装置がブレイン分割調停を実装する第１の方法の実施形態を示す。当該方法の実施形態は、クラスタとクォーラム記憶装置により形成される、図１に示すシステムに適用される。図２Ａを参照すると、当該方法は以下を含む。
【００５２】
２０１：クォーラム記憶装置が、クラスタ内のマスタ・クォーラム・ノードの識別子を事前に記録する。
【００５３】
特定の実装では、クラスタが確立された後、クォーラム記憶装置は、記憶空間をクォーラム記憶装置またはサードパーティの記憶装置に設定して、マスタ・クォーラム・ノードの識別子および当該マスタ・クォーラム・ノードのステータスを記録してもよい。初期状態において、当該マスタ・クォーラム・ノードの識別子はヌル（ＮＵＬＬ）として記録され、当該マスタ・クォーラム・ノードのステータスはヌル（ＮＵＬＬ）または故障として記録される。クラスタが正常に動作を開始する前に、当該マスタ・クォーラム・ノードを管理者による初期設定により指定してもよい。クラスタが正常に動作を開始した後、当該初期設定されたマスタ・クォーラム・ノードが定期的にリフレッシュ・パケットをクォーラム記憶装置に送信してもよい。当該リフレッシュ・パケットは当該マスタ・クォーラム・ノードの識別子を含み、当該識別子が特にクラスタ内の当該マスタ・クォーラム・ノードのＩＰアドレス、数等であってもよい。クォーラム記憶装置がまた、リフレッシュ・パケット検出期間を設定して、当該マスタ・クォーラム・ノードがリフレッシュ・パケットを送信するかどうかを検出してもよい。リフレッシュ・パケット検出期間では、クォーラム記憶装置は様々なケースに従う以下の処理を実施する。
【００５４】
Ａ：リフレッシュ・パケットがリフレッシュ・パケット検出期間内に受信されなかった場合、ノードの記録されたステータスは故障に変更される。当該リフレッシュ・パケットが当該リフレッシュ・パケット検出期間内に受信されなかった場合、クォーラム記憶装置は当該マスタ・クォーラム・ノードが故障であると考えてもよく、レコード内の当該マスタ・クォーラム・ノードのステータスを故障に変更する。
【００５５】
Ｂ：マスタ・クォーラム・ノードにより送信されたリフレッシュ・パケットが最初に受信されると、クォーラム記憶装置が、当該マスタ・クォーラム・ノードの識別子を記録し、レコード内の当該マスタ・クォーラム・ノードのステータスを「正常」に変更してもよい。
【００５６】
Ｃ：当該マスタ・クォーラム・ノードにより送信されたリフレッシュ・パケットを受信するのが初めてではない場合、以下の２つのケースが含まれる。
【００５７】
Ｃ１：当該リフレッシュ・パケットで運搬される識別子が当該ノードの記録された識別子と同じであり、当該マスタ・クォーラム・ノードの記録されたステータスが正常であることが検出されたとき、これは現在のクラスタ内の当該マスタ・クォーラム・ノードが正常であることを示し、クォーラム記憶装置は当該記録された識別子に動作を実施しない。
【００５８】
Ｃ２：当該リフレッシュ・パケットで運搬される識別子が当該ノードの記録された識別子と同じであるが、当該マスタ・クォーラム・ノードの記録されたステータスがヌルかまたは故障であることが検出されたとき、クォーラム記憶装置はレコード内の当該ノードのステータスを正常に変更する。この場合、２つのアプリケーション・シナリオがあってもよい。１つのシナリオはクラスタ再開である。この場合、全てのノードが再開され、元のマスタ・クォーラム・ノードは、クラスタ再開の後、リフレッシュ・パケット検出期間内にリフレッシュ・パケットを送信できず、当該マスタ・クォーラム・ノードの記録されたステータスは故障に変更される。当該他のシナリオは、元のクォーラム・ノードにより送信されたリフレッシュ・パケットが失われ、クォーラム記憶装置が検出期間内にリフレッシュ・パケットを受信できない場合、クォーラム記憶装置が当該マスタ・クォーラム・ノードの記録されたステータスを故障に変更するというものである。
【００５９】
２０３：ブレイン分割が行われたことが検出された後、各ノード・グループ内の各クォーラム・ノードは、マスタ・クォーラム・ノード・プリエンプション要求を生成し、当該マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信する。
【００６０】
特定の実装では、１つのマスタ・クォーラム・ノードのプリエンプション機構が各クォーラム・ノードに対して設定されてもよい。即ち、ブレイン分割が行われたとクォーラム・ノードが検出した後、当該クォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション要求を生成し、当該マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信してもよい。当該マスタ・クォーラム・ノード・プリエンプション要求は当該クォーラム・ノードの識別子を含み、当該クォーラム・ノードの識別子が複数の実装方式、例えば、当該クォーラム・ノードのＩＰアドレス（例えば、１０．１１．２０１．１２）またはクラスタ内のクォーラム・ノードの一意な識別子（例えば、数字００１０）、または別の実装方式を有してもよく、これは本発明の当該実施形態では限定されない。
【００６１】
ブレイン分割が行われたことが検出された後、マスタ・クォーラム・ノード・プリエンプション要求を生成し送信したクォーラム・ノードは現在生き残っているクォーラム・ノードであり、これらの故障（例えば、シャットダウン）したクォーラム・ノードはマスタ・クォーラム・ノード・プリエンプション要求を生成も送信もできないことに留意すべきである。特定の実装では、マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが全てのクォーラム・ノードであってもよく、または、クラスタ内の幾つかのクォーラム・ノードであってもよい。
【００６２】
特定の実装では、各クォーラム・ノードが、リース検出またはハート・ビート検出により、ブレイン分割が行われたことを検出してもよい。リース検出およびハート・ビート検出を使用してノード間の接続を検出してもよいことに留意すべきである。
【００６３】
（１）リース（Ｌｅａｓｅ）ベースの検出方法
【００６４】
当該方法では、クラスタ内の各ノードを定期的に、リースのためにリース・マネージャ（Ｌｅａｓｅ  Ｍａｎａｇｅｒ）に適用してもよい。当該リース・マネージャはノードごとに、当該ノードにより所有されるリースのレコードを維持する。当該ノードがリースを取得した時刻が記録される。リース・マネージャがリース要求を各ノードから受信するたびに、リース・マネージャは、当該ノードにより取得されたリースの最新情報を反映するためにレコードを更新する。リース・マネージャが指定期間（リース期間、Ｌｅａｓｅ  Ｄｕｒａｔｉｏｎ）内にノードのリース延長要求を受信しない場合、リース・マネージャは当該ノードのステータスをアクティブに検出してもよい（例えば、ピングにより、当該ノードが故障しているかどうかまたは当該ノードのネットワーク接続ステータスが故障であるかどうかを検出する）。リース・マネージャが複数回連続して当該ノードのステータスを検出しない（例えば、当該ノードがピング・データパケットに応答しない）場合、リース・マネージャは、当該ノードが故障していると考え、当該ノードが故障していることを示す通知をクラスタ内の別のノードに送信する。ノード・グループ内の全てのノードが故障であることを示す通知を当該クォーラム・ノードが受信した場合、当該クォーラム・ノードが、ブレイン分割がクラスタ内で行われたと判定してもよい。
【００６５】
（２）ハート・ビート（Ｈｅａｒｔ  ｂｅａｔ）ベースの検出方法
当該方法では、システムにおいて、ノードが、トポロジ構造に従うハート・ビート・リングを形成してもよく、当該ハート・ビート・リングにより、ハート・ビート情報を当該ノードの間で送信してもよい（ハート・ビート情報を送信する期間は一般にリース期間より短い）。当該ノードのハート・ビート情報が集約されると、当該ハート・ビート情報をクラスタ内のクォーラム・ノードで集約してもよく、ノードのハート・ビート情報が失われたかどうかが識別される。誤判定を避けるため、検出を複数回繰り返して実施してもよい。ノードのハート・ビート情報が複数回受信されない場合、当該ノードが故障しているかもしれないと判定され（この場合、アクティブな検出を実施して、当該ノードが故障しているかどうかを判定してもよい）、当該ノードが故障していることを示す通知がクラスタ内の別のノードに送信される。ノード・グループ内の全てのノードが故障していることを示す通知を当該クォーラム・ノードが受信した場合、当該クォーラム・ノードが、ブレイン分割がクラスタ内で行われたと決定してもよい。
【００６６】
２０５：クォーラム記憶装置が、リフレッシュ・パケット検出期間内に、クラスタ内のクォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を受信し、クォーラム記憶装置が、当該マスタ・クォーラム・ノードの事前に記録された識別子に従って、受信されたマスタ・クォーラム・ノード・プリエンプション要求が、当該識別子に対応するマスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むかどうかを判定し、そうである場合はステップ２０７を実施し、そうでない場合はステップ２０９を実施する。
【００６７】
特定の実装では、クォーラム記憶装置により受信されたマスタ・クォーラム・ノード・プリエンプション要求がクラスタ内の全てのクォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求であってもよく、または、クラスタ内の幾つかのクォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求であってもよい。
【００６８】
当該マスタ・クォーラム・ノード・プリエンプション要求が、記録されたマスタ・クォーラム・ノードのマスタ・クォーラム・ノード・プリエンプション要求を含むかどうかが、リフレッシュ・パケット検出期間内に決定される。当該マスタ・クォーラム・ノード・プリエンプション要求は、当該マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードの識別子を運搬する。クォーラム記憶装置は、当該マスタ・クォーラム・ノードの事前に記録された識別子を各マスタ・クォーラム・ノード・プリエンプション要求で運搬される識別子と比較する。当該識別子が同じである場合、これは当該マスタ・クォーラム・ノード・プリエンプション要求が当該マスタ・クォーラム・ノードのマスタ・クォーラム・ノード・プリエンプション要求を含むことを示し、この場合、クォーラム記憶装置はステップ２０７を実施する。比較を通じて各マスタ・クォーラム・ノード・プリエンプション要求で運搬される識別子が当該マスタ・クォーラム・ノードの事前に記録された識別子と異なることが分かった場合、これは当該マスタ・クォーラム・ノード・プリエンプション要求が当該マスタ・クォーラム・ノードのマスタ・クォーラム・ノード・プリエンプション要求を含まないことを示し、この場合、クォーラム記憶装置はステップ２０９を実施する。
【００６９】
２０７：受信されたマスタ・クォーラム・ノード・プリエンプション要求が当該マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むとき、クォーラム記憶装置は当該マスタ・クォーラム・ノードの事前に記録された識別子を維持し、ステップ２１３を実施する。
【００７０】
特定の実装では、リフレッシュ・パケット検出期間内に、元のマスタ・クォーラム・ノードが優先する処理ポリシが、ステップ２０７で使用される。即ち、クォーラム記憶装置のリフレッシュ・パケット検出期間内に、元のマスタ・クォーラム・ノードのマスタ・クォーラム・ノード・プリエンプション要求がクォーラム記憶装置に到着した場合、元のマスタ・クォーラム・ノードは優先的に新たなマスタ・クォーラム・ノードとして使用される。実際の適用では、マスタ・クォーラム・ノードは一般にクラスタ内の管理ノードとして使用されクラスタ管理機能を引き受けるので、当該管理ノードが頻繁に切り替えられる場合、サービス割込みが生じるかもしれず、当該管理ノードの切換えがサービス・データおよび／またはステータス・データのバックアップとコピーを生じさせるかもしれない。このように、大きな影響がクラスタのリソース処理に生ずるかもしれない。したがって、元のマスタ・クォーラム・ノードが優先的に新たなマスタ・クォーラム・ノードとして使用されるとき、上述の問題を効果的に防止することができる。
【００７１】
２０９：受信されたマスタ・クォーラム・ノード・プリエンプション要求がマスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含まないとき、応答するために、クォーラム記憶装置は応答メッセージを、当該マスタ・クォーラム・ノード・プリエンプション要求を送信した各クォーラム・ノードに送信して、当該マスタ・クォーラム・ノード・プリエンプション要求を送信し続けるように当該クォーラム・ノードに指示し、ステップ２１１を実施する。
【００７２】
当該ステップは必須のステップでないことに留意すべきである。特定の実装では、クォーラム記憶装置が応答メッセージを送信しなくてもよいが、マスタ・クォーラム・ノード・プリエンプション要求の定期送信機構をクォーラム・ノードに事前に設定する。当該クォーラム・ノードがクォーラム記憶装置により送信された通知メッセージを受信する前に、各クォーラム・ノードが定期的にマスタ・クォーラム・ノード・プリエンプション要求を送信してもよい。
【００７３】
確かに、ブレイン分割調停効率を改善するためにクォーラム記憶装置は応答メッセージを各クォーラム・ノードに送信し、その結果、各クォーラム・ノードはブレイン分割調停の進捗を時間通りに知ることができ、マスタ・クォーラム・ノードのプリエンプションが成功した後、無効なマスタ・クォーラム・ノード・プリエンプション要求の処理が減る。
【００７４】
２１１：リフレッシュ・パケット検出期間の後、クラスタ内の各クォーラム・ノードは、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信し続ける。当該クォーラム記憶装置は、マスタ・クォーラム・ノードの事前に記録された識別子を、最初に受信されたマスタ・クォーラム・ノード・プリエンプション要求に対応するクォーラム・ノードの識別子に変更し、ステップ２１３を実施する。
【００７５】
特定の実装では、リフレッシュ・パケット検出期間が終了した後、クォーラム記憶装置はマスタ・クォーラム・ノードを先着順方式で決定する。即ち、クォーラム記憶装置は、最初に受信されたマスタ・クォーラム・ノード・プリエンプション要求に対応するクォーラム・ノードを新たなマスタ・クォーラム・ノードに設定し、その結果、マスタ・クォーラム・ノードを高速に決定でき、ブレイン分割後のマスタ・ノード・グループを高速に決定してクラスタの正常な動作を継続することができる。
【００７６】
最初に受信されたマスタ・クォーラム・ノード・プリエンプション要求は、クォーラム記憶装置により受信されリフレッシュ・パケット検出期間の後にクォーラム記憶装置に到着した最初のマスタ・クォーラム・ノード・プリエンプション要求を指す。２つの実装可能性があってもよい。１つ目は、リフレッシュ・パケット検出期間が終了する前に各クォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション要求を既に送信し、当該検出期間の後に当該マスタ・クォーラム・ノード・プリエンプション要求がクォーラム記憶装置に到着するというものである。２つ目は、各クォーラム・ノードが、リフレッシュ・パケット検出期間が終了した後にマスタ・クォーラム・ノード・プリエンプション要求を送信し、当該検出期間の後に当該マスタ・クォーラム・ノード・プリエンプション要求がクォーラム記憶装置に到着するというものである。本発明の当該実施形態は上述の２つの可能性の何れも限定しない。
【００７７】
２１３：クォーラム記憶装置が、マスタ・クォーラム・ノード・プリエンプション成功応答を、記録された識別子に対応するクォーラム・ノードに送信する。当該マスタ・クォーラム・ノード・プリエンプション成功応答は、マスタ・クォーラム・ノードのプリエンプションが成功したことを当該クォーラム・ノードに通知するために使用される。
【００７８】
特定の実装では、当該マスタ・クォーラム・ノード・プリエンプション成功応答を受信したクォーラム・ノードはマスタ・クォーラム・ノードとして選択され、当該マスタ・クォーラム・ノードが配置されるノード・グループは、クラスタの動作を継続するためにマスタ・ノード・グループとして使用される。
【００７９】
２１５：クォーラム記憶装置が、マスタ・クォーラム・ノードを除く別のクォーラム・ノードに通知メッセージを送信する。
【００８０】
特定の実装では、マスタ・クォーラム・ノードとは異なる接続タイプを有するクォーラム・ノードに対して、クォーラム記憶装置により送信された通知メッセージのタイプは異なる。マスタ・クォーラム・ノードが配置されたノード・グループと異なるノード・グループ内のクォーラム・ノード（即ち、マスタ・クォーラム・ノードに接続しないクォーラム・ノード）に対して、クォーラム記憶装置はアクセス拒否通知メッセージを送信してもよく、その結果、当該クォーラム・ノードが再開され、クラスタに再参加する動作を実施する。マスタ・クォーラム・ノードが配置されたノード・グループと同じであるノード・グループ内のクォーラム・ノード（即ち、マスタ・クォーラム・ノードに接続するクォーラム・ノード）に対して、クォーラム記憶装置はマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを送信してもよく、その結果、当該クォーラム・ノードが、マスタ・クォーラム・ノード・プリエンプション要求を送信するのを停止する。以下の２つの実装方式が存在する。
【００８１】
方式１：別々の送信方式を使用する。図２Ｂを参照すると、当該方式は以下のステップを含む。
【００８２】
２１５１：クォーラム記憶装置が、記録されたマスタ・クォーラム・ノードにより送信された第１のパーミッション制御メッセージを受信する。当該第１のパーミッション制御メッセージは、クラスタに含まれる少なくとも２つのクォーラム・ノード内の決定されたマスタ・クォーラム・ノードに接続しない第１のカテゴリのクォーラム・ノードの識別子を含む。
【００８３】
特定の実装では、マスタ・クォーラム・ノードは当該マスタ・クォーラム・ノードとクラスタ内の別のクォーラム・ノードとの間の接続をハート・ビート検出またはリース検出により検出し、当該マスタ・クォーラム・ノードに接続しないクォーラム・ノードに対する第１のパーミッション制御メッセージを生成し、当該第１のパーミッション制御メッセージをクォーラム記憶装置に送信する。
【００８４】
第１のカテゴリのクォーラム・ノードは、マスタ・クォーラム・ノードと物理的または論理的に通信できないクォーラム・ノードを指す。即ち、当該第１のカテゴリのクォーラム・ノードはマスタ・クォーラム・ノードに接続しない。実際のシナリオでは、当該第１のカテゴリのクォーラム・ノードとマスタ・クォーラム・ノードは異なるノード・グループ内にある。
【００８５】
２１５２：クォーラム記憶装置がアクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信する。当該アクセス拒否通知メッセージは、ノード再開動作を実施するように第１のカテゴリのクォーラム・ノードに指示するために使用される。
【００８６】
１例として、特定の実装では、当該アクセス拒否通知メッセージが（表１に示すように）以下の特定のパケット・フォーマットを使用してもよく、クォーラム記憶装置に対するノード識別子とアクセス・パーミッションを含む。例えば、ノードの識別子は当該ノードのＩＰアドレスであり、実際には別の表現方式を有してもよく、これは本発明の全ての実施形態では限定されない。クォーラム・ノードが当該アクセス拒否通知メッセージを受信した後、当該クォーラム・ノードがノード再開動作を実施する。
【００８７】
【表１】
0006362120.tif 000002
【００８８】
第１のカテゴリのクォーラム・ノードがマスタ・クォーラム・ノードに接続しないクォーラム・ノードであるので、例えば、物理的に、当該２つのクォーラム・ノードが物理接続経路を有さないか、または、論理的に、当該２つのクォーラム・ノードの間のスイッチが故障している。実装において、第１のカテゴリのクォーラム・ノードとマスタ・クォーラム・ノードは異なるノード・グループ内にある。当該マスタ・クォーラム・ノードが配置されるノード・グループはブレイン分割調停におけるマスタ・ノード・グループとして使用されるので、第１のカテゴリのクォーラム・ノードは別のノード・グループに属し、当該ノード・グループ内のクォーラム・ノードを再開する必要があり、クラスタに再参加する動作を実施する。
【００８９】
２１５３：クォーラム記憶装置が、マスタ・クォーラム・ノードにより送信された第２のパーミッション制御メッセージを受信する。当該第２のパーミッション制御メッセージは、クラスタ内の少なくとも２つのクォーラム・ノードにおけるマスタ・クォーラム・ノードに接続する第２のカテゴリのクォーラム・ノードの識別子を含む。
【００９０】
特定の実装では、マスタ・クォーラム・ノードは、当該マスタ・クォーラム・ノードと別のクォーラム・ノードの間の接続をハート・ビート検出またはリース検出により検出し、当該第２のパーミッション制御メッセージを生成し、当該第２のパーミッション制御メッセージをクォーラム記憶装置に送信する。
【００９１】
第２のカテゴリのクォーラム・ノードは、マスタ・クォーラム・ノードと通信できるクォーラム・ノードを指す。即ち、第２のカテゴリのクォーラム・ノードはマスタ・クォーラム・ノードと接続する。実際のシナリオでは、第２のカテゴリのクォーラム・ノードとマスタ・クォーラム・ノードは同じノード・グループ内にある。
【００９２】
２１５４：クォーラム記憶装置がマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを第２のカテゴリのクォーラム・ノードに送信する。当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージは、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止するように第２のカテゴリのクォーラム・ノードに指示するために使用される。
【００９３】
１例として、特定の実装では、マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージは（表２に示すように）以下の特定のパケット・フォーマットを使用する。当該パケット・フォーマットは、ノード識別子、および、マスタ・クォーラム・ノード・プリエンプション要求を送信するパーミッションを含む。例えば、ノードの識別子は当該ノードのＩＰアドレスであり、実際には別の表現方式を有してもよく、本発明の諸実施形態では限定されない。クォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを受信した後、当該クォーラム・ノードはマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止する。
【００９４】
【表２】
0006362120.tif 000003
【００９５】
方式１に対して、特定の実装方式において、ステップ２１５１および２１５２とステップ２１５３および２１５４との間の実行順序は限定されない。ステップ２１５１乃至ステップ２１５４がステップ２１５１からステップ２１５４への順序に従って実行されてもよく、または、ステップ２１５３と２１５４を最初に実行してもよく、ステップ２１５１と２１５２が次に実行され、これは本発明の当該実施形態では限定されない。
【００９６】
方式２：統合送信方式を使用する。
【００９７】
方式１との違いは、マスタ・クォーラム・ノードがパーミッション制御メッセージを生成することにある。当該メッセージは、当該マスタ・クォーラム・ノードを除く別のクォーラム・ノードの識別子およびクォーラム記憶装置に対する当該クォーラム・ノードのアクセス・パーミッションを含む。当該アクセス・パーミッションは許可または拒否を含む。マスタ・クォーラム・ノードがパーミッション制御メッセージをクォーラム記憶装置に送信する。クォーラム記憶装置は、当該識別子および当該識別子に対応するアクセス・パーミッションに従って、第１のカテゴリのクォーラム・ノードに対するアクセス拒否通知メッセージと第２のカテゴリのクォーラム・ノードに対するマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージとを別々に生成する。第１のカテゴリのクォーラム・ノードはマスタ・クォーラム・ノードに接続しないクォーラム・ノードであり、第２のカテゴリのクォーラム・ノードはマスタ・クォーラム・ノードに接続するクォーラム・ノードである。２つのクォーラム・ノードが互いと接続するかどうかがハート・ビート検出またはリース検出により判定される。当該アクセス拒否通知メッセージを受信した後、第１のカテゴリのクォーラム・ノードがノード再開とクラスタへの再参加の動作を実施してもよい。マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを受信した後、第２のカテゴリのクォーラム・ノードが、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止してもよい。
【００９８】
以下のステップを特に含めてもよい。図２Ｃを参照すると、当該方式は以下のステップを含む。
【００９９】
２１５５：クォーラム記憶装置が、マスタ・クォーラム・ノードにより送信されたパーミッション制御メッセージを受信する。当該パーミッション制御メッセージは、クォーラム記憶装置に対する、クラスタ内の少なくとも２つのクォーラム・ノードにおいてマスタ・クォーラム・ノードを除く別のクォーラム・ノードの識別子と、当該クラスタ内の当該少なくとも２つのクォーラム・ノードにおいて当該マスタ・クォーラム・ノードを除く当該別のクォーラム・ノードのアクセス・パーミッションとを含み、当該アクセス・パーミッションは許可または拒否を含む。
【０１００】
１例として、マスタ・クォーラム・ノードがパーミッション制御メッセージを生成する。当該パーミッション制御メッセージは表３に示すフォーマットを使用する。
【０１０１】
【表３】
0006362120.tif 000004
【０１０２】
マスタ・クォーラム・ノードがパーミッション制御メッセージをクォーラム記憶装置に送信する。
【０１０３】
２１５６：クォーラム記憶装置が、当該パーミッション制御メッセージに従って、通知メッセージを、クラスタ内の少なくとも２つのクォーラム・ノードにおけるマスタ・クォーラム・ノードを除く別のクォーラム・ノードに送信する。
【０１０４】
２１５６１：アクセス・パーミッションが拒否である第１のカテゴリのクォーラム・ノードに対して、クォーラム記憶装置がアクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信する。当該アクセス拒否通知メッセージは、ノード再開動作を実施するように第１のカテゴリのクォーラム・ノードに指示するために使用される。
【０１０５】
特定の実装では、ステップ２０５２における表１に示すパケット・フォーマットを使用してもよい。その他は同様であり、詳細についてはここでは説明しない。
【０１０６】
第１のカテゴリのクォーラム・ノードは、マスタ・クォーラム・ノードと物理的または論理的に通信できないクォーラム・ノードを指す。即ち、第１のカテゴリのクォーラム・ノードはマスタ・クォーラム・ノードに接続しない。実際のシナリオでは、第１のカテゴリのクォーラム・ノードとマスタ・クォーラム・ノードは異なるノード・グループ内にある。
【０１０７】
２１５６２：アクセス・パーミッションが許可である第２のカテゴリのクォーラム・ノードに対して、クォーラム記憶装置がマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを第２のカテゴリのクォーラム・ノードに送信する。当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージは、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止するように第２のカテゴリのクォーラム・ノードに指示するために使用される。
【０１０８】
特定の実装では、ステップ２０５４における表２に示すパケット・フォーマットを使用してもよい。その他は同様であり、詳細についてはここでは説明しない。
【０１０９】
第２のカテゴリのクォーラム・ノードは、マスタ・クォーラム・ノードと通信できるクォーラム・ノードを指す。即ち、第２のカテゴリのクォーラム・ノードはマスタ・クォーラム・ノードと接続する。実際のシナリオでは、第２のカテゴリのクォーラム・ノードとマスタ・クォーラム・ノードは同じノード・グループ内にある。
【０１１０】
上述の２つの実装方式により、クラスタ内のマスタ・クォーラム・ノードを除く別のクォーラム・ノードが、クォーラム記憶装置により送信されたメッセージに従って対応する処理を実施することができる。特に、マスタ・クォーラム・ノードに接続しないクォーラム・ノード（ブレイン分割後の別のノード・グループ内のクォーラム・ノード）が再開動作を実施してもよい。マスタ・クォーラム・ノードに接続するクォーラム・ノード（ブレイン分割後のマスタ・ノード・グループ内のクォーラム・ノード）がマスタ・クォーラム・ノード・プリエンプション要求を送信するのを停止する。上述の処理により、マスタ・クォーラム・ノードが決定された後、他のクォーラム・ノードは、ブレイン分割後にマスタ・クォーラム・ノードのプリエンプションから高速に復元することができ、その結果、クラスタの通常のサービスの高速な復元を効果的に実装することができる。
【０１１１】
２１５７：アクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信した後、クォーラム記憶装置はまた、ファイアウォール・ポリシを変更するために使用される通知メッセージを第１のカテゴリのクォーラム・ノードに送信する。当該通知メッセージは、第１のカテゴリのクォーラム・ノードに対応するファイアウォール内のファイアウォール・ポリシを変更して、第１のカテゴリのクォーラム・ノードによりクォーラム記憶装置に送信されたマスタ・クォーラム・ノード・プリエンプション要求をブロックするように第１のカテゴリのクォーラム・ノードに指示するために使用される。
【０１１２】
特定の実装では、マスタ・クォーラム・ノードと異なるノード・グループ内のクォーラム・ノード、即ち、第１のカテゴリのクォーラム・ノードに対して、クォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信し続けるのを避けるために、クォーラム記憶装置が、ファイアウォール・ポリシを変更するために使用される通知メッセージをクォーラム・ノードに送信する。当該通知メッセージを受信した後、当該クォーラム・ノードは、当該クォーラム・ノードに対応するファイアウォール内のファイアウォール・ポリシを変更して、当該クォーラム・ノードによりクォーラム記憶装置に送信されたマスタ・クォーラム・ノード・プリエンプション要求をブロックしてもよい。
【０１１３】
第１のカテゴリのクォーラム・ノードを再開する前に、第１のカテゴリのクォーラム・ノードはさらにマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信することに留意すべきである。当該ステップの設定は、当該クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を効果的にブロックして、クォーラム記憶装置が無効なマスタ・クォーラム・ノード・プリエンプション要求に関する処理能力を無駄にするのを回避することができる。
【０１１４】
上述の解決策は、ブレイン分割がクラスタ内で行われた後、調停を通じてマスタ・ノード・グループを決定できないという先行技術の問題を効果的に解決することができる。
【０１１５】
クラスタ・ブレイン分割が終了した後の調停処理の後、クラスタ内のクォーラム・ノードを除く別のノードが、ハート・ビート検出またはリース検出により、当該ノードとマスタ・クォーラム・ノードの間の接続を決定してもよい。当該ノードがマスタ・クォーラム・ノードと接続すると判定されたとき、これは当該ノードとマスタ・クォーラム・ノードが同じノード・グループ内にあり、当該ノードが動作し続けることを示す。当該ノードがマスタ・クォーラム・ノードに接続しないと判定されたとき、これは当該ノードとマスタ・クォーラム・ノードは異なるノード・グループ内にあることを示し、当該ノードは再開をトリガし、マスタ・クォーラム・ノードが配置されたノード・グループに再参加するプロセスを実施する。
【０１１６】
対応して、本発明はさらにクラスタ・ブレイン分割後の調停方法の第２の実施形態を提供する。マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに対して、処理プロセスは、以下のステップを含む。
【０１１７】
３０１：クォーラム・ノードが、クォーラム記憶装置により送信されたマスタ・クォーラム・ノード・プリエンプション成功応答メッセージを受信する。当該マスタ・クォーラム・ノード・プリエンプション成功応答メッセージは、マスタ・クォーラム・ノードのプリエンプションが成功したことをクォーラム・ノードに通知するために使用される。
【０１１８】
３０３：マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードが、クラスタ内の少なくとも２つのクォーラム・ノードにおけるクォーラム・ノードを除く別のクォーラム・ノードのアクセス・パーミッションを決定する。当該アクセス・パーミッションは許可または拒否を含む。
【０１１９】
３０５：マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードが、パーミッション制御メッセージをクォーラム記憶装置に送信する。当該パーミッション制御メッセージは、クラスタ内の少なくとも２つのクォーラム・ノードにおけるクォーラム・ノードを除く別のクォーラム・ノードの識別子と、クォーラム記憶装置に対する当該識別子に対応するクォーラム・ノードのアクセス・パーミッションとを含む。
【０１２０】
上述の実施形態の処理プロセスについては、上述の実施形態におけるステップ２０５の説明を参照されたい。詳細についてはここでは説明しない。
【０１２１】
本発明の装置の実施形態
図４を参照すると、本発明はさらに、クラスタとクォーラム記憶装置４００により形成されたシステムに適用される、クラスタ内の調停処理に使用されるクォーラム記憶装置４００を提供する。当該クラスタは、少なくとも２つのクォーラム・ノードを含み、クォーラム記憶装置４００は、クラスタ内のマスタ・クォーラム・ノードの識別子を事前に記録し、マスタ・クォーラム・ノードは当該少なくとも２つのクォーラム・ノードの１つである。クォーラム記憶装置４００は、検出期間内に、クラスタ内のクォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を受信するように構成された受信ユニット４０１であって、各マスタ・クォーラム・ノード・プリエンプション要求はクォーラム・ノードの識別子を含む、受信ユニット４０１と、当該マスタ・クォーラム・ノードの識別子に従って、受信ユニット４０１により受信されたマスタ・クォーラム・ノード・プリエンプション要求が当該マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むかどうかを判定するように構成される判定ユニット４０２と、当該受信されたマスタ・クォーラム・ノード・プリエンプション要求が当該マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むとき、当該ノードの記録された識別子を維持するか、または、当該受信されたマスタ・クォーラム・ノード・プリエンプション要求が当該マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含まないとき、第１のリフレッシュ・パケット検出期間の後、当該記録された識別子を、クォーラム記憶装置に最初に到着したマスタ・クォーラム・ノード・プリエンプション要求に対応するクォーラム・ノードの識別子に変更するように構成された実行ユニット４０３と、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージを当該記録された識別子に対応するクォーラム・ノードに送信するように構成された送信ユニット４０４であって、当該応答メッセージは、マスタ・クォーラム・ノードのプリエンプションに成功したことを、当該記録された識別子に対応するクォーラム・ノードに通知するために使用される、送信ユニット４０４とを備える。
【０１２２】
さらに、クォーラム記憶装置４００において、実行ユニット４０３はさらに、受信されたマスタ・クォーラム・ノード・プリエンプション要求がマスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含まないとき、応答メッセージを生成するように構成される。当該応答メッセージは、当該マスタ・クォーラム・ノード・プリエンプション要求を送信し続け、送信ユニット４０４をトリガするように、当該マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードに指示するために使用される。送信ユニット４０４はさらに、当該応答メッセージを、当該マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードに送信するように構成される。
【０１２３】
さらに、クォーラム記憶装置４００において、受信ユニット４０１はさらに、送信ユニット４０４が、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージを当該記録された識別子に対応するクォーラム・ノードに送信した後、当該記録された識別子に対応するクォーラム・ノードにより送信された第１のパーミッション制御メッセージを受信するように構成される。当該第１のパーミッション制御メッセージは、クラスタに含まれる少なくとも２つのクォーラム・ノード内の当該記録された識別子に対応するクォーラム・ノードに接続しない第１のカテゴリのクォーラム・ノードの識別子を含む。実行ユニット４０３はさらに、当該第１のパーミッション制御メッセージに従ってアクセス拒否通知メッセージを生成し、送信ユニット４０４をトリガするように構成される。当該アクセス拒否通知メッセージは、ノード再開動作を実施するように第１のカテゴリのクォーラム・ノードに指示するために使用される。送信ユニット４０４はさらに、当該アクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信するように構成される。
【０１２４】
さらに、クォーラム記憶装置４００において、受信ユニット４０１はさらに、送信ユニット４０４が、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージを当該記録された識別子に対応するクォーラム・ノードに送信した後、当該記録された識別子に対応するクォーラム・ノードにより送信された第２のパーミッション制御メッセージを受信するように構成される。当該第２のパーミッション制御メッセージは、クラスタ内の少なくとも２つのクォーラム・ノードにおける当該記録された識別子に対応するクォーラム・ノードに接続する第２のカテゴリのクォーラム・ノードの識別子を含む。実行ユニット４０３はさらに、第２のパーミッション制御メッセージに従ってマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを生成し、送信ユニット４０４をトリガするように構成される。当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージは、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置４００に送信するのを停止するように第２のカテゴリのクォーラム・ノードに指示するために使用される。送信ユニット４０４はさらに、当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを第２のカテゴリのクォーラム・ノードに送信するように構成される。
【０１２５】
さらに、クォーラム記憶装置４００において、受信ユニット４０１はさらに、送信ユニット４０４が、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージを当該記録された識別子に対応するクォーラム・ノードに送信した後、当該記録された識別子に対応するクォーラム・ノードにより送信されたパーミッション制御メッセージを受信するように構成される。当該パーミッション制御メッセージは、クォーラム記憶装置４００に対する、クラスタ内の少なくとも２つのクォーラム・ノードにおける当該記録された識別子に対応するクォーラム・ノードを除く別のクォーラム・ノードの識別子と、当該少なくとも２つのクォーラム・ノード内の当該記録された識別子に対応するクォーラム・ノードを除く別のクォーラム・ノードのアクセス・パーミッションとを含み、当該アクセス・パーミッションは許可または拒否を含む。実行ユニット４０３はさらに、当該パーミッション制御メッセージに従って通知メッセージを生成し、送信ユニット４０４をトリガするように構成される。送信ユニット４０４はさらに、当該少なくとも２つのクォーラム・ノード内の当該記録された識別子に対応するクォーラム・ノードを除く別のクォーラム・ノードに当該通知メッセージを送信するように構成される。
【０１２６】
さらに、クォーラム記憶装置４００において、実行ユニット４０３は特に、アクセス・パーミッションが拒否である第１のカテゴリのクォーラム・ノードに対してアクセス拒否通知メッセージを生成するように構成される。当該アクセス拒否通知メッセージは、ノード再開動作を実施するように第１のカテゴリのクォーラム・ノードに指示するために使用され、送信ユニット４０４は特に、当該アクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信するように構成される。
【０１２７】
さらに、クォーラム記憶装置４００において、実行ユニット４０３は特に、アクセス・パーミッションが許可である第２のカテゴリのクォーラム・ノードに対してマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを生成するように構成される。当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージは、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置４００に送信するのを停止するように第２のカテゴリのクォーラム・ノードに指示するために使用され、送信ユニット４０４は特に、当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを第２のカテゴリのクォーラム・ノードに送信するように構成される。
【０１２８】
さらに、クォーラム記憶装置４００において、実行ユニット４０３はさらに、送信ユニット４０４がアクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信した後、第１のカテゴリのクォーラム・ノードに対して、ファイアウォール・ポリシを変更するために使用される通知メッセージを生成するように構成される。ファイアウォール・ポリシを変更するために使用される当該通知メッセージは、当該第１のカテゴリのクォーラム・ノードのファイアウォールに対応するファイアウォール・ポリシを変更して、当該第１のカテゴリのクォーラム・ノードによりクォーラム記憶装置４００に送信されたマスタ・クォーラム・ノード・プリエンプション要求をブロックするように当該第１のカテゴリのクォーラム・ノードに指示するために使用される。送信ユニット４０４はさらに、ファイアウォール・ポリシを変更するために使用される当該通知メッセージを当該第１のカテゴリのクォーラム・ノードに送信するように構成される。
【０１２９】
図５を参照すると、本発明はさらにクォーラム記憶装置の第２の実施形態を提供する。クォーラム記憶装置５００は、プロセッサ５０１、メモリ５０２、通信インタフェース５０３、およびバス５０４を備え、プロセッサ５０１、メモリ５０２、および通信インタフェース５０３はバス５０４を用いて互いと通信し、通信インタフェース５０３はクラスタ内の少なくとも２つのクォーラム・ノードと通信するように構成され、メモリ５０２はプログラムを格納するように構成され、クォーラム記憶装置５００が実行したとき、プロセッサ５０１は、メモリ５０２に格納されたプログラムを実行して、ブレイン分割調停方法の第１の実施形態の方法のプロセスを実行するように構成される。
【０１３０】
図６を参照すると、本発明はさらにクォーラム・ノードの第１の実施形態を提供する。クォーラム・ノード６００は、クォーラム記憶装置により送信されたマスタ・クォーラム・ノード・プリエンプション成功応答メッセージを受信するように構成された受信ユニット６０１であって、当該応答メッセージは、マスタ・クォーラム・ノードのプリエンプションが成功したことを当該ノードに通知するために使用される、受信ユニット６０１と、クラスタ内の少なくとも２つのクォーラム・ノード内のクォーラム・ノード６００を除く別のクォーラム・ノードのアクセス・パーミッションを決定するように構成された判定ユニット６０２であって、当該アクセス・パーミッションは許可または拒否を含む、判定ユニット６０２と、パーミッション制御メッセージをクォーラム記憶装置に送信するように構成された送信ユニット６０３であって、当該パーミッション制御メッセージは、クラスタ内の当該少なくとも２つのクォーラム・ノード内のクォーラム・ノード６００を除く当該別のクォーラム・ノードの識別子とクォーラム記憶装置に対する当該識別子に対応するクォーラム・ノードのアクセス・パーミッションとを含む、送信ユニット６０３とを備える。
【０１３１】
図７を参照すると、本発明はさらにクォーラム・ノードの第２の実施形態を提供する。クォーラム・ノード７００は、プロセッサ７０１、メモリ７０２、通信インタフェース７０３、およびバス７０４を備える。プロセッサ７０１、メモリ７０２、および通信インタフェース７０３はバス７０４を用いて互いと通信する。通信インタフェース７０３はクラスタ内の別のクォーラム・ノードおよびクォーラム記憶装置と通信するように構成される。メモリ７０２はプログラムを格納するように構成され、クォーラム・ノード７００が実行したとき、プロセッサ７０１は、メモリ７０２に格納されたプログラムを実行して、ブレイン分割調停方法の第２の実施形態の方法のプロセスを実行するように構成される。
【０１３２】
図８を参照すると、本発明はさらにクラスタ・ブレイン分割後の調停処理システムを提供する。システム８００は、第１の実施形態に示したクラスタ８１０およびクォーラム記憶装置８２０または当該調停装置の第２の実施形態を備える。クラスタ８１０は少なくとも２つのクォーラム・ノード８１１を備え、当該少なくとも２つのクォーラム・ノードはマスタ・クォーラム・ノード８１１１を備え、クォーラム記憶装置８２０が、クラスタ内のマスタ・クォーラム・ノード８１１１の識別子を事前に記録する。
【０１３３】
本発明の全ての実施形態を、１つのクォーラム記憶装置が存在する例を用いて説明する。Ｎ個の（Ｎ≧３およびＮは奇数である）クォーラム記憶装置があるとき、クラスタ内の少なくとも２つのクォーラム・ノードは、マスタ・クォーラム・ノード・プリエンプション要求を当該Ｎ個のクォーラム記憶装置内の各クォーラム記憶装置に送信する。Ｒｏｕｎｄ（Ｎ／２）＋１個のクォーラム記憶装置により送信されたマスタ・クォーラム・ノード・プリエンプション成功通知メッセージを取得できるクォーラム・ノードはマスタ・クォーラム・ノードと呼ばれる。当該マスタ・クォーラム・ノードが配置されるノード・グループはマスタ・ノード・グループである。他のクォーラム・ノード内のマスタ・クォーラム・ノードと通信できるクォーラム・ノードは、マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを受信し、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止してもよい。マスタ・クォーラム・ノードと通信できないクォーラム・ノードがアクセス拒否通知メッセージを受信してもよい。当該アクセス拒否通知メッセージは、ノード再開動作を実施するようにクォーラム・ノードに指示するために使用される。具体的な処理プロセスは１つのクォーラム記憶装置があるときの処理プロセスと同様であるので、詳細は本発明の当該実施形態では説明しない。
【０１３４】
本発明の第３の方法の実施形態
図９Ａ乃至図９Ｃは、クラスタ内でブレイン分割が行われた後にクォーラム記憶装置がブレイン分割調停を実装する第３の方法の実施形態を示す。当該方法の実施形態は、クラスタおよびクォーラム記憶装置により形成された図１に示すシステムに適用される。クラスタは少なくとも２つのクォーラム・ノードを含む。図９Ａを参照すると、当該方法は以下を含む。
【０１３５】
９０１：クラスタ内の少なくとも２つのクォーラム・ノードの１つを初期マスタ・クォーラム・ノードとして事前に記録し、リフレッシュ・パケット検出期間を開始する。当該リフレッシュ・パケット検出期間は反復実行される期間である。
【０１３６】
特定の実装では、クラスタが確立された後、クォーラム記憶装置は、記憶空間をクォーラム記憶装置またはサードパーティの記憶装置に設定して、初期マスタ・クォーラム・ノードの識別子および初期マスタ・クォーラム・ノードのステータスを記録してもよい。クラスタ内の少なくとも２つのクォーラム・ノードの１つを、本方式で初期マスタ・クォーラム・ノードに事前に構成してもよい。初期状態において、マスタ・クォーラム・ノードの識別子はヌル（ＮＵＬＬ）として記録され、マスタ・クォーラム・ノードのステータスはヌル（ＮＵＬＬ）または故障として記録される。クラスタが正常に動作を開始する前に、初期マスタ・クォーラム・ノードを、初期設定により管理者またはクォーラム記憶装置により指定してもよく、クラスタ内の少なくとも２つのクォーラム・ノードの１つを初期マスタ・クォーラム・ノードとして選択してもよい。クォーラム記憶装置がリフレッシュ・パケット検出期間を開始する。当該リフレッシュ・パケット検出期間は反復実行される期間である。クラスタが正常に動作を開始した後、初期設定されたマスタ・クォーラム・ノードが定期的にリフレッシュ・パケットをクォーラム記憶装置に送信してもよい。当該リフレッシュ・パケットはマスタ・クォーラム・ノードの識別子を含み、当該識別子が特にクラスタ内のマスタ・クォーラム・ノードのＩＰアドレス、数等であってもよい。クォーラム記憶装置はまた、リフレッシュ・パケット検出期間を設定して、マスタ・クォーラム・ノードがリフレッシュ・パケットを送信するかどうかを検出してもよい。リフレッシュ・パケット検出期間において、クォーラム記憶装置は様々なケースに従う以下の処理を実施する。
【０１３７】
Ａ：リフレッシュ・パケットがリフレッシュ・パケット検出期間内に受信されなかった場合、ノードの記録されたステータスは故障に変更される。リフレッシュ・パケットがリフレッシュ・パケット検出期間内に受信されなかった場合、クォーラム記憶装置はマスタ・クォーラム・ノードが故障であると考えてもよく、レコード内のマスタ・クォーラム・ノードのステータスを故障に変更する。
【０１３８】
Ｂ：マスタ・クォーラム・ノードにより送信されたリフレッシュ・パケットが最初に受信されると、クォーラム記憶装置が、マスタ・クォーラム・ノードの識別子を記録し、レコード内のマスタ・クォーラム・ノードのステータスを「正常」に変更してもよい。
【０１３９】
Ｃ：マスタ・クォーラム・ノードにより送信されたリフレッシュ・パケットを受信するのが初めてではない場合、以下の２つのケースが含まれる。
【０１４０】
Ｃ１：リフレッシュ・パケットで運搬される識別子がノードの記録された識別子と同じであり、マスタ・クォーラム・ノードの記録されたステータスが正常であることが検出されたとき、これは現在のクラスタ内のマスタ・クォーラム・ノードが正常であることを示し、クォーラム記憶装置は当該記録された識別子に動作を実施しない。
【０１４１】
Ｃ２：リフレッシュ・パケットで運搬される識別子がノードの記録された識別子と同じであるが、マスタ・クォーラム・ノードの記録されたステータスがヌルであるかまたは故障であることが検出されたとき、クォーラム記憶装置はレコード内のノードのステータスを正常に変更する。この場合、２つのアプリケーション・シナリオがあってもよい。１つのシナリオはクラスタ再開である。この場合、全てのノードが再開され、元のマスタ・クォーラム・ノードは、クラスタ再開の後、リフレッシュ・パケット検出期間内にリフレッシュ・パケットを送信することができず、マスタ・クォーラム・ノードの記録されたステータスは故障に変更される。他のシナリオは、元のクォーラム・ノードにより送信されたリフレッシュ・パケットが失われ、クォーラム記憶装置が検出期間内にリフレッシュ・パケットを受信できない場合、クォーラム記憶装置がマスタ・クォーラム・ノードの記録されたステータスを故障に変更するというものである。
【０１４２】
９０３：ブレイン分割が行われたことが検出された後、各ノード・グループ内の各クォーラム・ノードは、マスタ・クォーラム・ノード・プリエンプション要求を生成し、当該マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信する。
【０１４３】
特定の実装では、１つのマスタ・クォーラム・ノードのプリエンプション機構が各クォーラム・ノードに対して設定されてもよい。即ち、ブレイン分割が行われたとクォーラム・ノードが検出した後、当該クォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション要求を生成し、当該マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信してもよい。当該マスタ・クォーラム・ノード・プリエンプション要求は、当該クォーラム・ノードの識別子を含み、当該クォーラム・ノードの当該識別子が複数の実装方式、例えば、クォーラム・ノードのＩＰアドレス（例えば、１０．１１．２０１．１２）またはクラスタ内のクォーラム・ノードの一意な識別子（例えば、数字００１０）、または別の実装方式を有してもよく、これは本発明の当該実施形態では限定されない。
【０１４４】
ブレイン分割が行われたことが検出された後、マスタ・クォーラム・ノード・プリエンプション要求を生成し送信したクォーラム・ノードは現在生き残っているクォーラム・ノードであり、これらの故障（例えば、シャットダウン）したクォーラム・ノードはマスタ・クォーラム・ノード・プリエンプション要求を生成も送信もできないことに留意すべきである。特定の実装では、マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが全てのクォーラム・ノードであってもよく、または、クラスタ内の幾つかのクォーラム・ノードであってもよい。
【０１４５】
特定の実装では、各クォーラム・ノードが、リース検出またはハート・ビート検出により、ブレイン分割が行われたことを検出してもよい。リース検出およびハート・ビート検出を使用してノード間の接続を検出してもよいことに留意すべきである。リース（Ｌｅａｓｅ）ベースの検出方法およびハート・ビート（Ｈｅａｒｔ  ｂｅａｔ）ベースの検出方法は本明細書の上述の実施形態で説明されており、詳細についてはここでは説明しない。
【０１４６】
９０５：クォーラム記憶装置が第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求が初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むかどうかを判定する。第１のリフレッシュ・パケット検出期間はクラスタ・ブレイン分割が行われた時点に対応するリフレッシュ・パケット検出期間であり、そうである場合はステップ９０７を実施し、または、そうでない場合はステップ９０９を実施する。
【０１４７】
特定の実装では、クォーラム記憶装置は、初期マスタ・クォーラム・ノードの事前に記録された識別子を受信されたマスタ・クォーラム・ノード・プリエンプション要求内の識別子と比較して、当該受信されたマスタ・クォーラム・ノード・プリエンプション要求が初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むどうかを判定する。
【０１４８】
特定の実装プロセスでは、第１のリフレッシュ・パケット検出期間内に受信されたマスタ・クォーラム・ノード・プリエンプション要求が初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むかどうかをクォーラム記憶装置が判定する２つの実装方式があってもよい。
【０１４９】
方式１：クォーラム記憶装置が第１のリフレッシュ・パケット検出期間内に受信された全てのマスタ・クォーラム・ノード・プリエンプション要求をキャッシュし、クォーラム記憶装置が、全てのキャッシュされたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが初期マスタ・クォーラム・ノードを含むかどうかを判定する。
【０１５０】
クォーラム記憶装置は記憶装置を有し、マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードの識別子をキャッシュするために、クォーラム記憶装置は初期マスタ・クォーラム・ノードの識別子を当該マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードの識別子と比較して、初期マスタ・クォーラム・ノードが含まれるかどうかを判定することに留意すべきである。
【０１５１】
方式２：クォーラム記憶装置は逐次的に、第１のリフレッシュ・パケット検出期間内に受信された各マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが初期マスタ・クォーラム・ノードであるかどうかを判定する。
【０１５２】
特定の実装では、クォーラム記憶装置により受信されたマスタ・クォーラム・ノード・プリエンプション要求が、クラスタ内の全てのクォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求であってもよく、または、クラスタ内の幾つかのクォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求であってもよい。
【０１５３】
マスタ・クォーラム・ノード・プリエンプション要求が初期マスタ・クォーラム・ノードのマスタ・クォーラム・ノード・プリエンプション要求を含むかどうかが第１のリフレッシュ・パケット検出期間内に判定される。当該第１のリフレッシュ・パケット検出期間は、ブレイン分割が行われた時点のリフレッシュ・パケット検出期間であり、または、当該第１のリフレッシュ・パケット検出期間またはブレイン分割が行われた時点のリフレッシュ・パケット検出期間の後の第２のリフレッシュ・パケット検出期間であってもよい。当該マスタ・クォーラム・ノード・プリエンプション要求は、当該マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードの識別子を運搬する。クォーラム記憶装置は、初期マスタ・クォーラム・ノードの識別子を各マスタ・クォーラム・ノード・プリエンプション要求で運搬される識別子と比較する。当該識別子が同じである場合、これは当該マスタ・クォーラム・ノード・プリエンプション要求が、初期マスタ・クォーラム・ノードのマスタ・クォーラム・ノード・プリエンプション要求を含むことを示し、この場合、クォーラム記憶装置はステップ９０７を実施する。比較を通じて各マスタ・クォーラム・ノード・プリエンプション要求で運搬される識別子が初期マスタ・クォーラム・ノードの識別子と異なることが分かった場合、これはマスタ・クォーラム・ノード・プリエンプション要求が初期マスタ・クォーラム・ノードのマスタ・クォーラム・ノード・プリエンプション要求を含まないことを示し、この場合、クォーラム記憶装置はステップ９０９を実施する。
【０１５４】
９０７：受信されたマスタ・クォーラム・ノード・プリエンプション要求が初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含むとき、クォーラム記憶装置は、初期マスタ・クォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードであると判定し、ステップ９１３を実施する。
【０１５５】
特定の実装では、初期マスタ・クォーラム・ノードがマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードである、即ち、初期マスタ・クォーラム・ノードの事前に記録された識別子が不変のままであると判定される。
【０１５６】
第１のリフレッシュ・パケット検出期間内に、初期マスタ・クォーラム・ノードが優先する処理ポリシが、ステップ９０７で使用される。即ち、クォーラム記憶装置の第１のリフレッシュ・パケット検出期間内に、初期マスタ・クォーラム・ノードのマスタ・クォーラム・ノード・プリエンプション要求がクォーラム記憶装置に到着した場合、初期マスタ・クォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノード、即ち、新たなマスタ・クォーラム・ノードとして優先的に使用される。実際の適用では、マスタ・クォーラム・ノードは一般にクラスタ内の管理ノードとして使用されクラスタ管理機能を引き受けるので、当該管理ノードが頻繁に切り替えられる場合、サービス割込みが生じるかもしれず、当該管理ノードの切換えがサービス・データおよび／またはステータス・データのバックアップとコピーを生じさせるかもしれない。このように、大きな影響がクラスタのリソース処理に及ぶかもしれない。したがって、初期マスタ・クォーラム・ノードが優先的に新たなマスタ・クォーラム・ノードとして使用されるとき、上述の問題を効果的に防止することができる。
【０１５７】
９０９：受信されたマスタ・クォーラム・ノード・プリエンプション要求が初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を含まないとき、応答するために、クォーラム記憶装置が、マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージをマスタ・クォーラム・ノード・プリエンプション要求を送信した各クォーラム・ノードに送信して、マスタ・クォーラム・ノード・プリエンプション要求を送信し続けるようにマスタ・クォーラム・ノード・プリエンプション要求を送信した各クォーラム・ノードに指示し、ステップ９１１を実施する。
【０１５８】
特定の実装では、ステップ９０５に関して、初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求が第１のリフレッシュ・パケット検出期間内に受信されたかどうかをクォーラム記憶装置が判定する２つの実装方式が存在する。ここで、クォーラム記憶装置が、マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージをマスタ・クォーラム・ノード・プリエンプション要求を送信した各クォーラム・ノードに送信する２つの方式も存在する。
【０１５９】
方式１：クォーラム記憶装置が、マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージを、全てのキャッシュされたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードの各々に送信する。その結果、当該全てのキャッシュされたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードは新たなマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に再度送信する。
【０１６０】
方式２：クォーラム記憶装置が、マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージを第１のリフレッシュ・パケット検出期間内に受信された各マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードに送信し、その結果、第１のリフレッシュ・パケット検出期間内に受信された各マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードは、新たなマスタ・クォーラム・ノード・プリエンプション要求を当該クォーラム・ノードに再度送信する。
【０１６１】
当該ステップは必須のステップでないことに留意すべきである。特定の実装では、クォーラム記憶装置が応答メッセージを送信しなくてもよいが、マスタ・クォーラム・ノード・プリエンプション要求定期送信機構を当該クォーラム・ノードに事前に設定する。当該クォーラム・ノードがクォーラム記憶装置により送信された通知メッセージを受信する前に、各クォーラム・ノードが定期的に当該マスタ・クォーラム・ノード・プリエンプション要求を送信してもよい。
【０１６２】
確かに、ブレイン分割調停効率を改善するためにクォーラム記憶装置は応答メッセージを各クォーラム・ノードに送信し、その結果、各クォーラム・ノードはブレイン分割調停の進捗を時間通りに知ることができ、マスタ・クォーラム・ノードのプリエンプションが成功した後、無効なマスタ・クォーラム・ノード・プリエンプション要求に対する処理が減る。
【０１６３】
９１１：第１のリフレッシュ・パケット検出期間に続く第２のリフレッシュ・パケット検出期間内に、クラスタ内の各クォーラム・ノードは、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信し続け、クォーラム記憶装置は、第２のリフレッシュ・パケット検出期間内に受信された対応する第１のマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードであると判定し、ステップ９１３を実施する。
【０１６４】
特定の実装では、クォーラム記憶装置が、初期マスタ・クォーラム・ノードの識別子を、第２のリフレッシュ・パケット検出期間内に受信された第１のマスタ・クォーラム・ノード・プリエンプション要求に対応するクォーラム・ノードの識別子に変更する。
【０１６５】
リフレッシュ・パケット検出期間が終了した後、クォーラム記憶装置はマスタ・クォーラム・ノードを先着順方式で決定する。即ち、クォーラム記憶装置は、第２のリフレッシュ・パケット検出期間内に受信された第１のマスタ・クォーラム・ノード・プリエンプション要求に対応するクォーラム・ノードを新たなマスタ・クォーラム・ノードとして設定し、その結果、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを高速に決定でき、ブレイン分割後のマスタ・ノード・グループを高速に決定してクラスタの正常な動作を継続することができる。
【０１６６】
第２のリフレッシュ・パケット検出期間内に受信された第１のマスタ・クォーラム・ノード・プリエンプション要求は、クォーラム記憶装置により受信され、第１のリフレッシュ・パケット検出期間に続く第２のリフレッシュ・パケット検出期間内にクォーラム記憶装置に到着した第１のマスタ・クォーラム・ノード・プリエンプション要求を指す。２つの実装可能性があってもよい。１つ目は、リフレッシュ・パケット検出期間が終了する前に各クォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション要求を既に送信し、当該検出期間の後にマスタ・クォーラム・ノード・プリエンプション要求がクォーラム記憶装置に到着するというものである。２つ目は、各クォーラム・ノードが、リフレッシュ・パケット検出期間が終了した後、マスタ・クォーラム・ノード・プリエンプション要求を送信し、当該検出期間の後、マスタ・クォーラム・ノード・プリエンプション要求がクォーラム記憶装置に到着するというものである。本発明の当該実施形態は上述の２つの可能性の何れにも限定されない。
【０１６７】
９１３：クォーラム記憶装置がマスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信する。
【０１６８】
特定の実装では、マスタ・クォーラム・ノード・プリエンプション成功応答を受信したクォーラム・ノードがマスタ・クォーラム・ノードとして選択され、マスタ・クォーラム・ノードが配置されるノード・グループは、クラスタの動作を継続するためのマスタ・ノード・グループとして使用される。
【０１６９】
９１５：クォーラム記憶装置が、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードに通知メッセージを送信する。
【０１７０】
特定の実装では、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードと異なる接続タイプを有するクォーラム・ノードに対して、クォーラム記憶装置により送信された通知メッセージのタイプは異なる。マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードが配置されるノード・グループと異なるノード・グループ内のクォーラム・ノード（即ち、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続しないクォーラム・ノード）に対して、クォーラム記憶装置はアクセス拒否通知メッセージを送信してもよく、その結果、当該クォーラム・ノードが再開され、クラスタに再参加する動作を実施する。マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードが配置されるノード・グループと同じであるノード・グループ内のクォーラム・ノード（即ち、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続するクォーラム・ノード）に対して、クォーラム記憶装置はマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを送信してもよく、その結果、当該クォーラム・ノードが、マスタ・クォーラム・ノード・プリエンプション要求を送信するのを停止する。以下の２つの実装方式が存在する。
【０１７１】
方式１：別々の送信方式を使用する。図９Ｂを参照すると、当該方式は以下のステップを含む。
【０１７２】
９１５１：クォーラム記憶装置が、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信された第１のパーミッション制御メッセージを受信する。当該第１のパーミッション制御メッセージは、クラスタ内の少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続しない第１のカテゴリのクォーラム・ノードの識別子を含む。
【０１７３】
特定の実装では、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードが、ハート・ビート検出またはリース検出により、クラスタ内のクォーラム・ノードと別のクォーラム・ノードの間の接続を検出してもよく、当該マスタ・クォーラム・ノードに接続しないクォーラム・ノードに対する第１のパーミッション制御メッセージを生成し、第１のパーミッション制御メッセージをクォーラム記憶装置に送信する。
【０１７４】
第１のカテゴリのクォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードと物理的または論理的に通信できないクォーラム・ノードを指す。即ち、第１のカテゴリのクォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続しない。実際のシナリオでは、第１のカテゴリのクォーラム・ノードとマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとは異なるノード・グループ内にある。
【０１７５】
９１５２：クォーラム記憶装置がアクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信する。当該アクセス拒否通知メッセージは、ノード再開動作を実施するように第１のカテゴリのクォーラム・ノードに指示するために使用される。
【０１７６】
１例として、特定の実装では、当該アクセス拒否通知メッセージが（表１に示すように）以下の特定のパケット・フォーマットを使用してもよく、クォーラム記憶装置に対するノード識別子およびアクセス・パーミッションを含む。例えば、ノードの識別子は当該ノードのＩＰアドレスであり、実際には別の表現方式を有してもよく、これは本発明の全ての実施形態では限定されない。クォーラム・ノードがアクセス拒否通知メッセージを受信した後、当該クォーラム・ノードがノード再開動作を実施する。
【０１７７】
【表４】
0006362120.tif 000005
【０１７８】
第１のカテゴリのクォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続しないクォーラム・ノードであるので、例えば、物理的に、２つのクォーラム・ノードが物理接続経路を有さないか、または、論理的に、２つのクォーラム・ノードの間のスイッチが故障している。実装において、第１のカテゴリのクォーラム・ノードとマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとは異なるノード・グループ内にある。マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードが配置されるノード・グループがブレイン分割調停におけるマスタ・ノード・グループとして使用されるので、第１のカテゴリのクォーラム・ノードは別のノード・グループに属し、当該ノード・グループ内のクォーラム・ノードを再開する必要があり、クラスタに再参加する動作を実施する。
【０１７９】
９１５３：クォーラム記憶装置がマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信された第２のパーミッション制御メッセージを受信する。当該第２のパーミッション制御メッセージはクラスタ内の少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続する第２のカテゴリのクォーラム・ノードの識別子を含む。
【０１８０】
特定の実装では、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードはハート・ビート検出またはリース検出により当該クォーラム・ノードと別のクォーラム・ノードの間の接続を検出し、第２のパーミッション制御メッセージを生成し、当該第２のパーミッション制御メッセージをクォーラム記憶装置に送信する。
【０１８１】
第２のカテゴリのクォーラム・ノードとは、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードと通信できるクォーラム・ノードのことをいう。即ち、第２のカテゴリのクォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続する。実際のシナリオでは、第２のカテゴリのクォーラム・ノードとマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとは同じノード・グループ内にある。
【０１８２】
９１５４：クォーラム記憶装置がマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを第２のカテゴリのクォーラム・ノードに送信する。当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージは、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止するように第２のカテゴリのクォーラム・ノードに指示するために使用される。
【０１８３】
１例として、特定の実装では、当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージは（表２に示すように）以下の特定のパケット・フォーマットを使用する。当該パケット・フォーマットは、ノード識別子とマスタ・クォーラム・ノード・プリエンプション要求の送信パーミッションとを含む。例えば、ノードの識別子は当該ノードのＩＰアドレスであり、実際には別の表現方式を有してもよく、本発明の諸実施形態では限定されない。クォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを受信した後、当該クォーラム・ノードが、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止する。
【０１８４】
【表５】
0006362120.tif 000006
【０１８５】
方式１に対して、特定の実装方式において、ステップ９１５１および９１５２とステップ９１５３および９１５４の間の実行順序は限定されない。ステップ９１５１乃至ステップ９１５４がステップ９１５１からステップ９１５４への順序に従って実行してもよく、または、ステップ９１５３および９１５４を最初に実行してもよく、ステップ９１５１および９１５２が次に実行され、これは本発明の当該実施形態では限定されない。
【０１８６】
方式２：統合送信方式を使用する。
【０１８７】
方式１との違いは、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードがパーミッション制御メッセージを生成することにある。当該メッセージは、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードの識別子とクォーラム記憶装置に対するクォーラム・ノードのアクセス・パーミッションとを含む。当該アクセス・パーミッションは許可または拒否を含む。マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードが当該パーミッション制御メッセージをクォーラム記憶装置に送信する。クォーラム記憶装置は別々に、当該識別子および当該識別子に対応するアクセス・パーミッションに従って、第１のカテゴリのクォーラム・ノードに対するアクセス拒否通知メッセージおよび第２のカテゴリのクォーラム・ノードに対するマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを生成する。第１のカテゴリのクォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続しないクォーラム・ノードであり、第２のカテゴリのクォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続するクォーラム・ノードである。２つのクォーラム・ノードが互いと接続するかがハート・ビート検出またはリース検出により判定される。当該アクセス拒否通知メッセージを受信した後、第１のカテゴリのクォーラム・ノードがノード再開とクラスタへの再参加の動作を実施してもよい。当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを受信した後、第２のカテゴリのクォーラム・ノードが、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止してもよい。
【０１８８】
以下のステップを特に含めてもよい。図９Ｃを参照すると、当該方式は、以下のステップを含む。
【０１８９】
９１５５：クォーラム記憶装置はマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信されたパーミッション制御メッセージを受信する。当該パーミッション制御メッセージは、クォーラム記憶装置に対する、クラスタ内の少なくとも２つのクォーラム・ノードにおけるマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノード内の識別子と、該クラスタ内の当該少なくとも２つのクォーラム・ノードにおけるマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードのアクセス・パーミッションとを含み、当該アクセス・パーミッションは許可または拒否を含む。
【０１９０】
１例として、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードがパーミッション制御メッセージを生成する。当該パーミッション制御メッセージは表３に示すフォーマットを使用する。
【０１９１】
【表６】
0006362120.tif 000007
【０１９２】
マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードがパーミッション制御メッセージをクォーラム記憶装置に送信する。
【０１９３】
９１５６：クォーラム記憶装置が、当該パーミッション制御メッセージに従って、クラスタ内の少なくとも２つのクォーラム・ノードにおけるマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードに通知メッセージを送信する。
【０１９４】
９１５６１：アクセス・パーミッションが拒否である第１のカテゴリのクォーラム・ノードに対して、クォーラム記憶装置がアクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信する。当該アクセス拒否通知メッセージは、ノード再開動作を実施するように第１のカテゴリのクォーラム・ノードに指示するために使用される。
【０１９５】
特定の実装では、ステップ９０５２における表１に示すパケット・フォーマットを使用してもよい。その他は同様であり、詳細についてはここでは説明しない。
【０１９６】
第１のカテゴリのクォーラム・ノードとは、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードと物理的または論理的に通信できないクォーラム・ノードを指す。即ち、第１のカテゴリのクォーラム・ノードは、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続しない。実際のシナリオでは、第１のカテゴリのクォーラム・ノードとマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとは異なるノード・グループ内にある。
【０１９７】
９１５６２：アクセス・パーミッションが許可である第２のカテゴリのクォーラム・ノードに対して、クォーラム記憶装置がマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを第２のカテゴリのクォーラム・ノードに送信する。当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージは、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止するように第２のカテゴリのクォーラム・ノードに指示するために使用される。
【０１９８】
特定の実装では、ステップ９０５４における表２に示すパケット・フォーマットを使用してもよい。その他は同様であり、詳細についてはここでは説明しない。
【０１９９】
第２のカテゴリのクォーラム・ノードとは、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードと通信できるクォーラム・ノードのことをいう。即ち、第２のカテゴリのクォーラム・ノードがマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続する。実際のシナリオでは、第２のカテゴリのクォーラム・ノードとマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとは同じノード・グループ内にある。
【０２００】
上述の２つの実装方式により、クラスタ内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードが、クォーラム記憶装置により送信されたメッセージに従って対応する処理を実施することができる。特に、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続しないクォーラム・ノード（ブレイン分割後の別のノード・グループ内のクォーラム・ノード）が再開動作を実施してもよい。マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続するクォーラム・ノード（ブレイン分割後のマスタ・ノード・グループ内のクォーラム・ノード）がマスタ・クォーラム・ノード・プリエンプション要求を送信するのを停止する。上述の処理により、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードが決定された後、他のクォーラム・ノードは、ブレイン分割後にマスタ・クォーラム・ノードのプリエンプションから高速に復元することができる、その結果、クラスタの通常のサービスの高速な復元を効果的に実装することができる。
【０２０１】
９１５７：アクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信した後、クォーラム記憶装置はまた、ファイアウォール・ポリシを拒否に変更するために使用される通知メッセージを第１のカテゴリのクォーラム・ノードに送信する。当該通知メッセージは、第１のカテゴリのクォーラム・ノードのファイアウォール内のファイアウォール・ポリシを拒否に変更して、第１のカテゴリのクォーラム・ノードによりクォーラム記憶装置に送信されたマスタ・クォーラム・ノード・プリエンプション要求をブロックするように第１のカテゴリのクォーラム・ノードに指示するために使用される。
【０２０２】
特定の実装では、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードと異なるノード・グループ内のクォーラム・ノード、即ち、第１のカテゴリのクォーラム・ノードに対して、当該クォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信し続けるのを避けるため、当該クォーラム記憶装置が、ファイアウォール・ポリシを変更するために使用される通知メッセージを当該クォーラム・ノードに送信する。当該通知メッセージを受信した後、当該クォーラム・ノードは、当該クォーラム・ノードに対応するファイアウォール内のファイアウォール・ポリシを変更して、当該クォーラム・ノードによりクォーラム記憶装置に送信されたマスタ・クォーラム・ノード・プリエンプション要求をブロックしてもよい。
【０２０３】
第１のカテゴリのクォーラム・ノードが再開動作を実施し、クラスタに再度参加した後、当該方法の実施形態はさらに、クォーラム記憶装置により、ファイアウォール・ポリシを許可に変更するために使用される通知メッセージを第１のカテゴリのクォーラム・ノードに送信するステップを含むことに留意すべきである。ファイアウォール・ポリシを許可に変更するために使用される当該通知メッセージは、第１のカテゴリのクォーラム・ノードのファイアウォール内のファイアウォール・ポリシを許可に変更して、第１のカテゴリのクォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信できるようにするように第１のカテゴリのクォーラム・ノードに指示するために使用される。
【０２０４】
第１のカテゴリのクォーラム・ノードを再開する前に、第１のカテゴリのクォーラム・ノードはさらにマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信することに留意すべきである。当該ステップの設定は効果的に、当該クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求をブロックして、クォーラム記憶装置が無効なマスタ・クォーラム・ノード・プリエンプション要求に関する処理能力を無駄にするのを回避することができる。
【０２０５】
上述の解決策は、ブレイン分割がクラスタ内で行われた後、調停を通じてマスタ・ノード・グループを決定できないという先行技術の問題を効果的に解決することができる。
【０２０６】
クラスタ・ブレイン分割が終了した後の調停処理の後、クラスタ内のクォーラム・ノードを除く別のノードが、ハート・ビート検出またはリース検出により、当該ノードとマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとの間の接続を決定してもよい。当該ノードがマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続すると判定されたとき、これは、当該ノードとマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとは同じノード・グループ内にあり、当該ノードが動作し続けることを示す。当該ノードがマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続しないと判定されたとき、これは、当該ノードとマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとが異なるノード・グループ内にあることを示し、当該ノードは再開をトリガし、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードが配置されるノード・グループに再参加するプロセス実施する。
【０２０７】
本発明の第３の装置の実施形態
図１０を参照すると、本発明はさらに、クラスタおよびクォーラム記憶装置１０００により形成されたシステムに提供される、当該クラスタ内の調停処理に使用されるクォーラム記憶装置１０００を提供する。当該クラスタは少なくとも２つのクォーラム・ノードを含み、クォーラム記憶装置１０００は、当該クラスタ内の少なくとも２つのクォーラム・ノードの１つを初期マスタ・クォーラム・ノードに予め構成する。クォーラム記憶装置１０００は、リフレッシュ・パケット検出期間を開始するように構成された開始ユニット１００５であって、当該リフレッシュ・パケット検出期間は反復実行される期間であり、当該開始ユニットをタイマを設定することにより実装してもよい、開始ユニット１００５と、第１のリフレッシュ・パケット検出期間内に、ブレイン分割がクラスタ内で行われた後、クラスタ内の少なくとも２つのクォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求を受信するように構成された受信ユニット１００１であって、第１のリフレッシュ・パケット検出期間はブレイン分割がクラスタ内で行われた時点に対応するリフレッシュ・パケット検出期間であり、当該受信ユニットの受信方式を有線または無線の方式で実装してもよく、無線方式を実装に使用するとき、当該受信ユニットを無線周波数モジュールを用いて実装してもよく、有線方式を実装に使用するとき、当該受信ユニットを有線インタフェースを用いて実装してもよい、受信ユニット１００１と、初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求が第１のリフレッシュ・パケット検出期間内に受信されたかどうかを判定するように構成された判定ユニット１００２であって、当該判定ユニットを判定ロジックにより実装してもよい、判定ユニット１００２と、初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求が第１のリフレッシュ・パケット検出期間内に受信されたと判定されたとき、初期マスタ・クォーラム・ノードはマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードであると判定するように構成された実行ユニット１００３であって、当該実行ユニットをプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を用いて実装してもよい、実行ユニット１００３と、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信するように構成された送信ユニット１００４であって、当該送信ユニットは当該受信ユニットと同様であり、有線方式または無線方式で実装してもよく、無線方式（例えば、無線周波数）が実装に使用されるとき、当該送信ユニットを無線周波数モジュールを用いて実装してもよく、有線方式（例えば、Ｅｔｈｅｒｎｅｔ）が実装に使用されるとき、当該送信ユニットを有線インタフェースを用いて実装してもよい、送信ユニット１００４とを備える。
【０２０８】
さらに、クォーラム記憶装置１０００において、実行ユニット１００３はさらに、初期マスタ・クォーラム・ノードにより送信されたマスタ・クォーラム・ノード・プリエンプション要求が第１のリフレッシュ・パケット検出期間内に受信されないと判定されたとき、第２のリフレッシュ・パケット検出期間内に受信された第１のマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードとして使用し、送信ユニット１００４をトリガするように構成され、第２のリフレッシュ・パケット検出期間は第１のリフレッシュ・パケット検出期間に続くリフレッシュ・パケット検出期間である。送信ユニット１００４はさらに、マスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信するように構成される。
【０２０９】
さらに、判定ユニット１００２は特に、ブレイン分割がクラスタ内で行われた後、第１のリフレッシュ・パケット検出期間内に受信された全てのマスタ・クォーラム・ノード・プリエンプション要求をキャッシュし、全てのキャッシュされたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが初期マスタ・クォーラム・ノードを含むかどうかを判定するか、または、ブレイン分割がクラスタ内で行われた後、第１のリフレッシュ・パケット検出期間内に受信された各マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが初期マスタ・クォーラム・ノードであるかどうかを逐次的に判定するように構成される。
【０２１０】
さらに、実行ユニット１００３はさらに、判定ユニット１００２が当該全てのキャッシュされたマスタ・クォーラム・ノード・プリエンプション要求を送信するクォーラム・ノードが初期マスタ・クォーラム・ノードを含まないと判定した後、マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージを生成するように構成され、送信ユニット１００４はさらに、マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージを当該全てのキャッシュされたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードの各々に送信するように構成され、その結果、当該全てのキャッシュされたマスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードは新たなマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に再度送信する。
【０２１１】
さらに、実行ユニット１００３はさらに、第１のリフレッシュ・パケット検出期間内に受信された各マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが初期マスタ・クォーラム・ノードを含まないと判定されたとき、マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージを生成するように構成され、送信ユニット１００４はさらに、当該マスタ・クォーラム・ノードのプリエンプション失敗応答メッセージを第１のリフレッシュ・パケット検出期間内に受信された各マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードに送信するように構成され、その結果、第１のリフレッシュ・パケット検出期間内に受信された各マスタ・クォーラム・ノード・プリエンプション要求を送信したクォーラム・ノードが新たなマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に再度送信する。
【０２１２】
さらに、クォーラム記憶装置１０００において、受信ユニット１００１はさらに、送信ユニット１００４がマスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信した後、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信された第１のパーミッション制御メッセージを受信するように構成され、当該第１のパーミッション制御メッセージは、クラスタ内の少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続しない第１のカテゴリのクォーラム・ノードの識別子を含む。実行ユニット１００３はさらに、当該第１のパーミッション制御メッセージに従ってアクセス拒否通知メッセージを生成し、送信ユニット１００４をトリガするように構成され、送信ユニット１００４はさらに、当該アクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信して、ノード再開動作を実施するように第１のカテゴリのクォーラム・ノードに指示するように構成される。
【０２１３】
さらに、クォーラム記憶装置１０００において、受信ユニット１００１はさらに、送信ユニット１００４がマスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信した後、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信された第２のパーミッション制御メッセージを受信するように構成され、第２のパーミッション制御メッセージはクラスタ内の少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに接続する第２のカテゴリのクォーラム・ノードの識別子を含み、実行ユニット１００３はさらに、第２のパーミッション制御メッセージに従ってマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを生成し、送信ユニット１００４をトリガするように構成され、送信ユニット１００４はさらに、当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを第２のカテゴリのクォーラム・ノードに送信して、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置１０００に送信するのを停止するように第２のカテゴリのクォーラム・ノードに指示するように構成される。
【０２１４】
さらに、クォーラム記憶装置１０００において、受信ユニット１００１はさらに、送信ユニット１００４がマスタ・クォーラム・ノード・プリエンプション成功応答メッセージをマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードに送信した後、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードにより送信されたパーミッション制御メッセージを受信するように構成され、当該パーミッション制御メッセージは、クォーラム記憶装置１０００に対する、少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードの識別子と、当該少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードのアクセス・パーミッションとを含み、当該アクセス・パーミッションは許可または拒否を含む。実行ユニット１００３はさらに、当該パーミッション制御メッセージに従って通知メッセージを生成し、送信ユニット１００４をトリガするように構成される。送信ユニット１００４はさらに、当該通知メッセージを当該少なくとも２つのクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードを除く別のクォーラム・ノードに送信するように構成される。
【０２１５】
さらに、クォーラム記憶装置１０００において、実行ユニット１００３は特に、アクセス・パーミッションが拒否である第１のカテゴリのクォーラム・ノードに対してアクセス拒否通知メッセージを生成するように構成され、当該アクセス拒否通知メッセージは、ノード再開動作を実施するように第１のカテゴリのクォーラム・ノードに指示するために使用される。送信ユニット１００４は特に、当該アクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信するように構成される。
【０２１６】
さらに、クォーラム記憶装置１０００において、実行ユニット１００３は特に、アクセス・パーミッションが許可である第２のカテゴリのクォーラム・ノードに対してマスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを生成するように構成される。当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージは、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置１０００に送信するのを停止するように第２のカテゴリのクォーラム・ノードに指示するために使用される。送信ユニット９０４は特に、当該マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを第２のカテゴリのクォーラム・ノードに送信するように構成される。
【０２１７】
さらに、クォーラム記憶装置１０００において、実行ユニット１００３はさらに、送信ユニット１００４がアクセス拒否通知メッセージを第１のカテゴリのクォーラム・ノードに送信した後、第１のカテゴリのクォーラム・ノードに対して、ファイアウォール・ポリシを拒否に変更するために使用される通知メッセージを生成するように構成され、ファイアウォール・ポリシを拒否に変更するために使用される通知メッセージは、第１のカテゴリのクォーラム・ノードのファイアウォール内のファイアウォール・ポリシを拒否に変更して、第１のカテゴリのクォーラム・ノードによりクォーラム記憶装置１０００に送信されたマスタ・クォーラム・ノード・プリエンプション要求をブロックするように第１のカテゴリのクォーラム・ノードに指示するために使用される。送信ユニット１００４はさらに、ファイアウォール・ポリシを変更するために使用される当該通知メッセージを第１のカテゴリのクォーラム・ノードに送信するように構成される。
【０２１８】
さらに、クォーラム記憶装置１０００において、実行ユニット１００３はさらに、第１のカテゴリのクォーラム・ノードが再開動作を実施し、クラスタに再度参加した後、第１のカテゴリのクォーラム・ノードに対して、ファイアウォール・ポリシを許可に変更するために使用される通知メッセージを生成するように構成され、ファイアウォール・ポリシを許可に変更するために使用される当該通知メッセージは、第１のカテゴリのクォーラム・ノードのファイアウォール内のファイアウォール・ポリシを許可に変更して、第１のカテゴリのクォーラム・ノードがマスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信できるようにするように第１のカテゴリのクォーラム・ノードに指示するために使用される。送信ユニット１００４はさらに、ファイアウォール・ポリシを許可に変更するために使用される当該通知メッセージを第１のカテゴリのクォーラム・ノードに送信するように構成される。
【０２１９】
本発明の全ての実施形態を、１つのクォーラム記憶装置が存在する例を用いて説明する。Ｎ個の（Ｎ≧３およびＮは奇数である）クォーラム記憶装置があるとき、クラスタ内の少なくとも２つのクォーラム・ノードは、マスタ・クォーラム・ノード・プリエンプション要求を当該Ｎ個のクォーラム記憶装置内の各クォーラム記憶装置に送信する。Ｒｏｕｎｄ（Ｎ／２）＋１個のクォーラム記憶装置により送信されたマスタ・クォーラム・ノード・プリエンプション成功通知メッセージを取得できるクォーラム・ノードは、マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードと呼ばれる。マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードが配置されるノード・グループはマスタ・ノード・グループである。他のクォーラム・ノード内のマスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードと通信できるクォーラム・ノードは、マスタ・クォーラム・ノード・プリエンプション失敗通知メッセージを受信してもよく、マスタ・クォーラム・ノード・プリエンプション要求をクォーラム記憶装置に送信するのを停止してもよい。マスタ・クォーラム・ノードのプリエンプションに成功したクォーラム・ノードと通信できないクォーラム・ノードがアクセス拒否通知メッセージを受信してもよい。当該アクセス拒否通知メッセージは、ノード再開動作を実施するように当該クォーラム・ノードに指示するために使用される。具体的な処理プロセスは１つのクォーラム記憶装置があるときの処理プロセスと同様であるので、詳細は本発明の当該実施形態では説明しない。
【０２２０】
本発明における特定の例は、当業者が本発明の諸実施形態をより良く理解するのを支援するためのものであるが、本発明の諸実施形態の範囲を限定するためのものではないことは理解されるべきである。
【０２２１】
上述のプロセスのシーケンス番号は本発明の様々な実施形態における実行順序を意味しないことも理解されるべきである。プロセスの実行順序は当該プロセスの機能および内部ロジックに従って決定されるべきであり、本発明の諸実施形態の実装プロセスに対する限定として解釈されるべきではない。
【０２２２】
本発明の当該実施形態における「および／または」という用語は、関連付けられたオブジェクトを説明するための関連付け関係のみを示し、３つの関係が存在しうることを表すこともさらに理解されるべきである。例えば、Ａおよび／またはＢが以下の３つのケース、即ち、Ａのみが存在すること、ＡおよびＢの両方が存在すること、およびＢのみが存在することを表してもよい。さらに、本明細書における「／」という文字は一般に、関連付けられたオブジェクトの間の「または」の関係を示す。
【０２２３】
本明細書で開示した実施形態で説明した例と組み合わせて、ユニットおよびアルゴリズムのステップを電子ハードウェア、コンピュータ・ソフトウェア、またはそれらの組合せにより実装してもよいことを当業者は認識しうる。ハードウェアとソフトウェアの間の交換可能性を明確に説明するために、以上では機能に従う各例の構成とステップを一般的に説明した。当該機能がハードウェアまたはソフトウェアにより実施されるかどうかは技術的解決策の特定の適用と設計制約条件に依存する。当業者は様々な方法を使用して特定のアプリケーションごとに説明した機能を実施してもよいが、当該実装が本発明の範囲を越えるとは考えるべきではない。
【０２２４】
便宜上および説明の簡単さのため、上述の装置およびユニットの詳細な動作プロセス、および方法の詳細なプロセスについては上述のシステムの実施形態における対応する説明を参照できることは当業者により明確に理解でき、詳細についてはここでは説明しない。
【０２２５】
本願で提供した幾つかの実施形態において、開示したシステム、装置、および方法を他の方式で実装してもよいことは理解されるべきである。例えば、説明した装置の実施形態は例示的なものにすぎない。例えば、ユニット分割は論理的な機能分割にすぎず、実際の実装では他の分割であってもよい。例えば、複数のユニットまたはコンポーネントを別のシステムに組み合わせるかまたは統合してもよく、または、幾つかの機能を無視するかまたは実施しなくてもよい。さらに、幾つかのインタフェースを用いて、説明または議論した相互結合または直接結合または通信接続を実装してもよい。当該装置またはユニットの間の間接結合または通信接続を、電気、機械、または他の形態で実装してもよい。
【０２２６】
別々の部分として説明されたユニットが物理的に分離されていてもいなくてもよく、ユニットとして表示した部分が物理ユニットであってもなくてもよく、１つの位置に配置されてもよく、または、複数のネットワーク・ユニットに分散されてもよい。当該ユニットの一部または全部を、本発明の諸実施形態の解決策の目的を実現するための実際のニーズに従って選択してもよい。
【０２２７】
さらに、本発明の諸実施形態における機能ユニットを１つの処理ユニットに統合してもよく、または、当該ユニットの各々が物理的に単体で存在してもよく、または、２つまたはそれより多くのユニットが１つのユニットに統合される。当該統合されたユニットをハードウェアの形態で実装してもよく、または、ソフトウェア機能ユニットの形態で実装してもよい。
【０２２８】
統合されたユニットがソフトウェア機能ユニットの形態で実装され、独立な製品として販売または使用されるとき、当該統合されたユニットをコンピュータ可読記憶媒体に格納してもよい。かかる理解に基づいて、本発明の技術的解決策を本質的に、または、先行技術に寄与する部分、または、当該技術的解決策の全部もしくは一部をソフトウェア製品の形で実装してもよい。当該コンピュータ・ソフトウェア製品は記憶媒体に格納され、本発明の諸実施形態で説明した方法のステップの全部または一部を実施するように（パーソナル・コンピュータ、サーバ、またはネットワーク装置であってもよい）コンピュータ装置に指示するための幾つかの命令を含む。上述の記憶媒体は、ＵＳＢフラッシュ・ドライブ、取外し可能ハード・ディスク、読取専用メモリ（ＲＯＭ、Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ランダム・アクセス・メモリ（ＲＡＭ、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、磁気ディスク、または光ディスクのような、プログラム・コードを格納できる任意の媒体を含む。
【０２２９】
以上の説明は本発明の特定の実施形態にすぎず、本発明の保護範囲を限定しようとするものではない。本発明で開示した技術的範囲内で当業者が容易に想到する任意の修正または置換えは本発明の保護範囲内に入るものとする。したがって、本発明の保護範囲は特許請求の範囲の保護範囲に支配されるべきである。
【符号の説明】
【０２３０】
４０１  受信ユニット
４０２  判定ユニット
４０３  実行ユニット
４０４  送信ユニット
５０１  プロセッサ
５０２  メモリ
５０３  通信インタフェース
６０１  受信ユニット
６０２  判定ユニット
６０３  送信ユニット
７０１  プロセッサ
７０２  メモリ
７０３  通信インタフェース
８１１  クォーラム・ノード
８１１１  クォーラム・ノード・
８２０  クォーラム記憶装置
１００１  受信ユニット
１００２  判定ユニット
１００３  実行ユニット
１００４  送信ユニット
１００５  開始ユニット
【図１】
0006362120.tif 000008
【図２Ａ】
0006362120.tif 000009
【図２Ｂ】
0006362120.tif 000010
【図２Ｃ】
0006362120.tif 000011
【図３】
0006362120.tif 000012
【図４】
0006362120.tif 000013
【図５】
0006362120.tif 000014
【図６】
0006362120.tif 000015
【図７】
0006362120.tif 000016
【図８】
0006362120.tif 000017
【図９Ａ】
0006362120.tif 000018
【図９Ｂ】
0006362120.tif 000019
【図９Ｃ】
0006362120.tif 000020
【図１０】
0006362120.tif 000021