{"id":244,"date":"2018-08-17T02:45:58","date_gmt":"2018-08-17T02:45:58","guid":{"rendered":"http:\/\/certcent.io\/?p=244"},"modified":"2018-08-17T02:45:58","modified_gmt":"2018-08-17T02:45:58","slug":"windows-server-2016-exam-hyper-v-70-740","status":"publish","type":"post","link":"https:\/\/certcent.io\/index.php\/2018\/08\/17\/windows-server-2016-exam-hyper-v-70-740\/","title":{"rendered":"Windows Server 2016 Exam &#8211; Hyper-V (70-740)"},"content":{"rendered":"<p>Here are some quick notes to Hyper-V that might come up during the exam:<\/p>\n<ul>\n<li><strong>Generations<br \/>\n<\/strong>Generation 2 is not the default when created a new VM, but using the command -generation 2 during the new-vm applet will accomplish 2.<br \/>\n* A little copy and paste, Generation 2 features:Generation 2 VMs use synthetic drivers and software-based devices instead, and provide advantages that include the following:<\/li>\n<li>Fixed memory can be changed on demand while the VM is running.<\/li>\n<li>Network Adapters can be configured while the system is running.<\/li>\n<li>UEFI boot Instead of using the traditional BIOS, Generation 2 VMs support Secure Boot, using the Universal Extensible Firmware Interface (UEFI), which requires a system to boot from digitally signed drivers and enables them to boot from drives larger than 2 TB, with GUID partition tables. UEFI is fully emulated in VMs, regardless of the firmware in the physical host server.<\/li>\n<li>SCSI disks Generation 2 VMs omit the IDE disk controller used by Generation 1 VMs to boot the system and use a high-performance virtual SCSI controller for all disks, enabling the VMs to boot from VHDX files, support up to 64 devices per controller, and perform hot disk adds and removes.<\/li>\n<li>PXE boot The native virtual network adapter in Generation 2 VMs supports booting from a network server using the Preboot Execution Environment (PXE). Generation 1 VMs require you to use the legacy network adapter to support PXE booting.<\/li>\n<li>SCSI boot Generation 2 VMs can boot from a SCSI device, which Generation 1 VMs cannot. Generation 2 VMs have no IDE or floppy controller support, and therefore cannot boot from these devices.<\/li>\n<li>Boot volume size Generation 2 VMs can boot from a volume up to 64 TB in size, while Generation 1 boot volumes are limited to 2 TB.<\/li>\n<li>VHDX boot volume resizing In a Generation 2 VM, you can expand or reduce a  VHDX boot volume while the VM is running.<\/li>\n<li> Software-based peripherals The keyboard, mouse, and videos drivers in a  Generation 2 VM are software-based, not emulated, so they are less resourceintensive and provide a more secure environment.<\/li>\n<li>Hot network adapters In Generation 2 VMs, you can add and remove virtual<br \/>\nnetwork adapters while the VM is running.<\/li>\n<li>Enhanced Session Mode Generation 2 VMs support Enhanced Session Mode, which provides Hyper-V Manager and VMConnect connections to the VM with additional capabilities, such as audio, clipboard support, printer access, and USB devices.<\/li>\n<li>Shielded virtual machines Generation 2 VMs can be shielded, so that the disk and the system state are encrypted and accessible only by authorized administrators.<\/li>\n<li>Storage Spaces Direct Generation 2 VMs running Windows Server 2016<br \/>\nDatacenter Edition support Storage Spaces Direct, which can provide a highperformance, fault-tolerant storage solution using local drives.<strong>Generation 1 is used for backwards compatibility for older versions:<\/strong>Windows Server 2008 R2<br \/>\nWindows Server 2008<br \/>\nWindows 7<br \/>\nSome older Linux distributions<br \/>\nAll FreeBSD distributions<br \/>\nAll 32-bit operating systemsLimitations converting generations:<br \/>\nWhile you cannot convert a generation 1 to generation 2, Microsoft does provide a script to convert a generation 2 to generation 1.  The script basically omits the features not supported.<br \/>\nI recommend that you simply create a new VM and configure accordingly.<br \/>\nAdding disk drives is much easier in 2 since you don&#8217;t need to specify the controller, it just adds to the SCSI.<br \/>\nExport-VM and Import-VM<br \/>\nExport-VM is very simply and straight forward, but Import-VM adds a little complexity.<\/p>\n<pre class=\"lang:default decode:true\" title=\"Export-VM\">NAME\n    Export-VM\nSYNOPSIS\n    Exports a virtual machine to disk.\n    Example 1\n    PS C:\\&gt; Export-VM -Name Test -Path D:\\\n    Exports virtual machine Test to the root of the D drive.\n    Example 2\n    PS C:\\&gt; Get-VM | Export-VM -Path D:\\\n    Exports all virtual machines to the root of the D drive. Each virtual machine will be exported to its own folder.<\/pre>\n<pre class=\"lang:default decode:true\" title=\"Import-VM\">NAME\n    Import-VM\nSYNOPSIS\n    Imports a virtual machine from a file.\n    Example 1\n    PS C:\\&gt; Import-VM -Path 'D:\\Test\\VirtualMachines\\5AE40946-3A98-428E-8C83-081A3C6BD18C.XML'\n    Imports the virtual machine from its configuration file. The virtual machine is registered in-place, so its files are not copied.\n    Example 2\n    PS C:\\&gt; Import-VM -Path 'D:\\Test2\\Virtual Machines\\8F148B6D-C674-413E-9FCC-4FBED185C52D.XML' -Copy -GenerateNewId\n    Imports the virtual machine by copying its files to the default virtual machine and virtual hard drive storage locations of the\n    Hyper-V host. The imported virtual machine will be given a new unique identifier, not the one in the configuration file. This is\n    useful when you want to import multiple copies of a virtual machine, since each virtual machine must have a unique identifier.\n    Example 3\n    Attempts import of a virtual machine; the attempt fails due to incompatibilities with the Hyper-V host.\n    PS C:\\&gt; Import-VM -Path 'D:\\vm1\\Virtual Machines\\53EAE599-4D3B-4923-B173-6AEA29CB7F42.XML'\n    Import-VM : Unable to import virtual machine due to configuration errors.  Please use Compare-VM to repair the virtual machine.\n    At line:1 char:1\n    + import-vm -Path 'D:\\vm1\\Virtual Machines\\53EAE599-4D3B-4923-B173-6AEA29CB7F42.XM ...\n    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n        + CategoryInfo          : NotSpecified: (:) [Import-VM], VirtualizationOperationFailedException\n        + FullyQualifiedErrorId : Microsoft.HyperV.PowerShell.Commands.ImportVMCommand\n    Gets a compatibility report that describes the attempted import and lists the virtual machine's incompatibilities with the Hyper-V\n    host.\n    PS C:\\&gt; $report = Compare-VM -Path 'D:\\vm1\\Virtual Machines\\53EAE599-4D3B-4923-B173-6AEA29CB7F42.XML'\n    Displays the compatibility report, revealing that the virtual network adapter was connected to switch Production. The Hyper-V host has\n    no switch by that name.\n    PS C:\\&gt; $report.Incompatibilities | Format-Table -AutoSize\n    Message                                      MessageId Source\n    -------                                      --------- ------\n    Could not find Ethernet switch 'Production'.     33012 Microsoft.HyperV.PowerShell.VMNetworkAdapter\n    Disconnects the virtual network adapter.\n    PS C:\\&gt; $report.Incompatibilities[0].Source | Disconnect-VMNetworkAdapter\n    Generates a new compatibility report to determine if the virtual machine is compatible with the Hyper-V host.\n    PS C:\\&gt; Compare-VM -CompatibilityReport $report\n    Displays the compatibility report.\n    PS C:\\&gt; $report\n    VM                 : Microsoft.HyperV.PowerShell.VirtualMachine\n    OperationType      : ImportVirtualMachine\n    Destination        : HYPER-V-1\n    Path               : D:\\vm1\\Virtual Machines\\53EAE599-4D3B-4923-B173-6AEA29CB7F42.XML\n    SnapshotPath       : D:\\vm1\\Snapshots\n    VhdDestinationPath :\n    VhdSourcePath      :\n    Incompatibilities  :\n    Imports the virtual machine.\n    PS C:\\&gt; import-vm -CompatibilityReport $report\n    Name State CPUUsage(%) MemoryAssigned(M) MemoryDemand(M) MemoryStatus Uptime   Status             ReplicationState\n    ---- ----- ----------- ----------------- --------------- ------------ ------   ------             ----------------\n    VM1  Off   0           0                 0                            00:00:00 Operating normally Disabled\n    Imports a virtual machine whose configuration is not compatible with the Hyper-V host.<\/pre>\n<p><strong>Versions:<\/strong><br \/>\nIt&#8217;s important to know that each VM you create has a version number that matches the VM HOST.  You cannot move Move or Export VMs from a newer version to an older version, but you can move older versions to a newer version VM host.  Example, I have a 2012 R2 VM HOST that contains version 5.0 guests, I can import these into a Windows 10 box that runs version 8.1.<br \/>\nPerformance tuning:<br \/>\nProbably the most difficult thing to plan, monitor, or adjust.  If you have unlimited resources this is much easier, but most of the sysadmins do not.<br \/>\nEnabling monitoring first:<\/p>\n<pre class=\"lang:default decode:true \" title=\"Enable-VMResourceMonitoring\">NAME\n    Enable-VMResourceMetering\nSYNOPSIS\n    Collects resource utilization data for a virtual machine or resource pool.\n    Example 1\n    PS C:\\&gt; Enable-VMResourceMetering -VMName TestVM\n    This example starts collecting resource utilization data on a virtual machine named TestVM.\n    Example 2\n    PS C:\\&gt; Get-VM TestVM | Enable-VMResourceMetering\n    PS C:\\&gt; Get-VM TestVM | Format-List Name,ResourceMeteringEnabled\n    This example starts collecting resource utilization data on a resource pool named TestResourcePool. (You can determine whether\n    resource metering is enabled for a resource pool by querying its ResourceMeteringEnabled property.)\n    Example 3\n    PS C:\\&gt; Enable-VMResourceMetering -ResourcePoolName TestResourcePool -ResourcePoolType Memory\n    PS C:\\&gt; Get-VMResourcePool -Name TestResourcePool -ResourcePoolType Memory | Format-List Name,ResourceMeteringEnabled\n    This example uses two commands that show resource metering being enabled and then obtain the data. The first command starts collecting\n    resource utilization data for a memory resource pool named TestResourcePool. (You can determine whether resource metering is enabled\n    for a resource pool by querying its ResourceMeteringEnabled property.) The second command retrieves the data in and formats it as a\n    list.\n    Example 4\n    PS C:\\&gt; Enable-VMResourceMetering -Name TestResourcePool -ResourcePoolType @(\"Processor\",\"VHD\",\"Ethernet\",\"Memory\")\n    This example begins collecting resource utilization data on multiple resource pools with the name TestResourcePool.\n<\/pre>\n<p>Starting monitoring<\/p>\n<pre class=\"lang:default decode:true \" title=\"Measure-VM\">NAME\n    Measure-VM\nSYNOPSIS\n    Reports resource utilization data for one or more virtual machines.\n    Example 1\n    PS C:\\&gt; Measure-VM -VMName TestVM\n    This example reports resource utilization data for a virtual machine named TestVM.\n    Example 2\n    PS C:\\&gt; $UtilizationReport = Get-VM TestVM | Measure-VM\n    PS C:\\&gt; Get-VM TestVM | Reset-VMResourceMetering\n    This example uses two commands as well as the pipeline. The first command uses the Get-VM cmdlet and passes the object to the\n    Measure-VM cmdlet to retrieve collected resource utilization data for a virtual machine named TestVM, and stores the data in a\n    variable named $UtilizationReport. The second command uses the Reset-VMResourceMetering cmdlet to clear existing data so that Hyper-V\n    begins collecting new data.\n<\/pre>\n<p>Enable Storage Quality of Service (QoS)<br \/>\nUse the information above to enable quality of service:<br \/>\nNext, set-vmharddiskdrive -vmname server1 -controllertype scsi &#8211;<br \/>\ncontrollernumber 0 -minimumiops 10 -maximumiops 500<br \/>\nNetworking:<br \/>\nVirtual NICs are dynamically assigned MAC address, this can be modified.<br \/>\nGeneration 2 machines&#8217;s Network cards will boot PXE, no need for legacy adapters anymore.<br \/>\nNIC teaming requires at least 2 physical adapters. Once a team is created, you create a Virtual switch to take advantage of the new team.<br \/>\n<strong>VMQ <\/strong>is automatically configured when the machine detects NICs 10 Gbps NICS.<br \/>\nConfiguring VMQ with Powershell:<\/p>\n<pre class=\"lang:default decode:true \" title=\"Enable-VMQ\">NAME\n    Enable-NetAdapterVmq\nSYNOPSIS\n    Enables VMQ on a network adapter.\n    Example 1: Enable VMQ on the specified network adapter\n    PS C:\\&gt;Enable-NetAdapterVmq \u2013Name \"GuestTrafficAdapter\"\n    This command enables VMQ on the network adapter named GuestTrafficAdapter and restarts the network adapter.<\/pre>\n<p>Powershell version to setup VM NIC teaming:<br \/>\nnew-vmswitch -name setswitch -netadaptername &#8220;nic1&#8243;,&#8221;nic2&#8221; &#8211;<br \/>\nenableembeddedteaming $true<br \/>\nConfigure and limit bandwidth to prevent overwhelming the physical adapter:<br \/>\nset-vmnetworkadapter -vmname server1 -name nic1 &#8211;<br \/>\nminimumbandwidthweight 75<br \/>\nPowershell Direct:<br \/>\nI use this for everything when administrating my Virtual Machines, luckily I have a Windows 10 Pro box.  Powershell Direct is supported on 2016 and 10 only.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Here are some quick notes to Hyper-V that might come up during the exam: Generations Generation 2 is not the default when created a new VM, but using the command -generation 2 during the new-vm applet will accomplish 2. * A little copy and paste, Generation 2 features:Generation 2 VMs use synthetic drivers and software-based&hellip; <a class=\"more-link\" href=\"https:\/\/certcent.io\/index.php\/2018\/08\/17\/windows-server-2016-exam-hyper-v-70-740\/\">Continue reading <span class=\"screen-reader-text\">Windows Server 2016 Exam &#8211; Hyper-V (70-740)<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/certcent.io\/index.php\/wp-json\/wp\/v2\/posts\/244"}],"collection":[{"href":"https:\/\/certcent.io\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/certcent.io\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/certcent.io\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/certcent.io\/index.php\/wp-json\/wp\/v2\/comments?post=244"}],"version-history":[{"count":0,"href":"https:\/\/certcent.io\/index.php\/wp-json\/wp\/v2\/posts\/244\/revisions"}],"wp:attachment":[{"href":"https:\/\/certcent.io\/index.php\/wp-json\/wp\/v2\/media?parent=244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/certcent.io\/index.php\/wp-json\/wp\/v2\/categories?post=244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/certcent.io\/index.php\/wp-json\/wp\/v2\/tags?post=244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}