3

比較的少数の物理ホストで比較的多数の仮想マシンを実行する必要があります。各仮想マシンは大したことはしません。それぞれが実質的に 1 つの基本的なネットワーク サービスを実行するだけで済みます。SMTP などを考えてみてください。さらに、それぞれの負荷は非常に軽くなります。

残念ながら、その数は 5 つの物理ホスト上の 100 台の仮想マシンのようなものです。各ホストは十分にまともです.2GBのRAMと1TBのディスクを備えたコア2. ただし、ubuntu の vmware イメージを取得してそのマシンに投入しても、100 近くのインスタンスが得られず、20 近くになることはわかっています。

では、ホストに対するイメージのこの比率に希望はありますか? また、この目的に最適な仮想マシンの実装はどれですか?つまり、全体的にリソースを効率的に使用できますか? ここでは主に vmware を使用していますが、Xen などに切り替えることで得られるパフォーマンス上の大きな利点がある場合は、それを検討すると確信しています。

あなたの洞察を事前にありがとう:)

注: 最終的に OpenVZ を使用しましたが、かなりうまく機能しました。ubuntu テンプレートのデフォルト パラメータでは、マシンごとに約 40 個のインスタンスを実行できます。

4

17 に答える 17

7

それらを適合させるための3つの主要な面があります。

  1. より低いオーバーヘッド。該当する場合、OpenVZ、Vserver、chroot が理想的です。各インスタンスを独自のカーネルを持つ実際の VM にする必要がある場合は、VMWare の代わりに KVM/Xen を試してください。成熟度は低いかもしれませんが、柔軟性が大幅に向上します。

  2. 小さなゲスト。Ubuntu JeOS を試すか、busybox で独自のロールを作成してください

  3. 可能な限りゲスト間で共有します。単一の R/O イメージをすべての OS と共有してみて、/var、/home、/etc などに各ゲスト用の小さな R/W イメージをマウントします。

于 2008-09-30T18:51:32.113 に答える
5

それにはいくつかの問題があります...

  1. Vmware サーバーの場合、テスト専用でない限り、サーバー ハードウェアが本当に必要です。
  2. Xen Server、VMware ESX や ESXi (無料)、またはベアレベルではないがパフォーマンスが近い Hyper-V などのベアレベルの仮想化ソリューションを使用してください。
  3. 20-1 の場合は、より多くの RAM が必要になります。数学は足しません。少なくとも 256 必要な完全に削除された Linux でない限り、最小限の機能マシンには 512 が必要です。20x256= 5GB + 5-10% のオーバーヘッド。それらの仕様では実際には起こりません。
  4. 20-1 の場合は、より多くのプロセッサが必要になります。各マシンには vCPU があります。コア 2 での共有は、プロセッサあたり 10-1 を意味します。良くない。デュアル クアッド コア Dell 1950、16 GB RAM でほぼ 20 を実行します。よく働く。
  5. 何を選択しても、メモリをオーバーサブスクライブすることになります。どちらがあなたを許しているか正確にはわかりません。VMware はそうしますが、警告が表示されます。
  6. 聞いたことはありますが、XenServer がパフォーマンス上の利点を提供するという証拠はありませんが、10 ~ 20% を超えると主張する人はいません。

幸運を

于 2008-09-30T18:43:08.140 に答える
3

もう 1 つの可能性は、非常に少量のメモリで実行できる軽量の Linux ディストリビューションを使用することです。DamnSmallLinux や DDWRT のバリエーションのようなもの。わずか 16MB のメモリで実行できるため、1 台のマシンで 20 以上を実行できます。

于 2008-10-02T06:41:57.297 に答える
3

100 個のフル機能のオペレーティング システムが本当に必要ですか?

Webサーバーがすでに使用しているアプローチをとってみませんか? 仮想 Web サーバー/ホストを意味します。

たとえば、単一の構成ファイルを使用して多数の仮想サーバーをホストする単一の物理サーバーにインストールされた Apache HTTPD を取り上げます。さらに、異なる IP アドレスを持つ DNS 構成および/または多数の仮想ネットワーク インターフェイス (eth0:0、eth0:1、...、eth0:n) が必要になります。

世界に公開されているいくつかのサービスのみが本当に必要で、負荷が高くない場合、これは機能するはずです。

于 2008-10-01T20:12:34.813 に答える
2

フル デスクトップと 9 台の仮想マシンを実行する 1 台のクアッドコア マシンがあります。これはテスト マシンであるため、あらゆる種類のゲストを使用します。RAM の使用に最適なのは、debian-kfreebsd と小さなコアの Linux のようです。小さなコアの Linux は何もせずに 10M の RAM を使用します。いくつかのサービスを追加すると、32M になる可能性があるため、1GB の RAM 内で 32 個の VM を実行できます。あなたは2GBを持っているので、ハイパーバイザーとオーバーヘッドを含めて48台のマシンを実行できるとしましょう(私はkvmを使用しています)ので、5台のマシンで最大240台のマシンになります:D

すぐに試してみようと思います:D

ところで。仮想マシンの負荷が軽いとあなたは言ったので、cpuload や diskload は考慮しませんでした。これらの数値の冗長性は正確に 0 です。

于 2010-06-25T21:39:03.613 に答える
2

VMware ESX/ESXi はどちらも優れたメモリ プーリング機能を備えているため、実行するのが最適です。基本的に同一のメモリのページを取り、複数のゲスト間でそれらを使用するため、多数の同一のゲストを実行している場合、ホストで他の VM よりも多くを取得できます。

このブログ エントリの「透過的なページ共有」について少し確認し、それについてのコメントもここで確認してください。

明らかに、ホストごとに 20 ゲストで、それぞれに 2Gb の RAM しかない状態でそれをプッシュしていますが、余分なサービスとアプリをすべて削除し、1 つのゲスト イメージを構築して、それぞれに専用アプリをインストールする前にクローンを作成すると、問題が解決する可能性があります。特に VMware リンクは 40 のゲストを実行している 4Gb ホストを示しています!

于 2008-09-30T19:26:14.620 に答える
1

ゲストを十分にスリム化できる場合は、おそらくそれを行うことができます.Xがない、最小限のサービスが開始されたなど.slackwareまたはubuntuサーバーを見てください。Xen は Web ホスティング会社の間で人気があるようですので、検討する価値があるかもしれません。

CPU 使用率はアプリによって異なりますが、さらに RAM を購入することをお勧めします。

于 2008-09-30T18:15:55.630 に答える
1

各ネットワーク サービス インスタンスを独自の仮想マシンに区分化する必要がある理由はありますか? ユーザーを相互に分離する必要はなく、プロセスとトラフィックを分離する必要がある場合は、5 つのサーバーをそのまま使用し、インスタンスごとに個別のプロセスを起動する方がよいでしょう。各インスタンスは、個別の仮想インターフェイスにバインドされます。

たとえば、仮想インターフェイスを構成して IP アドレスを割り当てます。作成するインスタンスの httpd.conf ファイルおよび/または sendmail.cf ファイルを作成します。構成ファイルで、デーモンを仮想インターフェース (およびその 1 つだけ) にバインドする必要があることを指定します。デーモンを起動します。

インスタンスごとに繰り返します。多くのプロセス (数千ではないにしても数百) が実行されますが、それらの合計は、数十の VM よりも少ないメモリを使用します。さらに、OS は未使用のものをディスクにスワップできます。

于 2008-10-01T20:50:41.257 に答える
0

これが可能かどうかはわかりませんが、chroot環境で各サービスを実行するのはどうですか?必要なライブラリファイルをハードリンクして各chrootファイルシステムを作成することで、ディスク容量を節約できる可能性があります。

于 2008-10-02T06:48:45.423 に答える
0

それがアプリケーション レベルで実行できるものである場合は、仮想化なしで行きます。異なるポート番号でアプリの複数のインスタンスを実行できます。IP エイリアスを使用すると、異なる IP であっても簡単に実行できます。そうすれば、各ボックスで 20 を超えるコピーを簡単に実行できます。ハードウェアの半分で何でもできるかもしれません。

仮想化はすべてのソリューションではありません。:)

私の2c。

于 2009-02-26T10:07:51.607 に答える
0

各サービスを独自の VM で実行する場合のもう 1 つの問題は、すべて独自の IP アドレスが必要になることです。100 個の IP は内部ネットワーク (172/8 または 10/8 セットアップなど) では問題にならないかもしれませんが、それらがクラス A の一部である場合 (多くのパブリックがあると仮定して)、不足するでしょう。速い。

そして、他の人が尋ねたように、なぜ各サービスが独自の VM である必要があるのでしょうか? それらの多くは、同じホスト上で簡単に実行できるはずです。

于 2008-10-03T19:16:04.827 に答える
0

計算すると、マシンごとに平均 100 MB の RAM が得られます。これは大したことではありません。VM のオーバーヘッドはかなり大きく、各インスタンスで完全な OS を実行する必要があります。

フットプリントが非常に小さい OS ( http://www.damnsmalllinux.org/ ?) を使用し、それをさらに削除するのに時間を費やすか、より大きなマシンを入手するかのどちらかです。

マシンがとても安いので、私は十分な RAM を搭載した 64 ビット OS にアップグレードする傾向があります。

于 2008-09-30T18:18:41.257 に答える
0

VMWare には、物理​​マシンのグループを「プール」できるクールなオプションがあり、VM の動作を中断することなく、使用率が最も低いハードウェアに仮想マシンを自動的に移動します。

むしろ広告リンク。

于 2008-09-30T18:21:38.457 に答える
0

VMware に制限されていますか? オペレーティング システム レベルの仮想化を検討したことがありますか? 各 VM が同じカーネルを実行できる場合、より少ないオーバーヘッドでより多くの VM を取得できます。

于 2008-09-30T18:24:39.543 に答える
0

いくつかの考え...

1-他の人が指摘したように、メモリ演算は機能しません。より多くのRAMが必要になります。

2- サービスによっては、事前構成された仮想マシンを見つけることができる場合があります。たとえば、Astaroには、無料のファイアウォール ソフトウェア用の VM セットアップがあります。また、適応できる非常に小さな Linux ディストリビューションを見つけることもできます。

3-何かが足りないかもしれませんが、Ubuntuはすでにかなり近づいているようです... 5台のマシンでマシンごとに20個のインスタンスが必要な100個のインスタンスを取得します。しかし、将来の成長の余地はあまりありません...

気をつけて、頑張ってください。

于 2008-09-30T18:33:12.983 に答える
-2

クラウドファウンドリー。回答を提出した可能性のある他の人と比較して、私は VM について何も知りませんが、ホスト、そのホスト上の VM、およびその VM 上の Cloud Foundry がある場合、ベースのセカンダリ VM を簡単に作成し、簡単に作成できることを理解しています。ハードウェアの使用量を低く抑えながら、そのセカンダリ VM セット内のすべてのサービスをレプリケートして構成します。それが確実に機能するかどうかはわかりませんが、私が理解していることから、それはより最小限のアプローチの1つであり、ホストマシンに損傷を与える可能性のあるリスクを減らす2つの船体のアプローチです.

于 2016-02-12T16:15:20.420 に答える