KVMで仮想マシン@64bit4Ubuntu8.04
これはなに?
KVMという名のLinuxをハイパーバイザーにしてしまうドライバでVMも動かすという話。オープンソースであります。
取り合えずインストールかつ起動
sudo apt-get install kvm qemu #パッケージのインストール
sudo modprobe kvm #ドライバロード
sudo modprobe kvm_amd #ドライバロード(amdなので)
lsmod | grep kvm #確認
ドライバロードの自動化
sudo nano /etc/modules #これにて下2行を追加を追加
kvm
kvm_amd
イメージファイルを作成
qemu-img create -f qcow vm-disk.img 20G #恒久的にアップグレードも考えると20GB
インストール
sudo kvm -no-acpi -m 512 -cdrom ./ubuntu-8.04.1-desktop-amd64.iso -hda vm-disk.img -boot d -vnc 192.168.0.1
- hdaはディスクイメージ。
- cdromはCDドライブ。ここではISOイメージファイルを指定。CDDなら/dev/cdrom
- bootは起動デバイス。”c”がHDDで”d”がcd-rom。
- mは使用メモリ。512MBを予約。単位はMB
- vncはVNCのアドレスとポート。192.168.0.1はKVMを動かしているホストOSのIP。create
VMplayerを入れているせいか・・・
起動しない・・・ドライバロードでこける。参考サイト
http://blog.livedoor.jp/vine_user/archives/5122242...http://blog.sibrof.net/ken/2008/05/17/778/
追記Ubuntu8.10にUpgradeしました。
VMwareが動かなくなったので、仕方なくKVM?ただし、結構いい感じかも。
状況:
- まず、下記のコマンドでテスト
qemu -cdrom (インストール用iso) -hda vm-disk.img -boot d -m (ゲストに使うメモリ量)
- 使用したOSはubuntu-8.10-desktop-amd64.isoを使用。
- この状況ではどうもCPUが32bitになってしまうようだ。インストールできないと跳ねられる。
- キーボードコントロールが戻ってこずに再起動するハメに。
- 埒があかないので以下のツールを取得
sudo apt-get install virt-managaer
- これでVMを設定する。ただし全部英語
- 接続先はローカルホスト
- その下にVMを新規作成
- この時、必要な情報はすべてウィザードで設定が可能
- ディスクもここで作れる。
- また、実パーティーションへも指定できる模様、iSCSIとか?
- VMwarePlayerでは出来なかったCPUの複数指定が可能。
- いろいろ設定をいじれる。
- ネットワークにそのままつながるので要件は達成できそう。
- 所見
- ビデオ描画のスピードはVMwarePlayerには劣る模様。
- ただし、スペック上の制限はないので結構いけるかも。
- グラフィックカードが意味不明なのできっとそこがソフトウェアで、足を引っ張っているのかも。
- サーバーにしてしまえば問題ないよね。
追記Ubuntu9.04にUpgradeしました。
面倒なので状況:
Ubuntu-Server9.04の場合
- 仮想化サーバーを選択していれば既に入っている。
- Disktopの場合は次のものを入れる
sudo apt-get install ubuntu-vm-builder
- 確認コマンド
lsmod |grep kvm
- これでKVMのインストールが確認できる。
- また、ハイパーバイザーへのアクセスは以下のコマンドをローカルで実行すれば確認できる。
sudo virsh -c qemu:///system list
リモートからの接続に関して
- まず仮想化APIサーバーを起動する。
sudo /etc/init.d/libvirt-bin start
- 次にsudoユーザをlibvirtdのグループに追加する。
sudo adduser `id -un` libvirtd
- このサーバーにリモートから接続。sshdが起動していることが前提
sudo virsh -c qemu+ssh://user@192.168.0.2/system
- コントロール側にもvirshが入っている必要あり。
- これで接続できればOK
- 以上によりVirtual Machine Managerからアクセスが可能になる。
- hostnameアドレスには以下の様に入れる。
user@192.168.0.2
CUIでのインストール
- コマンド
sudo virt-install -n hostname -r 256 -f hostname.img -s 4 -c ubuntu-9.04-server-amd64.iso --accelerate --connect=qemu:///system --vnc --noautoconsole -v
ネットワーク設定
選択可能な形式
- NAT:そのVMホスト上での
- 一番簡単:ただし、外部からのアクセスはポート単位になる。1ポート1マシンになる。
- 多量のマシンを活用するには不向き
- デフォルトはこれ。VPNでつないでやるというのも手。
- iptablesへの設定はlibvirt側でやってくれる。
- Bridge
- ホストのネットワークデバイスを共有する方法。
- 共有するのでホスト同じネットワークセグメントにマシンを置ける。
- VirtualBoxで必要だったtapインターフェイスはlibvirtでVMと一緒に作って管理してくれる。
- リモートホストだとvirt-managerからは設定できない模様。
- この場合VMのxmlファイルを編集してvirshから反映させるしかない。
- Isorate Network:孤立ネット
- 外に開く必要がないならこれも簡単。
- Route
- 独立したセグメントのネットワークを作る。もちろんホストマシン単位。
- ホストに適切なRouting Tableを書けば外部からもサーバーにIPでアクセス可能
- virt-managerからは設定できない模様。
- VMのxmlファイルを編集してvirshから反映させるしかない。
Bridgeの環境設定
- まずはホスト側
- 設定ファイルを開いて
sudo nano /etc/network/interfaces
- 以下の設定を追加
auto br0
iface br0 inet static
address 192.168.1.10
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
- ネットワークを再起動
sudo /etc/init.d/networking restart
- 以下VM鯖側
- virshを開く
sudo virsh
- 入ったら中身を確認:これで中身のインスタンス名が分かる
list --all
- 一度出る
quit
- 設定ファイルを編集(VMhostは上記で確認したインスタンス名)
sudo nano /etc/libvirt/quem/VMhost.xml
- ネットワークの設定を変更
<interface type='bridge'>とする。
<mac address='54:52:00:74:1e:af'/>
<source bridge='br0'/>
<model type='virtio'/>
</interface>
- 変更した内容を反映するため、もう一度virshに入る
sudo virsh
- で次のコマンドを発行
define /etc/libvirt/quem/VMhost.xml
- あとは起動するだけ。
libvirt+virt-managerを使ってVMの作成:ISOイメージからインストール編
- でとりあえず、VMを作る。
- 他のマシンにてvirt-managerを導入
- File→Add Connectionで追加
- Hypervisorはquemで
- ConnectionはRemote Tunnel over sshを、当然ホストにはsshdが入っていること
- 事前に以下のコマンドでログイン先マシンのログインユーザをlibvirtdグループに追加しておくこと。
sudo gpasswd -a ユーザ libvirtd
- hostnameにuser@192.168.0.2を入力してConnectボタンを押下
- するとsshでのログインパスワードを訊かれるので答える。
- キーファイルで簡単ログインでもよし
- とりあえずISOイメージを置くエリアを確保する。
- ホスト接続を選択、右クリックでDetailを選択
- Storageタブを選択し、+ボタンを押下する。
- Add Storage Poolの画面が出てくるので名前を入れ進むボタンを押下、typeはdirでOK
- /var/lib/libvirt/images/nameとかなっているのでISOイメージが置いてあるパスに変更しFinishボタンを押下
- できたホスト接続を選択、右クリックで新規を選択
- 初回の画面は進むで次へ
- NameにはVMのホスト名を入れる。この名前で表示、設定xmlファイルが作成される。進むで次へ
- Fully virtualized を選択。進むで次へ
- ISO image を選択。OS Type,OS Variantは適当に該当するものを。進むで次へ
- ISO image locationにAdd Storage Poolで追加したパス+ISOファイル名を入力。進むで次へ
- File(disk image)に適当に容量、ファイル名を設定。初期値はホスト名+.img。進むで次へ
- NetworkはVitual networkしか選べない。これは後ほど手動で変更するのでそのままOK。進むで次へ
- Memory and CPU Allocationは適当に。進むで次へ
- 確認画面。よければそのままFinishへ。するとパスワードを再度訊かれるので、入力するとコンソールが開く。
- あとは通常のマシン同様にセットアップすればOK。
参考サイト
2009年10月02日(金) 02:00:45 Modified by ryunosinfx