原文地址:https://www.linuxidc.com/Linux/2017-03/141972.htm

云最成熟的架构是IaaS(Infrastructure as a Service),其中用到的技术有xen,kvm,lxd等,VMware虚拟化技术也是其中的一种。

为什么要虚拟化技术呢?目前在众多大规模互联网公司和游戏公司大都采用xen,kvm等虚拟化技术,使用这些虚拟化技术的好处是当服务器宕机时,运维人员在做维护时只需要将在虚拟机上运行的服务切换到另一台物理机上。而如果不使用虚拟化技术,运维人员就必须在服务离线前再找一台物理机配置服务,以实现切换。因此,虚拟化技术可以实现服务实时切换、迁移。另外,在运维上,特别是自动化运维以及实现弹性运算等高级功能只能通过虚拟机的运行方式来实现,而物理机的运行方式是运行不了的。

IBM和Intel公司在硬件制造生产上也不断地为提供更好地、更便捷地实现虚拟化技术开发出CPU的新特性。

那么,创建虚拟机的工作原理又是怎样的呢?创建虚拟机又是一个怎样的过程?简单地说,创建虚拟机就是在一台电脑上虚拟出多台电脑,并且虚拟机之间彼此独立,看起来就像独立的电脑一样。我们知道,一台主机最核心的硬件部件是CPU(Central Processing Unit),Memory,I/O设备,它们通过主板连接起来。因此严格来说,创建虚拟机是通过软件方式虚拟出各个具有独立的CPU、Memory、I/O设备的平台。我们把宿主机称为Host,把各个虚拟机称为Guest

问题来了,假设我们的电脑CPU只有一个,所以底层能实现运算的只有一个CPU,那么软件如何保证各个虚拟机拥有独立的CPU?对于Memory和I/O来说又是怎么实现的?

对于CPU来说,因为CPU的工作方式是分时的(Time-sharing),它能把运行时间分为多个时间段,并将这些时间段分配给各个虚拟机,是这样来实现的。

对于Memory来说,首先要明白读取内存数据的方式。内存是编址的存储单元,读取方式是CPU通过寻址后定位到内存某一个cell存储空间上获取数据的。因此,虚拟内存是通过人为地在逻辑上把内存切成多段,分别分配给各个虚拟机,每个虚拟机只能使用自己地址范围内的内存,剩下的内存则分配给宿主机。

I/O的虚拟化是比较难的。例如输入设备键盘是不可能同时为多个虚拟机以及宿主机占用的,因此也只能类似“分时”地使用,键盘或者鼠标的控制权在各个虚拟机和宿主机间的切换是通过“捕获”来实现的。

此外,网卡的虚拟化是通过软件的方式,为各个虚拟机虚拟出网卡,这些网卡最终都要对应到物理网卡上。

OK,创建虚拟机的原理大概讲完了,那么创建虚拟机的步骤究竟怎么样呢?主要有两大步骤,一是虚拟出一个物理机,二是为这个物理机安装OS。

虚拟出一个物理机是指虚拟出硬件部件的意思,根据上面提到的,主要是虚拟出CPU、Memory、I/O(Disk,Ethercard等)。例如指定有多少个CPU,CPU有几个核,有多少内存,有多少个硬盘,这些硬盘是什么格式的,有多少个网卡,这些网卡又是什么格式的......做完这一步骤之后,物理机就虚拟出来了,但是我们知道,如果没有软件在这些硬件上面运行,那么这些硬件就相当于一堆废铁,所以我们还要为这个物理机安装上操作系统

再拓展一点,上面创建虚拟机的过程中,硬盘的虚拟化或磁盘的虚拟化是通过磁盘映像文件来实现的(disk image file),即将一个或多个文件当做硬盘或磁盘来使用。那么问题来了,怎么把文件当成磁盘来使用的?这就是这个用来做虚拟化的软件(例如VMware Workstation)的意义了。这个软件能够通过某个接口虚拟出硬盘控制器,这个控制器就能把文件当做磁盘来使用了,而且不仅能指定这个硬盘文件的大小,还能支持稀疏格式(sparse)。什么是稀疏格式呢?例如我们在创建虚拟机时,指定这个虚拟机的硬盘为20G,但实际上在我们的电脑上看到的这个硬盘文件只是显示20k,由此导致的虚拟机的硬盘大小与其在宿主机上占用空间的大小不一致,这就是稀疏格式(sparse)。并且,这个20k会随着我们的需求以及我们在虚拟机上的操作不断增加,例如从20k增加到4G,再到10G等等。

以下以VMware Workstation 12 PRO为例创建虚拟机:

(1)首先打开软件,点击创建虚拟机

(2)为了尽可能满足个人需求,建议选择自定义(高级)

(3)这里的硬件兼容性是向下兼容的,可以选择兼容的版本,这里默认选项即可。

(4)选择稍后安装OS。

(5)这里选择的操作系统的意义在于,因为不同的OS对于硬件的要求以及一些配置各不相同,所以在虚拟物理机时尽量选择匹配的客户机操作系统,这样才能够对硬件做更具针对性的优化

(6)如果主机支持硬件虚拟化则选择64位。

(7)这里虚拟机名称是虚拟机的标签,可随意设置,但一般设置为操作系统版本名以方便识别。

位置是创建的磁盘映像文件的存放位置。

(8)指定多少个CPU,一个CPU多少核。注意两者相乘不能超过物理机核心数。

(9)指定虚拟机内存(Memory),不管主机内存多少,建议指定为512MB或1024MB即可。

(10)指定网络类型,这里选择NAT模式

(11)默认。

(12)要注意FAT32分区无法存放大于4G的单个文件。注意:不推荐选择“立即分配所有磁盘空间”,否则不支持稀疏格式。

(13)指定磁盘映像文件名。

(14)创建物理机后可重新调整硬件设置。

(15)对于不需要的硬件可以删除,需要的硬件可以添加,或者编辑硬件的设置。

(16)如果CPU支持硬件虚拟化,则可以选择此选项。

(17)点击开启,按组合键“Ctrl+Alt+Insert”建可重启,开机按F2键可进入BIOS界面。

最后就只剩下安装系统这一步骤啦!

VMware 虚拟化技术 创建虚拟机的更多相关文章

  1. VMware workstation批量创建虚拟机和自动化安装操作系统(一)

    一. 简述 作为从事IT行业运维工作的Linuxer,大多情况下需要在测试环境中部署业务系统并进行测试,在没有足够的计算存储网络条件下,使用虚拟机进行虚拟集群的创建和使用,是一种不错的学习和实践方式. ...

  2. VMware workstation批量创建虚拟机和自动化安装操作系统(二)

    一. 简述 在上一篇<VMware workstation批量创建虚拟机和自动化安装操作系统(一)>中,主要介绍了VMware workstation自定义创建虚拟机的过程,和一些其他的有 ...

  3. Xen、OpenVZ、KVM、Hyper-V、VMWare虚拟化技术介绍

    一.Xen 官网:http://xen.org/ Xen 由剑桥大学开发,它是基于硬件的完全分割,物理上有多少的资源就只能分配多少资源,因此很难超售.可分为Xen-PV(半虚拟化),和Xen-HVM( ...

  4. vmware vsphere client 创建虚拟机

    浏览器访问https://192.168.120.29 用户名:administrator@zhcs.com 密码:  Deyi123456! 说明:此案例为创建linux的Centos7的操作系统的 ...

  5. VMware workstation创建虚拟机console

    1. 使用VMware workstation创建虚拟机硬件2. 安装操作系统3. 操作系统安装过程 1. 使用VMware workstation创建虚拟机硬件 使用VMware workstati ...

  6. 虚拟化技术KVM

    1>虚拟化技术: 计算机虚拟化技术是多种技术的综合实现,它包括硬件平台,操作系统,存储以及网络等,简单地说,虚拟化技术就是在单台主机上可以虚拟多个虚假主机,并可以在这些虚拟主机上运行不同的操作系 ...

  7. 【VMware虚拟化解决方案】 基于VMware虚拟化平台VDI整体性能分析与优化

    一.说一说 本来打算将前期项目里面出现的问题的分析思路与解决方法写出来,第一.疏导一下自己的思路,第二.分析并找出自身在技术层面所存在欠缺.但由于每个人都有一根懒经所以迟迟未动.今天突然发现51CTO ...

  8. VMware安装RedHat Linux虚拟机图文详解

    创建Red Hat Linux虚拟机 1.打开VMware,开始创建虚拟机 点击菜单[文件]->[新建虚拟机]. 2.默认典型,单击[下一步] 3.选择安装来源 在这里,我们选择安装来源为[安装 ...

  9. 虚拟化技术之kvm虚拟机创建工具qemu-kvm

    在前边的博客中我们介绍了如何创建kvm虚拟机,以及一些常用的工具的介绍和使用,今天我们来了解下kvm原始工具qemu-kvm:为什么说qemu-kvm是一个原始的工具呢,如果你用kvm虚拟机,心细的你 ...

随机推荐

  1. fzu 2132

    #include<stdio.h> double h; double tt; void s(long long m,long long n) { long long i,j,sum; j= ...

  2. MX2怎样利用Fiddler进行网络数据抓包

    首先须要保证PC与手机在同一局域网内或有独立公网IP, 下面以在同一局域网为例(保证手机能訪问到这台PC机器): 1. PC端配置 1). 安装Fiddler 2). 开启Fiddler下面功能:   ...

  3. BAT常问问题总结以及回答(多线程回答一)

    多线程 什么是线程?     进程概念:进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间),比如用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间.当 ...

  4. android 构建GPS Provide步骤及信息

    构建GPS Provide步骤及信息 1.   用GPS2GoogleEarth录制KML文件 2.   KML文件 2.1 经纬度解析 <LineString> <coordina ...

  5. 2016.04.14,英语,《Vocabulary Builder》Unit 14

    crypt/cryph, comes from the Greek word for 'hidden', encrypt, crypto- crypt : [krɪpt] n. 土窖, 地穴, (教堂 ...

  6. Github 协同开发

    ithub开发流程 Github的流程.也就是: 开发者各自fork项目的repo到自己Github账户下 每次开发同步到项目的repo然后再进行开发 push自己的开发分支到自己Github账户下面 ...

  7. 一个简单的演示用的Linux字符设备驱动程序

    实现如下的功能:--字符设备驱动程序的结构及驱动程序需要实现的系统调用--可以使用cat命令或者自编的readtest命令读出"设备"里的内容--以8139网卡为例,演示了I/O端 ...

  8. php错误抑制符

    php错误抑制符 简介 PHP 支持一个错误控制运算符:@.当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉. @这个符号在Java里面是注解符号. 实例 <?ph ...

  9. B1108 [POI2007]天然气管道Gaz 贪心

    啊啊啊,这题有毒.我想了各种花式数据结构,最后告诉我贪心???受不了... 题干: Description Mary试图控制成都的天然气市场.专家已经标示出了最好的天然气井和中转站在成都的地图.现在需 ...

  10. k8s Gitlab CI/CD 之自动编译Docker镜像并推送到指定的Registry

    环境介绍: 说明 节点 ip 系统 Gitlab Server git.ds.com 10.0.1.179 CentOS 7.5.1804 Gitlab Runner   10.0.1.178 Cen ...