Changes between Version 29 and Version 30 of linux/kvm


Ignore:
Timestamp:
2010/10/30 03:32:01 (14 years ago)
Author:
yuna
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • linux/kvm

    v29 v30  
    11= KVMメモ = 
    2 このページは、KVMのメモです。簡単に使いたい人は、virt-managerを使ってください。 
    3  
    4 == Windowsゲストドライバ == 
    5 Windowsゲストドライバを利用すると、ネットワークI/OやディスクI/Oが速くなります。 
    6 ゲストドライバの取得とインストール方法は下記のURLを参照。 
    7  * [http://www.linux-kvm.org/page/WindowsGuestDrivers Windows guest drivers] 
     2このページは、kvmをlibvirt(virsh)で使いたい人向けのメモです。簡単に使いたい人は、virt-managerを使ってください。 
     3 
    84== 準備 == 
     5=== Fedora13 === 
    96kvmを利用するのに、libvirtを利用します。libvirtをインストールしておきます。virt-managerをインストールすると必要なパッケージが一通り入って便利です。また、kvmで仮想マシンを実行するのに必要なqemu-kvmもインストールしておきます。 
    107{{{ 
     
    2522# yum install virt-top 
    2623# yum install qemu-kvm-tools 
     24}}} 
     25=== Ubuntu 10.10 === 
     26{{{ 
     27# apt-get install qemu-kvm virt-manager 
     28# apt-get install virt-top 
    2729}}} 
    2830== virshを利用したKVM仮想マシンの作り方 == 
     
    3840 * vcpu(CPUの数) 
    3941 * diskとcdromのsource file 
    40  * clock offsetをWindowsの場合localtimeに。 
    41  * acpiを有効にしないと、Windows7移行でインストールできない。また、virshからshutdownコマンドでシャットダウンできない。 
     42 * acpiを有効にしないと、virshからshutdownコマンドでシャットダウンできない。 
    4243 * mac addressを他と被らないように 
    43 辺りに注意しておく。 
     44辺りに注意しておく。下記は、Fedora13の例。 
    4445{{{ 
    4546<domain type='kvm' id='3'> 
     
    9091</domain> 
    9192}}} 
     93Ubuntuの場合は、typeタグのmachineをpcなどにする。 
     94{{{ 
     95... 
     96<type arch='x86-64' machine='pc'>hvm</type> 
     97... 
     98}}} 
    9299=== virshに登録して起動 === 
    93100{{{ 
     
    95102virsh # define virt-kvm.xml 
    96103}}} 
    97 defineで仮想マシンを定義したXMLを登録すると、/etc/libvirt/qemuディレクトリに定義ファイルが作られる。 
     104defineで仮想マシンを定義したXMLを登録すると、/etc/libvirt/qemuディレクトリにDomain名のファイルで定義ファイルが作られる。 
    98105{{{ 
    99106# ls /etc/libvirt/qemu 
    100 UbuntuVM.xml  hoge.xml  kvmtest.xml  networks 
    101 }}} 
    102  
     107UbuntuVM.xml  networks 
     108}}} 
     109 
     110起動と起動状態の確認は、次の通りです。 
    103111{{{ 
    104112virsh # start UbuntuVM 
     
    108116  1 UbuntuVM           実行中 
    109117}}} 
    110 VNCクライアントのスクリーン1で接続可能(vnc://localhost:1) 
    111  
    112 停止はshutdownを使う。 
     118VNCクライアントのスクリーン1で接続可能(vnc://localhost:1)。vncのポートなどは、次の行で設定します。 
     119{{{ 
     120    <graphics type='vnc' port='5902' autoport='yes' keymap='ja'/> 
     121}}} 
     122停止はshutdownを使います。 
    113123{{{ 
    114124virsh # shutdown UbuntuVM 
    115125}}} 
    116 '''acpiが有効になっていないと、virshからのシャットダウンを受け付けない。'''また、linuxの場合、acpidをインストール/起動しておく必要がある 
     126'''acpiが有効になっていないと、virshからのシャットダウンを受け付けない'''ので注意してください。また、linuxの場合、acpidをインストール/起動しておく必要があります 
    117127 
    118128ハイバネートとレジューム 
     
    121131virsh # restore UbuntuVM UbuntuVM.mem 
    122132}}} 
     133== Windows利用時に注意 = 
     134=== libvirt xmlを記述するときの注意 == 
     135 * clock offsetをlocaltimeにしないと時間がずれます。 
     136 * acpiを有効にしないと、Windows7移行でインストールできない。 
     137 
     138=== Windowsゲストドライバ === 
     139Windowsゲストドライバを利用すると、ネットワークI/OやディスクI/Oが速くなります。 
     140ゲストドライバの取得とインストール方法は下記のURLを参照。 
     141 * [http://www.linux-kvm.org/page/WindowsGuestDrivers Windows guest drivers] 
     142 
    123143== ネットワーク接続 == 
     144=== ルーティングして接続 === 
     145仮想マシンのIPアドレスから、ホストOSのNICにルーティングして接続します。 
     146 
    124147 * ゲスト側のネットワークを適当設定(例えば192.168.100.2,GWを192.168.100.1)。ネットワークセグメントはホストと別にする。 
    125148 * ホスト側のネットワークを設定する。 
     
    140163             vnet0:192.168.100.1   eth0:192.168.100.2 
    141164}}} 
     165 
    142166== NATによるLAN上のIPからの接続 == 
     167プライベートIPをeth0に割り振り、NATで接続します。 
    143168{{{ 
    144169         +--------------+            +---------------+ 
     
    154179するように設定してみる。普通にeth0に10.8.99.6を設定しておく。 
    155180    
    156 次にNAT用のnat.iptファイルを用意する。 
     181次に10.8.99.7へのアクセスを192.168.100.2に転送するNAT用のnat.iptファイルを用意する。 
    157182{{{ 
    158183*nat 
     
    170195# cat nat.ipt | iptables-restore 
    171196}}} 
    172 eth0に10.8.99.7を割り振らないとLAN上のマシンからアクセスできないので、ipコマンドでNICにIPを割り振 
     197eth0に10.8.99.7を割り振らないとLAN上のマシンからアクセスできないので、ipコマンドでNICにIPを割り振っておきます 
    173198{{{ 
    174199# ip addr add 10.8.99.7 dev eth0 
     
    176201 
    177202=== ブリッジによるホストのNICと同じセグメントへの設定 === 
    178 ホストIPアドレスが192.168.1.5で、仮想マシンのIPアドレスを192.168.1.6のようにホストのNICと同じセグメントのネットワークに仮想マシンを所属させたい場合は、ブリッジを利用する 
     203ホストIPアドレスが192.168.1.5で、仮想マシンのIPアドレスを192.168.1.6のようにホストのNICと同じセグメントのネットワークに仮想マシンを所属させたい場合は、ブリッジを利用します 
    179204 
    180205まず、/etc/network/interfacesに次のように記述し、ブリッジを有効にする。 
     
    219244 
    220245=== ポートフォワードによる仮想マシンIPを利用したルートコンソールの接続 === 
    221 ゲストOSの5900番(VNCのデフォルトポート)をホストOS上の仮想マシンのコンソールのポートに転送するようにすれば、VNCで仮想マシンに接続するとルートコンソールが取れるようになる。 
     246仮想マシンのIPでVNCに接続すると、ブレードサーバのOAのようにルートコンソールが取得できると嬉しくありませんか? ポートフォワードを使うと実現することができます。 
     247 
     248例えば、ゲストOSの5900番(VNCのデフォルトポート)をホストOS上の仮想マシンのコンソールのポートに転送するようにすれば、VNCで仮想マシンに接続するとルートコンソールが取れるようになります。 
    222249{{{ 
    223250*nat 
     
    234261 
    235262=== DHCPでIPを付与 === 
    236 /var/lib/libvirt/network/default.xmlを次のように編集 
     263DHCPでIPを付与するようにするには、/var/lib/libvirt/network/default.xmlを次のように編集します 
    237264{{{ 
    238265<network> 
     
    249276</network> 
    250277}}} 
    251 上記のネットワーク設定ファイルを再設定して、ネットワークを再起動(net-destroy,net-start)する 
     278上記のネットワーク設定ファイルを再設定して、ネットワークを再起動(net-destroy,net-start)します 
    252279{{{ 
    253280virsh # net-define /var/lib/libvirt/network/default.xml