志豪 2009.09.15. categories of virtual machine virtual machine manager: xen xen architecture ...
TRANSCRIPT
![Page 1: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/1.jpg)
VIRTUAL MACHINE SURVEY志豪 2009.09.15
![Page 2: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/2.jpg)
OUTLINE
Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference
![Page 3: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/3.jpg)
CATEGORIES OF VIRTUAL MACHINE
Full virtualization VMware Workstation, VirtualBox
Hardware-assisted virtualization Xen, Linux KVM
Partial virtualization
Paravirtualization Operating system-level virtualization
OpenVZ
![Page 4: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/4.jpg)
VIRTUAL MACHINE - XEN
Virtualization Para-virtualization
64-bit architecture 32-bit architecture with PAE
[root@linux ~]# cat /proc/cpuinfo | grep flags flags : fpu tsc msr pae mce cx8 mtrr mca cmov pat pse36 mmx fxsr sse up
![Page 5: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/5.jpg)
VIRTUAL MACHINE - XEN
Virtualization Full-virtualization
Virtualization Technolegy (Intel) SVM (AMD)
在 Intel Core 2 Duo 的 CPU 主機上面測試 CPU 旗標: [root@linux ~]# cat /proc/cpuinfo | grep flags flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc up pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
![Page 6: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/6.jpg)
XEN ARCHITECTURE
![Page 7: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/7.jpg)
XEN COMPONENTS
Xen Hypervisor Domain 0 Domain Management and Control (Xen
DM&C) Domain U (Dom U) PV Guest Domain U (Dom U) HVM Guest
![Page 8: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/8.jpg)
XEN COMPONENTS
Xen Hypervisor
![Page 9: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/9.jpg)
XEN COMPONENTS
Domain 0
![Page 10: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/10.jpg)
XEN COMPONENTS
Domain U PV Guest
![Page 11: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/11.jpg)
XEN COMPONENTS
Domain U HVM Guest
![Page 12: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/12.jpg)
XEN COMPONENTS
Domain Management and Control Xend Libxenctrl
![Page 13: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/13.jpg)
XEN COMPONENTS
Domain Management and Control Xm Xenstored Qemu-dm Xen Virtual Firmware Xen Operation
![Page 14: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/14.jpg)
XEN COMPONENTS
Domain 0 and Domain U Communication
![Page 17: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/17.jpg)
XENAPI REQUIREMENT
Xen installed and running libxml2 libcurl2 modify configuration
![Page 18: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/18.jpg)
MODIFY CONFIGURATION
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)))
Xen-API XML-RPC overHTTP / TCP on port 9363,using PAM and anallowed-hosts specifier
HTTP over TLS over TCP onport 9367, using PAM andthe specified keys
Xen-API XML-RPC over aUnix domain socket at/var/run/xend/xen-api.sock,unauthenticated
![Page 19: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/19.jpg)
XENAPI BASIC EXAMPLE
xmlInitParser();xen_init();curl_global_init(CURL_GLOBAL_ALL);xen_session *session =
xen_session_login_with_password(call_func, NULL, username, password);
xen_vm vm;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 */}
![Page 20: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/20.jpg)
XENACCESS LIBRARY
![Page 21: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/21.jpg)
XENACCESS LIBRARY
Configuration file /etc/xenaccess.conf
Data structure xa_instance xa_linux_taskaddr xa_windows_peb
XenAccess API definition xenaccess.h
![Page 22: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/22.jpg)
XENACCESS LIBRARY
/etc/xenaccess.confFedora-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; }
![Page 23: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/23.jpg)
XENACCESS LIBRARY
Code sample ( process-list )
#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>
![Page 24: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/24.jpg)
XENACCESS LIBRARY
Code sample ( process-list )
#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
![Page 25: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/25.jpg)
XENACCESS LIBRARY
Code sample ( process-list )
uint32_t dom = atoi(argv[1]); if (xa_init_vm_id_strict(dom, &xai) == XA_FAILURE){ perror("failed to init XenAccess library"); goto error_exit; }
![Page 26: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/26.jpg)
XENACCESS LIBRARY
Code sample ( process-list )
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);
![Page 27: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/27.jpg)
XENACCESS LIBRARY
Code sample ( process-list )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); }
![Page 28: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/28.jpg)
XENACCESS LIBRARY
Code sample ( process-list )if (memory) munmap(memory, xai.page_size); xa_destroy(&xai);
![Page 29: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/29.jpg)
XENACCESS LIBRARY
Running the example[root@bluemoon libxa]# 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@bluemoon libxa]#
![Page 30: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/30.jpg)
XENACCESS LIBRARY
Running the example[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
![Page 31: 志豪 2009.09.15. Categories of Virtual Machine Virtual Machine manager: Xen Xen architecture Xen component Xen API XenAccess Library reference](https://reader037.vdocuments.mx/reader037/viewer/2022103100/56649e7d5503460f94b7fc74/html5/thumbnails/31.jpg)
REFERENCE
鳥哥的 linux 私房菜 – 利用 Xen 設計虛擬機器
XenAPI – Xen Wiki Xen Architecture – Xen Wiki Xen Management API Xen User & Interface manual
Can find at Xen package XenAccess Library