[KVM] ②VMの作成 part 1

関係記事

[KVM] 序章: KVMの概念
[KVM] ①KVM環境の構築

概要

構築済みのKVMホストに Ubuntu16.04のゲストOSを作成する。
 

VM作成、運用で利用するパッケージのインストール

root@kvm:~# apt-get -y install libosinfo-bin libguestfs-tools virt-top xmlstarlet kpartx gddrescue

 

VMインストール

VMのDisk領域の作成


※ 本来ならば別のdiskをアタッチしてLVMなどを組むのが推奨されるが、
※ 個人利用なので、同じディスク内のディレクトリを掘って利用する。
root@kvm:~# mkdir -p /usr/local/kvm/vms
root@kvm:~# mkdir -p /usr/local/kvm/images

Ubuntuのイメージをダウンロード

root@kvm:~# curl -o /usr/local/kvm/images/ubuntu-16.04.4-server-amd64.iso  http:
//releases.ubuntu.com/16.04.4/ubuntu-16.04.4-server-amd64.iso
root@kvm:~# ll /usr/local/kvm/images/ubuntu-16.04.4-server-amd64.iso
-rw-r--r-- 1 root root 889192448  3月  7 22:48 /usr/local/kvm/images/ubuntu-16.04.4-server-amd64.iso

VMの作成

root@kvm:~# virt-install \
--name=test01 \
--memory=1024 \
--disk path=/usr/local/kvm/test01,size=20 \
--location=/usr/local/kvm/images/ubuntu-16.04.4-server-amd64.iso \
--connect qemu:///system \
--graphics none \
--vcpus=1 \
--extra-args 'console=tty0 console=ttyS0,115200n8'

======virt-install の解説===============
--name=test01  : virshで管理する表示名
--memory=1024  : 割り当てメモリ量
--disk path=/usr/local/kvm/test01,size=20 : 割り当てるディスク領域、サイズ指定 
--location=/usr/local/kvm/images/ubuntu-16.04.4-server-amd64.iso : インストール時に利用するイメージを指定
--connect qemu:///system  : 
--graphics none  : インストールをGUIで行わない(CLIで実施する)
--vcpus=1   : 割り当てするCPU数
--extra-args 'console=tty0 console=ttyS0,115200n8'

仮想マシンのsirial consoleに接続された状態になるので、以下の順で実施していく

⇒ LANG : C
⇒ Locale : Asia
⇒ TimeZoine : Japan
⇒ No
⇒ Keymap : Japanases
⇒ Keymap : Japanases Kana
⇒ Continue

⇒ hostname : test01
⇒ Ubuntu archive : Japan
⇒ mirror jp.ubuntu.archive.com
⇒ PROXY : None 

⇒ newuser : ubuntu
⇒ newuser fullname : ubuntu
⇒ Encript DIr ⇒ No
⇒ TimeZone : Asia/Tokyo ⇒Yes

⇒ Partition
 - Gurid --use entire disk
 - SCSII (0.0.0)(sda) 21.5 GB
 - YES

⇒ Configuration console-setup ⇒ No automartic updates
⇒ Software selection : OpenSSH Server のみ選択

⇒ Is the system clock set to UTC? ; YES
⇒ Continue

VMが落ちてもコンソールはつながったままなので、切断する

[Ctrl] + ] を押す

長かった 自宅の回線が細くて1時間かかった。

 

作成されたVMの確認をしていく

起動ログ確認

QEMUのログはここにでる

root@kvm:~# cat /var/log/libvirt/qemu/test01.log

 

停止の確認

root@kvm:~# virsh list --all
 Id    名前                         状態
----------------------------------------------------
 2     test01                         実行中

root@kvm:~# virsh destroy test01
ドメイン test01 は強制停止されました

root@kvm:~# virsh list --all
 Id    名前                         状態
----------------------------------------------------
 -     test01                         シャットオフ

起動の確認

root@kvm:~# virsh start test01
ドメイン test01 が起動されました

root@kvm:~# virsh list --all
 Id    名前                         状態
----------------------------------------------------
 3     test01                         実行中

コンソールに接続

root@kvm:~# virsh console test01
※設定ミスっててコンソール接続できないよ!! 草はえるねwwww

なおOpenSSH serverをいれていたおかげで SSHログインは出来たので、とりあえず動作確認は出来た。

 

シリアルコンソールを有効化してみる

この辺参照 https://help.ubuntu.com/community/SerialConsoleHowto

設定ミスじゃなかった、仕様だった。

root@test01:~# cat << 'EOF' > /etc/init/ttyS0.conf
> # ttyS0 - getty
> #
> # This service maintains a getty on ttyS0 from the point the system is
> # started until it is shut down again.
> start on stopped rc RUNLEVEL=[2345]
> stop on runlevel [!2345]
> respawn
> exec /sbin/getty -L 115200 ttyS0 vt102
> EOF


root@test01:~# vi /etc/default/grub
 ※GRUB_CMDLINE_LINUX_DEFAULTを以下のものに変更
---------------------------------------------------------------
GRUB_CMDLINE_LINUX_DEFAULT="noresume nomodeset consoleblank=0 console=tty0 console=ttyS0,115200n
---------------------------------------------------------------

root@test01:~# update-grub2
root@test01:~# reboot

 

VMのコンフィグファイルを見てみる。見るだけで特に何も

root@kvm:~# cat /etc/libvirt/qemu/test01.xml
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit test01
or other application using the libvirt API.
-->

<domain type='kvm'>
  <name>test01</name>
  <uuid>ed329ef8-3f95-4cf1-84c2-e5c2d8f3676b</uuid>
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-xenial'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>Penryn</model>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <pm>
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
    <emulator>/usr/bin/kvm-spice</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/usr/local/kvm/test01'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:45:95:c4'/>
      <source bridge='br0'/>
      <model type='rtl8139'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </memballoon>
  </devices>
</domain>

※ いろいろ突っ込みどころがある。。。時間が出来たら virt-installを適宜修正する

VMのネットワークについて確認する。

vnet0

root@kvm:~# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.00248c8a0284       no              enp2s0
                                                        vnet0

root@kvm:~# ifconfig vnet0
vnet0     Link encap:イーサネット  ハードウェアアドレス fe:54:00:45:95:c4
          inet6アドレス: fe80::fc54:ff:fe45:95c4/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:5744 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:14925 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000
          RXバイト:652846 (652.8 KB)  TXバイト:9025262 (9.0 MB)

 

 感想

いちいちインストーラ走らせてしまうと時間がかかってしまうので、次の記事でkickstartを利用した簡易化についてまとめます。

今日はもう眠い…..

Leave a Reply

Your email address will not be published. Required fields are marked *

備忘録の覚書 © 2017 Frontier Theme