(57)【特許請求の範囲】
【請求項１】
ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムのサーバであって、ブロックデバイスドライバ装置と、少なくとも１つのブロックデバイスサービス装置とを備え、
前記ブロックデバイスドライバ装置は、
ブロックデバイスサービス装置に対応するデータの書き込み／読み取り要求の受信に応答して、前記ブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に、受信した前記データの書き込み／読み取り要求を置き、
前記待機待ち行列からデータの書き込み／読み取り要求をフェッチして、前記フェッチされた要求を、前記ブロックデバイスサービス装置のために事前に維持されている保留待ち行列に転送し、
前記保留待ち行列内のデータの書き込み／読み取り要求を、処理のために前記ブロックデバイスサービス装置に送信し、
受信した前記データの書き込み／読み取り要求についての前記ブロックデバイスサービス装置からの処理結果の受信に応答して、前記送信されたデータの書き込み／読み取り要求を前記保留待ち行列から削除し、
前記ブロックデバイスサービス装置がサービスアップグレードを行うという判定に応答して、前記保留待ち行列内のデータの書き込み／読み取り要求を、処理のために前記ブロックデバイスサービス装置に送信することを停止し、
サービスアップグレードが行われる、または完了したという判定に応答して、前記保留待ち行列内の前記データの書き込み／読み取り要求を前記待機待ち行列に転送し戻すように構成され、
前記ブロックデバイスサービス装置は、
前記ブロックデバイスドライバ装置から送信された前記データの書き込み／読み取り要求に基づいて、ブロックデバイスの記憶リソースプールのために要求されたデータに対応する読み取りおよび書き込みの動作を行うように構成される、サーバ。
【請求項２】
前記ブロックデバイスサービス装置の始動を制御し、
始動時に、前記ブロックデバイスドライバ装置と、前記始動されたブロックデバイスサービス装置との間の通信接続を確立するように構成される、クライアント装置をさらに備える、請求項１に記載のサーバ。
【請求項３】
前記クライアント装置は、
前記ブロックデバイスサービス装置の停止を制御し、
停止時に、前記ブロックデバイスドライバ装置と、前記停止されたブロックデバイスサービス装置との間の前記通信接続を解除するようにさらに構成される、請求項２に記載のサーバ。
【請求項４】
前記ブロックデバイスドライバ装置は、前記ブロックデバイスサービス装置との通信接続を検査するようにさらに構成される、請求項１に記載のサーバ。
【請求項５】
前記ブロックデバイスドライバ装置は、前記ブロックデバイスサービス装置との前記通信接続が切断されたという判定に応答して、前記ブロックデバイスサービス装置がサービスアップグレードを行うと判定するようにさらに構成される、請求項４に記載のサーバ。
【請求項６】
前記ブロックデバイスドライバ装置は、前記ブロックデバイスサービス装置との前記通信接続が接続のために回復されたという判定に応答して、前記ブロックデバイスサービス装置が前記サービスアップグレードを完了したと判定するようにさらに構成される、請求項４に記載のサーバ。
【請求項７】
ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムをアップグレードする方法であって、
ブロックデバイスに関連付けられたサービスに対応する、データの書き込み／読み取り要求の受信に応答して、その都度、前記ブロックデバイスに関連付けられた前記サービスのために事前に維持された待機待ち行列内に、受信した前記データの書き込み／読み取り要求を置くことと、
前記待機待ち行列からデータの書き込み／読み取り要求をフェッチすること、前記フェッチされた要求を、前記ブロックデバイスに関連付けられた前記サービスのために事前に維持されている保留待ち行列に転送すること、前記保留待ち行列内のデータの書き込み／読み取り要求を、処理のために前記ブロックデバイスに関連付けられた前記サービスに送信すること、および受信した前記データの書き込み／読み取り要求についての、前記ブロックデバイスに関連付けられた前記サービスからの処理結果の受信に応答して、前記送信されたデータの書き込み／読み取り要求を前記保留待ち行列から削除することと、
前記ブロックデバイスに関連付けられた前記サービスが、サービスアップグレードを行うという判定に応答して、前記保留待ち行列内のデータの書き込み／読み取り要求を、処理のために前記ブロックデバイスに関連付けられた前記サービスに送信することを停止することと、
サービスアップグレードが行われる、または完了したという判定に応答して、前記保留待ち行列内の前記データの書き込み／読み取り要求を前記待機待ち行列に転送し戻すことと、
を含む、方法。
【請求項８】
前記サービスアップグレードが行われる、または完了したという判定は、前記ブロックデバイスに関連付けられた前記サービスとの通信接続を検査することを含む、請求項７に記載の方法。
【請求項９】
前記サービスアップグレードが行われる、または完了したという判定は、前記ブロックデバイスに関連付けられた前記サービスとの前記通信接続が切断されたという判定に応答して、前記ブロックデバイスに関連付けられた前記サービスがサービスアップグレードを行うと判定することをさらに含む、請求項８に記載の方法。
【請求項１０】
前記サービスアップグレードが行われる、または完了したという判定は、前記ブロックデバイスに関連付けられた前記サービスとの前記通信接続が、接続のために回復されたという判定に応答して、前記ブロックデバイスに関連付けられた前記サービスが前記サービスアップグレードを完了したと判定することをさらに含む、請求項８に記載の方法。
【請求項１１】
前記待機待ち行列からデータの書き込み／読み取り要求をフェッチして、前記フェッチされた要求を、前記ブロックデバイスに関連付けられた前記サービスのために事前に維持されている保留待ち行列に転送することは、
前記待機待ち行列の先頭から前記データの書き込み／読み取り要求をフェッチすることと、
前記フェッチされたデータの書き込み／読み取り要求を、前記待機待ち行列から削除することと、
前記フェッチされたデータの書き込み／読み取り要求を、事前に維持された前記保留待ち行列に転送することと、
を含む、請求項７に記載の方法。
【請求項１２】
ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムをアップグレードする装置であって、
ブロックデバイスに関連付けられたサービスに対応する、データの書き込み／読み取り要求の受信に応答して、その都度、前記ブロックデバイスに関連付けられた前記サービスのために事前に維持された待機待ち行列内に、受信した前記データの書き込み／読み取り要求を置くように構成される、待機待ち行列維持ユニットと、
前記待機待ち行列からデータの書き込み／読み取り要求をフェッチして、前記フェッチされた要求を、前記ブロックデバイスに関連付けられた前記サービスのために事前に維持された保留待ち行列に転送するように構成される、保留待ち行列維持ユニットと、
前記保留待ち行列内のデータの書き込み／読み取り要求を、処理のために、前記ブロックデバイスに関連付けられた前記サービスに送信し、
受信した前記データの書き込み／読み取り要求についての、前記ブロックデバイスに関連付けられた前記サービスからの処理結果の受信に応答して、前記送信されたデータの書き込み／読み取り要求を前記保留待ち行列から削除し、
前記ブロックデバイスに関連付けられた前記サービスが、サービスアップグレードを行うという判定に応答して、前記保留待ち行列内のデータの書き込み／読み取り要求を、処理のために、前記ブロックデバイスに関連付けられた前記サービスに送信することを停止し、
サービスアップグレードが行われる、または完了したという判定に応答して、前記保留待ち行列内の前記データの書き込み／読み取り要求を、前記待機待ち行列に転送し戻す、ように構成される、書き込み／読み取り要求処理ユニットと、
を備える、装置。
【請求項１３】
前記書き込み／読み取り要求処理ユニットは、前記装置と前記ブロックデバイスに関連付けられた前記サービスとの間の通信接続を検査するようにさらに構成される、請求項１２に記載の装置。
【請求項１４】
前記書き込み／読み取り要求処理ユニットは、前記通信接続が切断されたという判定に応答して、前記ブロックデバイスに関連付けられた前記サービスが、サービスアップグレードを行うと判定するようにさらに構成される、請求項１３に記載の装置。
【請求項１５】
前記書き込み／読み取り要求処理ユニットは、前記通信接続が回復されたという判定に応答して、前記ブロックデバイスに関連付けられた前記サービスが、前記サービスアップグレードを完了したと判定するようにさらに構成される、請求項１３に記載の装置。
【請求項１６】
前記保留待ち行列維持ユニットは、前記待機待ち行列の先頭から前記データの書き込み／読み取り要求をフェッチし、前記フェッチされたデータの書き込み／読み取り要求を前記待機待ち行列から削除し、前記フェッチされたデータの書き込み／読み取り要求を、事前に維持されている前記保留待ち行列に転送する、請求項１２に記載の装置。
【請求項１７】
ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムであって、
前記ブロックデバイスに関連付けられた前記記憶サービスに基づいて、前記エラスティックコンピューティングクラウドシステムのデータを格納するように構成される、記憶リソースプールと、
ブロックデバイスに関連付けられたサービスに対応する、データの書き込み／読み取り要求の受信に応答して、その都度、前記ブロックデバイスに関連付けられた前記サービスのために、事前に維持されている待機待ち行列内に前記受信したデータの書き込み／読み取り要求を置き、
前記待機待ち行列からデータの書き込み／読み取り要求をフェッチして、前記フェッチされた要求を、前記ブロックデバイスに関連付けられた前記サービスのために、事前に維持されている保留待ち行列に転送し、
前記保留待ち行列内の前記データの書き込み／読み取り要求に基づいて、前記記憶リソースプールのために要求されたデータに対応する読み込みおよび書き込みの動作を行い、
前記ブロックデバイスに関連付けられた前記サービスが、サービスアップグレードを行うという判定に応答して、前記保留待ち行列内のデータの書き込み／読み取り要求を、処理のために、前記ブロックデバイスに関連付けられた前記サービスに送信することを停止し、
サービスアップグレードが行われる、または完了したという判定に応答して、前記保留待ち行列内の前記データの書き込み／読み取り要求を、前記待機待ち行列に転送し戻す、ように構成される、少なくとも１つの物理サーバと、
を備える、エラスティックコンピューティングクラウドシステム。
【請求項１８】
前記記憶リソースプールは、前記少なくとも１つの物理サーバと共にローカルに展開される、請求項１７に記載のシステム。
【請求項１９】
前記記憶リソースプールは、前記少なくとも１つの物理サーバから遠隔に展開される、請求項１７に記載のシステム。
【請求項２０】
前記少なくとも１つの物理サーバは、前記フェッチされたデータの書き込み／読み取り要求の、前記保留待ち行列への転送に応答して、前記フェッチされたデータの書き込み／読み取り要求を、前記待機待ち行列から取り除くようにさらに構成される、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ブロックデバイスに関連付けられたエラスティックコンピューティングクラウドおよび記憶サービスの技術分野に関し、具体的には、ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムをアップグレードするための装置、方法、およびシステムに関する。
【背景技術】
【０００２】
（関連出願の相互参照）
本出願は、２０１１年１月５日に出願された、「Ａｐｐａｒａｔｕｓ，Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｏｆ  Ｕｐｇｒａｄｉｎｇ  Ｅｌａｓｔｉｃ  Ｃｏｍｐｕｔｉｎｇ  Ｃｌｏｕｄ  Ｓｙｓｔｅｍ」という題名の中国特許出願第２０１１１０００１２９７．Ｘ号の優先権を主張し、その全体が、参照により本明細書に組み込まれる。
【０００３】
エラスティックコンピューティングクラウドは、リソース使用率を改善するため、およびコストを削減するために、仮想化技術に基づいて、ローカル物理サーバを、使用用の複数の仮想サーバとして仮想化するコンピューティングクラウドサービスである。エラスティックコンピューティングクラウド技術に基づいて仮想化された、仮想サーバ（すなわち、仮想マシン）の記憶サービスは、ブロックデバイスベースの遠隔記憶サービスであり、これは業界において、エラスティックブロック記憶と呼ばれる。
【０００４】
ブロックデバイスの遠隔記憶サービスは、ブロックデバイスドライバによって提供されるブロックレベルの記憶サービスである。ローカル物理サーバおよび／または仮想サーバは、サーバのデータを遠隔記憶リソースプール内にブロックの単位で記憶することができ、それによりローカル記憶リソースを節約する。つまり、ブロックデバイスの遠隔記憶サービスは、ローカル物理サーバおよび／または仮想サーバのデータを格納するための物理ハードドライブに類似したサービスを提供し、データフォーマットおよびファイルシステムフォーマットに制限がない。
【０００５】
エラスティックコンピューティングクラウド技術の急速な発展に伴い、エラスティックブロック記憶サービスは、遠隔記憶サービスの高可用性について高い基準を有する。一般に、エラスティックコンピューティングクラウドに基づいて仮想化された仮想サーバが何万とある。これらの何万もの仮想サーバは、第三者（政府機関、従来の大企業、および中小企業、小規模および中規模のインターネットのウェブマスター、個人ユーザ、等）に使用してもらうために提供される。複数の仮想サーバから形成されるクラスタは、動作のために、ブロックデバイスの遠隔記憶サービスに依存する。遠隔記憶は、エラスティックコンピューティングクラウドシステム全体のデータを保持し、循環させる。遠隔記憶サービスの可用性は、エラスティックコンピューティングクラウドシステム全体の可用性に関連する。
【０００６】
ブロックデバイスの遠隔記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードする際、既存の技術は、まずサービスのユーザに、アップグレード処理のためにサービスが一時的に使用不能となることを通知して、記憶サービスのサービスアップグレード（例えば、バグの修復または新機能の提供、等）を行うために、エラスティックコンピューティングクラウドシステム全体のそれぞれの仮想サーバのサービスを一時的に中断する必要がある。再展開されたサービスが正常に動作した後、エラスティックコンピューティングクラウドシステム全体の仮想サーバは通常の動作に戻ることができ、それによりアップグレード処理が完了する。アップグレード処理は、ユーザがエラスティックコンピューティングクラウドシステムの仮想サーバによって提供されたウェブサービスを使用するウェブページにアクセスし続けることを防止する、つまりユーザが分散コンピューティングを行うためにエラスティックコンピューティングクラウドシステムの仮想サーバを使用している場合に、ユーザに対して進行中の分散コンピューティングを終了するように強要する。
【０００７】
以上のように、ブロックデバイスの遠隔記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムを既存の技術でアップグレードする場合、関連するアップグレード処理は非常に複雑である。アップグレード処理は、比較的長い時間がかかり、一般にアップグレード作業の完了には数時間を要するため、アップグレードの効率は比較的低い。さらに、アップグレードの処理中、ユーザは進行中のトランザクションを終了するように強要される場合があるため、ユーザに対してサービスの高可用性を提供することを保障できず、ユーザの使用経験を悪化させる。
【発明の概要】
【０００８】
本開示の例示的な実施形態は、オンラインアップグレードの技法を通じてアップグレードの効率を改善し、アップグレード中に、ユーザによって目下使用されているトランザクションが終了されることに起因するユーザの悪い使用経験の問題を回避するために、ブロックデバイスの遠隔記憶に基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードするための装置、方法、およびシステムを提供する。
【０００９】
本開示の第１の態様によると、本開示の例示的な実施形態は、ブロックデバイスの記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムのサーバを提供する。一実施形態において、サーバには、ブロックデバイスドライバ装置、および少なくとも１つのブロックデバイスサービス装置が含まれる。ブロックデバイスドライバ装置は、ブロックデバイスサービス装置に対応するデータの書き込み／読み取り要求の受信に応答して、受信したデータの書き込み／読み取り要求を、ブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に置くように構成される。
【００１０】
加えて、ブロックデバイスドライバ装置はさらに、待機待ち行列からデータの書き込み／読み取り要求をフェッチして、フェッチされた要求を、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列に転送し、保留待ち行列内のデータの書き込み／読み取り要求を、処理のためにブロックデバイスサービス装置に送信することができる。受信したデータの書き込み／読み取り要求についての、ブロックデバイスサービス装置からの処理結果の受信に応答して、ブロックデバイスドライバ装置は、送信されたデータの書き込み／読み取り要求を保留待ち行列から削除することができる。
【００１１】
一実施形態では、ブロックデバイスドライバ装置は、ブロックデバイスサービス装置がサービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み／読み取り要求を、処理のためにブロックデバイスサービス装置に送信することを停止することができ、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み／読み取り要求を待機待ち行列に転送し戻すことができる。
【００１２】
さらに、ブロックデバイスサービス装置は、ブロックデバイスドライバ装置から送信されたデータの書き込み／読み取り要求に基づいて、ブロックデバイスの記憶リソースプールのために要求されたデータに対応する読み込みおよび書き込みの動作を行うように構成されてもよい。
【００１３】
本開示の第２の態様によると、本開示の例示的な実施形態は、ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードする方法をさらに提供する。一実施形態において、本方法には、ブロックデバイスに関連付けられたサービスに対応するデータの書き込み／読み取り要求の受信に応答して、その都度、ブロックデバイスに関連付けられたサービスのために事前に維持されている待機待ち行列内に、受信したデータの書き込み／読み取り要求を置くことが含まれる。本方法はさらに、待機待ち行列からデータの書き込み／読み取り要求をフェッチして、フェッチされた要求を、ブロックデバイスに関連付けられたサービスのために事前に維持されている保留待ち行列に転送することができる。
【００１４】
一実施形態において、本方法は、保留待ち行列内のデータの書き込み／読み取り要求を、処理のために、ブロックデバイスに関連付けられたサービスに送信し、受信したデータの書き込み／読み取り要求についての、ブロックデバイスに関連付けられたサービスからの処理結果の受信に応答して、送信されたデータの書き込み／読み取り要求を保留待ち行列から削除する。いくつかの実施形態では、本方法は、ブロックデバイスに関連付けられたサービスがサービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み／読み取り要求を、処理のためにブロックデバイスに関連付けられたサービスに送信することを停止することができ、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み／読み取り要求を待機待ち行列に転送し戻すことができる。
【００１５】
本開示の第３の態様によると、本開示の例示的な実施形態は、ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードするための装置をさらに提供する。一実施形態において、本装置には、ブロックデバイスに関連付けられたサービスに対応するデータの書き込み／読み取り要求の受信に応答して、その都度、受信したデータの書き込み／読み取り要求を、ブロックデバイスに関連付けられたサービスのために事前に維持されている待機待ち行列内に置くように構成される、待機待ち行列維持ユニットが含まれる。
【００１６】
加えて、本装置には、待機待ち行列からデータの書き込み／読み取り要求をフェッチして、フェッチされた要求を、ブロックデバイスと関連付けられたサービスのために事前に維持されている保留待ち行列に転送するように構成される、保留待ち行列維持ユニットがさらに含まれてもよい。
【００１７】
いくつかの実施形態において、本装置には、保留待ち行列内のデータの書き込み／読み取り要求を、処理のために、ブロックデバイスに関連付けられたサービスに送信するように構成される、書き込み／読み取り要求処理ユニットがさらに含まれてもよい。書き込み／読み取り要求処理ユニットは、受信したデータの書き込み／読み取り要求についての、ブロックデバイスに関連付けられたサービスからの処理結果の受信に応答して、送信されたデータの書き込み／読み取り要求を保留待ち行列から削除するようにさらに構成されてもよい。一実施形態では、書き込み／読み取り要求処理ユニットは、ブロックデバイスに関連付けられたサービスが、サービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み／読み取り要求を、処理のためにブロックデバイスに関連付けられたサービスに送信することを停止することができ、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み／読み取り要求を、待機待ち行列に転送し戻すことができる。
【００１８】
本開示の第４の態様によると、本開示の例示的な実施形態は、ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードするためのシステムをさらに提供する。一実施形態において、本システムには、ブロックデバイスに関連付けられた記憶サービスに基づいてエラスティックコンピューティングクラウドシステムのデータを記憶するように構成される、記憶リソースプールが含まれてもよい。
【００１９】
加えて、本システムには、少なくとも１つの物理サーバがさらに含まれてもよい。少なくとも１つの物理サーバは、ブロックデバイスに関連付けられたサービスに対応するデータの書き込み／読み取り要求の受信に応答して、その都度、受信したデータの書き込み／読み取り要求を、ブロックデバイスに関連付けられたサービスのために、事前に維持されている待機待ち行列内に置くように構成されてもよい。
【００２０】
さらに、少なくとも１つの物理サーバは、待機待ち行列からデータの書き込み／読み取り要求をフェッチして、フェッチされた要求を、ブロックデバイスに関連付けられたサービスのために、事前に維持されている保留待ち行列に転送し、保留待ち行列内のデータの書き込み／読み取り要求に基づいて、記憶リソースプールのために要求されたデータに対応する読み込みおよび書き込みの動作を行うことができる。
【００２１】
いくつかの実施形態において、少なくとも１つの物理サーバは、ブロックデバイスに関連付けられたサービスが、サービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み／読み取り要求を、処理のためにブロックデバイスに関連付けられたサービスに送信することを停止し、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み／読み取り要求を、待機待ち行列に転送し戻すことができる。
【００２２】
ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムの物理サーバにおいて、本開示の例示的な実施形態によって提案される技術的な構想は、ブロックデバイスの各仮想化されたサービスに対して２つの待ち行列を個々に維持する。１つはデータの書き込み／読み取り要求のための待機待ち行列であり、ブロックデバイスに関連付けられたサービスに送信されて処理を待つデータの書き込み／読み取り要求を維持するために使用される。もう１つは、ブロックデバイスに関連付けられたサービスによって目下処理中であるデータの書き込み／読み取り要求を維持するために、物理サーバによって使用される、保留待ち行列である。
【００２３】
この技術的な構想は、ブロックデバイスに関連付けられたサービスがアップグレードされる必要のある時に、ブロックデバイスに関連付けられたサービスのために、保留待ち行列内に維持されているデータの書き込み／読み取り要求の処理を停止し、保留待ち行列内で目下処理中であるデータの書き込み／読み取り要求を、再ディスパッチのために待機待ち行列内に戻し、それにより、記憶サービスを中断することなく、エラスティックコンピューティングクラウドシステムにおける記憶サービスの、サービスアップグレードの処理完了が実現される。これは、サービスアップグレードの効率を向上させ、ユーザによって目下使用されているトランザクションの中断を回避し、アップグレード処理中に高可用性のサービスを提供し、それにより、ユーザの使用経験が向上される。
【図面の簡単な説明】
【００２４】
【図１】本開示の例示的な実施形態によって提案される技術的な構想によって使用されるブロックデバイスの記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムのトポロジーを例示する構造図である。
【図２】本開示の例示的な実施形態による、改善された物理サーバを例示する構造図である。
【図３】本開示の例示的な実施形態による、ローカルまたは遠隔記憶リソースプールにおけるデータの読み取りおよび書き込みのための、改善された物理サーバの内部処理を例示する流れ図である。
【図４】本開示の例示的な実施形態による、改善された物理サーバにおけるブロックデバイスドライバ装置の動作の詳細を例示する流れ図である。
【図５】本開示の例示的な実施形態によるブロックデバイスサービス装置のサービスアップグレードの前または後に、改善された物理サーバのブロックデバイスドライバ装置が、それによって維持されている待機待ち行列および保留待ち行列のためにディスパッチを行うための処理を例示する概略図である。
【図６】本開示の例示的な実施形態による、改善されたサーバの新しいブロックデバイスドライバ装置を例示する構造図である。
【図７】本開示の例示的な実施形態による、サーバのサービスアップグレードを行う時に、物理サーバのブロックデバイスドライバ装置を制御する動作を例示する概略図である。
【図８】図６で説明する例示的な装置をより詳細に例示する図である。
【発明を実施するための形態】
【００２５】
既存の技術における、オンラインアップグレードを実現するためのホットデプロイメントの欠如に起因して、ブロックデバイスの記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムがアップグレードされる際、エラスティックコンピューティングクラウドシステムにおける各仮想サーバは、サービスアップグレードのためにシャットダウンし、アップグレードが完了した上で再起動する必要がある。記憶サービスの提供者または記憶サービスのユーザにとって、このことは、大いに、維持コストを増大させ、関連するサービスの可用性を低下させる。この問題を考慮して、本開示は、記憶サービスのオンラインアップグレードを実現するために、ブロックデバイスの記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムにおけるブロックデバイスの記憶サービスのために、ホットデプロイメントの実施を提案する。具体的には、記憶サービスのアップグレードは、記憶サービスを中断することなく行われる。したがって、サービス提供者の記憶サービスの可用性、および記憶サービスの透明性が向上し、記憶サービスのユーザが、バックエンドサービスのアップグレード処理を懸念する必要がなくなる。
【００２６】
ブロックデバイスの記憶サービスのホットデプロイメントは、ブロックデバイスのサービスのオンラインアップグレードの技法である。ブロックデバイスの記憶サービスは、ブロックデバイスドライバ技術に基づくため、エラスティックコンピューティングクラウドシステムの物理サーバには、カーネルモードのブロックデバイスドライバのサービスプログラムが含まれる。ブロックデバイスドライバのカーネルモードサービスプログラムは、データの書き込み／読み取り要求を、物理サーバに含まれるブロックデバイスのユーザモードサービスプログラムに転送する必要があり、ブロックデバイスのユーザモードサービスプログラムは、書き込み／読み取り要求を、処理のために、遠隔ネットワークの記憶リソースプール、またはローカル物理ディスクの記憶リソースプール等に転送する。ブロックデバイスドライバのカーネルモードサービスプログラムは、ブロックデバイスのユーザモードサービスプログラムに比べて、より安定している。ブロックデバイスのユーザモードサービスプログラムは、より良い品質の記憶サービスを提供するために、バージョンのアップグレードを頻繁に必要とする。本開示の例示的な実施形態において提供される技術的な構想に基づいて、オンラインアップグレードを支持することのできるブロックデバイスドライバのサービスプログラムは、記憶サービスの可用性を強化するため、およびユーザの使用経験を向上させるために、エラスティックコンピューティングクラウドシステムの物理サーバ内に提供される。
【００２７】
図１は、本開示の例示的な実施形態によって提案される技術的な構想で使用される、ブロックデバイスの記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムのトポロジーを例示する構造図を示している。エラスティックコンピューティングクラウドシステムには、エラスティックコンピューティングクラウド技術に基づいてローカル物理サーバから仮想化された、複数の仮想サーバ（図１の仮想サーバ１、仮想サーバ２、仮想サーバ３、……、仮想サーバｎ）が含まれる。それぞれの仮想サーバは、ブロックデバイスの記憶サービス技術に基づき、遠隔記憶リソースプールまたはローカル記憶リソースプールを使用して、ローカルに提供されるデータの記憶サービスを実施する。具体的には、それぞれの仮想サーバは、遠隔記憶リソースプールまたはローカル記憶リソースプール内にローカルに格納される必要のあるデータを格納し、その後に関連データを読み取る要求が提示された時に、遠隔記憶リソースプールまたはローカル記憶リソースプールからそのデータを読み取る。このようにして、それぞれの物理サーバは、ローカル物理サーバ自体の記憶リソースを占領することなく、遠隔にまたはローカルに設定される記憶リソースプールを共有することができるため、エラスティックコンピューティングクラウドシステムのリソース使用率が改善される。
【００２８】
本開示において提供される技術的な構想を実施するために、上記で説明されるエラスティックコンピューティングクラウドシステムの物理サーバの機能は、記憶サービスのためのオンラインアップグレードを行うという目的を達成するために、改善される必要がある。
【００２９】
図２は、本開示の例示的な実施形態による、改善された物理サーバを例示する構造図を示し、具体的には、カーネルモードのブロックデバイスドライバ装置２０，ユーザモードのクライアント装置２１、および少なくとも１つのブロックデバイスサービス装置２２、ならびにローカルまたは遠隔記憶リソースプール２３が含まれている。ブロックデバイスドライバ装置２０は、複数のブロックデバイスサービス装置２２のジョブを制御することができる。それぞれの構成要素は、下記の動作原理に基づいて、記憶サービスのオンラインアップグレードを実現する。
【００３０】
カーネルモードのブロックデバイスドライバ装置２０は、物理サーバの最下層の書き込み／読み取りディスパッチ層からデータの書き込み／読み取り要求を受信し、データの書き込み／読み取り要求を、例えばＴＣＰプロトコルを介して、ユーザモードのブロックデバイスサービス装置２２に転送する。ホットデプロイメントを支持するオンラインアップグレード機能を実施するために、ブロックデバイスドライバ装置２０は、物理サーバから仮想化される、それぞれのブロックデバイスサービス装置２２に対して２つの待ち行列を維持し、その１つは待機待ち行列である。物理サーバの最下層の書き込み／読み取りディスパッチ層から、特定のブロックデバイスサービス装置２２に対応するデータの書き込み／読み取り要求が受信されると、その都度、ブロックデバイスドライバ装置２０は、受信した書き込み／読み取り要求を、後続の処理を待つように、ブロックデバイスサービス装置２２のために事前に維持されている待機待ち行列内に入れる。もう１つは、保留待ち行列である。そのブロックデバイスサービス装置２２の、データの書き込み／読み取り要求を処理する時に、その都度、ブロックデバイスドライバ装置２０はまず、ブロックデバイスサービス装置２２のために事前に維持されている待機待ち行列からデータの書き込み／読み取り要求をフェッチして、この要求を、ブロックデバイスサービス装置２２のために事前に維持されている保留待ち行列に転送し、処理のために、保留待ち行列内のこの要求をブロックデバイスサービス装置２２に送信する。以上から分かるように、保留待ち行列内のすべての書き込み／読み取り要求は、物理サーバによって目下処理中である書き込み／読み取り要求である。ブロックデバイスドライバ装置２０から送信された、保留待ち行列の書き込み／読み取り要求が適切に完了した後、ブロックデバイスサービス装置２２は、適切に処理がなされた結果をブロックデバイスドライバ装置２０に送信する。適切に処理がなされた結果の受信に応答して、ブロックデバイスドライバ装置２０は、送信され、かつ完全に処理された書き込み／読み取り要求を、保留待ち行列から取り除き、保留待ち行列内のその他の書き込み／読み取り要求を処理する等のことをする。その後、ブロックデバイスサービス装置２２がサービスアップグレードを行うという判定に応答して、ブロックデバイスドライバ装置２０は、そのブロックデバイスサービス装置２２のために維持されている保留待ち行列内のデータの書き込み／読み取り要求を、そのブロックデバイスサービス装置２２に送信することを停止する。さらに、サービスアップグレードが行われる、または完了したと判定されると、ブロックデバイスドライバ装置２０は、ブロックデバイスサービス装置２２のために事前に維持されている保留待ち行列内のデータの書き込み／読み取り要求を、後続の再ディスパッチおよび処理を待つように、ブロックデバイスサービス装置２２のために事前に維持されている待機待ち行列に戻して追加する。
【００３１】
好適には、ブロックデバイスドライバ装置２０は、ブロックデバイスドライバ装置２０自身とブロックデバイスサービス装置２２との間のＴＣＰ通信接続が正常かどうかを検査することによって、ブロックデバイスサービス装置２２がアップグレードの動作を行う、またはアップグレードを完了したかどうかを判定することができる。ブロックデバイスドライバ装置２０とブロックデバイスサービス装置２２との間のＴＣＰ通信接続が切断されている場合、ブロックデバイスドライバ装置２０は、ブロックデバイスサービス装置２２がサービスアップグレードを行うと判定することができる。ブロックデバイスドライバ装置２０とブロックデバイスサービス装置２２との間のＴＣＰ通信接続が、接続のために回復されている場合、ブロックデバイスドライバ装置２０は、ブロックデバイスサービス装置２２のサービスアップグレードが完了したと判定することができる。
【００３２】
ユーザモードのブロックデバイスサービス装置２２は、ブロックデバイスドライバ装置２０から送信されたデータの書き込み／読み取り要求を、例えば、ＴＣＰプロトコルを介して受信する。具体的には、ユーザモードのブロックデバイスサービス装置２２は、ブロックデバイスドライバ装置２０によって処理されたデータの書き込み／読み取り要求を、ブロックデバイスサービス装置２２のために事前に維持されている保留待ち行列内に受信する。書き込み／読み取り要求を受信すると、ユーザモードのブロックデバイスサービス装置２２は、書き込み／読み取り要求が正当なものであるかどうか、それが読み取り要求または書き込み要求のどちらであるか、書き込み／読み取り要求の開始位置および長さの情報、等を分析（検証を含む）することによって、要求についての分析動作を行い、分析結果に基づいて、ローカルまたは遠隔記憶リソースプール上の読み取りまたは書き込み動作を行う。要求が読み取り要求である場合、ユーザモードのブロックデバイスサービス装置２２は、要求されたデータを、ローカルまたは遠隔記憶リソースプール２３から読み取り、読み取ったデータおよび処理結果をカーネルモードのブロックデバイスドライバ装置２０に、例えばＴＣＰプロトコルを介して、戻す。要求が書き込み要求である場合、ユーザモードのブロックデバイスサービス装置２２は、ローカルまたは遠隔記憶リソースプール２３に書き込まれるように要求されたデータを格納し、書き込み要求の処理結果をカーネルモードのブロックデバイスドライバ装置２０に、例えばＴＣＰプロトコルを介して、戻す。
【００３３】
ユーザモードのクライアント装置２１は、カーネルモードのブロックデバイスドライバ装置２０を介して、ジョブを開始または停止するように、それぞれのブロックデバイスサービス装置２２を制御することができる。ジョブを開始するようにブロックデバイスサービス装置２２を制御する場合、クライアント装置２１はまず、ユーザがクライアント装置２１を介してブロックデバイスのサービスの要求の作成を始めた後に、ブロックデバイスサービス装置とのＴＣＰ接続を確立し、作成されたＴＣＰのソケットハンドルを、ｉｏｃｔｌコマンドを通じてブロックデバイスドライバ装置２０に伝送する。その後、クライアント装置２１は、ＴＣＰソケットを閉じることができる。このようにして、クライアント装置２１は、カーネルモードのブロックデバイスドライバ装置２０とユーザモードのブロックデバイスサービス装置２２との間のＴＣＰ接続を実現する。ブロックデバイスドライバ装置２０に送信される、すべての後続のデータの書き込み／読み取り要求は、ブロックデバイスサービス装置２２に、ＴＣＰ接続を介して送信され得る。ジョブを停止するようにブロックデバイスサービス装置２２を制御する場合、クライアント装置２１は、ユーザがクライアント装置２１を介してブロックデバイスのサービスを停止するための要求を始めた後に、停止要求を、ｉｏｃｔｌコマンドを通じてブロックデバイスドライバ装置２０に送信する。要求を受信すると、ブロックデバイスドライバ装置２０はまず、停止要求をブロックデバイスサービス装置２２に送信する。この要求の受信に応答して、ブロックデバイスサービス装置２２はＴＣＰソケットを閉じた上で、安全に終了する。ブロックデバイスサービス装置２２から停止応答を受信した後に、ブロックデバイスドライバ装置２０は、関連する保留待ち行列内の書き込み／読み取り要求の処理を停止する。結果として、ブロックデバイスサービス装置２２は動作を停止する。ブロックデバイスサービス装置２２がアップグレードの処理中である場合、クライアント装置２１は、ブロックデバイスサービス装置２２とのＴＣＰリンクの確立を一秒ごとに試みることができる。新しいＴＣＰリンクが首尾よく確立されると、これは、ブロックデバイスサービス装置２２が首尾よくアップグレードされたことを示し、クライアント装置２１は、新しく作成されたＴＣＰのソケットハンドルを、ｉｏｃｔｌコマンドを通じてブロックデバイスドライバ装置２０に伝送する。このようにして、ブロックデバイスサービス装置２２がアップグレードされた後、ブロックデバイスドライバ装置２０およびブロックデバイスサービス装置２２は、データの書き込み／読み取り要求を通信するための新しいＴＣＰリンクを確立する。
【００３４】
クライアント装置２１は、本開示における物理サーバの、オプションの構成要素とすることができる。ユーザモードのブロックデバイスサービス装置２２の動作モードのユーザ制御を実現するために、クライアント装置２１を使用する他には、タイミング機能、イベントトリガー機能等の他のトリガーメカニズムを使用して、ユーザモードのブロックデバイスサービス装置２２の動作モードを自動的に制御することができる。
【００３５】
一般に、ローカルまたは遠隔記憶リソースプール２３は、分散ファイルシステムまたは類似のものの、記憶サーバである。このリソースプール２３は、ローカルに、または遠隔に展開することができ、大抵の場合、遠隔に展開された記憶リソースプールである。記憶リソースプール２３は、エラスティックコンピューティングクラウドシステムの、それぞれの仮想サーバのサービスのデータを格納する。具体的には、物理サーバの特定のブロックデバイスサービス装置２２からデータの読み取り要求を受信した場合、記憶リソースプール２３は、要求に関連するデータをそこから読み取り、読み取ったデータをブロックデバイスサービス装置２２にフィードバックする。物理サーバの特定のブロックデバイスサービス装置２２からデータの書き込み要求を受信した場合、記憶リソースプール２３は、書き込まれるように要求されたデータをそこに格納する。
【００３６】
図３は、本開示の例示的な実施形態による、ローカルまたは遠隔記憶リソースプールにおけるデータの読み取りおよび書き込みのための、改善された物理サーバの内部処理を例示する流れ図を示している。一実施形態において、データの読み取りの処理には以下が含まれてもよい。
【００３７】
ローカル物理サーバのファイルシステム層が、特定のブロックデバイスサービス装置のデータの読み取り要求を、汎用ブロック層および書き込み／読み取りディスパッチ層を介してブロックデバイスドライバ装置に送信した後、ブロックデバイスドライバ装置は、この要求を、後続の処理を待つように、ブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に置き、その後に、データの読み取り要求を、待ち行列から、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列内にフェッチして、読み取り要求を処理、すなわち、読み取り要求をブロックデバイスサービス装置に送信する。ブロックデバイスサービス装置は、読み取り要求に従って、要求に関連するデータを記憶プールから読み取り、読み取り結果を、ブロックデバイスドライバ装置に、ＴＣＰ接続を介して戻す。ブロックデバイスドライバ装置は、読み取り結果を、ファイルシステム層に、汎用ブロック層および書き込み／読み取りディスパッチ層を介して伝送し、ファイルシステム層は、読み取り結果を、ディスパッチのためにシステムに戻す。
【００３８】
一実施形態において、データの書き込み処理には、以下が含まれてもよい。
【００３９】
ローカル物理サーバは、データの書き込み要求と、システムによって呼び出される、ファイルシステム層、汎用ブロック層、および書き込み／読み取りディスパッチ層を介して、ブロックデバイスドライバ装置に書き込まれるように要求されているデータとを、格納する。ブロックデバイスドライバ装置は、書き込み要求を、後続の処理を待つように、ブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に置き、その後に、待ち行列からデータの書き込み要求をフェッチして、この要求を、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列に置き、書き込み要求を処理、すなわちデータの書き込み要求および書き込まれるデータを、ブロックデバイスサービス装置に送信する。ブロックデバイスサービス装置は、書き込まれるデータの、記憶リソースプール内への格納を達成するために、データの書き込み要求を分析する。
【００４０】
図４は、本開示の例示的な実施形態による、改善された物理サーバにおけるブロックデバイスドライバ装置の動作の詳細を例示する流れ図を示している。ブロックデバイスドライバ装置は、それぞれのブロックデバイスサービス装置に対して、２つの待ち行列を個々に維持し、待ち行列の１つは待機待ち行列であり、送信され、かつ、対応するブロックデバイスサービス装置による処理を待つ、データの書き込み／読み取り要求を、この待機待ち行列内に置くため、およびこの要求を、処理を待つ待ち行列の状態に入らせるために、使用され、もう１つの待ち行列は保留待ち行列であり、対応するブロックデバイスサービス装置によって目下処理中である、データの書き込み／読み取り要求を、この保留待ち行列内に置くために使用される。これらの維持されている２つの待ち行列に基づく、ブロックデバイスドライバ装置の具体的な動作原理は以下の通りである。
【００４１】
４０において、物理サーバの最下層から、特定のブロックデバイスサービス装置に対応するデータの書き込み／読み取り要求が受信されると、その都度、ブロックデバイスドライバ装置は、受信したデータの書き込み／読み取り要求を待たせるために、そのブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に置く。
【００４２】
４２において、ブロックデバイスサービス装置に対応するデータの書き込み／読み取り要求を処理する時に、ブロックデバイスドライバ装置はまず、待機待ち行列からデータの書き込み／読み取り要求をフェッチして、この要求を、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列に転送し、保留待ち行列内のデータの書き込み／読み取り要求を、処理のために、ユーザモードのブロックデバイスサービス装置に送信し、ブロックデバイスサービス装置からの、受信したデータの書き込み／読み取り要求の適切な処理結果の受信に応答して、送信されたデータの書き込み／読み取り要求を保留待ち行列から削除する。
【００４３】
４４において、ブロックデバイスサービス装置がサービスアップグレードを行うという判定に応答して、ブロックデバイスドライバ装置は、保留待ち行列内のすべてのデータの書き込み／読み取り要求を、処理のためにブロックデバイスサービス装置に送信することを停止する。
【００４４】
４６において、サービスアップグレードが行われる、または完了したと判定されると、ブロックデバイスドライバ装置は、保留待ち行列内のデータの書き込み／読み取り要求を、後続の再ディスパッチおよび処理を待つように、待機待ち行列に転送し戻す。具体的には、ブロックデバイスドライバ装置は、ブロックデバイスサービス装置がサービスアップグレードを行う、またはサービスアップグレードを完了したかどうかを、ブロックデバイスドライバ装置自身とブロックデバイスサービス装置との間の通信接続の状態を検査することによって判定することができる。より具体的には、ブロックデバイスドライバ装置自身とブロックデバイスサービス装置との間の通信接続が切断されたことを検知すると、ブロックデバイスドライバ装置は、ブロックデバイスサービス装置がサービスアップグレードを行うと判定することができる。さらに、ブロックデバイスドライバ装置自身とブロックデバイスサービス装置との間の通信接続が回復されたと検知すると、ブロックデバイスドライバ装置は、ブロックデバイスサービス装置がサービスアップグレードを完了したと判定することができる。
【００４５】
図５は、本開示の例示的な実施形態によるブロックデバイスサービス装置のサービスアップグレードの前または後に、改善された物理サーバのブロックデバイスドライバ装置が、それによって維持されている待機待ち行列および保留待ち行列のためにディスパッチを行うための処理を例示する概略図を示している。ブロックデバイスサービス装置のホットデプロイメント（すなわち、オンラインアップグレード）を支持するために、カーネルモードのブロックデバイスドライバ装置は、受信したデータの書き込み／読み取り要求を維持する必要がある。ブロックデバイスドライバ装置は、それぞれのブロックデバイスサービス装置に対して、２つの、データの読み取りおよび書き込み待ち行列を個々に使用して、書き込み／読み取り要求の状態を維持する。１つは、待機待ち行列であり、それぞれのブロックデバイスサービス装置のための物理サーバ内の書き込み／読み取りディスパッチ層から送信される、書き込み／読み取り要求を維持するために使用され、これらの要求は、ブロックデバイスドライバ装置による後続の処理を待つように、待機待ち行列内に並ぶ。もう１つは、保留待ち行列であり、それぞれのブロックデバイスサービス装置のために、ブロックデバイスドライバ装置によって目下処理中である、書き込み／読み取り要求を維持するために使用される。これらの、保留待ち行列内の書き込み／読み取り要求は、完全に処理されておらず、ブロックデバイスドライバ装置が、対応するブロックデバイスサービス装置の処理応答を待っている状況である場合がある。特定のブロックデバイスサービス装置がサービスアップグレードを行っていない場合、ブロックデバイスドライバ装置はまず、書き込み／読み取り要求を処理する際に、ブロックデバイスサービス装置のために事前に維持されている待機待ち行列の先頭から書き込み／読み取り要求をフェッチして、フェッチされた書き込み／読み取り要求を待機待ち行列から削除し、書き込み／読み取り要求を、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列の先頭に置き、保留待ち行列内の各書き込み／読み取り要求を、処理のために、ブロックデバイスサービス装置に送信し、ブロックデバイスサービス装置から、受信した書き込み／読み取り要求の適切な処理結果を受信した後で、送信された書き込み／読み取り要求を、保留待ち行列から削除する。ブロックデバイスサービス装置がサービスアップグレードを必要とする時、ブロックデバイスドライバ装置は、保留待ち行列内の書き込み／読み取り要求を、処理のために、ブロックデバイスサービス装置に送信することを停止する、すなわち、新しい書き込み／読み取り要求をブロックデバイスサービス装置に送信することを停止する。ブロックデバイスサービス装置がアップグレードを行う、またはアップグレードを完了した後に、ブロックデバイスドライバ装置は、対応する保留待ち行列内のすべての書き込み／読み取り要求（図５に、１、２、３、４、５、６、……と示されている要求等）を、ブロックデバイスドライバ装置による後続の再ディスパッチのために、対応する待機待ち行列に戻して置く。
【００４６】
以上のように、ブロックデバイスドライバ装置をエラスティックコンピューティングクラウドシステムの物理サーバに追加することによって、およびそれぞれのブロックデバイスサービス装置のために事前に維持されている２つの待ち行列を介して、ブロックデバイスドライバ装置によるディスパッチをすることによって、バックエンド記憶サービスのサービスアップグレードは、データ記憶のユーザに対する記憶サービスの提供を中断することなく完了することができるため、エラスティックコンピューティングクラウドシステムにおけるデータ記憶の可用性が向上する。さらに、前述の構想は、データ記憶のユーザが、記憶サービスのサービスアップグレードに起因するデータ記憶のトランザクションへのあらゆる影響をほとんど感じないように、ユーザにとって透過的であるため、ユーザの使用経験が改善される。
【００４７】
これに対応して、図６は、本開示の例示的な実施形態による、改善された物理サーバの新しいブロックデバイスドライバ装置を例示する構造図を示している。一実施形態において、本装置には、各ブロックデバイスサービス装置のために、待機待ち行列を個別に維持するために使用される、待機待ち行列維持ユニット６０が含まれてもよく、この待機待ち行列内には、それぞれのブロックデバイスサービス装置のためのデータの書き込み／読み取り要求が、処理を待つ待ち行列の状態に入るように置かれる。加えて、本装置には、各ブロックデバイスサービス装置のために、別の保留待ち行列を個別に維持するために使用される、保留待ち行列維持ユニット６１がさらに含まれてもよく、この別の保留待ち行列内には、それぞれのブロックデバイスサービス装置のための、目下処理中であるデータの書き込み／読み取り要求が置かれる。
【００４８】
具体的には、データの書き込み／読み取り要求は、特定のブロックデバイスサービス装置のために、待機待ち行列維持ユニット６０によって事前に維持されている待機待ち行列からフェッチされて、そのブロックデバイスサービス装置のために維持されている保留待ち行列に移動される。具体的には、保留待ち行列維持ユニット６１は、対応する待機待ち行列の先頭から、データの書き込み／読み取り要求をフェッチして、フェッチされたデータの書き込み／読み取り要求を待機待ち行列から削除し、フェッチされたデータの書き込み／読み取り要求を、事前に維持されている対応する保留待ち行列の先頭に転送することができる。
【００４９】
いくつかの実施形態では、本装置には、書き込み／読み取り要求処理ユニット６２がさらに含まれてもよい。書き込み／読み取り要求処理ユニット６２は、保留待ち行列維持ユニット６１によって維持されている、対応する保留待ち行列内のデータの書き込み／読み取り要求を、処理のために、ブロックデバイスサービス装置に送信するために使用することができる。さらに、書き込み／読み取り要求処理ユニット６２は、ブロックデバイスサービス装置からの、受信したデータの書き込み／読み取り要求の適切な処理結果の受信に応答して、送信されたデータの書き込み／読み取り要求を、保留待ち行列から削除することができ、ブロックデバイスサービス装置がサービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み／読み取り要求を、処理のためにブロックデバイスサービス装置に送信することを停止することができる。
【００５０】
いくつかの実施形態では、書き込み／読み取り要求処理ユニット６２はさらに、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み／読み取り要求を、書き込み／読み取り要求処理ユニット６２によってその後に再ディスパッチされるのを待たせるために、対応する待機待ち行列に転送し戻すことができる。具体的には、書き込み／読み取り要求処理ユニット６２は、ブロックデバイスドライバ装置とブロックデバイスサービス装置との間の通信接続の状態を検査することによって、通信接続の切断を検知すると、ブロックデバイスサービス装置がサービスアップグレードを行うと判定することができ、通信接続が回復されたと検知すると、ブロックデバイスサービス装置がサービスアップグレードを完了したと判定することができる。
【００５１】
図７は、本開示の例示的な実施形態による、サーバのサービスアップグレードを行う時に、物理サーバのブロックデバイスドライバ装置を制御する動作を例示する概略図を示している。具体的には、動作の過程には、以下が含まれる。
【００５２】
７０において、記憶サービスのアップグレードに先立って、アップグレード保守管理者は、ｉｏｃｔｌコマンドを、ユーザモードのクライアント装置を介して、カーネルモードのブロックデバイスドライバ装置に送信して、ブロックデバイスドライバ装置がすべての書き込み／読み取り要求を保持するように指示する。
【００５３】
７２において、アップグレード保守管理者はその後に、通常のアップグレードプロセスを使用して記憶サービスのためのサービスアップグレード（サービスアップグレードには、サービスを停止すること、サービスプログラムをアップグレードすること、新しいサービスを公開すること、等が含まれる）を行う。このようにして、記憶サービスに対するオンラインのサービスアップグレードを行うためのホットデプロイメントが完了する。ホットデプロイメントの処理中、ブロックデバイスドライバ装置はすべての書き込み／読み取り要求を保持する。
【００５４】
７４において、デプロイメントがなされた上で、ブロックデバイスドライバ装置はすべての書き込み／読み取り要求を解放し、データの記憶サービスは処理を続ける。
【００５５】
本開示の例示的な実施形態は、方法、装置（デバイス）、またはコンピュータプログラム製品として提供され得ることが、当業者には理解されるべきである。したがって、本開示は、ハードウェアのみ、ソフトウェアのみ、またはハードウェアとソフトウェアとの組み合わせの単位で実施することができる。さらに、本開示は、コンピュータで実行可能な命令を含む１つまたは複数のコンピュータ記憶媒体（ディスク記憶、ＣＤ−ＲＯＭ、光ディスク、その他を含むがこれらに限定されない）を有するコンピュータプログラム製品の形状で実施することができる。
【００５６】
本開示は、例示的な方法、装置（デバイス）およびコンピュータプログラム製品の、流れ図および／またはブロック図を参照して説明される。流れ図および／またはブロック図の、それぞれの流れおよび／またはブロック、ならびに流れおよび／またはブロックの組み合わせは、コンピュータプログラム命令によって実行されてもよいことが理解されるべきである。これらのコンピュータプログラム命令は、コンピュータまたはその他のプログラマブルデータプロセッサによる命令の実行を通じて、流れ図の１つまたは複数の流れ内、および／またはブロック図の１つまたは複数のブロック内で指示された機能を実施する装置を作るために、一般的なコンピュータ、特化型コンピュータ、マシンを作り出すための組み込みプロセッサもしくはその他のプログラマブルデータプロセッサに提供されてもよい。
【００５７】
これらのコンピュータプログラム命令は、代替として、コンピュータ読み取り可能な記憶域に格納された命令が、命令装置を含む製品を作り出すように、コンピュータまたはその他のプログラマブルデータプロセッサに対して特定の方式で動作するように命令することのできる、コンピュータ読み取り可能な記憶域に格納されてもよい。命令装置は、流れ図の１つもしくは複数の流れおよび／またはブロック図の１つもしくは複数のブロックにおいて指示される機能を実施する。
【００５８】
これらのコンピュータプログラム命令は、代替として、コンピュータまたはその他のプログラマブルデータプロセッサが、コンピュータによって実施される処理を作り出すための一連の動作行動をすることができるように、コンピュータまたはその他のプログラマブルデータプロセッサ内にロードされてもよい。その結果、コンピュータまたはその他のプログラマブルデータプロセッサで実行される命令は、流れ図の１つもしくは複数の流れおよび／またはブロック図の１つもしくは複数のブロックにおいて指示される機能を実施するための行動を提供することができる。
【００５９】
例えば、図８は、上記で説明される装置のような、例示的な装置８００をより詳細に示している。一実施形態において、装置８００には、１つまたは複数のプロセッサ８０１、ネットワークインターフェース８０２、メモリ８０３、および入出力インターフェース８０４が含まれてもよいが、これらに限定されない。
【００６０】
メモリ８０３には、ランダムアクセスメモリ（ＲＡＭ）等のような、揮発性メモリの形状の、コンピュータ読み取り可能な媒体、および／または、リードオンリーメモリ（ＲＯＭ）もしくはフラッシュＲＡＭ等のような、不揮発性メモリが含まれてもよい。メモリ８０３は、コンピュータ読み取り可能な媒体の一例である。
【００６１】
コンピュータ読み取り可能な媒体には、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、またはその他のデータ等のような情報の記憶のための、あらゆる方法もしくは技術において実装される、揮発性および不揮発性、取り外し可能なおよび取り外し不可能な媒体が含まれる。コンピュータ記憶媒体の例には、相変化メモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、その他のタイプのランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、電気的消去可能プログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、フラッシュメモリもしくはその他のメモリ技術、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、デジタル多目的ディスク（ＤＶＤ）もしくはその他の光学式記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくはその他の磁気記憶装置、または、コンピューティング装置によってアクセスするための情報を格納するために使用され得る、あらゆるその他の非伝送媒体が含まれるが、これらに限定されない。本明細書において定義されるように、コンピュータ読み取り可能な媒体には、変調されたデータ信号および搬送波等のような、一時的な媒体は含まれない。
【００６２】
メモリ８０３には、プログラムユニット８０５およびプログラムデータ８０６が含まれてもよい。一実施形態では、プログラムユニット８０５には、待機待ち行列維持ユニット８０７、保留待ち行列維持ユニット８０８、および書き込み／読み取り要求処理ユニット８０９が含まれてもよい。これらのプログラムユニットの詳細は、上記で説明されている前述の実施形態内に見ることができる。
【００６３】
本開示の好ましい実施形態が説明されているが、当業者は、基本的な創造的概念を理解すればすぐに、これらの実施形態に対する追加の修正および変更を行うことが可能である。したがって、特許請求の範囲は、本開示の特許請求の範囲および好ましい実施形態の範囲に含まれる、すべての変更形態および変形形態を含むことが意図される。
【００６４】
当業者は、開示される方法、システムおよび装置を多くの異なるやり方で、本開示の趣旨および範囲から逸脱することなく、修正または変更することができる。したがって、本開示は、本開示の特許請求の範囲およびそれらの均等物の範囲に含まれる、すべての変更形態および変形形態を含むことが意図される。
【図１】
0005931919.tif 000002
【図２】
0005931919.tif 000003
【図３】
0005931919.tif 000004
【図４】
0005931919.tif 000005
【図５】
0005931919.tif 000006
【図６】
0005931919.tif 000007
【図７】
0005931919.tif 000008