web-dev-qa-db-ja.com

Ubuntuで最初のサーバーを計画するKVM仮想マシン

デュアルxeonクアッドコア(つまり、合計8コア)をまとめています。12GBRAM Linuxサーバーでいくつかの古い小さなサーバーを置き換えます。仮想化を使用して、それについて学びたいと思います。古いサーバーを使用していた個人は分離しておく必要があります。

RAIDミラーに2台の120GBSSDドライブがあり、RAIDミラーに2台の2TB SATAIIドライブがあります。

ホストシステムとしてKVM、プライマリリソースを大量に消費するゲストVMとしてUbuntu10.04を使用するUbuntu10.04LTSを使用すると思います。追加の3つのゲストVMはおそらくDebianLennyであり、使用率が低く、優先度が低い。

次のリソース割り当て計画は理にかなっていますか、それとも経験豊富なユーザーには落とし穴がありますか?

  1. ホストシステム:SSDから24 GBを使用します。つまり、ファイルに12 GB +スワップに12GBを使用します。
  2. プライマリゲストVM:96 GB SSD + 1,900 GB SATAを使用(4CPU + 8 GB RAMを割り当て)
  3. VM DNSサーバー:8 GB SATAを使用(1CPU + 1GB RAMを割り当てる)
  4. VM Webサーバー:8 GB SATAを使用(1CPU + 1GB RAMを割り当てる)
  5. VMメールサーバー:8 GB SATAを使用(1CPU + 1GB RAMを割り当てる)
  6. 将来の使用のために予約済み:76GB SATA

特に、ホストシステムのファイルには12GBで十分ですか?

12GBのスワップで十分ですか?スワップスペースにSSDを使用するのは悪い考えですか?

プライマリゲストVMは最も使用されるサーバーであり、高速ディスクI/Oを必要とし、約30GBのMySQLデータベースを頻繁に再構築し、多くのファイルストレージスペースを必要とし、Apacheとメールサーバーを実行します。このサーバーのパフォーマンスが低い場合、このハードウェアの購入全体が無駄になります。

さまざまなゲストVMを配置する場所をホストシステムに最も簡単に伝えるために、ディスクをどのようにパーティション分割する必要がありますか?つまり、プライマリVMがコア/ OSファイルに高速のSSDドライブを利用し、ストレージにSATAドライブを使用し、重要度の低いVMだけを使用するようにしたいのです。 SATAドライブの一部であり、SSDから離れたままにします。

問題を発生させることなく、より多くのRAMまたはCPUをゲストVM(オーバーコミット)に割り当てることはできますか?それともそれだけの価値はありませんか?

提案をありがとう。

3
brianwc

私の設定はやや似ており、うまく機能します。 Virt-managerを使用すると、非常に簡単になります(ssh X転送でもうまく機能します)。いくつかのランダムな考え:

このシナリオでは、LVM + virtioを使用します(おそらく非常に大きなボリュームを除いて、virtioには「1TBの問題」があるようです)。 IOを集中的に使用するVMのボリュームを、SATARAIDの最速部分に配置できます。

スワップ:12GBがまったく必要ない理由を正確に理解していない限り。

小規模なシステムでは、データボリュームをシステムボリュームから分割することをお勧めします。システムファイルには8GBのうち4GBを使用し、「おっと」の瞬間には4GBしか残さないでしょう。ルートボリュームがいっぱいでない場合、システムの動作は大幅に向上します。

どんなレイドを使っていますか? DM-softraidまたはバッテリーでバックアップされたハードウェアコントローラー?

システムファイルをSSDに置くと、起動時間が長くなりますが、その後はそれほど長くはありません。 SSDにデータファイルを置く(特に集中的なものを探す)ことは、非常に長い間あなたに強い喜びを与えるでしょう。

SSDを完全にいっぱいにしない場合でも、Afaikにはまだある程度のメリットがあります。LVMを使用すると、20%を未使用(書き込みなし)のままにしておくのは簡単です。ボリュームを作成するだけです。

他のハードウェアの再構築と同様に、ECCメモリを使用することをお勧めします。

3
Joris

「多数の個別の稼働中のサーバーマシンを1つの大規模な単一障害点サーバーに集中させることを計画しているようです。」私はあなたが間違っていると思います。 KVMは、フェイルオーバーソリューションに非常に適しています。XML定義ファイルを別のサーバーに持ち込み、クラスター内のすべてのサーバーに共有ストレージまたは同一のネットワークカード構成を使用するだけです。テスト済みで動作しました。 LACPとリンク集約について覚えておいてください-これも機能します:)

3
TooMeeK

システムには12GBで十分です。

スワップには12GBで十分です。スワップは通常あまり使用されないので、スワップのアクセス速度についてはあまり心配しません。使用可能なメモリがあれば、大きなスワッピングは見られないはずです。大きな一時スペースが必要な場合は、より大きなスワップサイズを使用し、/ tmpにtmpfsを使用することをお勧めします。

仮想システムのファイルシステムは、ファイルまたはパーティションとして手動で配置できます。それらはあなたがそれらを置いたところならどこにでもあります。

必要と思われるよりもはるかに多くのRAMとCPUがあります。サーバーのメモリ使用量を監視し、必要に応じて増やしてください。

サーバーにmuninサーバープロセスをインストールし、サーバーとすべての仮想サーバーにmuninクライアントをインストールします。これにより、傾向を示す必要のあるボトルネックがあるかどうかをすばやく判断できます。

RAMをオーバーコミットすることはありませんが、負荷によってはCPUをオーバーコミットできるはずです。あなたの増加した力を考えると、これは必要ではないはずです。 KVMを使用すると、起動時に使用される値よりも高い両方の最大値を指定できます。これらの値を動的に変更しようとしたことはありません。

2
BillThor

それはすべて私たちがすでに持っているテストサーバーのように聞こえます:)

まあ、たとえ彼らが550MB /秒の読み取りと530MB /秒の書き込みを行うことができるとしてもOCZVertexSSDを避けてください-それらはおそらくあまりにも欠陥があります、あなたはそれをネットで読むことができます。しかし、私はそれらを自分でテストしていません。

私にとって最良の選択肢は、SSDがより多くのIOを実行する場合でも、RAID10アレイ内のSASまたはFCドライブですが、その寿命は限られています(SMARTそのデータから取得してください!)。ディスクに障害が発生した場合、ディスクを交換するだけです。すべてのSSDが同じシリーズであり、すべてが一度に障害になるとどうなりますか?ええと。

はい、VMのストレージが非常にIO集中していることを確認できます。ある日、画面をオンにすると、UbuntuServerがIOキューが大きすぎるなどと言っていたので、長時間ハングしました。

VMに必要なだけのCPU/RAMを割り当てます。たとえば、新しいVMを展開する場合は、メンテナンス中に残りのRAMを減らしますが、多すぎず十分です。新しいVMの場合。

現在、KVMVMに対して正確にブリッジングを使用してボンディングをテストしています。ボンディングモードLACPとラウンドロビンを正常に設定しました(テストでは、ケーブルを抜くと1パケットが失われると言われています)。ネットワーク経由で2GbitからKVM VM ...に到達できるのではないかと思います。

次は、クラスターを設定します。

1
TooMeeK

物事を実行し続ける責任があるシステム管理者として、この計画は私に不安を感じさせます。多数の個別の稼働中のサーバーマシンを1つの大規模な単一障害点サーバーに集中させることを計画しているようです。このスーパーサーバーのあらゆる種類のダウンタイムは、サービスのサブセットだけでなく、すべてのサービスのダウンタイムを意味します。

代わりに、予算を使用して、たとえば2つまたは3つの小さなサーバーをプロビジョニングすることをお勧めします。仮想化を使用して、セキュリティとバックアップと移行の容易さの両方のために、サービスを個別のコンテナーに分割することができます。

0
Steven Monday

私はあなたのディスクが好きではありません。完全に間違った焦点のように見えます。

RAIDミラーに2台の120GBSSDドライブがあり、RAIDミラーに2台の2TB SATAIIドライブがあります。

システムの操作に120GBを使用し、仮想マシーンに32TBを使用すると仮定すると、IOの吸引へようこそ。確かに、サーバーは小さいです。

とにかく、ここに私のサーバーのいくつかがあります:

  • 10GBのAMDベースのHyper-V(16GBに適合、BIOSの問題がありました)。 OS + Discは、RAID 10、Adaptec、4x 320gb BlackScorptio上にあります。 IO負荷が悪いです。過負荷になっているようです。16GBにアップグレードされましたが、VMの数が減ります-多すぎますIO負荷パッチ適用中など。

  • 64GB、8コアAMDオプテロン。 RAID10に4x300gbのベロシラプターが搭載されていました。いっぱいになり、私は負荷を感じていました。本当に感じています。 RAID 10で6つのラプターズにアップグレードしたところ、さらに高くなる可能性があります。このサーバーには多数のデータベースサーバーがありましたが、ほとんどすべてがデータベース作業用に個別のディスクを持っています。 RAIDコントローラーは、SASインフラストラクチャ上のAdaptec5805です。

Oyuが見ることができるように、あなたのIOサブシステムは本当に悪いです。メモリのオーバーコミットはそれをかなり悪化させるだけです。SSDはうまく機能しますが、それでも価格が高すぎます。VMを2TBドライブ、あなたのIOはただひどいです。彼らはおそらくそれぞれ約250IOPSを持っています-私がラプターズで測定した450と比較して、そして私が言ったように、私はそれらをたくさん使いますそして彼らはハイエンドのレイドコントローラーを使用しています。

私はより大きなサーバー用に24個のディスクスロットを備えた素敵なSuperMicroケージを手に入れました;)

0
TomTom

利用可能なリソースは次のとおりです。

  • 8コア
  • 12GB RAM
  • 120GBSSDストレージ
  • 2TBSATAストレージ

あなたの計画でいくつかの考えが思い浮かびます:

  • 最初に12GBのRAMをオフにしますか?...より多くの$を費やして、より多くのRAMを入手してください!
  • 「ホストシステム」を別の小さなSSD(32GBと言う)またはsataドライブから実行することを検討します。ただし、ホストが実行するのはKVMだけです。これの主な理由は、120GBSSD全体を主力VMに直接渡したいからです。
  • メインにも「CPUピン留め」を使用していますVM(2つあるのでCPU全体をピン留めします!)
  • また、RAM "HugePages"を使用します。これは、基本的にRAM CPUピニングのように、RAM用にそのVM専用に予約します。
  • すべてのVM少なくとも1つのコアと2つのスレッドを小さなVMと4GbのRAMに提供したいと思います
  • スワップを頻繁に使用している場合は、システムの電力が不足しているため、スワップは必要ありません。それは最後の手段としてそこにあり、RAMは今では十分に安いので、必要ないはずです
  • バックアップなどを行うために2TBのSataドライブにアクセスできる限り、「ホストシステム」に少量のストレージを提供しても問題ありません。
  • ハイパーバイザーが必要に応じて割り当てることができるため、オーバーコミットはIMOを実行する方法ですが、ボトルネックが頻繁に発生する場合は、優先プロセスをよりスムーズに実行できるようにリソースを強化することを検討してください。
  • 最後に、あなたとあなたの仕事はDebianベースのOSに精通している可能性が高いと思いますが、Linuxを理解していれば、別のLinuxディストリビューションにジャンプするのはそれほど難しくありません。 'apt-get'を 'yum'または 'dnf'に交換するだけで、いくつかのファイルが別の場所にありますが、googleが役に立ちます。これを言う私の主な理由は、RHELがKVMを開発しているので、常にRHELベースのディストリビューションを使用してKVMを実行したいということです。私は個人的にFedoraを使用しています。KVM is新しいIMOと私は、Fedoraだけが他のOSがまだインポートに取り組んでいるという理由/改善を見つけました。
  • LinuxOS用の8GBのストレージは本当に小さいです。 32GBが欲しいです。 SATAストレージは安いです。現時点での最良の価格は8TBドライブのようですが、8GBが小さいにもかかわらず、それはやり過ぎかもしれません。
  • RAM/CPU /ストレージのボトルネックなどの問題を警告できる監視ソリューションを見つけてください。 XYMonが好きですが、Zabbixも調べました。

KVMをお楽しみください! Domain.XMLと各VMオフサイトが望ましい)のコピーを必ずバックアップしてください。

0