OSレベルの仮想化()とは、オペレーティングシステム(OS)の枠組みで、コンテナ(LXC、Solaris containers、Docker、Podman)、zones(Solaris containers)、virtual private servers(OpenVZ)、パーティション、仮想環境(VEs)、仮想カーネル(DragonFly BSD)、jails(FreeBSD jailまたはchroot jail)と呼ばれる、複数の分離したユーザー空間インスタンスをカーネルによって割り当てる。このようなインスタンスはその中で実行されているプログラムからの視点では実際のコンピュータのように見えることがある。通常のOS上で動作するコンピュータプログラムは、そのコンピュータのすべての資源(接続されているデバイス、ファイルやフォルダ、ネットワーク共有、CPU性能、定量化できるハードウェア能力)を見ることができる。しかし、コンテナ内で動作するプログラムは、コンテナの内部とコンテナに割り当てられたデバイスしか見ることができない。

Unix系OSではこの機能は現在実行中のプロセスとその子プロセスの見かけ上のルートフォルダを変更する、標準的なchrootメカニズムの高度な実装と見なすことができる。カーネルはしばしばアイソレーションメカニズムに加えて、あるコンテナの活動が他のコンテナに与える影響を制限するための資源管理機能を提供する。Linuxコンテナは、Linuxカーネルが提供する仮想化、アイソレーション、資源管理のメカニズム、特にと cgroupsをベースにしている。

コンテナという用語は、OSレベルの仮想化システムを指すのが一般的だが、マイクロソフトのHyper-Vコンテナのように、ホストOSとさまざまなレベルで協調して動作する完全な仮想マシン環境を指すのにも多義的に使用されることがある。

実装 機構 オペレーティング·システム ライセンス 以降またはその間に活発に開発された 特徴ファイル システムの分離書き込み時にコピーディスク クォータI/O レート制限メモリ制限CPU クォータネットワーク分離ネストされた仮想化パーティションのチェックポイントとライブ マイグレーションルート権限の分離chroot ほとんどのUNIX系OS オペレーティング システムによって異なる 1982 DockerLinux, FreeBSD, Windows x64 (Pro, Enterprise and Education) macOSアパッチ ライセンス 2.0 2013 Linux-VServer(security context) Linux, Windows Server 2016GNU GPLv2 2001 lmctfy Linux アパッチ ライセンス 2.0 20132015 LXC LinuxGNU GPLv2 2008 Singularity LinuxBSD ライセンス 2015Sylabs Brings Singularity Containers into Commercial HPC | TOP500 Supercomputer Sites www.top500.org. OpenVZLinuxGNU GPLv2 2005 VirtuozzoLinux, Windowsトライアルウェア 2000 Solaris Containers (Zones)illumos (OpenSolaris),SolarisCDDL、 独自 2004 (ZFS) Network Virtualization and Resource Control (Crossbow) FAQ FreeBSD jailFreeBSD, DragonFly BSDBSD ライセンス 2000 (ZFS) vkernelDragonFly BSDBSD ライセンス 2006 ? ? ? sysjailOpenBSD, NetBSDBSD ライセンス 2006–2009 WPARsAIX商用 のプロプライエタリ ソフトウェア 2007 iCore Virtual AccountsWindows XPフリーウェア 2008 Sandboxie Windows GNU GPLv3 2004 systemd-nspawn Linux GNU LGPLv2.1+ 2010 Turbo Windowsフリーミアム 2012 rkt Linux アパッチ ライセンス 2.0 2014–2018 上記以外のLinuxコンテナには以下のようなものがある。

LXD, Canonicalによって開発されたLXCの代替ラッパー。 PodmanRootless containers with Podman and fuse-overlayfs, CERN Workshop, 2019-06-04: Dockerのドロップイン代替品 Charliecloud: HPCシステムで使用されるコンテナツールの一式 Kata Containers MicroVMプラットフォームHome - katacontainers.io. Bottlerocketは、仮想マシンやベアメタルホスト上でコンテナを実行するためにAmazon Web Servicesが専用に開発したLinuxベースのオープンソースのオペレーティングシステムであるBottlerocket is a Linux-based operating system purpose-built to run containers。 Azure Linuxはマイクロソフトが開発したオープンソースのLinuxディストリビューションで、Fedora CoreOSに類似している。

関連項目 仮想化 コンテナオーケストレーション

Linuxのcgroups サンドボックス (ソフトウェア開発) Container Linux ハイパーバイザ ポータブルアプリケーションクリエイター Open Container Initiative 分離カーネル サーバーレス・コンピューティング Snapパッケージ管理システム ストレージハイパーバイザー 仮想専用サーバ 仮想リソースパーティショニング

脚注 注釈

出典