01 Virtualization虚拟化

虚拟化


依照维基百科

在计算里,虚拟化涉及创建一个虚拟的(而不是真实的)一些东西的版本的行为,包括虚拟计算机硬件平台,操作系统,存储设备,和计算机资源。


虚拟化能够被提供在不同的硬件和软件层,像CPU(中央处理单元),硬盘,内存,文件系统,等。在这章里,我们将看一些创建虚拟机在模拟不同种类的硬件区安装一个客户机操作系统在那个上面的例子。


虚拟机被创建在一个Hypervisor的顶层,那个运行在主机操作系统的顶层。伴随Hypervisors,我们模拟硬件像CPU,硬盘,网络,内存和安装客户机在它上面。我们能创建多个客户机伴随不同的操作系统在一个Hypervisor上。例如,我们能使一个Linux机器运行在裸机上之后,在设置Hypervisor之后,我们能创建多个客户机伴随Linux和Windows操作系统。一些hypervisors的例子是:

KVM

Xen

VMware

VirtualBox

Hyper-V

我们能找到支持为硬件虚拟化在最近CPU里,也使它是重要的去共享主机系统的处理器资源伴随多客户机操作系统在一个安全的有效的方法里。


下一步,让我们看看一些例子来怎样创建虚拟机在不同的hypervisor上。


学习目标

在这章的结束之际你应该能够去:

描述不同类型的虚拟化

解释怎样Hypervisor能够被用来创建虚拟机。

创建和配置虚拟机自动地,使用KVM,VirtualBox,和Vagrant。


介绍KVM

依照linux-kvm.org,

KVM为(Kernel-based Virtual Machine基于内核的虚拟机)是一种全虚拟化解决方案为Linux在x86硬件上。


它是主线Linux内核的一部分。它是 被移植的为S/390,PowerPC,IA-64和ARM同样。


KVM

一个高阶的KVM/QEMU虚拟化环境的预览(来自V4711,许可证置于CC BY-SA 4.0,查到从维基百科)


特征

KVM是一个开源软件。它支持多样的客户机操作系统,像Linux,Windows,Solaris,等。


KVM不执行任何模拟它自己,但是它公开/dev/kvm接口,让一个外部的用户控件主机能够做模拟。QEMU是一个这样的主机。


使用KVM的益处

使用KVM的一些益处是:

它是一个开源的解决方案,和,例如,自由去定制。

使用KVM是有效的从一个财务的观点同样,由于更低的成本关联和它。

它是高可伸缩。

KVM雇佣高级安全特征,利用SELinux。它提供MAC(Mandatory Access Control强制接入控制)安全性在虚拟机之间。KVM有收到嘉奖为迎合普通的政府和军事安全标准和为允许打开虚拟化为国土安全项目。


介绍VirtualBox

VirtualBox是一个x86和AMD64/Intel64虚拟化产品来自Oracle,运行在Windows,Linux,Macintosh,和Solaris主机和支持客户机操作系统从Windows,Linux家族,和其他的,像Solaris,FreeBSD,DOS,等。


它是一个易于使用多平台的Hypervisor。它不是主线内核的一部分。所以,用它在Linux上,我们不得不编译和插入个别的内核模块。


VirtualBox是分发在GNU General Public License通用公共许可证(GPL)Version 2版本2下。


使用VirtualBox的益处

使用VirtualBox的一些益处是:

它是一个开源的解决方案。

它是免费使用。

它运行在Linux,Windows,OS X,Solaris。

它是一个易于使用多平台的Hypervisor。


介绍Vagrant

使用虚拟机在一个开发环境里有多种多样的益处:

可再生的环境

多项目的管理在他们受限制的环境里

共享环境与其他队友

保持开发和开发环境同步

运行同样的虚拟机在不同的操作系统上,伴随一个Hypervisor像VirtualBox


配置和共享一个虚拟机是简单地,但是,当我们不得不处理多个虚拟机为同一个项目,做每个手动地会厌烦的。Vagrant来自Hashicorp帮助我们自动设置一个或多个虚拟机来自提供一个端到端生命周期使用vagrant命令行。Vagrant是一个交叉平台工具。它能被安装在Linux,Mac-OSX,和Windows。我们不得不使用不同的提供商,取决于操作系统。它有最近添加支持为Docker,能够帮助我们管理Docker容器。


管理虚拟机用Vagrant

下面,让我们看看怎样Vagrant帮助我们管理虚拟机:

Vagrantfile

它是文本文件带有Ruby句法,有所有的信息关于配置和提供一个虚拟机集。它有细节像机器类型,镜像,网络,供应商-特定信息,粮食供应者细节等,我们提供一个例子Vagrantfile下面:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
   # Every Vagrant development environment requires a box. You can search for 
   # boxes at https://atlas.hashicorp.com/search.
   config.vm.box = "centos/7"

   # Create a private network, which allows host-only access to the machine
   # using a specific IP.
   config.vm.network "private_network", ip: "192.168.33.10"

   # config.vm.synced_folder "../data", "/vagrant_data"

   config.vm.provider "virtualbox" do |vb|
      # Customize the amount of memory on the VM:
      vb.memory = "1024"
   end

   config.vm.provision "shell", inline: <<-SHELL
         yum install vim -y
   SHELL
end

vagrant命令读取配置给鱼的在配置文件和做不同的操作,像up,ssh,destroy,等vagrant命令也有子命令像box去管理Box镜像,rdp去链接虚拟机使用RDP(Remote Desktop Protocol远程桌面协议),等。一个详细的命令行列表是可用的在它的文档


Boxes

我们需要提供一个镜像在Vagrantfile里,我们能使用实例化机器。在一个上面的例子里,我们有使用centos/7 作为基本镜像。如果镜像是不可用的本地地,然后它能被下载从一个中央的仓库像Atlas,是镜像仓库被提供的来自Hashicorp。我们能分版本这些镜像和使用它们取决于我们需要,升级Vagrantfile相应地。


Vagrant Providers

供应商是隐含的引擎/hypervisor曾经准备一个机器。默认,Vagrant支持VirtualBox,Hyper-V和Docker。我们也有自定义的供应商,像KVM,AWS,等。VirtualBox是默认的提供应。


Synced Folders

伴随Synced Folder特征,我们能同步一个目录在主机系统上伴随一虚拟机,帮助用户管理共享的文件/目录简单地。举例,在上面的例子,如果我们注释Vagrantfile下面行,然后../data文件从当前的主机系统的工作目录被共享与/vagrant_data文件在虚拟机上。

# config.vm.synced_folder "../data", "vagrant_data"


Provisioning

供应商允许我们自动地安装软件,使配置更改,等。在机器被启动之后。它是vagrant up进程的一部分。有许多类型的provisioner可用,例如File,Shell,Ansible,Puppet,Chef,Docker,等。在下面的例子里,我们用Shell作为provisioner去安装vim包。

config.vm.provision "shell", inline: <<-SHELL
              yum install vim -y
   SHELL


Plugins

我们能使用Plugins来扩展Vagrant的功能性。


使用Vagrant的益处

使用Vagrant的一些益处是:

它自动化一个或多个虚拟机的设置,结果在节省时间和更低的操作成本。

它是一个交叉平台的工具。

它提供支持为Docker,因此帮助我们管理Docker容器。

它是容易去安装。

它是一个有用的在多开发者团队中。


学习目标(复习)

在这章的结束之际你应该能够去:

描述不同类型的虚拟化

解释怎样Hypervisor能够被用来创建虚拟机。

创建和配置虚拟机自动地,使用KVM,VirtualBox,和Vagrant。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值