東京23区 :
千代田区/ 中央区/ 港区/ 新宿区/ 文京区/ 台東区/ 墨田区/ 江東区/ 品川区/ 目黒区/ 大田区/ 世田谷区/ 渋谷区/ 中野区/ 杉並区/ 豊島区/ 北区/ 荒川区/ 板橋区/ 練馬区/ 足立区/ 葛飾区/ 江戸川区
このサイトについて はじめに/ サイトポリシー
技術メモ Debian とUbuntu でKVM を使った仮想サーバの作成

Debian とUbuntu でKVM を使った仮想サーバの作成

このサーバを作成した際のメモですが、誰かの役に立つかもしれないので公開します。

Introduction

このページでは、既にDebian がインストールされている状態の物理的なコンピュータ(ホスト側とします)がある前提で、KVM をインストールし仮想環境にゲストOS をインストールして通信できるようにするところまで扱います。

KVM やXen、VMWare vSphere などがありますが、無料でパフォーマンスが良いKVM を選びました。最初vSphere にしようと思ったんですが、5系以降有料しかないのでパスしました。vSphere が使えるならそっちのほうが後々楽だと思います。

一度ゲストOS が動けばホスト側はほとんど使わない運用としますが、一応VNC を入れておきます。virt-manager が無いと最初辛いのでVNC でvirt-manager を操作しますし。

Prerequisites

Debian をまずホストOS としてインストールしたマシンを用意します。


$ uname -a
Linux 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5+deb10u1 (2019-07-19)

OS はこんな感じで、特にkernel に手は加えていません。

ゲストOS はKVM 内でブリッジした仮想ハブに接続して外に出るようにします。また、IP アドレスは全て固定します。

OS Update


# apt-get update
# apt-get upgrade
# apt install ssh

Installing VNC

Window Manager はjwm を使います。


# apt-get install xserver-xorg-core jwm vnc4server

$ cat .vnc/startup

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -bg black -fg gray &
jwm &
$ crontab -e

@reboot vncserver :1 -geometry 1024x768 -localhost no

crontab にリブートした時に自動起動するように設定します。Windows からアクセスするときは、UltraVNC で、

192.168.1.200:1 

とします。

Installing KVM

# apt -y install qemu-kvm libvirt-daemon libvirt-daemon-system virtinst libosinfo-bin bridge-utils virt-manager qemu-system

ネットワークの設定はこのタイミングでbr0 を作ります。dns-nameservers は8.8.8.8 でもプロバイダが用意したものでも構いません。


# cat /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp3s0
iface enp3s0 inet manual
#iface enp3s0 inet static
#address 192.168.1.20
#netmask 255.255.255.0
#gateway 192.168.1.1
#dns-nameservers 8.8.8.8

iface br0 inet static
address 192.168.1.20
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8

bridge_ports enp3s0
bridge_stp off
auto br0

VNC 経由でコンソールを開き、

$ virt-manager

でvirt-manager が起動します。

Installing Guest OS

virt-manager を起動し、新しい仮想環境を作成したら、Ubuntu Server 16.04 をインストールします。

$ uname -a
Linux 4.4.0-142-generic #168-Ubuntu SMP Wed Jan 16 21:00:45 UTC 2019

update, ssh のインストールくらいはしておきます。

Network Settings

まずインターネットにNAT でつながることを確認したら、仮想ブリッジを再度設定します。

ホスト側は以下のようになっていると思います。

# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.1c697a01fe43       no              enp3s0
virbr0          8000.52540077885d       yes             virbr0-nic
ゲストOS Ubuntuのvirt-manager を設定します。
  [Virtual Network Interface] - [Specify Shared device name]
  then type [br0] manually and apply.

ゲストOS を再起動したら、次にIP アドレスを設定します。


# cat /etc/network/interfaces
source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens3
#iface ens3 inet dhcp
iface ens3 inet static
address 192.168.1.23
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
これでローカルの別のPC からアクセスできるようになりました。

copyright 2019 - Odorikani Real Estate Services main banner