(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-31
(45)【発行日】2024-11-11
(54)【発明の名称】イメージ配布方法、電子機器及び記憶媒体
(51)【国際特許分類】
G06F 8/60 20180101AFI20241101BHJP
【FI】
G06F8/60
(21)【出願番号】P 2022581580
(86)(22)【出願日】2021-03-18
(86)【国際出願番号】 CN2021081632
(87)【国際公開番号】W WO2022001203
(87)【国際公開日】2022-01-06
【審査請求日】2022-12-28
(31)【優先権主張番号】202010618603.3
(32)【優先日】2020-06-30
(33)【優先権主張国・地域又は機関】CN
【前置審査】
(73)【特許権者】
【識別番号】511151662
【氏名又は名称】中興通訊股▲ふん▼有限公司
【氏名又は名称原語表記】ZTE CORPORATION
【住所又は居所原語表記】ZTE Plaza,Keji Road South,Hi-Tech Industrial Park,Nanshan Shenzhen,Guangdong 518057 China
(74)【代理人】
【識別番号】100112656
【氏名又は名称】宮田 英毅
(74)【代理人】
【識別番号】100089118
【氏名又は名称】酒井 宏明
(72)【発明者】
【氏名】王党華
【審査官】松平 英
(56)【参考文献】
【文献】米国特許出願公開第2008/0235266(US,A1)
【文献】米国特許第06564369(US,B1)
【文献】特開2020-095547(JP,A)
【文献】特開2011-123891(JP,A)
【文献】中国特許出願公開第106506587(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
8/60-8/77
9/44-9/445
9/451
9/455-9/54
(57)【特許請求の範囲】
【請求項1】
イメージ配布装置で実行されるイメージ配布方法であって、
イメージファイルの配布要求を取得することと、
前記イメージファイルの各層データの、ソースイメージレポジトリ内における第1の格納場所を特定することと、
前記第1の格納場所に応じて、前記イメージファイルの各層データを前記ソースイメージレポジトリからターゲットイメージレポジトリに配布することと、
前記の前記第1の格納場所に応じて、前記イメージファイルの各層データを前記ソースイメージレポジトリからターゲットイメージレポジトリに配布することの後に、
配布後のイメージファイルの各層データの、前記ターゲットイメージレポジトリ内における第3の格納場所を特定することと、
前記第3の格納場所に格納されている各層データと前記第1の格納場所に格納されている各層データとが一致しないと検証された場合、前記の前記第1の格納場所に応じて、前記イメージファイルの各層データを前記ソースイメージレポジトリからターゲットイメージレポジトリに配布するステップを再び実行することと、
を含むイメージ配布方法。
【請求項2】
前記の前記第1の格納場所に応じて、前記イメージファイルの各層データを前記ソースイメージレポジトリからターゲットイメージレポジトリに配布することは、
前記イメージファイルの各層データを前記第1の格納場所からコピーし、コピーされた前記イメージファイルの各層データを前記ターゲットイメージレポジトリに格納することを含む
請求項1に記載のイメージ配布方法。
【請求項3】
前記の前記第1の格納場所に応じて、前記イメージファイルの各層データを前記ソースイメージレポジトリからターゲットイメージレポジトリに配布することの前に、前記イメージファイルと同じイメージファイルが前記ターゲットイメージレポジトリ内に存在しないと判定することをさらに含む
請求項1に記載のイメージ配布方法。
【請求項4】
前記の前記イメージファイルと同じイメージファイルが前記ターゲットイメージレポジトリ内に存在しないと判定することは、
前記イメージファイルと同じ名前のイメージファイルが前記ターゲットイメージレポジトリ内に存在するか否かを判定することと、
前記イメージファイルと同じ名前のイメージファイルが前記ターゲットイメージレポジトリ内に存在しない場合、前記イメージファイルと同じイメージファイルが前記ターゲットイメージレポジトリ内に存在しないと判定することと、を含む
請求項3に記載のイメージ配布方法。
【請求項5】
前記の前記イメージファイルと同じイメージファイルが前記ターゲットイメージレポジトリ内に存在しないと判定することは、
前記イメージファイルと同じ名前のイメージファイルが前記ターゲットイメージレポジトリ内に存在する場合、前記イメージファイルと同じ名前のイメージファイルの各層データの、前記ターゲットイメージレポジトリ内における第2の格納場所を特定することと、
前記第2の格納場所に格納されている各層データと前記第1の格納場所に格納されている各層データとが一致しない場合、前記イメージファイルと同じイメージファイルが前記ターゲットイメージレポジトリ内に存在しないと判定することと、
をさらに含む請求項4に記載のイメージ配布方法。
【請求項6】
前記の前記イメージファイルの各層データの、ソースイメージレポジトリ内における第1の格納場所を特定することの後に、
前記第1の格納場所を不揮発性メモリに書き込むことをさらに含み、
前記第1の格納場所に応じて、前記イメージファイルの各層データを前記ソースイメージレポジトリからターゲットイメージレポジトリに配布する前記ステップを再び実行することにおいて、前記第1の格納場所は前記不揮発性メモリから取得される
請求項
1に記載のイメージ配布方法。
【請求項7】
前記の前記第1の格納場所に応じて、前記イメージファイルの各層データを前記ソースイメージレポジトリからターゲットイメージレポジトリに配布することは、
前記イメージファイルの各層データを前記第1の格納場所からコピーし、コピーされた前記イメージファイルの各層データを前記第2の格納場所に上書きして格納すること
を含む請求項5に記載のイメージ配布方法。
【請求項8】
前記の前記イメージファイルと同じ名前のイメージファイルの各層データの、前記ターゲットイメージレポジトリ内における第2の格納場所を特定することの後に、
前記第2の格納場所を不揮発性メモリに書き込むことをさらに含み、
前記の前記第1の格納場所に応じて、前記イメージファイルの各層データを前記ソースイメージレポジトリからターゲットイメージレポジトリに配布することの後に、
前記不揮発性メモリから前記第2の格納場所を取得することと、
前記第2の格納場所に格納されている各層データと前記第1の格納場所に格納されている各層データとが一致しないと検証された場合、前記の前記第1の格納場所に応じて、前記イメージファイルの各層データを前記ソースイメージレポジトリからターゲットイメージレポジトリに配布するステップを再び実行することと、
をさらに含む請求項
7に記載のイメージ配布方法。
【請求項9】
サーバであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信可能に接続されたメモリと、を含み、
前記メモリには前記少なくとも1つのプロセッサにより実行できる指令が記憶されており、前記指令が前記少なくとも1つのプロセッサにより実行されることで、前記少なくとも1つのプロセッサにより請求項1から
8の何れか一項に記載のイメージ配布方法を実行できる
サーバ。
【請求項10】
コンピュータ可読記憶媒体であって、
コンピュータプログラムが記憶されており、前記コンピュータプログラムがプロセッサにより実行された場合、請求項1から
8の何れか一項に記載のイメージ配布方法を実現する
コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願の実施形態は、通信の分野に関し、特にイメージ配布方法、サーバ及び記憶媒体に関する。
【背景技術】
【0002】
IT技術の日進月歩の発展に伴い、便利、簡単、低コスト、高安全性といった特徴を有するため、仮想化技術はコンピュータ分野でますます広く応用されるようになってきている。その中でも、イメージレポジトリは、仮想化技術における重要なネットワーク要素であり、ユーザのさまざまなイメージファイル(Image)を格納するために使用される。イメージはイメージレポジトリ内に層(Layers)に分けて格納され、異なる参照関係(link)によって異なるイメージが識別される。つまり、イメージは1つのファイルとしてではなく、一連のLayersとlinksとしてイメージレポジトリに格納される。これは、各層データを共有し、記憶容量を削減する特別なファイル構造である。
【0003】
イメージの使用過程において、多くの場合、ユーザは複数のイメージレポジトリ間でイメージ配布を行う必要がある。イメージ配布は通常、オープンソースのアプリケーションコンテナエンジンであるdockerシステムに基づいて行われる。すなわち、まずはソースイメージレポジトリから1つのイメージファイルをプルし、イメージにタグを付けてから、新しいタグに対応するターゲットイメージレポジトリにイメージファイルをプッシュする。この方法でイメージ配布を行うには、イメージファイル全体をローカルにプルする必要があるため、ネットワーク帯域幅の消費が大きく、配布の効率が低い。また、イメージファイルをローカルに格納するには、多くの場合、一定の時間が必要とされるため、複数の配布タスクが同一のイメージファイルに対応している場合、イメージファイルの競合が発生しやすくなる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本願の実施形態の目的は、イメージ配布方法、サーバ及び記憶媒体を提供することであり、新しいイメージ配布方法により、イメージ配布プロセスの効率と安定性を向上させる。
【課題を解決するための手段】
【0005】
上述した技術的課題を解決するために、本願の実施形態はイメージ配布装置で実行されるイメージ配布方法を提供し、前記イメージ配布方法は、イメージファイルの配布要求を取得することと、イメージファイルのソースイメージレポジトリから、イメージファイルの格納場所を特定することと、イメージファイルの格納場所に基づいて、イメージファイルをターゲットイメージレポジトリに配布することと、前記の前記第1の格納場所に応じて、前記イメージファイルの各層データを前記ソースイメージレポジトリからターゲットイメージレポジトリに配布することの後に、配布後のイメージファイルの各層データの、前記ターゲットイメージレポジトリ内における第3の格納場所を特定することと、前記第3の格納場所に格納されている各層データと前記第1の格納場所に格納されている各層データとが一致しないと検証された場合、前記の前記第1の格納場所に応じて、前記イメージファイルの各層データを前記ソースイメージレポジトリからターゲットイメージレポジトリに配布するステップを再び実行することと、を含む。
【0006】
本願の実施形態はサーバさらに提供する。前記サーバは、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと通信可能に接続されたメモリとを含み、メモリには少なくとも1つのプロセッサにより実行できる指令が記憶されており、指令が少なくとも1つのプロセッサにより実行されることで、少なくとも1つのプロセッサにより上記したイメージ配布方法を実行できる。
【0007】
本願の実施形態はコンピュータ可読記憶媒体をさらに提供し、前記コンピュータ可読記憶媒体はコンピュータプログラムを記憶しており、コンピュータプログラムがプロセッサにより実行された場合、上記に記載のイメージ配布方法を実現する。
【図面の簡単な説明】
【0008】
一つ又は複数の実施形態をそれに対応する添付図面中の画像によって例示的に示し、これらの例示的な説明は、実施形態に対する限定を構成するわけではない。
【
図1】本願の第1実施形態におけるイメージ配布方法のフローチャートである。
【
図2】本願の第2実施形態におけるイメージ配布方法のフローチャートである。
【
図3】本願の第3実施形態におけるイメージ配布方法のフローチャートである。
【
図4】本願の第4実施形態におけるイメージ配布装置の構成模式図である。
【
図5】本願の第4実施形態におけるイメージ配布装置の構成模式図である。
【
図6】本願の第5実施形態におけるサーバの構成模式図である。
【発明を実施するための形態】
【0009】
本願実施例の目的、技術案及び利点をより明らかにするために、以下では、添付図面を組み合わせて本願の各実施形態を詳しく説明する。しかしながら、当業者であれば、本願の各実施形態において、読み手に本願をよりよく理解してもらうために多くの技術的詳細が提示されていることを理解することができる。しかし、これらの技術的詳細及び以下の各実施形態に基づく様々な変更及び修正がなくとも、本願の保護を求める技術案を実現することができる。以下の各実施例の区分は、説明の便宜のためになされており、本願の具体的な実施形態にいかなる限定を構成すべきではなく、各実施形態は、矛盾しない限り、組み合わせたり互いに引用したりすることができる。
【0010】
本発明の第1実施形態は、イメージ配布方法に関し、この方法によれば、イメージファイルの配布要求を取得し、イメージファイルの各層データの、ソースイメージレポジトリ内における第1の格納場所を特定し、第1の格納場所に応じて、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布する技術的手段は、イメージ配布が必要な場合、イメージファイルの各層データの格納場所を特定してからイメージ配布を行うことにより、イメージをローカルにプルしてからターゲットイメージレポジトリにプッシュする必要がなくなり、イメージ配布の効率が著しく向上するとともに、イメージファイルをローカルにプルする際に発生する可能性のあるファイル競合が回避され、イメージ配布プロセスの安定性が向上する。
【0011】
以下では、本実施形態のイメージ配布方法の実現の詳細について説明するが、以下の内容は、理解を容易にするために提供される実現の詳細に過ぎず、本案を実施するための必須条件ではない。
【0012】
本実施形態の具体的な流れは
図1に示すように、具体的には、以下のステップを含む。
【0013】
ステップ101において、イメージファイルの配布要求を取得する。
【0014】
具体的には、本実施形態でいうイメージファイルとは、配布要求で要求されるイメージファイルであり、すなわち、配布対象のイメージファイルである。ユーザが複数のイメージレポジトリ間でイメージを配布する必要がある場合、DClient(Image Distribute Client,イメージ配布システムクライアント側)によりイメージファイルの配布要求を、IDServer(Image Distribute Server,イメージ配布システムサーバ側)に送信する。利用可能なIDClientには、Web(ウェブページクライアント)、App(モバイル端末用アプリケーション)、コマンドラインバイナリプログラム、コマンドラインスクリプトなどが含まれる。本実施形態における実行主体はIDServerであり、IDClientと同じ仮想ノード上または同じ仮想マシンノードにデプロイされて、イメージレポジトリを管理および制御する機能を果たすことができる。ここで、イメージ配布要求には、少なくとも、配布対象のイメージファイルのファイルの名前または複数の配布対象のイメージファイルの名前を含むイメージリストと、ソースイメージレポジトリのアドレスおよびターゲットイメージレポジトリのアドレスとが保持される。
【0015】
ステップ102において、イメージファイルの各層データの、ソースイメージレポジトリ内における第1の格納場所を特定する。
【0016】
具体的には、IDServerからイメージファイルの配布要求を受信した後、ソースイメージレポジトリ内でイメージ特定を行い、すなわち、配布要求内のイメージファイル名およびソースイメージレポジトリのアドレスを解析するとともに、イメージレポジトリ内におけるイメージの特別な格納構造に関連して、ソースイメージレポジトリ内における配布対象のイメージファイルの各層データの格納場所、すなわち第1の格納場所をイメージレポジトリから特定する。その中で、イメージファイルの各層データ、すなわち、基礎となるデータは、イメージレポジトリ内におけるイメージファイルの特別な格納構造によって決まり、基礎となるデータには、repositories、blobs、layers、manifestsなどが含まれるが、これらに限定されない。このうち、repositoriesは、テナント、タグ、参照関係などを含む、イメージの基礎的な情報を格納するために使用される。blobsは、イメージ各層の実際のデータを格納するために使用される。layersは、実際のデータ層に対するあるイメージの参照関係を格納するために使用される。manifestsは、あるイメージのタグと、実際のデータ層に対する各タグの参照関係とを格納するために使用される。ソースイメージレポジトリ内におけるイメージファイルの基礎となるデータが特定されると、イメージファイルの基礎となるデータをロックし、基礎となるデータを保存する。
【0017】
一例において、基礎となるデータの保存は一時的なものであってもよい。例えば、基礎となるデータをサーバのランダムアクセスメモリRAM、すなわち揮発性メモリに書き込み、今回のイメージ配布オペレーションの実行が終ると、基礎となるデータが占有していたメモリ空間を解放する。さらに、基礎となるデータには永続性があってもよく、例えば、基礎となるデータを、データベース、サーバのローカル磁気ディスク、クラウド側のストレージなどの不揮発性メモリに書き込むことで、後にイメージファイルに対する検証プロセス、または該イメージファイルに対する他の配布オペレーションを行う際に、イメージファイルの格納場所を再び特定する必要がなくなるため、イメージファイル配布の効率を向上させる。
【0018】
ステップ103において、第1の格納場所に応じて、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布する。
【0019】
具体的には、イメージファイルを配布する場合、ターゲットイメージレポジトリに配布されたファイルデータは、イメージを格納する特定構造に依然として合致する。つまり、ターゲットイメージレポジトリに配布されたイメージファイルは、ソースイメージレポジトリ内のイメージファイルの格納構造と一致しており、その基礎となるデータも一致している。
【0020】
そこで、本願の第1実施形態はイメージ配布方法を提供し、該イメージ配布方法によれば、イメージファイルの配布要求を取得し、イメージファイルの各層データの、ソースイメージレポジトリ内における第1の格納場所を特定し、第1の格納場所に応じて、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布する技術的手段は、イメージ配布が必要な場合、イメージファイルの各層データの格納場所を特定してからイメージ配布を行うことにより、イメージをローカルにプルしてからターゲットイメージレポジトリにプッシュする必要がなくなり、複数のイメージ配布要求のタスクが同時に進行する際にイメージ配布システムサーバ側で配布要求を処理する効率が著しく向上するとともに、イメージファイルをローカルにプルする際に発生する可能性のあるファイル競合が回避され、イメージ配布プロセスの安定性が向上する。
【0021】
本発明の第2実施形態は、イメージ配布方法に関し、第2実施形態は第1実施形態とほぼ同じである。本実施形態において、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布する前に、配布対象のイメージファイルと同じイメージファイルがターゲットイメージレポジトリ内に存在しないか否かを判定し、判定結果がYESである場合、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布し、それ以外の場合、イメージファイルの配布オペレーションを実行しない。ターゲットイメージレポジトリ内のイメージファイルに対する検査により、イメージ配布時の不要なデータ伝送オペレーションを回避できる。
【0022】
本実施形態におけるイメージ配布方法の具体的なフローチャートは
図2に示すように、具体的には、以下のステップを含む。
【0023】
ステップ201において、イメージファイルの配布要求を取得する。
【0024】
ステップ202において、イメージファイルの各層データの、ソースイメージレポジトリ内における第1の格納場所を特定する。
【0025】
本実施形態におけるステップ201およびステップ202は、本願の第1実施形態におけるステップ101およびステップ102と同じであり、関連する実施の詳細については、第1実施形態で既に具体的に説明したため、ここでは繰り返しを省く。
【0026】
ステップ203において、前記イメージファイルと同じイメージファイルがターゲットイメージレポジトリ内に存在するか否かを判定する。ターゲットイメージレポジトリ内に前記イメージファイルと同じイメージファイルが存在しない場合、ステップ204を実行し、第1の格納場所に応じて、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布し、それ以外の場合、イメージ配布プロセスを終了する。
【0027】
具体的には、配布対象のイメージファイルと同じイメージファイルがターゲットイメージレポジトリに存在する場合、ユーザが要求しているイメージファイルがイメージレポジトリに既に存在することを示すため、イメージ配布オペレーションが不要となり、仮想マシン環境下での伝送リソースを節約し、占有帯域幅を低減してイメージ配布のスピードをさらに上げ、複数のイメージ配布要求のタスクが同時に進行する場合、イメージ配布システムのサーバ側で配布要求の処理効率を大幅に向上させる。
【0028】
一例において、前記イメージファイルと同じイメージファイルがターゲットイメージレポジトリ内に存在しないと判定する方法は以下の通りである。
【0029】
まず、配布対象のイメージファイルのイメージ名をターゲットイメージレポジトリ内で検索し、すなわち、配布対象のイメージファイルと同じ名前のイメージファイルがターゲットイメージレポジトリ内に存在するか否かを特定する。イメージファイルと同じ名前のイメージファイルがターゲットイメージレポジトリ内に存在しない場合、配布対象のイメージファイルと同じイメージファイルがターゲットイメージレポジトリ内に存在しないと判定する。この場合、第1の格納場所に応じて、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布する。
【0030】
イメージファイルと同じ名前のイメージファイルがターゲットイメージレポジトリ内に存在する場合、イメージファイルと同じ名前のイメージファイルの各層データのターゲットイメージレポジトリ内における格納場所、すなわち第2の格納場所をさらに特定する必要がある。そして、第2の格納場所と第1の格納場所に格納されている各層データを比較し、第2の格納場所に格納されている各層データと第1の格納場所に格納されている各層データとが一致しない場合、配布対象のイメージファイルと同じイメージファイルがターゲットイメージレポジトリ内に存在しないと判定する。この場合、第1の格納場所に応じて、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布する。それ以外の場合、配布対象のイメージファイルと同じイメージファイルがターゲットイメージレポジトリ内に存在すると判定し、イメージ配布プロセスを終了する。
【0031】
本実施形態において、イメージファイルの各層データからイメージファイルのファイル特徴を取得し、配布対象のイメージファイルと同じ名前のターゲットイメージレポジトリ内のイメージファイルのファイル特徴と、配布対象のイメージファイルのファイル特徴とが一致する場合、両者が同じイメージファイルであると判定する。ここで比較されるファイル特徴には、イメージファイルのデータ数、サイズ、md5コード、sha256コードなどが含まれるが、これらに限定されない。いずれか一つのファイル特徴に相違があれば、両者が異なるイメージファイルであると判定する。
【0032】
一例において、第1の格納場所に応じて、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布する具体的なオペレーション方法は、配布対象のイメージファイルの各層データを第1の格納場所からコピーし、コピーされたイメージファイルの各層データを前記第2の格納場所に上書きして格納することによって行うことができる。この方法でイメージ配布を行う場合、ターゲットイメージレポジトリに配布されたデータは、イメージを格納する特定構造に依然として、自動的に合致する。
【0033】
これにより、本実施形態は、イメージ配布方法を提供し、該イメージ配布方法によれば、イメージを配布する前に、配布対象のイメージファイルと同じ名前のターゲットイメージレポジトリ内のイメージファイルを特定し、完全に同じイメージファイルが存在する場合、イメージ配布オペレーションを行わないことで、データ伝送によって占有される帯域幅が削減されるため、複数の配布要求が同時に発生した場合の処理効率が大幅に向上するとともに、配布完了後の、ターゲットイメージレポジトリ内で発生する同じイメージファイルのファイル競合の問題を回避することもできる。
【0034】
当業者であれば、上記の各種方法のステップ分けは、単に明確に説明するためになされたものであり、実装時に1つのステップに統合するか、又は一部のステップを複数のステップに再分割することができ、同一の論理的関係が含まれていれば、いずれも本願の保護範囲内に含まれること、アルゴリズム及びプロセスの中核となる設計を変更せずに、そのアルゴリズム又はプロセスに重要でない修正を加えたり、又は重要でない設計を導入したりしたものであれば、いずれも本願の保護範囲内に含まれることは、理解できるであろう。
【0035】
本発明の第3実施形態は、イメージ配布方法に関し、第3実施形態は第1実施形態とほぼ同じである。本実施形態において、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布した後に、配布後のイメージファイルの各層データの第3の格納場所と第1の格納場所とを検証する。両者が一致する場合、イメージ配布が成功したことを示すため、イメージ配布プロセスを終了し、両者が一致しない場合、配布中にイメージファイルにエラーが発生したことを示すため、第1の格納場所に応じて、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布するステップを再び実行する。本実施形態において、配布後のファイルを検証することにより、イメージファイル配布の正確度を保証し、イメージ配布プロセスの安定性をさらに向上させる。
【0036】
本実施形態におけるイメージ配布方法の具体的なフローチャートは
図3に示すように、具体的には、以下のステップを含む。
【0037】
ステップ301において、イメージファイルの配布要求を取得する。
【0038】
ステップ302において、イメージファイルの各層データの、ソースイメージレポジトリ内における第1の格納場所を特定する。
【0039】
ステップ303において、前記イメージファイルと同じイメージファイルがターゲットイメージレポジトリ内に存在するか否かを判定する。ターゲットイメージレポジトリ内に前記イメージファイルと同じイメージファイルが存在しない場合、ステップ304を実行し、第1の格納場所に応じて、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布し、それ以外の場合、イメージ配布プロセスを終了する。
【0040】
本実施形態におけるステップ301からステップ304は、第2実施形態におけるステップ301からステップ304とほぼ同じであり、関連する実施の詳細については、第2実施形態で既に具体的に説明したため、ここでは繰り返しを省く。
【0041】
ステップ305において、配布後のイメージファイルの第3の格納場所に格納されている各層データと、第1の格納場所に格納されている各層データとが一致するか否かを検証する。前記第3の格納場所に格納されている各層データと前記第1の格納場所に格納されている各層データとが一致しないと検証された場合、配布プロセスを終了する。それ以外の場合、ステップ304を再び実行し、第1の格納場所に応じて、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布する。
【0042】
具体的には、イメージファイルの配布が完了した後に、配布後のイメージファイルの各層データの、ターゲットイメージレポジトリ内における第3の格納場所を特定する。そして、第3の格納場所に格納されている各層データと第1の格納場所に格納されている各層データとが一致するか否かを検証する。第3の格納場所に格納されている各層データと第1の格納場所に格納されている各層データとが一致しないと検証された場合、ステップ304を再び実行する。配布後のイメージファイルの格納データを検証することにより、配布後のイメージファイルのデータに欠落や誤りがないことを保証し、イメージ配布プロセスにおけるイメージファイルの安定性をさらに向上させる。
【0043】
本実施形態において、本実施形態におけるイメージファイルの各層データを検証する際に、第2の実施形態と似ており、同様に、2つのイメージファイルの、ファイルのデータ数、サイズ、md5コード、sha256コードなどのファイル特徴を比較する。ターゲットイメージレポジトリ内の配布後イメージファイルと、ソースイメージレポジトリ内のイメージファイルとのいずれか一つのファイル特性に相違がある場合、両方の格納データが一致しないことを示す。
【0044】
また、ユーザは、イメージ配布システムのサーバ側にイメージ再配布の回数上限を設定することもできる。イメージ配布にエラーが複数回発生した場合、システムに問題が発生した可能性があると考え、管理者にエラーメッセージをプッシュし、管理者にシステムに他のエラーが発生した否かをチェックさせることで、イメージ配布プロセスが循環エラーに陥って、システムリソースを浪費することを回避する。
【0045】
一例において、イメージファイルの格納アドレス情報を永続的に保存する必要がある場合、イメージファイルの各層データの、ソースイメージレポジトリ内における第1の格納場所を特定した後に、および、イメージファイルと同じ名前のイメージファイルの各層データの、ターゲットイメージレポジトリ内における第2の格納場所を特定した後に、第1の格納場所と第2の格納場所をそれぞれ、データベース、サーバのローカル磁気ディスク、クラウド側のストレージなどの不揮発性メモリに書き込んでもよい。
【0046】
本実施形態において、ステップ305の後に判断してステップ304を再び実行する場合、まず、不揮発性メモリから、保存されている第1の格納場所を取得する。配布後のイメージファイルの、ターゲットイメージレポジトリ内における第3の格納場所を直接特定できる以外にも、さらに、不揮発性メモリから、以前に保存された第2の格納場所を取得することもできる。次に、第1の格納場所に記憶されている各層データと、第2の格納場所または第3の格納場所に記憶されている各層データとが一致するか否かを検証することにより、配布後のイメージファイルの検証プロセスを完了する。第1の格納場所に記憶されている各層データと、第2の格納場所または第3の格納場所に記憶されている各層データとが一致する場合、データ配布プロセスを終了し、それ以外の場合、ステップ304を再び実行する。
【0047】
これにより、本実施形態は、イメージ配布方法を提供し、該イメージ配布方法によれば、イメージの配布が完了した後に、ターゲットイメージレポジトリ内の配布後のイメージファイルの各層データと、ソースイメージレポジトリ内のイメージファイルの各層データとが一致するか否かを検証し、イメージファイル配布の正確度を保証し、イメージ配布プロセスの安定性をさらに向上させる。
【0048】
本願の第4実施形態はイメージ配布装置に関し、
図4に示すように、以下の部品を含む。
【0049】
受信モジュール401は、イメージファイルの配布要求を取得し、イメージ名を解決した後に、イメージ名を制御モジュールに送信するように構成されている。
【0050】
制御モジュール402は、配布対象のイメージファイルの各層データの、ソースイメージレポジトリ内における第1の格納場所を特定するように構成されている。
【0051】
一例において、さらに、配布対象のイメージファイルと同じ名前のイメージファイルの各層データの、ターゲットイメージレポジトリ内における第2の格納場所を特定するように構成されている。
【0052】
一例において、さらに、配布後のイメージファイルの各層データの、ターゲットイメージレポジトリ内における第3の格納場所を特定するように構成されている。
【0053】
一例において、さらに、イメージファイルの各層データの、ソースイメージレポジトリ内における第1の格納場所を特定した後に、および、イメージファイルと同じ名前のイメージファイルの各層データの、ターゲットイメージレポジトリ内における第2の格納場所を特定した後に、第1の格納場所と第2の格納場所をそれぞれ、データベース、サーバのローカル磁気ディスク、クラウド側のストレージなどの不揮発性メモリに書き込むように構成されている。
【0054】
検証モジュール403は、制御モジュール402によって特定された第1の格納場所および第2の格納場所に応じて、イメージファイルと同じイメージファイルがターゲットイメージレポジトリに存在しないと判定し、検証結果を配布モジュール404に送信するように構成されている。
【0055】
一例において、さらに、不揮発性メモリから、第1の格納場所及び/又は第2の格納場所を取得するように構成されている。
【0056】
一例において、さらに、配布後のイメージファイルの各層データの第3の格納場所と第1の格納場所とが一致するか否かを検証し、検証結果を配布モジュール404に送信するように構成されている。
【0057】
配布モジュール404は、検証モジュールから送信された検証結果および第1の格納場所に応じて、イメージファイルの各層データをソースイメージレポジトリからターゲットイメージレポジトリに配布するように構成されている。
【0058】
具体的な応用において、本実施形態におけるイメージ装置の構成と相互作用は
図5に示されている。ここで、受信モジュール501はクライアント側に接続され、ユーザがクライアント側を介して発行したイメージ配布要求を受信するように構成されている。
【0059】
制御モジュール502、検証モジュール503、および配布モジュール504は、いずれも、ソースイメージレポジトリおよびターゲットイメージレポジトリに同時に通信可能に接続されている。
【0060】
本実施形態は、第1実施形態、第2実施形態または第3実施形態に対応する装置実施形態であり、本実施形態は第1実施形態または第2実施形態と組み合わせて実施できることは、容易に理解できる。第1実施形態、第2実施形態または第3実施形態で記載された関連する技術的詳細は、本実施形態においても有効であるため、重複を減らすためにここでは説明を省く。したがって、本実施形態で記載された関連する技術的詳細は、第1実施形態、第2実施形態または第3実施形態にも適用可能である。
【0061】
なお、本実施形態に係る各モジュールはいずれも論理モジュールであり、実際の応用において、1つの論理ユニットは1つの物理ユニットであってもよく、1つの物理ユニットの一部であってもよく、さらに、複数の物理ユニットの組み合わせで実現してもよい。また、本願の創造的な部分を際立たせるために、本願で提起された技術的課題の解決にあまり関係のない手段を本実施例には導入していないが、これは本実施例に他の手段が存在しないことを示しているわけではない。
【0062】
本発明の第5実施形態はサーバに関する。
図6に示すように、少なくとも1つのプロセッサ601と、少なくとも1つのプロセッサ601と通信可能に接続されたメモリ602とを含み、メモリ602には少なくとも1つのプロセッサ601により実行できる指令が記憶されており、指令が少なくとも1つのプロセッサ601により実行されることで、少なくとも1つのプロセッサ601により上記したイメージ配布方法を実行できる。
【0063】
ここで、メモリおよびプロセッサはバス方式で接続され、バスは任意の数の相互接続されたバスおよびブリッジを含むことができ、バスによって1つまたは複数のプロセッサとメモリの様々な回路が一つに接続される。バスはまた、周辺機器、電圧安定器、およびパワーマネジメント回路などの様々な他の回路を一つに接続することができるが、これらは当分野で周知なことであるので、本文ではこれ以上説明しない。バスインターフェースは、バスとトランシーバとの間のインターフェースを提供する。トランシーバは、1つの素子であってもよく、複数の受信機および送信機のような複数の素子であってもよく、伝送媒体上で様々な他の装置と通信するための手段を提供する。プロセッサによって処理されたデータはアンテナを介して無線媒体で伝送され、本実施形態において、アンテナはまたデータを受信して、プロセッサにデータを伝送する。
【0064】
プロセッサは、バスの管理および通常の処理を担う以外にも、さらにタイミング、周辺インターフェース、電圧調整、電源管理、およびその他の制御機能を含む様々な機能を提供することができる。一方、メモリは、プロセッサによりオペレーションを実行するときに使用されるデータを記憶するために使用されてもよい。
【0065】
本願の第五実施例は、コンピュータプログラムが記憶されたコンピュータ可読記憶媒体に関する。コンピュータプログラムがプロセッサにより実行された時、上記の方法実施形態を実現する。
【0066】
すなわち、当業者であれば、上記の実施形態の方法における全部または一部のステップを実施することは、プログラムによって関連するハードウェアに指令することによって実現できることは、理解できるであろう。このプログラムは1つの記憶媒体に記憶され、1つの装置(ワンチップコンピュータ、チップなどであってもよい)またはプロセッサ(processor)に本願の各実施形態に記載の方法の全部または一部のステップを実行させるためのいくつかの指令を含む。一方、上記記憶媒体は、USBメモリ、リムーバブルハードディスク、リードオンリーメモリ(ROM:Read-Only Memory)、ランダムアクセスメモリ(RAM:Random Access Memory)、磁気ディスク又は光ディスク等、プログラムコードを記憶可能な種々の媒体を含む。
【0067】
当業者であれば、上記の各実施例は、本出願を実施するための具体的な実施例であり、実際の応用においては、本願の精神及び範囲を逸脱することなく、形式的に及び細部に様々な変更を加えることができることを理解することができる。