Category Archives: KVM

KVM, Benim icin yeni bir baslangic – Sanal Sunucu Yaratma (ubuntu-vm-builder)

Simdi sira geldi sanal makine yaratmaya, normalde vmware veya hyper-v kullananlar birkez sanal makine yaratip isletim sistemine gore “sysprep” veya benzeri islemleri yapip daha sonra benzeri sanal makineleri yaratmak icin bu imajlari kullanip yollarina devam ederler , openstack dokumanlarina bakildiginda hazir indirilebilir imajlar mevcut ama nasil iliskilendiriliyor bir sonraki makalede inceleyecegim -> http://docs.openstack.org/image-guide/ubuntu-image.html, ek olarak birde virt-install uygulamasina bakacagim cunku openstack olayinda ilk ornekler virt-install ile 🙂

ubuntu-vm-builder

Burada fazla konusmaktansa direkt komut ve aldigi parametreleri gormek daha guzel olacak 🙂

->libvirt + bridge <-

noroot@kvmci:~$ sudo ubuntu-vm-builder kvm trusty –addpkg linux-image-generic –addpkg openssh-server –arch amd64 –hostname server4 –dest server4 –libvirt qemu:///system –bridge bridge1 –mem 1024 –cpus 1 –ip xxx.yyy.zzz.212 –mask 255.255.255.224 –net xxx.yyy.zzz.192 –bcast xxx.yyy.zzz.223 –gw xxx.yyy.zzz.193 –dns 8.8.8.8 ;

Burada onemli konular ;

  • ilk parametre (kvm|xen) gibi , burada hypervisor olarak kvm kullandigimiz icin kvm yazdim
  • isletim sistemi release adini vermelisiniz mesela “trusty” . Hazirda calistiginiz Ubuntu release adini ogrenmek icin “lsb_release -a” komutunu calistirabilirsiniz.
  • Burada onemli bir bug var , ubuntu trusty derlerken mutlaka “–addpkg linux-image-generic” paramteresini ekleyin aksi taktirde islem sonuclanmayacak, ilgili bug id ve link – > https://bugs.launchpad.net/ubuntu/+source/vm-builder/+bug/1037607
  • Ubuntu icin lutfen dikkat “–addpkg openssh-server” eklemezseniz SSH yapamazsiniz 😀
  • Eger sanal makineyi libvirt ile manage edecekseniz mutlaka bu parametreyi ekleyin “–libvirt qemu:///system”
  • Sanal makinenin sanal network interface’nin baglanacagi bridge’i belirtiyoruz “–bridge bridge1”
  • Memory/cpu gibi bilgiler set edilmis durumda
  • Bunun disinda geri kalan diger paramtereleri vermedik ve onlarin hepsi varsayili olanlar olacak, mesela ;
    • Disk 4 G
    • istenir ise ayretten /opt belirtilebilir ama parametreyi set etmedigimiz icin olmayacak
    • Kullanici adi varsayili olarak ubuntu sifre ubuntu
    • Dil UTC
  • Ek ne tip parametreler set edebilmek icin “sudo ubuntu-vm-builder kvm trusty –help” yazip kontrol edin lutfen
  • Kurulum asamasinda ne oldugunu gormek icin (eger temp path’ini  ubuntu-vm-builder komutunu calistirirken farkli bir yol tanimlamadiysaniz) tail -f /tmp/tmpnMt5S_ bakabilirsiniz
  • Islem bittikten sonra isletim sisteminin icersinde oldugu sanal makinenin qcow2 uzantili dosya ile ilgili ubuntu-vm-builder komutunu nerede calistirdiysaniz, orada olacatir. Islem sonunda tum isletim sistemleri paketleri temp dosyasi adinda ve qcow2 uzantili bir dosyada birlestirilecektir.

 

ubuntu-vm-builder yarattigi isletim sistemi imaji nerede ?

noroot@kvmci:~$ pwd

/home/noroot

noroot@kvmci:~$ ls -al server1/

total 751636

drwxr-xr-x 2 noroot noroot      4096 Nov 27 12:06 .

drwxr-xr-x 9 noroot noroot      4096 Nov 27 15:01 ..

-rwxrwxr-x 1 noroot noroot        68 Nov 27 12:03 run.sh

-rw-r–r– 1 noroot noroot 769720320 Nov 27 12:03 tmpSCgVIU.qcow2

Eger –libvirt qemu:///system eklemezseniz ne olur ? Sanal makineyi libvirt uzerinden yonetemezsiniz , makineyi calistirmak icin islem sonrasi yaratilan bash script’ini kullanmalisiniz.

noroot@kvmci:~$ cd server1/

noroot@kvmci:~/server1$ ls -al

total 751636

drwxr-xr-x 2 noroot noroot      4096 Nov 27 12:06 .

drwxr-xr-x 9 noroot noroot      4096 Nov 27 15:01 ..

-rwxrwxr-x 1 noroot noroot        68 Nov 27 12:03 run.sh

-rw-r–r– 1 noroot noroot 769720320 Nov 27 12:03 tmpSCgVIU.qcow2

run.sh icerigi ….

noroot@kvmci:~/server1$ cat run.sh

#!/bin/sh

exec kvm -m 1024 -smp 1 -drive file=tmpSCgVIU.qcow2 “$@”

Simdi sunucuyu gorelim, burada dikkat etmemiz gereken konu “–all” olayi eger bunu eklemezseniz ilgili makineyi goremezsiniz 😀

 

virsh # list –all

Id    Name                           State

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

9     server6                        running

–     server5                        shut off

Calistiralim

noroot@kvmci:~$ virsh start server5

setlocale: No such file or directory

Domain server5 started

Not : Bu arada ben komutlari hep direkt calistiriyorum iserseniz ayni sekilde once “virsh” diyerek virsh# console’a sonrada geri kalan komutu yani “start server5” diyebilirsiniz

Ilgili sanal sunucuyu durdurmak icin , burada “destory” korkutucu gelmesin stop ediyor kendisi 🙂

noroot@kvmci:~$ virsh destroy server5

setlocale: No such file or directory

Domain server5 destroyed

veya

noroot@kvmci:~$ virsh shutdown server5

setlocale: No such file or directory

Domain server5 is being shutdown

Peki sanki bir VMware sanal sunucu gibi vmx dosyasini ve icergini gormek istesek 

noroot@kvmci:~$ virsh edit server5

setlocale: No such file or directory

<domain type=’kvm’>

<name>server5</name>

<uuid>649ccb80-622e-48d2-8a5c-28e5c6f444fd</uuid>

<memory unit=’KiB’>1048576</memory>

<currentMemory unit=’KiB’>1048576</currentMemory>

<vcpu placement=’static’>1</vcpu>

<os>

<type arch=’x86_64′ machine=’pc-i440fx-trusty’>hvm</type>

<boot dev=’hd’/>

</os>

<features>

<acpi/>

</features>

<clock offset=’utc’/>

<on_poweroff>destroy</on_poweroff>

<on_reboot>restart</on_reboot>

<on_crash>destroy</on_crash>

<devices>

<emulator>/usr/bin/kvm</emulator>

<disk type=’file’ device=’disk’>

<driver name=’qemu’ type=’qcow2’/>

<source file=’/home/noroot/server5/tmp9QV2Om.qcow2’/>

<target dev=’hda’ bus=’ide’/>

<address type=’drive’ controller=’0′ bus=’0′ target=’0′ unit=’0’/>

</disk>

<controller type=’usb’ index=’0′>

<address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x01′ 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:39:f8:8e’/>

<source bridge=’bridge1’/>

<model type=’virtio’/>

<address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x03′ function=’0x0’/>

</interface>

<input type=’mouse’ bus=’ps2’/>

<input type=’keyboard’ bus=’ps2’/>

<graphics type=’vnc’ port=’-1′ autoport=’yes’ listen=’0.0.0.0′>

<listen type=’address’ address=’0.0.0.0’/>

</graphics>

<video>

<model type=’cirrus’ vram=’9216′ heads=’1’/>

<address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x02′ function=’0x0’/>

</video>

<memballoon model=’virtio’>

<address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x04′ function=’0x0’/>

</memballoon>

</devices>

</domain>

Bundan sonrasi vi editor kullanmak gibi, eger degisiklik yapicaginiz birsey var ise onu degisitip “wq” save edip sanal sunucuyu tekrardan calistiriyorsunuz.

Interface kismina dikkat, burada sanal sunucunun hangi bridge , sunucuya hangi MAC atandigina ve kart tipini gorebilirsiniz.
“virtio” bizim icin onemli cunku cunku yuksek performans’li network ve disk gereksinimleri icin gerekli, kendisini Xen paravirtualized device veya VMware Guest Tools gibi.

<interface type=’bridge’>

<mac address=’52:54:00:39:f8:8e’/>

<source bridge=’bridge1’/>

<model type=’virtio’/>

<address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x03′ function=’0x0’/>

</interface>

Aaaaa network calisiyor mu diye kontrol etmeyi unuttuk 😦 

ubuntu@server6:~$ ping 8.8.8.8

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

64 bytes from 8.8.8.8: icmp_seq=1 ttl=49 time=36.1 ms

64 bytes from 8.8.8.8: icmp_seq=2 ttl=49 time=35.5 ms

64 bytes from 8.8.8.8: icmp_seq=3 ttl=49 time=35.4 ms

Guzel calisiyor… , birde bridge ve ifconfig gorunumune bakalim , asagida bridge’e bagli MAC adresleri aktif olup olmadiklari var

noroot@kvmci:~$ brctl showmacs bridge1

port no mac addr is local? ageing timer

1 00:17:a4:77:0c:95 yes   0.00

1 00:1f:9e:78:e8:87 no   0.32

1 00:24:38:99:bf:00 no   3.57

3 52:54:00:5b:f5:0c no   70.08

1 9c:b6:54:91:cb:2d no   21.43

1 c8:cb:b8:a5:7c:a9 no   0.57

3 fe:54:00:5b:f5:0c yes   0.00

vnet1 bridge e baglanmis , vnet’lerin her biri sanal sunucularin network interface’leri oluyor

noroot@kvmci:~$ brctl show

bridge name bridge id STP enabled interfaces

bridge1 8000.0017a4770c95 no em2

vnet1

ifconfig ciktilarida asagidaki gibi 

vnet1     Link encap:Ethernet  HWaddr fe:54:00:5b:f5:0c

inet6 addr: fe80::fc54:ff:fe5b:f50c/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:629 errors:0 dropped:0 overruns:0 frame:0

TX packets:26569 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:500

RX bytes:67253 (67.2 KB)  TX bytes:1662178 (1.6 MB)

Birde console a nasil dusuyoruzu yapar isek bu is biter 😀 basit anlamda islemleri yapmis olacagiz bunun icin bir iki ayari degisitirip sanal sunucuyu tekrardan calistiracagiz.

Oncelikle sanal sunucu konfograsyon dosyasindaki “graphics”  kisminda 127.0.0.1 yazan kismi asagidaki gibi degisitir ve sanal sunucuyu tekrardan baslatin

<graphics type=’vnc’ port=’-1′ autoport=’yes’ listen=’0.0.0.0′>
<listen type=’address’ address=’0.0.0.0’/>
</graphics>

Yok ise VNC Client indirip , calisitirin. Hangi VNC port’u kullanacaginizi asagidaki komut ile ogrenebilirsiniz

noroot@kvmci:~$ virsh vncdisplay server6

setlocale: No such file or directory

:1

KVM node’un ip adresinin yanina display numarasini ekleyin xxx.yyy.zzz.ttt:1 gibi yukardaki gibi ….

Screen Shot 2015-11-27 at 17.38.29

ve guzellllllll

Screen Shot 2015-11-27 at 17.34.50

Serial Console uzerinden baglanmak icin ; 

https://jaredkipe.com/blog/programming/general/ubuntu-kvm-3-virsh-console-fix/ veya https://help.ubuntu.com/community/KVM/Access

 

VNC Download for MAC : https://www.realvnc.com/download/get/1734/eula/

VM

Advertisements

KVM, Benim icin yeni bir baslangic – Networking 1

Network zamanimizda SDDC ile beraber degisime baslasmis ve VMware NSX , Openstack Networking Neutron , OpenDaylight gibi SDN yaklasimlariylada network alt yapilarini sekillendirme gereksinimlerini koruklemektedir.

Acikcasi o kadar cok VMware ile ilgilenmekten vSwitch , vDS , Virtual Port , Port group , Uplink Port ,  NSX derken KVM, Xen , Openstack networking e donunce soyle bir ne oluyor dedim kendi kendime , onun icin bu konu biraz genis.

Ubuntu dokumantasyonu KVM/Networking anlatirken iki tip seyden bahsediyor ;

  • Usermode Networking
    • Cok basitce guest OS lar network servislerine erisebilirken (NAT yapilmis bir ortam) mesela bir web sayfasini gezip bir yerlere FTP yapabilirken , host edilen ve disariya acik olan servislerin (mesela bir web server olarak calismak (google.com web sitesini host etmek gibi)) sunulmasina imkan verilmez.
  • Bridged Networking –> Bunu simdi uzun uzadiya anlatacagim fakat kisaca kendisi guest OS larin sanal network kartlarinin bagli oldugu bridge ve bu bridge uplink i konumunda olan fiziksel arabirim uzerinden dis network lere erisim saglar.

Oncelikle “Bridge” : Bridge aslinda cok eski bir network deyimi –> http://www.just2good.co.uk/bridgeSwitch.php

Bridge

Essentially, the problem with extending LANs with hubs and repeaters is that signals are amplified, but so too is the noise. Since these devices are dumb, all data is forwarded onto the rest of the network. With many nodes, the result is that the amount of network traffic becomes too volumous and the collision rate increases.

A way around this is to use a more intelligent device such as a bridge. It should be noted that a bridge can be a dedicated piece of hardware, or may also be a suitably configured workstation with two Ethernet network cards.

Bridges allow LANs to be split up into smaller ‘segments’ (called internetworking), yet all machines in the divided network still form a single IP network. A node within a segment in this internetwork will only see frames transmitted by nodes within the same segment, and not frames from nodes in other segments of the internetwork, unless they are forwarded from one segment to the other by the bridge. Hence the bridge performs the filtering of frames in order to limit the amount of network traffic. This is possible because bridges work at Layer 2 (Data Link) of the OSI model. This means that they can examine the data being sent and determine which segment the data needs to be forwarded to.

Gorevi transparan olarak iki network interface i arasinda trafigi gecirmek , OSI ye gore ikinci katmanda calisir yani MAC adresleri ile hasir nesir olur ,  bunu yaparkende protokol bagimsizdir IP , IPX , NetBEUI (heygidi hey) , STP destekler, multiple-bridge destekler

Linux da bridging kernel kodunda ve sanal olarak yapilmakla beraber hardware cihazlara gore birtakim avatajlarida vardir mesela filtering ve traffic shaping gibi . Mesela filtering e ornek olarak “ebtables” verilebilir. Iptables in L2 de calisani gibi dusumebilirsiniz neler yapabilir derseniz buna , ornek derseniz buna tiklayin. Traffic Shaping icin ise Linux da Traffic-Control (tc) ornek verilebilir.

KVM ve sanal makine gozunden baktigimizda bridge = vswitch veya bridge = L2 Switch , yani KVM uzerinde kosan sanal makineleri sanal network interface lerinin baglandigi yazilim tabanli switch. VMware gozunden vSS (vSphere Standard Switches) . Sonuc olarak hypervisor VM ler arasi ve dis networklere dogru trafigi bridge’ler sayesinde iletir.

Burada TUN/TAP , MacVLAN , MacVTap , VEPA diye kavramlar onu sonradan inceleyecegiz. (elde var bir)

Peki Open vSwitch ne ? 

Anahtar konular, elimizde eger birden fazla KVM nodu var ise , network islemlerini bir programatige kavusturmak istiyor isek ve standart trafik bilgi ve olcumleme araclarini  (NetFlow,IPFIX) kullanacaksaniz bu durumda adres Open vSwitch oluyor, biraz daha ayrintiya girecek olur isek.

Durumun Tasinabilirligi : Herhangi bir sanal sunucunun durumunun kolayca saptanabilmesi ve farkli bir KVM host a tasinabilir olmasi gerekir , bunu yaparkende halihazirda sistem calisirken ogrenilmis  L2 learning tablo’larinin , L3 Forwarding tablo’larinin ve set edilmis Access List , QoS , policy routing ve monitoring (NetFlow,IPFIX) ayarlarinin ayni sekilde sanal makinenin yeni yerinde calisiyor olmasi gerekir. Open vswitch bunu saglar.

Network Dinamiklerine cevap verme : Sanal ortamlarda sayisiz vm yaratma , silme , migrate etme gibi islemler yapilir , eger bu islemleri izleyip birseyler tetiklemek istiyorsaniz open vswitch size OVSDB (Network State Database) ve NetFlow gibi araclarla degisiklikleri izleyip aksiyon almanizi saglarlar. Mesela OVSDB sorgulayarak VM Migration lari izleyebilirsiniz. OpenvSwitch hakkinda daha sonra daha ayrintili bakacagim (elde oldu 2)

Baslangic icin bu kadar yeterli, zaten ilk basta linux bridging kullanacagimiz icin , openstack olaylarinida daha sonra girecegimden yola devam (Bu arada openstack e girdigimizde birde ML2 adli plugin le karsilasacagiz ki o da bize KVM host uzerinde networking icin linux bridge mi , openvswitch mi , cisco nexus mu artik ne kullanacagimizi belirleyen bir arabirim olacak) (elde oldu 3)

Simdi bir onceki “KVM, Benim icin yeni bir baslangic – Kurulum” uzerinden devam edelim ;

KVM icin gerekli seyler kurulduktan sonra birkac noktayi belirlemek lazim ;

Oncelikle bir “ifconfig” yapalim , goreceksiniz ki loopback ve ethernet interface’inden farkli bir interface daha var

virbr0    Link encap:Ethernet  HWaddr 76:81:28:9d:b2:05

inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0

UP BROADCAST MULTICAST  MTU:1500  Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Eger “cat /etc/network/interfaces” derseniz hic birsey goremeyeceksiniz 🙂

Bu arada ortada 192.168.122.0/24 bir network turemis ve sart olmasada bridge interface “virbr0” atanmis


Kurulum esnasinda “virbr0” adinda bir bridge yaratilmis ve KVM host uzerindeki herhangi bir fiziksel interface’e atanmamis.

noroot@kvmci:~$ brctl show

bridge name bridge id STP enabled interfaces

virbr08000.000000000000yes


 

Normalde ilk kurulumda herhangi firewall kurali aktif degil idi Ubuntu sunucuda , ne ufw (gufw) nede iptables fakat ilgili kurallar ilgili bridge interface icin otomatik olarak gelmis

noroot@kvmci:~$ sudo iptables -L -v -n

[sudo] password for noroot:

Chain INPUT (policy ACCEPT 236 packets, 20251 bytes)

pkts bytes target     prot opt in     out     source               destination

0     0 ACCEPT     udp  —  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53

0     0 ACCEPT     tcp  —  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53

0     0 ACCEPT     udp  —  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:67

0     0 ACCEPT     tcp  —  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:67

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target     prot opt in     out     source               destination

0     0 ACCEPT     all  —  *      virbr0  0.0.0.0/0            192.168.122.0/24     ctstate RELATED,ESTABLISHED

0     0 ACCEPT     all  —  virbr0 *       192.168.122.0/24     0.0.0.0/0

0     0 ACCEPT     all  —  virbr0 virbr0  0.0.0.0/0            0.0.0.0/0

0     0 REJECT     all  —  *      virbr0  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

0     0 REJECT     all  —  virbr0 *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT 160 packets, 18157 bytes)

pkts bytes target     prot opt in     out     source               destination

0     0 ACCEPT     udp  —  *      virbr0  0.0.0.0/0            0.0.0.0/0            udp dpt:68


 

Birde libvirt kurulumu ile beraber “dnsmasq” turemis durumda , boylece hizli bir sekilde DHCP , DNS , BOOTP/PXE boot gibi servisler hizlica kullanilabilir durumda.

noroot@kvmci:~$ ps -fe | grep dnsmasq

libvirt+  1647     1  0 18:39 ?        00:00:00 /usr/sbin/dnsmasq –conf-file=/var/lib/libvirt/dnsmasq/default.conf

noroot    1824  1714  0 19:04 pts/0    00:00:00 grep –color=auto dn


 

Libvirt api daha onceki makalemizde dedigimiz gibi sadece hypervisor’leri degil ayni zamanda storage, network gibi bilesenleride yonetiyor fakat makalenin bundan sonraki kisminda libvirt virtual networking ile ilgili herhangi birsey yazmayacagim, yapmak istedigim cok kabaca bir VM’e public ip adresi vermek ve onu internet e cikartmak yani bridge i sanki Pass-True cihaz gibi kullanmak.

Oncelikle su fazlaliklari bir atalim , yaratilan bridge , iptables rule lari falan hepsi bir gitsin . Burada libvirt varsayili olarak bu ayarlamalari yaptigindan kaldirmasida cok kolay.

Asagidaki komut  sayesinde libvirt kurulumunda varsayili olarak kurulan default network’unu acilista devreye girmemesini saglayacagiz

noroot@kvmci:~$ virsh net-autostart default –disable

setlocale: No such file or directory

Network default unmarked as autostarted

Durum bu sekilde olacak

noroot@kvmci:~$ virsh net-list

setlocale: No such file or directory

Name                 State      Autostart     Persistent

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

default              active     no            yes

Simdi hersey temiz olsun makineyi bir reboot edelim bridge’in kayboldugunu ve iptables kurallarinin gittigini gorelim

Uzerinde calisacagimiz yapinin resmi asagidaki gibi olacak ;

Screen Shot 2015-11-27 at 14.39.02

Yukardaki resimde gordugunuz gibi bir KVM node mevcut ve iki adet network interface’i var, ilgili interface’ler “access mode” tanimli, burada ben ikinci interface’imi “bridge” gereksinimleri icin kullanacagim. Daha sonra sanal makineler yaratilacak ve bridge interface’i kullanaraktan yollarina devam edecekler.

Oncelikle herhangi bir ip adresi atanmamis olan ikinci interface’imi up ediyorum

noroot@kvmci:~$ sudo ifconfig em2 up

brctl” komutu ile “bridge1” adinda bir bridge yaratiyorum

noroot@kvmci:~$ sudo brctl addbr bridge1

[sudo] password for noroot:

Bridge’in kullanacagi network interface’ini set ediyorum

 

noroot@kvmci:~$ sudo brctl addif bridge1 em2

Kontrol edelim ….

noroot@kvmci:~$ brctl show

bridge name bridge id STP enabled interfaces

bridge1 8000.0017a4770c95 no em2

Bridge interface’ini up edelim

noroot@kvmci:~$ sudo ifconfig bridge1 up

Bu islemden sonra “ifconfig” dediginizde bridge interface’inizde gormeye baslayacaksiniz, elimizde henuz makine olmadigindan geri kalan sanal sunucu yaratma ve ilgili bridge interface baglanma olayini o zaman yapacagiz.

Son olarak burada bridge interface yarattigim network interface’i “trunk” ayarlida olabilir , bir baglanti uzerinden birden fazla bridge’de yaratabiliriz ama buradaki makale cok basit bir sekilde neyin ne oldugunu anlamak icin var.

Bu arada ilgili bridge konfigrasyonu KVM Node reboot edildiginde gidecek , kalici ayarlanmis degil.

Guzel Linkler

OVS Hakkinda bunuda izlemeden gecememek lazim bu arada 🙂 https://www.openstack.org/summit/openstack-paris-summit-2014/session-videos/presentation/migrating-production-workloads-from-ovs-to-linux-bridge-w-ml2

http://git.openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=FAQ;hb=HEAD
https://github.com/openvswitch/ovs/blob/master/WHY-OVS.md

 

KVM, Benim icin yeni bir baslangic – Kurulum

Biraz acyip olacak simdi /proc/cpuinfo dan islemcinin sanallastirma destegi var mi yokmuyu sorgulamak fakat guzel bir paket varmis “cpu-checker” hic ihtiyacim olmamisti , “kvm-ok” diye bir komut var bu da hos herseyi gosteriyormus ….


 

noroot@kvmci:~$ sudo apt-get install cpu-checker

 

 

noroot@kvmci:~$ kvm-ok

INFO: /dev/kvm exists

KVM acceleration can be used


 

KVM Kurulumuna baslamadan once “libvirt” nedir bi onu anlamak gerek , aslinda daha cok “virsh” komutunu goruyordum her yerde fakat “libvirt” tam olarak nedir pek dikkat etmemistim , simdi anliyorumki “libvirt” aslinda generic bir API , “virsh” komut satirinda calisan libvirt api sini kullanan bir executable, “libvirtd” ise calisan deamon’in adi.

Libvirt API sinin amaci tek bir kutuphane ile birden fazla sanallastirma platform’unun (KVM,VMware,Xen) ve diger network , storage  gibi bilesenleri  yonetmek.

Libvirt FAQ bence onu anlamak icin baslanmasi gereken en guzel yer http://wiki.libvirt.org/page/FAQ#What_is_libvirt.3F
Birde cok kafalara takilan (belkide sadece benim kafama takilmistir) QEMU , KVM-QEMU , KVM diye seyler var ; QEMU emulator olarak geciyor, islemcideki sanallastirma ile gelen ozelliklerini kullanamiyor (Intel-VT ile gelen CPU,RAM,SR-IOV gibi ) fakat virtualizer kullanarak (bu KVM olabilir Xen olabilir) beraber calismaya basladiginda bu kez guest diye adlandirilan sanal makinelerdeki process ler host in CPU sunda direkt calisabilir oluyor
Simdi KVM Kurulumu

vahric:~ vahricmuhtaryan$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Yukardaki kurulumda dikkatimi ceken paketlerden ikisi ; ubuntu-vm-builder ki kendisi Ubuntu tabali sanal makineler yaratmal icin kullaniliyor, birde “virt-install” var  ki kendisi python script olup Red-Hat tarafindan gelistirilmistir.

Bridge-utils , Linux uzerinde bridge yonetimi yapmak icin gerekli olan araclari kuracaktir.

Ubuntu da 14.04 ve sonrasi icin artik kullanici yaratmak ve bu kullaniciyi libvirtd gurubuna eklemek gibi seyler yapmaya gerek yok.

Kurulum bittikten sonra saglama yapalim ;

KVM modulu yuklenmis

noroot@kvmci:~$ lsmod | grep kvm

kvm_intel             143630  0

kvm                   452096  1 kvm_intel

Libvirtd calisiyor

noroot@kvmci:~$ ps -fe | grep libvirtd

root     11766     1  0 19:36 ?        00:00:00 /usr/sbin/libvirtd -d

noroot   12101 12008  0 19:53 pts/2    00:00:00 grep –color=auto libvirtd

Aslinda direkt ‘virsh’ yazip cli> a dusup’de “list” yazabilirsiniz fakat direk console dan -c ile localhost a baglanipda yazabiliyoruz

noroot@kvmci:~$ virsh -c qemu:///system list

setlocale: No such file or directory

Id    Name                           State

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

noroot@kvmci:~$

Bundan sonra yonetmek icin eger krafik aramabirim istiyorsaniz “virt-manager” kurabilirsiniz …..

Bir sonraki adimda Networking ….

 

Guzel Linkler :

http://www.qemu.org