(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5931919
(24)【登録日】2016年5月13日
(45)【発行日】2016年6月8日
(54)【発明の名称】エラスティックコンピューティングクラウドシステムのアップグレード
(51)【国際特許分類】
G06F 11/00 20060101AFI20160526BHJP
【FI】
G06F9/06 630C
【請求項の数】20
【全頁数】20
(21)【出願番号】特願2013-548460(P2013-548460)
(86)(22)【出願日】2012年1月3日
(65)【公表番号】特表2014-501995(P2014-501995A)
(43)【公表日】2014年1月23日
(86)【国際出願番号】US2012020055
(87)【国際公開番号】WO2012094303
(87)【国際公開日】20120712
【審査請求日】2014年12月10日
(31)【優先権主張番号】201110001297.X
(32)【優先日】2011年1月5日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】510330264
【氏名又は名称】アリババ・グループ・ホールディング・リミテッド
【氏名又は名称原語表記】ALIBABA GROUP HOLDING LIMITED
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】チェン ウェイツァイ
(72)【発明者】
【氏名】チェン ボー
(72)【発明者】
【氏名】コン ホワ
【審査官】
石川 亮
(56)【参考文献】
【文献】
特開2004−199247(JP,A)
【文献】
米国特許出願公開第2010/0199037(US,A1)
【文献】
特開2004−038922(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/00
(57)【特許請求の範囲】
【請求項1】
ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムのサーバであって、ブロックデバイスドライバ装置と、少なくとも1つのブロックデバイスサービス装置とを備え、
前記ブロックデバイスドライバ装置は、
ブロックデバイスサービス装置に対応するデータの書き込み/読み取り要求の受信に応答して、前記ブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に、受信した前記データの書き込み/読み取り要求を置き、
前記待機待ち行列からデータの書き込み/読み取り要求をフェッチして、前記フェッチされた要求を、前記ブロックデバイスサービス装置のために事前に維持されている保留待ち行列に転送し、
前記保留待ち行列内のデータの書き込み/読み取り要求を、処理のために前記ブロックデバイスサービス装置に送信し、
受信した前記データの書き込み/読み取り要求についての前記ブロックデバイスサービス装置からの処理結果の受信に応答して、前記送信されたデータの書き込み/読み取り要求を前記保留待ち行列から削除し、
前記ブロックデバイスサービス装置がサービスアップグレードを行うという判定に応答して、前記保留待ち行列内のデータの書き込み/読み取り要求を、処理のために前記ブロックデバイスサービス装置に送信することを停止し、
サービスアップグレードが行われる、または完了したという判定に応答して、前記保留待ち行列内の前記データの書き込み/読み取り要求を前記待機待ち行列に転送し戻すように構成され、
前記ブロックデバイスサービス装置は、
前記ブロックデバイスドライバ装置から送信された前記データの書き込み/読み取り要求に基づいて、ブロックデバイスの記憶リソースプールのために要求されたデータに対応する読み取りおよび書き込みの動作を行うように構成される、サーバ。
【請求項2】
前記ブロックデバイスサービス装置の始動を制御し、
始動時に、前記ブロックデバイスドライバ装置と、前記始動されたブロックデバイスサービス装置との間の通信接続を確立するように構成される、クライアント装置をさらに備える、請求項1に記載のサーバ。
【請求項3】
前記クライアント装置は、
前記ブロックデバイスサービス装置の停止を制御し、
停止時に、前記ブロックデバイスドライバ装置と、前記停止されたブロックデバイスサービス装置との間の前記通信接続を解除するようにさらに構成される、請求項2に記載のサーバ。
【請求項4】
前記ブロックデバイスドライバ装置は、前記ブロックデバイスサービス装置との通信接続を検査するようにさらに構成される、請求項1に記載のサーバ。
【請求項5】
前記ブロックデバイスドライバ装置は、前記ブロックデバイスサービス装置との前記通信接続が切断されたという判定に応答して、前記ブロックデバイスサービス装置がサービスアップグレードを行うと判定するようにさらに構成される、請求項4に記載のサーバ。
【請求項6】
前記ブロックデバイスドライバ装置は、前記ブロックデバイスサービス装置との前記通信接続が接続のために回復されたという判定に応答して、前記ブロックデバイスサービス装置が前記サービスアップグレードを完了したと判定するようにさらに構成される、請求項4に記載のサーバ。
【請求項7】
ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムをアップグレードする方法であって、
ブロックデバイスに関連付けられたサービスに対応する、データの書き込み/読み取り要求の受信に応答して、その都度、前記ブロックデバイスに関連付けられた前記サービスのために事前に維持された待機待ち行列内に、受信した前記データの書き込み/読み取り要求を置くことと、
前記待機待ち行列からデータの書き込み/読み取り要求をフェッチすること、前記フェッチされた要求を、前記ブロックデバイスに関連付けられた前記サービスのために事前に維持されている保留待ち行列に転送すること、前記保留待ち行列内のデータの書き込み/読み取り要求を、処理のために前記ブロックデバイスに関連付けられた前記サービスに送信すること、および受信した前記データの書き込み/読み取り要求についての、前記ブロックデバイスに関連付けられた前記サービスからの処理結果の受信に応答して、前記送信されたデータの書き込み/読み取り要求を前記保留待ち行列から削除することと、
前記ブロックデバイスに関連付けられた前記サービスが、サービスアップグレードを行うという判定に応答して、前記保留待ち行列内のデータの書き込み/読み取り要求を、処理のために前記ブロックデバイスに関連付けられた前記サービスに送信することを停止することと、
サービスアップグレードが行われる、または完了したという判定に応答して、前記保留待ち行列内の前記データの書き込み/読み取り要求を前記待機待ち行列に転送し戻すことと、
を含む、方法。
【請求項8】
前記サービスアップグレードが行われる、または完了したという判定は、前記ブロックデバイスに関連付けられた前記サービスとの通信接続を検査することを含む、請求項7に記載の方法。
【請求項9】
前記サービスアップグレードが行われる、または完了したという判定は、前記ブロックデバイスに関連付けられた前記サービスとの前記通信接続が切断されたという判定に応答して、前記ブロックデバイスに関連付けられた前記サービスがサービスアップグレードを行うと判定することをさらに含む、請求項8に記載の方法。
【請求項10】
前記サービスアップグレードが行われる、または完了したという判定は、前記ブロックデバイスに関連付けられた前記サービスとの前記通信接続が、接続のために回復されたという判定に応答して、前記ブロックデバイスに関連付けられた前記サービスが前記サービスアップグレードを完了したと判定することをさらに含む、請求項8に記載の方法。
【請求項11】
前記待機待ち行列からデータの書き込み/読み取り要求をフェッチして、前記フェッチされた要求を、前記ブロックデバイスに関連付けられた前記サービスのために事前に維持されている保留待ち行列に転送することは、
前記待機待ち行列の先頭から前記データの書き込み/読み取り要求をフェッチすることと、
前記フェッチされたデータの書き込み/読み取り要求を、前記待機待ち行列から削除することと、
前記フェッチされたデータの書き込み/読み取り要求を、事前に維持された前記保留待ち行列に転送することと、
を含む、請求項7に記載の方法。
【請求項12】
ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムをアップグレードする装置であって、
ブロックデバイスに関連付けられたサービスに対応する、データの書き込み/読み取り要求の受信に応答して、その都度、前記ブロックデバイスに関連付けられた前記サービスのために事前に維持された待機待ち行列内に、受信した前記データの書き込み/読み取り要求を置くように構成される、待機待ち行列維持ユニットと、
前記待機待ち行列からデータの書き込み/読み取り要求をフェッチして、前記フェッチされた要求を、前記ブロックデバイスに関連付けられた前記サービスのために事前に維持された保留待ち行列に転送するように構成される、保留待ち行列維持ユニットと、
前記保留待ち行列内のデータの書き込み/読み取り要求を、処理のために、前記ブロックデバイスに関連付けられた前記サービスに送信し、
受信した前記データの書き込み/読み取り要求についての、前記ブロックデバイスに関連付けられた前記サービスからの処理結果の受信に応答して、前記送信されたデータの書き込み/読み取り要求を前記保留待ち行列から削除し、
前記ブロックデバイスに関連付けられた前記サービスが、サービスアップグレードを行うという判定に応答して、前記保留待ち行列内のデータの書き込み/読み取り要求を、処理のために、前記ブロックデバイスに関連付けられた前記サービスに送信することを停止し、
サービスアップグレードが行われる、または完了したという判定に応答して、前記保留待ち行列内の前記データの書き込み/読み取り要求を、前記待機待ち行列に転送し戻す、ように構成される、書き込み/読み取り要求処理ユニットと、
を備える、装置。
【請求項13】
前記書き込み/読み取り要求処理ユニットは、前記装置と前記ブロックデバイスに関連付けられた前記サービスとの間の通信接続を検査するようにさらに構成される、請求項12に記載の装置。
【請求項14】
前記書き込み/読み取り要求処理ユニットは、前記通信接続が切断されたという判定に応答して、前記ブロックデバイスに関連付けられた前記サービスが、サービスアップグレードを行うと判定するようにさらに構成される、請求項13に記載の装置。
【請求項15】
前記書き込み/読み取り要求処理ユニットは、前記通信接続が回復されたという判定に応答して、前記ブロックデバイスに関連付けられた前記サービスが、前記サービスアップグレードを完了したと判定するようにさらに構成される、請求項13に記載の装置。
【請求項16】
前記保留待ち行列維持ユニットは、前記待機待ち行列の先頭から前記データの書き込み/読み取り要求をフェッチし、前記フェッチされたデータの書き込み/読み取り要求を前記待機待ち行列から削除し、前記フェッチされたデータの書き込み/読み取り要求を、事前に維持されている前記保留待ち行列に転送する、請求項12に記載の装置。
【請求項17】
ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムであって、
前記ブロックデバイスに関連付けられた前記記憶サービスに基づいて、前記エラスティックコンピューティングクラウドシステムのデータを格納するように構成される、記憶リソースプールと、
ブロックデバイスに関連付けられたサービスに対応する、データの書き込み/読み取り要求の受信に応答して、その都度、前記ブロックデバイスに関連付けられた前記サービスのために、事前に維持されている待機待ち行列内に前記受信したデータの書き込み/読み取り要求を置き、
前記待機待ち行列からデータの書き込み/読み取り要求をフェッチして、前記フェッチされた要求を、前記ブロックデバイスに関連付けられた前記サービスのために、事前に維持されている保留待ち行列に転送し、
前記保留待ち行列内の前記データの書き込み/読み取り要求に基づいて、前記記憶リソースプールのために要求されたデータに対応する読み込みおよび書き込みの動作を行い、
前記ブロックデバイスに関連付けられた前記サービスが、サービスアップグレードを行うという判定に応答して、前記保留待ち行列内のデータの書き込み/読み取り要求を、処理のために、前記ブロックデバイスに関連付けられた前記サービスに送信することを停止し、
サービスアップグレードが行われる、または完了したという判定に応答して、前記保留待ち行列内の前記データの書き込み/読み取り要求を、前記待機待ち行列に転送し戻す、ように構成される、少なくとも1つの物理サーバと、
を備える、エラスティックコンピューティングクラウドシステム。
【請求項18】
前記記憶リソースプールは、前記少なくとも1つの物理サーバと共にローカルに展開される、請求項17に記載のシステム。
【請求項19】
前記記憶リソースプールは、前記少なくとも1つの物理サーバから遠隔に展開される、請求項17に記載のシステム。
【請求項20】
前記少なくとも1つの物理サーバは、前記フェッチされたデータの書き込み/読み取り要求の、前記保留待ち行列への転送に応答して、前記フェッチされたデータの書き込み/読み取り要求を、前記待機待ち行列から取り除くようにさらに構成される、請求項17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ブロックデバイスに関連付けられたエラスティックコンピューティングクラウドおよび記憶サービスの技術分野に関し、具体的には、ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムをアップグレードするための装置、方法、およびシステムに関する。
【背景技術】
【0002】
(関連出願の相互参照)
本出願は、2011年1月5日に出願された、「Apparatus,Method and System of Upgrading Elastic Computing Cloud System」という題名の中国特許出願第201110001297.X号の優先権を主張し、その全体が、参照により本明細書に組み込まれる。
【0003】
エラスティックコンピューティングクラウドは、リソース使用率を改善するため、およびコストを削減するために、仮想化技術に基づいて、ローカル物理サーバを、使用用の複数の仮想サーバとして仮想化するコンピューティングクラウドサービスである。エラスティックコンピューティングクラウド技術に基づいて仮想化された、仮想サーバ(すなわち、仮想マシン)の記憶サービスは、ブロックデバイスベースの遠隔記憶サービスであり、これは業界において、エラスティックブロック記憶と呼ばれる。
【0004】
ブロックデバイスの遠隔記憶サービスは、ブロックデバイスドライバによって提供されるブロックレベルの記憶サービスである。ローカル物理サーバおよび/または仮想サーバは、サーバのデータを遠隔記憶リソースプール内にブロックの単位で記憶することができ、それによりローカル記憶リソースを節約する。つまり、ブロックデバイスの遠隔記憶サービスは、ローカル物理サーバおよび/または仮想サーバのデータを格納するための物理ハードドライブに類似したサービスを提供し、データフォーマットおよびファイルシステムフォーマットに制限がない。
【0005】
エラスティックコンピューティングクラウド技術の急速な発展に伴い、エラスティックブロック記憶サービスは、遠隔記憶サービスの高可用性について高い基準を有する。一般に、エラスティックコンピューティングクラウドに基づいて仮想化された仮想サーバが何万とある。これらの何万もの仮想サーバは、第三者(政府機関、従来の大企業、および中小企業、小規模および中規模のインターネットのウェブマスター、個人ユーザ、等)に使用してもらうために提供される。複数の仮想サーバから形成されるクラスタは、動作のために、ブロックデバイスの遠隔記憶サービスに依存する。遠隔記憶は、エラスティックコンピューティングクラウドシステム全体のデータを保持し、循環させる。遠隔記憶サービスの可用性は、エラスティックコンピューティングクラウドシステム全体の可用性に関連する。
【0006】
ブロックデバイスの遠隔記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードする際、既存の技術は、まずサービスのユーザに、アップグレード処理のためにサービスが一時的に使用不能となることを通知して、記憶サービスのサービスアップグレード(例えば、バグの修復または新機能の提供、等)を行うために、エラスティックコンピューティングクラウドシステム全体のそれぞれの仮想サーバのサービスを一時的に中断する必要がある。再展開されたサービスが正常に動作した後、エラスティックコンピューティングクラウドシステム全体の仮想サーバは通常の動作に戻ることができ、それによりアップグレード処理が完了する。アップグレード処理は、ユーザがエラスティックコンピューティングクラウドシステムの仮想サーバによって提供されたウェブサービスを使用するウェブページにアクセスし続けることを防止する、つまりユーザが分散コンピューティングを行うためにエラスティックコンピューティングクラウドシステムの仮想サーバを使用している場合に、ユーザに対して進行中の分散コンピューティングを終了するように強要する。
【0007】
以上のように、ブロックデバイスの遠隔記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムを既存の技術でアップグレードする場合、関連するアップグレード処理は非常に複雑である。アップグレード処理は、比較的長い時間がかかり、一般にアップグレード作業の完了には数時間を要するため、アップグレードの効率は比較的低い。さらに、アップグレードの処理中、ユーザは進行中のトランザクションを終了するように強要される場合があるため、ユーザに対してサービスの高可用性を提供することを保障できず、ユーザの使用経験を悪化させる。
【発明の概要】
【0008】
本開示の例示的な実施形態は、オンラインアップグレードの技法を通じてアップグレードの効率を改善し、アップグレード中に、ユーザによって目下使用されているトランザクションが終了されることに起因するユーザの悪い使用経験の問題を回避するために、ブロックデバイスの遠隔記憶に基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードするための装置、方法、およびシステムを提供する。
【0009】
本開示の第1の態様によると、本開示の例示的な実施形態は、ブロックデバイスの記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムのサーバを提供する。一実施形態において、サーバには、ブロックデバイスドライバ装置、および少なくとも1つのブロックデバイスサービス装置が含まれる。ブロックデバイスドライバ装置は、ブロックデバイスサービス装置に対応するデータの書き込み/読み取り要求の受信に応答して、受信したデータの書き込み/読み取り要求を、ブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に置くように構成される。
【0010】
加えて、ブロックデバイスドライバ装置はさらに、待機待ち行列からデータの書き込み/読み取り要求をフェッチして、フェッチされた要求を、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列に転送し、保留待ち行列内のデータの書き込み/読み取り要求を、処理のためにブロックデバイスサービス装置に送信することができる。受信したデータの書き込み/読み取り要求についての、ブロックデバイスサービス装置からの処理結果の受信に応答して、ブロックデバイスドライバ装置は、送信されたデータの書き込み/読み取り要求を保留待ち行列から削除することができる。
【0011】
一実施形態では、ブロックデバイスドライバ装置は、ブロックデバイスサービス装置がサービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、処理のためにブロックデバイスサービス装置に送信することを停止することができ、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を待機待ち行列に転送し戻すことができる。
【0012】
さらに、ブロックデバイスサービス装置は、ブロックデバイスドライバ装置から送信されたデータの書き込み/読み取り要求に基づいて、ブロックデバイスの記憶リソースプールのために要求されたデータに対応する読み込みおよび書き込みの動作を行うように構成されてもよい。
【0013】
本開示の第2の態様によると、本開示の例示的な実施形態は、ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードする方法をさらに提供する。一実施形態において、本方法には、ブロックデバイスに関連付けられたサービスに対応するデータの書き込み/読み取り要求の受信に応答して、その都度、ブロックデバイスに関連付けられたサービスのために事前に維持されている待機待ち行列内に、受信したデータの書き込み/読み取り要求を置くことが含まれる。本方法はさらに、待機待ち行列からデータの書き込み/読み取り要求をフェッチして、フェッチされた要求を、ブロックデバイスに関連付けられたサービスのために事前に維持されている保留待ち行列に転送することができる。
【0014】
一実施形態において、本方法は、保留待ち行列内のデータの書き込み/読み取り要求を、処理のために、ブロックデバイスに関連付けられたサービスに送信し、受信したデータの書き込み/読み取り要求についての、ブロックデバイスに関連付けられたサービスからの処理結果の受信に応答して、送信されたデータの書き込み/読み取り要求を保留待ち行列から削除する。いくつかの実施形態では、本方法は、ブロックデバイスに関連付けられたサービスがサービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、処理のためにブロックデバイスに関連付けられたサービスに送信することを停止することができ、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を待機待ち行列に転送し戻すことができる。
【0015】
本開示の第3の態様によると、本開示の例示的な実施形態は、ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードするための装置をさらに提供する。一実施形態において、本装置には、ブロックデバイスに関連付けられたサービスに対応するデータの書き込み/読み取り要求の受信に応答して、その都度、受信したデータの書き込み/読み取り要求を、ブロックデバイスに関連付けられたサービスのために事前に維持されている待機待ち行列内に置くように構成される、待機待ち行列維持ユニットが含まれる。
【0016】
加えて、本装置には、待機待ち行列からデータの書き込み/読み取り要求をフェッチして、フェッチされた要求を、ブロックデバイスと関連付けられたサービスのために事前に維持されている保留待ち行列に転送するように構成される、保留待ち行列維持ユニットがさらに含まれてもよい。
【0017】
いくつかの実施形態において、本装置には、保留待ち行列内のデータの書き込み/読み取り要求を、処理のために、ブロックデバイスに関連付けられたサービスに送信するように構成される、書き込み/読み取り要求処理ユニットがさらに含まれてもよい。書き込み/読み取り要求処理ユニットは、受信したデータの書き込み/読み取り要求についての、ブロックデバイスに関連付けられたサービスからの処理結果の受信に応答して、送信されたデータの書き込み/読み取り要求を保留待ち行列から削除するようにさらに構成されてもよい。一実施形態では、書き込み/読み取り要求処理ユニットは、ブロックデバイスに関連付けられたサービスが、サービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、処理のためにブロックデバイスに関連付けられたサービスに送信することを停止することができ、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、待機待ち行列に転送し戻すことができる。
【0018】
本開示の第4の態様によると、本開示の例示的な実施形態は、ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードするためのシステムをさらに提供する。一実施形態において、本システムには、ブロックデバイスに関連付けられた記憶サービスに基づいてエラスティックコンピューティングクラウドシステムのデータを記憶するように構成される、記憶リソースプールが含まれてもよい。
【0019】
加えて、本システムには、少なくとも1つの物理サーバがさらに含まれてもよい。少なくとも1つの物理サーバは、ブロックデバイスに関連付けられたサービスに対応するデータの書き込み/読み取り要求の受信に応答して、その都度、受信したデータの書き込み/読み取り要求を、ブロックデバイスに関連付けられたサービスのために、事前に維持されている待機待ち行列内に置くように構成されてもよい。
【0020】
さらに、少なくとも1つの物理サーバは、待機待ち行列からデータの書き込み/読み取り要求をフェッチして、フェッチされた要求を、ブロックデバイスに関連付けられたサービスのために、事前に維持されている保留待ち行列に転送し、保留待ち行列内のデータの書き込み/読み取り要求に基づいて、記憶リソースプールのために要求されたデータに対応する読み込みおよび書き込みの動作を行うことができる。
【0021】
いくつかの実施形態において、少なくとも1つの物理サーバは、ブロックデバイスに関連付けられたサービスが、サービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、処理のためにブロックデバイスに関連付けられたサービスに送信することを停止し、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、待機待ち行列に転送し戻すことができる。
【0022】
ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムの物理サーバにおいて、本開示の例示的な実施形態によって提案される技術的な構想は、ブロックデバイスの各仮想化されたサービスに対して2つの待ち行列を個々に維持する。1つはデータの書き込み/読み取り要求のための待機待ち行列であり、ブロックデバイスに関連付けられたサービスに送信されて処理を待つデータの書き込み/読み取り要求を維持するために使用される。もう1つは、ブロックデバイスに関連付けられたサービスによって目下処理中であるデータの書き込み/読み取り要求を維持するために、物理サーバによって使用される、保留待ち行列である。
【0023】
この技術的な構想は、ブロックデバイスに関連付けられたサービスがアップグレードされる必要のある時に、ブロックデバイスに関連付けられたサービスのために、保留待ち行列内に維持されているデータの書き込み/読み取り要求の処理を停止し、保留待ち行列内で目下処理中であるデータの書き込み/読み取り要求を、再ディスパッチのために待機待ち行列内に戻し、それにより、記憶サービスを中断することなく、エラスティックコンピューティングクラウドシステムにおける記憶サービスの、サービスアップグレードの処理完了が実現される。これは、サービスアップグレードの効率を向上させ、ユーザによって目下使用されているトランザクションの中断を回避し、アップグレード処理中に高可用性のサービスを提供し、それにより、ユーザの使用経験が向上される。
【図面の簡単な説明】
【0024】
【
図1】本開示の例示的な実施形態によって提案される技術的な構想によって使用されるブロックデバイスの記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムのトポロジーを例示する構造図である。
【
図2】本開示の例示的な実施形態による、改善された物理サーバを例示する構造図である。
【
図3】本開示の例示的な実施形態による、ローカルまたは遠隔記憶リソースプールにおけるデータの読み取りおよび書き込みのための、改善された物理サーバの内部処理を例示する流れ図である。
【
図4】本開示の例示的な実施形態による、改善された物理サーバにおけるブロックデバイスドライバ装置の動作の詳細を例示する流れ図である。
【
図5】本開示の例示的な実施形態によるブロックデバイスサービス装置のサービスアップグレードの前または後に、改善された物理サーバのブロックデバイスドライバ装置が、それによって維持されている待機待ち行列および保留待ち行列のためにディスパッチを行うための処理を例示する概略図である。
【
図6】本開示の例示的な実施形態による、改善されたサーバの新しいブロックデバイスドライバ装置を例示する構造図である。
【
図7】本開示の例示的な実施形態による、サーバのサービスアップグレードを行う時に、物理サーバのブロックデバイスドライバ装置を制御する動作を例示する概略図である。
【
図8】
図6で説明する例示的な装置をより詳細に例示する図である。
【発明を実施するための形態】
【0025】
既存の技術における、オンラインアップグレードを実現するためのホットデプロイメントの欠如に起因して、ブロックデバイスの記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムがアップグレードされる際、エラスティックコンピューティングクラウドシステムにおける各仮想サーバは、サービスアップグレードのためにシャットダウンし、アップグレードが完了した上で再起動する必要がある。記憶サービスの提供者または記憶サービスのユーザにとって、このことは、大いに、維持コストを増大させ、関連するサービスの可用性を低下させる。この問題を考慮して、本開示は、記憶サービスのオンラインアップグレードを実現するために、ブロックデバイスの記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムにおけるブロックデバイスの記憶サービスのために、ホットデプロイメントの実施を提案する。具体的には、記憶サービスのアップグレードは、記憶サービスを中断することなく行われる。したがって、サービス提供者の記憶サービスの可用性、および記憶サービスの透明性が向上し、記憶サービスのユーザが、バックエンドサービスのアップグレード処理を懸念する必要がなくなる。
【0026】
ブロックデバイスの記憶サービスのホットデプロイメントは、ブロックデバイスのサービスのオンラインアップグレードの技法である。ブロックデバイスの記憶サービスは、ブロックデバイスドライバ技術に基づくため、エラスティックコンピューティングクラウドシステムの物理サーバには、カーネルモードのブロックデバイスドライバのサービスプログラムが含まれる。ブロックデバイスドライバのカーネルモードサービスプログラムは、データの書き込み/読み取り要求を、物理サーバに含まれるブロックデバイスのユーザモードサービスプログラムに転送する必要があり、ブロックデバイスのユーザモードサービスプログラムは、書き込み/読み取り要求を、処理のために、遠隔ネットワークの記憶リソースプール、またはローカル物理ディスクの記憶リソースプール等に転送する。ブロックデバイスドライバのカーネルモードサービスプログラムは、ブロックデバイスのユーザモードサービスプログラムに比べて、より安定している。ブロックデバイスのユーザモードサービスプログラムは、より良い品質の記憶サービスを提供するために、バージョンのアップグレードを頻繁に必要とする。本開示の例示的な実施形態において提供される技術的な構想に基づいて、オンラインアップグレードを支持することのできるブロックデバイスドライバのサービスプログラムは、記憶サービスの可用性を強化するため、およびユーザの使用経験を向上させるために、エラスティックコンピューティングクラウドシステムの物理サーバ内に提供される。
【0027】
図1は、本開示の例示的な実施形態によって提案される技術的な構想で使用される、ブロックデバイスの記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムのトポロジーを例示する構造図を示している。エラスティックコンピューティングクラウドシステムには、エラスティックコンピューティングクラウド技術に基づいてローカル物理サーバから仮想化された、複数の仮想サーバ(
図1の仮想サーバ1、仮想サーバ2、仮想サーバ3、……、仮想サーバn)が含まれる。それぞれの仮想サーバは、ブロックデバイスの記憶サービス技術に基づき、遠隔記憶リソースプールまたはローカル記憶リソースプールを使用して、ローカルに提供されるデータの記憶サービスを実施する。具体的には、それぞれの仮想サーバは、遠隔記憶リソースプールまたはローカル記憶リソースプール内にローカルに格納される必要のあるデータを格納し、その後に関連データを読み取る要求が提示された時に、遠隔記憶リソースプールまたはローカル記憶リソースプールからそのデータを読み取る。このようにして、それぞれの物理サーバは、ローカル物理サーバ自体の記憶リソースを占領することなく、遠隔にまたはローカルに設定される記憶リソースプールを共有することができるため、エラスティックコンピューティングクラウドシステムのリソース使用率が改善される。
【0028】
本開示において提供される技術的な構想を実施するために、上記で説明されるエラスティックコンピューティングクラウドシステムの物理サーバの機能は、記憶サービスのためのオンラインアップグレードを行うという目的を達成するために、改善される必要がある。
【0029】
図2は、本開示の例示的な実施形態による、改善された物理サーバを例示する構造図を示し、具体的には、カーネルモードのブロックデバイスドライバ装置20,ユーザモードのクライアント装置21、および少なくとも1つのブロックデバイスサービス装置22、ならびにローカルまたは遠隔記憶リソースプール23が含まれている。ブロックデバイスドライバ装置20は、複数のブロックデバイスサービス装置22のジョブを制御することができる。それぞれの構成要素は、下記の動作原理に基づいて、記憶サービスのオンラインアップグレードを実現する。
【0030】
カーネルモードのブロックデバイスドライバ装置20は、物理サーバの最下層の書き込み/読み取りディスパッチ層からデータの書き込み/読み取り要求を受信し、データの書き込み/読み取り要求を、例えばTCPプロトコルを介して、ユーザモードのブロックデバイスサービス装置22に転送する。ホットデプロイメントを支持するオンラインアップグレード機能を実施するために、ブロックデバイスドライバ装置20は、物理サーバから仮想化される、それぞれのブロックデバイスサービス装置22に対して2つの待ち行列を維持し、その1つは待機待ち行列である。物理サーバの最下層の書き込み/読み取りディスパッチ層から、特定のブロックデバイスサービス装置22に対応するデータの書き込み/読み取り要求が受信されると、その都度、ブロックデバイスドライバ装置20は、受信した書き込み/読み取り要求を、後続の処理を待つように、ブロックデバイスサービス装置22のために事前に維持されている待機待ち行列内に入れる。もう1つは、保留待ち行列である。そのブロックデバイスサービス装置22の、データの書き込み/読み取り要求を処理する時に、その都度、ブロックデバイスドライバ装置20はまず、ブロックデバイスサービス装置22のために事前に維持されている待機待ち行列からデータの書き込み/読み取り要求をフェッチして、この要求を、ブロックデバイスサービス装置22のために事前に維持されている保留待ち行列に転送し、処理のために、保留待ち行列内のこの要求をブロックデバイスサービス装置22に送信する。以上から分かるように、保留待ち行列内のすべての書き込み/読み取り要求は、物理サーバによって目下処理中である書き込み/読み取り要求である。ブロックデバイスドライバ装置20から送信された、保留待ち行列の書き込み/読み取り要求が適切に完了した後、ブロックデバイスサービス装置22は、適切に処理がなされた結果をブロックデバイスドライバ装置20に送信する。適切に処理がなされた結果の受信に応答して、ブロックデバイスドライバ装置20は、送信され、かつ完全に処理された書き込み/読み取り要求を、保留待ち行列から取り除き、保留待ち行列内のその他の書き込み/読み取り要求を処理する等のことをする。その後、ブロックデバイスサービス装置22がサービスアップグレードを行うという判定に応答して、ブロックデバイスドライバ装置20は、そのブロックデバイスサービス装置22のために維持されている保留待ち行列内のデータの書き込み/読み取り要求を、そのブロックデバイスサービス装置22に送信することを停止する。さらに、サービスアップグレードが行われる、または完了したと判定されると、ブロックデバイスドライバ装置20は、ブロックデバイスサービス装置22のために事前に維持されている保留待ち行列内のデータの書き込み/読み取り要求を、後続の再ディスパッチおよび処理を待つように、ブロックデバイスサービス装置22のために事前に維持されている待機待ち行列に戻して追加する。
【0031】
好適には、ブロックデバイスドライバ装置20は、ブロックデバイスドライバ装置20自身とブロックデバイスサービス装置22との間のTCP通信接続が正常かどうかを検査することによって、ブロックデバイスサービス装置22がアップグレードの動作を行う、またはアップグレードを完了したかどうかを判定することができる。ブロックデバイスドライバ装置20とブロックデバイスサービス装置22との間のTCP通信接続が切断されている場合、ブロックデバイスドライバ装置20は、ブロックデバイスサービス装置22がサービスアップグレードを行うと判定することができる。ブロックデバイスドライバ装置20とブロックデバイスサービス装置22との間のTCP通信接続が、接続のために回復されている場合、ブロックデバイスドライバ装置20は、ブロックデバイスサービス装置22のサービスアップグレードが完了したと判定することができる。
【0032】
ユーザモードのブロックデバイスサービス装置22は、ブロックデバイスドライバ装置20から送信されたデータの書き込み/読み取り要求を、例えば、TCPプロトコルを介して受信する。具体的には、ユーザモードのブロックデバイスサービス装置22は、ブロックデバイスドライバ装置20によって処理されたデータの書き込み/読み取り要求を、ブロックデバイスサービス装置22のために事前に維持されている保留待ち行列内に受信する。書き込み/読み取り要求を受信すると、ユーザモードのブロックデバイスサービス装置22は、書き込み/読み取り要求が正当なものであるかどうか、それが読み取り要求または書き込み要求のどちらであるか、書き込み/読み取り要求の開始位置および長さの情報、等を分析(検証を含む)することによって、要求についての分析動作を行い、分析結果に基づいて、ローカルまたは遠隔記憶リソースプール上の読み取りまたは書き込み動作を行う。要求が読み取り要求である場合、ユーザモードのブロックデバイスサービス装置22は、要求されたデータを、ローカルまたは遠隔記憶リソースプール23から読み取り、読み取ったデータおよび処理結果をカーネルモードのブロックデバイスドライバ装置20に、例えばTCPプロトコルを介して、戻す。要求が書き込み要求である場合、ユーザモードのブロックデバイスサービス装置22は、ローカルまたは遠隔記憶リソースプール23に書き込まれるように要求されたデータを格納し、書き込み要求の処理結果をカーネルモードのブロックデバイスドライバ装置20に、例えばTCPプロトコルを介して、戻す。
【0033】
ユーザモードのクライアント装置21は、カーネルモードのブロックデバイスドライバ装置20を介して、ジョブを開始または停止するように、それぞれのブロックデバイスサービス装置22を制御することができる。ジョブを開始するようにブロックデバイスサービス装置22を制御する場合、クライアント装置21はまず、ユーザがクライアント装置21を介してブロックデバイスのサービスの要求の作成を始めた後に、ブロックデバイスサービス装置とのTCP接続を確立し、作成されたTCPのソケットハンドルを、ioctlコマンドを通じてブロックデバイスドライバ装置20に伝送する。その後、クライアント装置21は、TCPソケットを閉じることができる。このようにして、クライアント装置21は、カーネルモードのブロックデバイスドライバ装置20とユーザモードのブロックデバイスサービス装置22との間のTCP接続を実現する。ブロックデバイスドライバ装置20に送信される、すべての後続のデータの書き込み/読み取り要求は、ブロックデバイスサービス装置22に、TCP接続を介して送信され得る。ジョブを停止するようにブロックデバイスサービス装置22を制御する場合、クライアント装置21は、ユーザがクライアント装置21を介してブロックデバイスのサービスを停止するための要求を始めた後に、停止要求を、ioctlコマンドを通じてブロックデバイスドライバ装置20に送信する。要求を受信すると、ブロックデバイスドライバ装置20はまず、停止要求をブロックデバイスサービス装置22に送信する。この要求の受信に応答して、ブロックデバイスサービス装置22はTCPソケットを閉じた上で、安全に終了する。ブロックデバイスサービス装置22から停止応答を受信した後に、ブロックデバイスドライバ装置20は、関連する保留待ち行列内の書き込み/読み取り要求の処理を停止する。結果として、ブロックデバイスサービス装置22は動作を停止する。ブロックデバイスサービス装置22がアップグレードの処理中である場合、クライアント装置21は、ブロックデバイスサービス装置22とのTCPリンクの確立を一秒ごとに試みることができる。新しいTCPリンクが首尾よく確立されると、これは、ブロックデバイスサービス装置22が首尾よくアップグレードされたことを示し、クライアント装置21は、新しく作成されたTCPのソケットハンドルを、ioctlコマンドを通じてブロックデバイスドライバ装置20に伝送する。このようにして、ブロックデバイスサービス装置22がアップグレードされた後、ブロックデバイスドライバ装置20およびブロックデバイスサービス装置22は、データの書き込み/読み取り要求を通信するための新しいTCPリンクを確立する。
【0034】
クライアント装置21は、本開示における物理サーバの、オプションの構成要素とすることができる。ユーザモードのブロックデバイスサービス装置22の動作モードのユーザ制御を実現するために、クライアント装置21を使用する他には、タイミング機能、イベントトリガー機能等の他のトリガーメカニズムを使用して、ユーザモードのブロックデバイスサービス装置22の動作モードを自動的に制御することができる。
【0035】
一般に、ローカルまたは遠隔記憶リソースプール23は、分散ファイルシステムまたは類似のものの、記憶サーバである。このリソースプール23は、ローカルに、または遠隔に展開することができ、大抵の場合、遠隔に展開された記憶リソースプールである。記憶リソースプール23は、エラスティックコンピューティングクラウドシステムの、それぞれの仮想サーバのサービスのデータを格納する。具体的には、物理サーバの特定のブロックデバイスサービス装置22からデータの読み取り要求を受信した場合、記憶リソースプール23は、要求に関連するデータをそこから読み取り、読み取ったデータをブロックデバイスサービス装置22にフィードバックする。物理サーバの特定のブロックデバイスサービス装置22からデータの書き込み要求を受信した場合、記憶リソースプール23は、書き込まれるように要求されたデータをそこに格納する。
【0036】
図3は、本開示の例示的な実施形態による、ローカルまたは遠隔記憶リソースプールにおけるデータの読み取りおよび書き込みのための、改善された物理サーバの内部処理を例示する流れ図を示している。一実施形態において、データの読み取りの処理には以下が含まれてもよい。
【0037】
ローカル物理サーバのファイルシステム層が、特定のブロックデバイスサービス装置のデータの読み取り要求を、汎用ブロック層および書き込み/読み取りディスパッチ層を介してブロックデバイスドライバ装置に送信した後、ブロックデバイスドライバ装置は、この要求を、後続の処理を待つように、ブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に置き、その後に、データの読み取り要求を、待ち行列から、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列内にフェッチして、読み取り要求を処理、すなわち、読み取り要求をブロックデバイスサービス装置に送信する。ブロックデバイスサービス装置は、読み取り要求に従って、要求に関連するデータを記憶プールから読み取り、読み取り結果を、ブロックデバイスドライバ装置に、TCP接続を介して戻す。ブロックデバイスドライバ装置は、読み取り結果を、ファイルシステム層に、汎用ブロック層および書き込み/読み取りディスパッチ層を介して伝送し、ファイルシステム層は、読み取り結果を、ディスパッチのためにシステムに戻す。
【0038】
一実施形態において、データの書き込み処理には、以下が含まれてもよい。
【0039】
ローカル物理サーバは、データの書き込み要求と、システムによって呼び出される、ファイルシステム層、汎用ブロック層、および書き込み/読み取りディスパッチ層を介して、ブロックデバイスドライバ装置に書き込まれるように要求されているデータとを、格納する。ブロックデバイスドライバ装置は、書き込み要求を、後続の処理を待つように、ブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に置き、その後に、待ち行列からデータの書き込み要求をフェッチして、この要求を、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列に置き、書き込み要求を処理、すなわちデータの書き込み要求および書き込まれるデータを、ブロックデバイスサービス装置に送信する。ブロックデバイスサービス装置は、書き込まれるデータの、記憶リソースプール内への格納を達成するために、データの書き込み要求を分析する。
【0040】
図4は、本開示の例示的な実施形態による、改善された物理サーバにおけるブロックデバイスドライバ装置の動作の詳細を例示する流れ図を示している。ブロックデバイスドライバ装置は、それぞれのブロックデバイスサービス装置に対して、2つの待ち行列を個々に維持し、待ち行列の1つは待機待ち行列であり、送信され、かつ、対応するブロックデバイスサービス装置による処理を待つ、データの書き込み/読み取り要求を、この待機待ち行列内に置くため、およびこの要求を、処理を待つ待ち行列の状態に入らせるために、使用され、もう1つの待ち行列は保留待ち行列であり、対応するブロックデバイスサービス装置によって目下処理中である、データの書き込み/読み取り要求を、この保留待ち行列内に置くために使用される。これらの維持されている2つの待ち行列に基づく、ブロックデバイスドライバ装置の具体的な動作原理は以下の通りである。
【0041】
40において、物理サーバの最下層から、特定のブロックデバイスサービス装置に対応するデータの書き込み/読み取り要求が受信されると、その都度、ブロックデバイスドライバ装置は、受信したデータの書き込み/読み取り要求を待たせるために、そのブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に置く。
【0042】
42において、ブロックデバイスサービス装置に対応するデータの書き込み/読み取り要求を処理する時に、ブロックデバイスドライバ装置はまず、待機待ち行列からデータの書き込み/読み取り要求をフェッチして、この要求を、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列に転送し、保留待ち行列内のデータの書き込み/読み取り要求を、処理のために、ユーザモードのブロックデバイスサービス装置に送信し、ブロックデバイスサービス装置からの、受信したデータの書き込み/読み取り要求の適切な処理結果の受信に応答して、送信されたデータの書き込み/読み取り要求を保留待ち行列から削除する。
【0043】
44において、ブロックデバイスサービス装置がサービスアップグレードを行うという判定に応答して、ブロックデバイスドライバ装置は、保留待ち行列内のすべてのデータの書き込み/読み取り要求を、処理のためにブロックデバイスサービス装置に送信することを停止する。
【0044】
46において、サービスアップグレードが行われる、または完了したと判定されると、ブロックデバイスドライバ装置は、保留待ち行列内のデータの書き込み/読み取り要求を、後続の再ディスパッチおよび処理を待つように、待機待ち行列に転送し戻す。具体的には、ブロックデバイスドライバ装置は、ブロックデバイスサービス装置がサービスアップグレードを行う、またはサービスアップグレードを完了したかどうかを、ブロックデバイスドライバ装置自身とブロックデバイスサービス装置との間の通信接続の状態を検査することによって判定することができる。より具体的には、ブロックデバイスドライバ装置自身とブロックデバイスサービス装置との間の通信接続が切断されたことを検知すると、ブロックデバイスドライバ装置は、ブロックデバイスサービス装置がサービスアップグレードを行うと判定することができる。さらに、ブロックデバイスドライバ装置自身とブロックデバイスサービス装置との間の通信接続が回復されたと検知すると、ブロックデバイスドライバ装置は、ブロックデバイスサービス装置がサービスアップグレードを完了したと判定することができる。
【0045】
図5は、本開示の例示的な実施形態によるブロックデバイスサービス装置のサービスアップグレードの前または後に、改善された物理サーバのブロックデバイスドライバ装置が、それによって維持されている待機待ち行列および保留待ち行列のためにディスパッチを行うための処理を例示する概略図を示している。ブロックデバイスサービス装置のホットデプロイメント(すなわち、オンラインアップグレード)を支持するために、カーネルモードのブロックデバイスドライバ装置は、受信したデータの書き込み/読み取り要求を維持する必要がある。ブロックデバイスドライバ装置は、それぞれのブロックデバイスサービス装置に対して、2つの、データの読み取りおよび書き込み待ち行列を個々に使用して、書き込み/読み取り要求の状態を維持する。1つは、待機待ち行列であり、それぞれのブロックデバイスサービス装置のための物理サーバ内の書き込み/読み取りディスパッチ層から送信される、書き込み/読み取り要求を維持するために使用され、これらの要求は、ブロックデバイスドライバ装置による後続の処理を待つように、待機待ち行列内に並ぶ。もう1つは、保留待ち行列であり、それぞれのブロックデバイスサービス装置のために、ブロックデバイスドライバ装置によって目下処理中である、書き込み/読み取り要求を維持するために使用される。これらの、保留待ち行列内の書き込み/読み取り要求は、完全に処理されておらず、ブロックデバイスドライバ装置が、対応するブロックデバイスサービス装置の処理応答を待っている状況である場合がある。特定のブロックデバイスサービス装置がサービスアップグレードを行っていない場合、ブロックデバイスドライバ装置はまず、書き込み/読み取り要求を処理する際に、ブロックデバイスサービス装置のために事前に維持されている待機待ち行列の先頭から書き込み/読み取り要求をフェッチして、フェッチされた書き込み/読み取り要求を待機待ち行列から削除し、書き込み/読み取り要求を、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列の先頭に置き、保留待ち行列内の各書き込み/読み取り要求を、処理のために、ブロックデバイスサービス装置に送信し、ブロックデバイスサービス装置から、受信した書き込み/読み取り要求の適切な処理結果を受信した後で、送信された書き込み/読み取り要求を、保留待ち行列から削除する。ブロックデバイスサービス装置がサービスアップグレードを必要とする時、ブロックデバイスドライバ装置は、保留待ち行列内の書き込み/読み取り要求を、処理のために、ブロックデバイスサービス装置に送信することを停止する、すなわち、新しい書き込み/読み取り要求をブロックデバイスサービス装置に送信することを停止する。ブロックデバイスサービス装置がアップグレードを行う、またはアップグレードを完了した後に、ブロックデバイスドライバ装置は、対応する保留待ち行列内のすべての書き込み/読み取り要求(
図5に、1、2、3、4、5、6、……と示されている要求等)を、ブロックデバイスドライバ装置による後続の再ディスパッチのために、対応する待機待ち行列に戻して置く。
【0046】
以上のように、ブロックデバイスドライバ装置をエラスティックコンピューティングクラウドシステムの物理サーバに追加することによって、およびそれぞれのブロックデバイスサービス装置のために事前に維持されている2つの待ち行列を介して、ブロックデバイスドライバ装置によるディスパッチをすることによって、バックエンド記憶サービスのサービスアップグレードは、データ記憶のユーザに対する記憶サービスの提供を中断することなく完了することができるため、エラスティックコンピューティングクラウドシステムにおけるデータ記憶の可用性が向上する。さらに、前述の構想は、データ記憶のユーザが、記憶サービスのサービスアップグレードに起因するデータ記憶のトランザクションへのあらゆる影響をほとんど感じないように、ユーザにとって透過的であるため、ユーザの使用経験が改善される。
【0047】
これに対応して、
図6は、本開示の例示的な実施形態による、改善された物理サーバの新しいブロックデバイスドライバ装置を例示する構造図を示している。一実施形態において、本装置には、各ブロックデバイスサービス装置のために、待機待ち行列を個別に維持するために使用される、待機待ち行列維持ユニット60が含まれてもよく、この待機待ち行列内には、それぞれのブロックデバイスサービス装置のためのデータの書き込み/読み取り要求が、処理を待つ待ち行列の状態に入るように置かれる。加えて、本装置には、各ブロックデバイスサービス装置のために、別の保留待ち行列を個別に維持するために使用される、保留待ち行列維持ユニット61がさらに含まれてもよく、この別の保留待ち行列内には、それぞれのブロックデバイスサービス装置のための、目下処理中であるデータの書き込み/読み取り要求が置かれる。
【0048】
具体的には、データの書き込み/読み取り要求は、特定のブロックデバイスサービス装置のために、待機待ち行列維持ユニット60によって事前に維持されている待機待ち行列からフェッチされて、そのブロックデバイスサービス装置のために維持されている保留待ち行列に移動される。具体的には、保留待ち行列維持ユニット61は、対応する待機待ち行列の先頭から、データの書き込み/読み取り要求をフェッチして、フェッチされたデータの書き込み/読み取り要求を待機待ち行列から削除し、フェッチされたデータの書き込み/読み取り要求を、事前に維持されている対応する保留待ち行列の先頭に転送することができる。
【0049】
いくつかの実施形態では、本装置には、書き込み/読み取り要求処理ユニット62がさらに含まれてもよい。書き込み/読み取り要求処理ユニット62は、保留待ち行列維持ユニット61によって維持されている、対応する保留待ち行列内のデータの書き込み/読み取り要求を、処理のために、ブロックデバイスサービス装置に送信するために使用することができる。さらに、書き込み/読み取り要求処理ユニット62は、ブロックデバイスサービス装置からの、受信したデータの書き込み/読み取り要求の適切な処理結果の受信に応答して、送信されたデータの書き込み/読み取り要求を、保留待ち行列から削除することができ、ブロックデバイスサービス装置がサービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、処理のためにブロックデバイスサービス装置に送信することを停止することができる。
【0050】
いくつかの実施形態では、書き込み/読み取り要求処理ユニット62はさらに、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、書き込み/読み取り要求処理ユニット62によってその後に再ディスパッチされるのを待たせるために、対応する待機待ち行列に転送し戻すことができる。具体的には、書き込み/読み取り要求処理ユニット62は、ブロックデバイスドライバ装置とブロックデバイスサービス装置との間の通信接続の状態を検査することによって、通信接続の切断を検知すると、ブロックデバイスサービス装置がサービスアップグレードを行うと判定することができ、通信接続が回復されたと検知すると、ブロックデバイスサービス装置がサービスアップグレードを完了したと判定することができる。
【0051】
図7は、本開示の例示的な実施形態による、サーバのサービスアップグレードを行う時に、物理サーバのブロックデバイスドライバ装置を制御する動作を例示する概略図を示している。具体的には、動作の過程には、以下が含まれる。
【0052】
70において、記憶サービスのアップグレードに先立って、アップグレード保守管理者は、ioctlコマンドを、ユーザモードのクライアント装置を介して、カーネルモードのブロックデバイスドライバ装置に送信して、ブロックデバイスドライバ装置がすべての書き込み/読み取り要求を保持するように指示する。
【0053】
72において、アップグレード保守管理者はその後に、通常のアップグレードプロセスを使用して記憶サービスのためのサービスアップグレード(サービスアップグレードには、サービスを停止すること、サービスプログラムをアップグレードすること、新しいサービスを公開すること、等が含まれる)を行う。このようにして、記憶サービスに対するオンラインのサービスアップグレードを行うためのホットデプロイメントが完了する。ホットデプロイメントの処理中、ブロックデバイスドライバ装置はすべての書き込み/読み取り要求を保持する。
【0054】
74において、デプロイメントがなされた上で、ブロックデバイスドライバ装置はすべての書き込み/読み取り要求を解放し、データの記憶サービスは処理を続ける。
【0055】
本開示の例示的な実施形態は、方法、装置(デバイス)、またはコンピュータプログラム製品として提供され得ることが、当業者には理解されるべきである。したがって、本開示は、ハードウェアのみ、ソフトウェアのみ、またはハードウェアとソフトウェアとの組み合わせの単位で実施することができる。さらに、本開示は、コンピュータで実行可能な命令を含む1つまたは複数のコンピュータ記憶媒体(ディスク記憶、CD−ROM、光ディスク、その他を含むがこれらに限定されない)を有するコンピュータプログラム製品の形状で実施することができる。
【0056】
本開示は、例示的な方法、装置(デバイス)およびコンピュータプログラム製品の、流れ図および/またはブロック図を参照して説明される。流れ図および/またはブロック図の、それぞれの流れおよび/またはブロック、ならびに流れおよび/またはブロックの組み合わせは、コンピュータプログラム命令によって実行されてもよいことが理解されるべきである。これらのコンピュータプログラム命令は、コンピュータまたはその他のプログラマブルデータプロセッサによる命令の実行を通じて、流れ図の1つまたは複数の流れ内、および/またはブロック図の1つまたは複数のブロック内で指示された機能を実施する装置を作るために、一般的なコンピュータ、特化型コンピュータ、マシンを作り出すための組み込みプロセッサもしくはその他のプログラマブルデータプロセッサに提供されてもよい。
【0057】
これらのコンピュータプログラム命令は、代替として、コンピュータ読み取り可能な記憶域に格納された命令が、命令装置を含む製品を作り出すように、コンピュータまたはその他のプログラマブルデータプロセッサに対して特定の方式で動作するように命令することのできる、コンピュータ読み取り可能な記憶域に格納されてもよい。命令装置は、流れ図の1つもしくは複数の流れおよび/またはブロック図の1つもしくは複数のブロックにおいて指示される機能を実施する。
【0058】
これらのコンピュータプログラム命令は、代替として、コンピュータまたはその他のプログラマブルデータプロセッサが、コンピュータによって実施される処理を作り出すための一連の動作行動をすることができるように、コンピュータまたはその他のプログラマブルデータプロセッサ内にロードされてもよい。その結果、コンピュータまたはその他のプログラマブルデータプロセッサで実行される命令は、流れ図の1つもしくは複数の流れおよび/またはブロック図の1つもしくは複数のブロックにおいて指示される機能を実施するための行動を提供することができる。
【0059】
例えば、
図8は、上記で説明される装置のような、例示的な装置800をより詳細に示している。一実施形態において、装置800には、1つまたは複数のプロセッサ801、ネットワークインターフェース802、メモリ803、および入出力インターフェース804が含まれてもよいが、これらに限定されない。
【0060】
メモリ803には、ランダムアクセスメモリ(RAM)等のような、揮発性メモリの形状の、コンピュータ読み取り可能な媒体、および/または、リードオンリーメモリ(ROM)もしくはフラッシュRAM等のような、不揮発性メモリが含まれてもよい。メモリ803は、コンピュータ読み取り可能な媒体の一例である。
【0061】
コンピュータ読み取り可能な媒体には、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、またはその他のデータ等のような情報の記憶のための、あらゆる方法もしくは技術において実装される、揮発性および不揮発性、取り外し可能なおよび取り外し不可能な媒体が含まれる。コンピュータ記憶媒体の例には、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、その他のタイプのランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリもしくはその他のメモリ技術、コンパクトディスクリードオンリーメモリ(CD−ROM)、デジタル多目的ディスク(DVD)もしくはその他の光学式記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくはその他の磁気記憶装置、または、コンピューティング装置によってアクセスするための情報を格納するために使用され得る、あらゆるその他の非伝送媒体が含まれるが、これらに限定されない。本明細書において定義されるように、コンピュータ読み取り可能な媒体には、変調されたデータ信号および搬送波等のような、一時的な媒体は含まれない。
【0062】
メモリ803には、プログラムユニット805およびプログラムデータ806が含まれてもよい。一実施形態では、プログラムユニット805には、待機待ち行列維持ユニット807、保留待ち行列維持ユニット808、および書き込み/読み取り要求処理ユニット809が含まれてもよい。これらのプログラムユニットの詳細は、上記で説明されている前述の実施形態内に見ることができる。
【0063】
本開示の好ましい実施形態が説明されているが、当業者は、基本的な創造的概念を理解すればすぐに、これらの実施形態に対する追加の修正および変更を行うことが可能である。したがって、特許請求の範囲は、本開示の特許請求の範囲および好ましい実施形態の範囲に含まれる、すべての変更形態および変形形態を含むことが意図される。
【0064】
当業者は、開示される方法、システムおよび装置を多くの異なるやり方で、本開示の趣旨および範囲から逸脱することなく、修正または変更することができる。したがって、本開示は、本開示の特許請求の範囲およびそれらの均等物の範囲に含まれる、すべての変更形態および変形形態を含むことが意図される。