226 lines
11 KiB
Markdown
226 lines
11 KiB
Markdown
---
|
||
title: KVMで仮想環境を整えてみる – (2)
|
||
author: kazu634
|
||
date: 2011-07-04
|
||
wordtwit_post_info:
|
||
- 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:5437;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}'
|
||
categories:
|
||
- kvm
|
||
- linux
|
||
|
||
---
|
||
<div class="section">
|
||
<p>
|
||
前回はとりあえずOSイメージを指定して、OSをインストールするところまでできたと思います。OSインストール終了後にリブートすると、おそらくKVM上のゲストOSは再起動しないので、次のコマンドを実行してあげます:
|
||
</p>
|
||
|
||
<pre class="syntax-highlight">
|
||
$ sudo virsh <span class="synStatement">start</span> <span class="synStatement"><</span>ゲストOSの名前<span class="synStatement">></span>
|
||
</pre>
|
||
|
||
<p>
|
||
これで CD のマウントオプションを除いて、 virt-install で指示したオプション通りにゲストOSを起動してくれます。しかしここでつまずきの種が。。。
|
||
</p>
|
||
|
||
<h4>
|
||
ゲストOSのネットワーク設定について
|
||
</h4>
|
||
|
||
<p>
|
||
さて KVM で作成したゲスト OS はNATになります。ゲストOSから外部への通信はできるのですが、ホストOSを含む外部からゲストOSへのアクセスは出来ません。VMWareなんかだとNAT接続でもホスト-ゲスト間は通信できるのですが、KVMはそうではないみたいです。
|
||
</p>
|
||
|
||
<p>
|
||
そこでブリッジ接続(ホストOSと同じネットワークセグメントのIPアドレスで通信)をできるようにしてみます。
|
||
</p>
|
||
|
||
<h4>
|
||
事前準備
|
||
</h4>
|
||
|
||
<p>
|
||
事前に次のコマンドを実行します:
|
||
</p>
|
||
|
||
<pre class="syntax-highlight">
|
||
$ sudo apt-get <span class="synStatement">install</span> libcap2-bin
|
||
$ sudo setcap <span class="synIdentifier">cap_net_admin</span>=ei /usr/bin/qemu-system-x86_64<span class="synComment"> # x64の場合</span>
|
||
$ sudo setcap <span class="synIdentifier">cap_net_admin</span>=ei /usr/bin/qemu <span class="synComment"> # x32の場合</span>
|
||
</pre>
|
||
|
||
<h4>
|
||
ブリッジ接続の設定方法
|
||
</h4>
|
||
|
||
<p>
|
||
私のホストOSのUbuntuくんはNICが一枚です。初期状態だとネットワークの設定(/etc/network/interfaces)はこんな感じのはず:
|
||
</p>
|
||
|
||
<pre class="syntax-highlight">
|
||
<span class="synComment"># This file describes the network interfaces available on your system</span>
|
||
<span class="synComment"># and how to activate them. For more information, see interfaces(5).</span>
|
||
<span class="synComment"># The loopback network interface</span>
|
||
auto lo
|
||
iface lo inet loopback
|
||
<span class="synComment"># The primary network interface</span>
|
||
auto eth0
|
||
iface eth0 inet dhcp
|
||
</pre>
|
||
|
||
<p>
|
||
静的にIPアドレスを割り当てている場合には、こんな感じになるのかな:
|
||
</p>
|
||
|
||
<pre class="syntax-highlight">
|
||
<span class="synComment"># This file describes the network interfaces available on your system</span>
|
||
<span class="synComment"># and how to activate them. For more information, see interfaces(5).</span>
|
||
<span class="synComment"># The loopback network interface</span>
|
||
auto lo
|
||
iface lo inet loopback
|
||
<span class="synComment"># The primary network interface</span>
|
||
auto eth0
|
||
iface eth0 inet static
|
||
address 192.168.11.8
|
||
netmask 255.255.255.0
|
||
network 192.168.11.0
|
||
broadcast 192.168.11.255
|
||
gateway 192.168.11.1
|
||
</pre>
|
||
|
||
<p>
|
||
それを次のように変更してしまいます。なお、IPアドレス 192.168.11.8/24,ゲートウェイが192.168.11.1としてホストOSにアクセスすることとします:
|
||
</p>
|
||
|
||
<pre class="syntax-highlight">
|
||
<span class="synComment"># This file describes the network interfaces available on your system</span>
|
||
<span class="synComment"># and how to activate them. For more information, see interfaces(5).</span>
|
||
<span class="synComment"># The loopback network interface</span>
|
||
auto lo
|
||
iface lo inet loopback
|
||
<span class="synComment"># The primary network interface</span>
|
||
auto eth0
|
||
iface eth0 inet manual
|
||
auto br0
|
||
iface br0 inet static
|
||
address 192.168.11.8
|
||
netmask 255.255.255.0
|
||
network 192.168.11.0
|
||
broadcast 192.168.11.255
|
||
gateway 192.168.11.1
|
||
bridge_ports eth0
|
||
bridge_stp off
|
||
bridge_fd 0
|
||
bridge_maxwait 0
|
||
</pre>
|
||
|
||
<p>
|
||
参考:
|
||
</p>
|
||
|
||
<ul>
|
||
<li>
|
||
<a href="https://help.ubuntu.com/community/KVM/Networking" onclick="__gaTracker('send', 'event', 'outbound-article', 'https://help.ubuntu.com/community/KVM/Networking', 'KVM/Networking – Community Help Wiki');" target="_blank">KVM/Networking – Community Help Wiki</a>
|
||
</li>
|
||
</ul>
|
||
|
||
<h4>
|
||
ゲストOSのNICを変更する
|
||
</h4>
|
||
|
||
<p>
|
||
ブリッジの接続設定を実施した後は、ゲストOSに割り当てたNICを変更してあげます。「/etc/libvirt/qemu/<ゲストOS名>」という名称の設定ファイルを書き換えます:
|
||
</p>
|
||
|
||
<p>
|
||
変更前:
|
||
</p>
|
||
|
||
<pre class="syntax-highlight">
|
||
<interface type=<span class="synConstant">'network'</span>>
|
||
<mac address=<span class="synConstant">'52:54:00:bc:d1:55'</span>/>
|
||
<source network=<span class="synConstant">'default'</span>/>
|
||
<model type=<span class="synConstant">'virtio'</span>/>
|
||
<address type=<span class="synConstant">'pci'</span> domain=<span class="synConstant">'0x0000'</span> bus=<span class="synConstant">'0x00'</span> slot=<span class="synConstant">'0x04'</span> function=<span class="synConstant">'0x0'</span>/>
|
||
</interface>
|
||
</pre>
|
||
|
||
<p>
|
||
変更後:
|
||
</p>
|
||
|
||
<pre class="syntax-highlight">
|
||
<interface type=<span class="synConstant">'bridge'</span>>
|
||
<mac address=<span class="synConstant">'52:54:00:bc:d1:55'</span>/>
|
||
<source bridge=<span class="synConstant">'br0'</span>/>
|
||
<model type=<span class="synConstant">'virtio'</span>/>
|
||
<address type=<span class="synConstant">'pci'</span> domain=<span class="synConstant">'0x0000'</span> bus=<span class="synConstant">'0x00'</span> slot=<span class="synConstant">'0x03'</span> function=<span class="synConstant">'0x0'</span>/>
|
||
</interface>
|
||
</pre>
|
||
|
||
<p>
|
||
MACアドレスは変更しないほうがいいと思うよ。ネットワークの設定を変更後、設定を反映してあげます:
|
||
</p>
|
||
|
||
<pre class="syntax-highlight">
|
||
$ sudo virsh define <span class="synStatement"><</span>変更した設定ファイル名<span class="synStatement">></span>
|
||
</pre>
|
||
|
||
<h4>
|
||
virt-installコマンドでブリッジ接続のNICをゲストOSに割り当てる
|
||
</h4>
|
||
|
||
<p>
|
||
こんな感じでコマンドを指定します:
|
||
</p>
|
||
|
||
<pre class="syntax-highlight">
|
||
$ sudo virt-<span class="synStatement">install</span> <span class="synSpecial">--connect</span> qemu:///system <span class="synSpecial">--name</span> gateway <span class="synSpecial">--ram</span> <span class="synConstant">256</span> <span class="synSpecial">--disk</span> <span class="synIdentifier">path</span>=<span class="synIdentifier">gateway.img,size</span>=<span class="synConstant">10</span> <span class="synSpecial">--network</span> <span class="synIdentifier">bridge</span>=<span class="synIdentifier">br0,model</span>=virtio <span class="synSpecial">--vnc</span> <span class="synSpecial">--cdrom</span> /mnt/nas/kazu634/OSimages/ubuntu/ubuntu<span class="synConstant">-10</span>.<span class="synConstant">04</span>.<span class="synConstant">2</span>-server-amd64.iso
|
||
</pre>
|
||
|
||
<h4>
|
||
virt-installコマンドで複数NICになるようしてゲストOSを作成する
|
||
</h4>
|
||
|
||
<p>
|
||
こんな感じで、–networkを複数指定します:
|
||
</p>
|
||
|
||
<pre class="syntax-highlight">
|
||
sudo virt-<span class="synStatement">install</span> <span class="synSpecial">--connect</span> qemu:///system <span class="synSpecial">--name</span> gateway <span class="synSpecial">--ram</span> <span class="synConstant">256</span> <span class="synSpecial">--disk</span> <span class="synIdentifier">path</span>=<span class="synIdentifier">gateway.img,size</span>=<span class="synConstant">10</span> <span class="synSpecial">--network</span> <span class="synIdentifier">bridge</span>=<span class="synIdentifier">br0,model</span>=virtio <span class="synSpecial">--network</span> <span class="synIdentifier">network</span>=<span class="synIdentifier">default,model</span>=virtio <span class="synSpecial">--vnc</span> <span class="synSpecial">--cdrom</span> /mnt/nas/kazu634/OSimages/ubuntu/ubuntu<span class="synConstant">-10</span>.<span class="synConstant">04</span>.<span class="synConstant">2</span>-server-amd64.iso
|
||
</pre>
|
||
|
||
<div class="hatena-asin-detail">
|
||
<a href="http://www.amazon.co.jp/dp/4798121401/?tag=hatena_st1-22&ascsubtag=d-7ibv" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.amazon.co.jp/dp/4798121401/?tag=hatena_st1-22&ascsubtag=d-7ibv', '');"><img src="https://images-na.ssl-images-amazon.com/images/I/51BpsUti-5L._SL160_.jpg" class="hatena-asin-detail-image" alt="KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド" title="KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド" /></a></p>
|
||
|
||
<div class="hatena-asin-detail-info">
|
||
<p class="hatena-asin-detail-title">
|
||
<a href="http://www.amazon.co.jp/dp/4798121401/?tag=hatena_st1-22&ascsubtag=d-7ibv" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.amazon.co.jp/dp/4798121401/?tag=hatena_st1-22&ascsubtag=d-7ibv', 'KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド');">KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド</a>
|
||
</p>
|
||
|
||
<ul>
|
||
<li>
|
||
<span class="hatena-asin-detail-label">作者:</span> <a href="http://d.hatena.ne.jp/keyword/%CA%BF%BD%E9" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/keyword/%CA%BF%BD%E9', '平初');" class="keyword">平初</a>,<a href="http://d.hatena.ne.jp/keyword/%BF%B9%BC%E3%CF%C2%CD%BA" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/keyword/%BF%B9%BC%E3%CF%C2%CD%BA', '森若和雄');" class="keyword">森若和雄</a>,<a href="http://d.hatena.ne.jp/keyword/%C4%E1%CC%EE%CE%B6%B0%EC%CF%BA" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/keyword/%C4%E1%CC%EE%CE%B6%B0%EC%CF%BA', '鶴野龍一郎');" class="keyword">鶴野龍一郎</a>,<a href="http://d.hatena.ne.jp/keyword/%A4%DE%A4%A8%A4%C0%A4%B3%A4%A6%A4%D8%A4%A4" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/keyword/%A4%DE%A4%A8%A4%C0%A4%B3%A4%A6%A4%D8%A4%A4', 'まえだこうへい');" class="keyword">まえだこうへい</a>
|
||
</li>
|
||
<li>
|
||
<span class="hatena-asin-detail-label">出版社/メーカー:</span> <a href="http://d.hatena.ne.jp/keyword/%E6%C6%B1%CB%BC%D2" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/keyword/%E6%C6%B1%CB%BC%D2', '翔泳社');" class="keyword">翔泳社</a>
|
||
</li>
|
||
<li>
|
||
<span class="hatena-asin-detail-label">発売日:</span> 2010/07/08
|
||
</li>
|
||
<li>
|
||
<span class="hatena-asin-detail-label">メディア:</span> 大型本
|
||
</li>
|
||
<li>
|
||
<span class="hatena-asin-detail-label">購入</span>: 5人 <span class="hatena-asin-detail-label">クリック</span>: 227回
|
||
</li>
|
||
<li>
|
||
<a href="http://d.hatena.ne.jp/asin/4798121401" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/asin/4798121401', 'この商品を含むブログ (15件) を見る');" target="_blank">この商品を含むブログ (15件) を見る</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="hatena-asin-detail-foot">
|
||
</div>
|
||
</div>
|
||
</div>
|