+ All Categories
Home > Documents > Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de...

Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de...

Date post: 05-Jul-2018
Category:
Upload: truongque
View: 243 times
Download: 0 times
Share this document with a friend
29
Curs 4 API de virtualizare Servicii de ret , ea pentru ISP 18 martie 2010 SRISP Curs 4, API de virtualizare 1/29
Transcript
Page 1: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Curs 4API de virtualizare

Servicii de ret,ea pentru ISP

18 martie 2010

SRISP Curs 4, API de virtualizare 1/29

Page 2: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Outline

Virtualizare

libvirt

VIX API

Concluzii

Intrebari

SRISP Curs 4, API de virtualizare 2/29

Page 3: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Not, iuni de virtualizare (recapitulare)

I nod (host node, hardware node)

I hypervisor

I mas, ina virtuala (guest)

I paravirtualizare, virtualizare completa, emulare

I virtualizare cu suport hardware, virtualizare la nivelul SO

SRISP Curs 4, API de virtualizare 3/29

Page 4: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Solut, ii de virtualizare

I VMware Workstation, Server, VirtualBox, VirtualPC

I Xen, VMware ESX, Hyper-V, Oracle VM

I OpenVZ, lxc, Linux V-Server, Container/Zone

I KVM, qemu, UML

SRISP Curs 4, API de virtualizare 4/29

Page 5: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Interfet,e de gestiune a solut, iilor de virtualizare

I graficeI integrate ın cadrul aplicat, iei (VMware, VirtualBox)I Virtual Machine Manager (libvirt Python)I Proxmox Virtual Environment

I CLII qemuI vzctlI virsh (libvirt)I vmware-cmd

SRISP Curs 4, API de virtualizare 5/29

Page 6: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

API de virtualizare

I automation API

I VMware VIX API

I VirtualBox API

I Xen API

I libvirt

SRISP Curs 4, API de virtualizare 6/29

Page 7: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Outline

Virtualizare

libvirt

VIX API

Concluzii

Intrebari

SRISP Curs 4, API de virtualizare 7/29

Page 8: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

libvirt

I interact, iune cu solut, ii de virtualizare (ın principal Linux)

I C API, binding-uri ın alte limbaje

I suport init, ial/principal pentru Xen, Qemu, KVM

I suport pentru LXC, OpenVZ, VMware ESX/GSX, VirtualBox(drivere)

I daemon de control (libvirtd) acolo unde este cazul – nuexista hypervisor (Qemu, KVM)

SRISP Curs 4, API de virtualizare 8/29

Page 9: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Instalare

I # apt-get install libvirt0 libvirt-bin

libvirt-dev libvirt-doc virtinst

I libvirt-bin – daemon libvirt(/etc/default/libvirt-bin)

I virtinst – comenzi pentru creare/clonare de mas, ini virtuale

SRISP Curs 4, API de virtualizare 9/29

Page 10: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Connection URI

I identificarea driverului s, i, eventual, a sistemului de la distant, a

I test:///default – test

I xen:/// – Xen

I qemu:///system, qemu:///session – Qemu, KVM

I openvz:///system – OpenVZ

I openvz://example.com/system – remote connection

SRISP Curs 4, API de virtualizare 10/29

Page 11: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Drivers

I delegarea implementarii unui driver specifici unei solut, ii devirtualizare

I selectat pe baza URI-ului

I Xen, QEMU, LXC, test, OpenVZ, VirtualBox, VMware ESX,OpenNebula

SRISP Curs 4, API de virtualizare 11/29

Page 12: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

virsh

I interfat, a de comanda a mas, inilor virtuale

I construita peste libvirt

I virsh <command> <domain-id>

I $ sudo virsh -c openvz:///system list

I $ sudo virsh -c openvz:///system

Welcome to virsh, the virtualization interactive

terminal.

...

I comenzi utile: start, shutdown, reboot, create, setmem,setvcpus, console

SRISP Curs 4, API de virtualizare 12/29

Page 13: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Basic API

I virConnectPtr – structura de date pentru conexiuni

I virDomainPtr – structura de date pentru domenii

I virErrorPtr – pentru lucrul cu errori

I import libvirt – Python

I #include <libvirt/libvirt.h>, #include<libvirt/virterror.h> – C

SRISP Curs 4, API de virtualizare 13/29

Page 14: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Python example

1 import libvirt

2 import sys

3

4 # check /usr/share/pyshared/libvirt.py5

6 if name ==’ main ’:

7 conn=libvirt.open(’openvz:///system’)

8 print ’Listing running domains’

9 for id in conn.listDomainsID():

10 dom = conn.lookupByID(id)

11 print "id: ", id, "name: ", dom.name()

12

13 dom = conn.lookupByID(100)

14

15 print "stopping domain 100 ... ",

16 sys.stdout.flush()

17 dom.shutdown()

18 print "done"

19

20 print "starting domain 100 ... ",

21 sys.stdout.flush()

22 dom.create()

23 print "done"

SRISP Curs 4, API de virtualizare 14/29

Page 15: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

C example

I Demo

SRISP Curs 4, API de virtualizare 15/29

Page 16: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

C example Makefile

1 CFLAGS = -Wall -g

2 LDLIBS = -lvirt

3

4 all: openvz-list-start-stop

5

6 openvz-list-start-stop: openvz-list-start-stop.o

7

8 openvz-list-start-stop.o: openvz-list-start-stop.c

9

10 clean:11 -rm -f openvz-list-start-stop openvz-list-start-stop.o *∼

SRISP Curs 4, API de virtualizare 16/29

Page 17: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Outline

Virtualizare

libvirt

VIX API

Concluzii

Intrebari

SRISP Curs 4, API de virtualizare 17/29

Page 18: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

VIX API

I http://www.vmware.com/support/developer/vix-api/

I VMware Virtualization API

I automatizare, gestiune s, i interact, iune cu mas, inile virtuale

I VMware ESX/GSX, Workstation, Player, vCenter

I C, Perl, COM (Visual Basic, C#)

I Linux & Windows

I versiunea 1.8, 1.10 beta

SRISP Curs 4, API de virtualizare 18/29

Page 19: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Instalare

I descarcare de pe site-ul VIX API (trebuie sa va ınregistrat, i)

I sudo bash VMware-VIX-1.8.1-207905.x86_64.bundle

I pentru dezinstalare: vmware-installer -u vmware-vix

I pentru operat, ii de interact, iune este nevoie de VMware Toolspe sistemul guest

I instalat ın /usr/lib/vmware-vix/

I documentat, ie s, i exemple ın /usr/share/doc/vmware-vix/

I acces local la documentat, ie:file:///usr/share/doc/vmware-vix/index.html

SRISP Curs 4, API de virtualizare 19/29

Page 20: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Interfat,a CLI

I similara virsh – permite gestiunea mas, inilor virtualeI vmware-cmd

I pentru versiuni serverI doar pentru gestiune (pornire, oprire, adaugare de discuri)I nu ofera comenzi de interact, iune cu sistemul guest

I vmrunI construita peste VIX APII gestiunea completa s, i interact, iunea cu mas, inile virtuale

SRISP Curs 4, API de virtualizare 20/29

Page 21: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Funct, ionalitat, i VIX API

I identificarea mas, inii virtuale se realizeaza prin caleacompleta catre fis, ierul .vmx

I listare mas, ini virtuale porniteI vmrun -T ws list

I pornirea mas, inii virtualeI vmrun -T ws start /path/to/vmx

I oprirea mas, inii virtualeI vmrun -T ws stop /path/to/vmx

I snapshotI vmrun -T ws snapshot /path/to/vmx snapshotName

I listarea proceselor dintr-o mas, ina virtualaI vmrun -T ws -gu username -gp password

listProcessesInGuest /path/to/vmx

SRISP Curs 4, API de virtualizare 21/29

Page 22: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

VIX API – Not, iuni de baza

I object-based, se folosesc handle-uri (VixHandle)

I VixHost_abcd – operat, ii pe host

I VixVM_abcd – operat, ii pe guest

I operat, ii asincrone – folosire VixJob_Wait pentru

I VixError, VixJob_GetError, Vix_GetErrorText as, teptare

SRISP Curs 4, API de virtualizare 22/29

Page 23: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Elemente VIX API

I succesiunea obis,nuita a operat, iilorI VixHost_RegisterVMI VixHost_ConnectI VixVM_PowerOnI VixVM_LoginInGuestI work, workI VixVM_LogoutFromGuestI VixVM_PoweroffI Vix_ReleaseHandleI VixHost_UnregisterVM

SRISP Curs 4, API de virtualizare 23/29

Page 24: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Makefile pe Linux

1 CFLAGS = -Wall -g

2 CPPFLAGS = -I/usr/include/vmware-vix

3 LDLIBS = -lvixAllProducts -ldl

4

5 all: powerOn

6

7 powerOn: powerOn.c

8

9 clean:10 -rm -f powerOn powerOn.o *∼

SRISP Curs 4, API de virtualizare 24/29

Page 25: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Exemplu C

I demo din samples

SRISP Curs 4, API de virtualizare 25/29

Page 26: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Outline

Virtualizare

libvirt

VIX API

Concluzii

Intrebari

SRISP Curs 4, API de virtualizare 26/29

Page 27: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Cuvinte cheie

I virtualizare

I interfet,e de gestiune a MV

I API de virtualizare

I libvirt

I connection URI

I virsh

I libvirtd

I virConnectPtr,virDomainPtr

I VIX API

I vmware-cmd

I vmrun

I fis, ier .vmx

I handle de VIX API

SRISP Curs 4, API de virtualizare 27/29

Page 28: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Link-uri utile

I http://libvirt.org/

I http://www.ibm.com/developerworks/linux/library/

l-libvirt/

I http://www.vmware.com/support/esx21/doc/

vmware-cmd.html

I http:

//www.vmware.com/pdf/vix180_vmrun_command.pdf

I http://www.vmware.com/support/developer/vix-api/

I http://www.vmware.com/support/developer/vix-api/

vix18_reference/

SRISP Curs 4, API de virtualizare 28/29

Page 29: Curs 4 - API de virtualizareelf.cs.pub.ro/saisp/wiki/_media/srisp_curs-04.pdfSRISP Curs 4, API de virtualizare 8/29. Instalare I # apt-get install libvirt0 libvirt-bin libvirt-dev

Outline

Virtualizare

libvirt

VIX API

Concluzii

Intrebari

SRISP Curs 4, API de virtualizare 29/29


Recommended