Hyper-V是微软的管理虚拟机(Virtual Machine)的服务,在安装Hyper-V功能之后,系统自动安装可视化的虚拟机管理工具:Hyper-V Manager。在同一台物理机上,能够使用Hyper-V创建多个虚拟机(VM),每一个VM执行不同的工作负载(workload),运行单独的系统环境。Hyper-V为管理VM提供全面的灵活性,用户可以根据需要,在一台物理机上创建多个VM,每个VM安装不同的操作系统(Windows或Linux),运行不同的应用程序,但是,虚拟机是以牺牲性能为代价的,IO和CPU的性能都会下降。

You can use virtual machines to run different workloads. Each virtual machine runs in an isolated execution environment, which gives you the flexibility to run different operating systems and applications on one physical computer.

一,安装Hyper-V功能

本文物理机的操作系统环境是Windows Server 2012 R2(Win12 R2),默认情况下,Hyper-V是不会安装的。想要在一台物理机上创建多个VMs,首先安装Hyper-V功能。打开Server Manager->Dashboard窗体,点击”Add Roles and Features“,在Server Roles Tab中,选择Hyper-V安装。计划在VM上安装的Guest OS是Win12 R2。

二,在Hyper-V中创建虚拟机

在安装Hyper-V之后,系统会自动安装Hyper-V管理器(Hyper-V Manager),默认将本机添加到Server列表中,可以通过菜单”Connect To Srever“将其他Server(已安装Hyper-V Feature)添加到Hyper-V管理器中,通过Hyper-V Manager来创建和管理虚拟机。

1,打开 New Virtual Machine 向导(Wizard)

2,指定VM的名字和数据存储的位置(Location)

3,选择VM的版本(Generation)

Hyper-V的版本共有2代:Generation 1 和 Generation2。第一代虚拟机是Hyper-V的前一个版本,第二代虚拟机启动(boot)更快,模拟加载的硬件资源更少,性能更高,但并不是所有的机器都支持第二代VM。 因此,可以无脑选择Generation 2,如果创建第二代VM失败,再选择Generation 1。

4,为VM分配开机内存

为新建的VM分配开机内存,勾选动态分配内存,VM会动态使用系统内存。

5,配置网络适配器,从connection列表中选择网络适配器

6,为VM分配存储数据的磁盘空间

创建虚拟硬盘(Virtual Disk)文件,后缀名是.vhdx,是逻辑盘符中的一个文件,能够动态扩张,用于存储VM的OS和数据文件。

7,为VM安装操作系统

选项:Install an operating system later,在VM创建完成之后,等到VM启动时再安装OS,本文使用该选项。

其他两个选项都是在创建VM时安装OS,从镜像文件(ISO),或从网络上安装。如果有了Windows Server 2012 R2的镜像文件,可以选择”Install an operating system from a bootable image file“,后缀名是.ISO。

8,概要,描述VM的配置信息,点击Finish按钮,开始创建VM 

三,配置VM,安装OS

由于在创建VM时,选择的是”Install an operating system later“,因此,在VM创建成功之后,需要配置VM,安装OS。在Virtual Machines面板中,会罗列出在特定Server上创建的所有VMs,选择需要安装OS的一个VM。

1,点击Connect,打开VM

2,点击Start按钮,启动VM

3,从镜像文件(ISO)安装OS

首先,添加集成服务安装硬盘,点击菜单 Action,选择”Insert Integration Services Setup Disk“,

然后,添加Disk驱动设备,点击菜单 Media,选项DVD Drive,选择”Insert Disk“,选择Windows Server 2012 R2的安装镜像文件(ISO);

最后,关闭VM(shutdown),设置firmware,从DVD Drive引导启动(boot from DVD Drive),设置的过程,参考下文:4,设置固件(Firmware),从固件中引导VM启动(boot)

重启VM,等待出现以下Dos界面,按下任意键,从CD或DVD引导VM安装OS

4,设置固件(Firmware),从固件中引导VM启动(boot)

点击VM的Settings,打开VM_Test的设置窗体

点击Firware,设置VM引导启动的顺序(Boot order),排在第一个Boot Entry,默认的类型是File,从bootmgfw.efi 文件中引导启动;将第一个boot Entry修改为Hard Drive,首先从Disk驱动器中引导VM启动,选中Hard Drive,点Move Up向上移动。

四,虚拟交换机管理器(Virtual Switch Manager)

在Hyper-V Manager的右侧面板上,点击Virtual Switch Manager,打开虚拟交换机管理器面板,如图

在Hyper-V中,能够创建三种类型的Virtual Switch:

  • External:将Virtual Switch绑定到物理网络适配器上,这样,VM能够通过访问物理网络和外网通信;
  • Internal:Virtual Switch 不能连接物理网络适配器,只能用于在本地物理机上创建的VM,用于VM和本地物理机的通信;
  • Private:Vitrual Switch 只能用于在本地物理机上创建的VM,使VMs之间能够互相通信;

五,修改VM的设置

1,修改Firmware,上文已说明

2,配置VM使用的内存资源,有四个配置选项:

  • Startup RAM:是VM启动时,分配的内存资源,建议配置
  • Dynamic Memory:VM动态地增加或减少内存使用,需要为VM分配内存资源的范围,建议配置
  • Memory Buffer:在VM使用的内存动态增加或减少时,尝试保留(Reserve)的内存缓冲区,建议使用默认值
  • Memory Weight:争用内存的优先级

3,处理器配置(Processor)

管理虚拟机的处理器,为VM分配处理器数量

4,SCSI控制器

管理虚拟硬盘驱动器(Virtual Hard Drive),为VM分配虚拟硬盘,收缩或扩展Disk空间

5,网络适配器(Network Adapter)

管理虚拟机的网络适配器,为VM分配Virtual Switch

六,故障排除

1,Hyper-V:Firmware 显示 Load Failed

详细请参考:《Hyper-V: Firmware – Load Failed》,《Hyper-V VM Load Firmware Failed》,使用的Powershell代码是:

(Get-VM "YOURVMNAME" | Get-VMFirmware).BootOrder

Get-VM "YOURVMNAME" |Get-VMFirmware|ForEach {Set-VMFirmware -BootOrder ($_.Bootorder | ? {$_.BootType -ne 'File'}) $_}

参考文档:

Part 1: Introduction to generation 2 virtual machines

Hyper-V的使用方法

深入浅出Hyper-V网络虚拟化技术

What is the memory buffer when dynamic memory is enabled?

Deciding When To Use Generation 1 or Generation 2 Virtual Machines with Hyper-V

Hyper-V Guide: Create and Configure Generation 1 and 2 Virtual Machines

Hyper-V1:创建和管理虚拟机的更多相关文章

  1. 使用virt-manager创建和管理虚拟机

    1.虚拟机管理程序和虚拟机管理 一个服务器上只安装单一操作系统的时代已经过去,单个服务器可通过安装多个虚拟机来运行不同操作系统.虚拟机的大量使用减少了所需的服务其硬件,降低了服务器的功耗,但却带来了另 ...

  2. 用于创建和管理 Azure 虚拟机的常用 PowerShell 命令

    本文介绍一些可用于在 Azure 订阅中创建和管理虚拟机的 Azure PowerShell 命令. 若要获取特定命令行开关和选项的详细帮助,可以使用 Get-Help 命令. 有关安装最新版 Azu ...

  3. 使用 Virtual Machine Manager 管理虚拟机

    转载自https://www.ibm.com/developerworks/cn/cloud/library/cl-managingvms/   尽管服务器管理在过去问题重重,但虚拟化管理简化了一些问 ...

  4. 菜鸟玩云计算之十五:在Ubuntu上创建和管理Redhat虚拟机

    菜鸟玩云计算之十五:在Ubuntu上创建和管理Redhat虚拟机 chedou@hgdb.net 虚拟机给工作带来巨大的便利,不仅仅体现在资源的按需使用,而且配置的迁移特别方便.本文将使用Ubuntu ...

  5. KVM虚拟机管理——虚拟机创建和操作系统安装

    1. 概述2. 交互式安装2.1 图形化-本地安装2.1.1 图形化本地CDROM安装2.2.2 图形化本地镜像安装2.2 命令行-本地安装2.2.1 命令行CDROM安装2.3 图形化-网络安装2. ...

  6. 使用 libvirt创建和管理KVM虚拟机

      1. libvirt介绍    Libvirt是一个软件集合,便于使用者管理虚拟机和其他虚拟化功能,比如存储和网络接口管理等等.Libvirt概括起来包括一个API库.一个 daemon(libv ...

  7. centos 下 KVM虚拟机的创建、管理与迁移

    kvm虚拟机管理 一.环境 role         hostname    ip                  OS kvm_server   target      192.168.32.40 ...

  8. KVM (虚拟机创建及管理,存储管理)

    创建KVM虚拟机 1.图形化界面创建 第一步:查看软件包组 yum grouplist 第二步:下载GUI界面的软件包组 yum groupinstall "Server with GUI& ...

  9. KVM虚拟机的创建、管理与迁移

    [日期:2012-06-01] KVM虚拟机管理 一.环境 role         hostname    ip                  OS kvm_server   target   ...

随机推荐

  1. 使用HTML5开发Kinect体感游戏

    一.简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决, ...

  2. setTimeout 的黑魔法

    setTimeout,前端工程师必定会打交道的一个函数.它看上去非常的简单,朴实.有着一个很不平凡的名字--定时器.让年少的我天真的以为自己可以操纵未来.却不知朴实之中隐含着惊天大密.我还记得我第一次 ...

  3. 网站定位之---根据IP获得区域

    记得以前做一个培训机构网站时候需要定位,那时候用的搜狐的api,不是很精准. demo:https://github.com/dunitian/LoTCodeBase/tree/master/NetC ...

  4. ExtJS 4.2 Date组件扩展:添加清除按钮

    ExtJS中除了提供丰富的组件外,我们还可以扩展他的组件. 在这里,我们将在Date日期组件上添加一个[清除]按钮,用于此组件已选中值的清除. 目录 1. Date组件介绍 2. 主要代码说明 3. ...

  5. Minor【 PHP框架】1.简介

    1.1 Minor是什么 Minor是一个简单但是优秀的符合PSR4的PHP框架,It just did what a framework should do. 只做一个框架应该做的,简单而又强大! ...

  6. 前端学HTTP之Web主机托管

    前面的话 对内容资源的存储.协调以及管理的职责统称为Web主机托管.主机托管是Web服务器的主要功能之一.保存并提供内容,记录对内容的访问以及管理内容都离不开服务器.如果不想自行管理服务器所需的软硬件 ...

  7. webpack+react+redux+es6开发模式

    一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入 ...

  8. HTML简单入门内容

    常用属性: Width=宽度 Height=高度 Size=大小 Color=颜色 Align=布局方向,值包括(top,bottom,left,right,center)上,下,左,右,中. Bor ...

  9. 【干货分享】流程DEMO-出差申请单

    流程名: 出差申请  业务描述: 员工出差前发起流程申请,流程发起时,会检查预算,如果预算不够,将不允许发起费用申请,如果预算够用,将发起流程,同时占用相应金额的预算,但撤销流程会释放相应金额的预算. ...

  10. HttpPost过程中使用的URLEncoder.encode(something, encode)

    URLEncoder.encode("刘美美", "utf-8").toString()       =     %E5%88%98%E7%BE%8E%E7%B ...