Hyper-V NICs Bandwi...
 
Bildirimler
Hepsini Temizle

Hyper-V NICs Bandwidth Konusu  

Serhat AKINCI
(@serhatakinci)
Tecrübeli Üye

Yine geçtiğimiz günlerde gelen bir soru
üzerine yazdığım cevap maili alıp başını gidince, konuyu biraz daha
detaylandırıp blog entry olarak yayınlamak istedim 🙂

Soru tam olarak şöyle:

“Peki, ornegin uzerinde 10 guest calisan bir sunucuda tek bir
ethernet uzerinde her guest cok siki network haberlesmesi yapiyorsa ve
sunucunun 1Gbit lik bir ethetnet i varsa bu durumda her sunucuya
100Mbit (veya ilk alana cok sonra gelene nanik :)) mi ayriliyor”

Peki cevap?

Cevap kısa ve net: “Kimseye nanik yok, bu işler parayla değil sırayla :)”

Hyper-V için 3 temel Virtual Network tipi vardır.

- External (Fiziksel dünya ile konuşabilen network - External Virtul Switch)
- Internal (Sadece aynı Hyper-V sunucusu üzerinde
çalışan VM’lerin kendi aralarında ve Hyper-V sunucusu ile konuşabildiği
network - Internal Virtual Switch)
- Private (VM’lerin sadece kendi aralarında konuşabildiği network - Private Virtual Switch)

Daha önce Hyper-V Virtual Networks konusunda yazdığım bir yazıya buradan
ulaşabilirsiniz. Bu yazıya göz atarsanız; VM’lerin ve Parent OS’in
Virtual NIC’ler kullandığından ve bu vNIC’lerin fiziksel NIC üzerinden
external network’e çıkış yaptığıdan bahsetmiştim. Bu durumda VM’lerin
ve Parent OS’in external network iletişimi için kullanabileceği toplam bandwidth miktarı, fiziksel NIC’in gerçek bandwidth miktarına eşittir.
External network bandwidth diyorum çünkü VM to VM yada Host to VM
iletişiminde fiziksel NIC kullanılmayabilir. Yani Internal ve Private
networkler için bandwidth konusu farklıdır.

Sorudan yola çıkalım. Hyper-V üzerinde çalışan 10 VM var. External Virtual Switch ve tek bir fiziksel NIC üzerinde çalışan MS Virtual Network Switch Protocol
ile external network’e send/receive yapıyorlar. Fiziksel NIC ise 1GB
bandwidth’e sahip. Bu noktada network kuralları gereği pakedi gönderen,
aracı olan ve pakedi alan noktaların bandwidt’i, iletim bandwidth
durumuna direkt etki eder. Örneğin 1000MBps NIC üzerinden çıkan
paketler, 1000MBps Switch üzerinden geçip, 100MBps NIC’e giriş yapıyor
olabilir. Bu durumda source noktasından 1000MBps veri çıksada,
destination maximum 100MBps veri alabileceği için aslında iletim
bandwidth’i 100MBps dir.

Peki VM’lerin Virtual NIC’lerinin bandwidth’i nedir?

Windows Server 2003 ve 2008 Guest OS’ler için konuşursak vNIC başına
bandwidth 10gb tır. Ancak bu teorik rakam VMs ve Virtual Switch
arasındaki iletişimde geçerlidir (Her bir vNIC’in 10GBps olarak,
virtual CAT5 ile Virtual SW’e bağlandığını düşünebilirsiniz). Bu
durumda teorik olarak aynı Virtual SW’e bağlı VM’ler kendi aralarında
10GBps olarak iletişim kurabilirler (Internal veya Private Virtual
SW’ler üzerinde çalışan VM’lerin bu ağ üzerinde yüksek hızlarla
konuştuğunu test edebilirsin). Ama bu Virtual Switch external tipte ise
dışarı çıkışta bandwidth düşecektir çünkü Virtual SW’den external
networke akan trafik Fiziksel NIC üzerinden çıkmak zorundadır. Bu
durumda da toplam bandwidth maximu 1GB olur (fiziksel NIC bandwidth’i).
Aşağıdaki diagram bu yapıyı temsil ediyor.

Gelelim sorunun cevabına. 10 VM’den gelen ve external networke
gitmek isteyen paketler Parent Partition üzerindeki Virtual Switch’te
toplanır (VSC/VSP/VMBUS desteği ile) ve sırayla fiziksel NIC üzerinden
gönderilir. Bu noktada sıralamayı belirleyen bileşenlerin başında
Virtual Switch, VSP  (Virtual Service Provider) ve Windows Server 2008
Network mimarisi gelir. Virtual Switch üzerinde kullanılan routing
algoritması özel bilgidir ve bu konu ile ilgili public kaynak yoktur.
Bu nedenle daha derine inmek doğru olmaz 🙂

Ama şöyle bir yetenekten bahsedebilirim:

Örneğin Parent Partition üzerinde iki fiziksel NIC var. Bunlardan
birisi External Virtual Switch olarak tanımlanmış  ve bu bacak yerine
Virtual NIC yaratılmış. İkincisi ise fiziksel şekilde duruyor. Yani
Parent OS’in fiziksel networke erişebilmesi için Virtul NIC ve ikinci
fiziksel NIC olamak üzere iki şansı var ve her iki NIC’in de aynı
networke erişebildiğini kabul edelim.

Bu durumda Parent OS üzerindeki herhangi bir application fiziksel
networke erişmek istediğinde hangi NIC’i kullanmalı? Bu yapıda Virtual
NIC Virtual Switch üzerinden, fiziksel NIC ise direkt çıkış yapabilecek
konumdadır. Bu durumda tabiki fizikselden çıkmak çok daha mantıklı.
İşte bahsettiğimiz algoritma bu gibi kararları kendisi alıp network
trafiğini en doğru ve kısa yoldan gönderebilmektedir. Aşağıdaki diagram
bu yapıyı temsil ediyor.

(sorunun cevabına dönersek) Sonuç olarak 1GB bandwidth VM’ler arasında 100mb olarak paylaştırılmaz, sistem tarafından önceliklendirilip işlenir.

Sanallaştırma olmayan fiziksel yapıları düşünelim. Sistemde çalışan
uygulamalardan biri fazla network trafiği yarattığında, aynı sistem
üzerindeki diğer uygulamaların performansı bundan etkilenir. Çünkü
bandwidth’i ortak kullanırlar. Aynı mantık bir noktada Hyper-V Virtual
Networks içinde geçerli.

Peki biz her VM için 100MBps olarak limit veremez miyiz? Hyper-V
üzerinde Processor, Memory ve Storage kullanım limitleri verebiliyoruz
ancak NIC tarafında şimdilik limit verme şansımız yok ve bu durum
birçok sanallaştırma ürününde bu şekilde.

Bu noktada VM network aktivitelerini izleyip değerlendirmenizi
tavsiye ederim. Her ne kadar Virtual NIC’ler ve Virtual Switch’ler den
bahsetsekte, bu sanal aygıtları (üzerlerindeki sanal portlara kadar)
izleme şansımız var. Örneğin Ex-SW1 isimli sanal switch’in üzerinde
çalışan VM21 sanal makinesinin bağlı bulunduğu portun trafiğine kadar
izleyebilirsiniz. Nasıl mı?

Örneğin Windows Server 2008 üzerinde ücretsiz olarak gelen Reliability and Performance Monitor ve aşağıdaki counter’ları kullanabilirsiniz.

Hyper-V Virtual Switch (Seçtiğiniz Virtual SW/SWs üzerinde paket send/receive, multicast-broadcast, flood gibi durumları izler)
Hyper-V Virtual Switch Port (Daha detaylı olarak port bazlı send/receive izlenebilir)
Hyper-V Virtual Network Adapter (NIC bazlı send/receive izlenebilir)

Yada çok daha gelişmiş monitoring işlemleri için System Center Operations Manager kullanabilirsiniz.

İyi çalışmalar dilerim.

Serhat AKINCI - IT Professional

Alıntı
Topic starter Gönderildi : 22/04/2009 00:36
Mesut SARIYAR
(@mesutsariyar)
Kıdemli Üye Forum Yöneticisi

Serhat hocam sorulan bir soruya bu emek ve çaba ile detaylı bir cevap  yazman gerçekten büyük mutluluk verici.


Üstelikte bunlar piyasada çok bilinen çözümler değil, bu konular henüz çok taze ve kimse ne olup bittiğini bile bilmiyor.


Piyasada olupta senin bu alandaki emeğini göremeyen insan olmayacağını düşünüyorum.


Emeğine sağlık.


 

CevapAlıntı
Gönderildi : 22/04/2009 00:43
Eren SARISALTIK
(@ErenSARISALTIK)
Üye

Makale tadında harika bir soru-cevap olmuş,,

Teşekkürler,

 

CevapAlıntı
Gönderildi : 23/04/2009 18:34
Emrah GUNDAY
(@EmrahGUNDAY)
Üye

Merhaba


Mesut bey konu ile ilgili size tamamen katılıyorum piyasada herkes bu alanda serhat akıncıyı tanıdı da ne hikmetse bir microsoft hala tanıyamadı.Şimdi isim vermeden konuşacak olursam bu alanda ünvan verdikleri 2 kişi var ikisinide takip ediyorum ve sadece gülüyorum başka yorumum yok bloglarına bakıp yaptıkları işleri takip ederseniz Sizde o boş ünvanlı technet copy-paste cilerini görürsünüz.Serhat hocam siz de boşverin ürünün teknik detayını sunumunu öğretimini vs..Ürün sattırın ki sizide görsünler.Böyle çalışmakla,emekle olmuyor...

CevapAlıntı
Gönderildi : 28/04/2009 00:04
Serhat AKINCI
(@serhatakinci)
Tecrübeli Üye

Selam arkadaşlar.

Öncelikle güzel yorumlarınız için teşekkür ederim.

Yaptığımız paylaşımlarda ilk amacımız sizlere birşeyler aktarabilmek olmuştur ve bu amaç bizler için her zaman önceliklidir. Bizler üzerinde çalıştığımız konuların derinlerine inmeyi ve çıkarttığımız bilgileri başka insanlarla paylaşmayı seviyoruz çünkü bilginin paylaşarak çoğaldığına sonuna kadar inanıyoruz. Bu noktada yaptığımız çalışmalar bir ünvan ile etikenlendirilir yada etiketlendirilmez, bu ayrı bir konu. Ama şu bir gerçek ki bizler hep burada olacağız ve keyif aldığımız şeyleri yapmaya devam edeceğiz 🙂

CevapAlıntı
Topic starter Gönderildi : 28/04/2009 15:15
Paylaş: