IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

<>
  • 特表-ファイルベースの仮想ディスク管理 図1
  • 特表-ファイルベースの仮想ディスク管理 図2
  • 特表-ファイルベースの仮想ディスク管理 図3
  • 特表-ファイルベースの仮想ディスク管理 図4
  • 特表-ファイルベースの仮想ディスク管理 図5
  • 特表-ファイルベースの仮想ディスク管理 図6
  • 特表-ファイルベースの仮想ディスク管理 図7
  • 特表-ファイルベースの仮想ディスク管理 図8
  • 特表-ファイルベースの仮想ディスク管理 図9
  • 特表-ファイルベースの仮想ディスク管理 図10
  • 特表-ファイルベースの仮想ディスク管理 図11
  • 特表-ファイルベースの仮想ディスク管理 図12
  • 特表-ファイルベースの仮想ディスク管理 図13
  • 特表-ファイルベースの仮想ディスク管理 図14
  • 特表-ファイルベースの仮想ディスク管理 図15
  • 特表-ファイルベースの仮想ディスク管理 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-31
(54)【発明の名称】ファイルベースの仮想ディスク管理
(51)【国際特許分類】
   G06F 9/50 20060101AFI20241024BHJP
【FI】
G06F9/50 120A
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024521192
(86)(22)【出願日】2022-11-01
(85)【翻訳文提出日】2024-04-08
(86)【国際出願番号】 CN2022128933
(87)【国際公開番号】W WO2023078235
(87)【国際公開日】2023-05-11
(31)【優先権主張番号】17/453,502
(32)【優先日】2021-11-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ウェルボーン、 ジョン、ヘンリー、ジュニア
(72)【発明者】
【氏名】カシャップ、プラサド
(72)【発明者】
【氏名】キューナー、ケヴィン
(72)【発明者】
【氏名】フアン、ケニー
(72)【発明者】
【氏名】ファベック、ブライアン、レイ
(57)【要約】
コンピュータ実装方法は仮想ディスクを管理する。複数のプロセッサユニットが、ホストオペレーティングシステムに対するストレージのアタッチメントを検出する。前記複数のプロセッサユニットが、前記ストレージをマウントポイントのセットにマウントする。前記複数のプロセッサユニットが、仮想ディスクのセットを作成し、前記複数のプロセッサユニットによって、操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクのセットを割り当てる。他の例示的な実施形態によれば、仮想ディスクを管理するためのコンピュータシステム及びコンピュータプログラム製品が提供される。
【特許請求の範囲】
【請求項1】
仮想ディスクを管理するためのコンピュータ実装方法であって、前記コンピュータ実装方法が:
複数のプロセッサユニットによって、ホストオペレーティングシステムに対するストレージのアタッチを検出する段階;
前記複数のプロセッサユニットによって、前記ストレージをマウントポイントのセットにマウントする段階;及び
前記複数のプロセッサユニットによって、仮想ディスクのセットを作成し、前記複数のプロセッサユニットによって、操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクのセットを割り当てる段階
を備える、コンピュータ実装方法。
【請求項2】
前記複数のプロセッサユニットによって、前記ストレージをマウントする前に、前記仮想ディスクのセットのためのパーティションのセットを作成する段階;及び
前記複数のプロセッサユニットによって、前記ストレージをマウントする前に、前記仮想ディスクのセットのための前記パーティションのセットにおいてファイルシステムのセットを作成する段階、ここで仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものであり、前記ファイルシステムのセットに位置している
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記複数のプロセッサユニットによって、前記ストレージを前記マウントポイントのセットにマウントする段階が:
前記複数のプロセッサユニットによって、前記マウントポイントのセットに、前記パーティションのセットにおける前記ファイルシステムのセットをマウントする段階を含む
請求項2に記載のコンピュータ実装方法。
【請求項4】
前記操作がアトミック操作であり、前記複数のプロセッサユニットによって前記仮想ディスクのセットを作成し、前記複数のプロセッサユニットによって、前記操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクのセットを割り当てる段階が:
前記複数のプロセッサユニットによって、前記ストレージにおいて仮想ディスクイメージファイルのセットを作成する段階、ここで前記仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものである;及び
前記複数のプロセッサユニットによって、前記ゲストのためのハイパーバイザのゲスト構成を更新する段階、ここで前記ハイパーバイザは、前記ゲスト構成を使用して前記仮想ディスクのセットを前記ゲストにアタッチする
を含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記複数のプロセッサユニットによって、前記ストレージのリサイズを検出する段階;及び
前記複数のプロセッサユニットによって、前記ゲストのためのゲスト構成を更新して、前記仮想ディスクのセットの前記リサイズを反映する段階
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記複数のプロセッサユニットによって、前記ストレージのリサイズを検出する段階、ここで前記リサイズにより前記ストレージにストレージデバイスが追加される;及び
前記複数のプロセッサユニットによって、前記ストレージデバイスのための仮想ディスクの新たなセットを作成し、前記複数のプロセッサユニットによって、新たなアトミック操作のための前記命令が中断されることなく実行される前記新たなアトミック操作において、前記ゲストに対して前記仮想ディスクの新たなセットを割り当てる段階
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記複数のプロセッサユニットによって、前記ストレージのリサイズを検出する段階、前記リサイズにより、前記ストレージからストレージデバイスが除去される;
前記複数のプロセッサユニットによって、前記ストレージデバイスに位置する複数の仮想ディスクイメージファイルを有する複数の仮想ディスクを除去する段階;及び
前記複数のプロセッサユニットによって、前記ストレージのためのパーティションのセットをマウント解除する段階
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記複数のプロセッサユニットによって、前記ストレージのデタッチを検出する段階;及び
前記複数のプロセッサユニットによって、前記ゲストのためのゲスト構成を更新して、前記ストレージの前記デタッチを検出したことに応答して前記仮想ディスクのセットを除去する段階;及び
前記複数のプロセッサユニットによって、前記マウントポイントのセットから前記ストレージをマウント解除する段階
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項9】
前記ゲストが、オペレーティングシステム、ゲストオペレーティングシステム、及び仮想マシンを含む群から選択される、請求項1に記載のコンピュータ実装方法。
【請求項10】
複数のプロセッサユニット、ここで前記複数のプロセッサユニットは:
ホストオペレーティングシステムに対するストレージのアタッチメントを検出する手順;
前記ストレージをマウントポイントのセットにマウントする手順;及び
仮想ディスクのセットを作成し、操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクの前記セットを割り当てる手順
を行うためのプログラム命令を実行する
を備える、コンピュータシステム。
【請求項11】
前記複数のプロセッサユニットが:
前記ストレージをマウントする前に、前記仮想ディスクのセットのためのパーティションのセットを作成する手順;及び
前記ストレージをマウントする前に、前記仮想ディスクのセットのための前記パーティションのセットにおいてファイルシステムのセットを作成する手順、ここで、仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものであり、前記ファイルシステムのセットに位置している
を行うための前記プログラム命令を実行する、請求項10に記載のコンピュータシステム。
【請求項12】
前記複数のプロセッサユニットによって、前記ストレージを前記マウントポイントのセットにマウントする際に、前記複数のプロセッサユニットが:
前記パーティションのセットにおける前記ファイルシステムのセットを前記マウントポイントのセットにマウントするための前記プログラム命令を実行する
請求項11に記載のコンピュータシステム。
【請求項13】
前記操作がアトミック操作であり、前記複数のプロセッサユニットによって、前記仮想ディスクのセットを作成し、前記操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクのセットを割り当てる段階において、前記複数のプロセッサユニットが:
前記ストレージにおいて仮想ディスクイメージファイルのセットを作成する手順、ここで前記仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものである;及び
前記ゲストのためのハイパーバイザのゲスト構成を更新する手順、ここで前記ハイパーバイザは、前記ゲスト構成を使用して前記仮想ディスクのセットを前記ゲストにアタッチする
を行うための前記プログラム命令を実行する、請求項10に記載のコンピュータシステム。
【請求項14】
前記複数のプロセッサユニットが:
前記ストレージのリサイズを検出する手順;及び
前記ゲストのためのゲスト構成を更新して、前記仮想ディスクのセットの前記リサイズを反映させる手順
を行うための前記プログラム命令を実行する、請求項10に記載のコンピュータシステム。
【請求項15】
前記複数のプロセッサユニットが:
前記ストレージのリサイズを検出する手順、前記リサイズにより、前記ストレージにストレージデバイスが追加される;及び
前記ストレージデバイスのための仮想ディスクの新たなセットを作成し、新たなアトミック操作のための前記命令が中断されることなく実行される前記新たなアトミック操作において、前記ゲストに対して前記仮想ディスクの新たなセットを割り当てる手順
を行うための前記プログラム命令を実行する、請求項10に記載のコンピュータシステム。
【請求項16】
前記複数のプロセッサユニットが:
前記ストレージのリサイズを検出する手順、前記リサイズにより、前記ストレージからストレージデバイスが除去される;
前記ストレージデバイスに位置する複数の仮想ディスクイメージファイルを有する複数の仮想ディスクを除去する手順;及び
前記ストレージのためのパーティションのセットをマウント解除する手順
を行うための前記プログラム命令を実行する、請求項10に記載のコンピュータシステム。
【請求項17】
前記複数のプロセッサユニットが:
前記ストレージのデタッチを検出する手順;及び
前記ゲストのためのゲスト構成を更新して、前記ストレージの前記デタッチを検出したことに応答して前記仮想ディスクのセットを除去する手順;及び
前記ストレージを前記マウントポイントのセットからマウント解除する手順
を行うための前記プログラム命令を実行する、請求項10に記載のコンピュータシステム。
【請求項18】
前記ゲストが、オペレーティングシステム、ゲストオペレーティングシステム、及び仮想マシンを含む群から選択される、請求項10に記載のコンピュータシステム。
【請求項19】
仮想ディスクを管理するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品が、それで具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を備え、前記プログラム命令が、コンピュータシステムに:
複数のプロセッサユニットによって、ホストオペレーティングシステムに対するストレージのアタッチメントを検出し;
前記複数のプロセッサユニットによって、前記ストレージをマウントポイントのセットにマウントし;及び
前記複数のプロセッサユニットによって、仮想ディスクのセットを作成し、前記複数のプロセッサユニットによって、アトミック操作のための命令が中断されることなく実行される前記アトミック操作において、ゲストに対して前記仮想ディスクのセットを割り当てる
方法を実行させるために前記コンピュータシステムによって実行可能である、コンピュータプログラム製品。
【請求項20】
前記複数のプロセッサユニットによって、前記ストレージをマウントする前に、前記仮想ディスクのセットのためのパーティションのセットを作成する段階;及び
前記複数のプロセッサユニットによって、前記ストレージをマウントする前に、前記仮想ディスクのセットのための前記パーティションのセットにおいてファイルシステムのセットを作成する段階、ここで仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものであり、前記ファイルシステムのセットに位置している
をさらに備える、請求項19に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、コンピュータシステムの向上に関し、より具体的には、仮想マシンのための仮想ストレージを管理するための方法、装置、コンピュータシステム、及びコンピュータプログラム製品に関する。
【背景技術】
【0002】
ハイパーバイザは、仮想マシンを作成し、動作させることができる。ハイパーバイザの使用により、ホストコンピュータは、メモリ、ストレージ、及びプロセッサ等のリソースを仮想的に共有することによって、複数のゲスト仮想マシンをサポートすることができる。例えば、ハイパーバイザは、ディスクイメージファイルを使用して、ホストコンピュータ上のハードディスクへのゲスト仮想マシンのアクセスを提供することができる。このディスクイメージファイルは、仮想ディスクイメージファイルとも称される。
【0003】
仮想ディスクは、ゲスト仮想マシンにおいて、ゲストオペレーティングシステムにとって物理ディスクドライブに見えるホストコンピュータ上のファイルである。ハイパーバイザは、ゲスト仮想マシンに対して仮想ディスクをアタッチ及びデタッチすることができる。物理ストレージデバイスが除去されると、ハイパーバイザはディスクイメージをマウント解除することができる。同様の様式で、物理ストレージがリサイズされると、仮想ディスクがリサイズされ得る、又は、仮想ディスクの作成又は削除等の他の操作が生じ得る。
【発明の概要】
【0004】
1つの例示的な実施形態によれば、コンピュータ実装方法は仮想ディスクを管理する。複数のプロセッサユニットが、ホストオペレーティングシステムに対するストレージのアタッチを検出する。前記複数のプロセッサユニットが、前記ストレージをマウントポイントのセットにマウントする。前記複数のプロセッサユニットが、仮想ディスクのセットを作成し、前記複数のプロセッサユニットによって、操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクのセットを割り当てる。他の例示的な実施形態によれば、仮想ディスクを管理するためのコンピュータシステム及びコンピュータプログラム製品が提供される。
【図面の簡単な説明】
【0005】
図1】例示的な実施形態が実装され得るクラウドコンピューティング環境を示す図である。
【0006】
図2】例示的な実施形態による抽象化モデル層を示す図である。
【0007】
図3】例示的な実施形態が実装され得るデータ処理システムのネットワークの絵図表現である。
【0008】
図4】例示的な実施形態による仮想ディスク管理環境のブロック図である。
【0009】
図5】例示的な実施形態による、ゲストオペレーティングシステムに対する仮想ディスクのアタッチを示すメッセージフロー図である。
【0010】
図6】例示的な実施形態による、ゲストオペレーティングシステムからの仮想ディスクの除去を示すメッセージフロー図である。
【0011】
図7】例示的な実施形態による、ゲストオペレーティングシステムのための仮想ディスクのリサイズのメッセージフロー図である。
【0012】
図8】例示的な実施形態による、仮想ディスクを管理するためのプロセスのフローチャートである。
【0013】
図9】例示的な実施形態による、仮想ディスクを管理するためのプロセスのフローチャートである。
【0014】
図10】例示的な実施形態による、ストレージをマウントするためのプロセスのフローチャートである。
【0015】
図11】例示的な実施形態による、アトミック操作において仮想ディスクを作成して割り当てるためのプロセスのフローチャートである。
【0016】
図12】例示的な実施形態による、仮想ディスクを管理するためのプロセスのフローチャートである。
【0017】
図13】例示的な実施形態による、仮想ディスクを管理するためのプロセスのフローチャートである。
【0018】
図14】例示的な実施形態による、仮想ディスクを管理するためのプロセスのフローチャートである。
【0019】
図15】例示的な実施形態による、仮想ディスクを管理するためのプロセスのフローチャートである。
【0020】
図16】例示的な実施形態によるデータ処理システムのブロック図である。
【発明を実施するための形態】
【0021】
本発明は、任意の可能な技術的詳細レベルで統合化されたシステム、方法及び/又はコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(又は複数の媒体)を含んでもよい。
【0022】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持及び格納し得る有形デバイスであり得る。コンピュータ可読ストレージ媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は上述したものの任意の好適な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非包括的なリストには、以下、すなわちポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、パンチカード又は命令が記録されている溝内の隆起構造等の機械的にエンコードされたデバイス、及び上述したものの任意の好適な組み合わせが含まれる。コンピュータ可読ストレージ媒体は、本明細書において使用される場合、電波又は他の自由に伝搬する電磁波、導波路又は他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を通じて伝送される電気信号といった、一時的な信号それ自体と解釈されるべきではない。
【0023】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から、それぞれのコンピューティング/処理デバイスに、又は、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークを介して、外部コンピュータ又は外部ストレージデバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを備え得る。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0024】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は、Smalltalk(登録商標)、C++又はそれらに類するオブジェクト指向プログラミング言語など、及び、「C」プログラミング言語等の手続き型プログラミング言語又は同様のプログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで書かれたソースコード又はオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロンソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に且つリモートコンピュータ上で部分的に、又は、リモートコンピュータ又はサーバ上で全体的に実行し得る。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、又はこの接続は、(例えば、インターネットサービスプロバイダを用いるインターネットを通じて)外部コンピュータに対して行われ得る。いくつかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズし得る。
【0025】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明されている。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図におけるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得ることが理解されるであろう。
【0026】
これらのコンピュータ可読プログラム命令をコンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供してマシンを生み出してよく、それにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/動作を実装するための手段を作成する。コンピュータ、プログラマブルなデータ処理装置、及び/又は他のデバイスに特定の方式で機能するよう指示できるこれらのコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体に格納してもよいので、命令を格納したコンピュータ可読ストレージ媒体は、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/動作の態様を実装する命令を含む製造品を備える。
【0027】
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブルデータ処理装置又は他のデバイス上へロードして一連の動作段階をコンピュータ、他のプログラマブル装置又は他のデバイス上で実行させてコンピュータ実装処理を生じさせることで、コンピュータ、他のプログラマブル装置又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定される機能/動作を実装するようにし得る。
【0028】
図におけるフローチャート及びブロック図は、本発明の様々な実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、及び動作を図示する。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を備える命令のモジュール、セグメント、又は部分を表し得る。いくつかの代替的な実装形態において、ブロックに記されている機能は、図面に記されている順序とは異なる順序で行われ得る。例えば、連続して示される2つのブロックは、実際には、1つの段階として実現され、同時に、実質的に同時に、部分的又は全体的に時間的に重複する方式で実行され得るか、又は、関連する機能に応じて、ブロックは場合により、逆の順序で実行され得る。ブロック図及び/又はフローチャート図における各ブロック、及びブロック図及び/又はフローチャート図におけるブロックの組み合わせが、指定された機能又は動作を実行する、又は専用ハードウェア及びコンピュータ命令の組み合わせを実行する、専用ハードウェアベースのシステムによって実装され得ることにも留意されたい。
【0029】
したがって、例示的な実施形態は、機密データを自動的に暗号化するための方法、装置、システム及びコンピュータプログラム製品を提供する。例示的な実施形態において、機密データは、構成情報において識別される位置から取得され得る。機密データは、構成情報を用いて自動的に暗号化され、アプリケーション用のコンテナの展開中に格納され得る。また、例示的な実施形態は、機密データの変更が検出されてよく、機密データが自動的に暗号化され得ると共にアプリケーション用のコンテナによる使用のために自動的に展開され得ることを認識及び考慮している。機密データの変更のこの検出は、チェックサムを用いて検出され得る。
【0030】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載される教示内容の実装形態は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られている、又は、今後開発される任意の他のタイプのコンピューティング環境と併せて実装することが可能である。
【0031】
クラウドコンピューティングは、管理の労力又はサービスのプロバイダとの対話を最小限に抑えながら迅速にプロビジョニング及びリリースされ得る構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールに対する便利なオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルである。本クラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含み得る。
【0032】
特性は以下の通りである。
【0033】
オンデマンドセルフサービス:クラウド消費者は、サービスのプロバイダとのヒューマンインタラクションを要することなく必要に応じて自動的に、サーバタイム及びネットワークストレージ等のコンピューティング機能を一方的にプロビジョニングできる。
【0034】
ブロードネットワークアクセス:異種のシン又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ及びPDA(登録商標))による使用を促進する機能が、ネットワーク上で利用可能であり、標準的なメカニズムを通じてアクセスされる。
【0035】
リソースプール:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者にサービスを提供するためにプールされ、異なる物理リソース及び仮想リソースが、要求に従って、動的に割り当て及び再割り当てされる。消費者は一般に提供されたリソースの正確な位置に対する制御又は知識を有していないが、より高いレベルの抽象化(例えば、国、州、又はデータセンタ)において位置を指定することが可能である場合があるという点で、位置の独立性がある。
【0036】
迅速伸縮性:機能が、素早くスケールアウトするように、いくつかの場合には自動的に、迅速かつ伸縮自在にプロビジョニングでき、素早くスケールインするように迅速にリリースできる。消費者にとって、多くの場合、プロビジョニングのために利用可能な機能は無制限であるように見え、任意の時点において任意の量で購入され得る。
【0037】
測定されるサービス:クラウドシステムが、サービスのタイプ(例えば、ストレージ、処理、帯域幅及びアクティブユーザアカウント)に対して適切なある抽象化レベルで計量機能を活用することにより、リソースの使用を自動的に制御及び最適化する。リソース使用量をモニタリング、制御及び報告することができ、それにより、利用されるサービスのプロバイダ及び消費者の両方に透明性が提供される。
【0038】
サービスモデルは以下の通りである。
【0039】
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)等のシンクライアントインタフェースを通じて様々なクライアントデバイスからアクセス可能である。消費者は、限定されたユーザ固有のアプリケーション構成設定を考え得る例外として、ネットワーク、サーバ、オペレーティングシステム、ストレージ又は更には個々のアプリケーション機能を含む、基礎をなすクラウドインフラストラクチャを管理又は制御しない。
【0040】
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによりサポートされるプログラミング言語及びツールを使用して作成される、消費者により作成又は取得されたアプリケーションをクラウドインフラストラクチャ上へ展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション、及び場合によってはアプリケーションホスティング環境構成に対して制御を有する。
【0041】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、処理と、ストレージと、ネットワークと、オペレーティングシステム及びアプリケーションを含み得る任意のソフトウェアを消費者が展開及び動作させることができる他の基本的なコンピューティングリソースとをプロビジョニングすることである。消費者は、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションに対する制御を有するとともに、場合によっては選択されたネットワーキングコンポーネント(例えば、ホストファイアウォール)に対する限定的な制御を有する。
【0042】
展開モデルは以下の通りである。
【0043】
プライベートクラウド:クラウドインフラストラクチャは、ある組織のみのために動作させられる。それは、組織又は第三者によって管理されてよく、オンプレミス又はオフプレミスで存在してよい。
【0044】
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織により共有され、関心事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を共有する特定のコミュニティをサポートする。それは、当該組織又は第三者によって管理されてよく、オンプレミス又はオフプレミスで存在し得る。
【0045】
パブリッククラウド:クラウドインフラストラクチャは、一般大衆又は大きい業界団体に対して利用可能にされ、クラウドサービスを販売する組織により所有される。
【0046】
ハイブリッドクラウド:クラウドインフラストラクチャは、独自のエンティティのままであるが、データ及びアプリケーションのポータビリティを可能にする標準化技術又は独自技術(例えば、クラウド間での負荷分散のためのクラウドバースト)により共に結合された2つ又はそれよりも多くのクラウド(プライベート型、コミュニティ型又はパブリック型)の複合物である。
【0047】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、及び意味的相互運用性に重点を置いたサービス指向型である。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャが存在する。
【0048】
ここで図1を参照すると、例示的な実施形態が実装され得るクラウドコンピューティング環境を示す図が示されている。この例示的な例では、クラウドコンピューティング環境100は、例えば、パーソナルデジタルアシスタントもしくはスマートフォン120A、デスクトップコンピュータ120B、ラップトップコンピュータ120C、及び/又は自動車コンピュータシステム120Nなど、クラウド消費者により用いられるローカルコンピューティングデバイスが通信し得る1つ又は複数のクラウドコンピューティングノード110のセットを含む。
【0049】
クラウドコンピューティングノード110は、1つ又は複数のネットワークと互いに通信してよく、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウド又はその組み合わせなど、1つ又は複数のネットワークへ物理的に又は仮想的にグループ化されてよい。これにより、クラウドコンピューティング環境100は、ローカルコンピューティングデバイス120A~120N等のクラウド消費者がローカルコンピューティングデバイス上のリソースを維持する必要がないインフラストラクチャ、プラットフォーム、及び/又はソフトウェアをサービスとして提供することが可能になる。ローカルコンピューティングデバイス120A~120Nのタイプが例示のみを意図しており、クラウドコンピューティングノード110及びクラウドコンピューティング環境100が、任意のタイプのネットワーク、及び/又はネットワークアドレス指定可能接続を介して、例えばウェブブラウザを用いて任意のタイプのコンピュータ化デバイスと通信できることが理解される。
【0050】
ここで図2を参照すると、例示的な実施形態による抽象化モデル層を示す図が示されている。この例示的な例で示される機能抽象化層のセットは、図1におけるクラウドコンピューティング環境100など、クラウドコンピューティング環境により提供され得る。図2に示されている、コンポーネント、層、及び機能は単なる例示を意図しており、本発明の実施形態はそれらに限定されないことが事前に理解されるべきである。示されるように、以下の層及び対応する機能が提供される。
【0051】
クラウドコンピューティング環境の抽象化層200は、ハードウェア及びソフトウェア層202、仮想化層204、管理層206、及びワークロード層208を含む。ハードウェア及びソフトウェア層202は、クラウドコンピューティング環境のハードウェアコンポーネント及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントは、例えば、メインフレーム210、RISC(縮小命令セットコンピュータ)アーキテクチャベースサーバ212、サーバ214、ブレードサーバ216、ストレージデバイス218、及びネットワーク及びネットワーキングコンポーネント220を含み得る。いくつかの例示的な実施形態において、ソフトウェアコンポーネントは、例えば、ネットワークアプリケーションサーバソフトウェア222及びデータベースソフトウェア224を含み得る。
【0052】
仮想化層204は、仮想エンティティの例、つまり、仮想サーバ226、仮想ストレージ228、仮想プライベートネットワークを含む仮想ネットワーク230、仮想アプリケーション及びオペレーティングシステム232、及び仮想クライアント234が提供され得る抽象化層を提供する。
【0053】
一例では、管理層206は、以下で説明される機能を提供してよい。リソースプロビジョニング236は、クラウドコンピューティング環境内のタスクを実行するために利用されるコンピューティングリソース及び他のリソースの動的調達を提供する。この例示的な例では、リソースプロビジョニングにおける仮想ディスク管理237は、仮想ディスクの形のリソースを管理することができる。
【0054】
計測及び価格設定238は、リソースがクラウドコンピューティング環境内で利用される際のコスト追跡、及びこれらのリソースの消費に対する勘定又は請求を提供する。一例では、これらのリソースは、アプリケーションソフトウェアライセンスを含んでもよい。セキュリティは、クラウド消費者及びタスクのアイデンティティ検証、及び、データ及び他のリソースの保護を提供する。ユーザポータル240は、消費者及びシステムアドミニストレータに対してクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理242は、必要とされるサービスレベルが満たされるように、クラウドコンピューティングリソース割り当て及び管理を提供する。サービスレベルアグリーメント(SLA)計画及び履行244は、SLAに従って将来の必要性が予期されるクラウドコンピューティングリソースの事前準備及び調達を提供する。
【0055】
ワークロード層208は、クラウドコンピューティング環境が利用され得る機能の例を提供する。ワークロードレイヤ208により提供され得る例示的なワークロード及び機能は、マッピング及びナビゲーション246、ソフトウェア開発及びライフサイクル管理248、仮想教室教育の提供250、データ分析処理252、トランザクション処理254ならびにコンテナオーケストレーション256を含み得る。
【0056】
例示的な実施形態は、いくつかの異なる検討事項を認識し、考慮している。例えば、例示的な実施形態は、ハイパーバイザがストレージデバイスのパススルー又は部分仮想化を提供又はサポートしない場合に、入れ子式の仮想化ゲストによる使用のために利用可能なストレージデバイスのライフサイクルを管理することが困難になり得ることを認識し、考慮している。例示的な実施形態は、ライフサイクルのアタッチ、デタッチ、及び更新を認識し、考慮している。例示的な実施形態は、ハイパーバイザの下で動作しているゲストによる使用のためのアタッチされたストレージデバイスの発見プロセスを自動化することが望ましいことを認識し、考慮している。例示的な実施形態は、このプロセスの自動化は、ハイパーバイザに適合するディスクイメージファイルを使用することを含み得ることを認識し、考慮している。
【0057】
ここで図3を参照すると、例示的な実施形態が実装され得るデータ処理システムのネットワークの絵図表現が示されている。ネットワークデータ処理システム300は、例示的な実施形態が実装され得るコンピュータのネットワークである。ネットワークデータ処理システム300は、ネットワーク302を含む。ネットワーク302は、ネットワークデータ処理システム300内で共に接続された様々なデバイス及びコンピュータの間の通信リンクを提供するために用いられる媒体である。ネットワーク302は、有線又は無線通信リンク、又は光ファイバケーブル等の接続を含み得る。
【0058】
示されている例において、サーバコンピュータ304及びサーバコンピュータ306は、ストレージユニット308と共にネットワーク302に接続されている。加えて、クライアントデバイス310は、ネットワーク302に接続している。示されるように、クライアントデバイス310は、クライアントコンピュータ312、クライアントコンピュータ314及びクライアントコンピュータ316を含む。クライアントデバイス310は、例えば、コンピュータ、ワークステーション又はネットワークコンピュータであり得る。示されている例において、サーバコンピュータ304は、ブートファイル、オペレーティングシステムイメージ及びアプリケーションなど、情報をクライアントデバイス310に提供する。さらに、クライアントデバイス310は、携帯電話318、タブレットコンピュータ320及びスマートグラス322など、他のタイプのクライアントデバイスも含み得る。この例示的な例において、サーバコンピュータ304、サーバコンピュータ306、ストレージユニット308及びクライアントデバイス310は、ネットワーク302に接続しているネットワークデバイスであり、このネットワークデバイスにおいて、ネットワーク302は、これらのネットワークデバイスのための通信媒体である。クライアントデバイス310のいくつか又は全ては、モノのインターネット(IoT)を形成し得る。IoTにおいて、これらの物理デバイスは、ネットワーク302に接続し、ネットワーク302上で、情報を互いに交換できる。
【0059】
この例において、クライアントデバイス310は、サーバコンピュータ304のクライアントである。ネットワークデータ処理システム300は、示されていない追加のサーバコンピュータ、クライアントコンピュータ及び他のデバイスを含み得る。クライアントデバイス310は、有線接続、光ファイバ接続又は無線接続のうちの少なくとも1つを利用して、ネットワーク302に接続している。
【0060】
ネットワークデータ処理システム300内に位置するプログラムコードは、コンピュータ記録可能ストレージ媒体に格納され、使用のためにデータ処理システム又は他のデバイスへダウンロードされ得る。例えば、プログラムコードが、サーバコンピュータ304上のコンピュータ記録可能ストレージ媒体に格納され、クライアントデバイス310上での使用のためにネットワーク302上でクライアントデバイス310へダウンロードされ得る。
【0061】
示されている例において、ネットワークデータ処理システム300は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)というプロトコル一式を用いて互いに通信するネットワーク及びゲートウェイのワールドワイド集合体を表すネットワーク302を用いたインターネットである。インターネットの中心には、データ及びメッセージをルーティングする数千の商用コンピュータシステム、政府コンピュータシステム、教育コンピュータシステム及び他のコンピュータシステムから成る主要なノード又はホストコンピュータ間の高速データ通信回線のバックボーンがある。当然ながら、ネットワークデータ処理システム300はまた、複数の異なるタイプのネットワークを用いて実装され得る。例えば、ネットワーク302は、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)又はワイドエリアネットワーク(WAN)のうちの少なくとも1つから構成され得る。図3は、異なる例示的な実施形態のアーキテクチャ上の限定ではなく、一例として意図されている。
【0062】
本明細書において使用される場合、「複数の」は、項目に関連して使用されるとき、1つ又は複数の項目を意味する。例えば、「複数の異なるタイプのネットワーク」は、1つ又は複数の異なるタイプのネットワークである。
【0063】
さらに、「のうちの少なくとも1つ」という語句は、項目のリストと共に使用される場合、列挙された項目のうちの1つ又は複数の異なる組み合わせが使用され得るということ、及びリストに含まれる各項目のうちの1つのみが必要であることがあるということを意味する。換言すれば、「のうちの少なくとも1つ」は、リストの項目及び項目の数の任意の組み合わせが使用され得るが、リスト内の全ての項目が必要なわけではないということを意味する。項目は、特定のオブジェクト、物又はカテゴリであり得る。
【0064】
例えば、限定することなく、「項目A、項目B又は項目Cのうちの少なくとも1つ」は、項目A、項目A及び項目B、又は項目Bを含み得る。この例はまた、項目A、項目B、及び項目C、又は、項目B及び項目Cを含み得る。当然ながら、これらの項目の任意の組み合わせが存在し得る。いくつかの例示的な例では、「のうちの少なくとも1つ」は、例えば、限定することなく、項目Aの2個、項目Bの1個、項目Cの10個、項目Bの4個及び項目Cの7個、又は、他の好適な組み合わせであり得る。
【0065】
示されるように、仮想ディスクマネージャ330は、ブロックストレージ338を使用してゲスト仮想マシン336のための仮想ディスク334を管理するために、ハイパーバイザ332を用いてサーバコンピュータ304上で動作する。この例示的な例では、ブロックストレージ338は、1つ又は複数の物理ストレージデバイスを含む物理ストレージである。これらの物理デバイスは、各々がそれら自体のエントランスを有するセグメントにブロック化又はグループ化されたバイト単位でデータを格納する。他の例では、ブロックストレージ338は仮想ストレージであり得る。
【0066】
仮想ディスクマネージャ330は、仮想ディスク334を作成し、ゲスト仮想マシン336に対して割り当てることができる。この例示的な例では、仮想ディスク334の作成は、ブロックストレージ338の存在が発見されたときに生じる。この発見は、複数の異なる方法で実行され得る。例えば、ブロックストレージ338の発見は、イベント駆動型通知又はクエリを使用して実行され得る。
【0067】
示されるように、ハイパーバイザ332は、仮想ディスクマネージャ330によって割り当てられたとおりにゲスト仮想マシン336に対して仮想ディスク334をアタッチする。仮想ディスク334は、ゲスト仮想マシン336により予測され使用される特性及びフォーマットで、ゲスト仮想マシン336によって閲覧される。特性は、例えば、フォーマット、サイズ、又は容量、又は仮想ディスク334を実際の物理デバイスのように見せる他の特性を含み得る。
【0068】
仮想ディスクマネージャ330はまた、ブロックストレージ338が除去される又は欠損したときに仮想ディスク334を除去するように動作し得る。この状況は、イベント駆動型通知又はスケジュールされたクエリを使用して検出され得る。仮想ディスクマネージャ330は、仮想ディスクがゲスト仮想マシン336による使用から除去されることをハイパーバイザ332に通知し得る。別の例として、仮想ディスクマネージャ330はまた、ブロックストレージ338のリサイズに応答して、仮想ディスク334を追加、除去、又はリサイズし得る。
【0069】
仮想ディスク334の管理の例示は、ゲスト仮想マシン336のための仮想ディスクを管理するための1つの実装形態の一例である。他の例示的な例では、仮想ディスクマネージャ330は、単一のゲスト仮想マシンのために1つ又は複数の仮想ディスクを管理してよい。さらに別の例示的な例では、1つよりも多いブロックストレージが存在することができる。
【0070】
ここで図4を参照すると、例示的な実施形態による仮想ディスク管理環境のブロック図が示されている。この例示的な例では、仮想ディスク管理環境400は、図1におけるクラウドコンピューティング環境100又は図3におけるネットワークデータ処理システム300に示されるハードウェア等のハードウェアに実装され得るコンポーネントを含む。
【0071】
この例示的な例では、仮想ディスク管理環境400における仮想ディスク管理システム402は、複数の異なるコンポーネントを備える。示されるように、仮想ディスク管理システム402は、コンピュータシステム404及び仮想ディスクマネージャ406を備える。仮想ディスクマネージャ406は、コンピュータシステム404内に位置している。
【0072】
仮想ディスクマネージャ406は、ソフトウェア、ハードウェア、ファームウェア、又はその組み合わせにおいて実装され得る。ソフトウェアが使用される場合、仮想ディスクマネージャ406により実行される動作は、プロセッサユニット等のハードウェア上で動作するように構成されたプログラム命令において実装され得る。ファームウェアが使用される場合、仮想ディスクマネージャ406により実行される動作は、プロセッサユニット上で動作するための永続メモリに格納されたプログラム命令及びデータに実装され得る。ハードウェアが使用される場合、ハードウェアは、仮想ディスクマネージャ406における動作を実行するように動作する回路を含み得る。
【0073】
例示的な例において、ハードウェアは、回路システム、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス、又は複数の動作を実行するように構成された何らかの他の適切なタイプのハードウェアのうちの少なくとも1つから選択される形態を取ることができる。プログラマブルロジックデバイスでは、デバイスは、複数の動作を実行するように構成され得る。デバイスは、後の時点で再構成されてもよく、複数の動作を実行するように恒久的に構成されてもよい。プログラマブルロジックデバイスは、例えば、プログラマブルロジックアレイ、プログラマブルアレイロジック、フィールドプログラマブルロジックアレイ、フィールドプログラマブルゲートアレイ及び他の適切なハードウェアデバイスを含む。追加的に、これらの処理は、無機コンポーネントと統合された有機コンポーネントにおいて実装されてよく、人間を排除した有機コンポーネントから完全に構成されてよい。例えば、これらの処理は、有機半導体内の回路として実装され得る。
【0074】
コンピュータシステム404は、物理ハードウェアシステムであり、1つ又は複数のデータ処理システムを含む。1つよりも多くのデータ処理システムがコンピュータシステム404内に存在する場合、それらのデータ処理システムは、通信媒体を用いて互いに通信している。通信媒体は、ネットワークであり得る。データ処理システムは、コンピュータ、サーバコンピュータ、タブレットコンピュータ又はいくつか他の適切なデータ処理システムのうちの少なくとも1つから選択され得る。
【0075】
示されているように、コンピュータシステム404は、例示的な例におけるプロセスを実装するプログラム命令410を実行することが可能である複数のプロセッサユニット408を含む。本明細書において使用される場合、複数のプロセッサユニット408内のプロセッサユニットは、ハードウェアデバイスであり、コンピュータを動作させる命令及びプログラムコードに応答し、これらを処理する集積回路上のハードウェア回路等のハードウェア回路から構成される。複数のプロセッサユニット408がプロセスのためのプログラム命令410を実行するとき、複数のプロセッサユニット408は、同じコンピュータ上又は異なるコンピュータ上にあり得る1つ又は複数のプロセッサユニットである。換言すれば、プロセスは、コンピュータシステム内の同じ又は異なるコンピュータ上のプロセッサユニット間に分散させることができる。さらに、複数のプロセッサユニット408は、同じタイプ又は異なるタイプのプロセッサユニットとすることができる。例えば、複数のプロセッサユニットは、シングルコアプロセッサ、デュアルコアプロセッサ、マルチプロセッサコア、汎用中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、又は何らかの他のタイプのプロセッサユニットのうちの少なくとも1つから選択することができる。
【0076】
示されるように、仮想ディスクマネージャ406は、ホストオペレーティングシステム414に対するストレージ412のアタッチを検出する。この検出は、発見プロセスを使用して実行されることができる。発見は、複数の異なる方法で実行されることができる。例えば、発見は、ストレージデバイスの発見を開始するイベント駆動型通知を使用してよく、又は、ブロックストレージの発見を開始するスケジュールされたクエリの使用を伴ってよい。ストレージ412は仮想ストレージであり得る。例えば、ストレージ412は、入れ子式の仮想化システムにおける仮想ストレージであり得る。
【0077】
この例示的な例では、ストレージ412は、ストレージ412がホストオペレーティングシステム414にアタッチされているときに存在する。ストレージ412は、複数の異なる形態を取ってよい。例えば、ストレージ412は、ブロックストレージ、ファイルストレージ、オブジェクトストレージ、又は何らかの他の適切なタイプのストレージアーキテクチャのうちの少なくとも1つから選択される1つ又は複数のストレージアーキテクチャを使用してよい。ストレージ412におけるストレージデバイスは、ハードディスクドライブ、ソリッドステートディスクドライブ、又は他の適切なタイプのストレージデバイスのうちの少なくとも1つから選択され得る。
【0078】
ストレージ412に応答して、仮想ディスクマネージャ406がストレージ412をマウントポイント416のセットにマウントする。この例示的な例では、マウントポイント416のセットは、ストレージ412のためのパーティション418のセットにおける位置のセットである。パーティション418のセットは、1つ又は複数のパーティションであってよい。各マウントポイントは、ファイルシステムにおけるディレクトリであってよい。
【0079】
ストレージ412をマウントする前に、仮想ディスクマネージャ406は、仮想ディスク420のセットのためのパーティション418のセットを作成する。仮想ディスクマネージャ406はまた、ストレージ412をマウントする前に、仮想ディスク420のセットのためのパーティション418のセットにおいてファイルシステム422のセットを作成する。ストレージをマウントポイント416のセットにマウントするために、パーティション418のセットにおけるファイルシステム422のセットは、仮想ディスクマネージャ406によってマウントポイント416のセットにマウントされる。この例示的な例では、仮想ディスクイメージファイル424のセットは、仮想ディスク420のセットのためのものであり、ファイルシステム422のセットに位置している。
【0080】
仮想ディスクマネージャ406は、仮想ディスク420のセットを作成し、アトミック操作のための命令が中断されることなく実行される操作428において、ゲスト426に対して仮想ディスク420のセットを割り当てる。この例示的な例では、操作428はアトミック操作429である。換言すれば、仮想ディスク420を作成して割り当てるための命令は、アトミック操作の一部ではない他の操作のために他の介在する命令が処理されることなく実行される。例えば、操作428は、ゲスト426に対する仮想ディスク420のセットの作成及び割り当てに影響を与え得る他の段階又は操作が実行されることにより中断されることなく、仮想ディスク420のセットを作成し、割り当てることができる。
【0081】
例えば、操作428における段階を実行するための命令は、操作428の一部ではない他の段階又は操作のための命令が、仮想ディスク420のセットの作成及び割り当てに影響を与えるような方法で実行されることなく実行される。別の例示的な例では、操作428はまた、ゲスト426に対する仮想ディスク420のセットのアタッチを含み得る。この例示的な例では、ゲスト426は、オペレーティングシステム、ゲストオペレーティングシステム、仮想マシン、又は、ゲストと見なされ得る何らかの他の適切なコンポーネントを含むグループから選択され得る。
【0082】
仮想ディスク420のセットの作成は、ストレージ412において仮想ディスクイメージファイル424のセットを作成することによって実行される。仮想ディスクイメージファイル424のセットにおける各仮想ディスクイメージファイルは、仮想ディスク及び仮想ディスク420に対応する。仮想ディスク420のセットにおいて単一の仮想ディスクが存在する場合、仮想ディスクイメージファイル424のセットに単一の仮想ディスクイメージが存在する。
【0083】
ゲスト426に対する仮想ディスク420のセットの割り当ては、ゲスト426のためのハイパーバイザ432のゲスト構成430を更新することによって行われ得る。ハイパーバイザ432は、仮想ディスク420ゲスト426のセットにアタッチされたゲスト構成430を使用することができる。
【0084】
この例示的な例では、ハイパーバイザ432は、1つ又は複数の仮想マシンを動作することができるコンポーネントであり、仮想マシンはゲスト又はゲスト仮想マシンと称される。ハイパーバイザ432は、ソフトウェア、ファームウェア、又はハードウェアのうちの少なくとも1つで構成され得る。この示されている例では、ゲスト構成430は、ゲスト426のための構成を識別する情報を含む構成ファイルである。例えば、ゲスト構成430は、仮想ディスク420のセットのための仮想ディスクイメージファイル424のセットを含むゲスト426のための仮想ハードウェアリソースを説明し得る。
【0085】
この例示的な例では、パーティション418のセットにおけるパーティションは、仮想ディスクイメージファイル424のセットのうちの1つ又は複数を有し得る。換言すれば、パーティションは、1つよりも多い仮想ディスクを有し得る。追加的に、ファイルシステム422のセットにおけるファイルシステムも、仮想ディスクイメージファイル424のセットのうちの1つ又は複数を有し得る。
【0086】
さらに、1つよりも多い仮想ディスクイメージファイルが仮想ディスクイメージファイル424のセットに存在する場合、それらの仮想ディスクイメージファイルは、同じ又は異なるタイプの仮想ディスクのためのものであってよい。これらのフォーマットは、ゲスト426が使用することができる、又は使用することが予測される物理ディスクデバイスのタイプのためのものであってよい。
【0087】
結果として、アトミック操作429の使用により、ゲストへの仮想ディスク420の提供の精度又はセキュリティの向上のうちの少なくとも1つが提供される。さらに、アトミック操作429の使用により、中間者攻撃(man in the middle attack:MITM)の可能性が低減され、親なし状態の(orphaned)仮想ディスクとなることが回避される。例えば、仮想ディスク420のセットをプールに置くこと、又は仮想ディスク420のセットを後の時点で割り当てるために待機することにより、結果として、ゲスト426以外の異なるゲストが仮想ディスク420のセットにアタッチされることになり得る。
【0088】
仮想ディスク420のセットを作成してゲスト426に割り当てることに加えて、仮想ディスクマネージャ406はまた、仮想ディスク420のセットの管理における他の操作を実行することができる。例えば、仮想ディスクマネージャ406は、ストレージ412のリサイズ434を検出することができる。リサイズ434を検出したことに応答して、仮想ディスクマネージャ406は、ゲスト426のためのゲスト構成430を更新して、仮想ディスク420のセットのリサイズ434を反映することができる。
【0089】
1つの例示的な例では、仮想ディスクマネージャ406は、ストレージ412のリサイズ434を検出し、このリサイズ434により、ストレージデバイス436がストレージ412に追加される。このインスタンスでは、仮想ディスクマネージャ406は、ストレージデバイス436のための仮想ディスク438の新たなセットを作成し、新たなアトミック操作440のための命令が中断されることなく実行される新たなアトミック操作440において、ゲスト426に対して仮想ディスク438の新たなセットを割り当てる。
【0090】
別の例示的な例では、仮想ディスクマネージャ406は、ストレージ412のリサイズ434を検出し、このリサイズ434により、ストレージデバイス436がストレージ412から除去される。リサイズ434に応答して、仮想ディスクマネージャ406は、ストレージデバイス436に位置する複数の仮想ディスクイメージファイル442を有する複数の仮想ディスク420を除去する。仮想ディスクマネージャ406はまた、ストレージデバイス436に対応するストレージ412のためのパーティション418のセットをマウント解除する。
【0091】
さらに別の例示的な例では、仮想ディスクマネージャ406はストレージ412のデタッチを検出する。この例示的な例では、ストレージ412のデタッチとは、ストレージ412が除去された、欠損している、又は別様にアクセス不可であるイベントが検出されたことを意味する。仮想ディスクマネージャ406は、ストレージ412のデタッチを検出したことに応答して、ゲスト426のためのゲスト構成430を更新して、仮想ディスク420のセットを除去する。この場合、仮想ディスクマネージャ406は、ストレージ412をマウントポイント416のセットからマウント解除する。
【0092】
コンピュータシステム404は、ソフトウェア、ハードウェア、ファームウェア又はこれらの組み合わせを使用して、異なる例示的な例において説明される段階、動作、又はアクションのうちの少なくとも1つを実行するように構成することができる。結果として、コンピュータシステム404は、仮想ディスクマネージャ406が、仮想ディスクにおける、ゲストに対してアタッチされる前に親なし状態ではない又は露出していない仮想ディスクを管理することを可能にするコンピュータシステム404内にある専用コンピュータシステムとして動作する。特に、仮想ディスクマネージャ406は、仮想ディスクマネージャ406を有さない現在利用可能な汎用コンピュータシステムと比較した専用コンピュータシステムにコンピュータシステム404を変換する。
【0093】
例示的な例では、コンピュータシステム404において仮想ディスクマネージャ406を使用することにより、仮想ディスクの管理のための実際の応用へとプロセスが統合され、これによりコンピュータシステム404の性能が高まる。換言すれば、コンピュータシステム404における仮想ディスクマネージャ406は、仮想ディスクを作成して、仮想ディスクを露出したままにしないような方法でゲストに対して、又は、仮想ディスクがゲストへのアタッチ以外の他の目的で使用され得るプールに割り当てることを含む、コンピュータシステム404における仮想ディスクマネージャ406内で仮想ディスクを管理するプロセスの実際の応用を対象とする。この例示的な例では、仮想ディスクを伴い得る他の操作が生じないアトミック操作を使用して仮想ディスクの作成及び割り当てが実行される、コンピュータシステム404における仮想ディスクマネージャ406が、仮想ディスクの作成及び割り当ての間に介在する。
【0094】
このようにして、コンピュータシステム404における仮想ディスクマネージャ406は、コンピュータシステム404の機能が向上するように本発明の方法の実際の応用を提供する。異なる例示的な例のうちの1つ又は複数では、ストレージデバイスがアタッチされている場合、ディスク(物理/仮想)の準備のプロセスが生じ、ここで、仮想ディスクイメージファイルが作成され、ゲストによって利用されるためにハイパーバイザを介してマウントされる。ストレージデバイスがデタッチされると、ハイパーバイザを介してディスクイメージファイルをマウント解除するプロセスが生じ、これには、ホストオペレーティングシステムに対する任意の追加的なクリーンアップが含まれる。ストレージデバイスがリサイズされると、仮想ディスクは、これに応じて、仮想ディスクイメージファイルをリサイズすることによってリサイズされる、又は、仮想ディスクイメージファイルを作成又は削除することによる仮想ディスクの作成又は削除を介して管理され得るかのいずれかである。
【0095】
図4における仮想ディスク管理環境400の例示は、例示的な実施形態が実装され得る方法の物理的又はアーキテクチャ上の限定を示唆することを意図するものではない。示されているものに加え、又は示されているものの代わりに、他のコンポーネントが用いられ得る。いくつかのコンポーネントが不要であり得る。また、ブロックは、いくつかの機能コンポーネントを示すように提示されている。これらのブロックのうちの1つ又は複数は、例示的な実施形態において実装される場合、組み合わされてもよく、分割されてもよく、異なるブロックへと組み合わされ、分割されてもよい。
【0096】
例えば、仮想ディスクマネージャ406は、ハイパーバイザ432に加えて、又はその代わりに、1つ又は複数のハイパーバイザのための仮想ディスクを管理するように動作し得る。別の例示的な例として、ハイパーバイザ432を介して仮想ディスクマネージャ406によって仮想ディスクに提供されるゲスト426に加えて、1つ又は複数のゲストが存在してもよい。別の例示的な例では、仮想ディスクマネージャ406は、ストレージ412へのアクセスを管理するのに現在使用されているストレージコントローラの一部であり得る。
【0097】
図5から7は、ゲストオペレーティングシステムのための仮想ディスクの管理を例示するメッセージフロー図である。例示的な例では、メッセージは、データ、抽出、コマンド、及び電気信号、又は、メッセージに使用され得る他の適切なタイプの信号のうちの少なくとも1つであり得る。
【0098】
まず図5を参照すると、例示的な実施形態による、ゲストオペレーティングシステムに対する仮想ディスクのアタッチを示すメッセージフロー図が示される。この示されている例では、ブロックストレージ500は、図4に示されるストレージ412の一例である。この例示的な例では、ブロックストレージ500が、ホストオペレーティングシステム502にアタッチする(メッセージm1)。
【0099】
ブロックストレージ500の発見を開始するために仮想ディスクマネージャ504からホストオペレーティングシステム502へのイベント駆動型通知又はクエリが使用され得る発見段階が存在する(メッセージm2)。発見が開始されると、仮想ディスクマネージャ504は、ホストオペレーティングシステム502によって実行される発見プロセス中にホストオペレーティングシステム502によって見つけられたブロックストレージデバイスのリストを受信し得る(メッセージm3)。仮想ディスクマネージャ504は、ホストオペレーティングシステム502から受信したブロックストレージデバイスのリストを検証して、新たなブロックストレージデバイスが存在するかどうか、又は、ホストオペレーティングシステム502にアタッチされたブロックストレージデバイスに変化が生じたかどうかを判断する。この例では、ブロックストレージ500のアタッチは、ホストオペレーティングシステム502から受信したブロックストレージデバイスのリストを検証することで識別される。
【0100】
ブロックストレージ500のアタッチを検出することにより、仮想ディスクマネージャ504は、ホストオペレーティングシステム502にメッセージを送信して、ブロックストレージ500のためのパーティション及びファイルシステムを準備する(メッセージm4)。ブロックストレージ500が仮想ディスクのためのパーティション及びファイルシステムを有するように既に準備されている場合には、この段階は省略されてよい。
【0101】
仮想ディスクマネージャ504は、ホストオペレーティングシステム502及びゲストオペレーティングシステム506にアクセス可能になるように、ブロックストレージのパーティションをマウントするようホストオペレーティングシステム502にメッセージを送信する(メッセージm5)。例示的な例では、ゲストオペレーティングシステム506は、仮想マシンにおいて動作しているオペレーティングシステムである。対称的にホストオペレーティングシステム502は、コンピュータシステム上に位置しており、ハードウェアと相互作用する。コンピュータシステムは、物理又は仮想コンピュータシステムであってよく、ハードウェアは、入れ子式の仮想化を含む物理又は仮想ハードウェアであってよい。入れ子式の仮想化により、ホストオペレーティングシステム502は、仮想マシンにおいて動作している別のハイパーバイザのゲストオペレーティングシステムであってよい。
【0102】
この例示的な例では、仮想ディスクマネージャ504はアトミック操作508を実行する。この例示的な例では、アトミック操作508は、仮想ディスクを作成する段階及びゲストオペレーティングシステム506に対して仮想ディスクを割り当てる段階を含む段階を実行するための命令を実行することを含む。仮想ディスクを作成する際、ハイパーバイザ510に適合する、又はそれによって使用可能である仮想ディスクイメージファイルが作成される。仮想ディスクイメージファイルのこの作成がアトミック操作508の始まりである。仮想ディスクイメージがパーティション及びブロックストレージ500内に既に存在する場合、アトミック操作508におけるこの段階は省略されてよい。
【0103】
ゲストオペレーティングシステム506に対して仮想ディスクを割り当てる際、アトミック操作508はゲスト構成512を更新する。この更新は、ゲストオペレーティングシステム506による使用のための仮想ディスクのための新たな仮想ディスクイメージを含めるように実行される(メッセージm6)。換言すれば、ゲスト構成512の更新はアトミック操作508の一部である。したがって、アトミック操作508における仮想ディスクの作成及び割り当ての段階は、意図されるゲストであるゲストオペレーティングシステム506以外のゲストに対して仮想ディスクを割り当てる又はアタッチし得る可能性のあるプロセス、スレッド、プログラム、又は他のタイプの実行ユニットのための他の段階によって中断されることなく実行され得る。
【0104】
仮想ディスクマネージャ504は、ゲスト構成512が更新されたことをハイパーバイザ510に通知し得る(メッセージm7)。自動発見がハイパーバイザ510によって実行されない場合、この通知は不要であり得る。
【0105】
ゲスト構成512に対するこの更新は、仮想ディスクをアタッチするためにハイパーバイザ510によって使用される(メッセージm8)。ゲストオペレーティングシステム506はここで仮想ディスクを使用することができる。
【0106】
図6を参照すると、例示的な実施形態による、ゲストオペレーティングシステムからの仮想ディスクの除去を示すメッセージフロー図が示される。この示されている例では、ブロックストレージ500はホストオペレーティングシステム502からデタッチする(メッセージn1)。このデタッチの検出は、イベント駆動型通知、又は仮想ディスクマネージャ504がクエリを使用して発見を開始することを介して実行され得る(メッセージn2)。この発見プロセスにおいて、ホストオペレーティングシステム502は、仮想ディスクマネージャ504にデバイスのリストを返す(メッセージn3)。仮想ディスクマネージャ504は、デバイスのリストを解析して、ブロックストレージ500がデタッチされたことを判断し得る。
【0107】
ブロックストレージ500のデタッチを検出したことに応答して、仮想ディスクマネージャ504は、ゲスト構成512を更新して、ゲストオペレーティングシステム506によって使用された仮想ディスクのための仮想ディスクイメージを除去する(メッセージn4)。仮想ディスクマネージャ504は、ゲスト構成512に対する更新についてハイパーバイザ510に通知する(メッセージn5)。ハイパーバイザ510は、次に、ゲストオペレーティングシステム506をデタッチし得る(メッセージn6)。
【0108】
仮想ディスクマネージャ504は、ブロックストレージ500のデタッチを検出したことに応答して、ブロックストレージ500内にあったパーティションをマウント解除するようにホストオペレーティングシステム502にメッセージを送信し得る(メッセージn7)。
【0109】
次に図7を参照すると、例示的な実施形態による、ゲストオペレーティングシステムのための仮想ディスクのリサイズのメッセージフロー図が示される。この示されている例において、ブロックストレージ500がリサイズされ、リサイズされたメッセージがホストオペレーティングシステム502に送信される(メッセージp1)。
【0110】
このリサイズの検出は、イベント駆動型通知、又は仮想ディスクマネージャ504がクエリを使用して発見を開始することを介して実行され得る(メッセージp2)。この発見プロセスにおいて、ホストオペレーティングシステム502は、仮想ディスクマネージャ504にデバイスのリストを返す(メッセージp3)。仮想ディスクマネージャ504は、デバイスのリストを解析して、ブロックストレージ500がリサイズされたことを判断し得る。
【0111】
仮想ディスクマネージャ504は、ホストオペレーティングシステム502に、新たなサイズへのパーティションのリサイズを行わせる(メッセージp4)。パーティションのリサイズによりブロックストレージ500が縮小される場合、ゲストオペレーティングシステム506に利用可能なスペースを低減するために1つ又は複数の仮想ディスクが除去され得る。ゲストオペレーティングシステム506による使用からの1つ又は複数の仮想ディスクの除去は、ゲスト構成512を更新して仮想ディスクイメージファイルを除去することによって実行され得る(メッセージp5)。
【0112】
パーティションのリサイズによりパーティションのスペース量が増加する場合、仮想ディスクマネージャ504は、アトミック操作700を実行して、ブロックストレージ500のリサイズの結果もたらされた増加したスペースのための1つ又は複数の仮想ディスクを作成し、ゲストオペレーティングシステム506に対して1つ又は複数の仮想ディスクを割り当てる。1つ又は複数の仮想ディスクのための1つ又は複数の仮想ディスクイメージファイルの作成がアトミック操作700の始めの段階である。仮想ディスクの割り当ては、ゲストオペレーティングシステム506に割り当てられている各仮想ディスクのための仮想ディスクイメージを含めるようにゲスト構成512を更新することによって反映され得る(メッセージp5)。ゲスト構成512のこの更新は、この例におけるアトミック操作700の第2の段階である。示されるように、これらの2つの段階は、意図されるゲストであるゲストオペレーティングシステム506以外のゲストに対して仮想ディスクを割り当てる又はアタッチし得る可能性のあるプロセス、スレッド、プログラム、又は他のタイプの実行ユニットのための段階によって中断されることなく実行され得る。
【0113】
いずれの場合でも、仮想ディスクマネージャ504は、ゲスト構成512に対する更新についてハイパーバイザ510に通知する(メッセージp6)。ハイパーバイザ510は、ゲスト構成512からの仮想ディスクイメージファイルの追加又は除去に基づいて、ゲストオペレーティングシステム506から仮想ディスクをアタッチ又はデタッチし得る(メッセージp7)。
【0114】
図5におけるアトミック操作508及び図7におけるアトミック操作700の使用により、仮想ディスクをプールに置く、又は仮想ディスクをしばらくの期間アタッチされていないままにすることを許容する現在の技術を上回る、リソース管理の向上が提供される。アトミック操作の使用により、中間者攻撃(MITM)、傍受、又は別のゲストオペレーティングシステムへのアタッチに供され得る可能性のある親なし状態の仮想ディスクが存在しないことを確実にすることができる。追加的に、アトミック操作の使用により、ブロックストレージデバイス全体のアタッチを引き起こすこともでき、これにより、使用されないままになり得る無駄な親なし状態のスペースが排除される。
【0115】
次に図8を参照すると、例示的な実施形態による、仮想ディスクを管理するための処理のフローチャートが示されている。図8におけるプロセスは、ハードウェア、ソフトウェア又はその両方に実装され得る。ソフトウェアに実装される場合、プロセスは、1つ又は複数のコンピュータシステム内の1つ又は複数のハードウェアデバイスに位置する1つ又は複数のプロセッサユニットにより動作するプログラム命令の形態を取り得る。例えば、プロセスは、図4におけるコンピュータシステム404内の仮想ディスクマネージャ406に実装され得る。
【0116】
プロセスは、ホストオペレーティングシステムに対するストレージのアタッチを検出する段階によって始まる(段階800)。プロセスは、ストレージをマウントポイントのセットにマウントする(段階802)。
【0117】
プロセスは、仮想ディスクのセットを作成し、操作のための命令が中断されることなく実行される操作において、ゲストに対して仮想ディスクのセットを割り当てる(段階804)。プロセスは、その後終了する。
【0118】
ここで図9を参照すると、例示的な実施形態による、仮想ディスクを管理するためのプロセスのフローチャートが示される。このフローチャートにおける段階は、図8における段階と共に実行され得る追加の段階の例である。
【0119】
プロセスは、ストレージをマウントする前に、仮想ディスクのセットのためのパーティションのセットを作成する(段階900)。プロセスは、ストレージをマウントする前に、仮想ディスクのセットのためのパーティションのセットにおいてファイルシステムのセットを作成し、ここで、仮想ディスクイメージファイルのセットは、仮想ディスクのセットのためのものであり、ファイルシステムのセット内に位置している(段階902)。プロセスは、その後終了する。
【0120】
図10を参照すると、例示的な実施形態による、ストレージをマウントするためのプロセスのフローチャートが示される。このフローチャートは、図8における段階802についての実装の一例である。
【0121】
プロセスは、パーティションのセットにおけるファイルシステムのセットをマウントポイントのセットにマウントする(段階1000)。プロセスは、その後終了する。
【0122】
図11において、例示的な実施形態による、アトミック操作において仮想ディスクを作成して割り当てるためのプロセスのフローチャートが示される。このフローチャートは、図8における段階804についての実装の一例である。このフローチャートにおける段階は、アトミック操作において、アトミック操作のための命令が中断されることなく実行されるように実装される。
【0123】
プロセスは、ストレージにおいて仮想ディスクイメージファイルのセットを作成し、ここで、仮想ディスクイメージファイルのセットは仮想ディスクのセットのためのものである(段階1100)。プロセスは、ゲストのためのハイパーバイザのゲスト構成を更新し、ここで、ハイパーバイザは、ゲスト構成を使用して仮想ディスクのセットをゲストにアタッチする(段階1102)。プロセスは、その後終了する。
【0124】
図12を参照すると、例示的な実施形態による、仮想ディスクを管理するための処理のフローチャートが示される。このフローチャートにおける段階は、図8の段階と共に実行され得る追加の段階の例である。
【0125】
プロセスは、ストレージのリサイズを検出する(段階1200)。プロセスは、ゲストのためのゲスト構成を更新して、仮想ディスクのセットのリサイズを反映する(段階1202)。プロセスは、その後終了する。
【0126】
次に図13を参照すると、例示的な実施形態による、仮想ディスクを管理するための処理のフローチャートが示される。このフローチャートにおける段階は、図8の段階と共に実行され得る追加の段階の例である。
【0127】
プロセスは、ストレージのリサイズを検出し、このリサイズにより、ストレージデバイスがストレージに追加される(段階1300)。プロセスは、ストレージデバイスのための仮想ディスクの新たなセットを作成し、複数のプロセッサユニットによって、新たなアトミック操作のための命令が中断されることなく実行される新たなアトミック操作において、ゲストに対して仮想ディスクの新たなセットを割り当てる(段階1302)。プロセスは、その後終了する。
【0128】
ここで図14を参照すると、例示的な実施形態による、仮想ディスクを管理するためのプロセスのフローチャートが示される。このフローチャートにおける段階は、図8の段階と共に実行され得る追加の段階の例である。
【0129】
プロセスは、ストレージのリサイズの検出し、このリサイズにより、ストレージデバイスがストレージから除去される(段階1400)。プロセスは、ストレージデバイス内に位置する複数の仮想ディスクイメージファイルを有する複数の仮想ディスクを除去する(段階1402)。
【0130】
プロセスは、ストレージのためのパーティションのセットをマウント解除する(段階1404)。プロセスは、その後終了する。
【0131】
図15において、例示的な実施形態による、仮想ディスクを管理するためのプロセスのフローチャートが示される。このフローチャートにおける段階は、図8の段階と共に実行され得る追加の段階の例である。
【0132】
プロセスは、ストレージのデタッチを検出する(段階1500)。プロセスは、ストレージのデタッチを検出したことに応答して、ゲストのためのゲスト構成を更新して、仮想ディスクのセットを除去する(段階1502)。
【0133】
プロセスは、マウントポイントのセットからストレージをマウント解除する(段階1504)。プロセスは、その後終了する。
【0134】
異なる示されている実施形態におけるフローチャート及びブロック図は、例示的な実施形態における装置及び方法のいくつかの可能な実装形態のアーキテクチャ、機能及び動作を示す。これに関して、フローチャート又はブロック図における各ブロックは、モジュール、セグメント、機能、又は動作又は段階の一部のうちの少なくとも1つを表し得る。例えば、これらのブロックのうちの1つ又は複数は、プログラム命令、ハードウェア、又はプログラム命令とハードウェアとの組み合わせとして実装され得る。ハードウェアに実装される場合、ハードウェアは、例えば、フローチャート又はブロック図における1つ又は複数の動作を実行するように製造又は構成された集積回路の形態を取り得る。プログラム命令とハードウェアとの組み合わせとして実装される場合、実装は、ファームウェアの形態を取り得る。フローチャート又はブロック図における各ブロックは、専用ハードウェアと専用ハードウェアにより動作するプログラム命令との異なる動作又は組み合わせを実行する専用ハードウェアシステムを用いて実装され得る。
【0135】
例示的な実施形態のいくつかの代替的な実装形態において、ブロックに示される1つ又は複数の機能は、図面に示される順序以外で行われ得る。例えば、いくつかの場合において、関連する機能に応じて、連続して示される2つのブロックが実質的に同時に実行されてもよく、これらのブロックが、場合によっては、逆の順序で実行されてもよい。また、フローチャート又はブロック図における示されるブロックに加え、他のブロックが追加され得る。
【0136】
ここで図16を参照すると、例示的な実施形態によるデータ処理システムのブロック図が示されている。データ処理システム1600は、図1におけるクラウドコンピューティングノード110、図1におけるパーソナルデジタルアシスタント(PDA)もしくはスマートフォン120A、デスクトップコンピュータ120B、ラップトップコンピュータ120C、及び/又は自動車コンピュータシステム120Nを実装するために使用され得る。データ処理システム1600は、図2におけるハードウェア及びソフトウェア層202内のコンピュータならびに図3におけるサーバコンピュータ304、サーバコンピュータ306及びクライアントデバイス310を実装するために使用され得る。データ処理システム1600は、図4におけるコンピュータシステム404を実装するためにも使用され得る。この例示的な例では、データ処理システム1600は、プロセッサユニット1604と、メモリ1606と、永続ストレージ1608と、通信ユニット1610と、入力/出力(I/O)ユニット1612と、ディスプレイ1614との間の通信を提供する通信フレームワーク1602を含む。この例では、通信フレームワーク1602は、バスシステムの形態を取る。
【0137】
プロセッサユニット1604は、メモリ1606へロードされ得るソフトウェア用の命令を実行するように機能する。プロセッサユニット1604は、1つ又は複数のプロセッサを含む。例えば、プロセッサユニット1604は、マルチコアプロセッサ、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、物理処理ユニット(PPU)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、又はある他の適切なタイプのプロセッサのうちの少なくとも1つから選択され得る。さらに、プロセッサユニット1604は、単一のチップ上に主プロセッサが二次プロセッサとともに存在する1つ又は複数の異種プロセッサシステムを使用して実装され得る。別の例示的な例として、プロセッサユニット1604は、単一のチップ上の同じタイプの複数のプロセッサを含む対称的なマルチプロセッサシステムであり得る。
【0138】
メモリ1606及び永続ストレージ1608は、ストレージデバイス1616の例である。ストレージデバイスは、例えば、限定されることなく、データ、機能的形式のプログラム命令又は他の適切な情報のうちの少なくとも1つ等の情報を、一時的に、永久的にのいずれか、又は一時的及び永久的の両方で格納することが可能な任意の個数のハードウェアである。これらの例示的な例において、ストレージデバイス1616は、コンピュータ可読ストレージデバイスとも称され得る。これらの例におけるメモリ1606は、例えば、ランダムアクセスメモリ又は任意の他の適切な揮発性又は不揮発性ストレージデバイスであり得る。永続ストレージ1608は、特定の実装に応じて、様々な形態を取り得る。
【0139】
例えば、永続ストレージ1608は、1つ又は複数のコンポーネント又はデバイスを含み得る。例えば、永続ストレージ1608は、ハードドライブ、ソリッドステートドライブ(SSD)、フラッシュメモリ、書き換え可能光ディスク、書き換え可能磁気テープ又は上述のもののある組み合わせであってよい。永続ストレージ1608によって使用される媒体は、取り外し可能であってもよい。例えば、取り外し可能ハードドライブが、永続ストレージ1608に使用され得る。
【0140】
これらの例示的な例における通信ユニット1610は、他のデータ処理システム又はデバイスとの通信を提供する。これらの例示的な例では、通信ユニット1610は、ネットワークインタフェースカードである。
【0141】
入力/出力ユニット1612は、データ処理システム1600に接続され得る他のデバイスとの間のデータの入力及び出力を可能にする。例えば、入力/出力ユニット1612は、キーボード、マウス又はある他の適切な入力デバイスのうちの少なくとも1つを通じて、ユーザ入力のための接続を提供し得る。さらに、入力/出力ユニット1612は、出力をプリンタへ送信し得る。ディスプレイ1614は、情報をユーザに対して表示するためのメカニズムを提供する。
【0142】
オペレーティングシステム、アプリケーション又はプログラムのうちの少なくとも1つのための命令は、通信フレームワーク1602を通じてプロセッサユニット1604と通信するストレージデバイス1616内に位置し得る。異なる実施形態のプロセスは、メモリ1606等のメモリ内に位置し得るコンピュータ実装命令を用いて、プロセッサユニット1604により実行され得る。
【0143】
これらの命令は、プロセッサユニット1604内のプロセッサにより読み取られて実行され得るプログラム命令、コンピュータ使用可能プログラム命令又はコンピュータ可読プログラム命令と称される。異なる実施形態におけるプログラム命令は、メモリ1606又は永続ストレージ1608など、異なる物理記憶媒体又はコンピュータ可読ストレージ媒体上で具現化され得る。
【0144】
プログラム命令1618は、選択的に取り外し可能であり、かつ、プロセッサユニット1604による実行のためにデータ処理システム1600上へロード又は転送され得るコンピュータ可読媒体1620上の機能的形式に位置する。これらの例示的な例では、プログラム命令1618及びコンピュータ可読媒体1620は、コンピュータプログラム製品1622を形成する。例示的な例では、コンピュータ可読媒体1620は、コンピュータ可読ストレージ媒体1624である。
【0145】
コンピュータ可読ストレージ媒体1624は、プログラム命令1618を伝搬又は伝送する媒体ではなく、プログラム命令1618を格納するために使用される物理的な又は有形のストレージデバイスである。本明細書において使用されるコンピュータ可読ストレージ媒体1624は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを通じて伝送される電気信号など、一時的な信号それ自体とは解釈されない。
【0146】
代替的に、プログラム命令1618は、コンピュータ可読信号媒体を使用してデータ処理システム1600へ転送され得る。コンピュータ可読信号媒体は、信号であり、例えば、プログラム命令1618を含む伝搬されるデータ信号であり得る。例えば、コンピュータ可読信号媒体は、電磁信号、光信号又は任意の他の適切なタイプの信号のうちの少なくとも1つであり得る。これらの信号は、無線接続、光ファイバケーブル、同軸ケーブル、ワイヤ又は任意の他の適切なタイプの接続など、接続を介して伝送され得る。
【0147】
さらに、本明細書において使用される場合、「コンピュータ可読媒体1620」は、単数又は複数であり得る。例えば、プログラム命令1618は、単一のストレージデバイス又はストレージシステムの形態のコンピュータ可読媒体1620内に位置し得る。別の例において、プログラム命令1618は、複数のデータ処理システムに分散されたコンピュータ可読媒体1620内に位置し得る。換言すれば、プログラム命令1618のうちのいくつかの命令が、1つのデータ処理システム内に位置することができる一方で、プログラム命令1618内の他の命令は、1つのデータ処理システム内に位置することができる。例えば、プログラム命令1618の一部が、サーバコンピュータにおけるコンピュータ可読媒体1620内に位置し得るが、プログラム命令1618の別の一部が、クライアントコンピュータのセットに位置するコンピュータ可読媒体1620内に位置し得る。
【0148】
データ処理システム1600用に示されている異なるコンポーネントは、異なる実施形態が実装され得る方式に対するアーキテクチャ上の限定を設けるようには意図されていない。いくつかの例示的な例において、コンポーネントのうちの1つ又は複数は、別のコンポーネントに組み込まれてもよく、そうでなければ、別のコンポーネントの一部を形成してもよい。例えば、メモリ1606又はその一部は、いくつかの例示的な例では、プロセッサユニット1604に組み込まれ得る。異なる例示的な実施形態は、データ処理システム1600用に示されているものに加えて、又はそれらの代わりにコンポーネントを含むデータ処理システムに実装され得る。図16に示される他のコンポーネントは、示される例示的な例から変更され得る。異なる実施形態は、プログラム命令1618を動作させることが可能な任意のハードウェアデバイス又はハードウェアシステムを使用して実装され得る。
【0149】
したがって、本発明の例示的な実施形態は、仮想ディスクを管理するためのコンピュータ実装方法、コンピュータシステム、及びコンピュータプログラム製品を提供する。1つの例示的な例では、複数のプロセッサユニットは、ホストオペレーティングシステムに対するストレージのアタッチを検出する。複数のプロセッサユニットは、ストレージをマウントポイントのセットにマウントする。複数のプロセッサユニットは、仮想ディスクのセットを作成し、複数のプロセッサユニットによって、操作のための命令が中断されることなく実行される操作において、ゲストに対して仮想ディスクのセットを割り当てる。結果として、アトミック操作等の、命令が中断されることなく実行される操作の使用により、仮想ディスクが、指定されたオペレーティングシステムではなく別のゲストオペレーティングシステムにアタッチされ得る可能性を低減することができる。例示的な例では、仮想ディスクの作成及びアタッチが、仮想ディスクが意図されるゲストにアタッチされる前にディスクを異なるゲストにアタッチし得るプロセスにより中断されることなく実行されるため、このリスクを低減することができる。
【0150】
異なる例示的な実施形態の説明は、例示及び説明の目的で提示されており、包括的なものとしても、開示されている形態の実施形態に限定されるようにも意図されていない。異なる例示的な例は、アクション又は動作を実行するコンポーネントを説明している。例示的な実施形態において、コンポーネントは、説明されたアクション又は動作を実行するように構成され得る。例えば、コンポーネントは、コンポーネントによって実行されるものとして例示的な例において説明されているアクション又は動作を実行する能力をコンポーネントに提供する構造のための構成又は設計を有することができる。さらに、「含む(includes)」、「含む(including)」、「有する(has)」、「含む(contains)」という用語及びその変形が本明細書において用いられる範囲において、そのような用語は、あらゆる追加の又は他の要素を除外することなく、開放型移行語としての「備える(comprises)」という用語と同様の方式で包括的なものとして意図されている。
【0151】
本発明の様々な実施形態の説明は例示を目的として提示されており、その説明が包括的であることも、又は開示された実施形態に限定されることも意図されてはいない。実施形態の全てが、例示的な例では説明されている特徴の全てを含むわけではない。さらに、異なる例示的な実施形態が、他の例示的な実施形態と比較して異なる特徴を提供し得る。当業者には、説明されている実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が明らかになろう。本明細書において使用される専門用語は、実施形態の原理、実際の応用又は市場で見られる技術に対する技術的改善を最も良好に説明し、又は、本明細書において開示される実施形態を他の当業者が理解することを可能にするように選択されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
【手続補正書】
【提出日】2024-05-15
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
仮想ディスクを管理するためのコンピュータ実装方法であって、前記コンピュータ実装方法が:
複数のプロセッサユニットによって、ホストオペレーティングシステムに対するストレージのアタッチを検出する段階;
前記複数のプロセッサユニットによって、前記ストレージをマウントポイントのセットにマウントする段階;及び
前記複数のプロセッサユニットによって、仮想ディスクのセットを作成し、前記複数のプロセッサユニットによって、操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクのセットを割り当てる段階
を備える、コンピュータ実装方法。
【請求項2】
前記複数のプロセッサユニットによって、前記ストレージをマウントする前に、前記仮想ディスクのセットのためのパーティションのセットを作成する段階;及び
前記複数のプロセッサユニットによって、前記ストレージをマウントする前に、前記仮想ディスクのセットのための前記パーティションのセットにおいてファイルシステムのセットを作成する段階、ここで仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものであり、前記ファイルシステムのセットに位置している
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記複数のプロセッサユニットによって、前記ストレージを前記マウントポイントのセットにマウントする段階が:
前記複数のプロセッサユニットによって、前記マウントポイントのセットに、前記パーティションのセットにおける前記ファイルシステムのセットをマウントする段階を含む
請求項2に記載のコンピュータ実装方法。
【請求項4】
前記操作がアトミック操作であり、前記複数のプロセッサユニットによって前記仮想ディスクのセットを作成し、前記複数のプロセッサユニットによって、前記操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクのセットを割り当てる段階が:
前記複数のプロセッサユニットによって、前記ストレージにおいて仮想ディスクイメージファイルのセットを作成する段階、ここで前記仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものである;及び
前記複数のプロセッサユニットによって、前記ゲストのためのハイパーバイザのゲスト構成を更新する段階、ここで前記ハイパーバイザは、前記ゲスト構成を使用して前記仮想ディスクのセットを前記ゲストにアタッチする
を含む、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項5】
前記複数のプロセッサユニットによって、前記ストレージのリサイズを検出する段階;及び
前記複数のプロセッサユニットによって、前記ゲストのためのゲスト構成を更新して、前記仮想ディスクのセットの前記リサイズを反映する段階
をさらに備える、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
前記複数のプロセッサユニットによって、前記ストレージのリサイズを検出する段階、ここで前記リサイズにより前記ストレージにストレージデバイスが追加される;及び
前記複数のプロセッサユニットによって、前記ストレージデバイスのための仮想ディスクの新たなセットを作成し、前記複数のプロセッサユニットによって、新たなアトミック操作のための前記命令が中断されることなく実行される前記新たなアトミック操作において、前記ゲストに対して前記仮想ディスクの新たなセットを割り当てる段階
をさらに備える、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
前記複数のプロセッサユニットによって、前記ストレージのリサイズを検出する段階、前記リサイズにより、前記ストレージからストレージデバイスが除去される;
前記複数のプロセッサユニットによって、前記ストレージデバイスに位置する複数の仮想ディスクイメージファイルを有する複数の仮想ディスクを除去する段階;及び
前記複数のプロセッサユニットによって、前記ストレージのためのパーティションのセットをマウント解除する段階
をさらに備える、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項8】
前記複数のプロセッサユニットによって、前記ストレージのデタッチを検出する段階;及び
前記複数のプロセッサユニットによって、前記ゲストのためのゲスト構成を更新して、前記ストレージの前記デタッチを検出したことに応答して前記仮想ディスクのセットを除去する段階;及び
前記複数のプロセッサユニットによって、前記マウントポイントのセットから前記ストレージをマウント解除する段階
をさらに備える、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項9】
前記ゲストが、オペレーティングシステム、ゲストオペレーティングシステム、及び仮想マシンを含む群から選択される、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項10】
複数のプロセッサユニット、ここで前記複数のプロセッサユニットは:
ホストオペレーティングシステムに対するストレージのアタッチメントを検出する手順;
前記ストレージをマウントポイントのセットにマウントする手順;及び
仮想ディスクのセットを作成し、操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクの前記セットを割り当てる手順
を行うためのプログラム命令を実行する
を備える、コンピュータシステム。
【請求項11】
前記複数のプロセッサユニットが:
前記ストレージをマウントする前に、前記仮想ディスクのセットのためのパーティションのセットを作成する手順;及び
前記ストレージをマウントする前に、前記仮想ディスクのセットのための前記パーティションのセットにおいてファイルシステムのセットを作成する手順、ここで、仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものであり、前記ファイルシステムのセットに位置している
を行うための前記プログラム命令を実行する、請求項10に記載のコンピュータシステム。
【請求項12】
前記複数のプロセッサユニットによって、前記ストレージを前記マウントポイントのセットにマウントする際に、前記複数のプロセッサユニットが:
前記パーティションのセットにおける前記ファイルシステムのセットを前記マウントポイントのセットにマウントするための前記プログラム命令を実行する
請求項11に記載のコンピュータシステム。
【請求項13】
前記操作がアトミック操作であり、前記複数のプロセッサユニットによって、前記仮想ディスクのセットを作成し、前記操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクのセットを割り当てる段階において、前記複数のプロセッサユニットが:
前記ストレージにおいて仮想ディスクイメージファイルのセットを作成する手順、ここで前記仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものである;及び
前記ゲストのためのハイパーバイザのゲスト構成を更新する手順、ここで前記ハイパーバイザは、前記ゲスト構成を使用して前記仮想ディスクのセットを前記ゲストにアタッチする
を行うための前記プログラム命令を実行する、請求項10から12のいずれか一項に記載のコンピュータシステム。
【請求項14】
前記複数のプロセッサユニットが:
前記ストレージのリサイズを検出する手順;及び
前記ゲストのためのゲスト構成を更新して、前記仮想ディスクのセットの前記リサイズを反映させる手順
を行うための前記プログラム命令を実行する、請求項10から12のいずれか一項に記載のコンピュータシステム。
【請求項15】
前記複数のプロセッサユニットが:
前記ストレージのリサイズを検出する手順、前記リサイズにより、前記ストレージにストレージデバイスが追加される;及び
前記ストレージデバイスのための仮想ディスクの新たなセットを作成し、新たなアトミック操作のための前記命令が中断されることなく実行される前記新たなアトミック操作において、前記ゲストに対して前記仮想ディスクの新たなセットを割り当てる手順
を行うための前記プログラム命令を実行する、請求項10から12のいずれか一項に記載のコンピュータシステム。
【請求項16】
前記複数のプロセッサユニットが:
前記ストレージのリサイズを検出する手順、前記リサイズにより、前記ストレージからストレージデバイスが除去される;
前記ストレージデバイスに位置する複数の仮想ディスクイメージファイルを有する複数の仮想ディスクを除去する手順;及び
前記ストレージのためのパーティションのセットをマウント解除する手順
を行うための前記プログラム命令を実行する、請求項10から12のいずれか一項に記載のコンピュータシステム。
【請求項17】
前記複数のプロセッサユニットが:
前記ストレージのデタッチを検出する手順;及び
前記ゲストのためのゲスト構成を更新して、前記ストレージの前記デタッチを検出したことに応答して前記仮想ディスクのセットを除去する手順;及び
前記ストレージを前記マウントポイントのセットからマウント解除する手順
を行うための前記プログラム命令を実行する、請求項10から12のいずれか一項に記載のコンピュータシステム。
【請求項18】
前記ゲストが、オペレーティングシステム、ゲストオペレーティングシステム、及び仮想マシンを含む群から選択される、請求項10から12のいずれか一項に記載のコンピュータシステム。
【請求項19】
仮想ディスクを管理するためのコンピュータプログラムであって、コンピュータシステムに:
複数のプロセッサユニットによって、ホストオペレーティングシステムに対するストレージのアタッチメントを検出する手順;
前記複数のプロセッサユニットによって、前記ストレージをマウントポイントのセットにマウントする手順;及び
前記複数のプロセッサユニットによって、仮想ディスクのセットを作成し、前記複数のプロセッサユニットによって、アトミック操作のための命令が中断されることなく実行される前記アトミック操作において、ゲストに対して前記仮想ディスクのセットを割り当てる手順
を実行させるためのコンピュータプログラム。
【請求項20】
前記コンピュータシステムに:
記複数のプロセッサユニットによって、前記ストレージをマウントする前に、前記仮想ディスクのセットのためのパーティションのセットを作成する手順;及び
前記複数のプロセッサユニットによって、前記ストレージをマウントする前に、前記仮想ディスクのセットのための前記パーティションのセットにおいてファイルシステムのセットを作成する手順、ここで仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものであり、前記ファイルシステムのセットに位置してい
をさらに実行させるための請求項19に記載のコンピュータプログラム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0151
【補正方法】変更
【補正の内容】
【0151】
本発明の様々な実施形態の説明は例示を目的として提示されており、その説明が包括的であることも、又は開示された実施形態に限定されることも意図されてはいない。実施形態の全てが、例示的な例では説明されている特徴の全てを含むわけではない。さらに、異なる例示的な実施形態が、他の例示的な実施形態と比較して異なる特徴を提供し得る。当業者には、説明されている実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が明らかになろう。本明細書において使用される専門用語は、実施形態の原理、実際の応用又は市場で見られる技術に対する技術的改善を最も良好に説明し、又は、本明細書において開示される実施形態を他の当業者が理解することを可能にするように選択されている
[項目1]
仮想ディスクを管理するためのコンピュータ実装方法であって、前記コンピュータ実装方法が:
複数のプロセッサユニットによって、ホストオペレーティングシステムに対するストレージのアタッチを検出する段階;
前記複数のプロセッサユニットによって、前記ストレージをマウントポイントのセットにマウントする段階;及び
前記複数のプロセッサユニットによって、仮想ディスクのセットを作成し、前記複数のプロセッサユニットによって、操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクのセットを割り当てる段階
を備える、コンピュータ実装方法。
[項目2]
前記複数のプロセッサユニットによって、前記ストレージをマウントする前に、前記仮想ディスクのセットのためのパーティションのセットを作成する段階;及び
前記複数のプロセッサユニットによって、前記ストレージをマウントする前に、前記仮想ディスクのセットのための前記パーティションのセットにおいてファイルシステムのセットを作成する段階、ここで仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものであり、前記ファイルシステムのセットに位置している
をさらに備える、項目1に記載のコンピュータ実装方法。
[項目3]
前記複数のプロセッサユニットによって、前記ストレージを前記マウントポイントのセットにマウントする段階が:
前記複数のプロセッサユニットによって、前記マウントポイントのセットに、前記パーティションのセットにおける前記ファイルシステムのセットをマウントする段階を含む
項目2に記載のコンピュータ実装方法。
[項目4]
前記操作がアトミック操作であり、前記複数のプロセッサユニットによって前記仮想ディスクのセットを作成し、前記複数のプロセッサユニットによって、前記操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクのセットを割り当てる段階が:
前記複数のプロセッサユニットによって、前記ストレージにおいて仮想ディスクイメージファイルのセットを作成する段階、ここで前記仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものである;及び
前記複数のプロセッサユニットによって、前記ゲストのためのハイパーバイザのゲスト構成を更新する段階、ここで前記ハイパーバイザは、前記ゲスト構成を使用して前記仮想ディスクのセットを前記ゲストにアタッチする
を含む、項目1に記載のコンピュータ実装方法。
[項目5]
前記複数のプロセッサユニットによって、前記ストレージのリサイズを検出する段階;及び
前記複数のプロセッサユニットによって、前記ゲストのためのゲスト構成を更新して、前記仮想ディスクのセットの前記リサイズを反映する段階
をさらに備える、項目1に記載のコンピュータ実装方法。
[項目6]
前記複数のプロセッサユニットによって、前記ストレージのリサイズを検出する段階、ここで前記リサイズにより前記ストレージにストレージデバイスが追加される;及び
前記複数のプロセッサユニットによって、前記ストレージデバイスのための仮想ディスクの新たなセットを作成し、前記複数のプロセッサユニットによって、新たなアトミック操作のための前記命令が中断されることなく実行される前記新たなアトミック操作において、前記ゲストに対して前記仮想ディスクの新たなセットを割り当てる段階
をさらに備える、項目1に記載のコンピュータ実装方法。
[項目7]
前記複数のプロセッサユニットによって、前記ストレージのリサイズを検出する段階、前記リサイズにより、前記ストレージからストレージデバイスが除去される;
前記複数のプロセッサユニットによって、前記ストレージデバイスに位置する複数の仮想ディスクイメージファイルを有する複数の仮想ディスクを除去する段階;及び
前記複数のプロセッサユニットによって、前記ストレージのためのパーティションのセットをマウント解除する段階
をさらに備える、項目1に記載のコンピュータ実装方法。
[項目8]
前記複数のプロセッサユニットによって、前記ストレージのデタッチを検出する段階;及び
前記複数のプロセッサユニットによって、前記ゲストのためのゲスト構成を更新して、前記ストレージの前記デタッチを検出したことに応答して前記仮想ディスクのセットを除去する段階;及び
前記複数のプロセッサユニットによって、前記マウントポイントのセットから前記ストレージをマウント解除する段階
をさらに備える、項目1に記載のコンピュータ実装方法。
[項目9]
前記ゲストが、オペレーティングシステム、ゲストオペレーティングシステム、及び仮想マシンを含む群から選択される、項目1に記載のコンピュータ実装方法。
[項目10]
複数のプロセッサユニット、ここで前記複数のプロセッサユニットは:
ホストオペレーティングシステムに対するストレージのアタッチメントを検出する手順;
前記ストレージをマウントポイントのセットにマウントする手順;及び
仮想ディスクのセットを作成し、操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクの前記セットを割り当てる手順
を行うためのプログラム命令を実行する
を備える、コンピュータシステム。
[項目11]
前記複数のプロセッサユニットが:
前記ストレージをマウントする前に、前記仮想ディスクのセットのためのパーティションのセットを作成する手順;及び
前記ストレージをマウントする前に、前記仮想ディスクのセットのための前記パーティションのセットにおいてファイルシステムのセットを作成する手順、ここで、仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものであり、前記ファイルシステムのセットに位置している
を行うための前記プログラム命令を実行する、項目10に記載のコンピュータシステム。
[項目12]
前記複数のプロセッサユニットによって、前記ストレージを前記マウントポイントのセットにマウントする際に、前記複数のプロセッサユニットが:
前記パーティションのセットにおける前記ファイルシステムのセットを前記マウントポイントのセットにマウントするための前記プログラム命令を実行する
項目11に記載のコンピュータシステム。
[項目13]
前記操作がアトミック操作であり、前記複数のプロセッサユニットによって、前記仮想ディスクのセットを作成し、前記操作のための命令が中断されることなく実行される前記操作において、ゲストに対して前記仮想ディスクのセットを割り当てる段階において、前記複数のプロセッサユニットが:
前記ストレージにおいて仮想ディスクイメージファイルのセットを作成する手順、ここで前記仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものである;及び
前記ゲストのためのハイパーバイザのゲスト構成を更新する手順、ここで前記ハイパーバイザは、前記ゲスト構成を使用して前記仮想ディスクのセットを前記ゲストにアタッチする
を行うための前記プログラム命令を実行する、項目10に記載のコンピュータシステム。
[項目14]
前記複数のプロセッサユニットが:
前記ストレージのリサイズを検出する手順;及び
前記ゲストのためのゲスト構成を更新して、前記仮想ディスクのセットの前記リサイズを反映させる手順
を行うための前記プログラム命令を実行する、項目10に記載のコンピュータシステム。
[項目15]
前記複数のプロセッサユニットが:
前記ストレージのリサイズを検出する手順、前記リサイズにより、前記ストレージにストレージデバイスが追加される;及び
前記ストレージデバイスのための仮想ディスクの新たなセットを作成し、新たなアトミック操作のための前記命令が中断されることなく実行される前記新たなアトミック操作において、前記ゲストに対して前記仮想ディスクの新たなセットを割り当てる手順
を行うための前記プログラム命令を実行する、項目10に記載のコンピュータシステム。
[項目16]
前記複数のプロセッサユニットが:
前記ストレージのリサイズを検出する手順、前記リサイズにより、前記ストレージからストレージデバイスが除去される;
前記ストレージデバイスに位置する複数の仮想ディスクイメージファイルを有する複数の仮想ディスクを除去する手順;及び
前記ストレージのためのパーティションのセットをマウント解除する手順
を行うための前記プログラム命令を実行する、項目10に記載のコンピュータシステム。
[項目17]
前記複数のプロセッサユニットが:
前記ストレージのデタッチを検出する手順;及び
前記ゲストのためのゲスト構成を更新して、前記ストレージの前記デタッチを検出したことに応答して前記仮想ディスクのセットを除去する手順;及び
前記ストレージを前記マウントポイントのセットからマウント解除する手順
を行うための前記プログラム命令を実行する、項目10に記載のコンピュータシステム。
[項目18]
前記ゲストが、オペレーティングシステム、ゲストオペレーティングシステム、及び仮想マシンを含む群から選択される、項目10に記載のコンピュータシステム。
[項目19]
仮想ディスクを管理するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品が、それで具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を備え、前記プログラム命令が、コンピュータシステムに:
複数のプロセッサユニットによって、ホストオペレーティングシステムに対するストレージのアタッチメントを検出し;
前記複数のプロセッサユニットによって、前記ストレージをマウントポイントのセットにマウントし;及び
前記複数のプロセッサユニットによって、仮想ディスクのセットを作成し、前記複数のプロセッサユニットによって、アトミック操作のための命令が中断されることなく実行される前記アトミック操作において、ゲストに対して前記仮想ディスクのセットを割り当てる
方法を実行させるために前記コンピュータシステムによって実行可能である、コンピュータプログラム製品。
[項目20]
前記複数のプロセッサユニットによって、前記ストレージをマウントする前に、前記仮想ディスクのセットのためのパーティションのセットを作成する段階;及び
前記複数のプロセッサユニットによって、前記ストレージをマウントする前に、前記仮想ディスクのセットのための前記パーティションのセットにおいてファイルシステムのセットを作成する段階、ここで仮想ディスクイメージファイルのセットは、前記仮想ディスクのセットのためのものであり、前記ファイルシステムのセットに位置している
をさらに備える、項目19に記載のコンピュータプログラム製品。
【国際調査報告】