Virtualization

Ubuntu 14.04 Üzerine KVM Kurulumu

Yakın bir zamandır Openstack ile uğraşıyorum ve bununla birlikte’de KVM ile uğraşıyorum. Bu yazımda sizlere Ubuntu üzerine KVM kurulumu hakkında bilgi vereceğim. Sanallaştırma çözümlerine baktığınızda genel olarak birçok firma başta VMware vSphere ESXi olmak üzere Hyper-V, Citrix XenServer gibi hypervisor’leri kullanıyor.

Bu kurulumda aşağıdaki donanımı kullandım.

http://www.tayfundeger.com/vmware-home-lab

KVM’i kurmak en önemli gereksinimlerden birtanesi CPU desteğinizin olmasıdır. Bunu da zaten kuruluma başlamadan önce check edebiliyoruz.

clip_image002

Ben kurulumu Ubuntu 14.04 üzerine yapacağım. SSH ile bağlantı yapıyorum ve kullanmış olduğum CPU’nun KVM uyumluluğunu görmek için aşağıdaki komutu çalıştırıyoruz ve gerekli paketler kuruluyor.

01

tayfun@KVM2:~$ sudo apt-get install cpu-checker

02

Reading package lists… Done

 

03

Building dependency tree

04

Reading state information… Done

 

05

The following extra packages will be installed:

06

msr-tools

 

07

The following NEW packages will be installed:

08

cpu-checker msr-tools

 

09

0 upgraded, 2 newly installed, 0 to remove and 88 not upgraded.

10

Need to get 17.5 kB of archives.

 

11

After this operation, 112 kB of additional disk space will be used.

12

Do you want to continue? [Y/n] y

 

13

Get:1 http://us.archive.ubuntu.com/ubuntu/ trusty/main msr-tools amd64 1.3-2 [10.6 kB]

14

Get:2 http://us.archive.ubuntu.com/ubuntu/ trusty/main cpu-checker amd64 0.7-0ubuntu4 [6,834 B]

 

15

Fetched 17.5 kB in 3s (4,985 B/s)

16

Selecting previously unselected package msr-tools.

 

17

(Reading database … 55709 files and directories currently installed.)

18

Preparing to unpack …/msr-tools_1.3-2_amd64.deb …

 

19

Unpacking msr-tools (1.3-2) …

20

Selecting previously unselected package cpu-checker.

 

21

Preparing to unpack …/cpu-checker_0.7-0ubuntu4_amd64.deb …

22

Unpacking cpu-checker (0.7-0ubuntu4) …

 

23

Processing triggers for man-db (2.6.7.1-1ubuntu1) …

24

Setting up msr-tools (1.3-2) …

 

25

Setting up cpu-checker (0.7-0ubuntu4) …

cpu-checker paketi kurulduktan sonra, kullanmış olduğumuz CPU’nun kvm ile uyumlu olup olmadığını görmek için aşağıdaki komutu çalıştırıyoruz.

1

tayfun@KVM2:~$ kvm-ok

2

INFO: /dev/kvm exists

 

3

KVM acceleration can be used

4

tayfun@KVM2:~$

clip_image004

KVM için önerilen kurulum 64 bit bir mimari üzerinedir ancak bu gerekli değildir. Yani 32 bit bir mimari üzerinede kurulum yapabilirsiniz. Aşağıdaki komutu çalıştırdığımızda;

Eğer 0 gözükür ise bu işlemcinin 64 bit olmadığı anlamına gelir.

Eğer 1 ‘den yüksek bir değer görürseniz bu CPU ‘nun 64 bit ile uyumlu olduğu anlamına gelir.

1

tayfun@KVM2:~$

2

tayfun@KVM2:~$ egrep -c ‘ lm ‘ /proc/cpuinfo

 

3

16

4

tayfun@KVM2:~$

 

5

tayfun@KVM2:~$

KVM Kurulumu:

clip_image006

KVM kurulumu için gerekli olan paketleri aşağıdaki komut ile yüklüyoruz.

001

tayfun@KVM2:~$

002

tayfun@KVM2:~$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

 

003

[sudo] password for tayfun:

004

Reading package lists… Done

 

005

Building dependency tree

006

Reading state information… Done

 

007

The following extra packages will be installed:

008

acl augeas-lenses binutils build-essential cgroup-lite cpp cpp-4.8

 

009

dctrl-tools debootstrap devscripts diffstat distro-info-data dnsmasq-base

010

dpkg-dev dput ebtables fakeroot g++ g++-4.8 gcc gcc-4.8 gcc-4.8-base gettext

 

011

hardening-includes intltool-debian iproute ipxe-qemu kpartx libaio1

012

libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl

 

013

libapt-pkg-perl libarchive-zip-perl libasan0 libasound2 libasound2-data

014

libasprintf-dev libasyncns0 libatomic1 libaugeas0 libauthen-sasl-perl

 

015

libautodie-perl libavahi-client3 libavahi-common-data libavahi-common3

016

libbluetooth3 libboost-system1.54.0 libboost-thread1.54.0 libbrlapi0.6

 

017

libc-dev-bin libc6 libc6-dev libcaca0 libclone-perl libcloog-isl4

018

libcommon-sense-perl libcroco3 libdigest-hmac-perl libdistro-info-perl

 

019

libdpkg-perl libemail-valid-perl libencode-locale-perl liberror-perl

020

libexporter-lite-perl libfakeroot libfdt1 libfile-basedir-perl

 

021

libfile-fcntllock-perl libfile-listing-perl libflac8 libfont-afm-perl

022

libgcc-4.8-dev libgettextpo-dev libgettextpo0 libgmp10 libgomp1

 

023

libhtml-form-perl libhtml-format-perl libhtml-parser-perl

024

libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl

 

025

libhttp-daemon-perl libhttp-date-perl libhttp-message-perl

026

libhttp-negotiate-perl libio-html-perl libio-pty-perl

 

027

libio-socket-inet6-perl libio-socket-ssl-perl libio-stringy-perl

028

libipc-run-perl libipc-system-simple-perl libisl10 libitm1 libjpeg-turbo8

 

029

libjpeg8 libjson-perl libjson-xs-perl liblist-moreutils-perl

030

liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libmnl0

 

031

libmpc3 libmpfr4 libnet-dns-perl libnet-domain-tld-perl libnet-http-perl

032

libnet-ip-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnetcf1

 

033

libnetfilter-conntrack3 libnl-route-3-200 libnspr4 libnss3 libnss3-nssdb

034

libogg0 libparse-debcontrol-perl libpciaccess0 libperlio-gzip-perl

 

035

libpixman-1-0 libpulse0 libquadmath0 librados2 librbd1 libsdl1.2debian

036

libseccomp2 libsndfile1 libsocket6-perl libspice-server1 libstdc++-4.8-dev

 

037

libstdc++6 libsub-identify-perl libtext-levenshtein-perl libtie-ixhash-perl

038

libtsan0 libunistring0 liburi-perl libusbredirparser1 libvirt0 libvorbis0a

 

039

libvorbisenc2 libwww-perl libwww-robotrules-perl libx86-1 libxen-4.4

040

libxenstore3.0 libxml2-utils libxslt1.1 libyajl2 lintian linux-libc-dev

 

041

manpages-dev patchutils pm-utils python-cheetah python-libvirt

042

python-vm-builder python3-chardet python3-debian python3-magic

 

043

python3-pkg-resources python3-six qemu-keymaps qemu-system-common

044

qemu-system-x86 qemu-utils seabios sharutils t1utils unzip vbetool wdiff

 

045

Suggested packages:

046

augeas-doc binutils-doc cpp-doc gcc-4.8-locales debtags bsd-mailx mailx

 

047

cvs-buildpackage devscripts-el gnuplot libfile-desktopentry-perl

048

libterm-size-perl libyaml-syck-perl mutt svn-buildpackage debian-keyring

 

049

equivs libsoap-lite-perl mini-dinstall python-bzrlib g++-multilib

050

g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg gcc-multilib autoconf

 

051

automake1.9 libtool flex bison gdb gcc-doc gcc-4.8-multilib libgcc1-dbg

052

libgomp1-dbg libitm1-dbg libatomic1-dbg libasan0-dbg libtsan0-dbg

 

053

libquadmath0-dbg gettext-doc libasound2-plugins alsa-utils augeas-tools

054

libgssapi-perl glibc-doc libdata-dump-perl libcrypt-ssleay-perl pulseaudio

 

055

libstdc++-4.8-doc radvd libauthen-ntlm-perl binutils-multiarch

056

libtext-template-perl libyaml-perl cpufrequtils radeontool python-markdown

 

057

python-pygments python-memcache python3-setuptools samba vde2 sgabios

058

kvm-ipxe-precise zip

 

059

The following NEW packages will be installed:

060

acl augeas-lenses binutils bridge-utils build-essential cgroup-lite cpp

 

061

cpp-4.8 dctrl-tools debootstrap devscripts diffstat distro-info-data

062

dnsmasq-base dpkg-dev dput ebtables fakeroot g++ g++-4.8 gcc gcc-4.8 gettext

 

063

hardening-includes intltool-debian iproute ipxe-qemu kpartx libaio1

064

libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl

 

065

libapt-pkg-perl libarchive-zip-perl libasan0 libasound2 libasound2-data

066

libasprintf-dev libasyncns0 libatomic1 libaugeas0 libauthen-sasl-perl

 

067

libautodie-perl libavahi-client3 libavahi-common-data libavahi-common3

068

libbluetooth3 libboost-system1.54.0 libboost-thread1.54.0 libbrlapi0.6

 

069

libc-dev-bin libc6-dev libcaca0 libclone-perl libcloog-isl4

070

libcommon-sense-perl libcroco3 libdigest-hmac-perl libdistro-info-perl

 

071

libdpkg-perl libemail-valid-perl libencode-locale-perl liberror-perl

072

libexporter-lite-perl libfakeroot libfdt1 libfile-basedir-perl

 

073

libfile-fcntllock-perl libfile-listing-perl libflac8 libfont-afm-perl

074

libgcc-4.8-dev libgettextpo-dev libgettextpo0 libgmp10 libgomp1

 

075

libhtml-form-perl libhtml-format-perl libhtml-parser-perl

076

libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl

 

077

libhttp-daemon-perl libhttp-date-perl libhttp-message-perl

078

libhttp-negotiate-perl libio-html-perl libio-pty-perl

 

079

libio-socket-inet6-perl libio-socket-ssl-perl libio-stringy-perl

080

libipc-run-perl libipc-system-simple-perl libisl10 libitm1 libjpeg-turbo8

 

081

libjpeg8 libjson-perl libjson-xs-perl liblist-moreutils-perl

082

liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libmnl0

 

083

libmpc3 libmpfr4 libnet-dns-perl libnet-domain-tld-perl libnet-http-perl

084

libnet-ip-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnetcf1

 

085

libnetfilter-conntrack3 libnl-route-3-200 libnspr4 libnss3 libnss3-nssdb

086

libogg0 libparse-debcontrol-perl libpciaccess0 libperlio-gzip-perl

 

087

libpixman-1-0 libpulse0 libquadmath0 librados2 librbd1 libsdl1.2debian

088

libseccomp2 libsndfile1 libsocket6-perl libspice-server1 libstdc++-4.8-dev

 

089

libsub-identify-perl libtext-levenshtein-perl libtie-ixhash-perl libtsan0

090

libunistring0 liburi-perl libusbredirparser1 libvirt-bin libvirt0

 

091

libvorbis0a libvorbisenc2 libwww-perl libwww-robotrules-perl libx86-1

092

libxen-4.4 libxenstore3.0 libxml2-utils libxslt1.1 libyajl2 lintian

 

093

linux-libc-dev manpages-dev patchutils pm-utils python-cheetah

094

python-libvirt python-vm-builder python3-chardet python3-debian

 

095

python3-magic python3-pkg-resources python3-six qemu-keymaps qemu-kvm

096

qemu-system-common qemu-system-x86 qemu-utils seabios sharutils t1utils

 

097

ubuntu-vm-builder unzip vbetool wdiff

098

The following packages will be upgraded:

 

099

gcc-4.8-base libc6 libstdc++6

100

3 upgraded, 177 newly installed, 0 to remove and 85 not upgraded.

 

101

Need to get 61.1 MB of archives.

102

After this operation, 206 MB of additional disk space will be used.

 

103

Do you want to continue? [Y/n]

Devam etmek için Y butonuna basıyoruz ve ilgili paketler yükleniyor.

Kurulum tamamlandıktan sonra düzgün çalıştığına emin olmak için aşağıdaki komutu çalıştırıyoruz.

1

tayfun@KVM2:~$ virsh -c qemu:///system list

2

error: failed to connect to the hypervisor

 

3

error: Failed to connect socket to ‘/var/run/libvirt/libvirt-sock’: Permission denied

Yukarıdaki komutu çalıştırdığımızda eğer hata alıyorsanız relogin olun yani çıkıp tekrar giriş yapın SSH’a.

1

tayfun@KVM2:~$ virsh -c qemu:///system list

2

Id    Name                           State

 

3

—————————————————-

4

 

 

5

tayfun@KVM2:~$

Tekrar login olduktan sonra aynı komutu yine çalıştırıyoruz ve karşımıza liste geliyor. Tabi şuanda virtual machine create etmediğimiz için karşımıza herhangi bir liste gelmiyor.

Ubuntu GUI ara yüzünü aşağıdaki komut ile yüklüyoruz.

1

sudo apt-get install –no-install-recommends ubuntu-desktop

Eğer KVM üzerinde yapacağınız işlemleri GUI arayüzünü kullanarak yapmak istiyorsanız bunun için virt-manager paketini yüklemeniz gerekiyor.

1

sudo apt-get install virt-manager

Yukarıdaki komutu çalıştırdığımızda Y butonu ile paketlerin yüklenmesini başlatıyoruz.

01

etting up libgnome2-bin (2.32.1-4ubuntu1) …

02

Setting up libgnome2-0:amd64 (2.32.1-4ubuntu1) …

 

03

Setting up libbonoboui2-0:amd64 (2.24.5-0ubuntu3) …

04

Setting up libgnomeui-0:amd64 (2.24.5-3) …

 

05

Setting up python-gnome2 (2.28.1+dfsg-1ubuntu2) …

06

Setting up virt-manager (0.9.5-1ubuntu3) …

 

07

Processing triggers for libc-bin (2.19-0ubuntu6.5) …

08

Processing triggers for libgdk-pixbuf2.0-0:amd64 (2.30.7-0ubuntu1) …

 

09

tayfun@KVM2:~$

10

tayfun@KVM2:~$ sudo reboot

 

11

 

12

Broadcast message from tayfun@KVM2

 

13

(/dev/pts/0) at 1:06 …

Kurulum tamamlandıktan sonra sudo reboot komutu ile sunucuyu reboot ediyoruz. Artık GUI arayüzünde açılacaktır.

clip_image008

User’imiz ile login oluyoruz.

clip_image010

Virtual machine yönetimini yapacağımız Virtual Machine Manager’i açıyoruz. Bunun için /usr/share/appliacations bölümüne giriyoruz ve Virtual Machine Manager’ı açıyoruz.

clip_image012

Virtual machine’lerinizi buradan yönetebilir yeni virtual machine’ler oluşturabilir hatta bunları farklı bir KVM’e migrate bile edebilirsiniz.

Umarım faydalı olmuştur.

İyi çalışmalar.

Related Articles

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back to top button