web-dev-qa-db-ja.com

Red Hat / CentOS EL6上のLinuxコンテナー(LXC)-lxc-createとlibvirt?

Red Hatの恵みの範囲内にとどまり、システムの寿命を計画するのは難しい作業です...

私は1年以上、 Linux Containers(LXC) の支持者です。私の最初のインストールは、 これこれ などのオンラインチュートリアルから収集した情報に基づいていました。これはlxc-createlxc-start|stopおよびlxc-destroyコマンドと既存の変更 OpenVZテンプレート

これはうまく機能し、本番環境で問題なく実行されています。ただし、追加のシステムをいくつか立ち上げ、EL6のコンテナーに関するRed Hatの現在のドキュメントを確認することにしました。これに対する彼らの公式のスタンスを見て驚いた。

RHEL 6はLinuxコンテナーを使用するために必要なLXCツールを提供していますか? では、Red HatはLXCをTechnology Previewおよび- コンテナーの作成と管理にlibvirtを使用することをお勧めします

しかし、Oracle まったく異なるコンテナ化手法を提唱 は、Unbreakable Linuxで使用されています。

Libvirtメソッドにはいくつかの機能が欠けているようですが、lxc- *コマンドを使用した私の最初のアプローチは少し手動のプロセスでした... EL6でコンテナーを管理するための適切な方法または「受け入れられた」手段を明確に理解できません。

  • 今日のLXCおよびRHELのようなシステムに関する従来の知識は何ですか?
  • あなたはあなたの組織にどのように実装していますか?
  • あるアプローチと他のアプローチに利点はありますか?
  • これらは共存できますか?
13
ewwhite

今日のLXCおよびRHELのようなシステムに関する従来の知識は何ですか?

個人的には、現在の設定がやや不足していると思います。 LXCの方が最前線にあるようです-確かに維持されています。

それらをどのように実装していますか?

それを仮想化オプションとして提供するという点では、私は違います。現在の技術的なセットアップが不足していると思います。

  • ユーザー名の名前空間はありません。
  • 特定のマウントポイントは名前空間に対応していません(cgroups、selinux)
  • / procの値は、ネームスペースのリソースパーティションを考慮しない、誤解を招くシステムグローバルです。
  • 監査を中断します。

ただし、アプリケーションレベルでの封じ込めには本当に素晴らしいツールです。名前空間とcgroupsを直接使用して、ネットワークとIPC特定のユーザーが実行するWebアプリケーションのリソースを含めます。それを制御するための独自のインターフェイスを提供します。RHEL7では、この機能を_libvirt-lxc_は、libvirtの新しいリビジョンとして、ユーザーACLの概念をサポートしています。

完全に初期化されたシステムの観点からの仮想化については、RHEL7で提供されるものを待ち望んでいますが、正直なところ、RHEL7の新しいマイナーリリースを実行して初めて、十分な解決策が見つかるかもしれません。テクノロジーのプレビュー状態のみ。

_systemd-nspawn_に注意してください何かが今後18か月以内に教えてくれるか、systemdの作成者が現時点では安全でないことを明確にしている場合、Linuxに完全に含まれる仮想化を実行するための最良のツールになるでしょう! libvirtが最終的に_libvirt-lxc_をドロップし、_systemd-nspawn_のラッパーを提供し、systemdスライスが定義されている場合、私は驚かないでしょう。

また、cgroupをファイルシステムインターフェイスではなくカーネルプログラマーインターフェイスとして再実装すること(おそらくnetlinkか何かを使用して、チェックしていない)に関して、過去6か月にわたって多くの話があったため、systemdは非常に熱くなっているはずです。すぐにそれを正しくすることの最後に。

あるアプローチと他のアプローチに利点はありますか?

LXCオプション(libvirt-lxcではない)がより適切に維持されていると思います。 _libvirt-lxc_ソースコードを読んだら、慌てているように感じます。従来のLXCは確かに新しい機能を備えていますが、十分にテストされています。どちらも、実行されているinitシステムによるある程度の互換性を必要としますが、特にディストリビューションが動作することに関して、LXCは_libvirt-lxc_オプションよりも「ターンキー」が少し多いと思います。

これらは共存できますか?

もちろん、すべての意図と目的のために、両方が同じことを行っていることを覚えておいてください。名前空間、cgroup、マウントポイントの整理。すべてのプリミティブは、カーネル自体によって処理されます。両方のlxc実装は、利用可能なカーネルオプションとのインターフェースのメカニズムを提供するだけです。

7
Matthew Ife

Red Hatはhugeコンテナー化プッシュを作成しています。彼らはその周りにまったく新しい製品 Red Hat Enterprise Linux Atomic Host を構築しています。

それほど過激でないアプローチについては、RHEL7ベータ版をご覧ください Resource Management and Linux Containers Guide ; libvirt-lxcをプッシュし、lxcツールについて言及していないことに気付くでしょう。

9
sciurus

Lxc- *実行可能ファイルは [〜#〜] epel [〜#〜]lxcパッケージにパッケージ化されています。ただし、これは古い「長期サポート」リリースです。 lxc-lsに "-f"オプションさえありません。 LXCホストにUbuntuをインストールするだけです。

LXCを管理するRHELの方法はlibvirt-lxcを経由しているようですが、それは どうやら非推奨 です。

RedhatがKVMおよびdockerに注力している間、Ubuntuは新しいlxc/lxd開発の多くをサポートしています。

1
Lester Cheung