これは、KVM(Linuxカーネル仮想マシンハイパーバイザー)サーバーを起動して実行する方法に関する非常に短いクイックセットアップです。
なぜKVMなのか
KVMは、VmWare ESX、MicrosoftのHyper-V、XENと同様に、ハイパーバイザーです。 KVMの(いつものように)素晴らしい点は、Linuxの一部であり、無料であることを意味し、パフォーマンスが優れていることです。スタンドアロンのハイパーバイザーとして本番環境で使用することは優れた選択肢であり、ホストサーバーのフットプリントが低く(パフォーマンスのニーズとディスクの点で)、virt-managerなどの他のツールを使用して簡単に管理できます。
前提条件
このクイックチュートリアルでは、次のことを前提としています。- 少なくとも1人の仮想マシンゲストでKVMサーバーを実行したい
- KVMサーバーはネットワーク内のIPアドレスを取得します
- 仮想マシンはネットワークからIPアドレスを取得するため、ナッティングの代わりにブリッジを使用できます(ブリッジの代わりにNATを使用するのは簡単な作業ですが、この方法の一部ではありません)。
- KVMマスターでのディスクスペース割り当てにlvmを使用できます(イメージファイルなどの他のディスクスペース割り当て方法を使用することも簡単ですが、このハウツーの一部ではありません)–実行する前にこれをインストールする必要があることに注意してください以下、サーバーにまだインストールされていない場合。
- Ubuntu10.04以降を使用しています。ネットワーク接続とssh経由のアクセスを備えた最新のUbuntuサーバーである必要があります。
謝辞
これは改訂が必要な短いガイドであり、まもなく実行されますが、現在の状態では、主にwww.screenage.deから卸売りされているため、元の作者であるccmに大きな小道具があります。読みやすくするために若干の修正が行われました。
ネットワークを稼働させます
ブリッジネットワークの場合は、ブリッジユーティリティをインストールし、ネットワーク構成を変更する必要があります。最初にパッケージをインストールします: $ sudo apt-get install bridge-utils |
$ sudo brctl addbr br0 |
上記のように、「eth0」を「ifaceeth0inetmanual」に設定することを忘れないでください。これは、eth0がdhcpを介してアドレスをフェッチするのを防ぎながら、物理層であるためブリッジにアドレスを残したい場合に必要です。ブリッジをセットアップした後、ネットワークを再起動します( sudo /etc/init.d/networking restart )またはサーバーを再起動します。すでにsshでサーバーにアクセスしている場合は、設定を誤るとロックアウトされる可能性があることに注意してください。
KVMをインストールする
次に、kvmといくつかの便利なヘルパーアプリケーションをインストールします。これですべてです。すでにkvmサーバーがあります。時間…
最初の仮想マシンをインストールします
ゲスト用に100Gbの論理ボリュームをセットアップし、Ubuntuをダウンロードして、2GbのRAMと4つのコアを備えたマシンを作成します。
# create an empty 100Gb logical volume sudo lvcreate --size 100G vg0 --name guest1 # download Ubuntu iso (or use one you already have) $ wget http://..../ # create machine $ sudo virt-install --connect qemu:///system -n guest1 -r 2048 \ --vcpus=4 -f /dev/mapper/guest1 --network=bridge:br0 \ --vnc --accelerate -v -c ./SOMEUBUNTUISO.iso \ --os-type=linux --os-variant=ubuntuKarmic --noautoconsole # please note: "ubuntuKarmic" is currently the most recent # virt-install defaults scheme - just use this if in doubt. |
VNC接続を取得する
KVMはVNCを使用して、マシンへのグラフィカルインターフェイスを提供します。これの良いところは、グラフィカルインストーラー(そしてもちろん、Windowsでも)を問題なく使用できることです。最初はUbuntuサーバーでさえグラフィカルモードで起動するので、ここでVNCを使用するのは素晴らしいことです。
リモートサーバーで作業していると思います。 KVMは、すべてのゲストに、新しい増分ポートを使用して新しいvncインスタンスを起動するように提供します。 5900から始まります。それでは、ssh経由でトンネリングしましょう:
ssh user@remotekvmhost -L 5900:localhost:5900 |
ssh経由でリモートkvmホストに接続し、sshトンネルフォートポート5900を開きます。次に、優先するVNCクライアントをローカルで起動し、ディスプレイ「0」またはポート5900に接続します。これは、VNCでも同じことを意味します(ええと…)。
これからは、VNCディスプレイにサーバーが表示されます。他のすべてのサーバーをインストールするのと同じようにインストールします。ネットワークはブリッジされているため、ネットワークで提供されている場合はdhcpを使用することもできます。
必ず、パッケージ「acpi」をkvmゲスト内にインストールしてください。インストールしないと、ゲストをマスターから停止できません(acpiを介して行われるため):
# make sure, "acpi" is installed in the *guest* machine sudo apt-get install acpi |
インストール後、次のコマンドを使用してkvmguesを管理できます。
# list running instances $ virsh list # start an instance $ virsh start INSTANCENAME # stop an instance politely $ virsh stop INSTANCE # immediatly destroy a running instance $ virsh destroy INSTANCE # edit the config file for an instance $ virsh edit INSTANCE |
LVMボリュームのマウント
お気づきかもしれませんが、仮想ゲストのlvmボリュームには独自のパーティションテーブルが含まれているため、マスターに直接マウントすることはできません。ただし、マスターからゲストのファイルシステムにアクセスする必要がある場合は、いくつかのデバイスノードを作成する必要があります。デバイスノードを作成および削除できる「kpartx」と呼ばれる優れたツールがあります。これと同じくらい簡単です:
# install kpartx $ sudo install kpartx # make sure, virtual gues is switched off! # create device nodes $ sudo kpartx -a /dev/mapper/guest1 # check /dev/mapper for new device nodes and mount/unmount them # after you are done, delete the nodes $ sudo kpartx -d /dev/mapper/guest1 |
この方法は、パーティションテーブルを含む画像ファイルなどの他のブロックデバイスでも機能することに注意してください。 lvmボリュームに独自のlvmが含まれている場合にのみ、問題が発生する可能性があります。その場合は、kpartxを使用した後、pvscan、vgscan、およびlvscanを試してみてください。勇気を持ってください。ただし、データのバックアップは常に優れたアイデアであることに注意してください。
代替管理インターフェース
管理のニーズに合わせてGUIが本当に必要な場合は、「virt-manager」を確認してください。これをデスクトップにインストールして、実行中のインスタンスをリモートで管理できます:
$ sudo install virt-manager
ただし、RedHatの「VirtualMachineManager」ページを確認する必要があります。より新しいバージョンを手動でコンパイルしてインストールし、セットアップのハウツーに依存することをお勧めします。個人的には、ここでプレーンテキストコンソールを使用することを好みます。これは、問題が発生したときにどこからでも非常に高速に動作できるようにするのに役立ち、もちろん、サーバーでX11を実行するオーバーヘッドがないためです。
結論
現在、KVMサーバーのセットアップはかなり簡単です。 KVM / libvirt対応のゲストは非常に高速であるため、仮想マシンをホストする場合でも、これは便利で簡単な方法です。私は2年間、約12台の仮想マシンと3台のハードウェアサーバーを問題なく実行しています。