virtualization 虛擬化. what is virtualization? 把一台系統切成很多獨立的小系統

49
VIRTUALIZATION 虛虛虛

Upload: maurice-stokes

Post on 23-Dec-2015

275 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

VIRTUALIZATION虛擬化

Page 2: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

WHAT IS VIRTUALIZATION?把一台系統切成很多獨立的小系統

Page 3: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

WHY VIRTUALIZE?有什麼好處 ?

Page 4: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

MULTI PLATFORM一台電腦可以同時跑不同的作業系統

Page 5: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

ISOLATION隔離不同的使用者或服務

Page 6: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

小明寫系程作業把工作站搞爆了大家一起死

Page 7: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

小明把系上分給他的 VM搞爆了只有小明交不出作業

Page 8: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

CONSOLIDATION增加硬體使用率、降低成本

Page 9: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

小公司架了 WEB, MAIL, FTP, SCM, 每台機器只用 5%花很多冤枉錢

Page 10: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

所有服務集中到一台,總共用 20%只買一台,省了 75% 的花費

Page 11: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

硬體也是要人照顧的少點機器,少點人力

Page 12: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

EASY DEPLOYMENT一個映像檔跑天下

Page 13: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

HIGH AVAILABILITY硬體壞了, VM 馬上搬到下一台去跑

Page 14: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

VIRTUALIZE WHAT?硬體、儲存空間、網路

Page 15: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

HARDWARE VIRTUALIZATION三大宗

Page 16: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

FULL VIRTUALIZATION完全模擬一台機器必備的硬體VMware, VirtualBox, Hyper-V, KVM, QEMU…..

Page 17: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

FULL VIRTUALIZATION 之HARDWARE ASSISTEDFull Virtualization 很吃資源,有 CPU 幫忙比較好Xen HWM

Page 18: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

PARAVIRTUALIZATION透過軟體 (Hypervisor) 處理需要虛擬化的指令。效能高,但 OS 要客製化。Xen, VMware VMI

Page 19: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

OS-LEVEL VIRTUALIZATIONOS 裡面隔出不同的房間同個屋簷下,會被鄰居吵到同一棟房子 ( 同一種 OS)LXC, OpenVZ, FreeBSD Jails….

Page 20: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

NO VIRTUALIZATION大通鋪,床位先搶先贏,搶輸了站門外

Page 21: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

XENExternal Hypervisor

Page 22: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統
Page 23: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

WHAT’S GOOD ABOUT XEN?Mature products and 3rd party supportCan also be installed with LinuxAPI and easy to use tools

Page 24: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

THE NOT SO GOODCan only use toolsRedHat dropped support

Page 25: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

XEN PRODUCTSCitrix XenServerCitrix Cloud PlatformOracle VM

Page 26: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

KVMKERNEL VIRTUAL MACHINEIncluded in mainstream Linux Kernel

Page 28: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

MAINSTREAM KERNELGet it with every Linux kernelA set of kernel interfaces and APIsQEMU frontend

Page 29: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

EACH VM IS A PROCESSEach virtual CPU core is a threadVM Scheduling, Memory management, Hardware drivers – all provided by LinuxTake advantage of Linux features: KSM, Hugepages

Page 30: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

HOW TO USE KVM?/usr/bin/kvm -enable-kvm -m 1024 -smp 1 -drive file=linux.img

Page 31: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

SERIOUSLY?/usr/bin/kvm -S -M pc-1.1 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name list -uuid 6865eebb-e6aa-c7f8-499a-d3ba663b5dd4 -nographic -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/list.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/mnt/qcow/list.qcow2,if=none,id=drive-virtio-disk0,format=qcow2 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=26,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:5f:68:2a,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5

Page 32: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

WAY TOO UGLY!!Anything better?

Page 33: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

LIBVIRTA toolkit to interact with many common virtualization systems.

Page 34: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

VIRSHCLI tool included with LibvirtManipulate libvirt and underlaying VMs with commands and XML files

Page 35: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

EXAMPLE: STOP VM# virsh stop test-vm

Page 36: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

EXAMPLE: CREATE VMCreate definition XML filehttp://libvirt.org/formatdomain.html# virsh create VM.xml

Page 37: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

DON’T LIKE XML?

Page 38: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

VIRT-INSTALLCLI tool for creating/importing and installing VMs

Page 39: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

EXAMPLE: CREATE VM# virt-install \ --name demo \ --ram 512 \ --disk /home/user/VMs/mydisk.img \ --import

Page 40: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

CREATE AND INSTALL# virt-install \ --virt-type kvm \ --name demo \ --ram 512 \ --disk path=/vm/demo.img,size=20 \ --cdrom /dev/cdrom

Page 41: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

DON’T LIKE CLI?Are you serious?

Page 42: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

VIRT-MANAGERGUI frontend for libvirt

Page 43: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統
Page 44: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統
Page 45: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

EXTRA STUFF TO MANAGENetworkingLVM storageLibvirt can do it for you

Page 46: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

References• http://libvirt.org/• http://www.linux-kvm.org/page/HOWTO

Page 47: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

Homework• Install a virtual machine host• Xen, KVM, or even ESXi is OK. You pick.

• Use libvirt to manage it• Create and install a Linux guest.• You decide the parameters (CPU, disk, etc.).• You can use the tools mentioned today, or anything else.

Page 48: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

Homework Submission• Mail the following (as content, not attachment) to me• Libvirt domain (guest) xml file• # virsh dumpxml YOUR_DOMAIN

• Command outputs from guest• # lspci• # dmidecode –t system

• File contents from guest• /proc/cpuinfo

Page 49: VIRTUALIZATION 虛擬化. WHAT IS VIRTUALIZATION? 把一台系統切成很多獨立的小系統

Homework Grading• This is an all or nothing assignment.• The purpose of this assignment is to let you exercise building and

managing a VM host and guest.• If something is wrong with the data you submitted, I can not confirm you

did so, hence no credit.• 1 grade lower if you give me wrong format (as attachment)