Help us understand the problem. What is going on with this article?

仮想ゲストOSにコンテナのLXDを選ぶ理由

More than 1 year has passed since last update.

どのようにサーバOS環境を作るかは、システム戦略で非常に重要です。
正しい選択をすることによって、システムの信頼性が高くなり、コストをかなり抑えることができます。
作業効率・スピードが全然違ってきます。

LXDとは

  • LXD(レックスディーまたはエルエックスディー)と読みます。
  • LXDはKVMやXenの代わりになるシステムコンテナです。
    • コンテナで有名なDockerは、1アプリケーションを起動させることを目的としたアプリケーションコンテナと呼ばれています。


  • 簡単にOSのコピーができます。
    • lxc copy 元コンテナ 新コンテナ #Macアドレスは自動で変わります。
  • コンテナをイメージ化できます。
    • lxc publish コンテナ名 --alias イメージ名
  • OS状態を残しておくスナップショットも簡単です。
    • スナップショットをイメージ化することで、OS停止なくイメージ化できます。
  • 別ホストに仮想ゲストOSを移動させるライブマイグレーションも可能です。
  • コンテナごとにCPU使用率、メモリー使用量、IO負荷制限ができます。

KVMやXenやVMwareのハイパーバイザーではなく、LXDコンテナの理由

  • LXDは起動が高速です。
  • LXDはスナップショットやクローンのバックアップが高速で実現できます。
  • ハイパーバイザーのようなオーバーヘッドがありません。
  • LXDは事前にリソースを割り当てておく必要がありません。★
    • LXDは、HDD50GB、CPU 4Core、メモリー4GB を割り当てようという設計不要です。
    • 開発からかなりのハイスペックを言われても、実際に使った分しか消費されません。
    • LXDは、使い過ぎたら困る場合に、リソース制限をするだけです。
  • CPUやメモリーやHDDの増減が、制限を変更するだけなのでOS停止は不要です。★
  • 高機能な有料版VMwareは、非常に高額です。LXDなら無料です。
  • LXDなら、CPUやメモリーやHDDのリソースを変更するために、OS停止が必要ということはないです。

Dockerコンテナではなく、LXDコンテナの理由

アプリケーションコンテナのDockerは、LXDの上で動かします。DockerとLXDは利用目的が違うと考えています。

  • Dockerと違い、LXDは、KVMやXenの代わりに使えます。
  • Dockerと違い、LXDは、アプリケーションの変更が不要です。
  • LXDと違い、ブリッジ接続が簡単にできます。
  • LXDなら、スナップショット、イメージ化、ライブマイグレーションができます。★
  • LXDと違い、ポート変換やiptablesは不要にできます。
  • Dockerのように、IPとポートの組み合わせでコンテナ間を接続するのは、リプレースとしては非常に難しいです。
    • 仮想ホストしかルーティングできなかったり、FWのグループという概念がなくなります。
  • LXDには、Dockerのように、1コンテナ1プロセスにするべきというベストプラクティスはありません。
  • LXDには、コンテナにデータは保存しないべきというベストプラクティスはありません。

LXCではなく、LXDを使う理由

  • LXCの機能強化版が、LXDです。
    • LXC + 現代的機能 = LXD
  • LXCでできることは、LXDでもできる。
  • LXDはライブマイグレーションができる
  • 複数ホストのコンテナを管理できる。
  • 今から新しくコンテナを導入するなら、LXD

ベアメタル(物理サーバ)ではなく、LXDコンテナの理由

  • LXDなら、サーバ構築依頼がきても、1ヶ月待ってくださいということがないです。★
    • LXDなら、今ある環境に作ることによって、すぐにサーバを引き渡せます。
  • OSが停止してしまう問題が起きてしまった時にもゲストOSを別のハードにもっていけますので、ハードが問題かソフトが問題かの切り分けができます。
  • LXDにすることによって、数十個の仮想ゲストコンテナを動かせます。
    • 圧倒的にコスト圧縮できます。
  • 1ホストで、1サーバ分のCPU、メモリーを使い切れるアプリケーションはありません。
    • LXDにすることによって、余っているリソースの有効活用ができます。
  • 物理サーバはかなりの場所をとりますが、LXDなら節約できます。
  • LXDなら、必要なディスクサイズ、CPU、メモリーを正確に算出する必要はありません。
    • 想像以上に使っても、使われなくても問題ありません。
  • LXDはリソースの設計ミスがありません。
    • リソースが余っていたら、もう1つ仮想ゲストを作ればいいだけです。
    • リソースがひっぱくしたら、別の仮想ホストに移動させればいいだけです。
  • LXDは起動が高速なので、何か問題が発生している際にも、プロセスを再起動する感覚で、OS再起動できます。★

AWSなどのクラウドではなく、オンプレのLXDコンテナを使う理由

  • ソフトだけでなくハードも含めて最適化ができる★
  • 優秀なエンジニアがいればクラウドよりすごいことがしやすい★
  • オンプレでLXDを使うことによって、クラウドよりかなり費用が抑えられます。
  • オンプレのLXDなら、要求に応じて、高可用性物理サーバを使えます。★
  • LXDなら、CPUやメモリーやHDDのリソースを変更するために、OS停止が必要ということはないです。
  • LXDは、ゲストOSが起動したまま、別のホストに移動させるライブマイグレーションができます。
    • OS停止しないで、ホストのメンテナンスが可能です。
  • LXDは、OS作るのが、数秒です。
  • LXDは、OS起動も一瞬です。
  • LXDは、スナップショット、イメージ化、コピーも数秒です。
  • LXDは、物理設計による高速化、高信頼性が可能です。
    • 例えば、お互いに通信が多いWebとAPは同じホストに配置する。
    • 例えば、2台構成のサーバは、1ホストが故障しても問題ないように、別のホストに配置する。

LXDを使うために注意すること

  • 仮想ホストは、Ubuntuにしましょう。CentOSやRHELでは動かないと考えた方がよいです。
    • Ubuntuの開発元のCanonicalがLXDを開発しているので、Ubuntuがもっともテストされている環境になります。
  • 仮想ゲストは、Ubuntu以外にも、日本でユーザの多いCentOSやOracle Linuxもあります。
  • 仮想ゲストにRHELはないです。CentOSを使いましょう。
  • 仮想ゲストにWindowsは使えないです。Windowsを使いたい場合は、同じホスト上にKVMで動かしましょう。
  • 1サーバに数十コンテナをのせるということは、サーバが故障した時の影響が大きいです。
    • しっかりコンテナの配置を考えましょう。
    • 要求に応じて、できる限り壊れにくいサーバ、ファームアップデートなどで停止が少ないサーバを選びましょう。
takaaki_kurihara
インフラエンジニア(サービスインフラ、社内インフラ)15年以上 / 自社のネット証券、ネット銀行、FX会社の開業時からの経験 / 仮想通貨取引所、証券取引所の経験 / 日本、UK、HK
https://portfolio.oreda.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした