LinuxコンテナをFreeBSDで動かす「Linux containers on FreeBSD」、containerd 1.7.0で正式サポート
今回は「LinuxコンテナをFreeBSDで動かす「Linux containers on FreeBSD」、containerd 1.7.0で正式サポート」についてご紹介します。
関連ワード (同氏、問題、実現等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
コンテナランタイムのもっとも代表的な実装としてCloud Native Computing Foundation(CNCF)が開発を主導するのが「containerd」です。
その最新版として3月11日付でリリースされた「containerd 1.7.0」に「Linux containers on FreeBSD」が正式な機能として組み込まれました。
Linux containers on FreeBSDは、LinuxコンテナをFreeBSD上で実行する際に、FreeBSDのファイルシステムの代わりLinuxファイルシステムにマウントする機能だと説明されています。
FreeBSD上でLinuxコンテナを実行可能に
FreeBSDには以前からシステムコールのリダイレクトなどによってLinuxをエミュレートすることでLinuxバイナリを実行できるLinux互換機能が実装されています。
また、Linuxファイルシステムとしてext2/ext3/ext4が搭載されています。
Linux互換機能により、FreeBSD上でLinuxバイナリを実行することは可能ですが、正常な動作にはLinuxファイルシステムへのアクセスが欠かせません。
「Linux containers on FreeBSD」機能は、このFreeBSDのコンテナ環境でLinuxバイナリを実行する場合に、FreeBSDのファイルシステムの代わりLinuxファイルシステムにマウントすることで、Linuxコンテナを問題なく実行できるようにするものです。
GitHub上でプルリクエストがマージされるまでのやりとりにおいて、レビュアーのsamuelkarp氏は、FreeBSDのコンテナ型仮想化機能であるFreeBSD jailを利用してコンテナ環境を実現する「runj」を用いて、FreeBSD上で「Linux containers on FreeBSD」機能の動作テストをし、成功したことを報告しています(「runj」も同氏が開発しているものです)。
FreeBSDはDockerが登場するずっと以前から、コンテナ型仮想化機能であるFreeBSD jailによる優れたコンピューティングリソースの分割機能を提供しています。そのため、ベアメタルサーバに複数ユーザーを収容するホスティングサービスなどで現在でも多く採用されています。
今後そうしたホスティングサービスのオプションなどで、「Linux containers on FreeBSD」機能を利用したLinux互換のコンテナサービスの提供などが登場してくることになるのでしょうか。