虚拟化技术介绍、Xen的简单实现
2016-05-21 09:53
671 查看
虚拟化是什么?
虚拟化是一种资源管理技术, 是将计算机的各实体资源, 如服务、网络、内存及存储等, 予以抽象、转换后呈现出来, 打破实体之间的不可切割的障碍, 使用户可以比原本的配置更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式, 地域或物理配置所限制。一般情况下, 虚拟化资源包括计算能力和数据存储 —<转自维基百科>为什么需要虚拟化?
虚拟化技术在近几年来非常的火热, 实际上在上个世纪60年代, 就已经有了虚拟化的实现。由于计算机的发展遵循了摩尔定律数十年之久。 在二十一世纪初时, 单台计算机的性能已经非常的强大了, 大多数服务器的计算资源都有大量的空闲, 所以虚拟化的技术从重新进入人们的视野…虚拟化技术主要有以下几个优点:计算资源能够得到充分的利用简化物理网络架构, 便于管理
减少基础运维工作频度
易于实现运维自动化、平台化
什么时候会使用虚拟化?
虚拟化无处不在,每天都听到的云计算就是以虚拟化技术为基础。阿里云、腾讯云等众多提供云服务、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和内存资源
Xen半虚拟化架构
Xen全虚拟化架构
如何获取Xen?
在RHEL5中, Xen是默认的虚拟化方案, 在RHEL6以后使用KVM来代替XenXen对Linux内核的要求Linux 2.6.37之后才原生支持Xen, Linux 3.0后才针对Xen进行关键优化获取Xen4centosXen4centos项目提供了众多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
添加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 #创建一个2G的raw设备 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
将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
编辑配置文件
[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
总结
本文对虚拟化技术做了简单介绍, 以及简单的通过Xen创建了虚拟机, 后续我还会介绍更多高级的内容文章内容浅尝辄止, 大家有更好的见解可以提出, 觉得我写的不错, 可以点一波赞~(≧▽≦)/~作者: AnyISaIln QQ: 1449472454
感谢: MageEdu
相关文章推荐
- convert(一)—— 部署managed
- convirt(二)—— 创建第一台虚机
- QEMU 1: 使用QEMU创建虚拟机
- QEMU 2: 参数解析
- 虚拟磁盘空间不足虚拟电脑运行发生错误的原因及解决
- 搭建CloudStack
- 基于Docker快速搭建多节点Hadoop集群
- 全虚拟化和半虚拟化的区别 cpu的ring0 ring1又是什么概念?
- 微软给出虚拟化管理工具的价格以及发布日期
- 虚拟化改变网络结构
- 戴尔集中统一虚拟化方案助力温岭公安局
- How to install VMware ESXi Server 4.1 in VMware workstation 7.0
- How to attach iSCSI LUN to ESXi server
- Deploy vSphere Infrastructure [01]: Environment & Architecture
- Deploy vSphere Infrastructure [02]: Promo a Win 2k3 server to DC
- rhel5的xen内核无法使用串口的原因和解决方法
- 检查一下硬件是否支持hyper-v
- 安装、配置Hyper-V
- App-V Management Server部署及序列化应用程序