JP2019066985A - コンテナ管理装置、コンテナ管理方法、及びコンテナ管理プログラム - Google Patents

コンテナ管理装置、コンテナ管理方法、及びコンテナ管理プログラム Download PDF

Info

Publication number
JP2019066985A
JP2019066985A JP2017189527A JP2017189527A JP2019066985A JP 2019066985 A JP2019066985 A JP 2019066985A JP 2017189527 A JP2017189527 A JP 2017189527A JP 2017189527 A JP2017189527 A JP 2017189527A JP 2019066985 A JP2019066985 A JP 2019066985A
Authority
JP
Japan
Prior art keywords
container
volume
name
image
copy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017189527A
Other languages
English (en)
Other versions
JP6612826B2 (ja
Inventor
亮輔 近藤
Ryosuke Kondo
亮輔 近藤
新治 大迫
Shinji Osako
新治 大迫
永見 明久
Akihisa Nagami
明久 永見
洋 山川
Hiroshi Yamakawa
山川  洋
計典 松元
Keisuke Matsumoto
計典 松元
健司 尾添
Kenji Ozoe
健司 尾添
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2017189527A priority Critical patent/JP6612826B2/ja
Priority to US16/127,430 priority patent/US10514947B2/en
Publication of JP2019066985A publication Critical patent/JP2019066985A/ja
Application granted granted Critical
Publication of JP6612826B2 publication Critical patent/JP6612826B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】コンテナを容易且つ適切に管理できるようにする。【解決手段】オペレーティングシステム上に構築されるコンテナを管理するホスト計算機30において、ホスト計算機30は、プロセッサ31を備える。プロセッサ31は、第1コンテナのコンテナイメージに基づいて、第2コンテナを複製し、第1コンテナが使用するハードウェアリソースを、第2コンテナでも使用可能なように設定を行う。ホスト計算機30の不揮発記憶デバイス36は、第1コンテナのコンテナイメージと、第1コンテナで使用しているハードウェアリソースとを対応付けたコンテナリソース情報を記憶し、プロセッサ31は、第1コンテナのコンテナイメージにより第2コンテナを複製する際に、第1コンテナのコンテナイメージに対応付けられているハードウェアリソースを複製して、第2コンテナにより使用可能に設定する。【選択図】図2

Description

本発明は、アプリケーションの実行環境であるコンテナを管理するコンテナ管理装置等に関する。
アプリケーションの開発から提供までを迅速に行うことを目的としたプログラム開発手法として、DevOpsが知られている。DevOpsを支える技術として、コンテナ技術が普及している。コンテナ技術とは、OSレイヤを共通とし、アプリケーションレイヤーを仮想化する技術である。コンテナ技術によると、OSを含むハードウェア/デバイスを仮想化するVM(仮想マシン)よりも、迅速且つオーバヘッドを少なく、アプリケーション開発/テスト環境をデプロイすることが可能である。コンテナ技術を実現するコンテナエンジンの代表的な製品としては、Docker inc(以下、Docker社という)のDocker(登録商標)があげられる。
ホスト計算機上に構築されたコンテナ上では、共通化されたOS情報との差分だけが管理されている。コンテナが削除された場合には、コンテナ上のデータは保存されない。これを回避するため、Dockerの機能としては、データボリューム(Data Volume)がある。データボリュームをDockerが稼働するホストOS上に作成し、コンテナにマウントし、コンテナからデータボリュームにデータを格納することで、永続的に保存することができる。このデータボリュームは、Docker社から提供されるプラグインを用いて、ストレージ装置上に作成することもできる。
Dockerにおいて、コンテナをデプロイする際には、Docker Imageが必要である。Docker Imageとは、デプロイに必要なコンテナの環境情報がまとめられたイメージファイルである。Docker Imageとしては、例えば、Docker社から提供されるものと、ユーザが既存のコンテナから作成したものとの2種類がある。ユーザが環境設定したコンテナをイメージ化してDocker Imageを作成し、そのDocker Imageから同様な複数の環境のコンテナを瞬時にデプロイすることが可能である。ただし、Docker Imageには、コンテナのハードウェア情報が含まれない。したがって、データボリュームがアタッチされているコンテナからDocker Imageを作成した際に、このDocker Imageには、データボリュームの情報が含まれず、コンテナにおけるOS情報からのアプリケーションに関する差分情報のみが含まれていることとなる。
また、最近では、Oracle CorporationがRDBMSの一例であるOracle(登録商標) DBの環境用のDocker Imageの配布を開始し、コンテナ上でのRDBMSの利用が普及しつつある。
例えば、コンテナに関する技術としては、仮想ファイルコンテナインスタンスにおけるファイルシステム内のファイルへアクセスを容易にするための技術が知られている(例えば、特許文献1参照)。
特開2017−76264号公報
例えば、複数のコンテナ上にデプロイされたRDBMSは、同一のデータボリュームを使用することができない。このため、RDBMSがデプロイされたコンテナを複製する際には、データボリュームについても複製する必要がある。
例えば、RDBMSがデプロイされたコンテナを複製する場合には、(1)複製元のコンテナにマウントされていたデータボリュームの複製を作成し、(2)複製元のコンテナからDocker Imageを作成し、このDocker Imageから複製先のコンテナをデプロイし、(3)複製先のコンテナに、複製したデータボリュームをアタッチするという3つの作業を管理者が実行する必要がある。このため、ヒューマンエラーの発生や、管理者による作業工数の増加が懸念され、複製するコンテナの数に比例して、ヒューマンエラーの発生の確率が増加するとともに、管理者の作業工数が増大する。
本発明は、上記事情に鑑みなされたものであり、その目的は、コンテナを容易且つ適切に管理することができる技術を提供することにある。
上記目的を達成するため、一観点に係るコンテナ管理装置は、オペレーティングシステム上に構築されるコンテナを管理するコンテナ管理装置であって、リソース管理装置は、プロセッサ部を備え、プロセッサ部は、第1コンテナのコンテナイメージに基づいて、第2コンテナを複製し、第1コンテナが使用するハードウェアリソースを、第2コンテナでも使用可能なように設定を行う。
本発明によれば、コンテナを容易且つ適切に管理することができる。
図1は、一実施形態に係る計算機システムの全体構成図である。 図2は、一実施形態に係るホスト計算機の構成図である。 図3は、一実施形態に係る不揮発記憶デバイスの構成図である。 図4は、一実施形態に係るコンテナ永続ボリューム管理テーブルの構成図である。 図5は、一実施形態に係るストレージボリューム管理テーブルの構成図である。 図6は、一実施形態に係るストレージ装置の構成図である。 図7は、一実施形態に係る第1の複製元コンテナ作成メイン処理のフローチャートである。 図8は、一実施形態に係る第1の複製元コンテナ作成メイン処理によるコンテナ永続ボリューム管理テーブルの状態を説明する図である。 図9は、一実施形態に係る第2の複製元コンテナ作成メイン処理のフローチャートである。 図10は、一実施形態に係る第2の複製元コンテナ作成メイン処理によるコンテナ永続ボリューム管理テーブルの状態を説明する図である。 図11は、一実施形態に係る第3の複製元コンテナ作成メイン処理のフローチャートである。 図12は、一実施形態に係る第3の複製元コンテナ作成メイン処理によるコンテナ永続ボリューム管理テーブルの状態を説明する図である。 図13は、一実施形態に係る複製元コンテナ作成処理のフローチャートである。 図14は、一実施形態に係る第1の複製先コンテナデプロイ処理のフローチャートである。 図15は、一実施形態に係る第1の複製先コンテナデプロイ処理における各種テーブルの状態を説明する図である。 図16は、一実施形態に係る第2の複製先コンテナデプロイ処理のフローチャートである。 図17は、一実施形態に係る第2の複製先コンテナデプロイ処理における各種テーブルの状態を説明する図である。 図18は、一実施形態に係るコンテナ永続ボリューム複製処理のフローチャートである。 図19は、一実施形態に係るコンテナ削除時ボリューム解放処理のフローチャートである。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。1以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、プロセッサが行う処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。プロセッサが実行するプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。
図1は、一実施形態に係る計算機システムの全体構成図である。
計算機システム1は、1以上のクライアント計算機10と、1以上のホスト計算機30と、ストレージ装置50とを備える。クライアント計算機10と、ホスト計算機30とは、ネットワークの一例としてのLAN(Local Area Network)20を介して接続されている。また、ホスト計算機30と、ストレージ装置50とは、ネットワークの一例としてのSAN(Storage Area Network)を介して接続されている。
クライアント計算機10は、例えば、PC(Personal Computer)によって構成され、ホスト計算機30により提供されるコンテナを管理するための各種コマンド等をユーザから受け付けるために使用されている。ホスト計算機30は、所定の処理を実行するための1以上のコンテナを構築して提供する。また、ホスト計算機30は、コンテナを管理する各種処理を実行する。ストレージ装置50は、各種情報を格納する。ストレージ装置50は、例えば、コンテナで使用される永続的なボリューム(永続ボリューム)を格納し、ストレージ装置50内での永続ボリュームの複製等の処理を実行する
図2は、一実施形態に係るホスト計算機の構成図である。
ホスト計算機30は、制御手段の一例であるプロセッサ31と、プログラムメモリ32と、LAN通信I/F(インターフェース)33と、入力デバイス34と、キャッシュメモリ35と、記憶部の一例としての不揮発記憶デバイス36と、画像出力デバイス37と、SAN通信I/F(インターフェース)38とを備える。ホスト計算機30の各構成部(31〜38)は、内部バス39を介して通信可能に接続されている。
プロセッサ31は、不揮発記憶デバイス36からプログラムメモリ32読み出されたプログラムを実行することにより各種処理を実行する。プログラムメモリ32は、例えば、RAM(RANDOM ACCESS MEMORY)であり、プロセッサ31により実行されるプログラムを記憶する。LAN通信I/F33は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、LAN20を介して他の装置(例えば、クライアント計算機10)と通信する。
入力デバイス34は、例えば、マウス、キーボード等であり、ホスト計算機30の管理者からの各種入力を受け付ける。キャッシュメモリ35は、プロセッサ31が処理に使用するデータ、ストレージ装置50に書き込むデータや、ストレージ装置50から読み出したデータ等を一時的に格納する。不揮発記憶デバイス36は、例えば、ハードディスクやフラッシュメモリなどの情報を比較的長期間に亘って記憶可能な不揮発記憶デバイスであり、プロセッサ31で実行されるプログラムや、プロセッサ31の処理に利用される各種データ(例えば、テーブル等)を記憶する。画像出力デバイス37は、例えば、液晶ディスプレイであり、各種情報を表示出力する。SAN通信I/F38は、SAN40を介してストレージ装置50と通信するためのインターフェースである。
図3は、一実施形態に係る不揮発記憶デバイスの構成図である。
不揮発記憶デバイス36は、プログラムとして、オペレーティングシステム(OS)61と、コンテナ基盤プログラム62と、複製元コンテナ作成プログラム65と、複製先コンテナデプロイプログラム66と、コンテナ削除時ボリューム解放プログラム67と、コンテナ永続ボリューム複製プログラム69とを記憶する。オペレーティングシステム61は、プロセッサ31により実行されることにより、ホスト計算機30におけるプログラムの実行を制御する処理等を実行する。コンテナ基盤プログラム62は、プロセッサ31により実行されることにより、OS61上に構築される1以上のコンテナの基本的な管理処理を実行する。コンテナ基盤プログラム62は、例えば、Docker(登録商標) Engineのプログラムに基づいて作成することができる。その他のプログラム65〜70については、後述する。本実施形態では、コンテナ基盤プログラム62、複製元コンテナ作成プログラム65、複製先コンテナデプロイプログラム66、コンテナ削除時ボリューム解放プログラム67、及びコンテナ永続ボリューム複製プログラム69がコンテナ管理プログラムに相当する。なお、コンテナ管理プログラムは、コンテナ基盤プログラム62、複製元コンテナ作成プログラム65、複製先コンテナデプロイプログラム66、コンテナ削除時ボリューム解放プログラム67、及びコンテナ永続ボリューム複製プログラム69のうちの一部のプログラムを含んでいなくてもよい。
また、不揮発記憶デバイス36は、処理に使用するデータとして、コンテナ永続ボリューム管理テーブル63と、ストレージボリューム管理テーブル64とを記憶する。コンテナ永続ボリューム管理テーブル63と、ストレージボリューム管理テーブル64は、複数のホスト計算機30から参照される。複製元コンテナ作成プログラム65、複製先コンテナデプロイプログラム66、コンテナ削除時ボリューム解放プログラム67、及びコンテナ永続ボリューム複製プログラム69は、ネットワークを介して、コンテナ永続ボリューム管理テーブル63とストレージボリューム管理テーブル64とを更新する。
図4は、一実施形態に係るコンテナ永続ボリューム管理テーブルの構成図である。
コンテナ永続ボリューム管理テーブル63は、コンテナで使用されるハードウェアリソースの一例である永続的なボリューム(永続ボリューム)と、コンテナのコンテナイメージとの対応関係を示すコンテナリソース情報の一例であり、各行(レコード)は、コンテナ永続ボリューム名63aと、コンテナ名63bと、ディレクトリ名63cと、コピーフラグ63dと、コンテナイメージ名63eと、テンプレートフラグ63fとのフィールドを含む。
コンテナ永続ボリューム名63aには、コンテナに使用される永続ボリュームの名前(コンテナ永続ボリューム名)が格納される。コンテナ名63bには、この行に対応する永続ボリューム(この行のコンテナ永続ボリューム名63aのコンテナ永続ボリューム名に対応する永続ボリューム)を使用するコンテナの名前(コンテナ名)が格納される。ディレクトリ名63cには、この行に対応する永続ボリュームがマウントされているディレクトリの名前(ディレクトリ名)が格納される。コピーフラグ63dには、この行に対応する永続ボリュームを別のコンテナで使用する際にコピー(複製)する必要があるか否かを示す情報が格納される。本実施形態では、別のコンテナで使用する場合にコピーする必要がある場合には、コピーフラグ63dには、「true」が設定され、別のコンテナで使用する場合にコピーする必要がない場合、例えば、複数のコンテナで共用できる場合には、コピーフラグ63dには、「false」が設定される。例えば、コンテナ永続ボリュームがRDBMSのデータを格納しているボリュームである場合においては、RDBMSのデータの一貫性を保つ必要があれば、コピーフラグ63dにtrueを設定しておくようにすればよい。
コンテナイメージ名63eには、この行に対応するコンテナ(この行のコンテナ名63bのコンテナ名に対応するコンテナ)のコンテナイメージの名前(コンテナイメージ名)が格納される。なお、この行に対応するコンテナのコンテナイメージが作成されていない場合には、コンテナイメージ名63eは、空白となっている。テンプレートフラグ63fには、この行に対応するコンテナイメージ(この行のコンテナイメージ名63eのコンテナイメージ名のコンテナイメージ)が他のコンテナをデプロイする際のテンプレートとして使用可能であるか否かを示す情報が格納される。例えば、この行に対応するコンテナイメージがテンプレートとして使用可能である場合には、テンプレートフラグ63fには、「true」が設定され、この行に対応するコンテナイメージがテンプレートとして使用可能でない場合には、「false」が設定される。
図5は、一実施形態に係るストレージボリューム管理テーブルの構成図である。
ストレージボリューム管理テーブル64は、永続ボリュームが格納されているストレージ装置50のLDEV(論理デバイス)を管理するテーブルであり、永続ボリューム毎に対応する行(レコード)を格納する。ストレージボリューム管理テーブル64の行は、LDEV名64aと、コンテナ永続ボリューム名64bと、ポート名64cと、ストレージシリアル番号64dとのフィールドを含む。
LDEV名64aには、行に対応する永続ボリュームが格納されているLDEVの名前(LDEV名)が格納される。コンテナ永続ボリューム名64bには、行に対応する永続ボリュームのコンテナ永続ボリューム名が格納される。ポート名64cには、行に対応するLDEVにアクセスする際に使用するポートの名前(ポート名)が格納される。ストレージシリアル番号64dには、ストレージ装置50のシリアル番号(ストレージシリアル番号)が格納される。
図6は、一実施形態に係るストレージ装置の構成図である。
ストレージ装置50は、プロセッサ51と、プログラムメモリ52と、SAN通信I/F53と、キャッシュメモリ54と、不揮発記憶デバイス55と、入力デバイス56と、画像出力デバイス57とを備える。ストレージ装置50の各構成部(51〜57)は、内部バス58を介して通信可能に接続されている。
プロセッサ51は、不揮発記憶デバイス55からプログラムメモリ52に読み出されたプログラムを実行することにより各種処理を実行する。プロセッサ51が実行する処理としては、ホスト計算機30から、複製対象のLDEV名とポート名とを受け付けて、対応するLDEVを複製する筐体内コピー処理がある。プログラムメモリ52は、例えば、RAM(RANDOM ACCESS MEMORY)であり、プロセッサ51により実行されるプログラム(筐体内コピー処理を実行するための筐体内コピープログラム等)を記憶する。SAN通信I/F53は、SAN40を介してホスト計算機30と通信するためのインターフェースである。
キャッシュメモリ54は、プロセッサ51が処理に使用するデータ、ホスト計算機30に送信するデータや、ホスト計算機30から受信したデータ等を一時的に格納する。不揮発記憶デバイス55は、例えば、ハードディスクやフラッシュメモリなどの情報を比較的長期間に亘って記憶可能な不揮発記憶デバイスであり、プロセッサ51で実行されるプログラムや、プロセッサ51の処理に利用される各種データを記憶する。入力デバイス56は、例えば、マウス、キーボード等であり、ストレージ装置50の管理者からの各種入力を受け付ける。画像出力デバイス57は、例えば、液晶ディスプレイであり、各種情報を表示出力する。
次に、計算機システム1における処理動作について説明する。
まず、第1の複製元コンテナ作成メイン処理について説明する。第1の複製元コンテナ
作成メイン処理は、複製元のコンテナ(複製元コンテナ:第1コンテナ)のコンテナイメージを作成し、そのコンテナイメージに関する行をコンテナ永続ボリューム管理テーブル63に登録するまでの処理である。
図7は、一実施形態に係る第1の複製元コンテナ作成メイン処理のフローチャートである。図8は、一実施形態に係る第1の複製元コンテナ作成メイン処理によるコンテナ永続ボリューム管理テーブルの状態を説明する図である。
コンテナ基盤プログラム62を実行するプロセッサ31は、クライアント計算機10からコンテナ永続ボリュームを作成するとともにコンテナを立ち上げるコマンドを受信すると、まず、コマンドに従ったコンテナ永続ボリュームを作成する(ステップS10)。ここで、クライアント計算機10から受け取るコマンドとしては、例えば、コンテナ基盤プログラム62として、Docker Engineに基づいたプログラムを用いている場合には、以下のようなコマンド(1)(2)とすることができる。
−docker volume create (作成ボリューム名) −driver=(使用ドライバ名) −opt capa=(ボリューム容量) ・・・(1)
−docker run −v (マウントするボリューム名(ここでは、作成ボリューム名)):(コンテナのマウント先) (指定するコンテナのイメージ名) ・・・(2)
コマンド(1)は、コマンドで指定したボリューム容量の作成ボリューム名のボリュームを、使用ドライバ名のドライバを用いて作成することを要求するコマンドである。コマンド(2)は、コマンドで指定したボリュームを、指定したコンテナのマウント先にマウントして、コンテナを立ち上げるコマンドである。
次いで、プロセッサ31は、作成したコンテナ永続ボリュームを、指定されたマウント先にアタッチして、コマンドで指定されたコンテナイメージに基づいて、コンテナ(複製元コンテナ)を立ち上げる(ステップS11)。
次いで、プロセッサ31は、立ち上げたコンテナに対して、環境変更を行う(ステップS12)。なお、コンテナの環境変更は、予め設定されている環境変更でもよく、クライアント計算機10からユーザの指定を受け付けて環境変更をおこなってもよい。なお、ステップS12は、必ずしも実行する必要はない。
次いで、プロセッサ31は、複製元コンテナ作成プログラム65を実行することにより、複製元コンテナ作成処理(ステップS13:図13参照)を実行する。なお、複製元コンテナ作成処理においては、作成されたコンテナのコンテナ名と、複製先にマウントされるコンテナ永続ボリューム名(複製元コンテナにアタッチされたコンテナ永続ボリューム名)と、複製元コンテナのコンテナイメージ名と、コピーフラグ(その設定値)とを入力して処理を行う。なお、複製元コンテナ作成処理については、後述する。
この第1の複製元コンテナ作成メイン処理によると、コンテナ永続ボリューム管理テーブル63は、図8の上図に示す状態から、図8の下図に示す状態となる。すなわち、複製元コンテナにマウントされているコンテナ永続ボリュームのコンテナ永続ボリューム名と、複製元コンテナのコンテナ名と、コンテナ永続ボリュームのマウントされたディレクトリ、コピーフラグの設定値、複製元コンテナのコンテナイメージ名、テンプレートフラグの設定値が設定された行が追加される。
次に、第2の複製元コンテナ作成メイン処理について説明する。第2の複製元コンテナ作成メイン処理は、既に複製元コンテナが立ち上げられ、この複製元コンテナが使用するコンテナ永続ボリュームがコンテナ永続ボリューム管理テーブル63に登録されている場合において、この複製元コンテナのコンテナイメージをテンプレートとして複製先コンテナを立ち上げ、この複製先コンテナを、次の複製元コンテナとする場合において、この複製元コンテナに対応するコンテナ永続ボリュームをコンテナ永続ボリューム管理テーブル63に登録するまでの処理である。
図9は、一実施形態に係る第2の複製元コンテナ作成メイン処理のフローチャートである。図10は、一実施形態に係る第2の複製元コンテナ作成メイン処理によるコンテナ永続ボリューム管理テーブルの状態を説明する図である。
コンテナ基盤プログラム62を実行するプロセッサ31は、クライアント計算機10からコンテナ永続ボリューム管理テーブル63に管理されているコンテナイメージの指定を含むコマンドを受信すると、指定されたコンテナイメージを使用してコンテナ(複製元コンテナ)を立ち上げる(ステップS21)。
次いで、プロセッサ31は、立ち上げたコンテナに対して、環境変更を行う(ステップS12)。なお、コンテナの環境変更は、予め設定されている環境変更でもよく、クライアント計算機10からユーザの指定を受け付けて環境変更をおこなってもよい。なお、ステップS12は、必ずしも実行する必要はない。
次いで、プロセッサ31は、複製元コンテナ作成プログラム65を実行することにより、複製元コンテナ作成処理(ステップS13:図13参照)を実行する。なお、複製元コンテナ作成処理においては、複製元コンテナのコンテナ名と、複製先にマウントされるコンテナ永続ボリューム名(複製元コンテナにアタッチされたコンテナ永続ボリューム名)と、複製元コンテナのコンテナイメージ名と、コピーフラグ(その設定値)とを入力して処理を行う。なお、複製元コンテナ作成処理については、後述する。
ここで、コンテナ永続ボリューム管理テーブル63に管理されているコンテナイメージを指定して複製されたコンテナに対応する行は、その時点においては、図10の上図の2番目の行に示すように、コンテナイメージ名63eに空白が設定され、テンプレートフラグ63fがfalseに設定されたものとなっている。なお、図10の上図の設定が行われる処理については、後述する図14及び図16の複製先コンテナデプロイ処理において説明する。
この状態であるときに、第2の複製元コンテナ作成メイン処理が実行されると、コンテナ永続ボリューム管理テーブル63は、図10の下図に示す状態となる。すなわち、第2の複製元コンテナ作成メイン処理が実行されると、複製元コンテナのコンテナイメージが作成され、コンテナ永続ボリューム管理テーブル63の対応する行のコンテナイメージ名63eに作成されたコンテナイメージのコンテナイメージ名が追加されるとともに、テンプレートフラグ63fにテンプレートとして使用可能なことを示すtrueが設定される。
次に、第3の複製元コンテナ作成メイン処理について説明する。第3の複製元コンテナ作成メイン処理は、複製元コンテナのコンテナイメージのコンテナイメージ名として指定されたコンテナイメージ名と同じコンテナイメージ名がコンテナ永続ボリューム管理テーブル63に登録されてしまっている場合において、この複製元コンテナのコンテナイメージをコンテナ永続ボリューム管理テーブル63に登録するまでの処理である。
図11は、一実施形態に係る第3の複製元コンテナ作成メイン処理のフローチャートである。図12は、一実施形態に係る第3の複製元コンテナ作成メイン処理によるコンテナ永続ボリューム管理テーブルの状態を説明する図である。
コンテナ基盤プログラム62を実行するプロセッサ31は、クライアント計算機10からコンテナ永続ボリュームを作成するとともにコンテナを立ち上げるコマンドを受信すると、まず、コマンドに従ったコンテナ永続ボリュームを作成する(ステップS31)。
次いで、プロセッサ31は、作成したコンテナ永続ボリュームを指定されたマウント先にアタッチして、指定されたコンテナイメージに基づいて、コンテナ(複製元コンテナ)を立ち上げる(ステップS32)。
次いで、プロセッサ31は、複製元コンテナ作成プログラム65を実行することにより、複製元コンテナ作成処理(ステップS13−1:図13参照)を実行する。なお、複製元コンテナ作成処理においては、複製元コンテナのコンテナ名と、複製先にマウントされるコンテナ永続ボリューム名(複製元コンテナにアタッチされたコンテナ永続ボリューム名)と、複製元コンテナのコンテナイメージ名と、コピーフラグ(その設定値)とを入力して処理を行う。
次いで、プロセッサ31は、立ち上げたコンテナに対して、環境変更を行う(ステップS12)。コンテナの環境変更は、予め設定されている環境変更でもよく、クライアント計算機10からユーザの指定を受け付けて環境変更をおこなってもよい。なお、ステップS12は、必ずしも実行する必要はない。
次いで、プロセッサ31は、複製元コンテナ作成プログラム65を実行することにより、複製元コンテナ作成処理(ステップS13−2:図13参照)を実行する。なお、複製元コンテナ作成処理においては、複製元コンテナのコンテナ名と、複製先にマウントされるコンテナ永続ボリューム名(複製元コンテナにアタッチされたコンテナ永続ボリューム名)と、複製元コンテナのコンテナイメージ名(ステップS13−1と同じコンテナイメージ名)と、コピーフラグ(その設定値)とを入力して処理を行う。このステップS13−2では、同名のコンテナイメージについて、コンテナ永続ボリューム管理テーブル63への登録が発生した場合には、プロセッサ31は、ユーザから、(1)従前のテンプレートを破棄するようにするのか、(2)従前のテンプレートを残し、別名でテンプレートを保存するのかの選択を受け付けて、選択に応じた処理をする。
ここで、ステップS13−1の処理が実行された後においては、コンテナ永続ボリューム管理テーブル63は、図12の上図に示すように、複製元コンテナに対応する行が追加されている。この後、ステップS13−2の処理が実行され、この処理において、ユーザにより従前のテンプレートを破棄することが選択されると、コンテナ永続ボリューム管理テーブル63は、図12の下図に示すように、従前のコンテナに対応する行がテンプレートから外され(テンプレートフラグ63fがfalseに設定され)、新たな複製元コンテナに対応する行がテンプレートとして(テンプレートフラグ63fがtrueに設定され)、追加される。
次に、複製元コンテナ作成処理について詳細に説明する。
図13は、一実施形態に係る複製元コンテナ作成処理のフローチャートである。
複製元コンテナ作成処理は、図7、図9、図11のステップS13,ステップS13−1,ステップS13−2に対応する処理であり、プロセッサ31が複製元コンテナ作成プログラム65を実行することにより実現される。
複製元コンテナ作成プログラム65を実行するプロセッサ31は、指定コンテナイメージ名(入力されたコンテナイメージ名)に対応する行がコンテナ永続ボリューム管理テーブル63にあるか否かを判定する(ステップS41)。
この結果、指定コンテナイメージ名に対応する行がコンテナ永続ボリューム管理テーブル63にないと判定された場合(ステップS41:no)には、プロセッサ31は、コンテナ永続ボリューム管理テーブル63に、テンプレートフラグ(テンプレートフラグ63fの設定値)がfalseであり、コンテナイメージ名(コンテナイメージ名63eの設定値)が空欄である指定コンテナ名に対応する行があるか否かを判定する(ステップS42)。
この結果、テンプレートフラグがfalseであり、コンテナイメージ名が空欄である指定コンテナ名に対応する行がない場合(ステップS42:no)には、プロセッサ31は、指定コンテナ名に対応し、指定コンテナイメージ名を含む行をコンテナ永続ボリューム管理テーブル63に追加し(ステップS43)、処理をステップS45に進める。具体的には、ステップS43では、プロセッサ31は、入力されたコンテナ名、複製先にマウントされるコンテナ永続ボリューム名、複製元コンテナのコンテナイメージ名、及びコピーフラグの設定値を含み、テンプレートフラグの設定値をtrueとした行をコンテナ永続ボリューム管理テーブル63に追加する。この際、複製先にマウントされるコンテナ永続ボリュームが複数ある場合には、プロセッサ31は、コンテナ永続ボリュームのそれぞれに対応する行を追加する。なお、図7に示す第1の複製元コンテナ作成メイン処理のフローチャートに示す場合においては、このステップS43が実行されることとなる。
一方、テンプレートフラグがfalseであり、コンテナイメージ名が空欄である指定コンテナ名に対応する行がある場合(ステップS42:yes)には、プロセッサ31は、その行(該当行)において、テンプレートフラグの設定値をtrueに設定し、指定コンテナイメージ名をコンテナイメージ名63eに設定し、指定コピーフラグをコピーフラグ63dに設定し(ステップS44)、処理をステップS45に進める。なお、図9に示す第2の複製元コンテナ作成メイン処理のフローチャートに示す場合においては、このステップS44が実行されることとなる。
一方、ステップS41において、指定コンテナイメージ名に対応する行がコンテナ永続ボリューム管理テーブル63にあると判定された場合(ステップS41:yes)には、プロセッサ31は、クライアント計算機10又はホスト計算機30のディスプレイに、上書きの確認メッセージを表示させる(ステップS46)。上書きの確認メッセージは、例えば、「こちらのコンテナイメージ名は既にテンプレートとして使用されていますが、上書きをしてもいいですか?」としてもよい。
次いで、プロセッサ31は、クライアント計算機10又はホスト計算機30のユーザからの上書き確認に対応する応答が、上書き許可であるか否か判定する(ステップS47)。
この結果、応答が上書き許可である場合(ステップS47:yes)には、プロセッサ31は、該当行のテンプレートフラグをfalseに設定するとともに、指定コンテナイメージ名に対応する新たな行を追加し(ステップS48)、処理をステップS45に進める。具体的には、ステップS48では、プロセッサ31は、入力されたコンテナ名、複製先にマウントされるコンテナ永続ボリューム名、複製元コンテナのコンテナイメージ名、及びコピーフラグの設定値を含み、テンプレートフラグの設定値をtrueとした行をコンテナ永続ボリューム管理テーブル63に追加する。この際、複製先にマウントされるコンテナ永続ボリュームが複数ある場合には、プロセッサ31は、コンテナ永続ボリュームのそれぞれに対応する行を追加する。これにより、新しいテンプレートを既に存在しているコンテナイメージ名で登録することができる。
一方、応答が上書き許可でない場合(ステップS47:no)には、プロセッサ31は、クライアント計算機10又はホスト計算機30のディスプレイに、再コミット(Commit)を要求するメッセージを表示させ(ステップS49)、処理を終了する。ここで、再コミットを要求するメッセージは、例えば、「Commitは行わずに処理を終了します。コンテナイメージ名を別名で指定して、Commitをし直してください。」としてもよい。この処理により、既に存在しているコンテナイメージ名に対応するテンプレートが上書きされてしまうことを防止できる。
ステップS45では、プロセッサ31は、指定コンテナ名のコンテナについて、指定コンテナイメージ名のコンテナイメージを作成して、例えば、不揮発記憶デバイス36に保存し、処理を終了する。例えば、コンテナイメージを格納するための専用のコンテナを立上げ、そのコンテナを指定してコンテナイメージを格納し、他のホスト計算機30からアクセスできるようにしてもよい。
次に、第1の複製先コンテナデプロイ処理について説明する。
図14は、一実施形態に係る第1の複製先コンテナデプロイ処理のフローチャートである。図15は、一実施形態に係る第1の複製先コンテナデプロイ処理における各種テーブルの状態を説明する図である。
第1の複製先コンテナデプロイ処理は、デプロイする複製先コンテナ(第2コンテナ)を作成するコンテナイメージ(複製元コンテナ(第1コンテナ)のコンテナイメージ)のコンテナイメージ名に基づいて、複製先コンテナのデプロイをする処理である。第1の複製先コンテナデプロイ処理は、プロセッサ31が、複製先コンテナデプロイプログラム66を実行することにより実現される。第1の複製先コンテナデプロイ処理は、例えば、プロセッサ31が、クライアント計算機10から、複製先コンテナのデプロイに使用するコンテナイメージのコンテナイメージ名を含むコンテナデプロイのコマンドを受信した場合に実行される。
複製先コンテナデプロイプログラム66を実行するプロセッサ31は、コンテナデプロイのコマンド(複製コマンド)を受信すると、そのコマンドから複製先コンテナのデプロイに使用するコンテナイメージのコンテナイメージ名を取得する(ステップS51)。次いで、プロセッサ31は、取得したコンテナイメージ名、テンプレートフラグがtrue、及びコピーフラグがtrueをキーとして、コンテナ永続ボリューム管理テーブル63からコンテナ永続ボリューム名と、ディレクトリ名とを取得する(ステップS52)。このステップにより得られたコンテナ永続ボリューム名のコンテナ永続ボリュームが、複製先コンテナにマウントするために複製すべきボリュームである。このステップS52では、例えば、図15(A)の太枠に示す行が特定されて、コンテナ永続ボリューム名(複製対象)と、ディレクトリ名とが取得される。
次いで、プロセッサ31は、ステップS52でコンテナ永続ボリューム名を取得できたか否かを判定し(ステップS53)、コンテナ永続ボリューム名を取得できた場合(ステップS53:yes)には、コンテナ永続ボリュームを複製するコンテナ永続ボリューム複製処理(図18参照)を実行する(ステップS54)。なお、プロセッサ31は、複製先永続ボリューム複製処理に対して、取得したコンテナ永続ボリューム名及びディレクトリ名を入力し、複製先のコンテナ永続ボリュームの名前(複製先コンテナ永続ボリューム名)を出力として受け取る。このコンテナ永続ボリューム複製処理が実行されると、ストレージ装置50では、対応するコンテナ永続ボリュームが複製され、ストレージボリューム管理テーブル64には、図15(B)に示すように、複製されたコンテナ永続ボリュームが登録される。
次いで、プロセッサ31は、複製先のコンテナ永続ボリュームに対応する行をコンテナ永続ボリューム管理テーブル63に追加する(ステップS55)。具体的には、プロセッサ31は、取得した複製先コンテナ永続ボリューム名、複製先のコンテナ名、取得したディレクトリ名、及びコピーフラグの設定値(複製元のコンテナ永続ボリュームの行の設定値と同一)が設定された行を永続ボリューム管理テーブル63に追加する。なお、プロセッサ31は、この行のコンテナイメージ名63eを空白とし、テンプレートフラグ63fにfalseを設定する。このステップS55では、コンテナ永続ボリューム管理テーブル63には、図15(C)に示すように、3番目の行が追加される。
次いで、プロセッサ31は、複製先のコンテナで共用するコンテナ永続ボリュームに対応する行をコンテナ永続ボリューム管理テーブル63に追加する(ステップS56)。ここで、取得したコンテナイメージ名、テンプレートフラグがtrue、及びコピーフラグがfalseをキーとして、コンテナ永続ボリューム管理テーブル63から得られる行が、複製元コンテナについてのコンテナ永続ボリュームに関する行であり、この行に対応するコンテナ永続ボリュームは、複製先コンテナで共用して使用される。ステップS56では、同じコンテナ永続ボリュームに対応する複製先コンテナに関する行を追加する。追加する行は、複製元コンテナについてのコンテナ永続ボリュームに関する行の内容に対して、コンテナ名を複製先コンテナ名に代え、コンテナイメージ名を空白とし、テンプレートフラグをfalseとしたものである。このステップS56では、コンテナ永続ボリューム管理テーブル63には、図15(D)に示すように、4番目の行が追加される。
次いで、プロセッサ31は、複製したコンテナ永続ボリュームと、共用するコンテナ永続ボリュームとをマウントさせて、指定コンテナイメージ名のコンテナイメージを使用して、複製先コンテナを立ち上げ(ステップS57)、処理を終了する。
なお、ステップS53でコンテナ永続ボリューム名を取得できなかった場合(ステップS53:no)には、プロセッサ31は、クライアント計算機10又はホスト計算機30のディスプレイに、エラーメッセージを表示させる(ステップS58)。エラーメッセージは、例えば、「指定したコンテナイメージ名を認識できません」としてもよい。
上記処理によると、複製が必要なコンテナ永続ボリュームについては複製したボリュームをマウントさせ、共用できるコンテナ永続ボリュームについては、それをマウントさせた複製先コンテナをデプロイすることができる。
次に、第2の複製先コンテナデプロイ処理について説明する。
図16は、一実施形態に係る第2の複製先コンテナデプロイ処理のフローチャートである。図17は、一実施形態に係る第2の複製先コンテナデプロイ処理における各種テーブルの状態を説明する図である。
第2の複製先コンテナデプロイ処理は、デプロイする複製先コンテナを作成するコンテナイメージのコンテナイメージ名と、コピーするコンテナ永続ボリュームをマウントしているコンテナ名(複製元コンテナのコンテナ名)とに基づいて、複製先コンテナのデプロイをする処理である。第2の複製先コンテナデプロイ処理は、プロセッサ31が、複製先コンテナデプロイプログラム66を実行することにより実現される。第2の複製先コンテナデプロイ処理は、例えば、プロセッサ31が、クライアント計算機10から、複製先コンテナのデプロイに使用するコンテナイメージのコンテナイメージ名と、コピーするコンテナ永続ボリュームをマウントしているコンテナ名とを含むコンテナデプロイのコマンドを受信した場合に実行される。
複製先コンテナデプロイプログラム66を実行するプロセッサ31は、コンテナデプロイのコマンド(複製コマンド)を受信すると、そのコマンドから複製先コンテナのデプロイに使用するコンテナイメージのコンテナイメージ名と、コピーするコンテナ永続ボリュームをマウントしているコンテナ名とを取得する(ステップS61)。次いで、プロセッサ31は、取得したコンテナ名、テンプレートフラグがtrue、及びコピーフラグがtrueをキーとして、コンテナ永続ボリューム管理テーブル63からコンテナ永続ボリューム名と、ディレクトリ名との組をすべて取得する(ステップS62)。このステップにより得られたコンテナ永続ボリューム名のコンテナ永続ボリュームが、複製先コンテナにマウントするために複製すべきボリュームである。このステップでは、例えば、図17(A)の太枠に示す行が特定されて、コンテナ永続ボリューム名(複製対象)と、ディレクトリ名とが取得される。
次いで、プロセッサ31は、ステップS62でコンテナ永続ボリューム名を取得できたか否かを判定し(ステップS63)、コンテナ永続ボリューム名を取得できた場合(ステップS63:yes)には、コンテナ永続ボリュームを複製するコンテナ永続ボリューム複製処理(図18参照)を実行する(ステップS54)。なお、プロセッサ31は、複製先永続ボリューム複製処理に対して、取得したコンテナ永続ボリューム名及びディレクトリ名を入力し、複製先のコンテナ永続ボリュームの名前(複製先コンテナ永続ボリューム名)を出力として受け取る。このコンテナ永続ボリューム複製処理が実行されると、ストレージ装置50では、対応するコンテナ永続ボリュームが複製され、ストレージボリューム管理テーブル64には、図17(B)に示すように、複製されたコンテナ永続ボリュームが登録される。
次いで、プロセッサ31は、複製先のコンテナ永続ボリュームに対応する行をコンテナ永続ボリューム管理テーブル63に追加する(ステップS65)。具体的には、プロセッサ31は、取得した複製先コンテナ永続ボリューム名、複製先のコンテナ名、取得したディレクトリ名、及びコピーフラグの設定値(複製元のコンテナ永続ボリュームの行の設定値と同一)が設定された行をコンテナ永続ボリューム管理テーブル63に追加する。なお、プロセッサ31は、この行のコンテナイメージ名63eを空白とし、テンプレートフラグ63fにfalseを設定する。このステップS65では、コンテナ永続ボリューム管理テーブル63には、図17(C)に示すように、3番目の行が追加される。
次いで、プロセッサ31は、複製先のコンテナで共用するコンテナ永続ボリュームに対応する行をコンテナ永続ボリューム管理テーブル63に追加する(ステップS66)。ここで、取得したコンテナ名、テンプレートフラグがtrue、及びコピーフラグがfalseをキーとして、コンテナ永続ボリューム管理テーブル63から得られる行が、複製元コンテナについてのコンテナ永続ボリュームに関する行であり、この行に対応するコンテナ永続ボリュームは、複製先コンテナで共用して使用される。ステップS66では、同じコンテナ永続ボリュームに対応する複製先コンテナに関する行を追加する。追加する行は、複製元コンテナについてのコンテナ永続ボリュームに関する行の内容に対して、コンテナ名を複製先コンテナ名に代え、コンテナイメージ名を空白とし、テンプレートフラグをfalseとしたものである。このステップS66では、コンテナ永続ボリューム管理テーブル63には、図17(D)に示すように、4番目の行が追加される。
次いで、プロセッサ31は、複製したコンテナ永続ボリュームと、共用するコンテナ永続ボリュームとをマウントさせて、指定コンテナイメージ名のコンテナイメージを使用して、複製先コンテナを立ち上げ(ステップS67)、処理を終了する。
なお、ステップS63でコンテナ永続ボリューム名を取得できなかった場合(ステップS63:no)には、プロセッサ31は、クライアント計算機10又はホスト計算機30のディスプレイに、エラーメッセージを表示させる(ステップS68)。エラーメッセージは、例えば、「指定したコンテナイメージ名を認識できません」としてもよい。
上記処理によると、複製が必要なコンテナ永続ボリュームについては複製したボリュームをマウントさせ、共用できるコンテナ永続ボリュームについては、それをマウントさせた複製先コンテナをデプロイすることができる。
次に、コンテナ永続ボリューム複製処理について詳細に説明する。
図18は、一実施形態に係るコンテナ永続ボリューム複製処理のフローチャートである。
コンテナ永続ボリューム複製処理は、図14、図16のステップS54に対応する処理であり、プロセッサ31がコンテナ永続ボリューム複製プログラム69を実行することにより実現される。
プロセッサ31は、入力されたコンテナ永続ボリューム名をキーに、ストレージボリューム管理テーブル64からコンテナ永続ボリュームに対応するストレージ装置50のLDEVのLDEV名、及そのLDEVのポート名を取得する(ステップS71)。
次いで、プロセッサ31は、取得したLDEVのポート名を指定して、ストレージ装置50により、LDEVの複製を実行させ(ステップS72)、処理をステップS73に進める。なお、ポートの指定については、論理的かつ物理的につながっているポートを用いてボリュームを作成してもよい。
ステップS73では、プロセッサ31は、複製したLDEVに対応する行をストレージボリューム管理テーブル64に追加する(ステップS73)。なお、行におけるコンテナ永続ボリューム名64bには、プロセッサ31が所定の基準に従って自動的に生成したコンテナ永続ボリューム名が設定される。
次いで、プロセッサ31は、生成したコンテナ永続ボリューム名を返し(ステップS74)、処理を終了する。
次に、コンテナ削除時ボリューム解放処理について説明する。
図19は、一実施形態に係るコンテナ削除時ボリューム解放処理のフローチャートである。
コンテナ削除時ボリューム解放処理は、プロセッサ31がコンテナ削除時ボリューム解放プログラム67を実行することにより実現される。コンテナ削除時ボリューム解放処理は、プロセッサ31が、クライアント計算機10から、削除対象のコンテナ名を含むコンテナ削除コマンドを受信した場合に実行される。
コンテナ削除時ボリューム解放プログラム67を実行するプロセッサ31は、クライアント計算機10から受信したコンテナ削除コマンドから削除対象のコンテナ(対象コンテナという)のコンテナ名(対象コンテナ名という)を取得する(ステップS81)。
次いで、プロセッサ31は、コンテナ名をキーとして、コンテナ永続ボリューム管理テーブル63からコンテナ永続ボリューム名と、テンプレートフラグの設定値とを取得する(ステップS82)。
次いで、プロセッサ31は、取得したテンプレートフラグの設定値がfalseであるか否かを判定する(ステップS83)。
この結果、テンプレートフラグの設定値がfalseである場合(ステップS83:yes)には、このコンテナのコンテナイメージは、テンプレートとして使用可能ではないことを意味しているので、プロセッサ31は、コンテナ永続ボリューム管理テーブル63から対象コンテナ名に対応し、コピーフラグの設定値がtrueであるすべての行におけるコンテナ永続ボリューム名を取得し、ストレージボリューム管理テーブル64から取得したコンテナ永続ボリューム名に対応するすべてのLDEV名を取得する(ステップS84)。
次いで、プロセッサ31は、取得したLDEV名に対応するすべてのLDEVをストレージ装置50により解放させ、ストレージボリューム管理テーブル64から取得したLDEV名に対応する行をすべて削除する(ステップS85)。
次いで、プロセッサ31は、ステップS84で取得したコンテナ永続ボリューム名のコンテナ永続ボリュームを開放し(削除し)、コンテナ永続ボリューム管理テーブル63から取得したコンテナ永続ボリューム名に対応する行を削除し(ステップS86)、処理をステップS90に進める。
一方、テンプレートフラグの設定値がfalseでない場合(ステップS83:no)には、プロセッサ31は、削除対象コンテナのコンテナイメージ及びコンテナ永続ボリュームを今後テンプレートとして使用するか否かを判定する(ステップS87)。ここでは、例えば、プロセッサ31は、クライアント計算機10のディスプレイに、「このコンテナはテンプレートとして登録されていますが、コンテナ永続ボリュームを含めて削除し、今後テンプレートとして使用しなくてもよろしいですか?」とのメッセージを表示させ、このメッセージに対する応答として、クライアント計算機10のユーザから今後テンプレートとして使用するか否かの指定を受け付けるようにしてもよい。
この結果、今後テンプレートとして使用しないと判定した場合(ステップS87:no)には、プロセッサ31は、コンテナ永続ボリューム管理テーブル63から対象コンテナ名に対応し、コピーフラグの設定値がtrueであるすべての行におけるコンテナ永続ボリューム名を取得し、ストレージボリューム管理テーブル64から取得したコンテナ永続ボリューム名に対応するすべてのLDEV名を取得する(ステップS88)。
次いで、プロセッサ31は、ストレージ装置50に取得したLDEV名に対応するすべてのLDEVを解放させ、ストレージボリューム管理テーブル64から取得したLDEV名に対応する行をすべて削除し(ステップS89)、処理をステップS90に進める。
ステップS90では、プロセッサ31は、コンテナ永続ボリューム管理テーブル63から対象コンテナ名に対応し、コピーフラグの設定値がfalseであるすべての行におけるコンテナ永続ボリューム名を取得し、ストレージボリューム管理テーブル64から取得したコンテナ永続ボリューム名に対応するすべてのLDEV名を取得する。
次いで、プロセッサ31は、ステップS90で取得したLDEV名と同一のLDEV名を取得し、コンテナ永続ボリューム管理テーブル63から対象コンテナ名に対応し、コピーフラグの設定値がfalseであるすべての行を削除する(ステップS91)。
次いで、プロセッサ31は、ステップS90で取得したコンテナ永続ボリューム名のコンテナ永続ボリュームが他のコンテナで使用されているか否かを判定する(ステップS92)。具体的には、プロセッサ31は、コンテナ永続ボリューム管理テーブル63に、取得したコンテナ永続ボリューム名が設定されている他のコンテナの行があるか否かによって、他のコンテナで使用されているか否かを判定している。
この結果、取得したコンテナ永続ボリューム名のコンテナ永続ボリュームが他のコンテナで使用されていると判定した場合(ステップS92:yes)には、他のコンテナで使用されることを意味しているので、コンテナ永続ボリュームを削除することなく、処理をステップS96に進める。
一方、取得したコンテナ永続ボリューム名のコンテナ永続ボリュームが他のコンテナで使用されていないと判定した場合(ステップS92:no)には、プロセッサ31は、取得したLDEV名に対応するすべてのLDEVをストレージ装置50により解放させ、ストレージボリューム管理テーブル64から、取得したLDEV名に対応する行をすべて削除する(ステップS93)。
次いで、プロセッサ31は、取得したコンテナ永続ボリューム名のコンテナ永続ボリュームを開放し(削除し)、コンテナ永続ボリューム管理テーブル63から取得したコンテナ永続ボリューム名に対応する行を削除し(ステップS94)、処理をステップS96に進める。これにより、他のコンテナで使用されないコンテナ永続ボリュームを適切に開放することができる。
一方、ステップS87で、今後テンプレートとして使用すると判定した場合(ステップS87:yes)には、プロセッサ31は、クライアント計算機10のディスプレイに対象コンテナのコンテナイメージ及びコンテナ永続ボリュームを今後テンプレートとして使用可能であることを示すテンプレート使用可能メッセージを表示させ(ステップS95)、処理をステップS96に進める。なお、テンプレート使用可能メッセージは、「コンテナ永続ボリュームを削除せず、コンテナのみを削除します。今後テンプレートとして使用できます」とのメッセージとしてもよい。
ステップS96では、プロセッサ31は、対象コンテナを削除して処理を終了する。
上記したコンテナ削除時ボリューム解放処理によると、コンテナを削除する際に、コンテナを削除することにより使用されなくなるコンテナ永続ボリュームを適切に削除することができる。
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、上記実施形態では、図7に示すように、2つのコマンドにより、ステップS10,ステップS11を実行することにより、コンテナ永続ボリュームを作成し、コンテナ永続ボリュームをアタッチしたコンテナを立ち上げるようにしていたが、本発明はこれに限られず、例えば、コンテナ永続ボリュームを作成し、コンテナ永続ボリュームをアタッチしたコンテナを立ち上げる処理を1つのコマンドにより実行するようにしてもよい。コマンドは、例えば、以下の(3)に示すようにしてもよい。
−docker run −v (作成ボリューム名):(コンテナのマウント先) −driver=(ドライバ名) −opt capa=(ボリューム容量)(指定するコンテナのイメージ名)・・・(3)
このようにすると、1つのコマンドにより、容易に、コンテナ永続ボリュームを作成し、コンテナ永続ボリュームをアタッチしたコンテナを立ち上げることができる。
また、上記実施形態では、コンテナが使用するハードウェアリソースとして、ボリュームを例に挙げていたが、本発明はこれに限られず、例えば、ポートであってもよい。
1…計算機システム、10…クライアント計算機、20…LAN、30…ホスト計算機、31…プロセッサ、32…プログラムメモリ、36…不揮発記憶デバイス、40…SAN、50…ストレージ装置、61…オペレーティングシステム、62…コンテナ基盤プログラム、63…コンテナ永続ボリューム管理テーブル、64…ストレージボリューム管理テーブル、65…複製元コンテナ作成プログラム、66…複製先コンテナデプロイプログラム、67…コンテナ削除時ボリューム解放プログラム、69…コンテナ永続ボリューム複製プログラム

Claims (12)

  1. オペレーティングシステム上に構築されるコンテナを管理するコンテナ管理装置であって、
    前記リソース管理装置は、プロセッサ部を備え、
    前記プロセッサ部は、
    第1コンテナのコンテナイメージに基づいて、第2コンテナを複製し、
    前記第1コンテナが使用するハードウェアリソースを、前記第2コンテナでも使用可能なように設定を行う
    コンテナ管理装置。
  2. 前記第1コンテナのコンテナイメージと、前記第1コンテナで使用しているハードウェアリソースとを対応付けたコンテナリソース情報を記憶する記憶部をさらに有し、
    前記プロセッサ部は、
    前記第1コンテナのコンテナイメージにより前記第2コンテナを複製する際に、前記第1コンテナのコンテナイメージに対応付けられている前記ハードウェアリソースを複製して、前記第2コンテナにより使用可能に設定する
    請求項1に記載のコンテナ管理装置。
  3. 前記ハードウェアリソースは、前記第1コンテナにより利用されるボリュームを含み、
    前記プロセッサ部は、
    前記ボリュームを複製する
    請求項2に記載のコンテナ管理装置。
  4. 前記ボリュームは、データベースのデータが格納されるボリュームである
    請求項3に記載のコンテナ管理装置。
  5. リソース情報には、前記ボリュームを複製するか否かを示す複製可否情報を含み、
    前記複製可否情報に基づいて、前記ボリュームを複製するか否かを決定する
    請求項3又は請求項4に記載のコンテナ管理装置。
  6. 前記複製可否情報が、前記ボリュームを複製しないことを示す場合に、前記ボリュームを複製せずに、前記第2コンテナが前記ボリュームを直接使用できるように設定する
    請求項5に記載のコンテナ管理装置。
  7. 前記プロセッサ部は、
    ユーザから第1コンテナに基づいて前記第2コンテナを複製する指定を行う複製コマンドを受け付け、
    前記複製コマンドを受けた場合に、前記第2コンテナを複製するとともに、前記ハードウェアリソースを利用可能に設定させる一連の処理を実行する
    請求項3から請求項6のいずれか一項に記載のコンテナ管理装置。
  8. 前記プロセッサ部は、
    ユーザからコンテナを削除する削除コマンドを受け付け、
    前記削除コマンドに対応するコンテナが前記第1コンテナであるか否かを判定し、
    前記削除コマンドに対応するコンテナが前記第1コンテナである場合に、前記記憶部から前記第1コンテナの前記コンテナリソース情報を削除せずに、前記コンテナを削除する
    請求項3から請求項7のいずれか一項に記載のコンテナ管理装置。
  9. 前記プロセッサ部は、
    前記削除コマンドに対応するコンテナが前記第1コンテナである場合に、前記ユーザから前記第1コンテナのコンテナイメージをテンプレートとして使用するか否かの指示を受け付け、
    前記ユーザからの指示が、前記第1コンテナのコンテナイメージをテンプレートとして使用する場合には、前記コンテナリソース情報を前記記憶部から削除しない一方、前記第1コンテナのコンテナイメージをテンプレートとして使用しないとの指示である場合には、前記コンテナリソース情報を記憶部から削除する
    請求項8に記載のコンテナ管理装置。
  10. 前記プロセッサ部は、
    前記削除コマンドに対応するコンテナが前記第2コンテナであるか否かを判定し、
    前記削除コマンドに対応するコンテナが前記第2コンテナである場合に、前記コンテナを削除するとともに、前記第1コンテナのコンテナイメージに対応付けられている前記ハードウェアリソースを複製して使用していたボリュームを削除する
    請求項8または請求項9に記載のコンテナ管理装置。
  11. オペレーティングシステム上に構築されるコンテナを管理するリソース管理装置によるコンテナ管理方法であって、
    第1コンテナのコンテナイメージに基づいて、第2コンテナを複製し、
    前記第1コンテナが使用するハードウェアリソースを、前記第2コンテナでも使用可能なように設定を行う
    コンテナ管理方法。
  12. オペレーティングシステム上に構築されるコンテナを管理するコンテナ管理装置を構成するコンピュータに実行させるためのコンテナ管理プログラムであって、
    前記コンピュータに、
    第1コンテナのコンテナイメージに基づいて、第2コンテナを複製させ、
    前記第1コンテナが使用するハードウェアリソースを、前記第2コンテナでも使用可能なように設定させる
    コンテナ管理プログラム。
JP2017189527A 2017-09-29 2017-09-29 コンテナ管理装置、コンテナ管理方法、及びコンテナ管理プログラム Active JP6612826B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017189527A JP6612826B2 (ja) 2017-09-29 2017-09-29 コンテナ管理装置、コンテナ管理方法、及びコンテナ管理プログラム
US16/127,430 US10514947B2 (en) 2017-09-29 2018-09-11 Container management apparatus, container management method, and nonvolatile recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017189527A JP6612826B2 (ja) 2017-09-29 2017-09-29 コンテナ管理装置、コンテナ管理方法、及びコンテナ管理プログラム

Publications (2)

Publication Number Publication Date
JP2019066985A true JP2019066985A (ja) 2019-04-25
JP6612826B2 JP6612826B2 (ja) 2019-11-27

Family

ID=65897893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017189527A Active JP6612826B2 (ja) 2017-09-29 2017-09-29 コンテナ管理装置、コンテナ管理方法、及びコンテナ管理プログラム

Country Status (2)

Country Link
US (1) US10514947B2 (ja)
JP (1) JP6612826B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021033469A (ja) * 2019-08-20 2021-03-01 ファナック株式会社 情報処理装置及びプログラム
JP2021096822A (ja) * 2019-12-13 2021-06-24 株式会社日立産機システム 通信モジュール、通信システム及び通信方法
EP3885914A1 (en) 2020-03-23 2021-09-29 Fujitsu Limited Container image arrangement method and container image arrangement program
JP2021152711A (ja) * 2020-03-24 2021-09-30 株式会社日立製作所 オペレータ管理装置、オペレータ管理方法及びオペレータ管理コンピュータープログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540191B2 (en) * 2017-03-21 2020-01-21 Veritas Technologies Llc Systems and methods for using dynamic templates to create application containers
KR20210073297A (ko) 2019-12-10 2021-06-18 삼성전자주식회사 클라우드 서버 및 클라우드 서버의 동작방법
US11409787B2 (en) * 2020-11-10 2022-08-09 Nexcom International Co., Ltd. Method for executing Docker image under protection
US11650809B2 (en) 2021-06-15 2023-05-16 International Business Machines Corporation Autonomous and optimized cloning, reinstating, and archiving of an application in a containerized platform
JP2023102641A (ja) * 2022-01-12 2023-07-25 株式会社日立製作所 計算機システム及びスケールアップ管理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256467B1 (en) * 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
JP2017111761A (ja) * 2015-12-18 2017-06-22 エヌ・ティ・ティ・コミュニケーションズ株式会社 コンテナ収容装置、コンテナ作成方法、及びプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566821B2 (en) * 2008-11-11 2013-10-22 Netapp Inc. Cloning virtual machines
US8650566B2 (en) * 2011-08-29 2014-02-11 Vmware, Inc. Virtual machine provisioning in object storage system
EA201301283A1 (ru) * 2013-11-26 2015-05-29 Общество С Ограниченной Ответственностью "Параллелз" Способ целевой виртуализации ресурсов в контейнере
US9652273B2 (en) * 2014-10-02 2017-05-16 Vmware, Inc. Method and system for creating a hierarchy of virtual machine templates in a virtualized computing system
EP3314423B1 (en) * 2015-06-26 2023-03-01 Intel Corporation Techniques to run one or more containers on virtual machine
JP2017076264A (ja) 2015-10-15 2017-04-20 日本電気株式会社 ファイルアクセスシステム、方法及びプログラム
US10002247B2 (en) * 2015-12-18 2018-06-19 Amazon Technologies, Inc. Software container registry container image deployment
US20170322824A1 (en) * 2016-05-05 2017-11-09 Microsoft Technology Licensing, Llc Cloning Computing Device Containers
US10860536B2 (en) * 2017-01-05 2020-12-08 Portworx, Inc. Graph driver layer management
US10915348B2 (en) * 2017-01-31 2021-02-09 Intel Corporation Technologies for duplicating virtual machine states
US10360009B2 (en) * 2017-03-17 2019-07-23 Verizon Patent And Licensing Inc. Persistent data storage for a microservices application
US10338966B2 (en) * 2017-04-20 2019-07-02 Red Hat, Inc. Instantiating containers with a unified data volume

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256467B1 (en) * 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
JP2017111761A (ja) * 2015-12-18 2017-06-22 エヌ・ティ・ティ・コミュニケーションズ株式会社 コンテナ収容装置、コンテナ作成方法、及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
前佛 雅人: "「Docker環境のコード化とオーケストレーション」", SOFTWAREDESIGN 2015年12月号, JPN6019027050, 18 December 2015 (2015-12-18), JP, pages 59 - 63, ISSN: 0004075235 *
石坂 徹 他: "「仮想化基盤上でのシステム再構築の一手法」", 電子情報通信学会技術研究報告, vol. 第115巻 第482号, JPN6019027049, 25 February 2016 (2016-02-25), JP, pages 145 - 149, ISSN: 0004075234 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021033469A (ja) * 2019-08-20 2021-03-01 ファナック株式会社 情報処理装置及びプログラム
JP2021096822A (ja) * 2019-12-13 2021-06-24 株式会社日立産機システム 通信モジュール、通信システム及び通信方法
EP3885914A1 (en) 2020-03-23 2021-09-29 Fujitsu Limited Container image arrangement method and container image arrangement program
US11675626B2 (en) 2020-03-23 2023-06-13 Fujitsu Limited Container image arrangement method and non-transitory computer-readable medium
JP2021152711A (ja) * 2020-03-24 2021-09-30 株式会社日立製作所 オペレータ管理装置、オペレータ管理方法及びオペレータ管理コンピュータープログラム

Also Published As

Publication number Publication date
US10514947B2 (en) 2019-12-24
US20190102214A1 (en) 2019-04-04
JP6612826B2 (ja) 2019-11-27

Similar Documents

Publication Publication Date Title
JP6612826B2 (ja) コンテナ管理装置、コンテナ管理方法、及びコンテナ管理プログラム
US11924034B2 (en) Migration of an existing computing system to new hardware
US11611479B2 (en) Migration of existing computing systems to cloud computing sites or virtual machines
US10540173B2 (en) Version control of applications
US9235589B2 (en) Optimizing storage allocation in a virtual desktop environment
US9116633B2 (en) Information management of virtual machines having mapped storage devices
JP2022095781A (ja) データベーステナントマイグレーションのシステム及び方法
US20170277596A1 (en) Multiple retention period based representatons of a dataset backup
US20170277597A1 (en) Efficient creation of multiple retention period based representations of a dataset backup
US20170277435A1 (en) Managing storage space based on multiple dataset backup versions
US9286328B2 (en) Producing an image copy of a database object based on information within database buffer pools
JP4497993B2 (ja) 電子配付物の配付制御システム及び方法
US10891074B2 (en) Key-value storage device supporting snapshot function and operating method thereof
US10057273B1 (en) System and method for ensuring per tenant mutual exclusion of data and administrative entities with low latency and high scale
US9032402B2 (en) Managing an independent virtual disk
US11194674B2 (en) Direct access to backup copy
US11263183B2 (en) Integrating virtual machine file system into a native file explorer
US9830471B1 (en) Outcome-based data protection using multiple data protection systems
WO2015020636A1 (en) Method and apparatus of storage system which stores information for relationship between logical volumes and operations
US20170308542A1 (en) File system configuration data storage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190904

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191031

R150 Certificate of patent or registration of utility model

Ref document number: 6612826

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150