23
Vmware and Xen APIs Kevin Jacobson

Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Embed Size (px)

Citation preview

Page 1: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Vmware and XenAPIs

Kevin Jacobson

Page 2: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Contents

• Overview– Xen– Vmware

• Comparison• APIs

– Xen API– Vmware API(s)

Page 3: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Xen

• Free, open source software• Hypervisor• Guests have independent “sandboxes”• Paravirtualization

– Software for hardware rather than direct access– Requires guests to be modified

Page 4: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

http://uberhip.com/godber/plug/Xen_Primer/assets/xen_para.pngXen on Linux: A Young Hacker’s Illustrated PrimerAustin Gobder

Page 5: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Why Paravirtualization?

• Guests are portable• Only the Hypervisor needs to be ported• Better resource scaling • Windows licensing

Page 6: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

VMware

• Commercial• Fully virtualized• Multiple flavors

– Server (ESX)– Workstation– Player– Fusion

Page 7: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

• Solutions for servers and end-users

Page 8: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Full Virtualization

• Code runs directly on the CPU when possible• Host software checks for things which need

modification– Address space– Segmentation– Breakpoints– Some hardware calls

Page 9: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Comparison

VMware Xen

Open Source

Paravirtualization

Free

Multiple

Full Virtualization

Highly Supported by IT world

Page 10: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Xen API

• Python, C, Java, and Perl implementations• Abstraction above XML-RPC calls to the server

Page 11: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

It’s So Simple!

Xen Summit 2007 Presentation by Ewan MellorPg. 6http://www.xen.org/files/xensummit_4/XenSummit_API_Slides_2007-04-18_Ewan.pdf

Page 13: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

VIX ( Deprecated Vmware API)

• VmPyware– Python Bindings for the Vix API– Much simpler than Xen API– Requires Windows Host OS

Page 14: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

VmPyWare Examplefrom vix import Viximport time

vm = Vix()

print "Connecting"vm.Connect()

print "Opening vm"vm.Open("E:\\VMs\\Windows XP\\Windows XP Professional.vmx")

print "Powering On vm"vm.PowerOn()print "Waiting a bit..."time.sleep(10)print "Powering off vm"vm.PowerOff()

print "Reverting to snapshot 0"vm.GetRootSnapshot()vm.RevertToSnapshot()

print "Sleeping"time.sleep(10)

print "Disconnecting"vm.Disconnect()

Page 15: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

VI (Virtual Infrastructure Management)

• Currently Supported API for VMWare• SOAP based

– WSDL– Cross-platform– Language agnostic

Page 16: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Basic Structure

Vmware Infrastructure SDK 2.5 Programmers Guide

Page 17: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Session Manager Object

• For logging into a system

Vmware Infrastructure SDK 2.5 Programmers Guide

Page 18: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

The VM Object

Page 19: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Vmware Infrastructure SDK 2.5 Programmers Guide

Page 20: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Java Example

Page 21: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

import java.net.URL;import com.vmware.vim25.*;import com.vmware.vim25.mo.*;import com.vmware.vim25.mo.util.*;

public class HelloVM {

public static void main(String[] args) throws Exception{

CommandLineParser clp = new CommandLineParser(new OptionSpec[]{}, args);String urlStr = clp.get_option("url");String username = clp.get_option("username");String password = clp.get_option("password");

ServiceInstance si = new ServiceInstance(new URL(urlStr), username, password, true);Folder rootFolder = si.getRootFolder();ManagedEntity[] mes = new

InventoryNavigator(rootFolder).searchManagedEntities("VirtualMachine");if(mes==null || mes.length ==0){

return;}VirtualMachine vm = (VirtualMachine) mes[0]; VirtualMachineConfigInfo vminfo = vm.getConfig();VirtualMachineCapability vmc = vm.getCapability();vm.getResourcePool();System.out.println("Hello " + vm.getName());System.out.println("GuestOS: " + vminfo.getGuestFullName());System.out.println("Multiple snapshot supported: " +

vmc.isMultipleSnapshotsSupported());si.getServerConnection().logout();

}}

//Example From VMware

Page 22: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

Conclusion

Xen• Paravirtualization• XML-RPC Based API• Open Source

Vmware• Fully Virtualized• SOAP API• Commercial

Page 23: Vmware and Xen APIs Kevin Jacobson. Contents Overview – Xen – Vmware Comparison APIs – Xen API – Vmware API(s)

ReferencesVMWare Infrastructure Programmer’s Guidehttp://www.vmware.com/support/developer/vc-sdk/visdk25pubs/

visdk25programmingguide.pdfVMWare Infrastructure Reference Guidehttp://www.vmware.com/support/developer/vc-sdk/visdk25pubs/ReferenceGuide/Xen API Docshttp://wiki.xensource.com/xenwiki/XenApiXen FAQhttp://wiki.xensource.com/xenwiki/XenFaq

http://grid.rit.edu 23