VirtualBox -爱你没商量
你想在virtualbox中体验企业级虚拟化技术吗?
你想在virtualbox中玩极品飞车吗?
玩腻了vmware workstation,想无痛平滑迁移到virtualbox 吗?
一、 我与virtualbox
本人刚开始把玩虚拟化产品的时候就听说过开源的VirtualBox,自从玩过以后,就开始“欲罢不能”、“爱不释手”了。遗憾的是:VirtualBox在国内的名气欠缺,除了相关领域的专业人士知道其“内部秘密”以及高级用法外,外行人一般使用virtualbox的功能仅限于GUI界面的一些简单操作,连百分之三的功能都没有用到,再加上VirtualBox的核心管理维护功能都是基于CLI接口的vboxmanage,所以这种注重“修内”的软件表达方式更加阻碍想去爱它的人不能更加深刻的去爱它。故本人希望通过写一些东西,一来是对自己的学习做一些总结和整理,二是希望通过与大家分享学习的过程与体验,获得朋友们的批评与高见。(所以希望看完本文能减少您对virtualbox的“阵痛感”!)
二、活着就是折腾——免费的,为啥不折腾?
尽管virtualbox和VMware公司的Workstation、Microsoft公司的 Virtual PC类似,同是一款寄居架构的虚拟化产品,但是virtualbox却提供了很多和VMware vSphere、Microsoft Hyper-V同样的企业级特性,这些特性对虚拟化服务器和应用程序非常有用,另外我们可以将virtualbox与开源工具phpvirtualbox进行联动以实现对虚拟机的集中化管理。也正是因为virtualbox这些独到之处吸引了众多企业级虚拟化的管理人员和工程技术人员,当然我也是“受害者”之一。要知道,在寄居架构的虚拟化产品中附带很多企业级虚拟化才拥有的功能特性,virtualbox绝对是绝无仅有的第一家,可以称得上是开天老祖!最重要的一点是,这些功能全部都是免费的!
我们知道虚拟化产品最重要的核心技术便是hypervisor。那么什么是hypervisor呢?我们可以使用类比思维将hypervisor简单理解为操作系统的内核部分,hypervisor不仅控制、调度计算机的硬件资源,同时还负责“翻译”虚拟机的各种软件行为从而正确的被计算机硬件资源执行。
VirtualBox的hypervisor和企业中部署的基于金属裸架构的hyper-V和vSphere这类虚拟化架构的产品不太一样,VirtualBox的hypervisor伸缩性和适应能力很强:在不同的硬件设备上,VirtualBox可以工作在不同的ring0或者ring2层次上,通俗来说,即使没有CPU虚拟化指令集的支持,VirtualBox照样可以正常工作,而如果CPU提供虚拟化指令集的支持,VirtualBox就可以工作在另一种模式下。所以可以很明显的看出,相对于VMware WorkStation和Windows XP Mode,VirtualBox使用范围更宽泛,但是从其功能方面考虑,却又更接近于hyper-V或者vSphere一些。
这种使用起来像“桌面产品”,但是功能又包含“企业产品”的综合产品玩起来还真是十分有意思!
以上是本人对VirtualBox的一些个人使用感受分享和感性分析,接下来我们开始了解VirtualBox辉煌的历史以及相关特色功能总览。
三、Virtualbox之有些曲折的历史
VirtualBox最早是德国innotek公司开发,后来经过两次收购现在已经成为Oracle支持的产品。innotek 是一家总部位于德国斯图加特的本土软件公司,在德国德累斯顿、柏林以及俄罗斯设有办事处,其国际专业团队致力于高技术系统软件的开发。innotek自 2001年以来在PC虚拟化技术方面位于最前沿。VirtualBox就是它最得意的产品之一。而在2008年2月,InnoTek软件公司由Sun所并购。在2010年1月,甲骨文公司完成对Sun的收购,VirtualBox随着成为甲骨文支持的产品。
VirtualBox最初是以专有软件协议的方式提供。2007年1月,InnoTek以GNU通用公共许可证(GPL)释出VirtualBox而成为自由软件,并提供二进制版本及开放源代码版本的代码
四 名气不大,本事不小
VirtualBox支持的客户端操作系统包括:从3.1到Win8的所有版本的Windows、Linux 2.2到2.6内核、Solaris x86、OS/2、OpenBSD、Netware 、FreeBSD和DOS,基本涵盖了所有大大小小“见过的和没见过的”操作系统,作为开发和测试平台VirtualBox是非常不错的选择。
玩虚拟化比较早的朋友知道,虚拟化技术发展至今,根据hypervisor所处位置不同被分为两种类型(两种生态圈),一种是:虚拟机直接运行在系统硬件资源上,我们称这种类型为“裸金属架构虚拟化”;另外一种是:虚拟机以上层软件的形式寄居在传统的OS(操作系统)上,我们称这种类型为“寄居架构虚拟化”。
由于virtualbox发展比较早,所以virtualbox使用寄居架构的hypervisor,但管理人员却可以使用其命令行接口(vboxmanage)实现非常多裸金属架构才拥有的企业级虚拟化功能,并且这些功能都是免费的。
五、 牛A和牛C之间
下面我们就简单了解下virtualbox可以实现的一些裸金属架构才拥有的企业级虚拟化功能。
与VMware及Virtual PC相比较,VirtualBox独到之处包括以下几点:VirtualBox 远程桌面(VRDP)、内置 ISCSI服务器连接功能(built-in ISCSI server)和virtio半虚拟化的网卡等。
1. VirtualBox远程桌面(VRDP)VirtualBox 远程桌面(VRDP)是一个基于服务器/客户端(c/s架构)的管理模型,且类似于Windows系统的“远程桌面”,在进行相关教学或培训时是非常有用的功能。
我本人在企业中是非常喜欢VirtualBox的这个贴心功能的哦!
2. 内置 ISCSI服务器连接功能(built-in ISCSI server)VirtualBox的命令行管理接口(CLI)集成了对ISCSI server的支持,简单来说就是:VirtualBox扮演了iSCSI 发起端(initiator)的角色,帮助VM连接后台独立存储系统的能力。此功能大大增强了VM对后台独立存储的融合能力,VirtualBox这样的软件设计可以使VirtualBox对iSCSI相关的维护和管理任务更加的紧凑和集中。
3. virtio半虚拟化的网卡VirtualBox支持企业级虚拟化技术:“网卡半虚拟化”。在企业后端数据池(database pool)的连接上,一般我们不会使用“完全虚拟化的硬盘和网卡”。为什么会这样?因为后端数据的连接需要稳健的速度、数据读写并发一定要高且稳,为了让应用服务器和后端独立存储之间更加顺畅的交互数据。“半虚拟化”技术出现了。
VirtualBox对网卡半虚拟化的支持是具有深远意义的。
六、VirtualBox的其它一些重要特点
1、在virtualbox中玩极品飞车——支持OpenGL接口的3D硬件加速
该特性直接在VM中通过VirtualBox来使用主机的3D硬件资源。
3D加速实现原理是VirtualBox安装Guest附加组件的同时在Windows客户机里安装了一个硬件3D驱动。当Windows客户机里的应用程序通过OpenGL编程接口来请求硬件加速时,将通过VirtualBox实现的一个特殊的通信管道从而发送到主机,主机在收到请求后将通过自己的OpenGL编程接口进行3D操作相关的回应。
2、在virtualbox中体验企业级虚拟化技术——增加了对Intel Nehalem虚拟化增强技术EPT和VPID的支持
VirtualBox已经有成熟的hypervisor可以在不需要CPU支持的情况下实现硬件虚拟化,而现在的Intel和AMD处理器都已经支持了“硬件虚拟化”。如AMD的“AMD-V”技术和Intel的VT-x技术。从VirtualBox的2.1.0版本开始,EPT(Extended Page Tables)和VPID(Virtual Processor Identifiers)两个硬件虚拟化相关的辅助扩展特性也在VirtualBox中得到了支持。
3、无痛平滑迁移到virtualbox ——支持多厂商的虚拟硬盘格式
VirtualBox全面支持VMware和微软Virtual PC的虚拟磁盘格式VMDK和VHD以及其他虚拟化厂商的虚拟磁盘格式。
总之,正是由于以上virtualbox这些特别的设计以及软件定位、尤其是我本人对其vboxmanage管理接口的喜好,所以可以说我是一个铁杆的virtualboxer。
总之, 想象每天在CMD下使用vboxmanage神情惬意的管理着virtualbox运行实例的管理员们,是多么酷的一件事情!
后续我会陆续专题性的讨论以上功能以及其他相关的高级功能。最终希望规划一个初级、中级、高级、排错相关的virtualbox专区,基本囊括如下阶段性内容:
n 基础部分:虚拟化技术的分类、virtualbox的安装方法(GUI形式和CLI形式);virtualbox extension packs扩展包的所有features用法;guest additions功能包的所有features用法;
n 中级部分:在VM中所有虚拟机硬件(cpu、motherboard、hard disk、serial port、network adapter等)在工作环境中的使用、配置详解;virtualbox中五种虚拟网络类型(Not attached、NAT、Bridged、Internal、Host-only)的配置方法详解;virtualbox中独有的UDP Tunnel网卡模式和virtio半虚拟化网卡配置应用环境详解;
n 高级部分:包括:normal images、write-through hard disks、Shareable hard disks、immutable images、multiattach mode等。
n 企业级功能:Host I/O caching、Limiting bandwidth for disk images、iSCSI servers、VRDP的各种模式配置详解、Teleporting、VBoxManage、PCI passthrough(vt-d)、Memory Ballooning 、Automated guest logons、phpvirtualbox、built-in VM debugger、以及关于virtualbox的p2v、v2v专题介绍等内容。
还有很多巨细无比的细枝末节暂时未能展现,当然会在后续的专题中具体体现出来,这里就不再一一列举!
后续基本提纲如下,敬请期待(还在规划完善中)!
专题一:虚拟化相关内容介绍
1.1 虚拟化技术存在的原因
1.2 虚拟化产品(按hypervisor分类)
1.3 虚拟化类型 - 18 -
1.4 不同VMM类型讨论(寄居架构和裸金属架构)
1.5 Hypervisor是什么
1.6 Hypervisor分类
专题二 以GUI和CLI方式管理virtualbox
2.1 virtualbox总体介绍
2.2 VirtualBox开源版和闭源版的区别
闭源版的特色功能:
开源版的特色功能:(VirtualBox OSE)
2.3 virtualbox虚拟机功能特点以及特色
2.4 virtualbox虚拟机安装(GUI方式安装)
2.4.1 Tips:什么是Oracle VM VirtualBox Extension Pack?
2.5 virtualbox安装(CLI方式)
2.6 virtualbox安装过程排错
2.7 使vboxmanage更好用
专题三 virtualbox术语及基础操作总览
第一小节:virtualbox中的常用术语
3.1 Host operating system (host OS)
3.2 Guest operating system (guest OS)
3.3 Virtual machine (VM)
3.4 Guest Additions
3.5安装第一台VM及Guest Additions (GUI方式)
3.6 使用命令行(CLI)安装VM
专题四 串口配置
串口(Serial ports ):
4.1COMx与ttySx
4.2使用VMWare Serial Line Gateway玩转串口01
4.3使用VMWare Serial Line Gateway玩转串口02
4.4使用VMWare Serial Line Gateway玩转串口03
4.5使用VMWare Serial Line Gateway玩转串口04
4.6virtualbox的虚拟串口知多少
4.7使用vboxmanage玩转串口01
4.8使用vboxmanage玩转串口02
4.9使用vboxmanage玩转串口03
专题五 Oracle VM VirtualBox Extension Pack之pxe功能体验
5.1 Oracle VM VirtualBox Extension Pack
5.2 Oracle VM VirtualBox Extension Pack初体验
5.3 使用kickstart全自动安装系统详解(linux)体验PXE功能
专题六 UDP Tunnel networking
6.1 virtualbox支持的网卡芯片类型
6.2 virtualbox支持的网卡芯片总览
6.3 举例说明virtualbox支持的网卡芯片
专题七 virtio
7.1 配置virtio网卡详细步骤(windows)
7.2 配置virtio网卡详细步骤(linux)
7.3使用命令行配置virtio
7.4 UDP Tunnel networking
7.5 UDP Tunnel networking(CLI方式进行)
7.6 使用一台计算机测试UDP Tunnel networking
专题八 VRDP 配置大全
8.1什么是RDP
8.2 NULL模式配置
8.3 VRDP配置之NULL模式详解
8.4深入理解VRDP
8.5 通过external(第一种)验证VRDP(windows系统)
8.6 VRDP配置之通过external(第一种)验证VRDP(windows)
8.7 通过external(第一种)认证VRDP(linux发行版)
8.8 VRDP配置之通过external(第一种)验证VRDP(linux)
8.9 通过external(第二种)认证VRDP
8.10 VRDP配置之通过external(第二种)认证VRDP详解
8.11 VRDP配置之external(第二种)认证VRDP深入分析
8.12 使用CLI配置NULL模式
8.13 使用CLI配置external模式(第一种情况)
8.14 使用CLI配置external模式(第二种情况)
8.15 RDP encryption
8.16 通过mstsc感性认识RDP encryption
8.17 配置VRDP encryption过程详解
8.18 配置VRDP encryption过程总结
8.19 VRDP video redirection
8.20 Multiple connections to the VRDP server
8.21 Multiple remote monitors
8.22 VRDP customization -
8.23 Remote USB