JP5931919B2 - エラスティックコンピューティングクラウドシステムのアップグレード - Google Patents

エラスティックコンピューティングクラウドシステムのアップグレード Download PDF

Info

Publication number
JP5931919B2
JP5931919B2 JP2013548460A JP2013548460A JP5931919B2 JP 5931919 B2 JP5931919 B2 JP 5931919B2 JP 2013548460 A JP2013548460 A JP 2013548460A JP 2013548460 A JP2013548460 A JP 2013548460A JP 5931919 B2 JP5931919 B2 JP 5931919B2
Authority
JP
Japan
Prior art keywords
block device
service
write
data
read request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013548460A
Other languages
English (en)
Other versions
JP2014501995A (ja
Inventor
ウェイツァイ チェン
ウェイツァイ チェン
ボー チェン
ボー チェン
ホワ コン
ホワ コン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2014501995A publication Critical patent/JP2014501995A/ja
Application granted granted Critical
Publication of JP5931919B2 publication Critical patent/JP5931919B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示は、ブロックデバイスに関連付けられたエラスティックコンピューティングクラウドおよび記憶サービスの技術分野に関し、具体的には、ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムをアップグレードするための装置、方法、およびシステムに関する。
(関連出願の相互参照)
本出願は、2011年1月5日に出願された、「Apparatus,Method and System of Upgrading Elastic Computing Cloud System」という題名の中国特許出願第201110001297.X号の優先権を主張し、その全体が、参照により本明細書に組み込まれる。
エラスティックコンピューティングクラウドは、リソース使用率を改善するため、およびコストを削減するために、仮想化技術に基づいて、ローカル物理サーバを、使用用の複数の仮想サーバとして仮想化するコンピューティングクラウドサービスである。エラスティックコンピューティングクラウド技術に基づいて仮想化された、仮想サーバ(すなわち、仮想マシン)の記憶サービスは、ブロックデバイスベースの遠隔記憶サービスであり、これは業界において、エラスティックブロック記憶と呼ばれる。
ブロックデバイスの遠隔記憶サービスは、ブロックデバイスドライバによって提供されるブロックレベルの記憶サービスである。ローカル物理サーバおよび/または仮想サーバは、サーバのデータを遠隔記憶リソースプール内にブロックの単位で記憶することができ、それによりローカル記憶リソースを節約する。つまり、ブロックデバイスの遠隔記憶サービスは、ローカル物理サーバおよび/または仮想サーバのデータを格納するための物理ハードドライブに類似したサービスを提供し、データフォーマットおよびファイルシステムフォーマットに制限がない。
エラスティックコンピューティングクラウド技術の急速な発展に伴い、エラスティックブロック記憶サービスは、遠隔記憶サービスの高可用性について高い基準を有する。一般に、エラスティックコンピューティングクラウドに基づいて仮想化された仮想サーバが何万とある。これらの何万もの仮想サーバは、第三者(政府機関、従来の大企業、および中小企業、小規模および中規模のインターネットのウェブマスター、個人ユーザ、等)に使用してもらうために提供される。複数の仮想サーバから形成されるクラスタは、動作のために、ブロックデバイスの遠隔記憶サービスに依存する。遠隔記憶は、エラスティックコンピューティングクラウドシステム全体のデータを保持し、循環させる。遠隔記憶サービスの可用性は、エラスティックコンピューティングクラウドシステム全体の可用性に関連する。
ブロックデバイスの遠隔記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードする際、既存の技術は、まずサービスのユーザに、アップグレード処理のためにサービスが一時的に使用不能となることを通知して、記憶サービスのサービスアップグレード(例えば、バグの修復または新機能の提供、等)を行うために、エラスティックコンピューティングクラウドシステム全体のそれぞれの仮想サーバのサービスを一時的に中断する必要がある。再展開されたサービスが正常に動作した後、エラスティックコンピューティングクラウドシステム全体の仮想サーバは通常の動作に戻ることができ、それによりアップグレード処理が完了する。アップグレード処理は、ユーザがエラスティックコンピューティングクラウドシステムの仮想サーバによって提供されたウェブサービスを使用するウェブページにアクセスし続けることを防止する、つまりユーザが分散コンピューティングを行うためにエラスティックコンピューティングクラウドシステムの仮想サーバを使用している場合に、ユーザに対して進行中の分散コンピューティングを終了するように強要する。
以上のように、ブロックデバイスの遠隔記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムを既存の技術でアップグレードする場合、関連するアップグレード処理は非常に複雑である。アップグレード処理は、比較的長い時間がかかり、一般にアップグレード作業の完了には数時間を要するため、アップグレードの効率は比較的低い。さらに、アップグレードの処理中、ユーザは進行中のトランザクションを終了するように強要される場合があるため、ユーザに対してサービスの高可用性を提供することを保障できず、ユーザの使用経験を悪化させる。
本開示の例示的な実施形態は、オンラインアップグレードの技法を通じてアップグレードの効率を改善し、アップグレード中に、ユーザによって目下使用されているトランザクションが終了されることに起因するユーザの悪い使用経験の問題を回避するために、ブロックデバイスの遠隔記憶に基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードするための装置、方法、およびシステムを提供する。
本開示の第1の態様によると、本開示の例示的な実施形態は、ブロックデバイスの記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムのサーバを提供する。一実施形態において、サーバには、ブロックデバイスドライバ装置、および少なくとも1つのブロックデバイスサービス装置が含まれる。ブロックデバイスドライバ装置は、ブロックデバイスサービス装置に対応するデータの書き込み/読み取り要求の受信に応答して、受信したデータの書き込み/読み取り要求を、ブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に置くように構成される。
加えて、ブロックデバイスドライバ装置はさらに、待機待ち行列からデータの書き込み/読み取り要求をフェッチして、フェッチされた要求を、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列に転送し、保留待ち行列内のデータの書き込み/読み取り要求を、処理のためにブロックデバイスサービス装置に送信することができる。受信したデータの書き込み/読み取り要求についての、ブロックデバイスサービス装置からの処理結果の受信に応答して、ブロックデバイスドライバ装置は、送信されたデータの書き込み/読み取り要求を保留待ち行列から削除することができる。
一実施形態では、ブロックデバイスドライバ装置は、ブロックデバイスサービス装置がサービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、処理のためにブロックデバイスサービス装置に送信することを停止することができ、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を待機待ち行列に転送し戻すことができる。
さらに、ブロックデバイスサービス装置は、ブロックデバイスドライバ装置から送信されたデータの書き込み/読み取り要求に基づいて、ブロックデバイスの記憶リソースプールのために要求されたデータに対応する読み込みおよび書き込みの動作を行うように構成されてもよい。
本開示の第2の態様によると、本開示の例示的な実施形態は、ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードする方法をさらに提供する。一実施形態において、本方法には、ブロックデバイスに関連付けられたサービスに対応するデータの書き込み/読み取り要求の受信に応答して、その都度、ブロックデバイスに関連付けられたサービスのために事前に維持されている待機待ち行列内に、受信したデータの書き込み/読み取り要求を置くことが含まれる。本方法はさらに、待機待ち行列からデータの書き込み/読み取り要求をフェッチして、フェッチされた要求を、ブロックデバイスに関連付けられたサービスのために事前に維持されている保留待ち行列に転送することができる。
一実施形態において、本方法は、保留待ち行列内のデータの書き込み/読み取り要求を、処理のために、ブロックデバイスに関連付けられたサービスに送信し、受信したデータの書き込み/読み取り要求についての、ブロックデバイスに関連付けられたサービスからの処理結果の受信に応答して、送信されたデータの書き込み/読み取り要求を保留待ち行列から削除する。いくつかの実施形態では、本方法は、ブロックデバイスに関連付けられたサービスがサービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、処理のためにブロックデバイスに関連付けられたサービスに送信することを停止することができ、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を待機待ち行列に転送し戻すことができる。
本開示の第3の態様によると、本開示の例示的な実施形態は、ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードするための装置をさらに提供する。一実施形態において、本装置には、ブロックデバイスに関連付けられたサービスに対応するデータの書き込み/読み取り要求の受信に応答して、その都度、受信したデータの書き込み/読み取り要求を、ブロックデバイスに関連付けられたサービスのために事前に維持されている待機待ち行列内に置くように構成される、待機待ち行列維持ユニットが含まれる。
加えて、本装置には、待機待ち行列からデータの書き込み/読み取り要求をフェッチして、フェッチされた要求を、ブロックデバイスと関連付けられたサービスのために事前に維持されている保留待ち行列に転送するように構成される、保留待ち行列維持ユニットがさらに含まれてもよい。
いくつかの実施形態において、本装置には、保留待ち行列内のデータの書き込み/読み取り要求を、処理のために、ブロックデバイスに関連付けられたサービスに送信するように構成される、書き込み/読み取り要求処理ユニットがさらに含まれてもよい。書き込み/読み取り要求処理ユニットは、受信したデータの書き込み/読み取り要求についての、ブロックデバイスに関連付けられたサービスからの処理結果の受信に応答して、送信されたデータの書き込み/読み取り要求を保留待ち行列から削除するようにさらに構成されてもよい。一実施形態では、書き込み/読み取り要求処理ユニットは、ブロックデバイスに関連付けられたサービスが、サービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、処理のためにブロックデバイスに関連付けられたサービスに送信することを停止することができ、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、待機待ち行列に転送し戻すことができる。
本開示の第4の態様によると、本開示の例示的な実施形態は、ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムをアップグレードするためのシステムをさらに提供する。一実施形態において、本システムには、ブロックデバイスに関連付けられた記憶サービスに基づいてエラスティックコンピューティングクラウドシステムのデータを記憶するように構成される、記憶リソースプールが含まれてもよい。
加えて、本システムには、少なくとも1つの物理サーバがさらに含まれてもよい。少なくとも1つの物理サーバは、ブロックデバイスに関連付けられたサービスに対応するデータの書き込み/読み取り要求の受信に応答して、その都度、受信したデータの書き込み/読み取り要求を、ブロックデバイスに関連付けられたサービスのために、事前に維持されている待機待ち行列内に置くように構成されてもよい。
さらに、少なくとも1つの物理サーバは、待機待ち行列からデータの書き込み/読み取り要求をフェッチして、フェッチされた要求を、ブロックデバイスに関連付けられたサービスのために、事前に維持されている保留待ち行列に転送し、保留待ち行列内のデータの書き込み/読み取り要求に基づいて、記憶リソースプールのために要求されたデータに対応する読み込みおよび書き込みの動作を行うことができる。
いくつかの実施形態において、少なくとも1つの物理サーバは、ブロックデバイスに関連付けられたサービスが、サービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、処理のためにブロックデバイスに関連付けられたサービスに送信することを停止し、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、待機待ち行列に転送し戻すことができる。
ブロックデバイスに関連付けられた記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムの物理サーバにおいて、本開示の例示的な実施形態によって提案される技術的な構想は、ブロックデバイスの各仮想化されたサービスに対して2つの待ち行列を個々に維持する。1つはデータの書き込み/読み取り要求のための待機待ち行列であり、ブロックデバイスに関連付けられたサービスに送信されて処理を待つデータの書き込み/読み取り要求を維持するために使用される。もう1つは、ブロックデバイスに関連付けられたサービスによって目下処理中であるデータの書き込み/読み取り要求を維持するために、物理サーバによって使用される、保留待ち行列である。
この技術的な構想は、ブロックデバイスに関連付けられたサービスがアップグレードされる必要のある時に、ブロックデバイスに関連付けられたサービスのために、保留待ち行列内に維持されているデータの書き込み/読み取り要求の処理を停止し、保留待ち行列内で目下処理中であるデータの書き込み/読み取り要求を、再ディスパッチのために待機待ち行列内に戻し、それにより、記憶サービスを中断することなく、エラスティックコンピューティングクラウドシステムにおける記憶サービスの、サービスアップグレードの処理完了が実現される。これは、サービスアップグレードの効率を向上させ、ユーザによって目下使用されているトランザクションの中断を回避し、アップグレード処理中に高可用性のサービスを提供し、それにより、ユーザの使用経験が向上される。
本開示の例示的な実施形態によって提案される技術的な構想によって使用されるブロックデバイスの記憶サービスに基づいてデータの記憶を実施する、エラスティックコンピューティングクラウドシステムのトポロジーを例示する構造図である。 本開示の例示的な実施形態による、改善された物理サーバを例示する構造図である。 本開示の例示的な実施形態による、ローカルまたは遠隔記憶リソースプールにおけるデータの読み取りおよび書き込みのための、改善された物理サーバの内部処理を例示する流れ図である。 本開示の例示的な実施形態による、改善された物理サーバにおけるブロックデバイスドライバ装置の動作の詳細を例示する流れ図である。 本開示の例示的な実施形態によるブロックデバイスサービス装置のサービスアップグレードの前または後に、改善された物理サーバのブロックデバイスドライバ装置が、それによって維持されている待機待ち行列および保留待ち行列のためにディスパッチを行うための処理を例示する概略図である。 本開示の例示的な実施形態による、改善されたサーバの新しいブロックデバイスドライバ装置を例示する構造図である。 本開示の例示的な実施形態による、サーバのサービスアップグレードを行う時に、物理サーバのブロックデバイスドライバ装置を制御する動作を例示する概略図である。 図6で説明する例示的な装置をより詳細に例示する図である。
既存の技術における、オンラインアップグレードを実現するためのホットデプロイメントの欠如に起因して、ブロックデバイスの記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムがアップグレードされる際、エラスティックコンピューティングクラウドシステムにおける各仮想サーバは、サービスアップグレードのためにシャットダウンし、アップグレードが完了した上で再起動する必要がある。記憶サービスの提供者または記憶サービスのユーザにとって、このことは、大いに、維持コストを増大させ、関連するサービスの可用性を低下させる。この問題を考慮して、本開示は、記憶サービスのオンラインアップグレードを実現するために、ブロックデバイスの記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムにおけるブロックデバイスの記憶サービスのために、ホットデプロイメントの実施を提案する。具体的には、記憶サービスのアップグレードは、記憶サービスを中断することなく行われる。したがって、サービス提供者の記憶サービスの可用性、および記憶サービスの透明性が向上し、記憶サービスのユーザが、バックエンドサービスのアップグレード処理を懸念する必要がなくなる。
ブロックデバイスの記憶サービスのホットデプロイメントは、ブロックデバイスのサービスのオンラインアップグレードの技法である。ブロックデバイスの記憶サービスは、ブロックデバイスドライバ技術に基づくため、エラスティックコンピューティングクラウドシステムの物理サーバには、カーネルモードのブロックデバイスドライバのサービスプログラムが含まれる。ブロックデバイスドライバのカーネルモードサービスプログラムは、データの書き込み/読み取り要求を、物理サーバに含まれるブロックデバイスのユーザモードサービスプログラムに転送する必要があり、ブロックデバイスのユーザモードサービスプログラムは、書き込み/読み取り要求を、処理のために、遠隔ネットワークの記憶リソースプール、またはローカル物理ディスクの記憶リソースプール等に転送する。ブロックデバイスドライバのカーネルモードサービスプログラムは、ブロックデバイスのユーザモードサービスプログラムに比べて、より安定している。ブロックデバイスのユーザモードサービスプログラムは、より良い品質の記憶サービスを提供するために、バージョンのアップグレードを頻繁に必要とする。本開示の例示的な実施形態において提供される技術的な構想に基づいて、オンラインアップグレードを支持することのできるブロックデバイスドライバのサービスプログラムは、記憶サービスの可用性を強化するため、およびユーザの使用経験を向上させるために、エラスティックコンピューティングクラウドシステムの物理サーバ内に提供される。
図1は、本開示の例示的な実施形態によって提案される技術的な構想で使用される、ブロックデバイスの記憶サービスに基づいてデータの記憶を実施するエラスティックコンピューティングクラウドシステムのトポロジーを例示する構造図を示している。エラスティックコンピューティングクラウドシステムには、エラスティックコンピューティングクラウド技術に基づいてローカル物理サーバから仮想化された、複数の仮想サーバ(図1の仮想サーバ1、仮想サーバ2、仮想サーバ3、……、仮想サーバn)が含まれる。それぞれの仮想サーバは、ブロックデバイスの記憶サービス技術に基づき、遠隔記憶リソースプールまたはローカル記憶リソースプールを使用して、ローカルに提供されるデータの記憶サービスを実施する。具体的には、それぞれの仮想サーバは、遠隔記憶リソースプールまたはローカル記憶リソースプール内にローカルに格納される必要のあるデータを格納し、その後に関連データを読み取る要求が提示された時に、遠隔記憶リソースプールまたはローカル記憶リソースプールからそのデータを読み取る。このようにして、それぞれの物理サーバは、ローカル物理サーバ自体の記憶リソースを占領することなく、遠隔にまたはローカルに設定される記憶リソースプールを共有することができるため、エラスティックコンピューティングクラウドシステムのリソース使用率が改善される。
本開示において提供される技術的な構想を実施するために、上記で説明されるエラスティックコンピューティングクラウドシステムの物理サーバの機能は、記憶サービスのためのオンラインアップグレードを行うという目的を達成するために、改善される必要がある。
図2は、本開示の例示的な実施形態による、改善された物理サーバを例示する構造図を示し、具体的には、カーネルモードのブロックデバイスドライバ装置20,ユーザモードのクライアント装置21、および少なくとも1つのブロックデバイスサービス装置22、ならびにローカルまたは遠隔記憶リソースプール23が含まれている。ブロックデバイスドライバ装置20は、複数のブロックデバイスサービス装置22のジョブを制御することができる。それぞれの構成要素は、下記の動作原理に基づいて、記憶サービスのオンラインアップグレードを実現する。
カーネルモードのブロックデバイスドライバ装置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のために事前に維持されている待機待ち行列に戻して追加する。
好適には、ブロックデバイスドライバ装置20は、ブロックデバイスドライバ装置20自身とブロックデバイスサービス装置22との間のTCP通信接続が正常かどうかを検査することによって、ブロックデバイスサービス装置22がアップグレードの動作を行う、またはアップグレードを完了したかどうかを判定することができる。ブロックデバイスドライバ装置20とブロックデバイスサービス装置22との間のTCP通信接続が切断されている場合、ブロックデバイスドライバ装置20は、ブロックデバイスサービス装置22がサービスアップグレードを行うと判定することができる。ブロックデバイスドライバ装置20とブロックデバイスサービス装置22との間のTCP通信接続が、接続のために回復されている場合、ブロックデバイスドライバ装置20は、ブロックデバイスサービス装置22のサービスアップグレードが完了したと判定することができる。
ユーザモードのブロックデバイスサービス装置22は、ブロックデバイスドライバ装置20から送信されたデータの書き込み/読み取り要求を、例えば、TCPプロトコルを介して受信する。具体的には、ユーザモードのブロックデバイスサービス装置22は、ブロックデバイスドライバ装置20によって処理されたデータの書き込み/読み取り要求を、ブロックデバイスサービス装置22のために事前に維持されている保留待ち行列内に受信する。書き込み/読み取り要求を受信すると、ユーザモードのブロックデバイスサービス装置22は、書き込み/読み取り要求が正当なものであるかどうか、それが読み取り要求または書き込み要求のどちらであるか、書き込み/読み取り要求の開始位置および長さの情報、等を分析(検証を含む)することによって、要求についての分析動作を行い、分析結果に基づいて、ローカルまたは遠隔記憶リソースプール上の読み取りまたは書き込み動作を行う。要求が読み取り要求である場合、ユーザモードのブロックデバイスサービス装置22は、要求されたデータを、ローカルまたは遠隔記憶リソースプール23から読み取り、読み取ったデータおよび処理結果をカーネルモードのブロックデバイスドライバ装置20に、例えばTCPプロトコルを介して、戻す。要求が書き込み要求である場合、ユーザモードのブロックデバイスサービス装置22は、ローカルまたは遠隔記憶リソースプール23に書き込まれるように要求されたデータを格納し、書き込み要求の処理結果をカーネルモードのブロックデバイスドライバ装置20に、例えばTCPプロトコルを介して、戻す。
ユーザモードのクライアント装置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リンクを確立する。
クライアント装置21は、本開示における物理サーバの、オプションの構成要素とすることができる。ユーザモードのブロックデバイスサービス装置22の動作モードのユーザ制御を実現するために、クライアント装置21を使用する他には、タイミング機能、イベントトリガー機能等の他のトリガーメカニズムを使用して、ユーザモードのブロックデバイスサービス装置22の動作モードを自動的に制御することができる。
一般に、ローカルまたは遠隔記憶リソースプール23は、分散ファイルシステムまたは類似のものの、記憶サーバである。このリソースプール23は、ローカルに、または遠隔に展開することができ、大抵の場合、遠隔に展開された記憶リソースプールである。記憶リソースプール23は、エラスティックコンピューティングクラウドシステムの、それぞれの仮想サーバのサービスのデータを格納する。具体的には、物理サーバの特定のブロックデバイスサービス装置22からデータの読み取り要求を受信した場合、記憶リソースプール23は、要求に関連するデータをそこから読み取り、読み取ったデータをブロックデバイスサービス装置22にフィードバックする。物理サーバの特定のブロックデバイスサービス装置22からデータの書き込み要求を受信した場合、記憶リソースプール23は、書き込まれるように要求されたデータをそこに格納する。
図3は、本開示の例示的な実施形態による、ローカルまたは遠隔記憶リソースプールにおけるデータの読み取りおよび書き込みのための、改善された物理サーバの内部処理を例示する流れ図を示している。一実施形態において、データの読み取りの処理には以下が含まれてもよい。
ローカル物理サーバのファイルシステム層が、特定のブロックデバイスサービス装置のデータの読み取り要求を、汎用ブロック層および書き込み/読み取りディスパッチ層を介してブロックデバイスドライバ装置に送信した後、ブロックデバイスドライバ装置は、この要求を、後続の処理を待つように、ブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に置き、その後に、データの読み取り要求を、待ち行列から、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列内にフェッチして、読み取り要求を処理、すなわち、読み取り要求をブロックデバイスサービス装置に送信する。ブロックデバイスサービス装置は、読み取り要求に従って、要求に関連するデータを記憶プールから読み取り、読み取り結果を、ブロックデバイスドライバ装置に、TCP接続を介して戻す。ブロックデバイスドライバ装置は、読み取り結果を、ファイルシステム層に、汎用ブロック層および書き込み/読み取りディスパッチ層を介して伝送し、ファイルシステム層は、読み取り結果を、ディスパッチのためにシステムに戻す。
一実施形態において、データの書き込み処理には、以下が含まれてもよい。
ローカル物理サーバは、データの書き込み要求と、システムによって呼び出される、ファイルシステム層、汎用ブロック層、および書き込み/読み取りディスパッチ層を介して、ブロックデバイスドライバ装置に書き込まれるように要求されているデータとを、格納する。ブロックデバイスドライバ装置は、書き込み要求を、後続の処理を待つように、ブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に置き、その後に、待ち行列からデータの書き込み要求をフェッチして、この要求を、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列に置き、書き込み要求を処理、すなわちデータの書き込み要求および書き込まれるデータを、ブロックデバイスサービス装置に送信する。ブロックデバイスサービス装置は、書き込まれるデータの、記憶リソースプール内への格納を達成するために、データの書き込み要求を分析する。
図4は、本開示の例示的な実施形態による、改善された物理サーバにおけるブロックデバイスドライバ装置の動作の詳細を例示する流れ図を示している。ブロックデバイスドライバ装置は、それぞれのブロックデバイスサービス装置に対して、2つの待ち行列を個々に維持し、待ち行列の1つは待機待ち行列であり、送信され、かつ、対応するブロックデバイスサービス装置による処理を待つ、データの書き込み/読み取り要求を、この待機待ち行列内に置くため、およびこの要求を、処理を待つ待ち行列の状態に入らせるために、使用され、もう1つの待ち行列は保留待ち行列であり、対応するブロックデバイスサービス装置によって目下処理中である、データの書き込み/読み取り要求を、この保留待ち行列内に置くために使用される。これらの維持されている2つの待ち行列に基づく、ブロックデバイスドライバ装置の具体的な動作原理は以下の通りである。
40において、物理サーバの最下層から、特定のブロックデバイスサービス装置に対応するデータの書き込み/読み取り要求が受信されると、その都度、ブロックデバイスドライバ装置は、受信したデータの書き込み/読み取り要求を待たせるために、そのブロックデバイスサービス装置のために事前に維持されている待機待ち行列内に置く。
42において、ブロックデバイスサービス装置に対応するデータの書き込み/読み取り要求を処理する時に、ブロックデバイスドライバ装置はまず、待機待ち行列からデータの書き込み/読み取り要求をフェッチして、この要求を、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列に転送し、保留待ち行列内のデータの書き込み/読み取り要求を、処理のために、ユーザモードのブロックデバイスサービス装置に送信し、ブロックデバイスサービス装置からの、受信したデータの書き込み/読み取り要求の適切な処理結果の受信に応答して、送信されたデータの書き込み/読み取り要求を保留待ち行列から削除する。
44において、ブロックデバイスサービス装置がサービスアップグレードを行うという判定に応答して、ブロックデバイスドライバ装置は、保留待ち行列内のすべてのデータの書き込み/読み取り要求を、処理のためにブロックデバイスサービス装置に送信することを停止する。
46において、サービスアップグレードが行われる、または完了したと判定されると、ブロックデバイスドライバ装置は、保留待ち行列内のデータの書き込み/読み取り要求を、後続の再ディスパッチおよび処理を待つように、待機待ち行列に転送し戻す。具体的には、ブロックデバイスドライバ装置は、ブロックデバイスサービス装置がサービスアップグレードを行う、またはサービスアップグレードを完了したかどうかを、ブロックデバイスドライバ装置自身とブロックデバイスサービス装置との間の通信接続の状態を検査することによって判定することができる。より具体的には、ブロックデバイスドライバ装置自身とブロックデバイスサービス装置との間の通信接続が切断されたことを検知すると、ブロックデバイスドライバ装置は、ブロックデバイスサービス装置がサービスアップグレードを行うと判定することができる。さらに、ブロックデバイスドライバ装置自身とブロックデバイスサービス装置との間の通信接続が回復されたと検知すると、ブロックデバイスドライバ装置は、ブロックデバイスサービス装置がサービスアップグレードを完了したと判定することができる。
図5は、本開示の例示的な実施形態によるブロックデバイスサービス装置のサービスアップグレードの前または後に、改善された物理サーバのブロックデバイスドライバ装置が、それによって維持されている待機待ち行列および保留待ち行列のためにディスパッチを行うための処理を例示する概略図を示している。ブロックデバイスサービス装置のホットデプロイメント(すなわち、オンラインアップグレード)を支持するために、カーネルモードのブロックデバイスドライバ装置は、受信したデータの書き込み/読み取り要求を維持する必要がある。ブロックデバイスドライバ装置は、それぞれのブロックデバイスサービス装置に対して、2つの、データの読み取りおよび書き込み待ち行列を個々に使用して、書き込み/読み取り要求の状態を維持する。1つは、待機待ち行列であり、それぞれのブロックデバイスサービス装置のための物理サーバ内の書き込み/読み取りディスパッチ層から送信される、書き込み/読み取り要求を維持するために使用され、これらの要求は、ブロックデバイスドライバ装置による後続の処理を待つように、待機待ち行列内に並ぶ。もう1つは、保留待ち行列であり、それぞれのブロックデバイスサービス装置のために、ブロックデバイスドライバ装置によって目下処理中である、書き込み/読み取り要求を維持するために使用される。これらの、保留待ち行列内の書き込み/読み取り要求は、完全に処理されておらず、ブロックデバイスドライバ装置が、対応するブロックデバイスサービス装置の処理応答を待っている状況である場合がある。特定のブロックデバイスサービス装置がサービスアップグレードを行っていない場合、ブロックデバイスドライバ装置はまず、書き込み/読み取り要求を処理する際に、ブロックデバイスサービス装置のために事前に維持されている待機待ち行列の先頭から書き込み/読み取り要求をフェッチして、フェッチされた書き込み/読み取り要求を待機待ち行列から削除し、書き込み/読み取り要求を、ブロックデバイスサービス装置のために事前に維持されている保留待ち行列の先頭に置き、保留待ち行列内の各書き込み/読み取り要求を、処理のために、ブロックデバイスサービス装置に送信し、ブロックデバイスサービス装置から、受信した書き込み/読み取り要求の適切な処理結果を受信した後で、送信された書き込み/読み取り要求を、保留待ち行列から削除する。ブロックデバイスサービス装置がサービスアップグレードを必要とする時、ブロックデバイスドライバ装置は、保留待ち行列内の書き込み/読み取り要求を、処理のために、ブロックデバイスサービス装置に送信することを停止する、すなわち、新しい書き込み/読み取り要求をブロックデバイスサービス装置に送信することを停止する。ブロックデバイスサービス装置がアップグレードを行う、またはアップグレードを完了した後に、ブロックデバイスドライバ装置は、対応する保留待ち行列内のすべての書き込み/読み取り要求(図5に、1、2、3、4、5、6、……と示されている要求等)を、ブロックデバイスドライバ装置による後続の再ディスパッチのために、対応する待機待ち行列に戻して置く。
以上のように、ブロックデバイスドライバ装置をエラスティックコンピューティングクラウドシステムの物理サーバに追加することによって、およびそれぞれのブロックデバイスサービス装置のために事前に維持されている2つの待ち行列を介して、ブロックデバイスドライバ装置によるディスパッチをすることによって、バックエンド記憶サービスのサービスアップグレードは、データ記憶のユーザに対する記憶サービスの提供を中断することなく完了することができるため、エラスティックコンピューティングクラウドシステムにおけるデータ記憶の可用性が向上する。さらに、前述の構想は、データ記憶のユーザが、記憶サービスのサービスアップグレードに起因するデータ記憶のトランザクションへのあらゆる影響をほとんど感じないように、ユーザにとって透過的であるため、ユーザの使用経験が改善される。
これに対応して、図6は、本開示の例示的な実施形態による、改善された物理サーバの新しいブロックデバイスドライバ装置を例示する構造図を示している。一実施形態において、本装置には、各ブロックデバイスサービス装置のために、待機待ち行列を個別に維持するために使用される、待機待ち行列維持ユニット60が含まれてもよく、この待機待ち行列内には、それぞれのブロックデバイスサービス装置のためのデータの書き込み/読み取り要求が、処理を待つ待ち行列の状態に入るように置かれる。加えて、本装置には、各ブロックデバイスサービス装置のために、別の保留待ち行列を個別に維持するために使用される、保留待ち行列維持ユニット61がさらに含まれてもよく、この別の保留待ち行列内には、それぞれのブロックデバイスサービス装置のための、目下処理中であるデータの書き込み/読み取り要求が置かれる。
具体的には、データの書き込み/読み取り要求は、特定のブロックデバイスサービス装置のために、待機待ち行列維持ユニット60によって事前に維持されている待機待ち行列からフェッチされて、そのブロックデバイスサービス装置のために維持されている保留待ち行列に移動される。具体的には、保留待ち行列維持ユニット61は、対応する待機待ち行列の先頭から、データの書き込み/読み取り要求をフェッチして、フェッチされたデータの書き込み/読み取り要求を待機待ち行列から削除し、フェッチされたデータの書き込み/読み取り要求を、事前に維持されている対応する保留待ち行列の先頭に転送することができる。
いくつかの実施形態では、本装置には、書き込み/読み取り要求処理ユニット62がさらに含まれてもよい。書き込み/読み取り要求処理ユニット62は、保留待ち行列維持ユニット61によって維持されている、対応する保留待ち行列内のデータの書き込み/読み取り要求を、処理のために、ブロックデバイスサービス装置に送信するために使用することができる。さらに、書き込み/読み取り要求処理ユニット62は、ブロックデバイスサービス装置からの、受信したデータの書き込み/読み取り要求の適切な処理結果の受信に応答して、送信されたデータの書き込み/読み取り要求を、保留待ち行列から削除することができ、ブロックデバイスサービス装置がサービスアップグレードを行うという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、処理のためにブロックデバイスサービス装置に送信することを停止することができる。
いくつかの実施形態では、書き込み/読み取り要求処理ユニット62はさらに、サービスアップグレードが行われる、または完了したという判定に応答して、保留待ち行列内のデータの書き込み/読み取り要求を、書き込み/読み取り要求処理ユニット62によってその後に再ディスパッチされるのを待たせるために、対応する待機待ち行列に転送し戻すことができる。具体的には、書き込み/読み取り要求処理ユニット62は、ブロックデバイスドライバ装置とブロックデバイスサービス装置との間の通信接続の状態を検査することによって、通信接続の切断を検知すると、ブロックデバイスサービス装置がサービスアップグレードを行うと判定することができ、通信接続が回復されたと検知すると、ブロックデバイスサービス装置がサービスアップグレードを完了したと判定することができる。
図7は、本開示の例示的な実施形態による、サーバのサービスアップグレードを行う時に、物理サーバのブロックデバイスドライバ装置を制御する動作を例示する概略図を示している。具体的には、動作の過程には、以下が含まれる。
70において、記憶サービスのアップグレードに先立って、アップグレード保守管理者は、ioctlコマンドを、ユーザモードのクライアント装置を介して、カーネルモードのブロックデバイスドライバ装置に送信して、ブロックデバイスドライバ装置がすべての書き込み/読み取り要求を保持するように指示する。
72において、アップグレード保守管理者はその後に、通常のアップグレードプロセスを使用して記憶サービスのためのサービスアップグレード(サービスアップグレードには、サービスを停止すること、サービスプログラムをアップグレードすること、新しいサービスを公開すること、等が含まれる)を行う。このようにして、記憶サービスに対するオンラインのサービスアップグレードを行うためのホットデプロイメントが完了する。ホットデプロイメントの処理中、ブロックデバイスドライバ装置はすべての書き込み/読み取り要求を保持する。
74において、デプロイメントがなされた上で、ブロックデバイスドライバ装置はすべての書き込み/読み取り要求を解放し、データの記憶サービスは処理を続ける。
本開示の例示的な実施形態は、方法、装置(デバイス)、またはコンピュータプログラム製品として提供され得ることが、当業者には理解されるべきである。したがって、本開示は、ハードウェアのみ、ソフトウェアのみ、またはハードウェアとソフトウェアとの組み合わせの単位で実施することができる。さらに、本開示は、コンピュータで実行可能な命令を含む1つまたは複数のコンピュータ記憶媒体(ディスク記憶、CD−ROM、光ディスク、その他を含むがこれらに限定されない)を有するコンピュータプログラム製品の形状で実施することができる。
本開示は、例示的な方法、装置(デバイス)およびコンピュータプログラム製品の、流れ図および/またはブロック図を参照して説明される。流れ図および/またはブロック図の、それぞれの流れおよび/またはブロック、ならびに流れおよび/またはブロックの組み合わせは、コンピュータプログラム命令によって実行されてもよいことが理解されるべきである。これらのコンピュータプログラム命令は、コンピュータまたはその他のプログラマブルデータプロセッサによる命令の実行を通じて、流れ図の1つまたは複数の流れ内、および/またはブロック図の1つまたは複数のブロック内で指示された機能を実施する装置を作るために、一般的なコンピュータ、特化型コンピュータ、マシンを作り出すための組み込みプロセッサもしくはその他のプログラマブルデータプロセッサに提供されてもよい。
これらのコンピュータプログラム命令は、代替として、コンピュータ読み取り可能な記憶域に格納された命令が、命令装置を含む製品を作り出すように、コンピュータまたはその他のプログラマブルデータプロセッサに対して特定の方式で動作するように命令することのできる、コンピュータ読み取り可能な記憶域に格納されてもよい。命令装置は、流れ図の1つもしくは複数の流れおよび/またはブロック図の1つもしくは複数のブロックにおいて指示される機能を実施する。
これらのコンピュータプログラム命令は、代替として、コンピュータまたはその他のプログラマブルデータプロセッサが、コンピュータによって実施される処理を作り出すための一連の動作行動をすることができるように、コンピュータまたはその他のプログラマブルデータプロセッサ内にロードされてもよい。その結果、コンピュータまたはその他のプログラマブルデータプロセッサで実行される命令は、流れ図の1つもしくは複数の流れおよび/またはブロック図の1つもしくは複数のブロックにおいて指示される機能を実施するための行動を提供することができる。
例えば、図8は、上記で説明される装置のような、例示的な装置800をより詳細に示している。一実施形態において、装置800には、1つまたは複数のプロセッサ801、ネットワークインターフェース802、メモリ803、および入出力インターフェース804が含まれてもよいが、これらに限定されない。
メモリ803には、ランダムアクセスメモリ(RAM)等のような、揮発性メモリの形状の、コンピュータ読み取り可能な媒体、および/または、リードオンリーメモリ(ROM)もしくはフラッシュRAM等のような、不揮発性メモリが含まれてもよい。メモリ803は、コンピュータ読み取り可能な媒体の一例である。
コンピュータ読み取り可能な媒体には、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、またはその他のデータ等のような情報の記憶のための、あらゆる方法もしくは技術において実装される、揮発性および不揮発性、取り外し可能なおよび取り外し不可能な媒体が含まれる。コンピュータ記憶媒体の例には、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、その他のタイプのランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリもしくはその他のメモリ技術、コンパクトディスクリードオンリーメモリ(CD−ROM)、デジタル多目的ディスク(DVD)もしくはその他の光学式記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくはその他の磁気記憶装置、または、コンピューティング装置によってアクセスするための情報を格納するために使用され得る、あらゆるその他の非伝送媒体が含まれるが、これらに限定されない。本明細書において定義されるように、コンピュータ読み取り可能な媒体には、変調されたデータ信号および搬送波等のような、一時的な媒体は含まれない。
メモリ803には、プログラムユニット805およびプログラムデータ806が含まれてもよい。一実施形態では、プログラムユニット805には、待機待ち行列維持ユニット807、保留待ち行列維持ユニット808、および書き込み/読み取り要求処理ユニット809が含まれてもよい。これらのプログラムユニットの詳細は、上記で説明されている前述の実施形態内に見ることができる。
本開示の好ましい実施形態が説明されているが、当業者は、基本的な創造的概念を理解すればすぐに、これらの実施形態に対する追加の修正および変更を行うことが可能である。したがって、特許請求の範囲は、本開示の特許請求の範囲および好ましい実施形態の範囲に含まれる、すべての変更形態および変形形態を含むことが意図される。
当業者は、開示される方法、システムおよび装置を多くの異なるやり方で、本開示の趣旨および範囲から逸脱することなく、修正または変更することができる。したがって、本開示は、本開示の特許請求の範囲およびそれらの均等物の範囲に含まれる、すべての変更形態および変形形態を含むことが意図される。

Claims (20)

  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に記載のシステム。
JP2013548460A 2011-01-05 2012-01-03 エラスティックコンピューティングクラウドシステムのアップグレード Active JP5931919B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110001297.XA CN102591668B (zh) 2011-01-05 2011-01-05 对弹性计算云系统升级的装置、方法及系统
CN201110001297.X 2011-01-05
PCT/US2012/020055 WO2012094303A1 (en) 2011-01-05 2012-01-03 Upgrading an elastic computing cloud system

Publications (2)

Publication Number Publication Date
JP2014501995A JP2014501995A (ja) 2014-01-23
JP5931919B2 true JP5931919B2 (ja) 2016-06-08

Family

ID=46457681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013548460A Active JP5931919B2 (ja) 2011-01-05 2012-01-03 エラスティックコンピューティングクラウドシステムのアップグレード

Country Status (6)

Country Link
EP (1) EP2661691A4 (ja)
JP (1) JP5931919B2 (ja)
CN (1) CN102591668B (ja)
HK (1) HK1169733A1 (ja)
TW (1) TWI518502B (ja)
WO (1) WO2012094303A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7122718B2 (ja) 2020-06-25 2022-08-22 株式会社エジソンラボ 財布

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201561B (zh) * 2015-04-30 2019-08-23 阿里巴巴集团控股有限公司 分布式缓存集群的升级方法与设备
CN105183399A (zh) * 2015-09-30 2015-12-23 北京奇艺世纪科技有限公司 一种基于弹性块存储的数据写、读方法及装置
US10152351B2 (en) * 2016-02-01 2018-12-11 Microsoft Technology Licensing, Llc Proxy object system
CN108021408B (zh) * 2016-11-01 2021-01-29 阿里巴巴集团控股有限公司 升级方法及装置
CN108021378A (zh) * 2016-11-03 2018-05-11 阿里巴巴集团控股有限公司 升级系统、基于虚拟机的升级方法及装置
CN108156208B (zh) * 2016-12-02 2022-02-25 阿里巴巴集团控股有限公司 一种应用程序数据的发布方法、装置和系统
CN109002254A (zh) * 2017-06-07 2018-12-14 华为技术有限公司 存储处理方法、装置及相关设备
CN111143250B (zh) * 2019-12-20 2022-03-22 苏州浪潮智能科技有限公司 一种基于axi-st接口访问fpga存储单元的方法、设备及介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664195A (en) * 1993-04-07 1997-09-02 Sequoia Systems, Inc. Method and apparatus for dynamic installation of a driver on a computer system
JP2001100935A (ja) 1999-09-28 2001-04-13 Internatl Business Mach Corp <Ibm> ディスク装置およびその制御方法
US6895429B2 (en) * 2001-12-28 2005-05-17 Network Appliance, Inc. Technique for enabling multiple virtual filers on a single filer to participate in multiple address spaces with overlapping network addresses
US6925526B2 (en) * 2002-10-31 2005-08-02 International Business Machines Corporation Method and apparatus for servicing mixed block size data access operations in a disk drive data storage device
JP2004199247A (ja) * 2002-12-17 2004-07-15 Hitachi Communication Technologies Ltd プログラム更新方法
US7305537B1 (en) * 2005-03-01 2007-12-04 Sun Microsystems, Inc. Method and system for I/O scheduler activations
EP2350875A1 (en) * 2008-09-19 2011-08-03 Oracle International Corporation Storage-side storage request management
US9344401B2 (en) * 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
AU2010242812A1 (en) * 2009-05-01 2011-11-24 Citrix Systems, Inc. Systems and methods for providing a virtual appliance in an application delivery fabric

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7122718B2 (ja) 2020-06-25 2022-08-22 株式会社エジソンラボ 財布

Also Published As

Publication number Publication date
HK1169733A1 (en) 2013-02-01
WO2012094303A1 (en) 2012-07-12
CN102591668A (zh) 2012-07-18
JP2014501995A (ja) 2014-01-23
TWI518502B (zh) 2016-01-21
TW201229750A (en) 2012-07-16
CN102591668B (zh) 2015-04-08
EP2661691A1 (en) 2013-11-13
EP2661691A4 (en) 2016-03-23

Similar Documents

Publication Publication Date Title
JP5931919B2 (ja) エラスティックコンピューティングクラウドシステムのアップグレード
US8447894B2 (en) Upgrading an elastic computing cloud system
KR102055325B1 (ko) 원격으로 액세스되는 데이터의 효율적인 라이브-이송
US10298670B2 (en) Real time cloud workload streaming
US10275851B1 (en) Checkpointing for GPU-as-a-service in cloud computing environment
US9588796B2 (en) Live migration with pre-opened shared disks
US9619268B2 (en) Rapid suspend/resume for virtual machines via resource sharing
US9501245B2 (en) Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host
US9430268B2 (en) Systems and methods for supporting migration of virtual machines accessing remote storage devices over network via NVMe controllers
US8490088B2 (en) On demand virtual machine image streaming
US8924965B2 (en) Memory state transfer of virtual machine-controlled peripherals during migrations of the virtual machine
US8356120B2 (en) Mechanism for memory state restoration of virtual machine (VM)-controlled peripherals at a destination host machine during migration of the VM
US8863123B2 (en) Apparatus and method for virtualizing input/output devices using shared memory in host-based mobile terminal virtualization environment
US8006254B2 (en) Bequeathing privilege to a dynamically loaded module
US9778990B2 (en) Methods and systems for concurrently taking snapshots of a plurality of virtual machines
US10860363B1 (en) Managing virtual machine hibernation state incompatibility with underlying host configurations
US10802753B2 (en) Distributed compute array in a storage system
EP3311272B1 (en) A method of live migration
US9571584B2 (en) Method for resuming process and information processing system
US20140237479A1 (en) Virtual Machine-to-Image Affinity on a Physical Server
US10795708B1 (en) Transparent disk caching for virtual machines and applications
US8156510B2 (en) Process retext for dynamically loaded modules
US20170068635A1 (en) System and method to redirect uasp mass storage devices to an unsupported operating system in a vdi environment
US10942821B1 (en) Method and apparatus for dynamic binding and unbinding thin logical storage volumes to snapshots of a file system
US11340818B2 (en) Migrating virtual tapes between different virtual tape storages without host involvement

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160427

R150 Certificate of patent or registration of utility model

Ref document number: 5931919

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250