JP7338481B2 - 設定変更方法および設定変更プログラム - Google Patents

設定変更方法および設定変更プログラム Download PDF

Info

Publication number
JP7338481B2
JP7338481B2 JP2020003666A JP2020003666A JP7338481B2 JP 7338481 B2 JP7338481 B2 JP 7338481B2 JP 2020003666 A JP2020003666 A JP 2020003666A JP 2020003666 A JP2020003666 A JP 2020003666A JP 7338481 B2 JP7338481 B2 JP 7338481B2
Authority
JP
Japan
Prior art keywords
setting change
change request
request packet
container
kernel
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
JP2020003666A
Other languages
English (en)
Other versions
JP2021111197A (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020003666A priority Critical patent/JP7338481B2/ja
Priority to EP20208046.1A priority patent/EP3851988B1/en
Priority to US17/103,745 priority patent/US11722368B2/en
Publication of JP2021111197A publication Critical patent/JP2021111197A/ja
Application granted granted Critical
Publication of JP7338481B2 publication Critical patent/JP7338481B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Description

本発明は、設定変更方法および設定変更プログラムに関する。
従来、OS(Operating System)のカーネルを内部で分割して、他と隔離されたコンテナと呼ばれる実行環境を用意し、その上でアプリケーションを動作させる仮想化技術がある。例えば、コンテナは、ホストOSのプロセスのひとつとして動作し、ホストOSのリソースを全てのコンテナで共有する。
先行技術としては、例えば、マルチテナント型情報処理システムにおいて、テナントの仮想サーバの構成変更時に、設定変更項目と設定対象のNW機器を特定するものがある。また、ライブマイグレーションにおけるサービスの中断時間を測定するネットワークサービスの評価システムがある。
特開2012-65015号公報 特開2017-167822号公報
しかしながら、従来技術では、コンテナ上で動作するアプリケーションから、コンテナのカーネル設定の変更依頼があった場合に、対象となるコンテナが実行されているOSを特定するのに時間や手間がかかるという問題がある。
一つの側面では、本発明は、設定変更時に対象となるコンテナが、異なるホストや仮想化環境で動作しているOSのうち、どのOS上で動作しているかを容易に特定することを目的とする。
一つの実施態様では、いずれかのOSで実行されているコンテナ上で動作するソフトウェアから、カーネルの設定変更依頼パケットを受信し、受信した前記設定変更依頼パケットから、前記設定変更依頼パケットを受信した通信モジュールの識別情報を取得し、OSの識別情報と前記OSの通信モジュールの識別情報との対応関係を示す情報を記憶する記憶部を参照して、取得した前記通信モジュールの識別情報に基づいて、前記コンテナが動作するOSを特定する、設定変更方法が提供される。
本発明の一側面によれば、設定変更時に対象となるコンテナが、異なるホストや仮想化環境で動作しているOSのうち、どのOS上で動作しているかを容易に特定することができるという効果を奏する。
図1は、実施の形態1にかかる情報処理システム100のシステム構成例を示す説明図である。 図2は、実施の形態1にかかる情報処理システム100の動作例を示す説明図(その1)である。 図3は、実施の形態1にかかる情報処理システム100の動作例を示す説明図(その2)である。 図4は、実施の形態1にかかる情報処理システム100の動作例を示す説明図(その3)である。 図5は、実施の形態1にかかる情報処理システム100の動作例を示す説明図(その4)である。 図6は、仮想NIC/OS対応表200の記憶内容の一例を示す説明図である。 図7は、加工モジュールの配置例を示す説明図である。 図8は、設定管理サーバ101のハードウェア構成例を示すブロック図である。 図9は、設定管理サーバ101の機能的構成例を示すブロック図である。 図10は、設定変更依頼パケットへの第1の書き込み例を示す説明図である。 図11は、設定変更依頼パケットへの第2の書き込み例を示す説明図である。 図12は、設定変更依頼パケットの送信例を示す説明図である。 図13は、設定変更依頼パケットの送信先の書換例を示す説明図である。 図14は、実施の形態1にかかる加工モジュールpmの第1の転送処理手順の一例を示すフローチャートである。 図15は、実施の形態1にかかる加工モジュールpmの第2の転送処理手順の一例を示すフローチャートである。 図16は、実施の形態1にかかるカーネル制御部kcの設定変更処理手順の一例を示すフローチャートである。 図17は、実施の形態2にかかる情報処理システム1700のシステム構成例を示す説明図である。 図18は、設定変更依頼パケットの廃棄例を示す説明図である。 図19は、コンテナの再配置例を示す説明図である。 図20は、実施の形態2にかかるカーネル制御部kcの動作例を示す説明図(その1)である。 図21は、実施の形態2にかかるカーネル制御部kcの動作例を示す説明図(その2)である。 図22は、実施の形態2にかかるカーネル制御部kcの動作例を示す説明図(その3)である。 図23は、実施の形態2にかかるカーネル制御部kcの動作例を示す説明図(その4)である。 図24は、依頼管理テーブル2400の記憶内容の一例を示す説明図である。 図25は、実施の形態2にかかる検査モジュールsmの検査処理手順の一例を示すフローチャートである。 図26は、実施の形態2にかかる変更依頼モジュールrmの変更依頼処理手順の一例を示すフローチャートである。 図27は、実施の形態2にかかるカーネル制御部kcの第1の設定変更処理手順の一例を示すフローチャートである。 図28は、実施の形態2にかかるカーネル制御部kcの第2の設定変更処理手順の一例を示すフローチャートである。
以下に図面を参照して、本発明にかかる設定変更方法および設定変更プログラムの実施の形態を詳細に説明する。
(実施の形態1)
まず、実施の形態1にかかる情報処理システム100のシステム構成例について説明する。情報処理システム100は、例えば、アプリケーションの実行環境をユーザに貸し出すクラウドサービスを提供するコンピュータシステムに適用される。
図1は、実施の形態1にかかる情報処理システム100のシステム構成例を示す説明図である。図1において、情報処理システム100は、設定管理サーバ101と、複数の運用サーバ102とを含む。情報処理システム100において、設定管理サーバ101および複数の運用サーバ102は、有線または無線のネットワーク110を介して接続される。ネットワーク110は、例えば、インターネット、LAN、WAN(Wide Area Network)などである。
設定管理サーバ101は、いずれかのOSで実行されているコンテナcr上で動作するソフトウェアから、設定変更依頼パケットを受け付けるコンピュータ(情報処理装置)である。ここで、設定変更依頼パケットは、カーネルの設定変更を依頼するものである。カーネルは、OSの中核的な役割を担う部分であり、OSの基本機能を実行するソフトウェアである。例えば、設定変更依頼パケットは、コンテナcrについてのカーネルの各種パラメータの設定変更を依頼するものである。
コンテナcr(Container)は、OSのカーネルを内部で分割して作成される、他と隔離されたユーザ空間に相当し、OSのプロセスのひとつとして動作する。ユーザ空間は、ユーザがアプリケーションを実行するためのリソースをひとまとめにした実行環境である。
OSのリソースは、論理的に分割されて、複数のコンテナcrで共有される。具体的には、例えば、各コンテナcrには、IP(Internet Protocol)アドレスやホスト名が割り当てられる。また、CPU(Central Processing Unit)、メモリ、ディスクといったリソースもコンテナcrごとに論理的に分離される。
コンテナcrは、例えば、OSカーネルが持つnamespace(名前空間)機能とcgroups(controlgroups)機能により実装される。namespace機能は、プロセスをグループ化して、他のグループから隔離する役割を担う機能であり。cgroups機能は、グループ化されたプロセスに対するリソースの割り当てを制御する機能である。
運用サーバ102は、コンテナcrを実行可能なコンピュータ(情報処理装置)である。また、運用サーバ102は、仮想マシンvmを実行可能であってもよい。仮想マシンvm(Virtual Machine)は、物理的なコンピュータのハードウェア資源を分割して構築される実行環境で動作する仮想的なコンピュータである。仮想マシンvmは、例えば、ハイパーバイザによりハードウェア資源を仮想化することで実現される。
設定管理サーバ101および複数の運用サーバ102は、例えば、クラウドコンピューティングのサーバにより実現される。また、設定管理サーバ101は、例えば、複数の運用サーバ102のうちのいずれかの運用サーバ102により実現されてもよい。また、情報処理システム100には、複数の設定管理サーバ101が含まれていてもよい。
ここで、仮想マシンvmでは内部でゲストOSが稼働するのに対して、コンテナcrにはOSが含まれない(OSがインストールされない)。たとえ1台の物理サーバ上で複数のコンテナcrが起動したとしても、動作するOSは1つのため、仮想マシンvmに比べて、リソースの消費量や処理負荷が少ない。また、起動時間も仮想マシンvmに比べてコンテナcrのほうが短い。
一方で、仮想マシンvmの場合、ユーザの権限がカーネルまで及ぶため、ユーザがOSのカーネル設定(例えば、カーネルバージョン選択、パラメータチューニングなど)を自由に変更することができる。ところが、コンテナcrの場合、ユーザにカーネルの管理権限が与えられていない。
このため、カーネルの管理権限を有する者(例えば、システム管理者)に依頼して、コンテナcrのカーネルの設定変更を実施してもらうことがある。例えば、ユーザがシステム管理者に対して、あるコンテナcrが稼働しているOSのカーネルの設定変更を依頼したとする。この場合、システム管理者は、対象となるコンテナcrが、どのOSで実行されているかを調査して、カーネル設定を変更する。
しかしながら、従来手法では、対象となるコンテナcrが、どのOSで実行されているかを人手で調査する必要があり、実行場所の特定作業に時間や手間がかかる。例えば、システム管理者が、コンテナcrの実行場所を、コンテナ管理サーバやコンテナ運用サーバ(例えば、運用サーバ102)などに問い合わせて調査するといった面倒な作業が発生する。
また、コンテナcrを実行するサーバの負荷を考慮して、コンテナcrの実行場所を自動調整する仕組みの導入が進んでいる。しかし、コンテナcrの実行場所が、各サーバの負荷に応じて動的に変化することになると、コンテナcrの実行場所を常時監視することになり、運用コストの増大を招いてしまう。
そこで、本実施の形態では、設定変更時に対象となるコンテナcrが稼働しているOSを容易に特定可能にすることで、OSの設定変更にかかる作業負荷および作業時間を削減する設定変更方法について説明する。まず、図2~図5を用いて、実施の形態1にかかる情報処理システム100の動作例について説明する。
図2~図5は、実施の形態1にかかる情報処理システム100の動作例を示す説明図である。図2において、情報処理システム100内の設定管理サーバ101と運用サーバ102とが示されている。ここでは、運用サーバ102のホストOS210上で、仮想マシンvm1とコンテナcr1~cr3とが稼働している。また、仮想マシンvm1のゲストOS220上でコンテナcr4~cr6が稼働している。
ホストOS210は、物理NIC(Network Interface Card)211と、仮想ブリッジ212,213と、仮想NIC214~216と、を含む。ゲストOS220は、仮想NIC221~224と、仮想ブリッジ225とを含む。物理NIC211は、ネットワーク110に接続するための機器である。
仮想ブリッジ212,213,225は、データを中継する仮想的なブリッジである。仮想NIC214~216,221~224は、仮想的なNICである。仮想NIC214~216は、コンテナ・ホストOS間の接続用の仮想NICである。各仮想NIC214~216は、各コンテナcr1~cr3に対応する。
仮想NIC221は、ゲストOS・ホストOS間の接続用の仮想NICである。仮想NIC222~224は、コンテナ・ゲストOS間の接続用の仮想NICである。各仮想NIC222~224は、各コンテナcr4~cr6に対応する。
ここで、設定管理サーバ101は、仮想NIC/OS対応表200を作成する。仮想NIC/OS対応表200は、OSの識別情報と、当該OSの仮想NICの識別情報との対応関係を示す情報を記憶する。図2の例では、対象となる仮想NICは、点線枠内の仮想NICである。ただし、仮想NIC/OS対応表200は、予め作成されて設定管理サーバ101に記憶されていてもよい。
図6は、仮想NIC/OS対応表200の記憶内容の一例を示す説明図である。図6において、仮想NIC/OS対応表200は、仮想NIC識別子およびOS識別子のフィールドを有し、各フィールドに情報を設定することで、仮想NIC情報(例えば、仮想NIC情報600-1~600-3)をレコードとして記憶する。
ここで、仮想NIC識別子は、仮想NICを一意に識別する識別情報である。例えば、仮想NIC識別子は、仮想NICのIDである。OS識別子は、OS(ホストOSまたはゲストOS)を一意に識別する識別情報である。例えば、OS識別子は、OSのIDである。また、OS識別子は、OSのカーネルの制御対象モジュールを特定する情報であってもよい。
例えば、仮想NIC情報600-1は、OS識別子「a」で識別されるOSの仮想NICに割り当てられた仮想NIC識別子「a-1」を示す。
図3において、アプリ300は、設定管理サーバ101に対して、設定変更依頼パケット310を送信する。ここで、アプリ300は、コンテナcr6上で動作するユーザのアプリケーション(ソフトウェア)である。設定変更依頼パケット310は、コンテナcr6が実行されているOSのカーネルの設定変更を依頼するものである。
設定変更依頼パケット310は、例えば、ユーザからの要求に応じて、アプリ300から設定管理サーバ101に送信される。ただし、ユーザにはカーネルの管理権限がなく、設定変更依頼パケット310に、コンテナcr6が実行されているOSを特定するOS識別子などは含まれない。
図4において、加工モジュール400は、コンテナcr6に対応して設けられるモジュールである。加工モジュール400は、例えば、プログラム(いわゆる、小型VM)により実現される。ここで、図7を用いて、加工モジュール400の配置例について説明する。
図7は、加工モジュールの配置例を示す説明図である。図7において、加工モジュール400は、仮想NIC224と、プロトコルスタックpsとの間に配置される。プロトコルスタックpsは、コンピュータ上で通信を実現するための一連の通信プロトコル群を実装するモジュールである(図2~図5では不図示)。例えば、プロトコルスタックpsは、TCP(Transmission Control Protocol)/IPのプロトコルスタックである。仮想NIC224は、設定管理サーバ101側から見えるコンテナ・OS間の接続用の仮想NICであり、コンテナcr6用の仮想NIC700(図2~図5では不図示)と1対1で対向接続される。
加工モジュール400は、アプリ300からの設定変更依頼パケット310を受信すると、設定変更依頼パケット310を受信した仮想NIC224の識別情報(例えば、仮想NICのID)を、設定変更依頼パケット310のヘッダに書き込む。仮想NIC224は、コンテナcr6用の仮想NIC700と対向接続された仮想NICである。
加工モジュール400は、仮想NIC224の識別情報を書き込んだ設定変更依頼パケット310をプロトコルスタックpsに転送する。プロトコルスタックpsに転送された設定変更依頼パケット310は、ホストOS210の物理NIC211を介して設定管理サーバ101に送信される。
ここで、仮想NIC224は、コンテナcr6用の仮想NIC700と1対1で対向接続されている。このため、仮想NIC224の識別情報は、コンテナcr6用の仮想NIC700に対応しており、コンテナcr6に対応しているといえる。
図5において、設定管理サーバ101は、設定変更依頼パケット310を受信すると、設定変更依頼パケット310から、設定変更依頼パケット310を受信した仮想NICの識別情報を取得する。具体的には、例えば、設定管理サーバ101は、設定変更依頼パケット310のヘッダから、コンテナcr6用の仮想NIC700と対向接続され、コンテナ・OS間の接続用の仮想NIC224の識別情報を取得する。
つぎに、設定管理サーバ101は、例えば、図6に示した仮想NIC/OS対応表200を参照して、取得した仮想NIC224の識別情報に基づいて、コンテナcr6が実行されているOSを特定する。例えば、仮想NIC224の識別情報を、仮想NIC識別子「a-3」とする。
この場合、設定管理サーバ101は、仮想NIC/OS対応表200を参照して、仮想NIC識別子「a-3」に対応するOS識別子「a」を特定する。そして、設定管理サーバ101は、OS識別子「a」から、コンテナcr6が動作するOS、すなわち、コンテナcr6が実行されているOSを特定する。ここでは、コンテナcr6が実行されているOSとして、OS識別子「a」により識別されるOSが特定される。
これにより、コンテナcr6上で動作しているアプリ300からの設定変更依頼に応じて、対象となるコンテナcr6が、異なるホストや仮想化環境で動作しているOSのうち、どのOS(OS識別子「a」のOS)上で動作しているかを自動で特定することができる。このため、コンテナcr6の実行場所の特定にかかる面倒な作業をなくして、ひいては、OSの設定変更にかかる作業負荷および作業時間を削減することができる。
なお、設定変更依頼パケット310に対するOS(OS識別子「a」のOS)の設定変更処理は、設定管理サーバ101で実行してもよく、また、設定管理サーバ101とは異なる他のコンピュータで実行してもよい。また、OS(OS識別子「a」のOS)の設定変更処理は、システム管理者などによって人手で行われることにしてもよい。
(設定管理サーバ101のハードウェア構成例)
図8は、設定管理サーバ101のハードウェア構成例を示すブロック図である。図8において、設定管理サーバ101は、CPU801と、メモリ802と、ディスクドライブ803と、ディスク804と、通信I/F(Interface)805と、可搬型記録媒体I/F806と、可搬型記録媒体807と、を有する。また、各構成部は、バス800によってそれぞれ接続される。
ここで、CPU801は、設定管理サーバ101の全体の制御を司る。CPU801は、複数のコアを有していてもよい。メモリ802は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU801のワークエリアとして使用される。メモリ802に記憶されるプログラムは、CPU801にロードされることで、コーディングされている処理をCPU801に実行させる。
ディスクドライブ803は、CPU801の制御に従ってディスク804に対するデータのリード/ライトを制御する。ディスク804は、ディスクドライブ803の制御で書き込まれたデータを記憶する。ディスク804としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
通信I/F805は、通信回線を通じてネットワーク110に接続され、ネットワーク110を介して外部のコンピュータ(例えば、図1に示した運用サーバ102)に接続される。そして、通信I/F805は、ネットワーク110と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。
可搬型記録媒体I/F806は、CPU801の制御に従って可搬型記録媒体807に対するデータのリード/ライトを制御する。可搬型記録媒体807は、可搬型記録媒体I/F806の制御で書き込まれたデータを記憶する。可搬型記録媒体807としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
なお、設定管理サーバ101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、設定管理サーバ101は、上述した構成部のうち、例えば、ディスクドライブ803、ディスク804、可搬型記録媒体I/F806、可搬型記録媒体807を有していなくてもよい。
また、図1に示した運用サーバ102についても、設定管理サーバ101と同様のハードウェア構成により実現することができる。
(設定管理サーバ101の機能的構成例)
図9は、設定管理サーバ101の機能的構成例を示すブロック図である。図9において、設定管理サーバ101は、通信部901と、特定部902と、変更部903と、出力部904と、記憶部910と、を含む。通信部901~出力部904は、カーネル制御部kcとなる機能であり、具体的には、例えば、図8に示したメモリ802、ディスク804、可搬型記録媒体807などの記憶装置に記憶されたプログラムをCPU801に実行させることにより、または、通信I/F805により、その機能を実現する。各機能部の処理結果は、例えば、メモリ802、ディスク804などの記憶装置に記憶される。また、記憶部910は、例えば、メモリ802、ディスク804などの記憶装置により実現される。具体的には、例えば、記憶部910は、図6に示した仮想NIC/OS対応表200を記憶する。
以下の説明では、情報処理システム100内のいずれかのOSを「OS#」と表記する場合がある。
通信部901は、いずれかのOS#で実行されているコンテナcr上で動作するソフトウェアから、設定変更依頼パケットを受信する。ここで、設定変更依頼パケットは、コンテナcrについて、カーネルの設定変更を要求する情報である。変更対象となるカーネル設定としては、例えば、通信用のバッファの容量の設定、ファイアウォールの設定、ウェブアクセスを処理するためのコネクションの受付可能数の設定などがある。
カーネル設定の変更依頼内容は、例えば、設定変更依頼パケットのペイロード(データ本体)に含まれる。設定変更依頼パケットのヘッダには、設定変更依頼パケットを受信した通信モジュールの識別情報が含まれる。通信モジュールは、コンピュータネットワークに接続するためのモジュールであり、例えば、仮想NICである。
具体的には、例えば、通信部901は、運用サーバ102で実行されているコンテナcrの変更依頼モジュールrmから送信される設定変更依頼パケットを、運用サーバ102から受信する。変更依頼モジュールrmは、例えば、コンテナcr上で動作しているアプリケーション(例えば、図3に示したアプリ300)により実現される。
特定部902は、受信された設定変更依頼パケットから、設定変更依頼パケットを受信した通信モジュールの識別情報を取得する。そして、特定部902は、記憶部910を参照して、取得した通信モジュールの識別情報に基づいて、コンテナcrが動作するOS#を特定する。記憶部910は、OSの識別情報と、OSの通信モジュールの識別情報との対応関係を示す情報を記憶する。
ここで、OSの通信モジュールは、他のOS、仮想マシン、コンテナなどと接続するためのモジュールであり、例えば、OSの仮想NICである。また、設定変更依頼パケットを受信した通信モジュールは、例えば、設定変更依頼パケットを受信した仮想NICである。
より詳細に説明すると、例えば、設定変更依頼パケットを受信した仮想NICは、コンテナcr用の仮想NICと対向接続されたコンテナ・OS間の接続用の仮想NICである。コンテナcr用の仮想NICは、例えば、図7に示した仮想NIC700である。また、コンテナcr用の仮想NICと対向接続されたコンテナ・OS間の接続用の仮想NICは、例えば、図7に示した仮想NIC224である。
具体的には、例えば、特定部902は、受信された設定変更依頼パケットのヘッダから、設定変更依頼パケットを受信した仮想NICのID(仮想NIC識別子)を取得する。なお、設定変更依頼パケットを受信した通信モジュールの識別情報は、例えば、OS#内のコンテナcrに対応する加工モジュールpmによって設定変更依頼パケットのヘッダに書き込まれる。
つぎに、特定部902は、例えば、図6に示した仮想NIC/OS対応表200を参照して、取得した仮想NICのID(仮想NIC識別子)に対応するOS識別子を特定する。そして、特定部902は、特定したOS識別子により識別されるOSを、コンテナcrが動作するOS#、すなわち、依頼元のコンテナcrが実行されているOS#として特定する。
変更部903は、設定変更要求パケットから特定される変更依頼内容に基づいて、特定されたOS#のカーネルの設定を変更する。具体的には、例えば、変更部903は、設定変更要求パケットのペイロードを参照して、カーネル設定の変更依頼内容を特定する。そして、変更部903は、特定した変更依頼内容に従って、特定されたOS#のカーネルの設定を変更する。
より詳細に説明すると、例えば、変更部903は、対象となるコンテナcrについて、通信用のバッファの容量を変更したり、ファイアウォールの設定を変更したり、ウェブアクセスを処理するためのコネクションの受付可能数を変更したりする。対象となるコンテナcrは、依頼元のコンテナcr、すなわち、設定変更依頼パケットの送信元のソフトウェアが動作しているコンテナcrである。
対象となるコンテナcrは、例えば、設定変更依頼パケットの送信元アドレスから特定されてもよい。また、対象となるコンテナcrのカーネルの制御対象モジュールは、仮想NIC/OS対応表200から特定されることにしてもよい。なお、変更部903は、例えば、依頼元であるユーザが有する使用権限を参照して、OS#のカーネル設定の変更を許可するか否かを判断してもよい。
出力部904は、特定されたOS#の識別情報を出力する。具体的には、例えば、出力部904は、依頼元のコンテナcrの識別情報と対応付けて、特定されたOS#の識別情報を出力することにしてもよい。出力部904の出力形式としては、例えば、メモリ802、ディスク804などの記憶装置への記憶、通信I/F805による他のコンピュータへの送信、不図示のディスプレイへの表示などがある。
より詳細に説明すると、例えば、出力部904は、依頼元のコンテナcrの識別情報と、OS#の識別情報と、カーネル設定の変更依頼内容とを含む設定変更情報を、システム管理者の情報処理端末に送信することにしてもよい。これにより、システム管理者は、設定変更情報を参照して、依頼元のコンテナcrが動作するOS#を容易に特定することができる。また、システム管理者は、カーネル設定の変更依頼内容を特定して、依頼元のコンテナcrについてのカーネル設定を変更することができる。この際、システム管理者は、例えば、依頼元であるユーザが有する使用権限を参照して、OS#のカーネル設定の変更を許可するか否かを判断してもよい。
なお、設定管理サーバ101の各機能部は、情報処理システム100内の他のコンピュータ(例えば、運用サーバ102)により実現されることにしてもよい。また、設定管理サーバ101の各機能部は、情報処理システム100内の複数のコンピュータ(例えば、設定管理サーバ101と運用サーバ102)により実現されることにしてもよい。
(設定変更依頼パケットへの書き込み例)
つぎに、図10および図11を用いて、設定変更依頼パケットへの通信モジュールの識別情報の書き込み例について説明する。ここでは、通信モジュールの識別情報として、設定変更依頼パケットを受信した仮想NICのID(仮想NIC識別子)を書き込む場合を例に挙げて説明する。
図10は、設定変更依頼パケットへの第1の書き込み例を示す説明図である。図10において、設定変更依頼パケット1000は、コンテナcr上の変更依頼モジュールrmから送信される設定変更依頼パケットの一例である。設定変更依頼パケット1000は、IPヘッダ1001と、オプションヘッダ1002と、制御リクエスト1003とを含む。
IPヘッダ1001には、送信元アドレス、宛先アドレスなどの情報が格納される。オプションヘッダ1002は、コンテナcr上の変更依頼モジュールrmによって付与されるオプションヘッダである。より詳細に説明すると、例えば、変更依頼モジュールrmは、設定変更依頼パケット1000を送信する際に、変更依頼パケット送信用のソケットをオープンし、ソケットにオプションヘッダを付与するパラメータを設定する。
オプションヘッダ1002としては、例えば、レコードルートオプションヘッダやタイムスタンプオプションヘッダを利用することができる。レコードルートオプションヘッダは、パケットが通過した装置のIPアドレスを記録するオプションヘッダである。タイムスタンプオプションヘッダは、パケットが通過した装置のIPアドレスと通過時刻を記録するオプションヘッダである。オプションヘッダ1002は、初期状態では空である。制御リクエスト1003には、カーネル設定の変更依頼内容が記録される。
加工モジュールpmは、設定変更依頼パケット1000を受信すると、設定変更依頼パケット1000のオプションヘッダ1002に、設定変更依頼パケット1000を受信した仮想NIC1010のID(32bit)を書き込む。仮想NIC1010は、コンテナcr用の仮想NICと対向接続されたコンテナ・OS間の接続用の仮想NICである。
なお、加工モジュールpmは、例えば、受信したパケットのIPヘッダを検査して、宛先情報(IPアドレス、ポート番号など)から設定変更依頼パケットであるか否かを判断することができる。例えば、加工モジュールpmは、受信したパケットがカーネル制御部kc宛のパケットの場合、設定変更依頼パケットであると判断する。一方、受信したパケットがカーネル制御部kc宛のパケットではない場合には、加工モジュールpmは、設定変更依頼パケットではないと判断する。
カーネル制御部kcは、設定変更依頼パケット1000を受信すると、設定変更依頼パケット1000のオプションヘッダ1002から、設定変更依頼パケット1000を受信した仮想NIC1010のID(32bit)を読み出す。
これにより、IPパケットの利用可能なオプションヘッダを用いて、設定変更依頼パケットを受信した仮想NICのID(仮想NIC識別子)を記録することができる。
図11は、設定変更依頼パケットへの第2の書き込み例を示す説明図である。図11において、設定変更依頼パケット1100は、コンテナcr上の変更依頼モジュールrmから送信される設定変更依頼パケットの一例である。設定変更依頼パケット1100は、オプションヘッダのない形式のパケットであり、IPヘッダ1101と、制御リクエスト1102とを含む。
加工モジュールpmは、設定変更依頼パケット1100を受信すると、設定変更依頼パケット1100にオプションヘッダ1103を付加する。そして、加工モジュールpmは、設定変更依頼パケット1100を受信した仮想NIC1110のID(32bit)を、付加したオプションヘッダ1103に書き込む。仮想NIC1110は、コンテナcr側の仮想NICと対向接続されたコンテナ・OS間の接続用の仮想NICである。
カーネル制御部kcは、設定変更依頼パケット1100を受信すると、設定変更依頼パケット1100のオプションヘッダ1103から、設定変更依頼パケット1100を受信した仮想NIC1110のID(32bit)を読み出す。
これにより、加工モジュールpmが、設定変更依頼パケットのパケット形式を変更し、オプションヘッダを付加した上で、設定変更依頼パケットを受信した仮想NICのID(仮想NIC識別子)を記録することができる。
(マルチキャストアドレスを利用)
つぎに、図12を用いて、設定変更依頼パケットの送信先にマルチキャストアドレスを利用する場合について説明する。
図12は、設定変更依頼パケットの送信例を示す説明図である。図12において、設定変更依頼パケット1200は、コンテナcr上の変更依頼モジュールrmから送信される設定変更依頼パケットの一例である。設定変更依頼パケット1200は、IPヘッダ1201と、オプションヘッダ1202と、制御リクエスト1203とを含む。
変更依頼モジュールrmは、IPヘッダ1201の宛先アドレスにマルチキャストアドレスを設定して、設定変更依頼パケット1200を送信する。設定変更依頼用のマルチキャストアドレスは、例えば、変更依頼モジュールrmに予め設定されている。
加工モジュールpmは、設定変更依頼パケット1200を受信すると、設定変更依頼パケット1200のオプションヘッダ1202に、設定変更依頼パケット1200を受信した仮想NIC1210のIDを書き込む。仮想NIC1210は、コンテナcr用の仮想NICと対向接続されたコンテナ・OS間の接続用の仮想NICである。
なお、加工モジュールpmは、例えば、受信したパケットのIPヘッダを検査して、宛先アドレスにマルチキャストアドレスが設定されている場合、設定変更依頼パケットであると判断する。一方、宛先アドレスにマルチキャストアドレスが設定されていない場合には、加工モジュールpmは、設定変更依頼パケットではないと判断する。
カーネル制御部kcは、設定変更依頼パケット1200を受信すると、依頼元のコンテナcr(送信元)が、自身が担当するコンテナcrであるか否かを判断する。なお、どの送信元の設定変更依頼パケットを処理するかは、例えば、カーネル制御部kcに予め設定されている。
ここで、自身が担当するコンテナcrであれば、カーネル制御部kcは、設定変更依頼パケット1200のオプションヘッダ1202から、設定変更依頼パケット1200を受信した仮想NIC1210のIDを読み出す。一方、自身が担当するコンテナcrでなければ、カーネル制御部kcは、設定変更依頼パケット1200を廃棄する。
これにより、コンテナcrの実行場所が変更になっても、変更依頼モジュールrm(コンテナcr)における設定変更依頼パケットの宛先アドレスの設定変更を不要にすることができる。例えば、情報処理システム100内に存在する複数のカーネル制御部kcのうち、最寄りのカーネル制御部kcに設定変更依頼パケットを送信する運用を行うとする。最寄りのカーネル制御部kcとは、例えば、コンテナcrからの物理的な距離が最も近いカーネル制御部kcである。この場合、設定変更依頼パケットの送信先としてマルチキャストアドレスを利用することで、コンテナcrの実行場所が変更になっても、送信先の設定変更を行うことなく、最寄りのカーネル制御部kcに設定変更依頼パケットを送ることができる。
(送信先アドレスの書き換え)
つぎに、図13を用いて、加工モジュールpmにおいて設定変更依頼パケットの送信先を書き換える場合について説明する。
図13は、設定変更依頼パケットの送信先の書換例を示す説明図である。図13において、設定変更依頼パケット1300は、コンテナcr上の変更依頼モジュールrmから送信される設定変更依頼パケットの一例である。設定変更依頼パケット1300は、IPヘッダ1301と、オプションヘッダ1302と、制御リクエスト1303とを含む。
変更依頼モジュールrmは、IPヘッダ1301の宛先アドレスに特定のユニキャストアドレスを設定して、設定変更依頼パケット1300を送信する。特定のユニキャストアドレスは、例えば、カーネル制御用の代表アドレスであり、変更依頼モジュールrmに予め設定されている。
加工モジュールpmは、設定変更依頼パケット1300を受信すると、IPヘッダ1301の宛先アドレスに、自モジュールに対応するカーネル制御部kcのアドレスを設定して、設定変更依頼パケット1300を送信する。カーネル制御部kcのアドレスは、例えば、加工モジュールpmに設定されている。
また、設定変更依頼パケット1300のオプションヘッダ1302に、設定変更依頼パケット1300を受信した仮想NIC1310のIDを書き込む。仮想NIC1310は、コンテナcr用の仮想NICと対向接続されたコンテナ・OS間の接続用の仮想NICである。
なお、加工モジュールpmは、例えば、受信したパケットのIPヘッダを検査して、宛先アドレスに特定のユニキャストアドレスが設定されている場合、設定変更依頼パケットであると判断する。一方、宛先アドレスに特定のユニキャストアドレスが設定されていない場合には、加工モジュールpmは、設定変更依頼パケットではないと判断する。
カーネル制御部kcは、設定変更依頼パケット1300を受信すると、設定変更依頼パケット1300のオプションヘッダ1302から、設定変更依頼パケット1300を受信した仮想NIC1310のIDを読み出す。
これにより、コンテナcrの実行場所が変更になっても、変更依頼モジュールrm(コンテナcr)における設定変更依頼パケットの宛先アドレスの設定変更が不要となる。また、マルチキャストアドレスを利用する場合に比べて、設定変更依頼時の通信トラフィックを減らすことができる。
(情報処理システム100の各種処理手順)
つぎに、実施の形態1にかかる情報処理システム100の各種処理手順について説明する。まず、図14を用いて、コンテナcr発の設定変更依頼パケットの送信先として、カーネル制御部kcのアドレスが設定されている場合を例に挙げて、加工モジュールpmの第1の転送処理手順について説明する。
図14は、実施の形態1にかかる加工モジュールpmの第1の転送処理手順の一例を示すフローチャートである。図14のフローチャートにおいて、まず、加工モジュールpmは、コンテナcr発のパケットを受信したか否かを判断する(ステップS1401)。ここで、加工モジュールpmは、コンテナcr発のパケットを受信するのを待つ(ステップS1401:No)。
そして、加工モジュールpmは、コンテナcr発のパケットを受信した場合(ステップS1401:Yes)、受信したパケットの宛先がカーネル制御部kcであるか否かを判断する(ステップS1402)。なお、カーネル制御部kcのアドレスは、加工モジュールpmに予め記憶されている。
ここで、パケットの宛先がカーネル制御部kcではない場合(ステップS1402:No)、加工モジュールpmは、ステップS1404に移行する。一方、パケットの宛先がカーネル制御部kcの場合(ステップS1402:Yes)、加工モジュールpmは、パケットのオプションヘッダに、当該パケットを受信した仮想NICのID(仮想NIC識別子)を書き込む(ステップS1403)。
コンテナcr発のパケットを受信した仮想NICは、コンテナcr用の仮想NICと対向接続されたコンテナ・OS間の接続用の仮想NICである。加工モジュールpmは、例えば、このコンテナ・OS間の接続用の仮想NICと対応して設けられ、このコンテナ・OS間の接続用の仮想NICと直接接続されている。なお、コンテナ・OS間の接続用の仮想NICのIDは、例えば、加工モジュールpmに予め記憶されている。
そして、加工モジュールpmは、パケットを転送して(ステップS1404)、本フローチャートによる一連の処理を終了する。これにより、加工モジュールpmにおいて、設定変更依頼パケットを受信した際に、設定変更依頼パケットのオプションヘッダに、設定変更依頼パケットを受信した仮想NICのIDを記録することができる。
つぎに、図15を用いて、コンテナcr発の設定変更依頼パケットの送信先として、カーネル制御用の代表アドレス(特定のユニキャストアドレス)が設定されている場合を例に挙げて、加工モジュールpmの第2の転送処理手順について説明する。
図15は、実施の形態1にかかる加工モジュールpmの第2の転送処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、加工モジュールpmは、コンテナcr発のパケットを受信したか否かを判断する(ステップS1501)。ここで、加工モジュールpmは、コンテナcr発のパケットを受信するのを待つ(ステップS1501:No)。
そして、加工モジュールpmは、コンテナcr発のパケットを受信した場合(ステップS1501:Yes)、受信したパケットの宛先がカーネル制御用の代表アドレスであるか否かを判断する(ステップS1502)。なお、カーネル制御用の代表アドレスは、加工モジュールpmに予め記憶されている。
ここで、パケットの宛先がカーネル制御用の代表アドレスではない場合(ステップS1502:No)、加工モジュールpmは、ステップS1505に移行する。一方、パケットの宛先がカーネル制御用の代表アドレスの場合(ステップS1502:Yes)、加工モジュールpmは、パケットのオプションヘッダに、当該パケットを受信した仮想NICのID(仮想NIC識別子)を書き込む(ステップS1503)。
つぎに、加工モジュールpmは、パケットのIPヘッダの宛先アドレスを、カーネル制御部kcのアドレスに書き換える(ステップS1504)。なお、カーネル制御部kcのアドレスは、加工モジュールpmに予め記憶されている。そして、加工モジュールpmは、パケットを転送して(ステップS1505)、本フローチャートによる一連の処理を終了する。
これにより、加工モジュールpmにおいて、設定変更依頼パケットを受信した際に、設定変更依頼パケットのオプションヘッダに、設定変更依頼パケットを受信した仮想NICのIDを記録することができる。また、加工モジュールpmにおいて、設定変更依頼パケットの宛先アドレスを実際のカーネル制御部kcのアドレスに書き換えることができる。このため、たとえコンテナcrの実行場所が変更になっても、変更依頼モジュールrmにおける設定変更依頼パケットの宛先アドレスの設定変更が不要となる。
つぎに、図16を用いて、実施の形態1にかかるカーネル制御部kcの設定変更処理手順について説明する。
図16は、実施の形態1にかかるカーネル制御部kcの設定変更処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、カーネル制御部kcは、設定変更依頼パケットを受信したか否かを判断する(ステップS1601)。ここで、カーネル制御部kcは、設定変更依頼パケットを受信するのを待つ(ステップS1601:No)。
そして、カーネル制御部kcは、設定変更依頼パケットを受信した場合(ステップS1601:Yes)、受信した設定変更依頼パケットのオプションヘッダから、仮想NICのIDを取得する(ステップS1602)。この仮想NICのIDは、コンテナcr用の仮想NICと対向接続され、設定変更依頼パケットを受信した仮想NICのID(仮想NIC識別子)である。
つぎに、カーネル制御部kcは、受信した設定変更依頼パケットのペイロードから、カーネル設定の変更依頼内容を特定する(ステップS1603)。そして、カーネル制御部kcは、仮想NIC/OS対応表200を参照して、取得した仮想NICのID(仮想NIC識別子)に対応するOS識別子を特定する(ステップS1604)。
つぎに、カーネル制御部kcは、特定したOS識別子により識別されるOSを、依頼元のコンテナcrが実行されているOS#として特定する(ステップS1605)。そして、カーネル制御部kcは、特定したカーネル設定の変更依頼内容に基づいて、特定したOS#のカーネルの設定を変更して(ステップS1606)、本フローチャートによる一連の処理を終了する。
これにより、カーネルの設定変更依頼を受け付けた際に、仮想NICのIDから制御対象のOS#を識別して、OS#のカーネルの設定を変更することができる。
以上説明したように、実施の形態1にかかる情報処理システム100によれば、カーネル制御部kcは、いずれかのOS#で実行されているコンテナcr上で動作する変更依頼モジュールrmから、カーネルの設定変更依頼パケットを受信する。また、カーネル制御部kcは、受信した設定変更依頼パケットから、設定変更依頼パケットを受信した仮想NICのID(仮想NIC識別子)を取得する。設定変更依頼パケットを受信した仮想NICは、コンテナcr用の仮想NICと対向接続され、コンテナcrとOS#との間の接続用の仮想NICである。そして、カーネル制御部kcは、記憶部910を参照して、取得した仮想NICのID(仮想NIC識別子)に基づいて、コンテナcrが動作するOS#を特定することができる。具体的には、例えば、カーネル制御部kcは、仮想NIC/OS対応表200を参照して、取得したID(仮想NIC識別子)に対応するOS識別子を特定し、特定したOS識別子により識別されるOSを、コンテナcrが動作するOS#として特定する。
これにより、カーネルの管理権限を有しないユーザからの設定変更依頼に応じて、対象となるコンテナcrが稼働しているOS#を特定することができる。具体的には、例えば、設定変更時に対象となるコンテナcrが、異なるホストや仮想化環境で動作しているOSのうち、どのOS#上で動作しているかを容易に特定することができ、設定変更時のOS#の特定にかかる作業負荷および作業時間を削減することができる。
また、情報処理システム100によれば、カーネル制御部kcは、設定変更依頼パケットから特定される変更依頼内容に基づいて、特定したOS#のカーネルの設定を変更することができる。
これにより、カーネルの管理権限を有しないユーザからの設定変更依頼に応じて、対象となるコンテナcrが稼働しているOS#のカーネル設定を自動で変更することができ、OSの設定変更にかかる作業負荷および作業時間を削減することができる。
また、情報処理システム100によれば、加工モジュールpmは、設定変更依頼パケットのオプションヘッダに、設定変更依頼パケットを受信した仮想NICのID(仮想NIC識別子)を書き込むことができる。加工モジュールpmは、コンテナcr用の仮想NICと対向接続される、コンテナcrとOS#との間の接続用の仮想NICと、OS#のプロトコルスタックとの間に配置されるモジュールである。
これにより、コンテナ用仮想NICとコンテナ/OS間の接続用仮想NICとが1対1で対向接続されることを利用して、コンテナ/OS間の接続用仮想NICとプロトコルスタックとの間に配置されるプログラム(いわゆる、小型VM)により、OS#を特定するための印(仮想NIC識別子)をパケットに付与することができる。
また、情報処理システム100によれば、変更依頼モジュールrmは、設定変更依頼パケットの宛先アドレスとして、設定変更依頼用のマルチキャストアドレスを設定することができる。
これにより、コンテナcrの実行場所が変更になっても、変更依頼モジュールrm(コンテナcr)における設定変更依頼パケットの宛先アドレスの設定変更が不要となる。
また、情報処理システム100によれば、カーネル制御部kcは、受信した設定変更依頼パケットのオプションヘッダから、設定変更依頼パケットを受信した仮想NICのID(仮想NIC識別子)を取得することができる。オプションヘッダは、例えば、レコードルートオプションヘッダ、または、タイムスタンプオプションヘッダである。
これにより、IPパケットの利用可能なオプションヘッダを用いて、設定変更依頼パケットを受信した仮想NICのID(仮想NIC識別子)を記録することができる。
また、情報処理システム100によれば、加工モジュールpmが、設定変更依頼パケットにオプションヘッダを付与することができる。
これにより、レコードルートオプションヘッダやタイムスタンプオプションヘッダなどのオプションヘッダを利用することなく、設定変更依頼パケットのパケット形式を変更して、仮想NICのID(仮想NIC識別子)を記録することができる。
また、情報処理システム100によれば、加工モジュールpmは、設定変更依頼パケットの宛先アドレスにカーネル制御用の代表アドレスが設定されている場合、当該宛先アドレスを、自モジュールに対応するカーネル制御用の特定アドレスに書き換えることができる。
これにより、コンテナcrの実行場所が変更になっても、変更依頼モジュールrm(コンテナcr)における設定変更依頼パケットの宛先アドレスの設定変更が不要となる。また、マルチキャストアドレスを利用する場合に比べて、設定変更依頼時の通信トラフィックを減らすことができる。
(実施の形態2)
つぎに、実施の形態2にかかる設定変更方法について説明する。実施の形態2では、カーネル制御部kcをOS(ホストOS、ゲストOS)ごとに分散配置し、OS単位で仮想NICのID管理を行う場合について説明する。なお、実施の形態1で説明した箇所と同様の箇所については、同一符号を付して図示および説明を省略する。
図17は、実施の形態2にかかる情報処理システム1700のシステム構成例を示す説明図である。図17において、情報処理システム1700は、ネットワーク110を介して接続される複数の運用サーバ102を含む。各運用サーバ102上では、コンテナcrや仮想マシンvmが起動される。
図17の例では、ある運用サーバ102のホストOS210上で、仮想マシンvm1とコンテナcr1~cr3とが稼働している。また、ホストOS210のユーザ空間で、カーネル制御部kc1が実行されている。ホストOS210は、物理NIC211と、仮想ブリッジ212,213と、仮想NIC214~216と、を含む。
また、仮想マシンvm1のゲストOS220上でコンテナcr4~cr6が稼働している。また、仮想マシンvm1のゲストOS220のユーザ空間で、カーネル制御部kc2が実行されている。ゲストOS220は、仮想NIC221~224と、仮想ブリッジ225とを含む。
ここで、各カーネル制御部kc1,kc2は、仮想NIC/OS対応表1710を作成する。仮想NIC/OS対応表1710は、自OSの識別情報と、当該自OSの仮想NICの識別情報との対応関係を示す情報を記憶する。ただし、仮想NIC/OS対応表1710は、予め作成されて各カーネル制御部kc1,kc2に記憶されていてもよい。
例えば、カーネル制御部kc1の自OSの識別情報をOS識別子「a」とする。この場合、カーネル制御部kc1の仮想NIC/OS対応表1710には、自OSのOS識別子「a」と、自OSの仮想NICの仮想NIC識別子とを対応付けた仮想NIC情報(例えば、図6に示した仮想NIC情報600-1~600-3)のみが記憶される。なお、仮想NIC/OS対応表1710には、例えば、各仮想NICに対応する、カーネルの制御対象モジュールを特定する情報が含まれる。より詳細に説明すると、例えば、OS識別子は、自OSのカーネルの制御対象モジュールを特定する情報であってもよい。
このように、情報処理システム1700では、OS(例えば、ホストOS210、ゲストOS220)ごとにカーネル制御部kc(例えば、カーネル制御部kc1,kc2)が分散配置される。このため、各カーネル制御部kcは、自OS(各カーネル制御部kcを実行しているOS)についての仮想NICのID管理だけを行えばよい。また、各OSの仮想NICのIDの整合性をOS間で取る手間を省略することができる。
(設定変更依頼パケットの廃棄)
つぎに、図18を用いて、各OS(ホストOS、ゲストOS)の外部接続NICで設定変更依頼パケットを廃棄する場合について説明する。
図18は、設定変更依頼パケットの廃棄例を示す説明図である。図18において、検査モジュールsm1は、物理NIC211に対応して設けられるモジュールである。また、検査モジュールsm2は、仮想NIC221に対応して設けられるモジュールである。各検査モジュールsm1,sm2は、例えば、プログラム(いわゆる、小型VM)により実現される。
検査モジュールsm1は、物理NIC211を出入りするパケットを検査する。具体的には、例えば、検査モジュールsm1は、外部(ネットワーク110側)から物理NIC211が受信したパケットの宛先アドレスが、カーネル制御部kc1のアドレスの場合、そのパケットを廃棄する。これにより、外部からの制御リクエストを装った不正なパケットを外部接続NICで廃棄することができる。
また、検査モジュールsm1は、内部(仮想マシンvm、コンテナcr側)物理NIC211が受信したパケットのオプションヘッダに印(仮想NICのID)が記録されている場合、そのパケットを廃棄する。これにより、外部への制御リクエストを装った不正なパケットを外部接続NICで廃棄することができる。
検査モジュールsm2は、仮想NIC221を出入りするパケットを検査する。具体的には、例えば、検査モジュールsm2は、外部(ホストOS210側)から仮想NIC221が受信したパケットの宛先アドレスが、カーネル制御部kc2のアドレスの場合、そのパケットを廃棄する。これにより、外部からの制御リクエストを装った不正なパケットを外部接続NICで廃棄することができる。
また、検査モジュールsm2は、内部(コンテナcr側)から仮想NIC221が受信したパケットのオプションヘッダに印(仮想NICのID)が記録されている場合、そのパケットを廃棄する。これにより、外部への制御リクエストを装った不正なパケットを外部接続NICで廃棄することができる。
このように、各OS(ホストOS、ゲストOS)の外部接続NICで不正なパケットを廃棄する機能(検査モジュールsm1,sm2)を設けることで、ホスト間、仮想マシン間で連携を行うことなくセキュリティを向上させることができる。
(コンテナcrの再配置例)
ここで、運用サーバ102間でのコンテナcrの再配置例について説明する。
図19は、コンテナの再配置例を示す説明図である。図19において、3台の運用サーバ102として、運用サーバ102-1,102-2,102-3が示されている。コンテナ管理サーバ1900は、各運用サーバ102-1,102-2,102-3の負荷を監視し、負荷に応じてコンテナcrの再配置を行うコンピュータである。
再配置前の状態では、運用サーバ102-1のホストOS1901上でコンテナcr11が稼働している。仮想NIC1911は、コンテナcr11との接続用の仮想NICである。加工モジュール1912は、仮想NIC1911に対応する加工モジュールpmである。
また、運用サーバ102-2のホストOS1902上でコンテナcr21,cr22が稼働している。仮想NIC1921は、コンテナcr21との接続用の仮想NICである。仮想NIC1922は、コンテナcr22との接続用の仮想NICである。加工モジュール1923は、仮想NIC1921に対応する加工モジュールpmである。加工モジュール1924は、仮想NIC1922に対応する加工モジュールpmである。
再配置前の状態では、運用サーバ102-3のホストOS1903上では、いずれのコンテナcrも実行されていない。このため、運用サーバ102-1~102-3のうち、運用サーバ102-2が高負荷状態となり、運用サーバ102-3が低負荷状態となっているとする。
このため、コンテナ管理サーバ1900により、運用サーバ102-2上で実行されていたコンテナcr22が、運用サーバ102-3のホストOS1903上に移動されたとする。ホストOS1903の仮想NIC1931は、コンテナcr22との接続用の仮想NICである。
この場合、運用サーバ102-2のホストOS1902上に加工モジュール1924が残ってしまう。一方、運用サーバ102-3のホストOS1903上には、仮想NIC1931に対応する加工モジュールpmが存在しないことになる。
以下、図20~図23を用いて、運用サーバ102間でのコンテナcrの再配置などに応じて、自動で加工モジュールpmのメンテナンスを行う機能について説明する。
図20~図23は、実施の形態2にかかるカーネル制御部kcの動作例を示す説明図である。図20において、ホストOS2000上のコンテナcr100の変更依頼モジュールrmは、カーネル制御部kcに対して、設定変更依頼パケットPを送信する。具体的には、例えば、変更依頼モジュールrmは、一定時間ごとに、カーネル制御部kcに対して、設定変更依頼パケットPを定期的に送信する。
一定時間は、任意に設定可能であり、例えば、30秒程度の時間に設定される。すなわち、変更依頼モジュールrmは、カーネル設定を変更しない場合であっても、カーネル制御部kcに対して、設定変更依頼パケットPを定期的に送信する。なお、カーネル設定を変更しない場合、設定変更依頼パケットPのペイロードには、現在のカーネル設定が依頼内容として記録される。
変更依頼モジュールrmから送信された設定変更依頼パケットPは、コンテナ用仮想NIC2001、コンテナ・ホスト間接続用仮想NIC2002を経由して、加工モジュールpm100に受信される。加工モジュールpm100は、設定変更依頼パケットPを受信すると、コンテナ・ホスト間接続用仮想NIC2002のIDを、設定変更依頼パケットPのヘッダに書き込んで転送する。
カーネル制御部kcは、設定変更依頼パケットPを受信すると、図24に示すような依頼管理テーブル2400に、依頼元IDおよび依頼時刻を記録する。ここで、依頼管理テーブル2400の記憶内容について説明する。
図24は、依頼管理テーブル2400の記憶内容の一例を示す説明図である。図24において、依頼管理テーブル2400は、依頼元IDおよび依頼時刻のフィールドを有し、各フィールドに情報を設定することで、依頼管理情報(例えば、依頼管理情報2400-1)をレコードとして記憶する。
ここで、依頼元IDは、カーネルの設定変更の依頼元(設定変更依頼パケットの送信元)を一意に識別する識別子である。依頼元IDとしては、例えば、設定変更依頼パケットの送信元アドレスなどの依頼元のコンテナcrを識別する識別子を用いることにしてもよい。依頼時刻は、カーネルの設定変更を依頼された日時を示す。
例えば、依頼管理情報2400-1は、依頼元ID「cr100」の依頼時刻「2019/12/20 10:00:00」を示す。ここでは、依頼元ID「cr100」は、コンテナcr100を識別する情報であるとする。
図20の説明に戻り、また、カーネル制御部kcは、設定変更依頼パケットPを受信すると、設定変更依頼パケットPのヘッダから、コンテナ・ホスト間接続用仮想NIC2002のIDを取得する。カーネル制御部kcは、例えば、仮想NIC/OS対応表1710を参照して、取得したID(仮想NIC識別子)から、自OSの仮想NICであることを確認する。
また、カーネル制御部kcは、例えば、仮想NIC/OS対応表1710を参照して、取得したID(仮想NIC識別子)から、カーネルの制御対象モジュール2010を特定する。また、カーネル制御部kcは、設定変更依頼パケットPのペイロードから、カーネル設定の変更依頼内容を取得する。そして、カーネル制御部kcは、特定した変更依頼内容に基づいて、制御対象モジュール2010の設定を変更する。
図21において、カーネル制御部kcは、新たな設定変更依頼パケットPを受信すると、依頼管理テーブル2400を参照して、新たな設定変更依頼パケットPと同一の依頼元ID「cr100」に対応する依頼時刻を現在時刻に更新する。
図22において、ホストOS2000上のコンテナcr100が引っ越しなどにより停止している。カーネル制御部kcは、依頼管理テーブル2400を参照して、依頼元ID「cr100」に対応する依頼時刻から所定時間Tが経過したか否かを判断する。所定時間Tは、任意に設定可能であり、例えば、3分~5分程度の時間に設定される。ここで、依頼元ID「cr100」に対応する依頼時刻から所定時間Tが経過した場合、カーネル制御部kcは、依頼元ID「cr100」に対応する制御依頼の有効期限切れを検出する。
図23において、カーネル制御部kcは、依頼元ID「cr100」に対応する制御依頼の有効期限切れを検出した場合、依頼元ID「cr100」により識別されるコンテナcr100の加工モジュールpm100を削除する。また、カーネル制御部kcは、制御対象モジュール2010の設定を初期設定に変更する。
これにより、運用サーバ102間でのコンテナcrの再配置などに応じて、加工モジュールpmのメンテナンスを自動で行うことができる。
(情報処理システム1700の各種処理手順)
つぎに、実施の形態2にかかる情報処理システム1700の各種処理手順について説明する。まず、図25を用いて、検査モジュールsm(例えば、図18に示した検査モジュールsm1,sm2)の検査処理手順について説明する。ここでは、外部からの制御リクエストを装った不正なパケットを廃棄するための検査処理を例に挙げて説明する。
図25は、実施の形態2にかかる検査モジュールsmの検査処理手順の一例を示すフローチャートである。図25のフローチャートにおいて、まず、検査モジュールsmは、外部からのパケットを受信したか否かを判断する(ステップS2501)。ここで、検査モジュールsmは、パケットを受信するのを待つ(ステップS2501:No)。
そして、検査モジュールsmは、パケットを受信した場合(ステップS2501:Yes)、パケットの宛先アドレスが、カーネル制御部kcのアドレスであるか否かを判断する(ステップS2502)。ここで、カーネル制御部kcのアドレスではない場合(ステップS2502:No)、検査モジュールsmは、パケットを転送して(ステップS2503)、本フローチャートによる一連の処理を終了する。
一方、カーネル制御部kcのアドレスの場合(ステップS2502:Yes)、検査モジュールsmは、パケットを廃棄して(ステップS2504)、本フローチャートによる一連の処理を終了する。これにより、外部からの制御リクエストを装った不正なパケットを外部接続NICで廃棄することができる。
つぎに、図26を用いて、実施の形態2にかかる変更依頼モジュールrmの変更依頼処理手順について説明する。
図26は、実施の形態2にかかる変更依頼モジュールrmの変更依頼処理手順の一例を示すフローチャートである。図26のフローチャートにおいて、まず、変更依頼モジュールrmは、カーネル制御部kcに対して、設定変更依頼パケットを送信する(ステップS2601)。
つぎに、変更依頼モジュールrmは、設定変更依頼パケットを送信してから一定時間が経過したか否かを判断する(ステップS2602)。ここで、変更依頼モジュールrmは、一定時間が経過するのを待つ(ステップS2602:No)。そして、変更依頼モジュールrmは、一定時間が経過した場合(ステップS2602:Yes)、ステップS2601に戻る。
これにより、コンテナcrの変更依頼モジュールrmからカーネル制御部kcに対して、設定変更依頼パケットPを定期的に送信することができる。
つぎに、図27および図28を用いて、実施の形態2にかかるカーネル制御部kcの設定変更処理手順について説明する。まず、図27を用いて、カーネル制御部kcの第1の設定変更処理手順について説明する。
図27は、実施の形態2にかかるカーネル制御部kcの第1の設定変更処理手順の一例を示すフローチャートである。図27のフローチャートにおいて、まず、カーネル制御部kcは、設定変更依頼パケットを受信したか否かを判断する(ステップS2701)。ここで、カーネル制御部kcは、設定変更依頼パケットを受信するのを待つ(ステップS2701:No)。
そして、カーネル制御部kcは、設定変更依頼パケットを受信した場合(ステップS2701:Yes)、受信した設定変更依頼パケットのオプションヘッダから、仮想NICのIDを取得する(ステップS2702)。つぎに、カーネル制御部kcは、受信した設定変更依頼パケットのペイロードから、カーネル設定の変更依頼内容を特定する(ステップS2703)。
そして、カーネル制御部kcは、仮想NIC/OS対応表1710などを参照して、取得した仮想NICのIDから、カーネルの制御対象モジュールを特定する(ステップS2704)。つぎに、カーネル制御部kcは、依頼管理テーブル2400を参照して、依頼元に対応する依頼管理情報があるか否かを判断する(ステップS2705)。依頼元は、設定変更依頼パケットの送信元である。
ここで、依頼元に対応する依頼管理情報がない場合(ステップS2705:No)、カーネル制御部kcは、依頼元に対応する依頼管理情報を新規登録して(ステップS2706)、ステップS2709に移行する。依頼管理情報には、依頼元の依頼元IDと、依頼時刻(現在時刻)とが含まれる。
一方、依頼元に対応する依頼管理情報がある場合(ステップS2705:Yes)、カーネル制御部kcは、依頼管理テーブル2400内の依頼元に対応する依頼管理情報の依頼時刻を現在時刻に更新する(ステップS2707)。そして、カーネル制御部kcは、変更依頼内容に変更があるか否かを判断する(ステップS2708)。
なお、変更の有無を判断するにあたり、カーネル制御部kcは、例えば、今回の変更依頼内容と、現在のカーネル設定内容と比較して判断してもよい。また、前回の変更依頼内容が記録されている場合には、カーネル制御部kcは、今回の変更依頼内容と、前回の変更依頼内容とを比較して、変更の有無を判断することにしてもよい。
ここで、変更依頼内容に変更がない場合(ステップS2708:No)、カーネル制御部kcは、本フローチャートによる一連の処理を終了する。一方、変更依頼内容に変更がある場合(ステップS2708:Yes)、カーネル制御部kcは、特定したカーネル設定の変更依頼内容に基づいて、特定した制御対象モジュールの設定を変更して(ステップS2709)、本フローチャートによる一連の処理を終了する。
これにより、カーネルの設定変更依頼を受け付けた際に、仮想NICのIDから制御対象モジュールを識別して、カーネル設定を変更することができる。
つぎに、図28を用いて、カーネル制御部kcの第2の設定変更処理手順について説明する。第2の設定変更処理は、例えば、30秒程度の一定時間ごとに実行される。
図28は、実施の形態2にかかるカーネル制御部kcの第2の設定変更処理手順の一例を示すフローチャートである。図28のフローチャートにおいて、まず、カーネル制御部kcは、依頼管理テーブル2400から選択されていない未選択の依頼管理情報を選択する(ステップS2801)。
つぎに、カーネル制御部kcは、選択した依頼管理情報の依頼時刻と現在時刻との差分Δtを算出する(ステップS2802)。そして、カーネル制御部kcは、算出した差分Δtが所定時間Tより大きいか否かを判断する(ステップS2803)。ここで、差分Δtが所定時間T以下の場合(ステップS2803:No)、カーネル制御部kcは、ステップS2807に移行する。
一方、差分Δtが所定時間Tより大きい場合(ステップS2803:Yes)、カーネル制御部kcは、選択した依頼管理情報の依頼元IDから特定される制御対象モジュールのカーネル設定をデフォルトに戻す(ステップS2804)。制御対象モジュールは、依頼元のコンテナcrに割り当てられているモジュールである。
つぎに、カーネル制御部kcは、選択した依頼管理情報の依頼元IDから特定されるコンテナcrに対応する加工モジュールpmを削除する(ステップS2805)。そして、カーネル制御部kcは、選択した依頼管理情報を依頼管理テーブル2400から削除する(ステップS2806)。
つぎに、カーネル制御部kcは、依頼管理テーブル2400から選択されていない未選択の依頼管理情報があるか否かを判断する(ステップS2807)。ここで、未選択の依頼管理情報がある場合(ステップS2807:Yes)、カーネル制御部kcは、ステップS2801に戻る。
一方、未選択の依頼管理情報がない場合(ステップS2807:No)、カーネル制御部kcは、本フローチャートによる一連の処理を終了する。これにより、コンテナcrの引っ越しなどに応じて、加工モジュールpmのメンテナンスを自動で行うことができる。
以上説明したように、実施の形態2にかかる情報処理システム1700によれば、各カーネル制御部kcにおいて自OSについての仮想NICのID管理だけを行えばよく、各OSの仮想NICのIDの整合性をOS間で取る手間を省略することができる。
また、情報処理システム1700によれば、各OS(ホストOS、ゲストOS)の外部接続NICに対応する検査モジュールsmにおいて、制御リクエストを装った不正なパケットを廃棄することができる。
また、情報処理システム1700によれば、運用サーバ102間でのコンテナcrの再配置などに応じて、加工モジュールpmのメンテナンスを自動で行うことができる。
なお、実施の形態1,2で説明した設定変更方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設定変更プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本設定変更プログラムは、インターネット等のネットワークを介して配布してもよい。
また、実施の形態1,2で説明したカーネル制御部kcは、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)いずれかのOSで実行されているコンテナ上で動作するソフトウェアから、カーネルの設定変更依頼パケットを受信し、
受信した前記設定変更依頼パケットから、前記設定変更依頼パケットを受信した通信モジュールの識別情報を取得し、
OSの識別情報と前記OSの通信モジュールの識別情報との対応関係を示す情報を記憶する記憶部を参照して、取得した前記通信モジュールの識別情報に基づいて、前記コンテナが動作するOSを特定する、
処理をコンピュータが実行することを特徴とする設定変更方法。
(付記2)前記設定変更依頼パケットから特定される変更依頼内容に基づいて、特定した前記OSのカーネルの設定を変更する、
処理を前記コンピュータが実行することを特徴とする付記1に記載の設定変更方法。
(付記3)前記設定変更依頼パケットを受信した通信モジュールは、前記コンテナ用の通信モジュールと対向接続される、前記コンテナと前記いずれかのOSとの間の接続用の通信モジュールである、ことを特徴とする付記1または2に記載の設定変更方法。
(付記4)前記設定変更依頼パケットを受信した通信モジュールの識別情報は、前記設定変更依頼パケットのオプションヘッダに書き込まれる、ことを特徴とする付記1~3のいずれか一つに記載の設定変更方法。
(付記5)前記設定変更依頼パケットの宛先アドレスには、設定変更依頼用のマルチキャストアドレスが設定される、ことを特徴とする付記1~4のいずれか一つに記載の設定変更方法。
(付記6)前記設定変更依頼パケットを受信した通信モジュールの識別情報は、前記接続用の通信モジュールに対応して設けられる加工モジュールによって、前記設定変更依頼パケットのオプションヘッダに書き込まれる、ことを特徴とする付記3に記載の設定変更方法。
(付記7)前記設定変更依頼パケットの宛先アドレスは、当該宛先アドレスにカーネル制御用の代表アドレスが設定されている場合、前記加工モジュールによって、前記加工モジュールに対応するカーネル制御用の特定アドレスに書き換えられる、ことを特徴とする付記6に記載の設定変更方法。
(付記8)前記コンピュータは、OSごとに配置され、
自OSで実行されているコンテナ上で動作するソフトウェアから、カーネルの設定変更依頼パケットを受信し、
受信した前記設定変更依頼パケットから、前記設定変更依頼パケットを受信した通信モジュールの識別情報を取得し、
自OSの識別情報と前記自OSの通信モジュールの識別情報との対応関係を示す情報を記憶する記憶部を参照して、取得した前記通信モジュールの識別情報に基づいて、自OSのカーネルの制御対象モジュールを特定する、
処理を前記コンピュータが実行することを特徴とする付記6に記載の設定変更方法。
(付記9)前記設定変更依頼パケットから特定される変更依頼内容に基づいて、特定した前記制御対象モジュールの設定を変更する、
処理を前記コンピュータが実行することを特徴とする付記8に記載の設定変更方法。
(付記10)前記設定変更依頼パケットは、前記ソフトウェアから定期的に送信され、
前記コンピュータが、
前記設定変更依頼パケットを直前に受信してからの経過時間が所定時間を超えた場合、前記変更依頼内容に基づき変更された前記制御対象モジュールの設定をデフォルトに戻す、
処理を実行することを特徴とする付記9に記載の設定変更方法。
(付記11)前記設定変更依頼パケットを直前に受信してからの経過時間が所定時間を超えた場合、前記加工モジュールを削除する、ことを特徴とする付記10に記載の設定変更方法。
(付記12)前記通信モジュールは、仮想NICである、ことを特徴とする付記1~11のいずれか一つに記載の設定変更方法。
(付記13)前記オプションヘッダは、レコードルートオプションヘッダ、または、タイムスタンプオプションヘッダである、ことを特徴とする付記4に記載の設定変更方法。
(付記14)前記オプションヘッダは、前記加工モジュールによって前記設定変更依頼パケットに付与される、ことを特徴とする付記6に記載の設定変更方法。
(付記15)いずれかのOSで実行されているコンテナ上で動作するソフトウェアから、カーネルの設定変更依頼パケットを受信し、
受信した前記設定変更依頼パケットから、前記設定変更依頼パケットを受信した通信モジュールの識別情報を取得し、
OSの識別情報と前記OSの通信モジュールの識別情報との対応関係を示す情報を記憶する記憶部を参照して、取得した前記通信モジュールの識別情報に基づいて、前記コンテナが動作するOSを特定する、
処理をコンピュータに実行させることを特徴とする設定変更プログラム。
100,1700 情報処理システム
101 設定管理サーバ
102 運用サーバ
110 ネットワーク
200,1710 仮想NIC/OS対応表
400,1912,1923,1924,pm 加工モジュール
800 バス
801 CPU
802 メモリ
803 ディスクドライブ
804 ディスク
805 通信I/F
806 可搬型記録媒体I/F
807 可搬型記録媒体
901 通信部
902 特定部
903 変更部
904 出力部
910 記憶部
1900 コンテナ管理サーバ
2400 依頼管理テーブル
cr コンテナ

Claims (8)

  1. いずれかのOSで実行されているコンテナ上で動作するソフトウェアから、カーネルの設定変更依頼パケットを受信し、
    受信した前記設定変更依頼パケットから、前記設定変更依頼パケットを受信した通信モジュールの識別情報を取得し、
    OSの識別情報と前記OSの通信モジュールの識別情報との対応関係を示す情報を記憶する記憶部を参照して、取得した前記通信モジュールの識別情報に基づいて、前記コンテナが動作するOSを特定する、
    処理をコンピュータが実行することを特徴とする設定変更方法。
  2. 前記設定変更依頼パケットから特定される変更依頼内容に基づいて、特定した前記OSのカーネルの設定を変更する、
    処理を前記コンピュータが実行することを特徴とする請求項1に記載の設定変更方法。
  3. 前記設定変更依頼パケットを受信した通信モジュールは、前記コンテナ用の通信モジュールと対向接続される、前記コンテナと前記いずれかのOSとの間の接続用の通信モジュールである、ことを特徴とする請求項1または2に記載の設定変更方法。
  4. 前記設定変更依頼パケットを受信した通信モジュールの識別情報は、前記設定変更依頼パケットのオプションヘッダに書き込まれる、ことを特徴とする請求項1~3のいずれか一つに記載の設定変更方法。
  5. 前記設定変更依頼パケットの宛先アドレスには、設定変更依頼用のマルチキャストアドレスが設定される、ことを特徴とする請求項1~4のいずれか一つに記載の設定変更方法。
  6. 前記設定変更依頼パケットを受信した通信モジュールの識別情報は、前記接続用の通信モジュールに対応して設けられる加工モジュールによって、前記設定変更依頼パケットのオプションヘッダに書き込まれる、ことを特徴とする請求項3に記載の設定変更方法。
  7. 前記コンピュータは、OSごとに配置され、
    自OSで実行されているコンテナ上で動作するソフトウェアから、カーネルの設定変更依頼パケットを受信し、
    受信した前記設定変更依頼パケットから、前記設定変更依頼パケットを受信した通信モジュールの識別情報を取得し、
    自OSの識別情報と前記自OSの通信モジュールの識別情報との対応関係を示す情報を記憶する記憶部を参照して、取得した前記通信モジュールの識別情報に基づいて、自OSのカーネルの制御対象モジュールを特定する、
    処理を前記コンピュータが実行することを特徴とする請求項6に記載の設定変更方法。
  8. いずれかのOSで実行されているコンテナ上で動作するソフトウェアから、カーネルの設定変更依頼パケットを受信し、
    受信した前記設定変更依頼パケットから、前記設定変更依頼パケットを受信した通信モジュールの識別情報を取得し、
    OSの識別情報と前記OSの通信モジュールの識別情報との対応関係を示す情報を記憶する記憶部を参照して、取得した前記通信モジュールの識別情報に基づいて、前記コンテナが動作するOSを特定する、
    処理をコンピュータに実行させることを特徴とする設定変更プログラム。
JP2020003666A 2020-01-14 2020-01-14 設定変更方法および設定変更プログラム Active JP7338481B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020003666A JP7338481B2 (ja) 2020-01-14 2020-01-14 設定変更方法および設定変更プログラム
EP20208046.1A EP3851988B1 (en) 2020-01-14 2020-11-17 Setting change method and setting change program
US17/103,745 US11722368B2 (en) 2020-01-14 2020-11-24 Setting change method and recording medium recording setting change program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020003666A JP7338481B2 (ja) 2020-01-14 2020-01-14 設定変更方法および設定変更プログラム

Publications (2)

Publication Number Publication Date
JP2021111197A JP2021111197A (ja) 2021-08-02
JP7338481B2 true JP7338481B2 (ja) 2023-09-05

Family

ID=73455595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020003666A Active JP7338481B2 (ja) 2020-01-14 2020-01-14 設定変更方法および設定変更プログラム

Country Status (3)

Country Link
US (1) US11722368B2 (ja)
EP (1) EP3851988B1 (ja)
JP (1) JP7338481B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100306358A1 (en) 2009-05-29 2010-12-02 Sun Microsystems, Inc. Handling of multiple mac unicast addresses with virtual machines
US20180046457A1 (en) 2017-10-26 2018-02-15 Iomaxis, Llc Method and system for enhancing application container and host operating system security in a multi-tenant computing environment
US20180357068A1 (en) 2016-06-13 2018-12-13 Dynatrace Llc Method And System For Automated Agent Injection In Container Environments

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4622835B2 (ja) * 2005-12-07 2011-02-02 株式会社日立製作所 仮想計算機システム及びそのネットワーク通信方法
US8099615B2 (en) * 2008-06-30 2012-01-17 Oracle America, Inc. Method and system for power management in a virtual machine environment without disrupting network connectivity
JP5476261B2 (ja) 2010-09-14 2014-04-23 株式会社日立製作所 マルチテナント型情報処理システム、管理サーバ及び構成管理方法
JP5888331B2 (ja) * 2010-12-28 2016-03-22 日本電気株式会社 ネットワーク仮想化システム、物理ノード及び仮想マシンにおける仮想インタフェース識別方法
JP6394455B2 (ja) * 2015-03-24 2018-09-26 富士通株式会社 情報処理システム、管理装置およびプログラム
US9870248B2 (en) * 2015-08-13 2018-01-16 Red Hat Israel, Ltd. Page table based dirty page tracking
US10063469B2 (en) * 2015-12-16 2018-08-28 Nicira, Inc. Forwarding element implementation for containers
JP6487359B2 (ja) 2016-03-16 2019-03-20 Kddi株式会社 ネットワークサービス評価システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100306358A1 (en) 2009-05-29 2010-12-02 Sun Microsystems, Inc. Handling of multiple mac unicast addresses with virtual machines
US20180357068A1 (en) 2016-06-13 2018-12-13 Dynatrace Llc Method And System For Automated Agent Injection In Container Environments
US20180046457A1 (en) 2017-10-26 2018-02-15 Iomaxis, Llc Method and system for enhancing application container and host operating system security in a multi-tenant computing environment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
森側 真一,入門者歓迎、中級者もスキルアップ! Linux超マスター100ステップ,日経Linux,日本,日経BP社,2012年04月,第14巻 第4号,pp. 65-74
滝澤 隆史,意外と知らない すぐに役立つ サーバー・フリーソフト 第5回 仮想化ソフトウェア「OpenVZ」,日経Linux,日本,日経BP社,2009年02月,第11巻 第2号,pp. 140-147

Also Published As

Publication number Publication date
JP2021111197A (ja) 2021-08-02
EP3851988B1 (en) 2024-04-10
US20210218627A1 (en) 2021-07-15
US11722368B2 (en) 2023-08-08
EP3851988A1 (en) 2021-07-21

Similar Documents

Publication Publication Date Title
JP6974218B2 (ja) ストレージシステム及びその動作方法
US10671289B2 (en) Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
CN110865867B (zh) 应用拓扑关系发现的方法、装置和系统
US9542404B2 (en) Subpartitioning of a namespace region
US9110694B2 (en) Data flow affinity for heterogenous virtual machines
US20150234846A1 (en) Partitioning file system namespace
US20210250223A1 (en) Storage System for Network Information
CN111837358B (zh) 网络中时间同步的方法及系统
CN112583618B (zh) 为业务提供网络服务的方法、装置和计算设备
CN110798541B (zh) 接口共享、报文转发方法、装置、电子设备及存储介质
CN109857545B (zh) 一种数据传输方法及装置
JP5457916B2 (ja) メモリ共有装置
US9858096B2 (en) Communication device migration method of extension function and communication system
CN111327651A (zh) 资源下载方法、装置、边缘节点及存储介质
JP7338481B2 (ja) 設定変更方法および設定変更プログラム
US20120265860A1 (en) Sharing A Hosted Device In A Computer Network
CN112751717B (zh) 一种业务流量的管理系统以及方法
CN111245698B (zh) 用于操作网络装置的方法和设备
WO2024003962A1 (ja) コンテナ移行装置、コンテナ移行方法およびコンテナ移行プログラム
Mullender Predictable cloud computing
CN112631727B (zh) 一种容器组pod的监控方法及装置
US20190286348A1 (en) Storage device, control method, and control program
US10630762B1 (en) Multicast network emulation
US20210036890A1 (en) Allocation of tokens for network packets based on application type
CN116401227A (zh) 一种集群配置方法、装置、设备及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220908

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230807

R150 Certificate of patent or registration of utility model

Ref document number: 7338481

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150