(54)【発明の名称】制限されないデータセットを伴う制限されたデータセットのクラウド・ネットワークへの格納およびクラウド・ネットワークからの取得のためのコンピュータ・プログラム、コンピュータ・システム、および方法
(58)【調査した分野】(Int.Cl.,DB名)
制限されたデータセットをクラウド・ネットワークのクラウド・ノード内のクラウド・ストレージに格納するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムが、コンピュータ・システムに、
データセットを1つまたは複数のストレージ・デバイスから前記クラウド・ストレージにダンプすることの要求を受信することであって、前記データセットが制限されたデータセットおよび制限されないデータセットを含んでおり、前記制限されたデータセットが前記クラウド・ストレージによってサポートされていない形式であり、前記制限されないデータセットが前記クラウド・ストレージによってサポートされている形式である、前記受信することと、
前記制限されたデータセットを識別することと、
前記制限されたデータセットを、前記クラウド・ストレージによってサポートされている形式に変換して、変換されたデータセットを生成することと、
前記変換されたデータセットおよび前記制限されないデータセットを前記クラウド・ストレージ内の1つのコンテナにダンプすることと
を実行させる、コンピュータ・プログラム。
前記ダンプすることの要求が、CLOUDキーワード、CONTAINERキーワード、およびOBJECTPREFIXキーワードを含んでいるダンプ・コマンドを含んでいる、請求項1に記載のコンピュータ・プログラム。
前記復元することの要求が、CLOUDキーワード、CONTAINERキーワード、およびOBJECTPREFIXキーワードを含んでいる復元コマンドを含んでいる、請求項6に記載のコンピュータ・プログラム。
SaaS(Software as a Service)が、コンピュータ・プログラムの動作を実行するように構成されている、請求項1に記載のコンピュータ・プログラム。
前記ダンプすることの要求が、CLOUDキーワード、CONTAINERキーワード、およびOBJECTPREFIXキーワードを含んでいるダンプ・コマンドを含んでいる、請求項9に記載のコンピュータ・システム。
前記復元することの要求が、CLOUDキーワード、CONTAINERキーワード、およびOBJECTPREFIXキーワードを含んでいる復元コマンドを含んでいる、請求項14に記載のコンピュータ・システム。
SaaS(Software as a Service)が、前記コンピュータ・システムの動作を実行するように構成されている、請求項9に記載のコンピュータ・システム。
前記ダンプすることの要求が、CLOUDキーワード、CONTAINERキーワード、およびOBJECTPREFIXキーワードを含んでいるダンプ・コマンドを含んでいる、請求項17に記載の方法。
前記データセットを前記コンテナから復元することの要求を受信することに応答して、前記制限されないデータセットを前記クラウド・ストレージから前記1つまたは複数のストレージ・デバイスに直接復元することをさらに含んでいる、請求項17に記載の方法。
前記復元することの要求が、CLOUDキーワード、CONTAINERキーワード、およびOBJECTPREFIXキーワードを含んでいる復元コマンドを含んでいる、請求項22に記載の方法。
【発明を実施するための形態】
【0017】
本発明のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に限定されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかである。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択された。
【0018】
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において示された内容の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【0019】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間とサービス・プロバイダとのやりとりを最小限に抑えて、それらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
【0020】
特徴は、次のとおりである。
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどのコンピューティング能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベル(例えば、国、州、データセンタ)では、場所を指定できる場合がある。
迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【0021】
サービス・モデルは、次のとおりである。
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
【0022】
デプロイメント・モデルは、次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、ある組織のためにのみ運用される。このクラウド・インフラストラクチャは、この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0023】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
【0024】
ここで
図1を参照すると、クラウド・コンピューティング環境の例50が示されている。図示されているように、クラウド・コンピューティング環境50は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、PDA(personal digital assistant)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組み合わせなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード10を含んでいる。ノード10は、互いに通信することができる。ノード10は、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどの、1つまたは複数のネットワーク内で物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境50は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組み合わせをサービスとして提供できる。
図1に示されたコンピューティング・デバイス54A〜Nの種類は、例示のみが意図されており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス指定可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【0025】
ここで
図2を参照すると、クラウド・コンピューティング環境50(
図1)によって提供される機能的抽象レイヤのセットが示されている。
図2に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0026】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーク・コンポーネント66が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0027】
仮想化レイヤ70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75などの仮想的実体を提供できる抽象レイヤを備える。
【0028】
一例を挙げると、管理レイヤ80は、以下で説明される機能を提供できる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理84は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行85は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0029】
ワークロード・レイヤ90は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育の配信93、データ分析処理94、トランザクション処理95、ならびに制限されないデータセットを伴う制限されたデータセットのクラウド・ネットワークへの格納およびクラウド・ネットワークからの取得96が挙げられる。
【0030】
したがって特定の実施形態では、制限されないデータセットを伴う制限されたデータセットのクラウド・ネットワークへの格納およびクラウド・ネットワークからの取得を実装するソフトウェアまたはプログラムが、本明細書に記載された実施形態に従って、クラウド環境内のサービスとして提供される。
【0031】
図3は、特定の実施形態に従って、コンピューティング環境をブロック図で示している。
図3では、メインフレーム310がストレージ・コントローラ320に結合され、ストレージ・コントローラ320がクラウド・ネットワーク340に結合されている。クラウド・ネットワーク340は、
図1および
図2を参照して説明されている方法で実装されてよい。メインフレーム310は、アプリケーション312と、1つまたは複数のストレージ・デバイス314(例えば、直接アクセス・ストレージ・デバイス(DASD:Direct Access Storage Devices))と、データ管理アプリケーション318(例えば、Data Facility Storage Management System(DFSMS)dss(DFSMSdss(R))アプリケーション)とを含んでいる。DASD314は、制限されたデータセットおよび制限されないデータセット316を格納する。実施形態では、制限されないデータセットは、クラウドによってサポートされるデータセットと呼ばれてもよく、一方、制限されたデータセットは、クラウドによってサポートされないデータセットと呼ばれてもよい。制限されないデータセットは、クラウド・ストレージによってサポートされている形式である。
【0032】
制限されたデータセットは、制限されたデータセットをクラウド・ストレージに格納するために必要な検証や再ブロック化などの、追加の論理的処理を必要とする形式である。アプリケーション312は、データをストレージ・デバイス314に書き込む。
【0033】
あらゆる種類のデータセットが、クラウドと互換性がある可能性がある。クラウドと互換性がないデータセットは、データセットを復元するためにメインフレーム310が追加処理を実行することが必要になる属性を含んでいるデータセットである。
【0034】
例えば、次の属性によって、データセットはクラウドと互換性がなくなる。
X’1’ データセットが、特定の種類のデバイス(例えば、International Business Machines(IBM)Corporationから提供されている3380直接アクセス・ストレージ・デバイス)上に存在する。
X’2’ データセットが、多層仮想記憶アクセス方式(VSAM:Virtual Storage Access Method)データセットである。
X’3’ データセットが、シングル・ストライプ・マルチボリューム・バージョン1タイプ(single striped multi-volume version 1 type)である。
X’4’ ソースとターゲットの間でブロック・サイズが一致しない。
X’5’ データセットが、キー範囲を含んでいるVSAMデータセットである。
X’6’ データセットが、インデックスを埋め込んだキー順データセット(KSDS:Key-Sequenced Dataset)である。
X’7’ データセットが、高使用相対バイト・アドレス(RBA:Relative Byte Address)が高割り振り相対バイト・アドレス(HARBA:High Allocated Relative Byte Address)に等しいVSAMデータセットである。
X’8’ ソースとターゲットの間で制御域(CA:Control Area)/制御間隔(CI:Control Interval)のサイズが一致しない。
X’9’ データセットが、互換性のないCAサイズを含んでいるVSAMデータセットである。
X’A’ データセットが、統合カタログ機能のユーザ・カタログである。
X’B’ データセットが、順次データセットが最後以外のボリューム上でファイルの末尾を含んでいる、マルチボリューム拡張形式バージョン2(multi-volume extended format version 2)である。
X’C’ VSAMデータセットが、15未満のCAサイズを含み、トラックによって割り当てられており、16,777,215より大きいトラック数を含んでいる。
【0035】
DASDは、各物理レコードが離散的位置および一意のアドレスを有しているストレージ・デバイスとして説明されてよい。DASDとしては、例えば、ディスク・ドライブ、磁気ドラム、データ・セル、および光ディスク・ドライブが挙げられる。ストレージ・コントローラ320は、データセット・ダンプ・システム322、1つまたは複数の変換されたダンプ・データセット324、1つまたは複数の制限されないデータセット326、および中間ストレージ328を含んでいる。変換されたダンプ・データセット324は、クラウド・ネットワーク340内で格納できる形式に変換された制限されたデータセットを表す。クラウド・ネットワーク340は、クラウド・ストレージ344a〜344nをそれぞれ含むクラウド・ノード342a〜342nを含んでいる。データセット・ダンプ・システム322は、データセット(制限されたデータセットおよび制限されないデータセットの両方)をストレージ・デバイス314からクラウド・ストレージ344a〜344nにダンプする。
【0036】
実施形態では、データセット・ダンプ・システム322は、ストレージ・デバイスへのダンプ/ストレージ・デバイスからの復元機能を利用して、クラウドの処理に関して拒否される制限されたデータセットに対して、変換されたダンプ・データセット324を作成する。
【0037】
SAMは、順次アクセス方式(Sequential Access Method)を表す。SAMダンプ・データセットは、フラット・ファイルである。フラット・ファイルは、順次形式を含み、階層構造を含まないデータセットとして説明されてよい。特定の実施形態では、変換されたデータセットはSAM形式である。他の実施形態では、変換されたダンプ・データセットは他の形式であってよい。しかし、ダンプは、従来、連続的にアクセスされるテープに書き込まれていたため、通常、順次形式で書き込まれる。
【0038】
データセット・ダンプ・システム322は、変換されたダンプ・データセット324を、制限されないデータセット(すなわち、ストレージ・デバイスへのダンプ/ストレージ・デバイスからの復元機能によってサポートされているデータセット)と共に格納することができる。実施形態は、好ましくはクラウドによってサポートされるデータセットおよびクラウドによってサポートされないデータセットの両方を、複数のバックアップを管理することを必要とせずに、クラウド上の同じクラウド・コンテナ内に保有する。実施形態は、好ましくは制限された、クラウドによってサポートされないデータセットをすべて集約し、クラウドによってサポートされているコンテナ・データセット(container dataset)内に配置し、そのコンテナを、クラウドによってサポートされる他のデータセットと共にバックアップする。実施形態は、制限されたデータセットをクラウド・ストレージ内に配置するために、3つの新しいキーワードを既存の機能に追加する。実施形態では、キーワードCLOUD、CONTAINER、およびOBJECTPREFIXが既存のダンプ・コマンドおよび復元コマンドに追加され、論理的処理に適用される。実施形態では、CLOUDキーワードを指定するときに、CONTAINERキーワードおよびOBJECTPREFIXキーワードが指定される。
【0039】
図4は、特定の実施形態に従って、ダンプ・コマンドまたは復元コマンドで使用されるCLOUDキーワードの構文400を示している。CLOUDキーワードは、クラウド構成名(cloud construct name)を入力として受け取るパラメータである。クラウド構成は、クラウドの名前およびアカウント/テナント情報などのクラウドに関する情報を含む。ストレージ管理者は、クラウド構成を構成してよく、データ管理アプリケーション318は、データセットをダンプおよび復元するときに、構成内の情報を使用する。この構成名は、最大30バイトであってよい。
【0040】
実施形態では、データ管理アプリケーション318は、ストレージ・クラス定義または管理クラス定義を取得するために、または特定のストレージ・デバイス(例えば、DASD)のボリュームに関連付けられているストレージ・グループを決定するために、別の機能を呼び出してよい。
【0041】
図5は、特定の実施形態に従って、ダンプ・コマンドまたは復元コマンドで使用されるCONTAINERキーワードの構文500を示している。CONTAINERキーワードは、オブジェクトが格納されているアカウントの下での位置を指定するパラメータである。コンテナ名は、128バイトの長さであってよく、フォワード・スラッシュを含むことができない。コンテナ内のオブジェクトに対するアクセス権は、読み取りおよび書き込みアクセス制御リスト(ACL:Access Control Lists)を使用して保護される。コンテナに対するアクセス権が付与された後に、そのコンテナ内のすべてのオブジェクトに対するアクセス権が提供される。
【0042】
図6は、特定の実施形態に従って、ダンプ・コマンドまたは復元コマンドで使用されるOBJECTPREFIXキーワードの構文600を示している。OBJECTPREFIXキーワードは、データ管理アプリケーション318が、オブジェクトが格納される指定されたコンテナの下に格納されているオブジェクトの名前の先頭に追加する接頭辞名を指定するパラメータである。オブジェクト名は、データ管理アプリケーション318がMCSTORE機能によって定義された制限を超えないことを保証するように、最大128バイトの長さであってよい。実施形態では、オブジェクトの接頭辞は、44バイトを超えなくてよい。コンテナ内のオブジェクトに対するアクセス権は、読み取りおよび書き込みACLを使用して保護される。コンテナに対するアクセス権が付与された後に、そのコンテナ内のすべてのオブジェクトに対するアクセス権が提供される。データ管理アプリケーション318は、データセットをクラウド・ストレージに格納するときに、オブジェクトの3つのセットを作成する。第1のオブジェクトは、データセットの属性を含んでいるメタデータ・オブジェクトである(例えば、データセット制御ブロック、非VSAMボリューム・レコード(NVR:non-VSAM Volume Record)、VSAMボリューム・レコード(VVR:VSAM Volume Record)など)。第2のオブジェクトは、データ・オブジェクトである。第3のオブジェクトは、アプリケーションによって渡されてよいアプリケーション・メタデータ・オブジェクトである。第3のデータ・オブジェクトは、ストレージ・デバイス(例えば、DASD)上にデータセットが存在していたトラック上に存在していたデータを表す。
【0043】
実施形態では、ソース・データセットが存在するボリュームごとに、メタ・オブジェクトおよびデータ・オブジェクトが存在する。つまり、ダンプされたデータセットが3つのボリューム上に存在する場合、それらのボリュームごとにメタ・オブジェクトおよびデータ・オブジェクトが存在する。データセットが、2つのボリューム上に存在するインデックス付きVSAMデータセットである場合、DASD上にデータセットが存在するコンポーネントごとに、メタ・オブジェクトおよびデータ・オブジェクトが存在する。サポートを簡略化するために、データ管理アプリケーション318が、メタデータに対してさらに多くのオブジェクトを作成していてよい。
【0044】
ADRTAPBは、ダンプ・テープまたはダンプ・データセットのレコードの計画を立てるマクロの名前であり、DTHDR、DTDSHDR、およびDTSPHEREは、ADRTAPBマクロ内にある下部構造である。DTTTRKは、ADRTAPBマクロの一部である下部構造であり、データのトラックの計画を立てるのに役立つ。実施形態では、オブジェクトは、例えばDTHDR、DTDSHDR、DTSPHEREなどの、ADRTAPBレコードから成ってよい。DTTTRKレコードに類似するデータ・オブジェクトに関しては、これらのオブジェクトは範囲から成ってよく、ボリュームごとに1つのデータセットにつき、1つのデータ・オブジェクトのみが存在してよい。
【0045】
図7は、実施形態に従って、ダンプ・コマンドまたは復元コマンドのキーワード700を示している。例えば、実施形態によって使用されるダンプ・コマンドまたは復元コマンドは、キーワードCLOUD、CONTAINER、およびOBJECTPREFIXを含む。ダンプ・コマンドまたは復元コマンドにおいて、その他のキーワードが使用されてもよい。
【0046】
特定の実施形態では、新しいキーワードCLOUDCREDENTIALSおよびDEBUGを使用できる。CLOUDCREDENTIALSキーワードは、クラウドで認証するときに使用される最大64文字の認証情報を指定するパラメータである。DEBUGキーワードは、パラメータである。DEBUGは、DEBUG CLMSGおよび(MINIMAL、SUMMARIZED、またはDETAILEDの)サブパラメータをダンプ・コマンドまたは復元コマンドに含めることによって、診断ツールとして使用されてよい。CLMSGサブキーワードが指定された場合、データ管理アプリケーション318が、クラウド・ストレージへのバックアップの進行に関する詳細を提供するメッセージを発行する。DEBUG(CLMSG)は、次のように、サブキーワードのうちの1つが後ろに続いて指定される。
DEBUG CLMSG(MINIMAL) −データ管理アプリケーション318が、クラウド・ストレージへのバックアップの進行に関する詳細を提供するメッセージを何も発行しないことを指定する。
DEBUG CLMSG(SUMMARIZED) − データ管理アプリケーション318が、クラウド・ストレージに格納されるオブジェクトごとに、情報メッセージを発行することを指定する。
DEBUG CLMSG(DETAILED) − データ管理アプリケーション318が、クラウド・ストレージ内のオブジェクトに対して作成された各ハイパー・テキスト転送プロトコル(HTTP:Hyper Text Transfer Protocol)要求に関する詳細な情報を提供することを指定する。
【0047】
実施形態では、DEBUG(CLMSG)が指定されない場合、MINIMALの処理がデフォルトである。
【0048】
図8は、特定の実施形態に従って、データセットを1つまたは複数のストレージ・デバイスからクラウド・ストレージにダンプするための動作をフローチャートで示している。クラウド・ストレージは、クラウド・ネットワークのクラウド・ノード内にある。制御は、ブロック800で、データセット・ダンプ・システム122が、指定されたデータセットを1つまたは複数のストレージ・デバイスからクラウド・ストレージにダンプすることの要求を(メインフレーム110のデータ管理アプリケーション318から)受信することから開始し、この指定されたデータセットは、制限されたデータセットおよび制限されないデータセットを含む。このダンプすることの要求は、CLOUDキーワード、CONTAINERキーワード、およびOBJECTPREFIXキーワード、ならびに必要に応じて、CLOUDCREDENTIALSキーワードまたはDEBUGキーワードあるいはその両方を含むダンプ・コマンドであってよい。ブロック802で、データセット・ダンプ・システム122が、制限されたデータセットを指定されたデータセットから識別する。特定の実施形態では、データセット・ダンプ・システム122が、クラウドにダンプできないデータセットのリストを識別し、typrun=norunを使用してクラウドへのDUMPを実行する。typrun=norunは、模擬のダンプを実行してデータセットのリストを取得するようにメインフレーム310に対して指示する、データ管理アプリケーション318の機能のためのコマンドである。この場合、データ管理アプリケーション318のtyprun=norunの機能は、クラウドにダンプできないデータセットのリストを提供する。したがって、typrun=norunは、クラウド・ストレージでサポートされていない制限されたデータセットに関してフィルタリングするためのオプションとして説明されてよい。次に、データセット・ダンプ・システム122は、1つまたは複数のストレージ・デバイスからすべてのデータセットを抽出して、新しいデータセットを形成し、その後、制限されたデータセットをこの新しいデータセットから抽出する。その後、新しいデータセットは、制限されないデータセットを含んでおり、クラウド・ストレージに直接ダンプされてよく、クラウド・ストレージから復元されてよい。データセット・ダンプ・システム122は、(クラウド・ストレージへのダンプに失敗した)制限されたデータセットのリストを作成する。
【0049】
ブロック804で、データセット・ダンプ・システム122が、制限されたデータセットを、クラウド・ストレージによってサポートされている形式に変換し、変換されたデータセットを生成する。特定の実施形態では、データセット・ダンプ・システム122は、(DUMP機能を使用して)リストからデータセットを1つまたは複数のストレージ・デバイスにダンプして、順次ダンプ・データセットを作成し、このデータセットに任意のデータセット名(例えば、cloud.dump)を付ける。DUMP機能は、クラウドから制限されているデータセットを、クラウドと互換性がある1つのフラット・ファイルに変換する。
【0050】
ブロック806で、データセット・ダンプ・システム122が、変換されたデータセットおよび制限されないデータセットをクラウド・ストレージ内の1つのコンテナにダンプする。ダンプ・コンテナ(dump container)は、クラウド・ストレージのクラウド・ファイル・システム内のフォルダとして説明されてよい。つまり、ダンプ・コンテナはクラウド・ストレージの一部である。特定の実施形態では、データセット・ダンプ・システム122が、CONTAINERおよびOBJECTPREFIXを指定することによって、順次ダンプ・データセットを、制限されないデータセットと共にクラウド・ストレージにダンプする。コンテナは、フォルダと同種であり、オブジェクトの接頭辞はファイル名に類似している。CONTAINERおよびOBJECTPREFIXは、ダンプを格納するため、および(取得するために)ダンプの位置を特定するために、一緒に使用される。実施形態では、データセット名のリストは、データセットと共に、クラウド・ストレージに格納される。実施形態では、データセット・ダンプ・システム122は、制限されないデータセットごとに、データセット名リスト・クラウド・オブジェクト内にエントリを作成する。
【0051】
図9は、特定の実施形態に従って、データセットをクラウド・ストレージから1つまたは複数のストレージ・デバイスに復元するための動作をフローチャートで示している。制御は、ブロック900で、データセット・ダンプ・システム122が、指定されたデータセットを指定されたコンテナから復元することの要求を、メインフレーム110のデータ管理アプリケーション318から受信することから開始する。この復元することの要求は、CLOUDキーワード、CONTAINERキーワード、およびOBJECTPREFIXキーワード、ならびに必要に応じて、CLOUDCREDENTIALSキーワードまたはDEBUGキーワードあるいはその両方を含む復元コマンドであってよい。特定の実施形態では、データセット・ダンプ・システム122は、復元するために、データ管理アプリケーション318を指定されたOBJECTPREFIXおよびCONTAINERと共に使用して、復元されるデータセットを指定する。
【0052】
ブロック902で、データセット・ダンプ・システム122は、指定されたデータセットのうちの制限されないデータセットを、クラウド・ストレージから1つまたは複数のストレージ・デバイスに直接復元する。実施形態では、データセット・ダンプ・システム122は、クラウドにダンプできる(すなわち、データセット名リスト・クラウド・オブジェクト内にエントリがある)データセットごとに、データセットを直接復元する。
【0053】
ブロック904で、データセット・ダンプ・システム122は、指定されたデータセットのうちの変換されたデータセットを、クラウド・ストレージから1つまたは複数のストレージ・デバイスに復元する。実施形態では、データセット・ダンプ・システム122は、クラウドにダンプできないデータセットごとに、クラウド・ストレージから1つまたは複数のストレージ・デバイスに任意の名前(例えば、cloud.dump)でダンプされた順次ダンプ・データセットを復元する。ブロック906で、データセット・ダンプ・システム122は、変換されたデータセットを再変換して、制限されたデータセットを元の形式で生成する。実施形態では、データセット・ダンプ・システム122は、順次ダンプ・データセットからのDASD RESTOREを実行し、順次ダンプ・データセットを元の形態(すなわち、制限されたデータセット)に戻す。
【0054】
したがって、実施形態は、クラウド・データ・ストレージ内で、クラウドへのデータのダンプを実行しながら、クラウドによってサポートされないデータを除外し、クラウドによってサポートされるように設定されたコンテナとして(ストレージ・コントローラ320内の)中間ストレージ328にダンプすることによって集約し、このコンテナを、クラウドによってサポートされるデータと同じクラウド・ストレージにダンプする。
【0055】
実施形態は、追加の自己記述的なメタデータを含むデータセットを格納する。このメタデータは、格納されているデータセットのリスト、データセットがどのストレージ・デバイスに格納されているか、および元のストレージ・デバイスに関する情報を含む。
【0056】
実施形態は、データ管理アプリケーション318がデータをクラウドにダンプしようとしたときに、ソース・データセットの形式がクラウド・ストレージと互換性がない場合に対処する。実施形態は、互換性のないデータを、入力ストリームからフィルタリングして、クラウドと互換性のある形式のデータと共にパケット内に包み込み、その後、この互換性のあるパケットをクラウドにアップロードし、必要なときにクラウドからの再読み込みをサポートするために、パケット内の情報を注意深く維持する。
【0057】
図10は、特定の実施形態に従って、コンピューティング環境1010を示している。特定の実施形態では、コンピューティング環境はクラウド・コンピューティング環境である。
図10を参照すると、コンピュータ・ノード1012は、適切なコンピューティング・ノードの一例に過ぎず、本明細書に記載された本発明の実施形態の使用または機能の範囲に関して、いかなる制限を示唆することも意図されていない。いずれにせよ、コンピュータ・ノード1012は、前述した機能のいずれかを実装すること、または実行すること、あるいはその両方を行うことができる。
【0058】
コンピュータ・ノード1012は、他の多数の汎用または専用のコンピューティング・システム環境または構成で運用できるコンピュータ・システムであってよい。コンピュータ・ノード1012での使用に適したものにすることができる既知のコンピューティング・システム、環境、または構成、あるいはその組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マイクロプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらのシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などを含むが、これらに限定されない。
【0059】
コンピュータ・ノード1012は、コンピュータ・システムによって実行されているプログラム・モジュールなどの、コンピュータ・システムによって実行可能な命令との一般的な関連で説明することができる。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・ノード1012は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境で実行されてよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体に配置されてよい。
【0060】
図10に示すように、クラウド・コンピューティング・ノード1010内のコンピュータ・ノード1012は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・ノード1012のコンポーネントは、1つまたは複数のプロセッサまたはプロセッシング・ユニット1016、システム・メモリ1028、およびシステム・メモリ1028を含むさまざまなシステム・コンポーネントを1つまたは複数のプロセッサまたはプロセッシング・ユニット1016に結合するバス1018を含むことができるが、これらに限定されない。
【0061】
バス1018は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および任意のさまざまなバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、1つまたは複数の任意の種類のバス構造を表す。例として、そのようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、およびPCI(Peripheral Component Interconnect)バスを含むが、これらに限定されない。
【0062】
コンピュータ・ノード1012は、通常、さまざまなコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・ノード1012によってアクセスできる任意の使用可能な媒体にすることができ、揮発性および不揮発性媒体、取り外し可能および取り外し不可の媒体の両方を含む。
【0063】
システム・メモリ1028は、ランダム・アクセス・メモリ(RAM:random access memory)1030またはキャッシュ・メモリ1032あるいはその両方などの、揮発性メモリの形態でのコンピュータ・システム可読媒体を含むことができる。コンピュータ・ノード1012は、その他の取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単に例として、取り外し不可、不揮発性の磁気媒体(図示されておらず、通常は「ハード・ドライブ」と呼ばれる)に対する読み取りと書き込みを行うために、ストレージ・システム1034を提供することができる。図示されていないが、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびCD−ROM、DVD−ROM、またはその他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブを提供することができる。そのような例では、それぞれを、1つまたは複数のデータ媒体インターフェイスによってバス1018に接続することができる。下で詳細に示され、説明されるように、システム・メモリ1028は、本発明の実施形態の機能を実行するように構成された一連の(例えば、少なくとも1つの)プログラム・モジュールを備える少なくとも1つのプログラム製品を含むことができる。
【0064】
例えば、一連の(少なくとも1つの)プログラム・モジュール1042を含んでいるプログラム/ユーティリティ1040がシステム・メモリ1028に格納されてよいが、これに限定されず、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データも格納されてよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データまたはこれらの組み合わせは、それぞれネットワーク環境の実装を含むことができる。プログラム・モジュール1042は、通常、本明細書に記載された本発明の実施形態の機能または方法あるいはその両方を実行する。
【0065】
コンピュータ・ノード1012は、キーボード、ポインティング・デバイス、ディスプレイ1024などの1つまたは複数の外部デバイス1014、ユーザがコンピュータ・ノード1012と情報をやりとりできるようにする1つまたは複数のデバイス、またはコンピュータ・ノード1012が1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはその組み合わせと通信することもできる。そのような通信は、入出力(I/O:Input/Output)インターフェイス1022を介して行うことができる。さらに、コンピュータ・ノード1012は、ローカル・エリア・ネットワーク(LAN:Local Area Network)、一般的な広域ネットワーク(WAN:Wide Area Network)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組み合わせなどの1つまたは複数のネットワークと、ネットワーク・アダプタ1020を介して通信することができる。図示されているように、ネットワーク・アダプタ1020は、バス1018を介してコンピュータ・ノード1012の他のコンポーネントと通信する。図示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・ノード1012と併用できるということが理解されるべきである。その例として、マイクロコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
【0066】
特定の実施形態では、メインフレーム110、ストレージ・コントローラ120、またはクラウド・コンピューティング・ノード10、あるいはその組み合わせは、コンピュータ・ノード1012のアーキテクチャを有する。
【0067】
追加の実施形態の詳細
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいる1つまたは複数のコンピュータ可読記憶媒体を含んでよい。
【0068】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されているコンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一時的信号であると解釈されるべきではない。
【0069】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0070】
本発明の処理を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0071】
本発明の態様は、本明細書において、本発明の実施形態に記載された方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0072】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【0073】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ実施プロセスを作出するべく、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれ、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行させるものであってもよい。
【0074】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に記載されているシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および処理を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、指定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令を組み合わせて実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。