Forum
Geçtiğimiz günlerde gelen bir soru üzerine yazdığım cevabı düzenleyerek burada da paylaşmak istedim.
Soruda merak edilen; sunucu
sanallaştırma ortamlarında, örneğin 3 Guest sistemin tek bir fiziksel
NIC’i kullanması bir sorun teşkil eder mi?
Öncelikle bu durum bir sorun
teşkil etmez. Zaten Server Virtualization teknolojilerinin temel amacı
olan konsolidasyon işleminin zemininde, fiziksel kaynakların birden
fazla sanal işletim sistemine kullandırılması yatar. Tek bir fiziksel
NIC üzerinden 3 Guest OS’in send/receive yapabilmesi gibi… Tabi 3 Guset
sistem external network’e normal üstü send/receive yapıyorsa, fiziksel
NIC’in sahip olduğu bandwidth’e göre dar boğaz yaşanabilir ancak bu
özel bir durumdur, bu gibi durumlarda zaten ayrı fiziksel NIC’ler
kullanılmalı.
Konu açılmışken Virtual Network
process’lerinin Hyper-V tarafında nasıl gerçekleştiğinden bahsetmek
istiyorum. Bu mantık bir çok sunucu sanallaştırma ürünü içinde
geçerlidir.
Hyper-V sunucularında VM’lerin ve Parent OS’in fiziksel network iletişimi için kullanılan Microsoft Virtual Network Switch Protocol çalışır (vSW). VM’lerde ise Virtual Network Interface Card‘lar vardır (vNIC).
Örneğin tek fiziksel NIC’e sahip sunucuda Hyper-V enable edip yeni bir external virtual network
yaratırsanız, Parent OS’e ait fiziksel NIC üzerinde çalışan (TCP/IP
dahil) tüm protokoller devre dışı kalır ve fiziksel NIC üzerinde sadece
Microsoft
Virtual Network Switch Protocol çalışmaya başlar.
Aşağıda da görebileceğiniz gibi “Broadcom NetXtreme Gigabit Ethernet” üzerinde sadece Virtual Network Switch Protocol çalışıyor.
Bu fiziksel NIC artık Hyper-V
Serverın dış dünya ile görüşen sanal switch’i durumundadır. Bu NIC’in
herhangi bir IP adresi de yoktur.
Peki bu durumda Parent OS network iletişimini nasıl gerçekleştirecek?
Senaryonun devamı olarak Parent OS’e yeni bir Virtual NIC eklenir ve tabiri caiz ise fiziksel NIC tarafından sağlanan sanal switch’e bağlanır (otomatik olarak).
Parent OS artık bu Virtual NIC
üzerinde çalışan protokoller (fiziksel NIC üzerinden kalkan
protokoller) ile network iletişimini sürdürür. Parent OS için aksiyon
budur.
Ayrıca şunu da belirtmek isterim: Parent OS üzerindeki Virtua NIC’i kaldırıp (veya hiç eklemeyip) Microsoft
Virtual Network Switch Protocol ve Parent OS’in
iletişimi için gerekli protokollerin hepsini aynı fiziksel NIC üzerinde
çalıştırmak mümkün. Bu durumda Parent OS için Virtual NIC olmaz, sadece
VM’lerde Virtua NICs olur. Bu durumda mimaride herhangi bir değişiklik
olmaz, mantık yine aynı. (Kişisel tavsiyem: fiziksel NIC üzerinde
sadece Microsoft
Virtual Network Switch Protocol çalışsın, Parent OS ise Virtual NIC kullansın.)
Hyper-V tarafında Virtual Network mimarisi kabaca böyle. Ancak bu konuda yanlış bilinen bir durum var. VM’lerin external network iletişimini sağlayan Parent OS üzerindeki Virtual NIC değil, yukarıda da bahsettiğim gibi fiziksel NIC üzerinde çalışan Microsoft
Virtual Network Switch Protocoldür. Nasıl ki Parent OS üzerine eklenen Virtual NIC, external network send/receive için fiziksel NIC üzerinde çalışan Microsoft Virtual Network Switch Protocol ‘e bağlı ise, VM’ler üzerinde yer alan Virtual NIC‘ler
de aynı şekilde bu protokol ile external netwok’e send/receive yaparlar.
Toparlarsak; Sunucu üzerindeki
fiziksel NIC sanal bir switch görevi üstleniyor, Parent OS ve VM’ler
ise üzerlerindeki Virtual NIC’ler ile bu switch’e bağlı şekilde
external network’e send/receive yapıyor (fiziksel NIC’in fiziksel
olarak erişebildiği networke).
Yukarıdaki diagram bu yapıyı temsil ediyor.
Serhat AKINCI – IT Pro.
Teşekkürler Serhat Hocam elinize sağlık.