{"id":10053,"date":"2009-11-26T17:01:02","date_gmt":"2009-11-26T17:01:02","guid":{"rendered":"https:\/\/aidanfinn.com\/index.php\/2009\/11\/w2008-r2-hyper-v-networking-enhancements\/"},"modified":"2009-11-26T17:01:02","modified_gmt":"2009-11-26T17:01:02","slug":"w2008-r2-hyper-v-networking-enhancements","status":"publish","type":"post","link":"https:\/\/aidanfinn.com\/?p=10053","title":{"rendered":"W2008 R2 Hyper-V Networking Enhancements"},"content":{"rendered":"<p>Windows Server 2008 R2 includes some enhancements to optimise how networking works in Hyper-V.&#160; I\u2019m going to have a look at some of these now.<\/p>\n<h4>Virtual Machine Queue<\/h4>\n<p>Here\u2019s the way things worked in Windows Server 2008.&#160; The NIC (bottom left) runs at the hardware level.&#160; VM1 has a virtual NIC.&#160; <\/p>\n<p><a href=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2009\/11\/image.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2009\/11\/image_thumb.png\" width=\"404\" height=\"254\" \/><\/a> When it communicates memory is copied to\/from that NIC by the parent partition.&#160; All routing and filtering and data copying is done by the parent partition in Windows Server 2008.&#160; <\/p>\n<p>Windows Server 2008 R2 takes advantage of Microsoft partnering with hardware manufacturers.<\/p>\n<p><a href=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2009\/11\/image1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2009\/11\/image_thumb1.png\" width=\"404\" height=\"254\" \/><\/a>How it works now is that the NIC, i.e. the hardware, handles the workload on behalf of the parent partition.&#160; Hardware performs more efficiently than software.&#160; All that routing, filtering and data copy is handled by the network card in the physical host.&#160; This does rely on hardware that\u2019s capable of doing this.<\/p>\n<p>The results:<\/p>\n<ul>\n<li>Performance is better overall.&#160; The CPU of the host is less involved and more available.&#160; Data transfer is more efficient. <\/li>\n<li>Live Migration can work with full TCP offload. <\/li>\n<li>Anyone using 10GB\/E will notice huge improvements. <\/li>\n<\/ul>\n<h4>Jumbo Frames<\/h4>\n<p>TCP is pretty chatty.&#160; Data is broken up and converted into packets that must be acknowledged by the recipient.&#160; There\u2019s an over head to this with the data being encapsulated with flow, control and routing information.&#160; It would be more efficient if we could send fewer packets that contained more data, therefore with less encapsulation data being sent.<\/p>\n<p><a href=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2009\/11\/image2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2009\/11\/image_thumb2.png\" width=\"304\" height=\"350\" \/><\/a> <\/p>\n<\/p>\n<p>Jumbo Packets accomplish this.&#160; Microsoft claims that you can get packets that contain 6 times more information with this turned on.&#160; It will speed up large file transfers as well as reduce CPU utilisation.<\/p>\n<h4>Chimney Offload<\/h4>\n<p>This one has been around for a while with Windows but is support for Hyper-V was added with Windows Server 2008 R2.<\/p>\n<p><a href=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2009\/11\/image3.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2009\/11\/image_thumb3.png\" width=\"404\" height=\"251\" \/><\/a>It\u2019s similar to VMQ, requiring hardware support, and does a similar job.&#160; The NIC is more involved in doing the work.&#160; Instead of offloading from the parent partition, it\u2019s offloading from the Virtual Machine\u2019s virtual NIC.&#160; The virtual NIC in the VM advertises connection offload capabilities.&#160; The virtual switch in the parent partition offloads child partition TCP connections to the NIC.<\/p>\n<h4>Hardware Reliance<\/h4>\n<p>You need support from the hardware for these features.&#160; During the RC release, the following NIC\u2019s were included by MS in the media:<\/p>\n<p>VM-Chimney Capable Drivers:<\/p>\n<ul>\n<li>Broadcom Net-Xtreme II 1 Gb\/s NICs (Models 5706, 5708, and 5709)<\/li>\n<li>Broadcom 10Gb\/s NICs (Models 57710, 57711) <\/li>\n<\/ul>\n<p>VMQ Capable Drivers:<\/p>\n<ul>\n<li>Intel Kawela (E1Q) 1 Gb\/s NICs (also known as Pro\/1000 ET NICs)<\/li>\n<li>Intel Oplin NICs (IXE) 10Gb\/s NICs (also known as 82598)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Windows Server 2008 R2 includes some enhancements to optimise how networking works in Hyper-V.&#160; I\u2019m going to have a look at some of these now. Virtual Machine Queue Here\u2019s the way things worked in Windows Server 2008.&#160; The NIC (bottom left) runs at the hardware level.&#160; VM1 has a virtual NIC.&#160; When it communicates memory &hellip; <a href=\"https:\/\/aidanfinn.com\/?p=10053\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;W2008 R2 Hyper-V Networking Enhancements&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[20],"tags":[181,80,117],"class_list":["post-10053","post","type-post","status-publish","format-standard","hentry","category-hyper-v","tag-hyper-v","tag-networking","tag-windows-server-2008-r2"],"aioseo_notices":[],"jetpack_featured_media_url":"","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/10053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10053"}],"version-history":[{"count":0,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/10053\/revisions"}],"wp:attachment":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10053"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10053"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}