1 / 31

Virtual machine survey

志豪 2009.09.15. Virtual machine survey. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference. Outline. Full virtualization VMware Workstation , VirtualBox Hardware-assisted virtualization Xen , Linux KVM

santo
Download Presentation

Virtual machine survey

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 志豪 2009.09.15 Virtual machine survey

  2. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component XenAPI XenAccess Library reference Outline

  3. Full virtualization • VMware Workstation, VirtualBox • Hardware-assisted virtualization • Xen, Linux KVM • Partial virtualization • Paravirtualization • Operating system-level virtualization • OpenVZ Categories of Virtual Machine

  4. Virtualization • Para-virtualization • 64-bit architecture • 32-bit architecture with PAE Virtual Machine - Xen [root@linux ~]# cat /proc/cpuinfo | grep flags flags : fputscmsrpaemce cx8 mtrrmcacmov pat pse36 mmxfxsrsse up

  5. Virtualization • Full-virtualization • Virtualization Technolegy (Intel) • SVM (AMD) Virtual Machine - Xen 在 Intel Core 2 Duo 的 CPU 主機上面測試 CPU 旗標: [root@linux ~]# cat /proc/cpuinfo | grep flags flags : fputscmsrpaemce cx8 apicmtrrmcacmov pat pse36 clflushdtsacpimmxfxsrsse sse2 ss ht tm pbenx lm constant_tsc up pni monitor ds_cplvmxest tm2 cx16 xtprlahf_lm

  6. Xen Architecture

  7. Xen Hypervisor • Domain 0 • Domain Management and Control (Xen DM&C) • Domain U (Dom U) PV Guest • Domain U (Dom U) HVM Guest Xen components

  8. Xen Hypervisor Xen components

  9. Domain 0 Xen components

  10. Domain U • PV Guest Xen components

  11. Domain U • HVM Guest Xen components

  12. Domain Management and Control • Xend • Libxenctrl Xen components

  13. Domain Management and Control • Xm • Xenstored • Qemu-dm • Xen Virtual Firmware • Xen Operation Xen components

  14. Domain 0 and Domain U Communication Xen components

  15. Xen Management Architecture XenAPI

  16. XenAPI Class Hierarchy XenAPI

  17. Xen installed and running libxml2 libcurl2 modify configuration XenAPI requirement

  18. In /etc/xen/xend-config.sxp: (xen-api-server ( (9363 pam ‘^localhost$ example\\.com$’) (9367 pam '' /etc/xen/xen-api.key /etc/xen/xen-api.crt) (unix none))) Modify Configuration Xen-API XML-RPC over HTTP / TCP on port 9363, using PAM and an allowed-hosts specifier HTTP over TLS over TCP on port 9367, using PAM and the specified keys Xen-API XML-RPC over a Unix domain socket at /var/run/xend/xen-api.sock, unauthenticated

  19. xmlInitParser(); xen_init(); curl_global_init(CURL_GLOBAL_ALL); xen_session *session = xen_session_login_with_password(call_func, NULL, username, password); xen_vmvm; if (!xen_vm_get_by_uuid(session, &vm, uuid)) { /* Error */ } xen_vm_record *vm_record; if (!xen_vm_get_record(session, &vm_record, vm)) { /* Error */ } if (!xen_vm_start(session, vm)) { /* Error */ } XenAPI Basic Example

  20. XenAccess library

  21. Configuration file • /etc/xenaccess.conf • Data structure • xa_instance • xa_linux_taskaddr • xa_windows_peb • XenAccess API definition • xenaccess.h XenAccess library

  22. /etc/xenaccess.conf Fedora-HVM { sysmap= "/boot/System.map-2.6.18-1.2798.fc6"; ostype= "Linux"; linux_tasks= 268; linux_mm= 276; linux_pid= 312; linux_pgd= 40; linux_addr= 132; } XenAccess library

  23. Code sample ( process-list ) XenAccess library #include <stdlib.h> #include <string.h> #include <errno.h> #include <sys/mman.h> #include <stdio.h> #include <xenaccess/xenaccess.h> #include <xenaccess/xa_private.h>

  24. Code sample ( process-list ) XenAccess library #define TASKS_OFFSET 24 * 4 #define PID_OFFSET 39 * 4 #define NAME_OFFSET 108 * 4 #define ActiveProcessLinks_OFFSET 0x88 #define UniqueProcessId_OFFSET 0x84 #define ImageFileName_OFFSET 0x174

  25. Code sample ( process-list ) XenAccess library uint32_t dom = atoi(argv[1]); if (xa_init_vm_id_strict(dom, &xai) == XA_FAILURE){ perror("failed to init XenAccess library"); gotoerror_exit; }

  26. Code sample ( process-list ) XenAccess library memory = xa_access_kernel_sym(&xai, "init_task", &offset, PROT_READ); memcpy(&next_process, memory + offset + TASKS_OFFSET, 4); list_head= next_process; munmap(memory, xai.page_size);

  27. Code sample ( process-list ) XenAccess library while (1){ memory = xa_access_kernel_va(&xai, next_process, &offset, PROT_READ); memcpy(&next_process, memory + offset, 4); if (list_head == next_process){ break; } name = (char *) (memory + offset + NAME_OFFSET - TASKS_OFFSET); memcpy(&pid, memory + offset + PID_OFFSET - TASKS_OFFSET, 4); printf("[%5d] %s\n", pid, name); munmap(memory, xai.page_size); }

  28. Code sample ( process-list ) XenAccess library if (memory) munmap(memory, xai.page_size); xa_destroy(&xai);

  29. Running the example XenAccess library [root@bluemoonlibxa]# xm list Name ID Mem(MiB)VCPUs State Time(s) Domain-0 0 1229 2 r----- 137356.4 Fedora-HVM 4 384 1 -b---- 2292.6 fc5 5 384 1 -b---- 15.4 [root@bluemoonlibxa]#

  30. Running the example XenAccess library [root@bluemoon examples]# ./process-list 5 [ 1] init [ 2] migration/0 [ 3] ksoftirqd/0 [ 4] watchdog/0 [ 5] events/0 [ 6] khelper [ 7] kthread [ 8] xenwatch [ 9] xenbus [ 15] kblockd/0 [ 57] pdflush [ 58] pdflush [ 60] aio/0 [ 59] kswapd0 [ 578] kseriod [ 685] kpsmoused [ 710] khubd [ 978] dhclient [ 1006] syslogd [ 1009] klogd [ 1021] sshd [ 1027] mingetty

  31. 鳥哥的 linux私房菜 – 利用 Xen設計虛擬機器 • XenAPI – Xen Wiki • Xen Architecture – Xen Wiki • Xen Management API • Xen User & Interface manual • Can find at Xenpackage • XenAccess Library Reference

More Related