简单聊一聊虚拟化(一)

在聊云计算的时候,不避免的就要聊一聊其相关的技术,其中虚拟化技术便是很重要的一项。

1. 什么是虚拟化

虚拟化(Virtualization)是为一些组件创建基于软件的(或虚拟,而非物理)表现形式的过程。通过虚拟化技术可以将一台计算机虚拟为多台逻辑计算机,每个逻辑计算机可以运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 虚拟化可以应用于应用(Application)、服务器(Server)、存储(Storage)和网络(Network),虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。

2. 虚拟化的工作原理

Hypervisor接管了物理资源,并有效分隔物理资源,并将这些资源分配给不同虚拟环境(也就是需要这些资源的任务)使用。Hypervisor可以运行在操作系统之上,如VMware Workstation,也可以直接运行在裸机上,如VMware vSphere ESXi、Hyper-v Server 2016。简而言之,虚拟资源是通过Hypervisor调用物理资源的。

3. 虚拟化的类型

3.1 硬件虚拟化

硬件虚拟化就是硬件物理平台本身提供了对特殊指令的截获和重定向的支持。支持虚拟化的硬件主要有Intel-VT和AMD-V。

硬件虚拟化主要分为完全虚拟化半虚拟化,完全虚拟化几乎完全模拟实际硬件,而半虚拟化则不模拟硬件环境,但是客户机程序在其自己的隔离域中执行,如同在单独的操作系统上一样。

在硬件虚拟化中,宿主机(Host)是指实际的物理机,宿主机上面运行客户机(虚拟机),而客户机(Guest)是指虚拟机。 常见的硬件虚拟化平台软件:

  • 原生(Native):Hyper-v、KVM、VMware ESXi、Xen等
  • 基于宿主机(Hosted)
    • 专门:PCem、PikeOS、SheepShaver、SIMH、Windows on Windows等
    • 独立的:Microsoft Virtual Server、Parallels Workstation、Parallels Desktop for Mac、Parallels Server for Mac、PearPC、QEMU VirtualBox、Virtual Iron、VMware Fusion、VMware Player、VMware Server、VMware Workstation、Windows Virtual PC等
  • 工具(Tools):Ganeti、oVirt 、System Center Virtual Machine Manager 、Virtual Machine Manager

3.2 操作系统虚拟化

操作系统虚拟化也称为容器化,是操作系统自身的一个特性,其内核允许存在多个隔离的用户空间实例。这样的实例称为容器、分区、虚拟化引擎(VE)或jails。从运行在容器中的计算机程序的角度来看,容器就像是一个真正的计算机。

常见操作系统级别虚拟化技术:

  • OS容器(OS Containers):FreeBSD 、jail 、iCore Virtual Accounts 、Linux-VServer、 lmctfy 、LXC 、OpenVZ 、Solaris Containers、 Workload Partitions
  • 应用容器(Application Containers):Docker、rkt
  • 内核功能(Kernel features): cgroups 、Namespaces 、seccomp
  • Orchestration:ECS、Kubernetes

3.3 桌面虚拟化

桌面虚拟化是将逻辑桌面与物理机分离的概念。

桌面虚拟化有两种形式:

  • 虚拟桌面基础框架(VDI),可以被认为是更加高级的硬件虚拟化形式。用户不是通过键盘,鼠标和显示器直接与主机交互,而是通过网络连接使用另一台台式电脑或移动设备与主机交互。
  • 会话虚拟化,允许多个用户同时通过网络连接登录到一个共享的但功能强大的计算机并使用它。每个都有一个桌面和一个个人文件夹,用于存储文件。

常见桌面虚拟化技术:Citrix XenApp 、Citrix XenDesktop 、Remote Desktop Services 、VMware Horizon View 、Ulteo Open Virtual Desktop

3.4 应用虚拟化

应用程序虚拟化是一种软件技术,它将计算机程序封装在执行它的底层操作系统中。一个完全虚拟化的应用程序没有传统意义上的安装。应用程序在运行时表现得像直接与原始操作系统以及由它管理的所有资源连接,但可以在不同程度上隔离或沙箱化。

常见应用虚拟化技术:Ceedo、Citrix XenApp、 Dalvik 、InstallFree 、Microsoft App-V、Remote Desktop Services 、Symantec Workspace Virtualization 、Turbo、 VMware ThinApp 、ZeroVM

3.5 网络虚拟化

网络虚拟化是将硬件和软件网络资源和网络功能组合到单个基于软件的管理实体(虚拟网络)中的过程。

网络虚拟化分为:

  • 内部虚拟化:内部网络虚拟化使用软件容器(例如 Xen 管理程序控制程序)或伪接口(例如VNIC)来配置单个系统,以使用软件模拟物理网络。这可以通过将应用程序隔离到单独的容器或伪接口来提高单个系统的效率。
  • 外部网络虚拟化:外部网络虚拟化将一个或多个局域网(LAN)组合或细分为虚拟网络,以提高大型网络或数据中心的效率。

常见网络虚拟化技术:Distributed Overlay Virtual Ethernet (DOVE)、 NVGRE 、Open vSwitch 、Virtual security switch 、Virtual Extensible LAN (VXLAN)

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

微信扫一扫,分享到朋友圈

简单聊一聊虚拟化(一)
返回顶部