検索
連載

KVMの導入と基本的な使い方知って見るみるKVM(2)(3/3 ページ)

アナウンス後わずか2カ月でLinux Kernelにマージされたことで一躍注目を浴びることになった仮想化技術「KVM」。しかし、その具体的な仕組みや使用方法となると、意外と知られていないのではないでしょうか。この連載ではそんなKVMについて紹介します(編集部)

Share
Tweet
LINE
Hatena
前のページへ |       

使い方に応じたネットワーク構成(続き)

●ケース4:サービス用のゲストOSを複数起動し、外部ノードからゲストOSに簡単にアクセスできるようにする

 ホストの物理NICとゲストOSが接続するtapデバイスをブリッジのインターフェイスとして設定します。これによりホストOSの接続している物理的なL2ネットワークに、ゲストOSが接続しているように機能します。そのため、外部ホストはもちろん、ゲストOS間の通信も行うことができます。

 なお、ケース1〜3までは、kvmグループに所属していれば一般ユーザーで実行できましたが、ケース4で使用するtapデバイスにはroot権限が必要です。ネットワーク構成は図4です。

図4 tapデバイスを使用したブリッジモードでの接続構成
図4 tapデバイスを使用したブリッジモードでの接続構成

1)ホストOSでの設定(ブリッジの設定)

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ホストOSも外部と通信させる場合は、br0に下記のネットワーク設定を加えます(注5)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

2)Guest1を起動

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

3)Guest1上でのネットワーク設定

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

4)Guest2を起動

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

5)Guest2上でのネットワーク設定

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

6)ホストOSでの設定確認

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ブリッジbr0に、eth1、tap0、tap1がインターフェイスとして加えられていることが分かります。

注5:br0にIPアドレスとデフォルトゲートウェイを設定していない場合、ゲストOS起動時のscriptオプションで指定した/etc/kvm/kvm-ifupが正常に実行されません。具体的には、kvm-ifupの中に記載されている“/usr/sbin/brctl addif ${switch}$1”が実行されません。そのため、guest1、guest2を起動中に、ホストOS上で下記コマンドを手動で実行する必要があります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 KVM/QEMUを利用する場合の多くは、ケース1、2などが多いと思います。しかし、KVMをXenやVMware ESXiのようにサーバ統合などの用途で使う場合にはケース4の構成が必要になると思われます。

 今回はブリッジをレイヤ2モードで使用するケースを想定しましたが、設定方法によってはケース2や3の代わりにtapを使うこともできます。つまり、tap0、tap1をブリッジのインターフェイスにするのではなく、IPアドレスとゲストOSごとへのスタティックルートを直接設定することで、ホストOSをルータのように動かすこともできます(ただし、設定は非常に複雑です)。

 利用する構成に応じていろいろ試し、用途に応じて使い分けるといいでしょう。

コラム■想定されるFAQ

 KVMの導入に際して想定されるハマりどころやツッコミをFAQ形式で挙げてみました。もし導入に詰まってしまったときの参考にしてください。

Q1:kvm、kvm-imgコマンドがありません。

A1注4にも記載しましたが、ディストリビューションによって、コマンドの名称が異なります。Fedora、CentOSなどではqemu-kvm、qemu-imgコマンドになっています。導入した環境のパッケージ管理ツールで調べて、適宜読み替えてください。

Q2:使っているカーネルでは使えないみたいなんですが。

A2:まず、お使いの環境が、kernel 2.6.20以降であることを確認してください。2.6.20以降の場合は、下記オプションを有効にしてカーネルをリビルドしてください(以下は2.6.29.1での場合)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

最後の行のオプションは、前者はIntel VTの場合、後者はAMD-Vの場合です。また、カーネルのバージョンが上がるにつれて、カーネルオプションの数も以下のように増えてきています。それぞれのオプションが何を意味するのかは、ご自身で調べてみてください。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

Q3:kvm/qemuのオプションが覚えきれません。

A3:数が多くて、確かに覚えるのは大変です。今回の記事を参考にmanマニュアルを熟読して、イメージディスク作成用やゲストOS起動用のスクリプトを用意しておくといいでしょう。

Q4:QEMUコンソールでAlt+2を押したあと、元に戻れません。

A4Ctrl+Alt+1を押すと元の画面に戻ります。

Q5:コマンドラインに拒否反応を示してしまうのですが。

A5virt-manageroVirtというGUIの管理ツールがあります。そちらを使ってみるといいでしょう。

Q6:それなら、最初からvirt-managerやoVirtの使い方を解説すればいいのでは?

A6:今回はGUIに頼らない基礎的な使い方を目的にしています。virt-managerもoVirtもlibvirtというAPIを使用しており、今回紹介したコマンドを直接使うわけではありませんが、コマンドベースでの使い方を理解しておけば、それらのツールの仕組みの理解にも役立つことでしょう。


まとめ

 KVMはQEMUに依存しているので、kvmおよびkvm-imgコマンドの使い方を覚えると、QEMUも同じように利用できるようになります。QEMUはCPUエミュレータなので、ほかのアーキテクチャの仮想環境も利用できるという点でとても便利です。

 また、今回はGUIの管理ツールについては触れませんでしたが、KVMの管理の基本になるのはQEMUです。ですので、繰り返しになりますが、QEMUの操作方法を理解しておくことにより、その他のツールの裏側で行っていることを理解できるものと思います。

 次回は、KVMが抱える課題と今後の方向性について紹介する予定です。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る