JP2017111761A - Container storage device, container creation method and program - Google Patents

Container storage device, container creation method and program Download PDF

Info

Publication number
JP2017111761A
JP2017111761A JP2015247897A JP2015247897A JP2017111761A JP 2017111761 A JP2017111761 A JP 2017111761A JP 2015247897 A JP2015247897 A JP 2015247897A JP 2015247897 A JP2015247897 A JP 2015247897A JP 2017111761 A JP2017111761 A JP 2017111761A
Authority
JP
Japan
Prior art keywords
container
user
area
data
specific user
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
JP2015247897A
Other languages
Japanese (ja)
Other versions
JP6749094B2 (en
Inventor
浩之 牧野
Hiroyuki Makino
浩之 牧野
渉 堀口
Wataru Horiguchi
渉 堀口
翔 長沼
Sho Naganuma
翔 長沼
新 阿部
Arata Abe
新 阿部
遠藤 久
Hisashi Endo
久 遠藤
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.)
NTT Communications Corp
Original Assignee
NTT Communications Corp
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 NTT Communications Corp filed Critical NTT Communications Corp
Priority to JP2015247897A priority Critical patent/JP6749094B2/en
Publication of JP2017111761A publication Critical patent/JP2017111761A/en
Application granted granted Critical
Publication of JP6749094B2 publication Critical patent/JP6749094B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To properly perform control of a resource for every user, in a sharing hosting service in which a server resource is shared among users.SOLUTION: A container storage device for storing a container which is a virtual environment in which a process of a specific user is operated in a separated state from a process of other users, comprises: container management means for, when a container creation instruction of the specific user is received, using model data which is used in common in container creation of each user, creating a container of the specific user. The container management means connects an external area which is outside of the container to a data area which is recognized by the specific user on the container, and allows the data to be stored in the external area.SELECTED DRAWING: Figure 1

Description

本発明は、共用ホスティングサービスにおけるサービス提供方式に関連するものである。   The present invention relates to a service providing method in a shared hosting service.

近年では、VPS(Virtual Private Server)やクラウドといったCPU/メモリ/ディスクなどを占有する仮想サーバ型のホスティングサービスが広がりつつある。しかし、仮想サーバ型のホスティングサービスでは、ユーザにおいてサーバを管理運用する手間が個々のサーバ毎に発生する。これに対し、サーバ資源を他のユーザと共有することで、低コストでサーバ管理の手間がかからない共用ホスティングサービスが主に中小企業ユーザに広く利用されている。   In recent years, virtual server type hosting services that occupy CPU / memory / disk, such as VPS (Virtual Private Server) and cloud, are spreading. However, in the virtual server type hosting service, a user needs to manage and operate the server for each individual server. On the other hand, by sharing server resources with other users, a shared hosting service that is low-cost and does not require time and effort for server management is widely used mainly by small and medium enterprise users.

従来の共用ホスティングサービスの提供手法では、単一のプロセスを一筐体内において多数の収容ユーザで共有する。具体的には、共有デーモンプロセスを用意し、利用ユーザをドメインなどのユーザ固有の情報で振り分け、筐体のリソースを収容ユーザで共有する。   In the conventional method for providing a shared hosting service, a single process is shared by a large number of accommodated users in one housing. Specifically, a shared daemon process is prepared, user users are distributed according to user-specific information such as a domain, and housing resources are shared among accommodated users.

特開2014-235644号公報JP 2014-235644

しかしながら、上記のようにプロセスをユーザ間で共有する方式では、例えば、収容されている一部のユーザが大量のリソースを占有した場合、他のユーザがサービスを利用できないといった影響を受ける場合がある。また、プロセスを利用する全ユーザ間で共通のリソースの設定を用いらなければならないという問題もある。   However, in the method of sharing a process between users as described above, for example, when some accommodated users occupy a large amount of resources, there is a case that other users cannot use the service. . There is also a problem that a common resource setting must be used among all users using the process.

すなわち、従来技術では、サーバリソースをユーザ間で共用する共用ホスティングサービスにおいて、リソースの制御をユーザ毎に適切に行うことができないという問題があった。   That is, the conventional technology has a problem in that it is not possible to appropriately control resources for each user in a shared hosting service in which server resources are shared among users.

本発明は上記の点に鑑みてなされたものであり、サーバリソースをユーザ間で共用する共用ホスティングサービスにおいて、リソースの制御をユーザ毎に適切に行うことを可能とする技術を提供することを目的とする。   The present invention has been made in view of the above points, and an object of the present invention is to provide a technology that enables appropriate control of resources for each user in a shared hosting service in which server resources are shared among users. And

本発明の実施の形態によれば、特定のユーザのプロセスを他のユーザのプロセスと隔離して動作させる仮想的な環境であるコンテナを収容するコンテナ収容装置であって、
前記特定のユーザのコンテナの作成指示を受信した場合に、各ユーザのコンテナ作成において共通に使用されるモデルデータを用いて、前記特定のユーザのコンテナを作成するコンテナ管理手段を備え、
前記コンテナ管理手段は、前記コンテナの外部にある外部領域を、前記コンテナにおいて前記特定のユーザにより認識されるデータ領域に接続し、データが前記外部領域に格納されるようにする
ことを特徴とするコンテナ収容装置が提供される。
According to an embodiment of the present invention, a container accommodation apparatus that accommodates a container that is a virtual environment in which a process of a specific user is operated separately from other users' processes,
A container management means for creating a container for the specific user by using model data commonly used in creating a container for each user when receiving the container creation instruction for the specific user;
The container management means connects an external area outside the container to a data area recognized by the specific user in the container so that data is stored in the external area. A container storage device is provided.

また、本発明の実施の形態によれば、特定のユーザのプロセスを他のユーザのプロセスと隔離して動作させる仮想的な環境であるコンテナを収容するコンテナ収容装置が実行するコンテナ作成方法であって、
前記特定のユーザのコンテナの作成指示を受信した場合に、各ユーザのコンテナ作成において共通に使用されるモデルデータを用いて、前記特定のユーザのコンテナを作成するコンテナ作成ステップを備え、
前記コンテナ作成ステップにおいて、前記コンテナ収容装置は、前記コンテナの外部にある外部領域を、前記コンテナにおいて前記特定のユーザにより認識されるデータ領域に接続し、データが前記外部領域に格納されるようにする
ことを特徴とするコンテナ作成方法が提供される。
In addition, according to the embodiment of the present invention, there is provided a container creation method executed by a container accommodation device that accommodates a container that is a virtual environment for operating a specific user process separately from other user processes. And
A container creation step of creating a container for the specific user by using model data commonly used in creating a container for each user when the container creation instruction for the specific user is received;
In the container creation step, the container receiving device connects an external area outside the container to a data area recognized by the specific user in the container, so that data is stored in the external area. A container creation method characterized by the above is provided.

本発明の実施の形態によれば、サーバリソースをユーザ間で共用する共用ホスティングサービスにおいて、リソースの制御をユーザ毎に適切に行うことを可能とする技術を提供することが可能となる。   According to the embodiment of the present invention, it is possible to provide a technique that enables appropriate control of resources for each user in a shared hosting service in which server resources are shared among users.

本発明の実施の形態におけるシステムの全体構成図である。1 is an overall configuration diagram of a system in an embodiment of the present invention. コンテナ収容装置100においてコンテナが生成された後の構成例を示す図である。It is a figure which shows the structural example after the container is produced | generated in the container accommodating apparatus. コンテナ収容装置100の構成をより具体的に示す図である。It is a figure which shows the structure of the container accommodating apparatus 100 more concretely. コンテナ作成の概要を示す図である。It is a figure which shows the outline | summary of container creation. テンプレートの内容例を示す図である。It is a figure which shows the example of the content of a template. コンテナ作成時の処理例を示すフローチャートである。It is a flowchart which shows the process example at the time of container creation. アップデート処理の概要を示す図である。It is a figure which shows the outline | summary of an update process. アップデート時の処理例を示すフローチャートである。It is a flowchart which shows the process example at the time of an update. ユーザ領域テンプレートの配付処理の例を示す図である。It is a figure which shows the example of the delivery process of a user area | region template. ユーザデータのストレージを使い分ける例を説明するための図である。It is a figure for demonstrating the example which uses properly the storage of user data. 外部のサービスとの連携を説明するための図である。It is a figure for demonstrating cooperation with an external service.

以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。   Embodiments of the present invention will be described below with reference to the drawings. The embodiment described below is only an example, and the embodiment to which the present invention is applied is not limited to the following embodiment.

(実施の形態の概要)
本実施の形態では、サーバアプリケーション、ライブラリモジュール、共通設定等からなるコンテナテンプレートを作成し、コンテナテンプレートからユーザ毎のコンテナを作成することとしている。これにより、各コンテナに収容される収容ユーザのプロセス空間の分離を行う。これによりリソースについてコンテナ単位で適切に制御できるようになる。
(Outline of the embodiment)
In this embodiment, a container template including a server application, a library module, common settings, and the like is created, and a container for each user is created from the container template. Thereby, the process space of the accommodation user accommodated in each container is separated. This makes it possible to appropriately control resources on a container basis.

また、ユーザが作成するデータやカスタマイズ可能な設定ファイルはコンテナとは別のストレージにデータ領域として確保し、コンテナとして作成された仮想ストレージのレイヤ化を行い、データ領域をバインドマウントすることで、ユーザは共通領域(コンテナ)とデータ領域の種別の境界を特に意識することなく透過的にファイルシステムを扱うことができる。   In addition, data created by the user and customizable configuration files are secured as a data area in a storage separate from the container, the virtual storage created as a container is layered, and the data area is bind-mounted to allow the user to Can handle the file system transparently without being particularly aware of the boundary between the types of the common area (container) and the data area.

<コンテナについて>
ここで、コンテナの概要を簡単に説明しておく。なお、コンテナ自体は既存技術である。一般にOSの内部は、アプリケーション(OS上で動作するソフトウェア)が使用するユーザ空間と、カーネルが使用するカーネル空間とに分かれる。アプリケーションが実行されると、ユーザ空間においてプロセス(プログラムの実行単位)が生成される。コンテナの技術では、プロセスをグループ化し、他のグループやグループに属していないプロセスから隔離した空間で動作させる。この空間(仮想的な環境)をコンテナと呼ぶ。
<About Container>
Here, the outline of the container will be briefly described. The container itself is an existing technology. In general, the OS is divided into a user space used by an application (software operating on the OS) and a kernel space used by the kernel. When the application is executed, a process (program execution unit) is generated in the user space. In container technology, processes are grouped and run in a space isolated from other groups and processes that do not belong to the group. This space (virtual environment) is called a container.

コンテナの技術では、コンテナ内のプロセスからは他のコンテナのプロセスにアクセスすることはできない。また、CPU、メモリ、デバイス等については、コンテナ毎に、コンテナから利用できる範囲が制限される。   In container technology, processes in a container cannot access processes in other containers. For the CPU, memory, device, etc., the range that can be used from the container is limited for each container.

なお、コンテナの作成等を行うためのソフトウェア("コンテナ管理ソフト"と呼ぶ)としては種々のものがあるが、本実施の形態では、一例として、Docker(登録商標)を使用することを想定している。ただし、本発明を適用できるコンテナ管理ソフトは、特定のコンテナ管理ソフトに限定されるわけではなく、様々なコンテナ管理ソフトを適用して本発明を実施することができる。   There are various types of software for creating containers (referred to as “container management software”). In this embodiment, it is assumed that Docker (registered trademark) is used as an example. ing. However, the container management software to which the present invention can be applied is not limited to specific container management software, and the present invention can be implemented by applying various container management software.

(システム全体構成)
図1に、本発明の実施の形態に係るシステムの全体構成例を示す図である。図1に示すように、本実施の形態に係るシステムは、コンテナ収容装置100と管理装置200を有する。
(Whole system configuration)
FIG. 1 is a diagram showing an example of the overall configuration of a system according to an embodiment of the present invention. As shown in FIG. 1, the system according to the present embodiment includes a container storage device 100 and a management device 200.

コンテナ収容装置100と管理装置200はそれぞれ、ネットワークに接続されている装置であり、コンテナ収容装置100と管理装置200との間で通信が可能である。また、コンテナ収容装置100と管理装置200はそれぞれ、1つ又は複数の物理的なサーバ(コンピュータ)であってもよいし、1つ又は複数の仮想サーバであってもよい。コンテナ収容装置100を「ホスト」と称してもよい。   Each of the container storage device 100 and the management device 200 is a device connected to a network, and communication between the container storage device 100 and the management device 200 is possible. Each of the container storage device 100 and the management device 200 may be one or a plurality of physical servers (computers), or may be one or a plurality of virtual servers. The container storage device 100 may be referred to as a “host”.

<コンテナ収容装置>
コンテナ収容装置100は、各ユーザに対して共用ホスティングサービスを提供する装置である。本実施の形態では、コンテナ収容装置100内にユーザ毎のコンテナが作成される。
<Container storage device>
The container accommodating device 100 is a device that provides a shared hosting service to each user. In the present embodiment, a container for each user is created in the container accommodating device 100.

図1に示すように、コンテナ収容装置100は、コンテナ管理部110、テンプレート格納部120、監視制御部130を含む。コンテナ管理部110は、管理装置200からの指示に基づいて、コンテナを作成、更新するための機能部であり、本実施の形態では、コンテナ管理ソフト、プロビジョニングスクリプト(プログラム)等により実現される機能部である。   As illustrated in FIG. 1, the container storage device 100 includes a container management unit 110, a template storage unit 120, and a monitoring control unit 130. The container management unit 110 is a functional unit for creating and updating a container based on an instruction from the management apparatus 200. In the present embodiment, functions realized by container management software, a provisioning script (program), and the like. Part.

テンプレート格納部120は、コンテナテンプレートと、ユーザ領域テンプレートを格納している。本実施の形態のコンテナテンプレートは、コンテナイメージと呼んでもよく、コンテナ間で共通であり、コンテナのひな形となるデータ(モデルデータと呼んでもよい)である。テンプレートに基づいて各ユーザのコンテナが作成されるが、その際に、ユーザ個別の設定がなされる。   The template storage unit 120 stores container templates and user area templates. The container template of the present embodiment may be referred to as a container image, and is data (which may be referred to as model data) that is common between containers and serves as a template for the container. A container for each user is created based on the template, and at that time, individual user settings are made.

ユーザ領域テンプレートは、コンテナにおけるユーザ領域(ユーザが書き換え可能な領域)の初期設定、初期データ等からなる。ユーザ領域テンプレート自体は、コンテナ間で共通であるが、コンテナ作成時に、ユーザ個別の設定(設定ファイル格納等)がなされる。   The user area template includes initial settings, initial data, and the like of a user area (an area that can be rewritten by the user) in the container. The user area template itself is common between containers, but individual settings (setting file storage, etc.) are made when a container is created.

監視制御部130は、コンテナにおけるプロセスの実行に伴って発生するユーザデータの読み書きの頻度又はデータ量を監視して、当該頻度又はデータ量に応じて、ユーザデータを格納するストレージ等を使い分ける機能部である。なお、監視制御部130は、コンテナを構成するプログラム(つまり、コンテナテンプレートを構成するプログラム)により実現される機能部であってもよいし、コンテナの外部のプログラム(コンテナ収容装置100が実行するプログラム)で実現される機能部であってもよい。   The monitoring control unit 130 monitors the read / write frequency or data amount of user data generated as a result of execution of a process in the container, and uses a storage unit that stores user data according to the frequency or data amount. It is. Note that the monitoring control unit 130 may be a functional unit realized by a program that configures a container (that is, a program that configures a container template), or a program outside the container (a program executed by the container accommodating device 100). ) May be a functional unit realized by

また、監視制御部130は、ユーザのコンテナ利用に関するリソース制御の機能も有している。この機能は「fair share」の考えに基づくものであり、具体的には、監視制御部130に、各ユーザ(1コンテナ)が利用できるリソース(例:CPUリソース、メモリリソース)の相対値と最大値が設定され、監視制御部130は、これらの値に基づいてリソース制御を行う。   The monitoring control unit 130 also has a resource control function related to the user's use of the container. This function is based on the idea of “fair share”. Specifically, the monitor control unit 130 has a relative value and a maximum of resources (eg, CPU resource, memory resource) that each user (1 container) can use. Values are set, and the monitoring control unit 130 performs resource control based on these values.

相対値は、1ユーザに割り当てられるリソースの量である。監視制御部130は、コンテナ収容装置100の全体負荷が高い場合には、各ユーザのリソースを相対値に制限するが、コンテナ収容装置100のリソースに余裕がある場合には、相対値以上のリソースの使用を許容する。ただし、最大値を超えることはできない。このようなリソース制御により、コンテナ収容装置100の全体のリソースを有効に活用できるとともに、複数コンテナ間で平等にリソースを利用できる。   The relative value is the amount of resources allocated to one user. The monitoring control unit 130 limits each user's resource to a relative value when the overall load of the container accommodating device 100 is high, but if the resource of the container accommodating device 100 has a margin, the resource greater than the relative value. Is allowed. However, the maximum value cannot be exceeded. By such resource control, the entire resources of the container accommodating device 100 can be effectively used, and resources can be used equally among a plurality of containers.

最大値はコンテナ収容装置100のリソースに余裕がある状態で、1ユーザが利用できるリソース上限値を表す。このような上限値を設定することで1コンテナが暴走した場合でもコンテナ収容装置100全体のリソースを占有しないようにすることができる。   The maximum value represents a resource upper limit value that can be used by one user in a state where there is room in the resources of the container accommodating device 100. By setting such an upper limit value, even when one container goes out of control, it is possible not to occupy the resources of the entire container storage device 100.

すなわち、監視制御部130は、複数コンテナ間で平等にリソースを使用できるようにするとともに、全体のリソースに余裕がある場合でも、1コンテナが使用するリソースを所定の上限値に制限するリソース制御の機能を有する。   In other words, the monitoring control unit 130 makes it possible to use resources equally among a plurality of containers and performs resource control for limiting the resources used by one container to a predetermined upper limit value even when the entire resources are available. It has a function.

なお、監視制御部130におけるリソース制御の機能は、後述するOSにおけるコンテナ機能37を利用して実現してもよいし、コンテナ機能37とは別の機能として実現してもよい。また、リソース制御の機能を監視制御部130とは別の機能部として設けてもよい。   Note that the resource control function in the monitoring control unit 130 may be realized using a container function 37 in the OS described later, or may be realized as a function different from the container function 37. Further, the resource control function may be provided as a function unit different from the monitoring control unit 130.

本実施の形態に係るコンテナ収容装置100は、例えば、1つ又は複数のコンピュータに、本実施の形態で説明するコンテナ管理部110と監視制御部130における処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、コンテナ収容装置100が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、コンテナ収容装置100で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配付したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。   The container accommodating apparatus 100 according to the present embodiment causes, for example, one or a plurality of computers to execute a program describing the processing contents in the container management unit 110 and the monitoring control unit 130 described in the present embodiment. It is feasible. That is, the functions of the container storage device 100 are realized by executing a program corresponding to the processing executed in the container storage device 100 using hardware resources such as a CPU, a memory, and a hard disk built in the computer. Is possible. The above program can be recorded on a computer-readable recording medium (portable memory or the like), stored, or distributed. It is also possible to provide the program through a network such as the Internet or electronic mail.

<管理装置>
図1に示すように、管理装置200は、オーダー管理部210、コンテナ収容装置管理部220、テンプレート格納部230を有する。オーダー管理部210は、運用者等からのオーダーに従って、コンテナ収容装置100に対してコンテナ作成を指示する機能部である。コンテナ収容装置管理部220は、運用者からのアップデート命令を受けて、コンテナのアップデートを実行する。テンプレート格納部230は、各種のバージョンのテンプレートを格納しており、テンプレートをコンテナ収容装置100に配付する機能を有する。
<Management device>
As illustrated in FIG. 1, the management device 200 includes an order management unit 210, a container storage device management unit 220, and a template storage unit 230. The order management unit 210 is a functional unit that instructs the container storage device 100 to create a container in accordance with an order from an operator or the like. In response to an update command from the operator, the container storage device management unit 220 updates the container. The template storage unit 230 stores templates of various versions, and has a function of distributing the templates to the container storage device 100.

本実施の形態に係る管理装置200は、例えば、1つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、管理装置200が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、管理装置200で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配付したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。   The management apparatus 200 according to the present embodiment can be realized, for example, by causing one or a plurality of computers to execute a program describing the processing content described in the present embodiment. That is, the function of the management apparatus 200 is realized by executing a program corresponding to processing executed in the management apparatus 200 using hardware resources such as a CPU, a memory, and a hard disk built in the computer. Is possible. The above program can be recorded on a computer-readable recording medium (portable memory or the like), stored, or distributed. It is also possible to provide the program through a network such as the Internet or electronic mail.

(コンテナ収容装置100の詳細例)
図2は、ユーザ毎のコンテナが作成された状態のコンテナ収容装置100の構成例を示す図である。図2に示す例では、コンテナテンプレート10に基づき、各コンテナ(コンテナ1、コンテナ2、コンテナ3)が生成されている。各コンテナには、共通領域とユーザ領域が示されている。共通領域には、設定ファイル11、ライブラリ12、デーモン13が示されている。また、ユーザ領域には、設定ファイル21、ユーザデータ22が示されている。
(Detailed example of the container housing device 100)
FIG. 2 is a diagram illustrating a configuration example of the container storage device 100 in a state where a container for each user is created. In the example illustrated in FIG. 2, each container (container 1, container 2, container 3) is generated based on the container template 10. Each container shows a common area and a user area. In the common area, a setting file 11, a library 12, and a daemon 13 are shown. In the user area, a setting file 21 and user data 22 are shown.

「共通領域」に関して、アプリケーション(デーモン)やライブラリ等、コンテナ間で共通の機能を提供する領域(機能)であることから「共通領域」と呼んでいるが、その動作(プロセスとしての動作)は、コンテナ毎に独立である。設定ファイル11、ライブラリ12、デーモン(プログラム)13等の実体データは、コンテナテンプレート10(コンテナイメージ)である。コンテナの機能により、各ユーザにとっては、自分のみがこれらを使用するように認識される。なお、コンテナテンプレート10(コンテナイメージ)が格納される領域が実際の「共通領域」であり、図2に示す「共通領域」は、当該共通領域の内容と同等の内容を持つ領域であることを意味する。   Regarding "common area", it is called "common area" because it is an area (function) that provides common functions among containers such as applications (daemons) and libraries, but its operation (operation as a process) is Each container is independent. The entity data such as the setting file 11, the library 12, and the daemon (program) 13 is a container template 10 (container image). Due to the function of the container, each user is recognized to use them only. Note that the area where the container template 10 (container image) is stored is an actual “common area”, and the “common area” shown in FIG. 2 is an area having the same content as the contents of the common area. means.

「ユーザ領域」は、ユーザが書き換え可能な領域である。ユーザ領域におけるファイルやデータの初期値はユーザ領域テンプレート20に基づいて設定されるものである。初期値設定後に、ユーザ個別の設定ファイル21等が格納(コピー)されることで、ユーザ個別の設定が行われる。また、ユーザにとっては、コンテナにより提供されるファイルシステムの所定のユーザデータ領域がユーザデータ22の格納領域として見えるが、外部領域のバンドマウントによって、当該外部領域がコンテナのユーザデータ領域に接続され、実際のユーザデータの読み書きは当該外部領域に対して行われる。つまり、ユーザデータ領域の実体は外部領域にある。なお、設定ファイル21は、バインドマウントにより外部領域に格納してもよいし、バインドマウントを行わずにコンテナの領域に格納してもよい。   The “user area” is an area that can be rewritten by the user. Initial values of files and data in the user area are set based on the user area template 20. After the initial value is set, the user-specific setting file 21 and the like are stored (copied), whereby the user-specific setting is performed. For the user, a predetermined user data area of the file system provided by the container appears as a storage area for the user data 22, but the external area is connected to the user data area of the container by band mounting of the external area, Actual user data reading and writing is performed on the external area. That is, the substance of the user data area is in the external area. The setting file 21 may be stored in the external area by bind mount, or may be stored in the container area without performing bind mount.

図3は、コンテナ収容装置100の構成をより具体的に示した図である。図3に示すように、ハードウェア36、OS30が存在する。OS30として、コンテナ機能を提供可能なOSであればどのようなOSでもよいが、例えばLinux(登録商標)を使用できる。OS30の機能としてドライバ31、コンテナ機能37が含まれる。   FIG. 3 is a diagram more specifically showing the configuration of the container storage device 100. As shown in FIG. 3, hardware 36 and OS 30 exist. The OS 30 may be any OS as long as it can provide a container function. For example, Linux (registered trademark) can be used. A driver 31 and a container function 37 are included as functions of the OS 30.

コンテナ機能37は、コンテナの実現のために利用されるOSの機能であり、例えば、Namespaces、cgroups、selinux等がある。   The container function 37 is an OS function used for realizing the container, and includes, for example, Namespaces, cgroups, selinux, and the like.

管理インタフェース(management interface)34は、コンテナ管理ソフト(Docker等)に相当する。   A management interface 34 corresponds to container management software (Docker or the like).

本実施の形態では、コンテナイメージ33は、コンテナテンプレート10に相当する。コンテナイメージ33の内容がコンテナにおける共通領域の内容になるため、図3では、コンテナイメージ33の部分を共通領域と記載している。   In the present embodiment, the container image 33 corresponds to the container template 10. Since the content of the container image 33 becomes the content of the common area in the container, the portion of the container image 33 is described as a common area in FIG.

図3の例では、コンテナ1とコンテナ2が起動している例を示している。図3に示すAUFSは、ファイルシステム機能の1つであり、親のファイルシステム(図3の例でコンテナイメージ33)をすべてリードオンリーにして、その上にライタブルなレイヤを重ねてレイヤを通して1つのファイルシステムのように扱うことを可能とする機能である。ただし、AUFSを使用することは一例に過ぎない。   In the example of FIG. 3, an example in which the container 1 and the container 2 are activated is shown. AUFS shown in FIG. 3 is one of the file system functions. All of the parent file system (container image 33 in the example of FIG. 3) is read-only, and a writable layer is overlaid on the parent file system so that one file is passed through the layer. It is a function that allows it to be handled like a file system. However, using AUFS is just an example.

図3には、各コンテナ内に作成された共通的なファイルシステムのディレクトリに対して、ユーザ個別のユーザデータを格納した外部のユーザデータ領域35からバインドマウントを行うことが示されている。コンテナ外部のユーザデータ領域35は、コンテナ収容装置100内に備えられていてもよいし、別の装置に備えられていてもよい。このようなバインドマウントにより、ユーザは、外部のユーザデータ領域35を意識することなく、コンテナから各自のデータにアクセスすることができる。   FIG. 3 shows that bind mounting is performed from an external user data area 35 storing user data for each user to a common file system directory created in each container. The user data area 35 outside the container may be provided in the container accommodating device 100 or may be provided in another device. With such a bind mount, users can access their own data from the container without being aware of the external user data area 35.

なお、バインドマウントとは、マウントの一種であり、あるファイルパスを別のディレクトリにバインドしてマウントすることができる機能である。例えば、バインドマウントの命令の引数として「/ABC /XYZ」を指定した場合に、/XYZには、/ABCの中身がバインドされ、/XYZを使用するユーザには、/ABCの中身があたかも/XYZに存在するように見える。   The bind mount is a kind of mount, and is a function that allows a file path to be bound to another directory and mounted. For example, when "/ ABC / XYZ" is specified as an argument of a bind mount command, the contents of / ABC are bound to / XYZ, and the contents of / ABC are as if Looks like it exists in XYZ.

(コンテナの作成について)
図4は、コンテナ作成の概要を示す図である。図4に示すように、運用者からのGUIを介したオーダー(命令)、もしくは、オーダーサーバからのAPIを利用したオーダーに基づいて、管理装置200のオーダー管理部210が、コンテナを収容するサーバ(コンテナ収容装置100)を決定し、決定したコンテナ収容装置100のコンテナ管理部110に対してコンテナ作成を指示する。
(About container creation)
FIG. 4 is a diagram showing an outline of container creation. As shown in FIG. 4, based on an order (command) from an operator or an order using an API from an order server, the order management unit 210 of the management apparatus 200 stores a container. (Container storage device 100) is determined, and container creation is instructed to the container management unit 110 of the determined container storage device 100.

これにより、コンテナ管理部110を構成するプロビジョニングスクリプトが実行され、コンテナテンプレート及びユーザ領域テンプレートを用いることで、コンテナが作成(起動)される。   As a result, the provisioning script constituting the container management unit 110 is executed, and the container is created (activated) by using the container template and the user area template.

オーダー管理部210は、コンテナ管理DB(データベース)211を備えている。コンテナ管理DB211には、例えば、アカウント情報テーブル、ホスト情報テーブル、IPリソース情報テーブルが格納されている。アカウント情報テーブルは、例えば、アカウントID、収容ホスト名、IPアドレス、プロビジョニングステータス(Active,Holding)、ドメイン名、契約プラン、オプション契約等の情報を格納する。   The order management unit 210 includes a container management DB (database) 211. In the container management DB 211, for example, an account information table, a host information table, and an IP resource information table are stored. The account information table stores, for example, information such as account ID, accommodation host name, IP address, provisioning status (Active, Holding), domain name, contract plan, option contract, and the like.

ホスト情報テーブルは、ホスト名(コンテナ収容装置名)、ホストIPアドレス、空きリソース数、収容可能リソース上限等の情報を格納する。IPリソース情報テーブルは、ホストIPアドレス、ユーザ割り当て用IPアドレス、アカウントID等の情報を格納する。   The host information table stores information such as a host name (container accommodating device name), a host IP address, the number of free resources, an upper limit of accommodable resources, and the like. The IP resource information table stores information such as a host IP address, a user assignment IP address, and an account ID.

オーダー管理部210はオーダーを受け付けると、ホスト情報テーブル、IPリソース情報テーブルから、例えば、リソースの空き状況を考慮して、どのホスト(コンテナ収容装置)にアカウントを収容するかを決定し、決定したコンテナ収容装置100のコンテナ管理部110に、コンテナ作成指示と入力パラメータを与える。   Upon receiving the order, the order management unit 210 determines, from the host information table and the IP resource information table, which host (container accommodating device) the account is accommodated in consideration of, for example, resource availability. A container creation instruction and input parameters are given to the container management unit 110 of the container storage device 100.

図5に、コンテナテンプレートとユーザ領域テンプレートの例を示す。なお、図5は、コンテナテンプレートとユーザ領域テンプレートのそれぞれに含まれるデータの一部を示すものである。図5(a)に示すコンテナテンプレートは、ライブラリ、アプリケーション、インストーラスクリプト等を含む。ライブラリは、OSのモジュール、各種プログラムのモジュール等である。アプリケーションは、認証サーバ、Webサーバ、Mailサーバ、メーリングリストサーバ、DBサーバ、監視サーバ等である。インストーラスクリプトは、提供アプリケーションのインストールパッケージである。   FIG. 5 shows an example of a container template and a user area template. FIG. 5 shows a part of data included in each of the container template and the user area template. The container template shown in FIG. 5A includes a library, an application, an installer script, and the like. The library is an OS module, various program modules, or the like. The application is an authentication server, Web server, Mail server, mailing list server, DB server, monitoring server, or the like. The installer script is an installation package of the provided application.

図5(b)に示すように、ユーザ領域テンプレートは、設定ファイル、データディレクトリ、データファイルを含む。設定ファイルについては、ユーザ毎にコンテナ作成時に、初期設定情報が格納される。データディレクトリは、各種のデータを格納するディレクトリである。また、データファイルには、初期データが格納されている。   As shown in FIG. 5B, the user area template includes a setting file, a data directory, and a data file. As for the setting file, initial setting information is stored when creating a container for each user. The data directory is a directory for storing various data. The data file stores initial data.

図6は、コンテナ作成の命令を受けたコンテナ管理部110の処理手順例を示すフローチャートである。この処理手順は、プロビジョニングスクリプトの内容に相当する。図6を参照してコンテナ管理部110の動作を説明する。   FIG. 6 is a flowchart illustrating an example of a processing procedure of the container management unit 110 that has received a container creation command. This processing procedure corresponds to the contents of the provisioning script. The operation of the container management unit 110 will be described with reference to FIG.

コンテナ管理部110は、オーダー管理部210から、コンテナ作成命令の入力パラメータとして、アカウントID、パスワード、ドメイン名、IPアドレス、使用コンテナテンプレートID等を受信している。   The container management unit 110 receives, from the order management unit 210, an account ID, a password, a domain name, an IP address, a used container template ID, and the like as input parameters for a container creation command.

コンテナ管理部110は、アカウントIDにより、アカウントを作成し(ステップS101)、コンテナを作成する(ステップS102)。ここでは、コンテナテンプレートIDで指定されたコンテナテンプレートに対応するコンテナが作成される。また、ステップS102において、コンテナにおける予め定めた領域に対して、予め定めたユーザデータ領域(例えばアカウントIDにより識別される領域)をバインドマウントする処理も実行される。   The container management unit 110 creates an account based on the account ID (step S101) and creates a container (step S102). Here, a container corresponding to the container template specified by the container template ID is created. In step S102, a process of bind mounting a predetermined user data area (for example, an area identified by an account ID) to a predetermined area in the container is also executed.

次に、ユーザ領域テンプレートの展開を行う(ステップS103)。これにより、ユーザが書き換え可能な領域における初期データの格納等がなされる。そして、コンテナの初期設定が行われる(ステップS104)。ここでは、例えば、LDAPエントリ作成、設定ファイル生成等が行われる。そして、コンテナのアクセス設定(ステップS105)、監視設定(ステップS106)、リソース制限設定(ステップS107)が行われる。   Next, the user area template is expanded (step S103). As a result, the initial data is stored in a user-rewritable area. Then, initial setting of the container is performed (step S104). Here, for example, LDAP entry creation, configuration file generation, and the like are performed. Then, container access setting (step S105), monitoring setting (step S106), and resource limit setting (step S107) are performed.

ステップS107のリソース制限設定においては、例えば、1コンテナが利用できるCPUリソース(例:単位時間当たりの割り当て時間)の上限値、メモリ容量の上限値等が設定される。   In the resource limit setting in step S107, for example, an upper limit value of a CPU resource (eg, allocated time per unit time) that can be used by one container, an upper limit value of a memory capacity, and the like are set.

(コンテナのアップデートについて)
本実施の形態では、コンテナ管理部110は、コンテナの更新機能(アップデート機能)を有している。図7を参照してアップデート処理を説明する。なお、アップデートとは、例えば、コンテナを、旧バージョンのものから新バージョンのものに入れ替えることである。また、コンテナのアップデートは、コンテナ収容装置100に収容される複数ユーザの複数コンテナに対して一括で行ってもよいし、個々のユーザ毎に行うこととしてもよい。
(Container update)
In the present embodiment, the container management unit 110 has a container update function (update function). The update process will be described with reference to FIG. The update is, for example, replacing the container from the old version to the new version. In addition, the container update may be performed collectively for a plurality of containers of a plurality of users accommodated in the container accommodating apparatus 100 or may be performed for each individual user.

図7(a)は、コンテナの入れ替え前の状態を示す。ここで、例えば運用者からアップデート命令がコンテナ収容装置管理部220に入力されたとする。アップデート命令には、アップデート対象のコンテナを識別する情報(アカウントIDでもよいし、コンテナIDでもよい)、更新後のコンテナに対応するコンテナテンプレートを識別する情報(コンテナテンプレートID)が含まれる。なお、更新後のコンテナに対応するコンテナテンプレート(新コンテナテンプレート)は、予めコンテナ収容装置100に格納されていてもよいし、更新時に、テンプレート格納部230から取得することとしてもよい。   FIG. 7A shows a state before the container is replaced. Here, for example, it is assumed that an update command is input from the operator to the container storage device management unit 220. The update command includes information for identifying a container to be updated (account ID or container ID) and information for identifying a container template corresponding to the updated container (container template ID). The container template (new container template) corresponding to the updated container may be stored in the container storage device 100 in advance, or may be acquired from the template storage unit 230 at the time of updating.

命令を受けたコンテナ収容装置管理部220は、対象のコンテナ収容装置100のコンテナ管理部110に対して、新コンテナテンプレートを指定したアップデート命令を送信する。   Upon receiving the command, the container storage device management unit 220 transmits an update command specifying a new container template to the container management unit 110 of the target container storage device 100.

図7(b)に示すように、アップデート命令を受信したコンテナ管理部110は、現在のコンテナを削除(停止)し、コンテナテンプレートの更新を行う。コンテナテンプレートの更新とは、新コンテナテンプレートをダウンロードすることであってもよいし、コンテナ収容装置100に予め格納されている新コンテナテンプレートを読み出すことであってもよい。そして、図7(c)に示すように、新コンテナテンプレートによる新たなコンテナを作成する。   As illustrated in FIG. 7B, the container management unit 110 that has received the update command deletes (stops) the current container and updates the container template. Updating the container template may be downloading a new container template or reading a new container template stored in advance in the container storage device 100. Then, as shown in FIG. 7C, a new container is created based on the new container template.

図8は、アップデート命令を受信したコンテナ管理部110の動作を示すフローチャートである。   FIG. 8 is a flowchart showing the operation of the container management unit 110 that has received the update command.

図8に示すように、まず、旧コンテナの停止を行う(ステップS201)。そして、新コンテナテンプレートを用いて、新コンテナを起動する(ステップS202)。前述したコンテナ作成の場合と同様に、バインドマウントの設定も行われる。また、前述したコンテナ作成の場合と同様に、コンテナのアクセス設定(ステップS203)、監視設定(ステップS204)、リソース制限設定(ステップS205)が行われる。   As shown in FIG. 8, first, the old container is stopped (step S201). Then, the new container is activated using the new container template (step S202). Similar to the container creation described above, the bind mount is also set. Similarly to the container creation described above, container access settings (step S203), monitoring settings (step S204), and resource limit settings (step S205) are performed.

上記のように、コンテナ(つまり共通領域)を別のテンプレートのイメージに入れ替えてもユーザのデータやカスタマイズされた設定は保持される。そのため、カスタマイズ性とソフトウェアのアップデート作業が容易になる。   As described above, user data and customized settings are retained even if the container (that is, the common area) is replaced with an image of another template. This facilitates customization and software update work.

(ユーザ領域テンプレートの配付処理例)
図9は、ユーザ領域テンプレートの配付処理例を示す図である。テンプレート格納部230には、各バージョンのコンテナテンプレートと各バージョンのユーザ領域テンプレートが格納されている。図9の例では、テンプレート格納部230から、例えば、新バージョンのユーザ領域テンプレートが、コンテナ収容装置100(A)に配付され、コンテナ収容装置100(A)において当該ユーザ領域テンプレートが適用される。また、ユーザ領域テンプレートにより設定された設定ファイルに対し、運用者からユーザ個別の設定ファイルがコピーされ、ユーザ個別の設定が行われることが示されている。
(User area template distribution processing example)
FIG. 9 is a diagram illustrating an example of a user area template distribution process. The template storage unit 230 stores each version of the container template and each version of the user area template. In the example of FIG. 9, for example, a new version of the user area template is distributed from the template storage unit 230 to the container accommodation apparatus 100 (A), and the user area template is applied to the container accommodation apparatus 100 (A). Further, it is shown that the user-specific setting file is copied from the operator to the setting file set by the user area template, and the individual setting is performed.

また、図9の例では、一例として、テンプレート格納部230から、コンテナ収容装置管理部220を経由して、新たなコンテナ収容装置100(B)にユーザ領域テンプレートが配付されることが示されている。   In the example of FIG. 9, as an example, it is shown that the user area template is distributed from the template storage unit 230 to the new container storage device 100 (B) via the container storage device management unit 220. Yes.

(ユーザデータ領域のストレージを使い分ける例)
コンテナ収容装置100における監視制御部130は、ユーザデータの読み書きの頻度(例:単位時間当たりの読み書き回数)、読み書きされるデータ量(例:単位時間当たりのデータ量)等をファイル毎(ディレクトリ毎でもよい)に監視する。なお、「読み書き」とは、「読み」(read)のみでもよいし、「書き」(write)のみでもよいし、「読み」と「書き」の合計であってもよい。また、監視方法は特定の方法に限られない。例えば、コンテナにおいて設定されているファイルシステムのファイル/ディレクトリ(つまり、ユーザから見えるファイル/ディレクトリ)を監視してもよいし、バインドマウントの元の領域(外部領域)のファイル/ディレクトリを監視してもよい。
(Example of using different user data storage)
The monitoring control unit 130 in the container storage device 100 determines the frequency of reading / writing user data (eg, the number of reading / writing per unit time), the amount of data read / written (eg: the amount of data per unit time), etc. But may be) Note that “read / write” may be “read” only, “write” only, or the total of “read” and “write”. The monitoring method is not limited to a specific method. For example, the file / directory of the file system set in the container (that is, the file / directory visible to the user) may be monitored, or the file / directory in the original area (external area) of the bind mount may be monitored. Also good.

監視制御部130は、頻繁に読み書きのあるデータ(例:所定の閾値よりも高い読み書き頻度のファイル/ディレクトリ)をホットデータとし、あまりアクセスのないデータ(例:所定の閾値以下の読み書き頻度のファイル/ディレクトリ)をコールドデータとして、バインドマウントを行う対象ストレージを使い分ける。これにより、より高いI/Oパフォーマンスが要求されるデータに対してはSSDなどの高速なストレージを用い、ほとんど読み書きのないコールドデータには、高容量でコストの安いストレージを用いるといった要求I/Oに応じた使い分けが可能になる。つまり、ストレージリソースの制御を柔軟に行うことができる。   The supervisory control unit 130 uses data that is frequently read and written (for example, files / directories with a read / write frequency higher than a predetermined threshold) as hot data, and data that is not frequently accessed (for example, files with a read / write frequency equal to or lower than the predetermined threshold). / Directory) is used as cold data, and the target storage to be bind-mounted is properly used. As a result, high-speed storage such as SSD is used for data that requires higher I / O performance, and high-capacity and low-cost storage is used for cold data with almost no read / write. It becomes possible to use properly according to. That is, the storage resource can be controlled flexibly.

図10は、ストレージの使い分けを行っている例を示す図である。図10の例では、コンテナにおいて/home/user/mailのディレクトリにあるデータの読み書き頻度が高いため、/home/user/mailに対しては、高速なストレージであるストレージAのユーザデータ領域がバインドマウントされている。一方、/home/archive/filesのディレクトリにあるデータの読み書き頻度は低いため、/home/archive/filesに対しては、低速なストレージであるストレージBのユーザデータ領域がバインドマウントされている。監視制御部130は、バインドマウントの切り替えを動的に行うことが可能である。   FIG. 10 is a diagram illustrating an example in which storage is properly used. In the example of FIG. 10, since the data in the / home / user / mail directory is read and written frequently in the container, the user data area of the storage A, which is a high-speed storage, binds to / home / user / mail. Mounted. On the other hand, since the read / write frequency of data in the / home / archive / files directory is low, the user data area of storage B, which is a low-speed storage, is bind-mounted to / home / archive / files. The monitoring control unit 130 can dynamically switch the bind mount.

(外部のサービスとの連携の例)
本実施の形態におけるコンテナにより、外部のサービスを利用することが可能である。図11はその手順を説明するための図である。
(Example of cooperation with external services)
An external service can be used by the container in this embodiment. FIG. 11 is a diagram for explaining the procedure.

図11に示すように、例えば、ユーザがSaaSなどの外部のクラウドのアプリケーションを契約する(ステップS301)。   As shown in FIG. 11, for example, the user contracts an external cloud application such as SaaS (step S301).

そして、ユーザあるいは運用者が、コンテナのユーザ領域(ユーザデータの領域)に対して、提供されるアプリケーションの領域(外部アプリケーションが提供されるサーバの領域)をバインドマウントする(ステップS302)。これにより、ユーザは外部サービスを意識することなく、あたかも自身のコンテナ内にアプリケーションがインストールされているかのように外部サービスを利用することができる(ステップS303)。   Then, the user or the operator bind-mounts the application area to be provided (server area to which the external application is provided) to the container user area (user data area) (step S302). As a result, the user can use the external service as if the application is installed in its own container without being aware of the external service (step S303).

また、コンテナ管理部110を構成するプロビジョニングスクリプトに、外部サービスからのバインドマウント処理を記述しておくことで、外部のサービスとの連携がなされた状態でコンテナを起動することができる。   In addition, by describing the bind mount processing from the external service in the provisioning script that configures the container management unit 110, the container can be started in a state of being linked with the external service.

(実施の形態の効果)
ユーザ間でプロセスを共用する従来技術においては、収容されている一部のユーザが大量のリソースを占有した場合、他の利用者がサービスを利用できないといった影響を受けたり、アカウントが乗っ取られる等のアブユースがあった場合に、ユーザ全体のレスポンスが低下するといった影響が発生する。また、ソフトウェアに権限昇格などの深刻なバグがあった場合に、セキュリティ面での懸念もある。
(Effect of embodiment)
In the conventional technology that shares processes among users, when some of the accommodated users occupy a large amount of resources, other users may not be able to use the service, and accounts may be hijacked. When there is an abuse, there is an effect that the response of the entire user is lowered. There is also a security concern if the software has serious bugs such as privilege escalation.

これらに対し、本実施の形態の技術によれば、サーバアプリケーション、ライブラリモジュール、共通設定等のテンプレートに基づいてコンテナを作成し、収容ユーザのプロセス空間の分離を行うこととしたので、リソース制御についてコンテナ単位で制御できるようになる。また、プロセス空間はコンテナ毎に独立するため、セキュリティの課題について、個々のプロセスが侵食された場合でも影響範囲をコンテナ内に留めることができる。   On the other hand, according to the technology of the present embodiment, a container is created based on a template such as a server application, a library module, a common setting, etc., and the process space of the accommodating user is separated. It becomes possible to control by container unit. In addition, since the process space is independent for each container, it is possible to keep the scope of influence within the container even when individual processes are eroded for security issues.

また、ユーザ間でプロセスを共用する従来技術においては、全ユーザで共通の設定を用いらなければならない。これは、ユーザの利用ユースケースを限定することになり、カスタマイズ性に欠ける。また、従来技術の中には、クラウドを用いて仮想サーバを立ち上げ、ホスティング事業者が管理することで、共用ホスティングと同様のユーザの利便性を実現するサービスがあるが、ソフトウェアアップデートをサーバ毎に個別に実施する必要があるため、作業量の増加により運用コストがプロセス共有型のホスティングよりも高くなるといった課題がある。   Moreover, in the prior art in which processes are shared among users, settings common to all users must be used. This limits the user use cases and lacks customization. In addition, among the conventional technologies, there is a service that realizes the same user convenience as shared hosting by setting up a virtual server using the cloud and managing it by a hosting company. Therefore, there is a problem that the operation cost becomes higher than the process sharing type hosting due to the increase in the amount of work.

これらの課題に対し、本実施の形態の技術によれば、ユーザが作成するデータやカスタマイズ可能な設定ファイルをコンテナとは別のストレージにデータ領域として確保し、データ領域をバインドマウントすることで、ユーザは共通領域とデータ領域の種別の境界を特に意識することなく透過的にファイルシステムを扱うことができる。これにより、共通領域を別のテンプレートに入れ替えてもユーザのデータやカスタマイズされた設定は保持されるため、カスタマイズ性とソフトウェアのアップデート作業が容易になり運用上の課題を解決することができる。   In response to these problems, according to the technology of the present embodiment, by securing data created by the user and a customizable setting file as a data area in a storage separate from the container, the data area is bind-mounted, The user can handle the file system transparently without being particularly aware of the boundary between the types of the common area and the data area. As a result, even if the common area is replaced with another template, user data and customized settings are retained, so customization and software update work are facilitated and operational problems can be solved.

すなわち、本実施の形態の技術により、ユーザごとにプロセスを分離することでユーザのリソース制御の独立性を担保することができる。これにより、ユーザごとの乗っ取り検知や、制限値を超えて利用するユーザのプロセスを落とす、権限の剥奪などの対処が個別に可能になる。   That is, the independence of the user's resource control can be ensured by separating the process for each user by the technique of the present embodiment. As a result, it is possible to individually deal with hijacking detection for each user, dropping a user process that exceeds the limit value, and depriving of authority.

また、ユーザデータ領域に設定ファイルを配置し、インクルードすることでユーザ個別に設定やオプションのカスタマイズが可能となる。また、ユーザ個別のプロセスがコンテナ毎に起動するが、ユーザが利用していない間は、プロセスがアイドル状態となるため、ボトルネックであるディスクIOやCPUリソースを消費しないため、リソースを効率よく利用することが可能になる。   In addition, by setting and including a setting file in the user data area, settings and options can be customized for each user. In addition, each user's process is started for each container, but since the process is idle while the user is not using it, the disk IO and CPU resources that are the bottleneck are not consumed, so resources are used efficiently. It becomes possible to do.

また、本実施の形態の技術により、複数バージョンのアプリケーションを提供し、ユーザが利用したいバージョンを選択できる。実行ファイルは共通領域(例:コンテナテンプレート(イメージ)の実体が格納される領域)にインストールされるが、設定ファイルはユーザ領域(例:バインドマウントするユーザデータ領域)に配置することで、設定をオーバーライドすることができる。つまり、ユーザデータ領域の設定を反映させることができる。   In addition, with the technology of the present embodiment, a plurality of versions of an application can be provided, and the version that the user wants to use can be selected. Executable files are installed in the common area (example: area where the entity of the container template (image) is stored), but the configuration file is placed in the user area (example: user data area to be bind-mounted). Can be overridden. That is, the setting of the user data area can be reflected.

また、ユーザデータ領域と共通領域を分け、共通領域のみを入れ替えることで、ソフトウェアのアップデートを容易に行うことができる。すなわち、ユーザデータ領域はファイルシステムに対して透過的に永続化され、共通領域の入替え前後で変化しない。また、共通領域はリリースごとにテンプレート化することでファイル差分やバージョン管理が可能である。   Also, the software update can be easily performed by dividing the user data area and the common area and replacing only the common area. That is, the user data area is perpetuated transparently to the file system and does not change before and after the replacement of the common area. Also, file differences and version management can be performed by creating a common area as a template for each release.

(実施の形態のまとめ)
以上、説明したように、本実施の形態によれば、特定のユーザのプロセスを他のユーザのプロセスと隔離して動作させる仮想的な環境であるコンテナを収容するコンテナ収容装置であって、前記特定のユーザのコンテナの作成指示を受信した場合に、各ユーザのコンテナ作成において共通に使用されるモデルデータを用いて、前記特定のユーザのコンテナを作成するコンテナ管理手段を備え、前記コンテナ管理手段は、前記コンテナの外部にある外部領域を、前記コンテナにおいて前記特定のユーザにより認識されるデータ領域に接続し、データが前記外部領域に格納されるようにすることを特徴とするコンテナ収容装置が提供される。
(Summary of embodiment)
As described above, according to the present embodiment, a container accommodation apparatus that accommodates a container that is a virtual environment that operates a specific user's process in isolation from other users' processes, Container management means for creating a container for the specific user by using model data commonly used in container creation for each user when receiving a container creation instruction for the specific user; The container storage device is characterized in that an external area outside the container is connected to a data area recognized by the specific user in the container so that data is stored in the external area. Provided.

前記コンテナ管理手段は、前記特定のユーザのコンテナを別のコンテナに更新することを指示する命令を受信した場合に、前記特定のユーザのコンテナを停止し、前記別のコンテナに対応するモデルデータを用いて、当該別のコンテナを作成することとしてもよい。   When the container management unit receives an instruction to update the container of the specific user to another container, the container management unit stops the container of the specific user, and stores model data corresponding to the other container. It is good also as making the said another container using.

また、前記コンテナ収容装置は、前記データ領域に対してデータが読み書きされる頻度又はデータ量を監視し、当該頻度又はデータ量に基づいて、当該データ領域に接続させる外部領域を決定する監視制御手段を備えることとしてもよい。   The container storage device monitors the frequency or amount of data read / written from / to the data area, and based on the frequency or amount of data, monitors and controls for determining an external area to be connected to the data area It is good also as providing.

前記監視制御手段は、前記頻度又はデータ量が所定の閾値よりも大きい場合に、前記データ領域に接続させる外部領域を高速なストレージにおける領域として決定し、前記頻度又はデータ量が所定の閾値以下である場合に、前記データ領域に接続させる外部領域を、前記高速なストレージよりも低速なストレージにおける領域として決定することとしてもよい。   The monitoring control means determines an external area to be connected to the data area as an area in a high-speed storage when the frequency or data amount is greater than a predetermined threshold, and the frequency or data amount is equal to or less than the predetermined threshold. In some cases, the external area to be connected to the data area may be determined as an area in a low-speed storage rather than the high-speed storage.

また、前記外部領域として、所定のアプリケーションサービスを提供するサーバ内の領域を使用してもよい。   Further, as the external area, an area in a server that provides a predetermined application service may be used.

また、コンテナ収容装置が、複数コンテナ間で平等にリソースを使用できるようにするとともに、全体のリソースに余裕がある場合でも、1コンテナが使用するリソースを所定の上限値に制限するリソース制御手段備えてもよい。   In addition, the container accommodating device can use resources evenly among a plurality of containers, and includes resource control means for limiting resources used by one container to a predetermined upper limit value even when there is a surplus in overall resources. May be.

本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。   The present invention is not limited to the above-described embodiments, and various modifications and applications are possible within the scope of the claims.

100 コンテナ収容装置
110 コンテナ管理部
120 テンプレート格納部
130 監視制御部
200 管理装置
210 オーダー管理部
220 コンテナ収容装置管理部
230 テンプレート格納部
DESCRIPTION OF SYMBOLS 100 Container accommodation apparatus 110 Container management part 120 Template storage part 130 Monitoring control part 200 Management apparatus 210 Order management part 220 Container accommodation apparatus management part 230 Template storage part

Claims (8)

特定のユーザのプロセスを他のユーザのプロセスと隔離して動作させる仮想的な環境であるコンテナを収容するコンテナ収容装置であって、
前記特定のユーザのコンテナの作成指示を受信した場合に、各ユーザのコンテナ作成において共通に使用されるモデルデータを用いて、前記特定のユーザのコンテナを作成するコンテナ管理手段を備え、
前記コンテナ管理手段は、前記コンテナの外部にある外部領域を、前記コンテナにおいて前記特定のユーザにより認識されるデータ領域に接続し、データが前記外部領域に格納されるようにする
ことを特徴とするコンテナ収容装置。
A container accommodating device that accommodates a container that is a virtual environment for operating a specific user process in isolation from other user processes,
A container management means for creating a container for the specific user by using model data commonly used in creating a container for each user when receiving the container creation instruction for the specific user;
The container management means connects an external area outside the container to a data area recognized by the specific user in the container so that data is stored in the external area. Container storage device.
前記コンテナ管理手段は、前記特定のユーザのコンテナを別のコンテナに更新することを指示する命令を受信した場合に、前記特定のユーザのコンテナを停止し、前記別のコンテナに対応するモデルデータを用いて、当該別のコンテナを作成する
ことを特徴とする請求項1に記載のコンテナ収容装置。
When the container management unit receives an instruction to update the container of the specific user to another container, the container management unit stops the container of the specific user, and stores model data corresponding to the other container. The container container according to claim 1, wherein the container is created using the container.
前記データ領域に対してデータが読み書きされる頻度又はデータ量を監視し、当該頻度又はデータ量に基づいて、当該データ領域に接続させる外部領域を決定する監視制御手段
を更に備えることを特徴とする請求項1又は2に記載のコンテナ収容装置。
It further comprises monitoring control means for monitoring the frequency or amount of data that is read from or written to the data region, and determining an external region to be connected to the data region based on the frequency or data amount. The container accommodating device according to claim 1 or 2.
前記監視制御手段は、前記頻度又はデータ量が所定の閾値よりも大きい場合に、前記データ領域に接続させる外部領域を高速なストレージにおける領域として決定し、前記頻度又はデータ量が所定の閾値以下である場合に、前記データ領域に接続させる外部領域を、前記高速なストレージよりも低速なストレージにおける領域として決定する
ことを特徴とする請求項3に記載のコンテナ収容装置。
The monitoring control means determines an external area to be connected to the data area as an area in a high-speed storage when the frequency or data amount is greater than a predetermined threshold, and the frequency or data amount is equal to or less than the predetermined threshold. 4. The container storage device according to claim 3, wherein in some cases, an external area to be connected to the data area is determined as an area in a low-speed storage than the high-speed storage.
前記外部領域は、所定のアプリケーションサービスを提供するサーバ内の領域である
ことを特徴とする請求項1ないし4のうちいずれか1項に記載のコンテナ収容装置。
The container storage device according to any one of claims 1 to 4, wherein the external area is an area in a server that provides a predetermined application service.
複数コンテナ間で平等にリソースを使用できるようにするとともに、全体のリソースに余裕がある場合でも、1コンテナが使用するリソースを所定の上限値に制限するリソース制御手段
を更に備えることを特徴とする請求項1ないし5のうちいずれか1項に記載のコンテナ収容装置。
The resource control means is further provided for enabling the resources to be used equally among a plurality of containers and for limiting the resources used by one container to a predetermined upper limit value even when the entire resources are sufficient. The container accommodating device according to any one of claims 1 to 5.
特定のユーザのプロセスを他のユーザのプロセスと隔離して動作させる仮想的な環境であるコンテナを収容するコンテナ収容装置が実行するコンテナ作成方法であって、
前記特定のユーザのコンテナの作成指示を受信した場合に、各ユーザのコンテナ作成において共通に使用されるモデルデータを用いて、前記特定のユーザのコンテナを作成するコンテナ作成ステップを備え、
前記コンテナ作成ステップにおいて、前記コンテナ収容装置は、前記コンテナの外部にある外部領域を、前記コンテナにおいて前記特定のユーザにより認識されるデータ領域に接続し、データが前記外部領域に格納されるようにする
ことを特徴とするコンテナ作成方法。
A container creation method executed by a container accommodation device that accommodates a container that is a virtual environment for operating a specific user process isolated from other user processes,
A container creation step of creating a container for the specific user by using model data commonly used in creating a container for each user when the container creation instruction for the specific user is received;
In the container creation step, the container receiving device connects an external area outside the container to a data area recognized by the specific user in the container, so that data is stored in the external area. A container creation method characterized by
コンピュータを、請求項1ないし6のうちいずれか1項に記載のコンテナ収容装置における各手段として機能させるためのプログラム。   The program for functioning a computer as each means in the container accommodating apparatus of any one of Claims 1 thru | or 6.
JP2015247897A 2015-12-18 2015-12-18 Container accommodation device, container creation method, and program Active JP6749094B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015247897A JP6749094B2 (en) 2015-12-18 2015-12-18 Container accommodation device, container creation method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015247897A JP6749094B2 (en) 2015-12-18 2015-12-18 Container accommodation device, container creation method, and program

Publications (2)

Publication Number Publication Date
JP2017111761A true JP2017111761A (en) 2017-06-22
JP6749094B2 JP6749094B2 (en) 2020-09-02

Family

ID=59081378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015247897A Active JP6749094B2 (en) 2015-12-18 2015-12-18 Container accommodation device, container creation method, and program

Country Status (1)

Country Link
JP (1) JP6749094B2 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019066985A (en) * 2017-09-29 2019-04-25 株式会社日立製作所 Container management apparatus, container management method, and container management program
JP2019133424A (en) * 2018-01-31 2019-08-08 沖電気工業株式会社 Communication system, communication method, management device, management program, management method, information processing device, information processing program, and information processing method
WO2019181860A1 (en) * 2018-03-23 2019-09-26 日本電気株式会社 Application execution device, application execution method, and recording medium
CN110430276A (en) * 2019-08-12 2019-11-08 中国南方电网有限责任公司 Communication control method, device, communication control unit and storage medium based on docker
JP2020095547A (en) * 2018-12-13 2020-06-18 株式会社日立製作所 Container providing support system and container providing support method
CN111492347A (en) * 2018-01-30 2020-08-04 华睿泰科技有限责任公司 System and method for updating containers
JP2020527798A (en) * 2017-07-19 2020-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Runtime generation that recognizes compliance based on application patterns and risk assessments
CN112068975A (en) * 2020-08-31 2020-12-11 北京五八信息技术有限公司 Information processing method and device
JP2021535467A (en) * 2018-08-30 2021-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation A secure shell container that facilitates inspection of virtual containers
CN114510152A (en) * 2022-04-18 2022-05-17 梯度云科技(北京)有限公司 Method and device for constructing meta-universe system based on container
KR102484914B1 (en) * 2021-11-23 2023-01-06 (주)글루시스 Method for storing data in virtual environment
JP7274057B1 (en) 2022-04-13 2023-05-15 三菱電機株式会社 Deduplication system, server device, deduplication method, and deduplication program
JP7434342B2 (en) 2018-10-22 2024-02-20 コーニンクレッカ フィリップス エヌ ヴェ Container builder for personalized network services

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252486A (en) * 1998-02-27 1999-09-17 Mitsubishi Electric Corp Video server system
JP2004171224A (en) * 2002-11-19 2004-06-17 Nec Corp Contract storage proxy serving system and method
JP2011113267A (en) * 2009-11-26 2011-06-09 Nomura Research Institute Ltd Data center configuration management system
JP2013543171A (en) * 2010-09-21 2013-11-28 アマゾン テクノロジーズ インコーポレーテッド Method and system for dynamically managing demands on computing power
WO2015049789A1 (en) * 2013-10-04 2015-04-09 株式会社日立製作所 Resource management system and resource management method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252486A (en) * 1998-02-27 1999-09-17 Mitsubishi Electric Corp Video server system
JP2004171224A (en) * 2002-11-19 2004-06-17 Nec Corp Contract storage proxy serving system and method
JP2011113267A (en) * 2009-11-26 2011-06-09 Nomura Research Institute Ltd Data center configuration management system
JP2013543171A (en) * 2010-09-21 2013-11-28 アマゾン テクノロジーズ インコーポレーテッド Method and system for dynamically managing demands on computing power
WO2015049789A1 (en) * 2013-10-04 2015-04-09 株式会社日立製作所 Resource management system and resource management method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
阿佐 志保, プログラマのためのDOCKER教科書 初版, vol. 第1版, JPN6019025469, 19 November 2015 (2015-11-19), pages 42 - 43, ISSN: 0004189377 *

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020527798A (en) * 2017-07-19 2020-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Runtime generation that recognizes compliance based on application patterns and risk assessments
US10514947B2 (en) 2017-09-29 2019-12-24 Hitachi, Ltd. Container management apparatus, container management method, and nonvolatile recording medium
JP2019066985A (en) * 2017-09-29 2019-04-25 株式会社日立製作所 Container management apparatus, container management method, and container management program
JP2021509200A (en) * 2018-01-30 2021-03-18 ベリタス テクノロジーズ エルエルシー Systems and methods for updating containers
CN111492347B (en) * 2018-01-30 2023-11-24 华睿泰科技有限责任公司 System and method for updating a container
CN111492347A (en) * 2018-01-30 2020-08-04 华睿泰科技有限责任公司 System and method for updating containers
JP2019133424A (en) * 2018-01-31 2019-08-08 沖電気工業株式会社 Communication system, communication method, management device, management program, management method, information processing device, information processing program, and information processing method
JP7151087B2 (en) 2018-01-31 2022-10-12 沖電気工業株式会社 Communication system, communication method, management device, management program, management method, information processing device, information processing program, and information processing method
WO2019181860A1 (en) * 2018-03-23 2019-09-26 日本電気株式会社 Application execution device, application execution method, and recording medium
US11226808B2 (en) 2018-03-23 2022-01-18 Nec Corporation Application execution device, application execution method, and recording medium
JPWO2019181860A1 (en) * 2018-03-23 2021-02-04 日本電気株式会社 Application execution device, application execution method, and program
JP7228324B2 (en) 2018-08-30 2023-02-24 インターナショナル・ビジネス・マシーンズ・コーポレーション A secure shell container that facilitates inspection of virtual containers
US11659003B2 (en) 2018-08-30 2023-05-23 International Business Machines Corporation Safe shell container facilitating inspection of a virtual container
JP2021535467A (en) * 2018-08-30 2021-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation A secure shell container that facilitates inspection of virtual containers
US11914753B2 (en) 2018-10-22 2024-02-27 Koninklijke Philips N.V. Container builder for individualized network services
JP7434342B2 (en) 2018-10-22 2024-02-20 コーニンクレッカ フィリップス エヌ ヴェ Container builder for personalized network services
JP2020095547A (en) * 2018-12-13 2020-06-18 株式会社日立製作所 Container providing support system and container providing support method
CN110430276A (en) * 2019-08-12 2019-11-08 中国南方电网有限责任公司 Communication control method, device, communication control unit and storage medium based on docker
CN110430276B (en) * 2019-08-12 2020-06-23 中国南方电网有限责任公司 Communication control method and device based on docker, communication control equipment and storage medium
CN112068975B (en) * 2020-08-31 2023-07-21 北京五八信息技术有限公司 Information processing method and device
CN112068975A (en) * 2020-08-31 2020-12-11 北京五八信息技术有限公司 Information processing method and device
KR102484914B1 (en) * 2021-11-23 2023-01-06 (주)글루시스 Method for storing data in virtual environment
JP7274057B1 (en) 2022-04-13 2023-05-15 三菱電機株式会社 Deduplication system, server device, deduplication method, and deduplication program
CN114510152B (en) * 2022-04-18 2022-07-26 梯度云科技(北京)有限公司 Method and device for constructing meta-universe system based on container
CN114510152A (en) * 2022-04-18 2022-05-17 梯度云科技(北京)有限公司 Method and device for constructing meta-universe system based on container

Also Published As

Publication number Publication date
JP6749094B2 (en) 2020-09-02

Similar Documents

Publication Publication Date Title
JP6749094B2 (en) Container accommodation device, container creation method, and program
US9760395B2 (en) Monitoring hypervisor and provisioned instances of hosted virtual machines using monitoring templates
US10761826B2 (en) Dynamic reconstruction of application state upon application re-launch
EP3857364B1 (en) Multi-tenant support on virtual machines in cloud computing networks
US10659523B1 (en) Isolating compute clusters created for a customer
JP5393515B2 (en) Server image migration
US20160132214A1 (en) Application delivery agents on virtual desktop instances
US11520919B2 (en) Sharing of data among containers running on virtualized operating systems
US8463882B2 (en) Server cloning in a computing-on-demand system
US11068136B1 (en) Application fulfillment platform with automated license management mechanisms
US11363117B2 (en) Software-specific auto scaling
US20170109190A1 (en) Providing a custom virtual computing system
KR20160025606A (en) Data processing
US20140067864A1 (en) File access for applications deployed in a cloud environment
US10203976B2 (en) Virtual appliance management in a virtualized computing environment based on operational modes associated with virtual appliance
US20140280914A1 (en) System and method for creating, deploying, and administering distinct virtual computer networks
US11287982B2 (en) Associating data management policies to portions of data using connection information
US10929166B2 (en) Enhanced data storage of virtual nodes in a data processing environment
Sehgal Introduction to openstack
JP5100883B2 (en) Computer and computer control method
KR102035094B1 (en) Method for automatically provisioning virtual desktop under virtual desktop infra, and virtualization system using the same
US20110060815A1 (en) Automatic attachment of server hosts to storage hostgroups in distributed environment
Zacker Exam Ref 70-410 Installing and Configuring Windows Server 2012 R2 (MCSA)
Barrett et al. Constructing the z/VM Environment
Missbach et al. How Private and Public Clouds Work

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180725

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190909

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200414

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200423

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: 20200804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200811

R150 Certificate of patent or registration of utility model

Ref document number: 6749094

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250