(57)【要約】  本願では、システムイメージ及び受信される拡張要求内に含まれる標的ディスクボリューム値に従って仮想ディスクファイルを作成すること、仮想ディスクファイルを物理ホストに組み込み、仮想ディスクを生成すること、仮想ディスクのパーティション情報を読み出すこと、仮想ディスクの拡張されるパーティションを削除し、拡張されるパーティションのパーティションボリューム値及び拡張値に従って新たなパーティションを作成すること、及び仮想ディスクのファイルシステムを読み出し、新たなパーティションに適合するようにファイルシステムを拡張することを含む、仮想ディスク拡張方法を開示する。仮想ディスク拡張方法は物理ホストに基づいて実現され、Ｉ／Ｏパスを短くし、Ｉ／Ｏ効率を改善し、更に仮想ディスク拡張プロセスの間、物理ホスト上で仮想マシンを始動する必要はなく、拡張は仮想マシンの始動前に実行され、それにより技術的な複雑性及び結合が減る。
2019532394.tif 000002
【特許請求の範囲】
【請求項１】
仮想ディスク拡張方法であって、
システムイメージ及び受信される拡張要求内に含まれる標的ディスクボリューム値に従って仮想ディスクファイルを作成すること、
前記仮想ディスクファイルを物理ホストに組み込み、仮想ディスクを生成すること、
前記仮想ディスクのパーティション情報を読み出すこと、
前記仮想ディスクの拡張されるパーティションを削除し、前記拡張されるパーティションのパーティションボリューム値及び拡張値に従って新たなパーティションを作成すること、及び
前記仮想ディスクのファイルシステムを読み出し、前記新たなパーティションに適合するように前記ファイルシステムを拡張すること
を含む、仮想ディスク拡張方法。
【請求項２】
前記拡張要求を受信すること、及び
前記拡張要求に従って、前記システムイメージから前記拡張要求とマッチするシステムイメージを選択すること
を更に含む、請求項１に記載の仮想ディスク拡張方法。
【請求項３】
前記拡張要求がオペレーティングシステムの種類を含み、前記拡張要求とマッチする前記システムイメージが、前記拡張要求内に含まれる前記オペレーティングシステムの種類と合致するオペレーティングシステムの種類を有するシステムイメージを含む、請求項２に記載の仮想ディスク拡張方法。
【請求項４】
前記拡張要求とマッチする前記システムイメージが、
前記標的ディスクボリューム値未満の仮想ディスクのボリューム値を有するシステムイメージ、又は閾値範囲内にある、前記対応する仮想ディスクの前記ボリューム値と前記標的ディスクボリューム値との間の差分値を有するシステムイメージを含む、
請求項２に記載の仮想ディスク拡張方法。
【請求項５】
前記仮想ディスクファイルを物理ホストに組み込むことが、組込インタフェースを呼び出すことによって実現され、前記組込インタフェースはＳＤＫによって提供され、前記ＳＤＫによってカプセル化される仮想化プラットフォームのそれぞれの組込ツールが、仮想ディスクファイルを組み込むために前記組込インタフェースを介して使用され、前記仮想化プラットフォームがＸｅｎ及びＫＶＭを含む、請求項１〜４の何れか一項に記載の仮想ディスク拡張方法。
【請求項６】
前記仮想ディスクをクリーニングするためにクリーニングインタフェースを呼び出すこと
を更に含み、
前記クリーニングインタフェースは前記ＳＤＫによって提供され、前記仮想ディスクをクリーニングするために、前記ＳＤＫによってカプセル化される前記仮想化プラットフォームのそれぞれのクリーニングツールが、前記クリーニングインタフェースを介して使用される、
請求項５に記載の仮想ディスク拡張方法。
【請求項７】
前記仮想ディスクのパーティション情報を読み出すことが、
前記仮想ディスクのパーティション情報として前記仮想ディスクファイル内に記録されたパーティション情報を取得するためのパーティション取得インタフェースを呼び出すこと
を更に含み、
前記パーティション取得インタフェースはＳＤＫによって提供され、前記ＳＤＫによってカプセル化されるパーティションツールによって提供されるパーティション情報取得コマンドが、前記パーティション取得インタフェースを介して使用される、
請求項１〜４の何れか一項に記載の仮想ディスク拡張方法。
【請求項８】
前記パーティション情報が、
パーティションの数、パーティション識別情報、開始セクタ位置情報、終了セクタ位置情報、フラグ、及びパーティションの種類
のうちの少なくとも１つを含む、請求項７に記載の仮想ディスク拡張方法。
【請求項９】
前記拡張値が、前記標的ディスクボリューム値と、前記システムイメージに従って作成される前記仮想ディスクのディスクボリューム値との間の差分値である、請求項８に記載の仮想ディスク拡張方法。
【請求項１０】
前記パーティションボリューム値が、前記開始セクタ位置情報及び前記終了セクタ位置情報に従って得られる、請求項８又は９に記載の仮想ディスク拡張方法。
【請求項１１】
前記仮想ディスクのパーティションが拡張条件を満たすかどうかを前記パーティション情報に従って判定し、前記仮想ディスクの前記パーティションが前記拡張条件を満たす場合は次のステップを実行すること
を更に含む、請求項８〜１０の何れか一項に記載の仮想ディスク拡張方法。
【請求項１２】
前記拡張条件が、
前記拡張されるパーティションの前記パーティションボリューム値が前記標的ディスクボリューム値以上であること、及び／又は前記仮想ディスクの前記パーティションの種類が拡張をサポートしていること
を含む、請求項１１に記載の仮想ディスク拡張方法。
【請求項１３】
前記仮想ディスクの拡張されるパーティションを削除し、前記拡張されるパーティションのパーティションボリューム値及び拡張値に従って新たなパーティションを作成することが、
前記拡張されるパーティションを前記仮想ディスクのパーティションから選択し、前記拡張されるパーティションに対応するパーティション情報を記憶することと、
前記拡張されるパーティションを削除することと、
前記記憶したパーティション情報、前記拡張されるパーティションの前記パーティションボリューム値、及び前記拡張値に従って前記新たなパーティションを作成することと、
前記記憶したパーティション情報に従って前記新たなパーティションを設定することと
を含む、請求項８〜１２の何れか一項に記載の仮想ディスク拡張方法。
【請求項１４】
前記拡張されるパーティションのパーティション識別情報が、前記新たなパーティションのパーティション識別情報、フラグ、及び／又はパーティションの種類と合致している、請求項１３に記載の仮想ディスク拡張方法。
【請求項１５】
前記拡張されるパーティションの開始セクタ位置情報が、前記新たなパーティションの開始セクタ位置情報と合致しており、前記拡張されるパーティションの前記開始セクタ位置情報及び前記拡張値に従って、前記新たなパーティションの終了セクタ位置情報が得られる、請求項１３又は１４に記載の仮想ディスク拡張方法。
【請求項１６】
前記拡張されるパーティションを削除することが、
前記拡張されるパーティションを前記仮想ディスクファイルから削除するためにパーティション削除インタフェースを呼び出すことを更に含み、前記パーティション削除インタフェースは前記ＳＤＫによって提供され、前記パーティションツールによって提供されるパーティション削除コマンドが、前記パーティション削除インタフェースを介して使用される、
請求項１３〜１５の何れか一項に記載の仮想ディスク拡張方法。
【請求項１７】
前記新たなパーティションを作成することが、
前記仮想ディスクファイル内に前記新たなパーティションを作成するためにパーティション作成インタフェースを呼び出すことを更に含み、前記パーティション作成インタフェースは前記ＳＤＫによって提供され、前記パーティションツールによって提供されるパーティション作成コマンドが、前記パーティション作成インタフェースを介して使用される、
請求項１３〜１６の何れか一項に記載の仮想ディスク拡張方法。
【請求項１８】
前記記憶したパーティション情報に従って前記新たなパーティションを設定することが、
前記記憶したパーティション情報に従って前記仮想ディスクファイル内に前記新たなパーティションを設定するためにパーティション設定インタフェースを呼び出すことを更に含み、前記パーティション設定インタフェースは前記ＳＤＫによって提供され、前記パーティションツールによって提供されるパーティション設定コマンドが、前記パーティション設定インタフェースを介して使用される、
請求項１３〜１７の何れか一項に記載の仮想ディスク拡張方法。
【請求項１９】
前記仮想ディスクのファイルシステムを読み出し、前記新たなパーティションに適合するように前記ファイルシステムを拡張することが、
前記システムイメージから前記仮想ディスクのファイルシステムを読み出すこと、及び
前記新たなパーティションに従って前記ファイルシステムを拡張するためにファイルシステム拡張インタフェースを呼び出すこと
を含み、
前記ファイルシステム拡張インタフェースは前記ＳＤＫによって提供され、前記ＳＤＫによってカプセル化されるファイルシステムツールセットの拡張ツールが、前記ファイルシステム拡張インタフェースを介して使用される、
請求項８〜１８の何れか一項に記載の仮想ディスク拡張方法。
【請求項２０】
前記拡張されるパーティションのパーティションの種類を参照して、前記ファイルシステムが有効かどうかを確認するためにファイルシステム確認インタフェースを呼び出し、前記ファイルシステムが有効な場合は次のステップを実行すること
を更に含み、
前記ファイルシステム確認インタフェースは前記ＳＤＫによって提供され、前記ＳＤＫによってカプセル化されるファイルシステムツールセットの確認ツールが、前記ファイルシステム確認インタフェースを介して使用される、
請求項１９に記載の仮想ディスク拡張方法。
【請求項２１】
前記ファイルシステムが無効な場合は以下のサブステップ：
前記ファイルシステムを修復するためにファイルシステム修復インタフェースを呼び出すこと、及び
前記拡張されるパーティションのパーティションの種類を参照して、前記ファイルシステムが修復されたかどうかを確認するために前記ファイルシステム確認インタフェースを呼び出し、前記ファイルシステムが修復された場合は前記新たなパーティションに従って前記ファイルシステムを拡張するためにファイルシステム拡張インタフェースを呼び出すサブステップを実行すること
を実行し、
前記ファイルシステム修復インタフェースは前記ＳＤＫによって提供され、前記ＳＤＫによってカプセル化されるファイルシステムツールセットの修復ツールが、前記ファイルシステム修復インタフェースを介して使用される、
請求項２０に記載の仮想ディスク拡張方法。
【請求項２２】
前記拡張されるパーティションのパーティションの種類を参照して、前記ファイルシステムが有効かどうかを確認するために前記ファイルシステム確認インタフェースを呼び出し、前記ファイルシステムが無効な場合は拡張失敗のリマインド情報を送信すること
を更に含む、請求項１９〜２１の何れか一項に記載の仮想ディスク拡張方法。
【請求項２３】
システムイメージ及び受信される拡張要求内に含まれる標的ディスクボリューム値に従って仮想ディスクファイルを作成するための仮想ディスクファイル作成ユニットと、
前記仮想ディスクファイルを物理ホストに組み込み、仮想ディスクを生成するための仮想ディスク生成ユニットと、
前記仮想ディスクのパーティション情報を読み出すためのパーティション情報読出ユニットと、
前記仮想ディスクの拡張されるパーティションを削除し、前記拡張されるパーティションのパーティションボリューム値及び拡張値に従って新たなパーティションを作成するためのパーティション拡張ユニットと、
前記仮想ディスクのファイルシステムを読み出し、前記新たなパーティションに適合するように前記ファイルシステムを拡張するためのファイルシステム拡張ユニットと
を含む、仮想ディスク拡張機器。
【請求項２４】
前記拡張要求を受信するための拡張要求受信ユニット、及び
前記拡張要求に従って、前記システムイメージから前記拡張要求とマッチするシステムイメージを選択するためのシステムイメージ選択ユニット
を更に含む、請求項２３に記載の仮想ディスク拡張機器。
【請求項２５】
前記仮想ディスク生成ユニットが組込インタフェースを呼び出すことによって実現され、
前記組込インタフェースはＳＤＫによって提供され、前記ＳＤＫによってカプセル化される仮想化プラットフォームのそれぞれの組込ツールが、仮想ディスクファイルを組み込むために前記組込インタフェースを介して使用され、前記仮想化プラットフォームがＸｅｎ及びＫＶＭを含む、
請求項２３又は２４に記載の仮想ディスク拡張機器。
【請求項２６】
前記仮想ディスクをクリーニングするためにクリーニングインタフェースを呼び出すための仮想ディスククリーニングユニットを更に含み、
前記クリーニングインタフェースは前記ＳＤＫによって提供され、前記ＳＤＫによってカプセル化される前記仮想化プラットフォームのそれぞれのクリーニングツールが、前記仮想ディスクをクリーニングするために前記クリーニングインタフェースを介して使用される、
請求項２５に記載の仮想ディスク拡張機器。
【請求項２７】
前記仮想ディスクのパーティション情報として前記仮想ディスクファイル内に記録されたパーティション情報を取得するためのパーティション取得インタフェースを呼び出すために前記パーティション情報読出ユニットが更に使用され、
前記パーティション取得インタフェースはＳＤＫによって提供され、前記ＳＤＫによってカプセル化されるパーティションツールによって提供されるパーティション情報取得コマンドが、前記パーティション取得インタフェースを介して使用される、
請求項２３〜２６の何れか一項に記載の仮想ディスク拡張機器。
【請求項２８】
仮想ディスク拡張方法を仮想ディスク拡張機器に実行させるために前記機器の少なくとも１個のプロセッサによって実行可能な１組の命令を記憶する非一時的コンピュータ可読媒体であって、前記方法が
システムイメージ及び受信される拡張要求内に含まれる標的ディスクボリューム値に従って仮想ディスクファイルを作成すること、
前記仮想ディスクファイルを物理ホストに組み込み、仮想ディスクを生成すること、
前記仮想ディスクのパーティション情報を読み出すこと、
前記仮想ディスクの拡張されるパーティションを削除し、前記拡張されるパーティションのパーティションボリューム値及び拡張値に従って新たなパーティションを作成すること、及び
前記仮想ディスクのファイルシステムを読み出し、前記新たなパーティションに適合するように前記ファイルシステムを拡張すること
を含む、非一時的コンピュータ可読媒体。
【請求項２９】
前記１組の命令は、
前記拡張要求を受信すること、及び
前記拡張要求に従って、前記システムイメージから前記拡張要求とマッチするシステムイメージを選択すること
を前記機器に更に実行させるために前記機器の前記少なくとも１個のプロセッサによって実行可能である、請求項２８に記載の非一時的コンピュータ可読媒体。
【請求項３０】
前記拡張要求がオペレーティングシステムの種類を含み、前記拡張要求とマッチする前記システムイメージが、前記拡張要求内に含まれる前記オペレーティングシステムの種類と合致するオペレーティングシステムの種類を有するシステムイメージを含む、請求項２９に記載の非一時的コンピュータ可読媒体。
【請求項３１】
前記拡張要求とマッチする前記システムイメージが、
前記標的ディスクボリューム値未満の仮想ディスクのボリューム値を有するシステムイメージ、又は閾値範囲内にある、前記対応する仮想ディスクの前記ボリューム値と前記標的ディスクボリューム値との間の差分値を有するシステムイメージ
を含む、請求項２９又は３０に記載の非一時的コンピュータ可読媒体。
【請求項３２】
前記１組の命令は、
組込インタフェースを呼び出すことであって、前記組込インタフェースはＳＤＫによって提供され、前記ＳＤＫによってカプセル化される仮想化プラットフォームのそれぞれの組込ツールが、仮想ディスクファイルを組み込むために前記組込インタフェースを介して使用され、前記仮想化プラットフォームがＸｅｎ及びＫＶＭを含む、呼び出すこと
を前記機器に更に実行させるために前記機器の前記少なくとも１個のプロセッサによって実行可能である、
請求項２８〜３１の何れか一項に記載の非一時的コンピュータ可読媒体。
【請求項３３】
前記１組の命令は、
前記仮想ディスクをクリーニングするためにクリーニングインタフェースを呼び出すこと
を前記機器に更に実行させるために前記機器の前記少なくとも１個のプロセッサによって実行可能であり、
前記クリーニングインタフェースは前記ＳＤＫによって提供され、前記ＳＤＫによってカプセル化される前記仮想化プラットフォームのそれぞれのクリーニングツールが、前記仮想ディスクをクリーニングするために前記クリーニングインタフェースを介して使用される、
請求項３２に記載の非一時的コンピュータ可読媒体。
【請求項３４】
前記１組の命令は、
前記仮想ディスクのパーティション情報として前記仮想ディスクファイル内に記録されたパーティション情報を取得するためのパーティション取得インタフェースを呼び出すこと
を前記機器に更に実行させるために前記機器の前記少なくとも１個のプロセッサによって実行可能であり、
前記パーティション取得インタフェースはＳＤＫによって提供され、前記ＳＤＫによってカプセル化されるパーティションツールによって提供されるパーティション情報取得コマンドが前記パーティション取得インタフェースを介して使用される、
請求項２８〜３１の何れか一項に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[1]  本開示は、２０１６年８月３０日に出願され、その全体を本明細書に援用する中国特許出願第２０１６１０７６６８５５．４号の優先権の利益を主張する。
【０００２】
技術分野
[2]  本開示は仮想化の技術分野に関し、具体的には仮想ディスク拡張方法に関する。更に、本開示は仮想ディスク拡張機器及び電子装置に関する。
【背景技術】
【０００３】
背景
[3]  「elastic compute cloud」では、クラウドプロバイダが様々なオペレーティングシステムプラットフォームのための複数のシステムイメージを提供する。実際のアプリケーションでは、提供されるシステムイメージは仮想ディスク及び仮想マシン（ＶＭ）を作成するために使用される。最後には、オペレーティングシステム（例えばGuestOS）が仮想マシンにロードされる。クラウドプロバイダにとって仮想ディスクのボリューム値の範囲は非常に大きい。例えば、仮想ディスクは１００ギガバイト（Ｇ）単位から１０テラバイト（Ｔ）単位、更には１００Ｔ単位含み得る。しかしクラウドプロバイダによって提供されるシステムイメージの数は限られており、従ってこれらのシステムイメージに基づいて作成される仮想ディスクのボリューム値も限られている。更にクラウドプロバイダは一定のボリューム値を有する１つ又は複数のシステムイメージしか提供することができない。しかし実際の応用では利用者は様々なサービス需要を有し、異なる構成を有する様々なオペレーティングシステム又は仮想マシン（例えば様々なボリューム値を有する仮想ディスク）を選択し得る。これらの異なる構成はクラウドプロバイダにより高い要件を課す可能性がある。例えば、利用者によって選択される仮想ディスクのボリューム値がクラウドプロバイダによって提供される仮想ディスクのボリューム値を上回る場合、利用者の需要を満たすために仮想ディスクを拡張することができる。
【０００４】
[4]  或る技法によれば、仮想ディスクの拡張は、仮想マシンの仮想ディスクに対応するシステムイメージにアクセスしてそれを修正するツールライブラリ（例えばLibguestfs）を使用することによって実現される。例えば、システムイメージに基づいて作成される仮想ディスクのボリュームを上回るボリュームを利用者が選択する場合、クラウドプロバイダによって提供される固定ボリュームを有するシステムイメージに基づいて仮想ディスクが作成される。仮想ディスクが作成された後、仮想マシンが始動され、仮想マシン内でLibguestfsベースのサービスが稼働される。利用者の拡張要求が物理ホストから仮想マシン上で実行されるオペレーティングシステムにソケット式に送信される。仮想ディスクの拡張を実現するために、仮想ディスクのパーティショニング及びファイルシステムの拡張がオペレーティングシステム内で実行される。
【０００５】
[5]  しかし、上記の仮想ディスク拡張方法は低い実現可能性及び高い技術的複雑性を有する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
概要
[6]  本開示の実施形態は、低い実現可能性及び高い技術的複雑性の問題に対処するための仮想ディスク拡張方法を提供する。
【０００７】
[7]  更に本開示の実施形態は、仮想ディスク拡張機器及び電子装置を提供する。
【課題を解決するための手段】
【０００８】
[8]  本開示の実施形態は、予め設定されたシステムイメージ及び受信される拡張要求内に含まれる標的ディスクボリューム値に従って仮想ディスクファイルを作成すること、仮想ディスクファイルを物理ホストに組み込み、仮想ディスクファイルに対応する仮想ディスクを生成すること、仮想ディスクのパーティション情報を読み出すこと、仮想ディスクの拡張されるパーティションを削除し、拡張されるパーティションのパーティションボリューム値及び拡張値に従って新たなパーティションを作成すること、及び仮想ディスクのファイルシステムを読み出し、新たなパーティションに適合するようにファイルシステムを拡張することを含む、仮想ディスク拡張方法を提供する。
【０００９】
[9]  一部の実施形態では、仮想ディスク拡張方法が拡張要求を受信することを更に含む。
【００１０】
[10]  一部の実施形態では、仮想ディスク拡張方法が、拡張要求に従って、予め設定されたシステムイメージから拡張要求とマッチするシステムイメージを選択することを更に含む。
【００１１】
[11]  一部の実施形態では、拡張要求がオペレーティングシステムの種類を含み、拡張要求とマッチするシステムイメージが、そのオペレーティングシステムの種類を有するシステムイメージを含む。
【００１２】
[12]  一部の実施形態では、拡張要求とマッチするシステムイメージが、標的ディスクボリューム値未満の仮想ディスクのボリューム値を有するシステムイメージ、又は予め設定された閾値範囲内にある、仮想ディスクのボリューム値と標的ディスクボリューム値との間の差分値を有するシステムイメージを含む。
【００１３】
[13]  一部の実施形態では、仮想ディスクファイルを物理ホストに組み込むことが、組込インタフェースを呼び出すことによって実現され、組込インタフェースはソフトウェア開発キット（ＳＤＫ）によって提供され、ＳＤＫによってカプセル化される仮想化プラットフォームのそれぞれの組込ツールが、仮想ディスクファイルを組み込むために組込インタフェースを介して使用され、仮想化プラットフォームがＸｅｎ及びＫＶＭを含む。
【００１４】
[14]  一部の実施形態では、仮想ディスク拡張方法が、仮想ディスクをクリーニングするためにクリーニングインタフェースを呼び出すことを更に含み、クリーニングインタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化される仮想化プラットフォームのそれぞれのクリーニングツールが、仮想ディスクをクリーニングするためにクリーニングインタフェースを介して使用される。
【００１５】
[15]  一部の実施形態では、仮想ディスクのパーティション情報を読み出すことが、仮想ディスクのパーティション情報として仮想ディスクファイル内に記録されたパーティション情報を取得するためのパーティション取得インタフェースを呼び出すことを更に含み、パーティション取得インタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化されるパーティションツールによって提供されるパーティション情報取得コマンドが、パーティション取得インタフェースを介して使用される。
【００１６】
[16]  一部の実施形態では、パーティション情報が、パーティションの数、パーティション識別情報、開始セクタ位置情報、終了セクタ位置情報、フラグ、及びパーティションの種類のうちの少なくとも１つを含む。
【００１７】
[17]  一部の実施形態では、拡張値が、標的ディスクボリューム値とシステムイメージに従って作成される仮想ディスクのディスクボリューム値との間の差分値である。
【００１８】
[18]  一部の実施形態では、パーティションボリューム値が、開始セクタ位置情報及び終了セクタ位置情報に従って得られる。
【００１９】
[19]  一部の実施形態では、仮想ディスク拡張方法が、仮想ディスクのパーティションが拡張条件を満たすかどうかをパーティション情報に従って判定し、仮想ディスクのパーティションが拡張条件を満たす場合は次のステップを実行することを更に含む。
【００２０】
[20]  一部の実施形態では、拡張条件が、拡張されるパーティションのパーティションボリューム値が標的ディスクボリューム値以上であること、及び／又は仮想ディスクのパーティションの種類が拡張をサポートしていることを含む。
【００２１】
[21]  一部の実施形態では、仮想ディスクの拡張されるパーティションを削除し、拡張されるパーティションのパーティションボリューム値及び拡張値に従って新たなパーティションを作成することが、拡張されるパーティションを仮想ディスクのパーティションから選択し、拡張されるパーティションに対応するパーティション情報を記憶することと、拡張されるパーティションを削除することと、記憶したパーティション情報、拡張されるパーティションのパーティションボリューム値、及び拡張値に従って新たなパーティションを作成することと、記憶したパーティション情報に従って新たなパーティションを設定することとを含む。
【００２２】
[22]  一部の実施形態では、拡張されるパーティションのパーティション識別情報が、新たなパーティションのパーティション識別情報、フラグ、及び／又はパーティションの種類と合致している。
【００２３】
[23]  一部の実施形態では、拡張されるパーティションの開始セクタ位置情報が、新たなパーティションの開始セクタ位置情報と合致しており、拡張されるパーティションの開始セクタ位置情報及び拡張値に従って、新たなパーティションの終了セクタ位置情報が得られる。
【００２４】
[24]  一部の実施形態では、拡張されるパーティションを削除することが、拡張されるパーティションを仮想ディスクファイルから削除するためにパーティション削除インタフェースを呼び出すことを更に含み、パーティション削除インタフェースはＳＤＫによって提供され、パーティションツールによって提供されるパーティション削除コマンドが、パーティション削除インタフェースを介して使用される。
【００２５】
[25]  一部の実施形態では、新たなパーティションを作成することが、仮想ディスクファイル内に新たなパーティションを作成するために予め設定されたパーティション作成インタフェースを呼び出すことを更に含み、パーティション作成インタフェースはＳＤＫによって提供され、パーティションツールによって提供されるパーティション作成コマンドが、パーティション作成インタフェースを介して使用される。
【００２６】
[26]  一部の実施形態では、記憶したパーティション情報に従って新たなパーティションを設定することが、記憶したパーティション情報に従って仮想ディスクファイル内に新たなパーティションを設定するために予め設定されたパーティション設定インタフェースを呼び出すことを更に含み、パーティション設定インタフェースはＳＤＫによって提供され、パーティションツールによって提供されるパーティション設定コマンドが、パーティション設定インタフェースを介して使用される。
【００２７】
[27]  一部の実施形態では、仮想ディスクのファイルシステムを読み出し、新たなパーティションに適合するようにファイルシステムを拡張することが、システムイメージから仮想ディスクのファイルシステムを読み出すこと、及び新たなパーティションに従ってファイルシステムを拡張するためにファイルシステム拡張インタフェースを呼び出すことを更に含み、ファイルシステム拡張インタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化されるファイルシステムツールセットの拡張ツールが、ファイルシステム拡張インタフェースを介して使用される。
【００２８】
[28]  一部の実施形態では、仮想ディスク拡張方法が、拡張されるパーティションのパーティションの種類に従って、ファイルシステムが有効かどうかを確認するためにファイルシステム確認インタフェースを呼び出し、ファイルシステムが有効な場合は次のステップを実行することを更に含み、ファイルシステム確認インタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化されるファイルシステムツールセットの確認ツールが、ファイルシステム確認インタフェースを介して使用される。
【００２９】
[29]  一部の実施形態では、ファイルシステムが無効な場合、仮想ディスク拡張方法が、ファイルシステムを修復するためにファイルシステム修復インタフェースを呼び出すこと、及び拡張されるパーティションのパーティションの種類に従って、ファイルシステムが修復されたかどうかを確認するためにファイルシステム確認インタフェースを呼び出し、ファイルシステムが修復された場合は、新たなパーティションに従ってファイルシステムを拡張するためにファイルシステム拡張インタフェースを呼び出すことを更に含み、ファイルシステム修復インタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化されるファイルシステムツールセットの修復ツールが、ファイルシステム修復インタフェースを介して使用される。
【００３０】
[30]  一部の実施形態では、新たなパーティションに従ってファイルシステムを拡張するためにファイルシステム拡張インタフェースを呼び出すサブステップの実行後、仮想ディスク拡張方法は、拡張されるパーティションのパーティションの種類に従って、ファイルシステムが有効かどうかを確認するためにファイルシステム確認インタフェースを呼び出し、ファイルシステムが無効な場合は拡張失敗のリマインド情報を送信することを更に含む。
【００３１】
[31]  本開示の実施形態は、予め設定されたシステムイメージ及び受信される拡張要求内に含まれる標的ディスクボリューム値に従って仮想ディスクファイルを作成するための仮想ディスクファイル作成ユニットと、仮想ディスクファイルを物理ホストに組み込み、対応する仮想ディスクを生成するための仮想ディスク生成ユニットと、仮想ディスクのパーティション情報を読み出すためのパーティション情報読出ユニットと、仮想ディスクの拡張されるパーティションを削除し、拡張されるパーティションのパーティションボリューム値及び拡張値に従って新たなパーティションを作成するためのパーティション拡張ユニットと、仮想ディスクのファイルシステムを読み出し、新たなパーティションに適合するようにファイルシステムを拡張するためのファイルシステム拡張ユニットとを含む、仮想ディスク拡張機器を更に提供する。
【００３２】
[32]  任意選択的に、仮想ディスク拡張機器が、拡張要求を受信するための拡張要求受信ユニットを含む。
【００３３】
[33]  任意選択的に、仮想ディスク拡張機器が、拡張要求に従って、予め設定されたシステムイメージから拡張要求とマッチするシステムイメージを選択するためのシステムイメージ選択ユニットを含む。
【００３４】
[34]  任意選択的に、仮想ディスク生成ユニットが、予め設定された組込インタフェースを呼び出すことによって実現され、組込インタフェースは予め設定されたＳＤＫによって提供され、ＳＤＫによってカプセル化される仮想化プラットフォームのそれぞれの組込ツールが、仮想ディスクファイルの組み込みを実現するために組込インタフェースを介して使用され、仮想化プラットフォームがＸｅｎ及びＫＶＭを含む。
【００３５】
[35]  任意選択的に、仮想ディスク拡張機器が、仮想ディスクをクリーニングするために予め設定されたクリーニングインタフェースを呼び出すための仮想ディスククリーニングユニットを含み、クリーニングインタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化される仮想化プラットフォームのそれぞれのクリーニングツールが、仮想ディスクをクリーニングするためにクリーニングインタフェースを介して使用される。
【００３６】
[36]  任意選択的に、仮想ディスクのパーティション情報として仮想ディスクファイル内に記録されたパーティション情報を取得するために予め設定されたパーティション取得インタフェースを呼び出すためのパーティション情報読出ユニットが更に使用され、パーティション取得インタフェースは予め設定されたＳＤＫによって提供され、ＳＤＫによってカプセル化されるパーティションツールによって提供されるパーティション情報取得コマンドが、パーティション取得インタフェースを介して使用される。
【００３７】
[37]  任意選択的に、パーティション情報が、パーティションの数、パーティション識別情報、開始セクタ位置情報、終了セクタ位置情報、フラグ、及びパーティションの種類を含む。
【００３８】
[38]  任意選択的に、仮想ディスク拡張機器が、仮想ディスクのパーティションが拡張条件を満たすかどうかをパーティション情報に従って判定し、仮想ディスクのパーティションが拡張条件を満たす場合はパーティション拡張ユニットを実行するための拡張判定ユニットを含む。
【００３９】
[39]  任意選択的に、パーティション拡張ユニットが、拡張されるパーティションを仮想ディスクのパーティションから選択し、拡張されるパーティションに対応するパーティション情報を記憶するための拡張パーティション選択サブユニットと、拡張されるパーティションを削除するための拡張パーティション削除サブユニットと、記憶したパーティション情報、拡張されるパーティションのパーティションボリューム値、及び拡張値に従って新たなパーティションを作成するための新規パーティション作成サブユニットと、記憶したパーティション情報に従って新たなパーティションを設定するための新規パーティション設定サブユニットとを含む。
【００４０】
[40]  任意選択的に、ファイルシステム拡張ユニットが、システムイメージから仮想ディスクのファイルシステムを読み出すためのファイルシステム読出サブユニットと、新たなパーティションに従ってファイルシステムを拡張するために予め設定されたファイルシステム拡張インタフェースを呼び出すためのファイルシステム拡張サブユニットとを含み、ファイルシステム拡張インタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化されるファイルシステムツールセットの拡張ツールが、ファイルシステム拡張インタフェースを介して使用される。
【００４１】
[41]  任意選択的に、ファイルシステム拡張ユニットが、拡張されるパーティションのパーティションの種類を参照して、ファイルシステムが有効かどうかを確認するために予め設定されたファイルシステム確認インタフェースを呼び出し、ファイルシステムが有効な場合はファイルシステム拡張サブユニットを実行するためのファイルシステム確認サブユニットを更に含み、ファイルシステム確認インタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化されるファイルシステムツールセットの確認ツールが、ファイルシステム確認インタフェースを介して使用される。
【００４２】
[42]  本開示はプロセッサとメモリとを含む電子装置を更に提供し、プロセッサは、予め設定されたシステムイメージ及び受信される拡張要求内に含まれる標的ディスクボリューム値に従って仮想ディスクファイルを作成し、仮想ディスクファイルを物理ホストに組み込み、仮想ディスクを生成し、仮想ディスクのパーティション情報を読み出し、仮想ディスクの拡張されるパーティションを削除し、拡張されるパーティションのパーティションボリューム値及び拡張値に従って新たなパーティションを作成し、仮想ディスクのファイルシステムを読み出し、新たなパーティションに適合するようにファイルシステムを拡張するために使用され、メモリは、仮想ディスクファイル、仮想ディスクのパーティション情報、及び仮想ディスクのファイルシステムを記憶するために使用される。
【００４３】
[43]  本開示の実施形態は、仮想ディスク拡張用の物理ホストに直接基づいて仮想ディスク拡張方法を実現することができる。従って、Ｉ／Ｏパスを短くすることができ、Ｉ／Ｏパスの消費量を減らすことができ、Ｉ／Ｏ効率を改善することができる。加えて仮想ディスク拡張方法に関して、仮想ディスク拡張プロセスの間、物理ホスト上で仮想マシンを始動する必要はなく、仮想ディスクに対する拡張は仮想マシンの始動前に実行され、それにより技術的な複雑性及び結合が減る。本方法の実装は非常に簡単である。
【図面の簡単な説明】
【００４４】
図面の簡単な説明
【図１】[44]本開示の実施形態による例示的な仮想ディスク拡張方法の流れ図である。
【図２】[45]本開示の実施形態による例示的なソフトウェア記憶システムの概略図である。
【図３】[46]本開示の実施形態による例示的な仮想ディスク拡張機器の概略図である。
【図４】[47]本開示の実施形態による例示的な電子装置の概略図である。
【発明を実施するための形態】
【００４５】
詳細な説明
[48]  次に、添付図面にその例を示す例示的実施形態を詳しく参照する。以下の説明は添付図面を参照し、添付図面では別段の定めがない限り異なる図中の同じ番号が同じ又は同様の要素を表す。例示的実施形態についての以下の説明の中で記載する実装形態は、本発明に合致する全ての実装形態を表すものではない。むしろそれらの実装形態は、添付の特許請求の範囲の中で列挙する本発明に関係する態様に合致する機器及び方法の例に過ぎない。
【００４６】
[49]  本開示の実施形態は仮想ディスク拡張方法を提供し、仮想ディスク拡張機器及び電子装置を更に提供する。本開示によって提供する実施形態の図面に関して以下で詳細な説明を行い、方法の様々なステップについても説明する。
【００４７】
[50]  図１を参照し、本開示の実施形態によって提供される例示的な仮想ディスク拡張方法の流れ図を示す。図２を参照し、実施形態によって提供される例示的な仮想ディスク拡張システムの概略図を示す。仮想ディスク拡張方法はステップＳ１０１〜Ｓ１０７を含み得る。
【００４８】
[51]  ステップＳ１０１で、拡張要求を受信することができる。
【００４９】
[52]  本開示によって提供される仮想ディスク拡張方法は、物理ホスト上で実現される。仮想ディスク拡張方法の拡張プロセスは、物理ホスト上で仮想マシンを始動する必要がない。仮想マシンを始動する前の仮想ディスクに対する拡張は、物理ホスト上で仮想マシンを始動することを必要とせず、それにより拡張プロセスの複雑性及び結合を減らす。更に、仮想マシンの始動後の仮想マシン上にインストールされたオペレーティングシステム内での拡張と比較し、開示する実施形態は、オペレーティングシステム内でのＩ／Ｏ要求の実行を回避し、Ｉ／Ｏパスを短くし、Ｉ／Ｏパスの消費量を減らし、Ｉ／Ｏ効率を改善する。
【００５０】
[53]  実際のアプリケーションでは、利用者の実際のサービス需要の多様性により、仮想ディスクに対する利用者の需要も柔軟である。従って、利用者によって選択される仮想ディスクのボリューム値が、予め設定された仮想ディスクの既定のボリューム値を上回る場合は、拡張要求がトリガされる。例えば仮想ディスクの既定のボリューム値が５００Ｇであり、利用者によって実際に選択される仮想ディスクのボリューム値が２Ｔである場合、拡張要求がトリガされ、既定の仮想ディスクが拡張される。拡張要求は、利用者によって実際に選択された仮想ディスクのボリューム値である標的ディスクボリューム値を含む（例えば利用者によって実際に選択される標的ディスクボリューム値は２Ｔである）。
【００５１】
[54]  ステップＳ１０２で、拡張要求に従って、予め設定されたシステムイメージから拡張要求とマッチするシステムイメージを選択することができる。
【００５２】
[55]  拡張要求に従って、予め設定されたシステムイメージから拡張要求とマッチするシステムイメージを選択するこのステップは、例えば拡張要求を受信する上記のステップＳ１０１の後に続くことができる。拡張要求がオペレーティングシステムの種類を含む場合、拡張要求とマッチするシステムイメージも、拡張要求内に含まれるオペレーティングシステムの種類と合致するオペレーティングシステムの種類を有するシステムイメージを対応して含む。例えば拡張要求内に含まれるオペレーティングシステムの種類がLinux（登録商標）として識別される場合、第１のシステムイメージに対応するオペレーティングシステムの種類はLinux（商標）とすることができ、第２のシステムに対応するオペレーティングシステムの種類はWindows（商標）とすることができ、そうすると第１のシステムイメージが拡張要求とマッチする。
【００５３】
[56]  それに加えて、拡張要求とマッチするシステムイメージは、標的ディスクボリューム値未満の対応する仮想ディスクのボリューム値を更に満たすことができる。例えば拡張要求内に含まれる標的ディスクボリューム値が２Ｔであり、第３のシステムイメージに対応する仮想ディスクのボリューム値が１Ｔであり、第４のシステムイメージに対応する仮想ディスクのボリューム値が５Ｔである場合、第３のシステムイメージが拡張要求とマッチする。
【００５４】
[57]  或いは、拡張要求とマッチするシステムイメージは、予め設定された閾値範囲内にある、対応する仮想ディスクのボリューム値と標的ディスクボリューム値との間の差分値を有するシステムイメージの条件を更に満たすことができる。例えば拡張要求内に含まれる標的ディスクボリューム値が２Ｔであり、第５のシステムイメージに対応する仮想ディスクのボリューム値が５００ＧＴであり、第６のシステムイメージに対応する仮想ディスクのボリューム値が１Ｔである場合、差分値が予め設定された閾値範囲内にある限りにおいて第６のシステムイメージが拡張要求とマッチする。
【００５５】
[58]  ステップＳ１０３で、拡張要求とマッチするシステムイメージ、及び拡張要求内に含まれる標的ディスクボリューム値に従って、仮想ディスクファイルを作成することができる。
【００５６】
[59]  一部の実施形態では、仮想ディスクをシステムイメージに基づいて作成することができる。システムイメージは、様々なオペレーティングシステムプラットフォームのためにクラウドプロバイダによって提供され得る。例えばLinuxシステムのために提供されるシステムイメージに対応する仮想ディスクのボリューム値は５００Ｇであり、Windowsシステムのために提供されるシステムイメージに対応する仮想ディスクのボリューム値は１Ｔである。
【００５７】
[60]  仮想ディスクファイルは仮想ディスクを論理的に表す。しかし、仮想マシンがまだ始動していないので、仮想ディスクファイルは、仮想ディスクの形式で提示することはできないが、ファイルの形式で記憶することはできる。
【００５８】
[61]  このステップＳ１０３で、受信される拡張要求内に含まれる標的ディスクボリューム値に従って、対応する仮想ディスクファイルは作成され、システムイメージが、対応する仮想ディスクファイルを作成する。つまり仮想ディスクファイルは、システムイメージによって作成される仮想ディスクの仮想ディスクファイルを論理的に表す。
【００５９】
[62]  図２に示す仮想ディスク拡張システムに関して、本開示の仮想ディスク拡張方法は、仮想ディスク拡張システムに基づいて実現される。仮想ディスク拡張システムは、物理ホスト２００及び仮想システム２２０を含む。物理ホスト２００は、仮想ディスクファイル管理装置２０２、仮想ディスク管理装置２０４、パーティション管理装置２０６、ファイルシステム管理装置２０８、ソフトウェア開発キット（ＳＤＫ）２１０、及びＩ／Ｏ処理装置２１２を含む、物理ホストに論理的に属する機器を表す。仮想システム２２０は、仮想システムに論理的に属する機器（例えば実際に実行されている仮想マシンの一部）を表す。
【００６０】
[63]  物理ホスト２００の仮想ディスクファイル管理装置２０２は、利用者によって送信される仮想ディスクファイル作成要求、削除要求、及び拡張要求を受信し処理するために使用することができ、実際のアプリケーションでは仮想ディスクファイルのライフサイクル管理のための入口として使用される。仮想ディスクファイル管理装置２０２が拡張要求を受信した後、拡張要求内に含まれる標的ディスクボリューム値及びシステムイメージに従って、対応する仮想ディスクファイルが作成される。このステップでは、標的ディスクボリューム値及びシステムイメージに従って作成される仮想ディスクファイルが、仮想ディスクファイル管理装置２０２に基づいて実現される。
【００６１】
[64]  仮想ディスク管理装置２０４は、仮想ディスクの作成及びクリーニングを管理する役割を担う。仮想ディスクファイルに対応する仮想ディスクが仮想ディスク管理装置２０４内で作成された後、作成された仮想ディスクは、ＳＤＫ２１０によって提供されるカプセル化インタフェースに基づいて、パーティション管理装置２０６及びファイルシステム管理装置２０８と連動して、拡張される。
【００６２】
[65]  パーティション管理装置２０６は、仮想ディスクの全パーティションに対する管理操作（確認、追加、削除、属性の構成等）を実行するために使用される。
【００６３】
[66]  ファイルシステム管理装置２０８は、仮想ディスクのファイルシステムに対する管理操作（確認、修復、拡張、メタデータの確認等）を実行するために使用される。
【００６４】
[67]  ＳＤＫ２１０は、仮想ディスク拡張プロセスに関与する仮想ディスク、パーティション管理、及びファイルシステム管理のための一連のインタフェースをカプセル化する。様々な仮想化プラットフォーム、パーティションの種類、及びファイルシステムのロジックが一連の関数インタフェース内に隠されている。関数インタフェースの内部実装は、様々な関数インタフェースに対応するパラメータを様々なバイナリツールによって渡し、対応する関数インタフェースの呼出結果を返すことを含む。ＳＤＫ２１０によってカプセル化される様々なインタフェースについては、以下でそれぞれ詳しく説明する。
【００６５】
[68]  Ｉ／Ｏ処理装置２１２は、Ｉ／Ｏ要求が正しく完了することを確実にするためにＩ／Ｏ要求を処理する役割を担う。例えば拡張プロセス中に生成されるＩ／Ｏ要求が、処理されるためにＩ／Ｏ処理装置２１２に送信される。
【００６６】
[69]  ステップＳ１０４で、仮想ディスクファイルを物理ホストに組み込むことができ、対応する仮想ディスクを生成することができる。
【００６７】
[70]  上記のように、上記のステップＳ１０３内で作成される仮想ディスクファイルは仮想ディスクを論理的に表す。このステップＳ１０４で、仮想化プラットフォームに基づいて仮想ディスクファイルに対して仮想化処理を実行し、仮想化処理後に仮想ディスクファイルが仮想ディスクになる。
【００６８】
[71]  一部の実施形態では、このステップＳ１０４は仮想ディスク管理装置２０４内で実行され得る。図２に示すように、仮想ディスク拡張システム内の仮想ディスク管理装置２０４は、予め設定された組込インタフェースを呼び出すことによって、仮想ディスクファイルを物理ホストに組み込む。物理ホスト自体が仮想ディスクファイルを構文解析し、仮想ディスクファイル内に記録されている仮想ディスク情報を読み出し、読み出した仮想ディスク情報に従って仮想ディスク（例えば仮想ディスクファイルに対応する仮想ディスク）を生成する。組込インタフェースはＳＤＫ２１０によって提供され、ＳＤＫ２１０によってカプセル化される仮想化プラットフォームのそれぞれの組込ツールは、図２の仮想システム２２０の仮想ディスクファイル２２２を組み込むために組込インタフェースを介して使用され得る。仮想システム２２０は、仮想マシンＶＭ１−Linux、ＶＭ２−Windows、．．．、ＶＭｎ等の複数の仮想マシンを含み得る。複数の仮想マシンは、仮想ディスク２２２１、仮想ディスク２２２２、．．．、仮想ディスク２２２ｎ等の複数の仮想ディスク２２２をそれぞれ含み得る。仮想化プラットフォームは例えばＸｅｎやＫＶＭを含む。
【００６９】
[72]  例えばＳＤＫ２１０は、仮想化プラットフォームＸｅｎの仮想化コンポーネントｘｅｎｄのアタッチツール、及び仮想化プラットフォームＫＶＭの仮想化コンポーネントＱＥＭＵのＮＢＤアタッチツールをカプセル化し、block_attach()及びblock_detach()関数インタフェースを提供する。一部の実施形態では、block_attach()インタフェースを呼び出すことによって物理ホストに仮想ディスクファイルが組み込まれ、仮想化プラットフォームに対応する仮想化コンポーネントが仮想化ブロック装置を作成する。
【００７０】
[73]  更に、仮想ディスクファイルに従って複数の仮想化プラットフォーム上で対応する仮想ディスクを作成することができるように、上記の２つの仮想化プラットフォーム以外に他の仮想化プラットフォームの仮想化コンポーネントをＳＤＫ２１０内に更にカプセル化することができる。これに基づき、ＳＤＫ２１０は様々な仮想化プラットフォームと互換性があることができ、より強い互換性を有する。
【００７１】
[74]  上記のように、仮想ディスク管理装置２０４内で作成される仮想ディスクは、パーティション管理装置２０６及びファイルシステム管理装置２０８によって使用され得る。従って、Ｉ／Ｏ処理装置２１２によって伝送されるＩ／Ｏ活動が、仮想ディスクと仮想ディスクファイルとの間で隠され、パーティション管理装置２０６及びファイルシステム管理装置２０８は、Ｉ／Ｏ処理装置２１２と接触する必要がなく、それにより複雑性が減る。
【００７２】
[75]  ステップＳ１０５で、仮想ディスクのパーティション情報を読み出すことができる。
【００７３】
[76]  このステップでは、上記のステップＳ１０４で作成した仮想ディスク（例えば仮想ディスクファイルに対応する仮想ディスク）に基づいて、仮想ディスクのパーティション情報を読み出す。
【００７４】
[77]  図２に示す一部の実施形態では、仮想ディスク拡張システム内のパーティション管理装置２０６が、予め設定されたパーティション取得インタフェースを呼び出すことにより、仮想ディスクファイル内に記録されたパーティション情報を仮想ディスクのパーティション情報として取得する。パーティション取得インタフェースはＳＤＫ２１０によって提供される。ＳＤＫ２１０はパーティションツールによって提供されるパーティション情報取得コマンドをカプセル化する。パーティション情報は、ＳＤＫ２１０によって提供されるパーティション取得インタフェースを介して使用される。例えば、仮想ディスクファイル内に記録されたパーティション情報が、仮想ディスクのパーティション情報として、part_get()インタフェースを介して仮想ディスクファイルから読み出される。
【００７５】
[78]  それに加えて、ＳＤＫ２１０は、パーティションツールによって提供される他のコマンド（例えば追加、削除、属性設定のコマンド）を更にカプセル化する。これに基づき、ＳＤＫ２１０は、仮想ディスクのパーティションに対する操作（例えば追加、削除、属性設定）を実行するための関数インタフェース（例えばpart_add()、part_del()、part_set()）を提供する。
【００７６】
[79]  本開示の実施形態では、パーティション情報が、パーティションの数、パーティション識別情報、開始セクタ位置情報、終了セクタ位置情報、フラグ、及びパーティションの種類を含み得る。例えば仮想ディスクがパーティションを１つだけ有する場合、パーティションの数は１であり、パーティション識別情報はP1であり、開始セクタ位置情報はセクタ番号SectorSに対応するセクタであり、終了セクタ位置情報はセクタ番号SectorEに対応するセクタであり、フラグはFlag1であり、パーティションの種類はType1である。
【００７７】
[80]  一部の実施形態では、このステップＳ１０５を実行した後、つまり仮想ディスクのパーティション情報を読み出した後、仮想ディスクのパーティションを拡張できるかどうかを確認するために、読み出したパーティション情報に従って以下の拡張確認操作を更に実行することができ、拡張確認操作は、仮想ディスクのパーティションが拡張条件を満たすかどうかをパーティション情報に従って判定すること、仮想ディスクのパーティションが拡張条件を満たす場合は、（この後に説明する）ステップＳ１０６を実行できること、及び仮想ディスクのパーティションが拡張条件を満たさない場合は、拡張エラーのリマインド情報を送信できることを含み得る。
【００７８】
[81]  これらの実施形態では、拡張条件が、拡張されるパーティションのパーティションボリューム値が標的ディスクボリューム値以上であること、及び仮想ディスクのパーティションの種類が拡張をサポートしていることを含み得る。それに加えて、拡張条件は実際のアプリケーションに従って更に設定することができ、上記の内容に限定されない。例えば拡張条件は、拡張されるパーティションのパーティションボリューム値が標的ディスクボリューム値以上であること、又は仮想ディスクのパーティションの種類が拡張をサポートしていることを更に含み得る。
【００７９】
[82]  ステップＳ１０６で、仮想ディスクの拡張されるパーティションを削除することができ、拡張されるパーティションのパーティションボリューム値及び拡張値に従って、新たなパーティションを作成することができる。
【００８０】
[83]  これらの実施形態では、仮想ディスクが拡張されるとき、拡張される仮想ディスクのボリューム値が標的ディスクボリューム値に等しいように、仮想ディスクの特定のパーティションが拡張のために選択される。同様に、拡張される仮想ディスクのボリューム値が標的ディスクボリューム値に等しいように、仮想ディスクの２つ以上のパーティションを更に拡張することができる。例えば標的ディスクボリューム値が２Ｔであり、仮想ディスクが５個のパーティションを有し、各パーティションのパーティションボリューム値が１００Ｇである場合、拡張される仮想ディスクのボリューム値が２Ｔに達するように、各パーティションが１００Ｇから４００Ｇに拡張される。
【００８１】
[84]  本開示の実施形態では、拡張値は、標的ディスクボリューム値と、システムイメージに従って作成される仮想ディスクのディスクボリューム値との間の差分値を指す。例えば標的ディスクボリューム値が２Ｔであり、仮想ディスクのボリューム値が５００Ｇである場合、拡張値は２Ｔ−５００Ｇ＝１．５Ｔである。
【００８２】
[85]  パーティションボリューム値は、開始セクタ位置情報及び終了セクタ位置情報による計算によって得られる。例えば上記のパーティションP1に関して、開始セクタ位置情報はセクタ番号SectorSに対応するセクタであり、終了セクタ位置情報はセクタ番号SectorEに対応するセクタであり、パーティションボリューム値はセクタ番号SectorSからセクタ番号SectorEまでの全セクタの合計ボリューム値である。
【００８３】
[86]  これらの実施形態では、仮想ディスクの１つのパーティションを拡張する実装形態を例として採用することによって、拡張プロセスについて詳しく説明する。更に、仮想ディスクの２つ以上のパーティションを拡張する実装形態は、仮想ディスクの１つのパーティションを拡張する実装形態と同様であり、本明細書では詳細を繰り返し説明しない。
【００８４】
[87]  この実施形態では拡張プロセスが以下を含み得る：
[88]  １）拡張されるパーティションを仮想ディスクのパーティションから選択し、拡張されるパーティションに対応するパーティション情報を記憶すること。
[89]  例えば、拡張されるパーティションとして上記のパーティションP1が選択され、拡張されるパーティションP1のパーティション識別情報P1、セクタ番号SectorS、セクタ番号SectorE、フラグFlag1、及びパーティションの種類Type1が記録される。
【００８５】
[90]  ２）拡張されるパーティションを削除すること。
[91]  一部の実施形態では、予め設定されたパーティション削除インタフェースを呼び出すことによって、拡張されるパーティションが仮想ディスクファイルから削除される。パーティション削除インタフェースはＳＤＫ２１０によって提供され、パーティションツールによって提供されるパーティション削除コマンドが、パーティション削除インタフェースを介して使用される。例えばpart_del()インタフェースが、パーティションP1を削除するために呼び出される。
【００８６】
[92]  ３）記憶したパーティション情報、拡張されるパーティションのパーティションボリューム値、及び拡張値に従って、新たなパーティションを作成すること。
[93]  新たなパーティションが作成されるとき、拡張前後のパーティションの整合性を保証するために、更に拡張前後の仮想ディスクの整合性を保証するために、新たなパーティションのパーティション識別情報及びパーティションの種類が、拡張されるパーティションのパーティション情報に対応する。
【００８７】
[94]  加えて、新たなパーティションが作成されるとき、新たなパーティションの開始セクタ位置情報が、拡張されるパーティションの開始セクタ位置情報に対応し、拡張されるパーティションの開始セクタ位置情報及び拡張値に従って、新たなパーティションの終了セクタ位置情報が得られる。
【００８８】
[95]  例えば新たなパーティションのパーティション識別情報がP1であり、開始セクタ位置情報はセクタ番号SectorSに対応するセクタであり、終了セクタ位置情報は、セクタ番号SectorEに対応するセクタ＋１．５Ｔ＝セクタ番号SectorFに対応するセクタであり、パーティションの種類はType1である。
【００８９】
[96]  一部の実施形態では、予め設定されたパーティション作成インタフェースを呼び出すことによって、新たなパーティションが仮想ディスクファイル内に作成される。パーティション作成インタフェースはＳＤＫ２１０によって提供され、パーティションツールによって提供されるパーティション作成コマンドが、パーティション作成インタフェースにを介して使用される。例えばpart_add()インタフェースが、新たなパーティションP1を作成するために呼び出される。
【００９０】
[97]  ４）記憶したパーティション情報に従って新たなパーティションを設定すること。
[98]  一部の実施形態では、予め設定されたパーティション設定インタフェースを呼び出すことによって、新たなパーティションが仮想ディスクファイル内に設定される。パーティション設定インタフェースはＳＤＫ２１０によって提供され、パーティションツールによって提供されるパーティション設定コマンドが、パーティション設定インタフェースを介して使用される。例えばpart_set()インタフェースが、新たなパーティションP1のフラグをFlag1として設定するために呼び出される。
【００９１】
[99]  例えば拡張プロセスは、様々な具体的な実装形態を使用することによって実現することができる。拡張プロセスを実現するための様々な形式の変更は具体的な実装形態の変更に過ぎず、本開示の核心から逸脱することなしに本開示の保護範囲に全て含まれる。
【００９２】
[100]  ステップＳ１０７で、仮想ディスクのファイルシステムを読み出すことができ、新たなパーティションに適合するようにファイルシステムを拡張することができる。
【００９３】
[101]  上記のステップＳ１０６では、拡張されるパーティションを削除し新たなパーティションを作成することによって仮想ディスクを拡張したが、新規作成した新たなパーティションと仮想ディスクの元のファイルシステムとの間で、マッピングは確立されていない。このステップＳ１０７で、仮想ディスクのファイルシステムを読み出し、新たなパーティションに適合するように拡張する。このステップＳ１０７は以下を更に含み得る：
[102]  １）システムイメージから仮想ディスクのファイルシステムを読み出すこと、及び
[103]  ２）新たなパーティションに従ってファイルシステムを拡張するために予め設定されたファイルシステム拡張インタフェースを呼び出すこと。
【００９４】
[104]  ファイルシステム拡張インタフェースはＳＤＫ２１０によって提供され、ＳＤＫ２１０によってカプセル化されるファイルシステムツールセットの拡張ツールが、ファイルシステム拡張インタフェースを介して使用される。例えばfs_extend()インタフェースが、仮想ディスクのファイルシステムを拡張するために呼び出される。
【００９５】
[105]  一部の実施形態では、システムイメージから仮想ディスクのファイルシステムを読み出すサブステップの実行後、且つ新たなパーティションに従ってファイルシステムを拡張するために予め設定されたファイルシステム拡張インタフェースを呼び出すサブステップの実行前、以下のファイルシステム確認操作を更に実行することができる。ファイルシステム確認操作は、拡張されるパーティションのパーティションの種類を参照して、ファイルシステムが有効か（例えばファイルシステムが完全か）どうかを確認するために予め設定されたファイルシステム確認インタフェースを呼び出すこと、ファイルシステムが有効な場合は、新たなパーティションに従ってファイルシステムを拡張するために予め設定されたファイルシステム拡張インタフェースを呼び出す上記のサブステップを実行し、ファイルシステムが無効な場合は、ファイルシステムを修復するために予め設定されたファイルシステム修復インタフェースを呼び出すこと、拡張されるパーティションのパーティションの種類を参照して、ファイルシステムが修復されたかどうかを確認するためにファイルシステム確認インタフェースを呼び出し、ファイルシステムが修復された場合は、新たなパーティションに従ってファイルシステムを拡張するために予め設定されたファイルシステム拡張インタフェースを呼び出すサブステップを実行することを更に含むことができる。ファイルシステム確認インタフェースはＳＤＫ２１０によって提供され、ＳＤＫ２１０によってカプセル化されるファイルシステムツールセットの確認ツールが、ファイルシステム確認インタフェースを介して使用される。例えばfs_check()インタフェースが、仮想ディスクのファイルシステムを確認するために呼び出される。
【００９６】
[106]  ファイルシステム修復インタフェースはＳＤＫ２１０によって提供され、ＳＤＫ２１０によってカプセル化されるファイルシステムツールセットの修復ツールが、ファイルシステム修復インタフェースを介して使用される。例えばfs_fix()インタフェースが、仮想ディスクのファイルシステムを修復するために呼び出される。
【００９７】
[107]  加えて、新たなパーティションに従ってファイルシステムを拡張するために予め設定されたファイルシステム拡張インタフェースを呼び出すサブステップの実行後、以下のファイルシステムの第２の確認操作を更に実行することができる。ファイルシステムの第２の確認操作は、拡張されるパーティションのパーティションの種類を参照して、ファイルシステムが有効かどうかを確認するためにファイルシステム確認インタフェースを呼び出すこと、ファイルシステムが有効な場合は、仮想ディスクのファイルシステムの拡張に成功したことを示し、処理を実行せず、ファイルシステムが無効な場合は、拡張失敗のリマインド情報を送信することを更に含み得る。
【００９８】
[108]  一部の実施形態では、このステップＳ１０７の実行後（例えば仮想ディスクのファイルシステムの拡張を完了した後）、システム資源を確保しシステム性能を改善するために、上記のステップＳ１０４で作成した仮想ディスクに対して、以下の仮想ディスククリーニング操作を更に実行して仮想ディスクをクリーニングすることができる。仮想ディスククリーニング操作は、仮想ディスクをクリーニングするために予め設定されたクリーニングインタフェースを呼び出すことを少なくとも含むことができる。クリーニングインタフェースはＳＤＫ２１０によって提供され、ＳＤＫ２１０によってカプセル化される仮想化プラットフォームのそれぞれのクリーニングツールが、仮想ディスクをクリーニングするためにクリーニングインタフェースを介して使用され得る。例えばblock_detach()インタフェースが、仮想ディスクをクリーニングするために呼び出される。
【００９９】
[109]  要約すれば、本開示が提供する仮想ディスク拡張方法は、拡張要求を受信した後で、拡張要求内に含まれる標的ディスクボリューム値及び予め設定されたシステムイメージに従って、仮想ディスクファイルを作成すること、仮想ディスクファイルを物理ホストに組み込み、仮想ディスクファイルに対応する仮想ディスクを生成すること、仮想ディスクのパーティション情報を読み出すこと、仮想ディスクの拡張されるパーティションを削除し、読み出したパーティション情報に従って、新たなパーティションを作成すること、及び仮想ディスクのファイルシステムを読み出し、新規作成される新たなパーティションに適合するようにファイルシステムを拡張することを含む。この仮想ディスク拡張方法は仮想ディスク拡張用の物理ホストに基づいて実現することができ、従ってＩ／Ｏパスを短くすることができ、Ｉ／Ｏパスの消費量を減らすことができ、Ｉ／Ｏ効率を改善することができる。加えて仮想ディスク拡張方法に関して、仮想ディスク拡張プロセスの間、物理ホスト上で仮想マシンを始動する必要はなく、仮想ディスクに対する拡張は仮想マシンの始動前に実行され、それにより技術的な複雑性及び結合が減る。本方法の実装は非常に簡単である。
【０１００】
[110]  本開示が提供する仮想ディスク拡張機器の実施形態を以下の通り説明する。
【０１０１】
[111]  上記の実施形態では仮想ディスク拡張方法を提供し、それに対応して本開示は図面と共に説明する仮想ディスク拡張機器を更に提供する。
【０１０２】
[112]  図３を参照し、本開示の実施形態による例示的な仮想ディスク拡張機器の概略図を示す。
【０１０３】
[113]  機器の実施形態は方法の実施形態とほぼ同様なので比較的簡単に説明し、関連する部分について方法の実施形態の対応する説明を参照する場合がある。以下の機器の実施形態は例示に過ぎない。
【０１０４】
[114]  本開示は、仮想ディスクファイル作成ユニット３０１、仮想ディスク生成ユニット３０２、パーティション情報読出ユニット３０３、パーティション拡張ユニット３０４、及びファイルシステム拡張ユニット３０５を含む、仮想ディスク拡張機器３００を提供する。
【０１０５】
[115]  仮想ディスクファイル作成ユニット３０１は、予め設定されたシステムイメージ及び受信される拡張要求内に含まれる標的ディスクボリューム値に従って、仮想ディスクファイルを作成するために使用することができる。仮想ディスクファイル作成ユニット３０１は、上記で説明した図２の仮想ディスクファイル管理装置２０２の一部であり得る。例えば拡張要求を受信した後、仮想ディスクファイル管理装置２０２は、標的ディスクボリューム値及び予め設定されたシステムイメージに関係する情報を、図２の仮想ディスクファイル２２２を作成するために仮想ディスクファイル作成ユニット３０１に与えることができる。
【０１０６】
[116]  拡張要求はオペレーティングシステムの種類を含むことができ、それに対応して、拡張要求とマッチするシステムイメージは、拡張要求内に含まれるオペレーティングシステムの種類と合致するオペレーティングシステムの種類を有するシステムイメージを含む。
【０１０７】
[117]  一部の実施形態では、拡張要求とマッチするシステムイメージが、標的ディスクボリューム値未満の仮想ディスクのボリューム値を有するシステムイメージ、又は予め設定された閾値範囲内にある、仮想ディスクのボリューム値と標的ディスクボリューム値との間の差分値を有するシステムイメージを含み得る。
【０１０８】
[118]  仮想ディスク生成ユニット３０２は、仮想ディスクファイル２２２を物理ホストに組み込み、対応する仮想ディスク２１４を生成するために使用することができる。仮想ディスク生成ユニット３０２はＳＤＫ２１０の一部とすることができ、ＳＤＫ２１０は、図２に関して論じたように仮想システム２２０の仮想ディスクファイル２２２を組み込むための、ＳＤＫ２１０によってカプセル化される仮想化プラットフォームのそれぞれの組込ツールを提供することができる。
【０１０９】
[119]  一部の実施形態では、仮想ディスク生成ユニット３０２は、予め設定された組込インタフェースを呼び出すことによって実現することができる。組込インタフェースは予め設定されたＳＤＫによって提供され、ＳＤＫによってカプセル化される仮想化プラットフォームのそれぞれの組込ツールが、仮想ディスクファイルの組み込みを実現するために組込インタフェースを介して使用され、仮想化プラットフォームはＸｅｎ及びＫＶＭを含む。
【０１１０】
[120]  パーティション情報読出ユニット３０３は、仮想ディスク２１４のパーティション情報を読み出すために使用することができる。パーティション情報読出ユニット３０３はパーティション管理装置２０６の一部であり得る。例えばパーティション管理装置２０６は、図２の中で上述したように、予め設定されたパーティション取得インタフェースを呼び出すことにより、仮想ディスクファイル内に記録されたパーティション情報を取得することができる。
【０１１１】
[121]  一部の実施形態では、パーティション情報読出ユニット３０３は、仮想ディスクのパーティション情報として仮想ディスクファイル内に記録されたパーティション情報を取得するために予め設定されたパーティション取得インタフェースを呼び出すことのために使用することができる。パーティション取得インタフェースは予め設定されたＳＤＫによって提供され、ＳＤＫによってカプセル化されるパーティションツールによって提供されるパーティション情報取得コマンドが、パーティション取得インタフェースを介して使用される。
【０１１２】
[122]  パーティション情報は、例えばパーティションの数、パーティション識別情報、開始セクタ位置情報、終了セクタ位置情報、フラグ、及びパーティションの種類を含み得る。
【０１１３】
[123]  パーティション拡張ユニット３０４は、仮想ディスクの拡張されるパーティションを削除し、拡張されるパーティションのパーティションボリューム値及び拡張値に従って、新たなパーティションを作成するために使用することができる。パーティション拡張ユニット３０４は、パーティション管理装置２０６、ファイルシステム管理装置２０８、及びＳＤＫ２１０の一部を含み得る。例えば図２で説明したように、仮想ディスクファイルに対応する仮想ディスクが、仮想ディスク管理装置２０４内で作成された後、作成された仮想ディスクは、ＳＤＫ２１０によって提供されるカプセル化インタフェースに基づいて、パーティション管理装置２０６及びファイルシステム管理装置２０８と連動して拡張される。
【０１１４】
[124]  拡張値は、標的ディスクボリューム値と、システムイメージに従って作成される仮想ディスクのディスクボリューム値との間の差分値であり得る。
【０１１５】
[125]  パーティションボリューム値は、開始セクタ位置情報及び終了セクタ位置情報による計算によって得ることができる。
【０１１６】
[126]  一部の実施形態では、パーティション拡張ユニット３０４が、拡張パーティション選択サブユニット、拡張パーティション削除サブユニット、新規パーティション作成サブユニット、及び新規パーティション設定サブユニットを更に含み得る。
【０１１７】
[127]  拡張パーティション選択サブユニットは、拡張されるパーティションを仮想ディスクのパーティションから選択し、拡張されるパーティションに対応するパーティション情報を記憶するために使用することができる。
【０１１８】
[128]  拡張パーティション削除サブユニットは、拡張されるパーティションを削除するために使用することができる。
【０１１９】
[129]  新規パーティション作成サブユニットは、記憶したパーティション情報、拡張されるパーティションのパーティションボリューム値、及び拡張値に従って、新たなパーティションを作成するために使用することができる。
【０１２０】
[130]  新規パーティション設定サブユニットは、記憶したパーティション情報に従って、新たなパーティションを設定するために使用することができる。
【０１２１】
[131]  任意選択的に、拡張されるパーティションのパーティション識別情報が、新たなパーティションのパーティション識別情報、フラグ、及び／又はパーティションの種類と合致し得る。
【０１２２】
[132]  一部の実施形態では、拡張されるパーティションの開始セクタ位置情報が、新たなパーティションの開始セクタ位置情報と合致することができ、拡張されるパーティションの開始セクタ位置情報及び拡張値に従って、新たなパーティションの終了セクタ位置情報を得ることができる。
【０１２３】
[133]  任意選択的に、拡張パーティション削除サブユニットは、拡張されるパーティションを仮想ディスクファイルから削除するために予め設定されたパーティション削除インタフェースを呼び出すことのために更に使用することができる。パーティション削除インタフェースはＳＤＫによって提供され、パーティションツールによって提供されるパーティション削除コマンドが、パーティション削除インタフェースを介して使用される。
【０１２４】
[134]  任意選択的に、新規パーティション作成サブユニットは、仮想ディスクファイル内に新たなパーティションを作成するために予め設定されたパーティション作成インタフェースを呼び出すことのために更に使用することができる。パーティション作成インタフェースはＳＤＫによって提供され、パーティションツールによって提供されるパーティション作成コマンドが、パーティション作成インタフェースを介して使用される。
【０１２５】
[135]  一部の実施形態では、新規パーティション設定サブユニットは、記憶したパーティション情報に従って仮想ディスクファイル内に新たなパーティションを設定するために予め設定されたパーティション設定インタフェースを呼び出すことのために更に使用することができる。パーティション設定インタフェースはＳＤＫによって提供することができ、パーティションツールによって提供されるパーティション設定コマンドが、パーティション設定インタフェースを介して使用され得る。
【０１２６】
[136]  ファイルシステム拡張ユニット３０５は、仮想ディスクのファイルシステムを読み出し、新たなパーティションに適合するようにファイルシステムを拡張するために使用することができる。ファイルシステム拡張ユニット３０５はファイルシステム管理装置２０８の一部であり得る。例えば図２で論じたように、ファイルシステム管理装置２０８は、仮想ディスクのファイルシステムに対する管理操作（例えば拡張）を実行するために使用することができる。
【０１２７】
[137]  一部の実施形態では、ファイルシステム拡張ユニット３０５が、ファイルシステム読出サブユニット及びファイルシステム拡張サブユニットを更に含むことができる。
【０１２８】
[138]  ファイルシステム読出サブユニットは、システムイメージから仮想ディスクのファイルシステムを読み出すために使用することができ、ファイルシステム拡張サブユニットは、新たなパーティションに従ってファイルシステムを拡張するために予め設定されたファイルシステム拡張インタフェースを呼び出すことのために使用することができる。
【０１２９】
[139]  一部の実施形態では、ファイルシステム拡張ユニット３０５がファイルシステム確認サブユニットを更に含む。
【０１３０】
[140]  ファイルシステム確認サブユニットは、拡張されるパーティションのパーティションの種類を参照して、ファイルシステムが有効かどうかを確認するために予め設定されたファイルシステム確認インタフェースを呼び出し、ファイルシステムが有効な場合は、ファイルシステム拡張サブユニットを実行するために使用することができる。ファイルシステム確認インタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化されるファイルシステムツールセットの確認ツールが、ファイルシステム確認インタフェースを介して使用される。
【０１３１】
[141]  ファイルシステム確認サブユニットによって入力される判定結果が否定的である場合、ファイルシステム修復サブユニット及び修復確認サブユニットを実行することができる。
【０１３２】
[142]  ファイルシステム修復サブユニットは、ファイルシステムを修復するために予め設定されたファイルシステム修復インタフェースを呼び出すことのために使用することができる。修復確認サブユニットは、拡張されるパーティションのパーティションの種類を参照して、ファイルシステムが修復されたかどうかを確認するためにファイルシステム確認インタフェースを呼び出すことのために使用することができ、ファイルシステムが修復された場合は、ファイルシステム拡張サブユニットが実行される。ファイルシステム修復インタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化されるファイルシステムツールセットの修復ツールが、ファイルシステム修復インタフェースを介して使用される。
【０１３３】
[143]  一部の実施形態では、ファイルシステム拡張ユニット３０５が、拡張されるパーティションのパーティションの種類を参照して、ファイルシステムが有効かどうかを確認するためにファイルシステム確認インタフェースを呼び出し、ファイルシステムが無効な場合は拡張失敗のリマインド情報を送信するための第２の確認サブユニットを更に含み得る。
【０１３４】
[144]  概して、本明細書で使用するユニット（及び対応する任意のサブユニット）は、他のコンポーネント（例えば集積回路の一部）、関連する機能のうちの特定の機能を実行する（コンピュータ可読媒体上に記憶される）プログラムの一部、又はその組合せと共に使用するように設計されるパッケージ化された機能ハードウェアユニットであり得る。これらのユニットは入口点及び出口点を有することができ、例えばJava（登録商標）、Lua、C、C++等のプログラミング言語で書くことができる。ソフトウェアユニットは、コンパイルし、実行可能プログラム内にリンクし、ダイナミックリンクライブラリ内にインストールし、又は例えばBASIC、Perl、Python（登録商標）等のインタプリタ型プログラミング言語で書くことができる。ソフトウェアユニットは他のユニットから又はそれ自体から呼出可能であり得ること、及び／又は検出されるイベント若しくは割込みに応答して起動され得ることが理解されよう。計算装置上で実行されるように構成されるソフトウェアユニットは、コンパクトディスク、デジタルビデオディスク、フラッシュドライブ、磁気ディスク、他の任意の非一時的媒体等のコンピュータ可読媒体上に、又はデジタルダウンロードとして提供され得る（更に実行前にインストール、復元、又は復号を必要とする圧縮形式又はインストール可能形式で最初は記憶され得る）。かかるソフトウェアコードは、計算装置によって実行するために実行中の計算装置のメモリ装置上に部分的に又は完全に記憶することができる。ＥＰＲＯＭ等、ソフトウェア命令はファームウェア内に埋め込むことができる。ハードウェアユニットは、ゲートやフリップフロップ等の接続された論理ユニットで構成できること、及び／又はプログラム可能なゲートアレイやプロセッサ等のプログラム可能ユニットで構成できることが更に理解されよう。本明細書で機能的に説明したユニット又は計算装置は、好ましくはソフトウェアモジュールとして実装されるが、ハードウェア又はファームウェアによって表すことができる。概して本明細書に記載のユニットは、その物理編成又は記憶にかかわらず他のユニットと組み合わせることができる論理ユニット、又はサブユニットに分割することができる論理ユニットを指す。
【０１３５】
[145]  一部の実施形態では、仮想ディスク拡張機器３００が、拡張要求を受信するための拡張要求受信ユニットを更に含み得る。
【０１３６】
[146]  一部の実施形態では、仮想ディスク拡張機器３００が、仮想ディスクをクリーニングするために予め設定されたクリーニングインタフェースを呼び出すための仮想ディスククリーニングユニットを更に含むことができる。クリーニングインタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化される仮想化プラットフォームのそれぞれのクリーニングツールが、仮想ディスクをクリーニングするためにクリーニングインタフェースを介して使用される。
【０１３７】
[147]  任意選択的に、仮想ディスク拡張機器３００が、仮想ディスクのパーティションが拡張条件を満たすかどうかをパーティション情報に従って判定し、仮想ディスクのパーティションが拡張条件を満たす場合はパーティション拡張ユニット３０４を実行するための拡張判定ユニットを更に含み得る。
【０１３８】
[148]  任意選択的に、拡張条件は、拡張されるパーティションのパーティションボリューム値が標的ディスクボリューム値以上であること、及び／又は仮想ディスクのパーティションの種類が拡張をサポートしていることを含み得る。
【０１３９】
[149]  本開示によって提供する電子装置の実施形態を図面に関して説明する。
【０１４０】
[150]  図４を参照し、本開示の実施形態によって提供する例示的な電子装置の概略図を示す。
【０１４１】
[151]  電子装置の実施形態は方法の実施形態とほぼ同様なので比較的簡単に説明し、関連する部分について方法の実施形態の対応する説明を参照する場合がある。以下の実施形態は例示に過ぎない。
【０１４２】
[152]  本開示は、プロセッサ４０１とメモリ４０２とを含む電子装置を提供する。プロセッサ４０１は、予め設定されたシステムイメージ及び受信される拡張要求内に含まれる標的ディスクボリューム値に従って、仮想ディスクファイルを作成するために使用することができる。
【０１４３】
[153]  一部の実施形態では、予め設定されたシステムイメージ及び受信される拡張要求内に含まれる標的ディスクボリューム値に従って、仮想ディスクファイルを作成するステップを実行する前に、プロセッサ４０１は、拡張要求を取得するステップを実行することができる。任意選択的に、拡張要求を取得するステップを実行した後、プロセッサ４０１は、拡張要求に従って、予め設定されたシステムイメージから拡張要求とマッチするシステムイメージを選択するステップを実行することができる。
【０１４４】
[154]  一部の実施形態では、拡張要求がオペレーティングシステムの種類を含み、それに対応して、拡張要求とマッチするシステムイメージが、拡張要求内に含まれるオペレーティングシステムの種類と合致するオペレーティングシステムの種類を有するシステムイメージを含む。拡張要求とマッチするシステムイメージは、標的ディスクボリューム値未満の対応する仮想ディスクのボリューム値を有するシステムイメージ、又は予め設定された閾値範囲内にある、対応する仮想ディスクのボリューム値と標的ディスクボリューム値との間の差分値を有するシステムイメージを含み得る。
【０１４５】
[155]  更にプロセッサ４０１は、仮想ディスクファイルを物理ホストに組み込み、仮想ディスクを生成するために使用することができる。仮想ディスクファイルを物理ホストに組み込むことは、予め設定された組込インタフェースを呼び出すことによって実現することができる。組込インタフェースは予め設定されたＳＤＫによって提供され、ＳＤＫによってカプセル化される仮想化プラットフォームのそれぞれの組込ツールが、仮想ディスクファイルを組み込むために組込インタフェースを介して使用され、仮想化プラットフォームはＸｅｎ及びＫＶＭを含み得る。
【０１４６】
[156]  仮想ディスクのファイルシステムを読み出し、新たなパーティションに適合するようにファイルシステムを拡張するステップを実行した後、プロセッサ４０１は、仮想ディスクをクリーニングするために予め設定されたクリーニングインタフェースを呼び出すステップを実行することができる。予め設定されたクリーニングインタフェースはＳＤＫによって提供され得る。クリーニングインタフェースは、仮想ディスクをクリーニングするために、それぞれのクリーニングツールを使用することができる。それぞれのクリーニングツールは、ＳＤＫによってカプセル化される仮想化プラットフォームの一部であり得る。
【０１４７】
[157]  プロセッサ４０１は、仮想ディスクのパーティション情報を読み出し、仮想ディスクの拡張されるパーティションを削除し、拡張されるパーティションのパーティションボリューム値及び拡張値に従って、新たなパーティションを作成するために使用することができる。一部の実施形態では、仮想ディスクのパーティション情報を読み出すことが、仮想ディスクのパーティション情報として仮想ディスクファイル内に記録されたパーティション情報を取得するために予め設定されたパーティション取得インタフェースを呼び出すことによって実現される。パーティション取得インタフェースは、予め設定されたＳＤＫによって提供することができる。パーティション取得インタフェースは、ＳＤＫによってカプセル化されるパーティションツールによって提供されるパーティション情報取得コマンドを使用することができる。パーティション情報は、パーティションの数、パーティション識別情報、開始セクタ位置情報、終了セクタ位置情報、フラグ、及びパーティションの種類を含み得る。
【０１４８】
[158]  拡張値は、標的ディスクボリューム値と、システムイメージに従って作成される仮想ディスクのディスクボリューム値との間の差分値であり得る。
【０１４９】
[159]  一部の実施形態では、パーティションボリューム値は、開始セクタ位置情報及び終了セクタ位置情報による計算によって得ることができる。
【０１５０】
[160]  仮想ディスクのパーティション情報を読み出すステップの実行後、且つ仮想ディスクの拡張されるパーティションを削除し、拡張されるパーティションのパーティションボリューム値及び拡張値に従って新たなパーティションを作成するステップの実行前、プロセッサ４０１は、仮想ディスクのパーティションが拡張条件を満たすかどうかをパーティション情報に従って判定し、仮想ディスクが拡張条件を満たす場合は次のステップを実行するステップを実行することができる。
【０１５１】
[161]  拡張条件は、拡張されるパーティションのパーティションボリューム値が標的ディスクボリューム値以上であること、及び／又は仮想ディスクのパーティションの種類が拡張をサポートしていることを含み得る。
【０１５２】
[162]  仮想ディスクの拡張されるパーティションを削除し、拡張されるパーティションのパーティションボリューム値及び拡張値に従って、新たなパーティションを作成するステップは、拡張されるパーティションを仮想ディスクのパーティションから選択し、拡張されるパーティションに対応するパーティション情報を記憶すること、拡張されるパーティションを削除すること、記憶したパーティション情報、拡張されるパーティションのパーティションボリューム値、及び拡張値に従って、新たなパーティションを作成すること、並びに記憶したパーティション情報に従って新たなパーティションを設定することを更に含み得る。
【０１５３】
[163]  拡張されるパーティションのパーティション識別情報は、新たなパーティションのパーティション識別情報、フラグ、及び／又はパーティションの種類と合致し得る。
【０１５４】
[164]  拡張されるパーティションの開始セクタ位置情報は、新たなパーティションの開始セクタ位置情報と合致し得る。新たなパーティションの終了セクタ位置情報は、拡張されるパーティションの開始セクタ位置情報及び拡張値による計算によって得ることができる。
【０１５５】
[165]  一部の実施形態では、拡張されるパーティションを削除することが、拡張されるパーティションを仮想ディスクファイルから削除するために予め設定されたパーティション削除インタフェースを呼び出すことによって実現することができる。パーティション削除インタフェースはＳＤＫによって提供することができ、パーティションツールによって提供されるパーティション削除コマンドが、パーティション削除インタフェースを介して使用され得る。
【０１５６】
[166]  一部の実施形態では、新たなパーティションを作成することが、仮想ディスクファイル内に新たなパーティションを作成するために予め設定されたパーティション作成インタフェースを呼び出すことによって実現することができる。パーティション作成インタフェースはＳＤＫによって提供することができ、パーティションツールによって提供されるパーティション作成コマンドが、パーティション作成インタフェースを介して使用され得る。
【０１５７】
[167]  一部の実施形態では、記憶したパーティション情報に従って新たなパーティションを設定することが、記憶したパーティション情報に従って仮想ディスクファイル内に新たなパーティションを設定するために予め設定されたパーティション設定インタフェースを呼び出すことによって実現することができる。パーティション設定インタフェースはＳＤＫによって提供することができ、パーティションツールによって提供されるパーティション設定コマンドが、パーティション設定インタフェースを介して使用され得る。
【０１５８】
[168]  プロセッサ４０１は、仮想ディスクのファイルシステムを読み出し、新たなパーティションに適合するようにファイルシステムを拡張するために、使用することができる。一部の実施形態では、仮想ディスクのファイルシステムを読み出し、新たなパーティションに適合するようにファイルシステムを拡張するステップが、システムイメージから仮想ディスクのファイルシステムを読み出し、新たなパーティションに従ってファイルシステムを拡張するために予め設定されたファイルシステム拡張インタフェースを呼び出すことを含むことができる。ファイルシステム拡張インタフェースはＳＤＫによって提供することができ、ＳＤＫによってカプセル化されるファイルシステムツールセットの拡張ツールが、ファイルシステム拡張インタフェースを介して使用され得る。
【０１５９】
[169]  一部の実施形態では、システムイメージから仮想ディスクのファイルシステムを読み出すサブステップの実行後、且つ新たなパーティションに従ってファイルシステムを拡張するために予め設定されたファイルシステム拡張インタフェースを呼び出すサブステップの実行前、以下のサブステップ、つまり拡張されるパーティションのパーティションの種類を参照して、ファイルシステムが有効かどうかを確認するために予め設定されたファイルシステム確認インタフェースを呼び出し、ファイルシステムが有効な場合は次のステップを実行することを実行することができる。ファイルシステム確認インタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化されるファイルシステムツールセットの確認ツールが、ファイルシステム確認インタフェースを介して使用される。
【０１６０】
[170]  拡張されるパーティションのパーティションの種類を参照して、ファイルシステムが有効かどうかを確認するために予め設定されたファイルシステム確認インタフェースを呼び出すサブステップに関して、ファイルシステムが無効な場合は以下のサブステップ、つまりファイルシステムを修復するために予め設定されたファイルシステム修復インタフェースを呼び出すこと、及び拡張されるパーティションのパーティションの種類を参照して、ファイルシステムが修復されたかどうかを確認するためにファイルシステム確認インタフェースを呼び出し、ファイルシステムが修復された場合は新たなパーティションに従ってファイルシステムを拡張するために予め設定されたファイルシステム拡張インタフェースを呼び出すサブステップを実行することを実行することができる。ファイルシステム修復インタフェースはＳＤＫによって提供され、ＳＤＫによってカプセル化されるファイルシステムツールセットの修復ツールが、ファイルシステム修復インタフェースを介して使用される。
【０１６１】
[171]  新たなパーティションに従ってファイルシステムを拡張するために予め設定されたファイルシステム拡張インタフェースを呼び出すサブステップの実行後、以下のサブステップ、つまり拡張されるパーティションのパーティションの種類を参照して、ファイルシステムが有効かどうかを確認するためにファイルシステム確認インタフェースを呼び出し、ファイルシステムが無効な場合は拡張失敗のリマインド情報を送信することを実行することができる。
【０１６２】
[172]  メモリ４０２は、仮想ディスクファイル、仮想ディスクのパーティション情報、及び仮想ディスクのファイルシステムを記憶するために使用することができる。
【０１６３】
[173]  本開示は上記の実施形態に関して開示し、但しそれらの実施形態は本開示を限定するものではない。当業者は本開示の趣旨及び範囲から逸脱することなしにあり得る改変又は修正を加えることができ、従って本開示の保護範囲は添付の特許請求の範囲によって定める保護範囲によって定めるものとする。
【０１６４】
[174]  典型的な構成では、計算装置は１個又は複数個のプロセッサ（ＣＰＵ）、入力／出力インタフェース、ネットワークインタフェース、及びメモリを含む。
【０１６５】
[175]  メモリは、コンピュータ可読媒体の中の非永続的メモリ、ランダムアクセスメモリ（ＲＡＭ）、及び／又は不揮発性メモリ（読取専用メモリ（ＲＯＭ）やフラッシュメモリ（フラッシュＲＡＭ））等を含み得る。メモリは非一時的コンピュータ可読媒体の一例である。
【０１６６】
[176]  コンピュータ可読媒体は、永続的及び非永続的な脱着可能及び非脱着可能媒体を含むことができ、任意の方法又は技術によって情報の記憶を実現することができる。情報はコンピュータ可読命令、オブジェクト、プログラムモジュール、又は他のデータであり得る。非一時的コンピュータ可読媒体の一般的な形式は、例えば相変化メモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、他の種類のランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、電気的消去プログラム可能読取専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリや他のメモリ技術、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）や他の光学記憶域、キャッシュ、レジスタ、磁気カセットテープ、磁気テープ、及び磁気ディスク記憶域や他の磁気記憶装置、それらのもののネットワーク化されたバージョン、又は計算装置によってアクセスされ得る情報を記憶するために使用可能な他の任意の非伝送媒体を含む。本明細書の定義によれば、コンピュータ可読媒体は変調されたデータ信号や搬送波等の一時的媒体は含まない。
【０１６７】
[177]  本開示の実施形態は方法、システム、又はコンピュータプログラム製品として提供できることを当業者なら理解すべきである。従って、本開示は完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又はソフトウェアとハードウェアとを組み合わせる実施形態を採用することができる。更に本開示は、コンピュータ使用可能プログラムコードを含む１つ又は複数のコンピュータ使用可能記憶媒体（これだけに限定されないが磁気ディスクメモリ、ＣＤ−ＲＯＭ、光学メモリ等を含む）上に実装されるコンピュータプログラム製品によって実施することができる。
【図１】
2019532394.tif 000003
【図２】
2019532394.tif 000004
【図３】
2019532394.tif 000005
【図４】
2019532394.tif 000006
【国際調査報告】
2019532394.tif 000007
2019532394.tif 000008