虛擬化技術介紹、Xen的簡單實現

虛擬化是什么?

虛擬化是一種資源管理技術, 是將計算機的各實體資源, 如服務、網絡、內存及存儲等, 予以抽象、轉換后呈現出來, 打破實體之間的不可切割的障礙, 使用戶可以比原本的配置更好的方式來應用這些資源。這些資源的新虛擬部分是不受現有資源的架設方式, 地域或物理配置所限制。一般情況下, 虛擬化資源包括計算能力和數據存儲 —<轉自維基百科>

為什么需要虛擬化?

虛擬化技術在近幾年來非常的火熱, 實際上在上個世紀60年代, 就已經有了虛擬化的實現。由于計算機的發展遵循了摩爾定律數十年之久。 在二十一世紀初時, 單臺計算機的性能已經非常的強大了, 大多數服務器的計算資源都有大量的空閑, 所以虛擬化的技術從重新進入人們的視野…

虛擬化技術主要有以下幾個優點:

  1. 計算資源能夠得到充分的利用

  2. 簡化物理網絡架構, 便于管理

  3. 減少基礎運維工作頻度

  4. 易于實現運維自動化、平臺化

什么時候會使用虛擬化?

虛擬化無處不在,每天都聽到的云計算就是以虛擬化技術為基礎。阿里云、騰訊云等眾多提供云服務、VPS的廠商哪家沒有使用虛擬化? 我們使用的虛擬機, VMWare Wokstation, VirtualBox, VMWare ESXI… 也都是虛擬化。甚至于很多學校、公司使用的云桌面, 也都是虛擬化技術實現的。還有現在炙手可熱的Docker技術, 也是虛擬化。作為一個運維, 你可以不懂云計算, 大數據, 但是你必須了解虛擬化, 這個無處不在的技術!

虛擬化類型簡介

模擬:

在底層的硬件上運行OS, OS上通過虛擬化模擬器軟件來模擬一個硬件環境, 可以模擬不同平臺的環境, 著名的模擬器: PearPC, Bochs, QEMU

完全虛擬化: (Full Virtualization):

CPU、內存不做模擬, 只對其進行分配和管理, 可通過BT, HVM等技術進行加速, 只能模擬本機CPU; 著名的軟件: VMWare Workstation, VirtualBox, KVM…

半虛擬化: (Para Virtualization)

在底層硬件上安裝VMM(Virtual Machines Monitor)來管理各虛擬機, 各虛擬機的內核需要修改, 從而知道自己是虛擬機, 通過特殊方式調用驅動和特權指令; 著名的軟件: Xen, VMWare ESXI, UML …

OS虛擬化:

每一個虛擬機只有用戶空間, 所有的虛擬機共享一個內核, 更加的節省資源, 更接近原生性能; 著名的實現: OpenVZ, Docker, Solaris Containers, FreeBSD jails…

Hypervisor是什么?

Hypervisor意為監視器, 宿主機通過Hypervisor來管理各虛擬機

從另一個角度來解釋, 虛擬化技術分為兩種類型:

  • Type-I: Hypervisor運行在硬件上: 如: VMWare ESXI, Xen…

  • Type-II: Hypervisor運行在OS上: 如: VMWare Workstation, VirtualBox…

Xen是什么?

Xen是一款開源的虛擬機監視器, 由劍橋大學開發, 它能夠在單個計算機上運行多達128個擁有完全功能的操作系統。在無HVM技術的CPU上, Xen必須對虛擬機的操作系統進行修改。

Xen可以分別實現半虛擬化和完全虛擬化, 甚至可以實現PV On HVM

  • 半虛擬化下的Xen只有較少的性能損失, 因為要修改系統,所以不能支持全部的操作系統

  • 完全虛擬化的Xen, 通過VT-X, AMD-V等HVM技術來實現, 這樣就能夠實現虛擬未經修改的系統, 并且性能可能比半虛擬化更好

  • PV On HVM: 由于半虛擬化對于IO設備的提升很大, 但是HVM對系統的兼容性、性能更佳。所以Xen還能夠實現半虛擬化IO設備、硬件輔助虛擬化CPU、內存等..

Xen的架構

介紹Xen的架構之前我們先了解一些Xen中的相關術語

  • Hypervisor: Xen的虛擬機監視器, 負責CPU、內存的虛擬化

  • Domain: Xen運行的虛擬機 
    Dom0: 特權域, 負責分配I/O資源(通過QEMU), 管理DomU 
    DomU: 用戶域, 運行指定的OS

Xen技術的架構

Xen通過Dom0主機負責I/O資源的分配、 管理和配置DomaU, 底層的Hypervisor分配CPU和內存資源

blob.png

Xen半虛擬化架構

blob.png

Xen全虛擬化架構

blob.png

如何獲取Xen?

RHEL5中, Xen是默認的虛擬化方案, 在RHEL6以后使用KVM來代替Xen

Xen對Linux內核的要求

Linux 2.6.37之后才原生支持Xen, Linux 3.0后才針對Xen進行關鍵優化

獲取Xen4centos

Xen4centos項目提供了眾多rpm來實現、并支持rhel6/Centos6運行Xen

通過阿里云的鏡像站來獲取xen4centos的一系列rpm包

[root@node1 ~]# yum-config-manager --add-repo="http://mirrors.aliyun.com/centos/6.7/xen4/x86_64/"

安裝Xen并配置一個busybox虛擬機

安裝xen

[root@node1 ~]# yum install xen -y 

修改grub 
因為安裝xen會自動安裝linux 3.X的內核, 我們還需要對其進行一些修改, 使得使用xen進行啟動

[root@node1 ~]# vim /etc/grub.conf  #修改第一個title為如下
title CentOS (3.18.12-11.el6.x86_64)
   root (hd0,0)
   kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin
   module /vmlinuz-3.18.12-11.el6.x86_64 ro root=/dev/mapper/vg0-root rd_NO_LUKS rd_NO_DM.UTF-8 rd_LVM_LV=vg0/swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg0/root  KEYBOARDTYPE=pc KEYTABLE=us rhgb crashkernel=auto quiet rhgb quiet
    module /initramfs-3.18.12-11.el6.x86_64.img

GIF.gif

添加disk image

[root@node1 ~]# mkdir -pv /data/xen -pv   #創建一個文件夾專門存放xen相關的文件
[root@node1 ~]# cd /data/xen/
[root@node1 xen]# qemu-img create -f raw -o size=2G busybox.img  #創建一個2Graw設備
Formatting 'busybox.img', fmt=raw size=2147483648

[root@node1 xen]# mkfs.ext4 busybox.img  #格式化為ext4分區

編譯安裝busybox

自行下載busybox
[root@node1 ~]# yum groupinstall "Development Tools" "Server Platform Development"  #安裝開發包組
[root@node1 ~]# yum install glibc-static  #安裝靜態c庫
[root@node1 ~]# tar xf busybox-1.22.1.tar.bz2
[root@node1 ~]# cd busybox-1.22.1
[root@node1 busybox-1.22.1]# make menuconfig
[root@node1 busybox-1.22.1]# make && make install

GIF2-iloveimg-compressed.gif

將busybox復制進image

[root@node1 busybox-1.22.1]# mount -o loop /data/xen/busybox.img /mnt/ 
[root@node1 busybox-1.22.1]# cp -a  _install/* /mnt/
[root@node1 /]# cd /mnt/
[root@node1 mnt]# mkdir dev proc sys home

測試能否成功chroot

GIF.gif

編輯配置文件

[root@node1 xen]# vim busybox
name = "busybox-01"
kernel = "/boot/vmlinuz-2.6.32-573.el6.x86_64"
ramdisk = "/boot/initramfs-2.6.32-573.el6.x86_64.img"
extra = "root=/dev/xvda1  selinux=0 init=/bin/sh"
memory = 128
vcpus = 2
disk = [ '/data/xen/busybox.img,raw,xvda,rw'

創建虛擬機

[root@node1 xen]# xl create busybox
Parsing config from busybox
DEBUG libxl__blktap_devpath 76 aio:/data/xen/busybox.img
DEBUG libxl__blktap_devpath 81 /dev/xen/blktap-2/tapdev0
[root@node1 xen]# xl list
Name                                        ID   Mem VCPUs  State   Time(s)
Domain-0                                     0  1024     2     r-----      29.0
busybox-01                                   4   256     1     -b----       0.6

GIF5.gif

總結

本文對虛擬化技術做了簡單介紹, 以及簡單的通過Xen創建了虛擬機, 后續我還會介紹更多高級的內容

文章內容淺嘗輒止, 大家有更好的見解可以提出, 覺得我寫的不錯, 可以點一波贊~(≧▽≦)/~ 
作者: AnyISaIln QQ: 1449472454 
感謝: MageEdu

原創文章,作者:Net18-AnyISalIn,如若轉載,請注明出處:http://www.www58058.com/17164

(3)
Net18-AnyISalInNet18-AnyISalIn
上一篇 2016-05-31 15:43
下一篇 2016-05-31 20:22

相關推薦

  • gawk基礎

     一、gawk 是什么 在了解gawk之前,先了解一下文本三工具      文本過濾工具:grep|egrep|fgrep   其中fgrep不支持正則表達式 1.行編輯器:sed      sed 有兩種空間   模式空間    保持空間 2. 文…

    Linux干貨 2016-06-24
  • linux 學習總結第二周

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。    常用的文件管理類工具:cp,mv,rm     命令cp用于文件拷貝,分為單源文復制和多源復制 單源復制語法:cp [options]…[-t] source dest 。 注意事項: 1如果dest不存在,則事先創建此文件…

    Linux干貨 2016-12-04
  • 第一周linux學習總結

    1、描述計算機的組成及其功能
    2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別
    3、描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述
    4、說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述
    5、如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的
    6、請羅列Linux發行版的基礎目錄名稱命名法則及功用規定

    Linux干貨 2017-12-04
  • 178linux博客寫作技巧

    為什么要寫博客 為什么要寫在178linux上 如何注冊178linux 178linux的文章提審規則 178linux寫文章的技巧 markdown 語法 為什么要寫博客 寫博客的好處不言而喻,也不做過多解釋,眼過千遍不如手過一遍。知識的吸收需要很長的過程,這個過程越艱難越我們對知識的吸收程度也越好。對于找工作也有好處,側面是自己工作能力的證明,大量學員…

    Linux干貨 2016-09-06
  • DNS

    這里都以我本機的實驗為例 正向解析:就是從主機名到IP的解析過程 先在工作目錄/var/named/創建一個區域數據文件 以zcylinux.io域為例:vim/var/named/zcylinux.io.zone $TTL  600     #設置全局變量TTL的值為600s zcylinux.io.&nb…

    Linux干貨 2017-05-30
  • 關于find命令的實際應用

    1、查找/var目錄下屬主為root,且屬組為mail的所有文件 2、查找/var目錄下不屬于root、lp、gdm的所有文件 3、查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件 4、查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件 5、查找/etc目錄下大于1M且類型為普通文件的所有文件 6、查找/e…

    Linux干貨 2016-08-16
欧美性久久久久