标签:
原书中的第二章 是介绍了下hyper-v的管理器和检查点的使用,导入导出虚拟机,所以我跳过了不高兴写,很简单。直接进入第三部分,介绍虚拟机的三个重要组成部分:CPU,内存,硬盘的配置选项。
在Hyper-v中,系统对于虚拟处理器的管理偏向"粗犷",和同类产品VMware的ESXI相比,Hyper-v并不是将CPU的主频叠加,然后根据每一台虚拟机分配相应主频的资源;Hyper-v仅以物理CPU核心数进行资源分配,这种方式降低了逻辑架构的理解难度,但并不是说此种处理方式不可控。Hyper-v以数量为基础的计量方式可以通过资源占比的方式进行精细化的分配。
Hyper-v能够为虚拟机可分配的最大虚拟处理器数取决于物理服务器的两个指标:物理CPU个数,物理CPU核心数。
超线程:超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,虽然采用超线程技术能同时执行两个线程,但它并不像两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到 这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。但不可否认,拥有超线程技术的CPU性能会优于没有超线程技术的CPU。
资源 | Hyper-v 2012 R2 |
逻辑处理器 | 320 |
每台主机的虚拟CPU数量 | 2048 |
每台虚拟机的虚拟CPU数量 | 64 |
除了查询官方资料外,依然可以通过其他方法对此进行检测。针对CPU的硬件支持,只要满足以下三个条件就可以使用Hyper-v角色。
在PowerShell中输入msinfo32
拉到最底部,检查Hyper-v虚拟机监视模式扩展,Hyper-v固件中启用的虚拟化,Hyper-v数据扩展保护,这三个选项的结果是否为是。
在服务器虚拟化中,Hyper-v 第二级地址转换(SLAT)并不是必须功能。此功能是否开启仅在两种情况下是必要选项:
第二级地址转换(SLAT)广泛存在于服务器级别的Xeon CPU上,家用机级别的CPU则只有较新的CPU支持,具体是否支持,需要查询官方的CPU支持文档。
多数情况下,如果CPU本身支持Hyper-v技术,但在部署过程中总是失败,可以关注两个地方:
服务器虚拟化在企业和组织中的运营,牵扯到最多的一个问题就是:用户永远希望IT部门为其分配更多的硬件资源,而IT部门会考虑资源的集中整合分配,不愿意为其分配过量的资源。虚拟机的超量分配容易导致资源浪费,同时又可能拖慢其他位于相同硬件上的虚拟机。
假设某台硬件服务器是一台双路的服务器,拥有24颗逻辑处理器,每个用户希望申请的虚拟机是24颗虚拟处理器,那么可能只要有两个用户在全速运行,其他用户的体验就会大受影响,无法进行正常的使用了。
合理分配虚拟处理器,不建议超量分配虚拟机处理器主要是因为以下几个实施建议:
除了控制虚拟处理器的个数合理分配,hyper-v还有三种方式可以保障当出现系统cpu资源不足时,关键业务能够正常运行,并且这三种方式均可在虚拟机开机状态下进行调整:
创建一台虚拟机,右键点击该虚拟机,选择设置,点击处理器,可以看到默认的快速创建虚拟机只会为虚拟机分配一个虚拟机处理器。同时默认的虚拟机保留(百分比)为0.
虚拟机保留是指最少为该虚拟机分配的资源,此设置以百分比的形式将资源分配给该虚拟机。如果滥用此设置,会导致实际分配的虚拟机数量低于预期,同时但出现虚拟机CPU资源超过100%时,希望会按照虚拟机启动顺序不同一次启动,超出CPU资源分配的虚拟机将不能启动。合理利用此设置可以保证关键业务能够获取到足够的CPU运算资源,但不合理的设置会导致重要业务未被启动,反而非关键业务会抢占CPU资源。
虚拟机保留(百分比)与虚拟处理器的数量需要结合使用,如一台拥有16核的服务器,先创建一台保留99%的16核CPU的虚机,继续在创建一台虚拟机,16核,百分比2%,这样发现分配的资源99+2已经超过了100%,会造成开启失败。
默认创建的虚拟机保留资源均为0.因此即使系统中存在需要保留99%的虚拟机,默认的虚拟机依然可以开机,不会影响正常业务。
NUMA(非一致存储器访问)是针对常见的UMA(一致存储器访问)而言。我们常见的架构都是就近使用一致的资源,如部署双CPU的服务器,其内存一般是对称放置的。第一颗CPU就近访问离他最近的一半内存,而当他舍近求远访问另一颗CPU的内存,就属于NUMA了,此时可以预见,其访问效率自然不如离他更近的那一半内存了。
针对物理服务器而言,多数操作系统都可以自动识别NUMA。而不支持NUMA的虚拟化架构则不会去进行这种优先选择,带来的后果就是运行效率的降低。
Windows Server2012 R2默认支持NUMA,因此无需修改。
分配虚拟处理器时,建议用户不用分配单数的虚拟处理器,在配置不正确的NUMA信息时,会导致虚拟机的运行效率下降。Hyper-v的Numa会尽量将虚拟机的CPU和内存请求分配到相同的拓扑节点上,这些完全是自动运行的。
有保留资源,自然就有限制资源。和虚拟机保留资源相反,虚拟机限制资源的目的是限制某个虚拟机能够使用的最大资源,通过这两者相结合,可以使关键业务在一个合理的保障区间内运行。
首先看一个较为极端的例子,此处填写虚拟处理器的数量为2,虚拟机保留填写99,虚拟机限制填写30,此时系统会告知,保留值不能大于限制值。
一般来说,限制资源是针对高CPU压力的核心业务使用的,需要保障业务的正常运行,但不希望其占用过多的CPU资源。
另一种在组织中常见的场景是,某个强势部门申请了一台高配的虚拟机但非重要业务。为了保证其他用户的正常运行,系统管理员可以对这台虚拟机配置较为苛刻的虚拟机限制,以保证该虚拟机的运行不会影响到其他重要业务。
当一台Hyper-v主机上的多台虚拟机在争抢虚拟处理器资源时,可以通过相对权重来设置各个虚拟机之间的优先级。优先级默认100,该数值可以在1-10000之间进行设置,数字越大,优先级越高。默认所有虚拟机处于同一个服务器级别上,将会按照先到先得的顺序进行虚拟处理器资源轮询。
动态内存技术第一次是伴随着Windows Server 2008R2 SP1中的Hyper-V出现的,随之Windows Server 2012持续采用并改进了这项技术。在Windows Server 2012 R2中,动态内存技术从Windows服务器扩展到了Linux服务器。
静态内存是每一种服务器虚拟化技术都提供的技术,其特点是虚拟机开启后立即占用物理内存,虚拟机在运行期间不会再次向物理机提出增加内存的请求。
如一台服务器默认为4G物理内存,在仅安装Hyper-V角色的前提下,内存使用量为1G。
如果开启两台快速创建的虚拟机后,内存使用量会变为2G,除非虚拟机关机,否则内存不会被释放。
静态内存适用于可以明确内存需求量的业务,为虚拟机分配静态内存可以得到更好的运行效率。
动态内存真正做到了按需分配,同时作为Windows Server 2008R2 SP1的改进,Windows Server 2012和Windows Server 2012 R2中的动态内存不仅支持最大,最小内存,同时还支持启动内存。
需要注意的是,如需使用动态内存,则虚拟机必须提前安装操作系统,并安装集成服务组件。如不安装集成服务组件,则动态内存功能无法生效。
动态内存包含五个配置选项,下面将分别介绍。
如果内存瞬间增幅不大,在虚拟机使用内存缓冲区时,系统会在最大内存限额之内增大实际为用户分配的内存,同时保障内存缓冲区时刻为原设定值;如果内存瞬间增幅较大,内存页面文件会被写入磁盘,即智能分页文件,当内存数据由内存转入较慢的硬盘时,其运行效率会明显降低。在系统为虚拟机分配更多内存后,写入到硬盘中的分页文件将会重新被写回内存。如果发现为虚拟机设定了动态内存,但该虚拟机的运行效率偏偏很低,经常发生写入硬盘智能分页文件的情况,此时就可以考虑扩大内存缓冲区或增大内存了。为了避免这种情况,在使用动态内存时,合理分配内存缓冲区是非常必要的。
当优先级高的内存需要使用更多内存时,系统可能会将优先级低的开启了动态内存的虚拟机内存回收,被回收内存的虚拟机内存会写入智能分页文件。无论如何,当发生内存权重需要仲裁的情况时,问题往往都比较严重。内存权重可以保证业务持续运行,但无法对业务持续运行的效率进行保障。
解决这个问题有三种方法:
尽管动态内存可以做到按需分配,降低内存的使用量,节省成本。但动态内存并不是万能的,由于内存缓冲区的存在,其使用效率会低于静态内存。
适用于动态内存有如下场景:
适用于静态内存有如下场景:
复杂多变的生产环境决定了静态内存和动态内存都有其生存空间,相对静态内存而言,动态内存配置的架构规划需要花费更多的心思。
和物理硬盘不同的是,Hyper-V虚拟硬盘不会独占硬盘空间,它是一组具有特定含义的文件,通过Hyper-V创建虚拟机后,其会自动创建。它包含了Hyper-V虚拟机的数据文件和硬件配置文件,以及快照,页面交换等信息。它的大小和性能多数情况下受限于承载这些文件的物理硬盘的大小和性能,典型的一组Hyper-V虚拟硬盘文件包含以下内容:
Hyper-v虚拟硬盘在Hyper-v 2012 R2中拥有两种支持格式,分别是vhd和vhdx,其中vhdx在Hyper-v 2012中被首次使用,这种新格式拥有以下特点:
功能 | Hyper v 2012 R2 |
虚拟光纤通道 | 是 |
多路径输入输出(MPIO) | 是 |
原生4KB磁盘支持 | 是 |
最大虚拟硬盘大小 | 64TB vhdx |
最大直通硬盘大小 | 256TB+? |
安全卸载数据传输 | 是 |
从USB磁盘启动 | 是 |
存储池 | 是 |
实时VHD合并 | 是 |
硬盘IOPS限制 | 是 |
相对于vhd而言,vhdx最大的改进是单个文件可以超过2TB容量限制,达到了64TB,此格式不支持Windows Server 2012以前的Hyper-v版本。
Vhdx格式再性能上较之vhd有了明显的改进。在io的读写方面,可以达到100万级的IOPS。
在创建Hyper-v虚拟硬盘时,默认有三个选项可以选择,分别是固定大小,动态扩展,差异。通过hyper-v管理器的虚拟机向导默认只能创建动态扩展的虚拟硬盘,其他格式需要使用新建虚拟硬盘向导完成。
除了以上三种格式,还有一种特殊的磁盘应用方式:直通(Passthrough)磁盘,直通磁盘可以让虚拟机直接与物理磁盘交互操作,无需经过Hypervisor进行转换,因此读写效率也最高。
直通硬盘需要将原有的一块物理硬盘脱机,然后挂载到虚拟机中。
直通磁盘拥有最好的性能,但是依然存在一些缺点:
在使用直通硬盘时,需要因地制宜,根据实际的需求来决定是否运用此技术。
应用场景 | 推荐技术 | 推荐阵列及磁盘模式 |
重点应用 | 直通,固定大小 | RAID10,固态或SAS |
实验室环境测试 | 差异 | RAID0,固态 |
性能应用 | 直通 | RAID10,RAID0,固态或SAS |
一般生产应用 | 动态 | RAID5,SAS |
自Windows Server 2012起,操作系统内置了vhd硬盘管理工具,管理vhd和vhdx文件和管理单独的物理硬盘一样方便。在操作系统中双击即可完成挂载,可以对其进行格式化重新分区等和硬盘一致操作。也可以往硬盘中拷贝,删除修改文件。
编辑完成硬盘,右键弹出
在虚拟机关闭的情况下,可以对Hyper-v虚拟机磁盘的大小进行扩展和压缩。在Windows Server 2012 R2下创建的第二代虚拟机,默认即可于虚拟机开启状态下,对虚拟机进行扩展,如果是第一代虚拟机,则磁盘必须挂载在SCSI控制器上方可实现该功能。
选择编辑
可以选择扩展,压缩转换操作。当虚拟机磁盘经过频繁的写入和删除后,其所占用的磁盘空间会变大,但当虚拟磁盘中的数据删除后,这部分空间并不会被释放,通过压缩,可以释放这部分空间。转换可以将vhd转换成vhdx,也可以倒过来转换,在进行格式转换的同时,也可以在固定大小和动态扩展之间进行转换。
选择扩展后的大小。
确认扩展。
在测试环境中,可能会因为磁盘空间和预算的限制,通过差异磁盘来完成相应试验环境的搭建。当在将这些虚拟机迁移到生产环境时,依然使用差异磁盘就有些不合时宜了。此时需要将父磁盘和子磁盘进行合并,同时不能破坏原父磁盘。
点击编辑进行接下来的合并操作。
选择合并
在配置磁盘对话框,选择到新虚拟硬盘,输入进行差异磁盘的合并操作。输入真实存在的物理路径和保存的文件名,此时可选动态虚拟磁盘和固态磁盘两类。点击完成后,耐心等待合并结束。
回到虚拟机设置选项卡下,点击浏览,查看新生成的虚拟硬盘文件位置。同时原父子磁盘均未被破坏。
本章对Hyper-v的CPU的计量方式进行了分析,以及如何在脱机情况下检查CPU是否支持Hyper-v功能。
Hyper-v的动态内存技术也是一项非常有用的功能,在Windows Server 2012 R2中,动态内存技术开始对Linux系统进行支持,尽管该功能在Windows Server 2008 R2 SP1中就已经出现,但对Linux系统的支持还是第一次。Vhdx这种从Windows Server 2012 开始出现的新的虚拟硬盘格式开始渐渐深入人心。固定大小,动态扩展,直通以及差异这4种硬盘类型的性能差距越来越小,这为我们进行硬盘选型,架构设计带来了更简洁的选择。
而差异磁盘尽管性能相对最差,但在这个固态硬盘风生水起的年代,反而也变得不是什么大问题。在测试环境中,差异磁盘配合固态硬盘的表现依然会超越同等预算下的机械硬盘组合。
标签:
原文地址:http://www.cnblogs.com/wanggege/p/4735234.html