JP6749094B2 - Container accommodation device, container creation method, and program - Google Patents

Container accommodation device, container creation method, and program Download PDF

Info

Publication number
JP6749094B2
JP6749094B2 JP2015247897A JP2015247897A JP6749094B2 JP 6749094 B2 JP6749094 B2 JP 6749094B2 JP 2015247897 A JP2015247897 A JP 2015247897A JP 2015247897 A JP2015247897 A JP 2015247897A JP 6749094 B2 JP6749094 B2 JP 6749094B2
Authority
JP
Japan
Prior art keywords
container
area
user
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.)
Active
Application number
JP2015247897A
Other languages
Japanese (ja)
Other versions
JP2017111761A (en
Inventor
浩之 牧野
浩之 牧野
渉 堀口
渉 堀口
翔 長沼
翔 長沼
新 阿部
新 阿部
遠藤 久
久 遠藤
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

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

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/disks such as VPS (Virtual Private Server) and cloud are spreading. However, in the virtual server type hosting service, a user has 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 in cost and does not require server management is widely used mainly by SME users.

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

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

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

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

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

本発明の実施の形態によれば、特定のユーザのプロセスを他のユーザのプロセスと隔離して動作させる仮想的な環境であるコンテナを収容するコンテナ収容装置であって、
前記特定のユーザのコンテナの作成指示を受信した場合に、各ユーザのコンテナ作成において共通に使用される、共通領域の設定のためのコンテナテンプレート及びユーザ領域の設定のためのユーザ領域テンプレートと、前記ユーザ領域テンプレートに基づく設定に対して前記特定のユーザ個別の設定をするための前記特定のユーザ個別の設定ファイルとを用いて、前記特定のユーザのコンテナを作成するコンテナ管理手段を備え、
前記コンテナ管理手段は、前記コンテナの外部にある外部領域を、前記コンテナにおいて前記特定のユーザにより認識されるデータ領域に接続し、データが前記外部領域に格納されるようにする
ことを特徴とするコンテナ収容装置が提供される。
According to an embodiment of the present invention, a container accommodating device for accommodating a container which is a virtual environment for operating a process of a specific user isolated from processes of other users,
Wherein when receiving the instruction to create a particular user of the container, and the user area templates for setting the container templates and user area for the common use, the common area set in the container create each user, the A container management unit for creating a container for the specific user by using the specific user individual setting file for setting the specific user individual for the setting based on the user area template ,
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 creating method executed by a container housing apparatus that houses a container which is a virtual environment in which a process of a specific user is operated in isolation from processes of other users. hand,
Wherein when receiving the instruction to create a particular user of the container, and the user area templates for setting the container templates and user area for the common use, the common area set in the container create each user, the A container creating step of creating a container of the specific user by using the specific user individual setting file for setting the specific user individual with respect to the setting based on the user area template ,
In the container creating step, the container accommodation 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 method of creating a container is provided.

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

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

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

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

また、ユーザが作成するデータやカスタマイズ可能な設定ファイルはコンテナとは別のストレージにデータ領域として確保し、コンテナとして作成された仮想ストレージのレイヤ化を行い、データ領域をバインドマウントすることで、ユーザは共通領域(コンテナ)とデータ領域の種別の境界を特に意識することなく透過的にファイルシステムを扱うことができる。 In addition, the data created by the user and the customizable setting file 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 bound and mounted to Can transparently handle the file system without paying particular attention to the boundary between the common area (container) and the data area type.

<コンテナについて>
ここで、コンテナの概要を簡単に説明しておく。なお、コンテナ自体は既存技術である。一般にOSの内部は、アプリケーション(OS上で動作するソフトウェア)が使用するユーザ空間と、カーネルが使用するカーネル空間とに分かれる。アプリケーションが実行されると、ユーザ空間においてプロセス(プログラムの実行単位)が生成される。コンテナの技術では、プロセスをグループ化し、他のグループやグループに属していないプロセスから隔離した空間で動作させる。この空間(仮想的な環境)をコンテナと呼ぶ。
<About the container>
Here, a brief description of the container is given. The container itself is an existing technology. Generally, the inside of 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 operated in a space isolated from other groups and processes that do not belong to any group. This space (virtual environment) is called a container.

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

なお、コンテナの作成等を行うためのソフトウェア("コンテナ管理ソフト"と呼ぶ)としては種々のものがあるが、本実施の形態では、一例として、Docker(登録商標)を使用することを想定している。ただし、本発明を適用できるコンテナ管理ソフトは、特定のコンテナ管理ソフトに限定されるわけではなく、様々なコンテナ管理ソフトを適用して本発明を実施することができる。 There are various types of software for creating a container (referred to as "container management software"), but this embodiment assumes 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 a specific container management software, and various container management software can be applied to implement the present invention.

(システム全体構成)
図1に、本発明の実施の形態に係るシステムの全体構成例を示す図である。図1に示すように、本実施の形態に係るシステムは、コンテナ収容装置100と管理装置200を有する。
(Overall 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 has a container housing device 100 and a management device 200.

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

<コンテナ収容装置>
コンテナ収容装置100は、各ユーザに対して共用ホスティングサービスを提供する装置である。本実施の形態では、コンテナ収容装置100内にユーザ毎のコンテナが作成される。
<Container storage device>
The container housing 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 housing device 100.

図1に示すように、コンテナ収容装置100は、コンテナ管理部110、テンプレート格納部120、監視制御部130を含む。コンテナ管理部110は、管理装置200からの指示に基づいて、コンテナを作成、更新するための機能部であり、本実施の形態では、コンテナ管理ソフト、プロビジョニングスクリプト(プログラム)等により実現される機能部である。 As shown in FIG. 1, the container housing device 100 includes a container management unit 110, a template storage unit 120, and a monitor 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 device 200, and in the present embodiment, a function realized by container management software, a provisioning script (program), or the like. It is a department.

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

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

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

また、監視制御部130は、ユーザのコンテナ利用に関するリソース制御の機能も有している。この機能は「fair share」の考えに基づくものであり、具体的には、監視制御部130に、各ユーザ(1コンテナ)が利用できるリソース(例:CPUリソース、メモリリソース)の相対値と最大値が設定され、監視制御部130は、これらの値に基づいてリソース制御を行う。 The monitor control unit 130 also has a resource control function regarding the use of the container by the user. This function is based on the idea of "fair share". Specifically, the monitoring controller 130 has a relative value of resources (eg, CPU resources, memory resources) available to each user (one container) and a maximum value. 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 the resource of each user to a relative value when the overall load of the container accommodating apparatus 100 is high. Allow the use of. However, the maximum value cannot be exceeded. By such resource control, the entire resources of the container housing device 100 can be effectively used, and the resources can be equally used 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 the container accommodating apparatus 100 has sufficient resources. By setting such an upper limit value, even if one container runs out of control, it is possible not to occupy the entire resource of the container housing device 100.

すなわち、監視制御部130は、複数コンテナ間で平等にリソースを使用できるようにするとともに、全体のリソースに余裕がある場合でも、1コンテナが使用するリソースを所定の上限値に制限するリソース制御の機能を有する。 That is, the monitoring control unit 130 enables resources to be used evenly among a plurality of containers and, even when there is a margin in the total resources, the resource control for limiting the resources used by one container to a predetermined upper limit value. Have a function.

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

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

本実施の形態に係る管理装置200は、例えば、1つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、管理装置200が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、管理装置200で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配付したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。 The management device 200 according to the present embodiment can be realized, for example, by causing one or more computers to execute a program describing the processing content described in the present embodiment. That is, the functions of the management device 200 are realized by executing a program corresponding to the processing executed by the management device 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 in a computer-readable recording medium (portable memory or the like), and can be stored or distributed. It is also possible to provide the above 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 container container 100)
FIG. 2 is a diagram showing a configuration example of the container housing device 100 in which a container has been created for each user. In the example shown in FIG. 2, each container (container 1, container 2, container 3) is generated based on the container template 10. A common area and a user area are shown in each container. The setting file 11, the library 12, and the daemon 13 are shown in the common area. A setting file 21 and user data 22 are shown in the user area.

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

「ユーザ領域」は、ユーザが書き換え可能な領域である。ユーザ領域におけるファイルやデータの初期値はユーザ領域テンプレート20に基づいて設定されるものである。初期値設定後に、ユーザ個別の設定ファイル21等が格納(コピー)されることで、ユーザ個別の設定が行われる。また、ユーザにとっては、コンテナにより提供されるファイルシステムの所定のユーザデータ領域がユーザデータ22の格納領域として見えるが、外部領域のバンドマウントによって、当該外部領域がコンテナのユーザデータ領域に接続され、実際のユーザデータの読み書きは当該外部領域に対して行われる。つまり、ユーザデータ領域の実体は外部領域にある。なお、設定ファイル21は、バインドマウントにより外部領域に格納してもよいし、バインドマウントを行わずにコンテナの領域に格納してもよい。 The “user area” is an area in which the user can rewrite. 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) so that the user-specific setting is performed. To 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 band-mounted to connect the external area to the user data area of the container. Actual reading/writing of user data is performed in 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 mounting, or may be stored in the container area without performing bind mounting.

図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 housing device 100. As shown in FIG. 3, there are hardware 36 and OS 30. Any OS can be used as the OS 30 as long as it can provide a container function, and for example, Linux (registered trademark) can be used. The functions of the OS 30 include a driver 31 and a container function 37.

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

管理インタフェース(management interface)34は、コンテナ管理ソフト(Docker等)に相当する。 The 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 contents of the container image 33 become the contents of the common area in the container, the portion of the container image 33 is described as the 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 the parent file system (container image 33 in the example of FIG. 3) is made read-only, a writable layer is overlaid on it, and one It is a function that makes it possible to handle it like a file system. However, using AUFS is only an example.

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

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

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

これにより、コンテナ管理部110を構成するプロビジョニングスクリプトが実行され、コンテナテンプレート及びユーザ領域テンプレートを用いることで、コンテナが作成(起動)される。 As a result, the provisioning script configuring the container management unit 110 is executed, and the container is created (started) 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. The container management DB 211 stores, for example, an account information table, a host information table, and an IP resource information table. 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, and option contract.

ホスト情報テーブルは、ホスト名(コンテナ収容装置名)、ホスト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, and an upper limit of accommodable resources. The IP resource information table stores information such as a host IP address, a user assignment IP address, an account ID and the like.

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

図5に、コンテナテンプレートとユーザ領域テンプレートの例を示す。なお、図5は、コンテナテンプレートとユーザ領域テンプレートのそれぞれに含まれるデータの一部を示すものである。図5(a)に示すコンテナテンプレートは、ライブラリ、アプリケーション、インストーラスクリプト等を含む。ライブラリは、OSのモジュール、各種プログラムのモジュール等である。アプリケーションは、認証サーバ、Webサーバ、Mailサーバ、メーリングリストサーバ、DBサーバ、監視サーバ等である。インストーラスクリプトは、提供アプリケーションのインストールパッケージである。 FIG. 5 shows an example of the container template and the user area template. Note that FIG. 5 shows a part of the 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, and the like. The applications are an authentication server, a web server, a mail server, a mailing list server, a DB server, a monitoring server, etc. 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. Regarding the setting file, initial setting information is stored for each user when the container is created. The data directory is a directory that stores various data. In addition, the data file stores initial data.

図6は、コンテナ作成の命令を受けたコンテナ管理部110の処理手順例を示すフローチャートである。この処理手順は、プロビジョニングスクリプトの内容に相当する。図6を参照してコンテナ管理部110の動作を説明する。 FIG. 6 is a flowchart showing an example of a processing procedure of the container management unit 110 that receives a container creation instruction. This processing procedure corresponds to the content 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, etc. as input parameters of the container creation command.

コンテナ管理部110は、アカウントIDにより、アカウントを作成し(ステップS101)、コンテナを作成する(ステップS102)。ここでは、コンテナテンプレートIDで指定されたコンテナテンプレートに対応するコンテナが作成される。また、ステップS102において、コンテナにおける予め定めた領域に対して、予め定めたユーザデータ領域(例えばアカウントIDにより識別される領域)をバインドマウントする処理も実行される。 The container management unit 110 creates an account with 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. Further, 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, initial data is stored in a user rewritable area. Then, the initial setting of the container is performed (step S104). Here, for example, LDAP entry creation, setting file creation, etc. are performed. Then, the container access setting (step S105), the monitoring setting (step S106), and the resource restriction setting (step S107) are performed.

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

(コンテナのアップデートについて)
本実施の形態では、コンテナ管理部110は、コンテナの更新機能(アップデート機能)を有している。図7を参照してアップデート処理を説明する。なお、アップデートとは、例えば、コンテナを、旧バージョンのものから新バージョンのものに入れ替えることである。また、コンテナのアップデートは、コンテナ収容装置100に収容される複数ユーザの複数コンテナに対して一括で行ってもよいし、個々のユーザ毎に行うこととしてもよい。
(About 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. Note that updating means, for example, replacing the container of the old version with that of the new version. Moreover, the container update may be performed collectively for a plurality of containers of a plurality of users accommodated in the container accommodation device 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 the operator inputs an update command to the container storage device management unit 220. The update command includes information for identifying the container to be updated (account ID or container ID may be used) and information for identifying the 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 advance in the container housing device 100, or may be acquired from the template storage unit 230 at the time of updating.

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

図7(b)に示すように、アップデート命令を受信したコンテナ管理部110は、現在のコンテナを削除(停止)し、コンテナテンプレートの更新を行う。コンテナテンプレートの更新とは、新コンテナテンプレートをダウンロードすることであってもよいし、コンテナ収容装置100に予め格納されている新コンテナテンプレートを読み出すことであってもよい。そして、図7(c)に示すように、新コンテナテンプレートによる新たなコンテナを作成する。 As shown 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 out a new container template stored in advance in the container housing device 100. Then, as shown in FIG. 7C, a new container is created by the new container template.

図8は、アップデート命令を受信したコンテナ管理部110の動作を示すフローチャートである。 FIG. 8 is a flowchart showing the operation of the container management unit 110 that receives 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). The bind mount is set as in the case of creating the container described above. Further, similarly to the case of creating the container described above, the access setting of the container (step S203), the monitoring setting (step S204), and the resource restriction setting (step S205) are performed.

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

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

また、図9の例では、一例として、テンプレート格納部230から、コンテナ収容装置管理部220を経由して、新たなコンテナ収容装置100(B)にユーザ領域テンプレートが配付されることが示されている。 Further, 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. There is.

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

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

図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 the storage is selectively used. In the example of FIG. 10, since the frequency of reading and writing data in the directory /home/user/mail in the container is high, the user data area of storage A, which is a high-speed storage, binds to /home/user/mail. It is mounted. On the other hand, since the frequency of reading and writing data in the directory /home/archive/files is low, the user data area of the storage B, which is a slow 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, a user makes a contract for an external cloud application such as SaaS (step S301).

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

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

(実施の形態の効果)
ユーザ間でプロセスを共用する従来技術においては、収容されている一部のユーザが大量のリソースを占有した場合、他の利用者がサービスを利用できないといった影響を受けたり、アカウントが乗っ取られる等のアブユースがあった場合に、ユーザ全体のレスポンスが低下するといった影響が発生する。また、ソフトウェアに権限昇格などの深刻なバグがあった場合に、セキュリティ面での懸念もある。
(Effects of the embodiment)
In the conventional technology in which a process is shared between users, when a part of the accommodated users occupies a large amount of resources, the influence that other users cannot use the service, the account is taken over, etc. If there is an abuse, the overall response of the user will be adversely affected. There are also security concerns if the software has serious bugs such as privilege escalation.

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

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

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

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

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

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

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

(実施の形態のまとめ)
以上、説明したように、本実施の形態によれば、特定のユーザのプロセスを他のユーザのプロセスと隔離して動作させる仮想的な環境であるコンテナを収容するコンテナ収容装置であって、前記特定のユーザのコンテナの作成指示を受信した場合に、各ユーザのコンテナ作成において共通に使用されるモデルデータを用いて、前記特定のユーザのコンテナを作成するコンテナ管理手段を備え、前記コンテナ管理手段は、前記コンテナの外部にある外部領域を、前記コンテナにおいて前記特定のユーザにより認識されるデータ領域に接続し、データが前記外部領域に格納されるようにすることを特徴とするコンテナ収容装置が提供される。
(Summary of Embodiments)
As described above, according to the present embodiment, a container accommodating device that accommodates a container that is a virtual environment in which a process of a specific user is isolated from processes of other users and operates, When a container creation instruction for a specific user is received, the container management means is provided for creating a container for the specific user by using model data commonly used in creating the container for each user. Is connected to 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. 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 may be used to create the other container.

また、前記コンテナ収容装置は、前記データ領域に対してデータが読み書きされる頻度又はデータ量を監視し、当該頻度又はデータ量に基づいて、当該データ領域に接続させる外部領域を決定する監視制御手段を備えることとしてもよい。 Further, the container accommodating device monitors a frequency or a data amount of data read from or written to the data area, and based on the frequency or the data amount, a monitoring control unit that determines an external area to be connected to the data area. May be provided.

前記監視制御手段は、前記頻度又はデータ量が所定の閾値よりも大きい場合に、前記データ領域に接続させる外部領域を高速なストレージにおける領域として決定し、前記頻度又はデータ量が所定の閾値以下である場合に、前記データ領域に接続させる外部領域を、前記高速なストレージよりも低速なストレージにおける領域として決定することとしてもよい。 When the frequency or the amount of data is larger than a predetermined threshold, the monitoring control unit determines an external area to be connected to the data area as an area in a high-speed storage, and the frequency or the amount of data is equal to or less than a predetermined threshold. In some cases, the external area connected to the data area may be determined as an area in a storage slower 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 is provided with resource control means for enabling equal use of resources among a plurality of containers and for limiting resources used by one container to a predetermined upper limit value even if there is a margin in the total resources. May be.

(第1項)
特定のユーザのプロセスを他のユーザのプロセスと隔離して動作させる仮想的な環境であるコンテナを収容するコンテナ収容装置であって、
前記特定のユーザのコンテナの作成指示を受信した場合に、各ユーザのコンテナ作成において共通に使用されるモデルデータを用いて、前記特定のユーザのコンテナを作成するコンテナ管理手段を備え、
前記コンテナ管理手段は、前記コンテナの外部にある外部領域を、前記コンテナにおいて前記特定のユーザにより認識されるデータ領域に接続し、データが前記外部領域に格納されるようにする
ことを特徴とするコンテナ収容装置。
(第2項)
前記コンテナ管理手段は、前記特定のユーザのコンテナを別のコンテナに更新することを指示する命令を受信した場合に、前記特定のユーザのコンテナを停止し、前記別のコンテナに対応するモデルデータを用いて、当該別のコンテナを作成する
ことを特徴とする第1項に記載のコンテナ収容装置。
(第3項)
前記データ領域に対してデータが読み書きされる頻度又はデータ量を監視し、当該頻度又はデータ量に基づいて、当該データ領域に接続させる外部領域を決定する監視制御手段
を更に備えることを特徴とする第1項又は第2項に記載のコンテナ収容装置。
(第4項)
前記監視制御手段は、前記頻度又はデータ量が所定の閾値よりも大きい場合に、前記データ領域に接続させる外部領域を高速なストレージにおける領域として決定し、前記頻度又はデータ量が所定の閾値以下である場合に、前記データ領域に接続させる外部領域を、前記高速なストレージよりも低速なストレージにおける領域として決定する
ことを特徴とする第3項に記載のコンテナ収容装置。
(第5項)
前記外部領域は、所定のアプリケーションサービスを提供するサーバ内の領域である
ことを特徴とする第1項ないし第4項のうちいずれか1項に記載のコンテナ収容装置。
(第6項)
複数コンテナ間で平等にリソースを使用できるようにするとともに、全体のリソースに余裕がある場合でも、1コンテナが使用するリソースを所定の上限値に制限するリソース制御手段
を更に備えることを特徴とする第1項ないし第5項のうちいずれか1項に記載のコンテナ収容装置。
(第7項)
特定のユーザのプロセスを他のユーザのプロセスと隔離して動作させる仮想的な環境であるコンテナを収容するコンテナ収容装置が実行するコンテナ作成方法であって、
前記特定のユーザのコンテナの作成指示を受信した場合に、各ユーザのコンテナ作成において共通に使用されるモデルデータを用いて、前記特定のユーザのコンテナを作成するコンテナ作成ステップを備え、
前記コンテナ作成ステップにおいて、前記コンテナ収容装置は、前記コンテナの外部にある外部領域を、前記コンテナにおいて前記特定のユーザにより認識されるデータ領域に接続し、データが前記外部領域に格納されるようにする
ことを特徴とするコンテナ作成方法。
(第8項)
コンピュータを、第1項ないし第6項のうちいずれか1項に記載のコンテナ収容装置における各手段として機能させるためのプログラム。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。

(Item 1)
A container accommodating device for accommodating a container, which is a virtual environment in which a process of a specific user is isolated and operated from processes of other users,
A container management means for creating a container for the specific user by using model data commonly used in creating the container for each user when receiving a 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 accommodating device characterized by the above.
(Item 2)
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. Create another container using
The container accommodating apparatus according to item 1, wherein:
(Section 3)
Monitoring and control means for monitoring the frequency or amount of data read or written to the data area and determining an external area to be connected to the data area based on the frequency or data amount.
The container accommodating apparatus according to claim 1 or 2, further comprising:
(Section 4)
When the frequency or the amount of data is larger than a predetermined threshold, the monitoring control unit determines an external area to be connected to the data area as an area in a high-speed storage, and the frequency or the amount of data is equal to or less than a predetermined threshold. In some cases, the external area to be connected to the data area is determined as the area in the storage slower than the storage fast.
The container housing device according to item 3, wherein:
(Section 5)
The external area is an area within a server that provides a predetermined application service.
The container accommodating device according to any one of the first to fourth aspects.
(Section 6)
Resource control means for enabling equal use of resources among a plurality of containers and for limiting the resources used by one container to a predetermined upper limit value even if there is a margin in the total resources
The container accommodating apparatus according to any one of the first to fifth aspects, further comprising:
(Section 7)
A method for creating a container executed by a container accommodating device that accommodates a container that is a virtual environment that operates by isolating a process of a specific user from processes of other users,
A container creating step of creating a container of the specific user by using model data commonly used in creating the container of each user when receiving a creating instruction of the container of the specific user,
In the container creating step, the container accommodation 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. Do
A method of creating a container characterized by the following.
(Section 8)
A program for causing a computer to function as each unit in the container accommodating apparatus according to any one of items 1 to 6.
The present invention is not limited to the above-described embodiment, and various modifications and applications are possible within the scope of the claims.

100 コンテナ収容装置
110 コンテナ管理部
120 テンプレート格納部
130 監視制御部
200 管理装置
210 オーダー管理部
220 コンテナ収容装置管理部
230 テンプレート格納部
100 container accommodation device 110 container management unit 120 template storage unit 130 monitoring control unit 200 management device 210 order management unit 220 container storage device management unit 230 template storage unit

Claims (8)

特定のユーザのプロセスを他のユーザのプロセスと隔離して動作させる仮想的な環境であるコンテナを収容するコンテナ収容装置であって、
前記特定のユーザのコンテナの作成指示を受信した場合に、各ユーザのコンテナ作成において共通に使用される、共通領域の設定のためのコンテナテンプレート及びユーザ領域の設定のためのユーザ領域テンプレートと、前記ユーザ領域テンプレートに基づく設定に対して前記特定のユーザ個別の設定をするための前記特定のユーザ個別の設定ファイルとを用いて、前記特定のユーザのコンテナを作成するコンテナ管理手段を備え、
前記コンテナ管理手段は、前記コンテナの外部にある外部領域を、前記コンテナにおいて前記特定のユーザにより認識されるデータ領域に接続し、データが前記外部領域に格納されるようにする
ことを特徴とするコンテナ収容装置。
A container accommodating device for accommodating a container, which is a virtual environment in which a process of a specific user is isolated and operated from processes of other users,
Wherein when receiving the instruction to create a particular user of the container, and the user area templates for setting the container templates and user area for the common use, the common area set in the container create each user, the A container management unit for creating a container for the specific user by using the specific user individual setting file for setting the specific user individual for the setting based on the user area template ,
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 accommodation 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 accommodating apparatus according to claim 1, wherein the other container is created by using the container.
前記データ領域に対してデータが読み書きされる頻度又はデータ量を監視し、当該頻度又はデータ量に基づいて、当該データ領域に接続させる外部領域を決定する監視制御手段
を更に備えることを特徴とする請求項1又は2に記載のコンテナ収容装置。
It is characterized by further comprising a monitoring control means for monitoring the frequency or amount of data read or written to the data area and determining an external area to be connected to the data area based on the frequency or data amount. The container accommodation device according to claim 1 or 2.
前記監視制御手段は、前記頻度又はデータ量が所定の閾値よりも大きい場合に、前記データ領域に接続させる外部領域を高速なストレージにおける領域として決定し、前記頻度又はデータ量が所定の閾値以下である場合に、前記データ領域に接続させる外部領域を、前記高速なストレージよりも低速なストレージにおける領域として決定する
ことを特徴とする請求項3に記載のコンテナ収容装置。
When the frequency or the amount of data is larger than a predetermined threshold, the monitoring control unit determines an external area to be connected to the data area as an area in a high-speed storage, and the frequency or the amount of data is equal to or less than a predetermined threshold. The container accommodating apparatus according to claim 3, wherein in some cases, the external area to be connected to the data area is determined as an area in a storage slower than the high-speed storage.
前記外部領域は、所定のアプリケーションサービスを提供するサーバ内の領域である
ことを特徴とする請求項1ないし4のうちいずれか1項に記載のコンテナ収容装置。
The container accommodating apparatus according to any one of claims 1 to 4, wherein the external area is an area within a server that provides a predetermined application service.
複数コンテナ間で平等にリソースを使用できるようにするとともに、全体のリソースに余裕がある場合でも、1コンテナが使用するリソースを所定の上限値に制限するリソース制御手段
を更に備えることを特徴とする請求項1ないし5のうちいずれか1項に記載のコンテナ収容装置。
In addition to enabling equal use of resources among a plurality of containers, the system further comprises resource control means for limiting the resources used by one container to a predetermined upper limit value even if there is a margin in the total resources. The container accommodating device according to any one of claims 1 to 5.
特定のユーザのプロセスを他のユーザのプロセスと隔離して動作させる仮想的な環境であるコンテナを収容するコンテナ収容装置が実行するコンテナ作成方法であって、
前記特定のユーザのコンテナの作成指示を受信した場合に、各ユーザのコンテナ作成において共通に使用される、共通領域の設定のためのコンテナテンプレート及びユーザ領域の設定のためのユーザ領域テンプレートと、前記ユーザ領域テンプレートに基づく設定に対して前記特定のユーザ個別の設定をするための前記特定のユーザ個別の設定ファイルとを用いて、前記特定のユーザのコンテナを作成するコンテナ作成ステップを備え、
前記コンテナ作成ステップにおいて、前記コンテナ収容装置は、前記コンテナの外部にある外部領域を、前記コンテナにおいて前記特定のユーザにより認識されるデータ領域に接続し、データが前記外部領域に格納されるようにする
ことを特徴とするコンテナ作成方法。
A method for creating a container executed by a container accommodating device that accommodates a container that is a virtual environment that operates by isolating a process of a specific user from processes of other users,
Wherein when receiving the instruction to create a particular user of the container, and the user area templates for setting the container templates and user area for the common use, the common area set in the container create each user, the A container creating step of creating a container of the specific user by using the specific user individual setting file for setting the specific user individual with respect to the setting based on the user area template ,
In the container creating step, the container accommodation 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 method of creating a container characterized by:
コンピュータを、請求項1ないし6のうちいずれか1項に記載のコンテナ収容装置における各手段として機能させるためのプログラム。 A program for causing a computer to function as each unit in the container accommodating apparatus according to any one of claims 1 to 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 JP2017111761A (en) 2017-06-22
JP6749094B2 true 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)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10803177B2 (en) * 2017-07-19 2020-10-13 International Business Machines Corporation Compliance-aware runtime generation based on application patterns and risk assessment
JP6612826B2 (en) * 2017-09-29 2019-11-27 株式会社日立製作所 Container management apparatus, container management method, and container management program
US10740132B2 (en) * 2018-01-30 2020-08-11 Veritas Technologies Llc Systems and methods for updating containers
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
US11659003B2 (en) * 2018-08-30 2023-05-23 International Business Machines Corporation Safe shell container facilitating inspection of a virtual container
EP3644206A1 (en) 2018-10-22 2020-04-29 Koninklijke Philips N.V. A container builder for individualized network services
JP6759317B2 (en) * 2018-12-13 2020-09-23 株式会社日立製作所 Container provision support system and container provision support method
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
KR102484914B1 (en) * 2021-11-23 2023-01-06 (주)글루시스 Method for storing data in virtual environment
WO2023199427A1 (en) * 2022-04-13 2023-10-19 三菱電機株式会社 Duplicate-removal system, apparatus, server device, duplicate-removal method, and duplicate-removal program
CN114510152B (en) * 2022-04-18 2022-07-26 梯度云科技(北京)有限公司 Method and device for constructing meta-universe system based on container
JP7485190B1 (en) 2023-11-16 2024-05-16 横河電機株式会社 Apparatus, system, method and program

Family Cites Families (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
JP5541908B2 (en) * 2009-11-26 2014-07-09 株式会社野村総合研究所 Data center configuration management system
US8661120B2 (en) * 2010-09-21 2014-02-25 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
WO2015049789A1 (en) * 2013-10-04 2015-04-09 株式会社日立製作所 Resource management system and resource management method

Also Published As

Publication number Publication date
JP2017111761A (en) 2017-06-22

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
US8122212B2 (en) Method and apparatus for logical volume management for virtual machine environment
JP5393515B2 (en) Server image migration
US10365935B1 (en) Automated system and method to customize and install virtual machine configurations for hosting in a hosting environment
US8543797B1 (en) Managed desktop system
US8458700B1 (en) Provisioning virtual machines
US10838914B2 (en) Chain file system
US20210405902A1 (en) Rule-based provisioning for heterogeneous distributed systems
US11182191B2 (en) Nested host manager in a hyper-converged infrastructure
US8849966B2 (en) Server image capacity optimization
US20190250835A1 (en) Sharing of data among containers running on virtualized operating systems
KR20160025606A (en) Data processing
KR20210022121A (en) Methods and systems for maintaining storage device failure tolerance in a configurable infrastructure
US8700846B2 (en) Multiple instances of mapping configurations in a storage system or storage appliance
US11726684B1 (en) Cluster rebalance using user defined rules
EP3786797A1 (en) Cloud resource marketplace
US20220156102A1 (en) Supporting unmodified applications in a multi-tenancy, multi-clustered environment
US20230031741A1 (en) Quality of service for cloud based storage system
US10929166B2 (en) Enhanced data storage of virtual nodes in a data processing environment
US11907161B2 (en) Upgrading the file system of objects in a distributed storage system
CN111124598B (en) Virtual desktop software management method and system
US20230206249A1 (en) Method and system for performing interception and auditing services in composed information handling systems
US20160124737A1 (en) Automated generation of an appliance for a computing machine
KR101473628B1 (en) Business files management apparatus

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