金曜日, 9月 25, 2009

RHEL 5.4 でKVM 入門編 (第1.1回、インストール)

[概要]
Red Hat Enterprise Linux 5.4がリリースされたので、改めて添付されたKVMのインストールについて説明します。
CentOS6, RHEL6の方はこちらを、ubuntuの方はこちらをそれぞれご覧ください。

[詳細]
Red Hat Enterprise Linux 5.4版より、仮想化環境としてXenに加えて、KVM (Kernel-based Virtual Machine)が実装されました。
KVMはLinux kernelに2.6.20より標準で実装されている仮想化環境で、カーネルのモジュールとして動作します。
また、KVMはハイパーバイザとしてのみ働き、自身ではPCのエミュレートの機能は持っておらず、QEMUというエミュレータがKVMとやり取りを行って、バーチャルマシンを提供しています。KVMの使用については、Intel-VTかAMD-Vを実装したCPU必要です。

KVMはRHEL 5.3以前でもソース・コードのコンパイル、もしくは、ディストリビューション以外で提供されているパッケージをインストールすることで使用することはできましたのですが、Red Hat社がKVMへの主な出資者であるQumranet社がに買収し、KVMをメインの仮想化環境として扱うとしたことで、ディストリビューションに含まれました。

それでは、今回は、KVMの設定方法と簡単な操作方法を説明して行きたいと思います。

  1. RHEL 5.4のインストール
    KVMのインストールは、通常のOSのインストールの中で、KVMのパッケージを選択することで行います。
    OSインストールについては、KVMに関するポイントの部分を、中心にそのほかは、かいつまんで説明します。
    1. インストール番号の入力
      インストール番号を入力していないと、KVMのパッケージをインストール時に選択することが出来ません。

    2. インストール・ソフトウェアの選択
      パスワード入力後に表示される下のソフトウエアの選択画面では、"仮想化"のチェックを外し、ソフトウェア選択のカスタマイズを"今すぐカスタマイズ"を選択します。


      次の画面では、左側のカテゴリで"仮想化"を選択し、"KVM"を選択します。


    その後は、通常通りインストールを進め、完了後、再起動を行ってください。
  2. 動作確認
    KVM用カーネル・モジュールがロードされていることを確認します。

    [root@vm-host03 ~]# lsmod | grep kvm
    kvm_intel 85992 0
    kvm 222368 2 ksm,kvm_intel

    AMDのCPUでは、"kvm_intel"のかわりに"kvm_amd"がロードされます。

これでKVMを使用する準備が整いました。以降はベータ版の時と変わりありません。こちら参照して、バーチャルマシンの作成からOSのインストールまでを、行ってください。

金曜日, 9月 04, 2009

qemu, kvmでブリッジ接続 (RHEL, CentOS編)

[概要]
KVMやqemuを使用する際に、仮想マシンのネットワーク用のブリッジを作成する方法を説明しています。

[詳細]
Xenではインストール時にブリッジ・ネットワークが作成されますが、KVMやqemuではlibvirtによるNAT接続の仮想ネットワークが作成されるだけです。ホストと同じネットワークに接続する場合にはブリッジを作成しなければなりません。ubuntu, Debianの設定方法については、こちらを参照ください。

では、そのブリッジの作成方法について説明します。


  1. 事前準備
    1. bridge-utilsパッケージのインストール
      ブリッジを作成するためにbridge-utilsパッケージをインストールします。
      bridge-utilsは、ディストリビューションに添付されていますので、媒体からでもネットワークでもインストールが出来ます。
      [root@localhost ~]# rpm -Uvh bridge-utils-1.1-2.i386.rpm
      [root@localhost ~]# yum install bridge-utils
    2. サービスの設定
      ブリッジ接続を使用する場合には、NetworkManagerを使用することが出来ません。NetworkManagerではなく従来のnetworkのサービスを利用してください。

      [root@localhost ~]# chkconfig NetworkManager off
      [root@localhost ~]# chkconfig network on
      [root@localhost ~]# service NetworkManager stop
      [root@localhost ~]# service network start
  2. ネットワーク設定ファイルの編集
    1. ブリッジ用設定ファイルの作成
      ブリッジ用のインタフェースの設定ファイルを"/etc/sysconfig/network-scripts/ifcfg-ブリッジ名"というファイルを作成します。ブリッジ名は任意なものを付けることが出来ます。下記の例ではbr0としています。
      注意:"TYPE=Bridge"は、このまま記述してください。"B"が大文字、"ridge"は小文字。

      サンプル:
      • DHCPの場合
        [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
        DEVICE=br0
        TYPE=Bridge
        BOOTPROTO=dhcp
        ONBOOT=yes
        DELAY=0
      • 静的なIPアドレスの場合
        [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
        DEVICE=br0
        TYPE=Bridge
        BOOTPROTO=static
        BROADCAST=192.168.1.255
        IPADDR=192.168.1.3
        NETMASK=255.255.255.0
        NETWORK=192.168.1.0
        DELAY=0
    2. 物理NICの設定ファイルの編集
      ブリッジに対応するために、物理NICの設定ファイルも変更します。
      IPADDRやBOOTPROTOなど、ブリッジの設定ファイルに記載した事項を削除して、BRIDGEという値に作成するブリッジを指定します。
      下の例ではeth0にブリッジbr0を割り当てています。

      [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
      DEVICE=eth0
      HWADDR=00:16:76:D6:C9:45
      ONBOOT=yes
      BRIDGE=br0 # ここでブリッジを指定
  3. ネットワークの再起動
    ネットワークの再起動を行います。

    [root@localhost ~]# service network restart
  4. 動作確認
    ifconfigコマンドで正しく動作指定ことを確認します。

    [root@localhost ~]# ifconfig
    br0 Link encap:Ethernet HWaddr 00:30:13:44:21:0C
    inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
    inet6 addr: fe80::230:13ff:fe44:210c/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:227787918 errors:0 dropped:0 overruns:0 frame:0
    TX packets:480250 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:10513213904 (9.7 GiB) TX bytes:53615356 (51.1 MiB)

    eth0 Link encap:Ethernet HWaddr 00:30:13:44:21:0C
    inet6 addr: fe80::230:13ff:fe44:210c/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:227788363 errors:0 dropped:0 overruns:0 frame:0
    TX packets:480794 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:13702246848 (12.7 GiB) TX bytes:53691779 (51.2 MiB)
    Memory:deb00000-deb20000
  5. バーチャルマシンへのブリッジの指定
    • virt-manager
      バーチャルマシンの作成時のNetworkで"共有物理装置"にブリッジが表示され、バーチャルマシンをホストと同じネットワークに接続することが出来ます。

以上でブリッジの作成と接続は終了です。