Ana içeriğe geç

Bölüm 65: Veri Merkezi Ağları

8 dakikalık okumaGüncelleme:

Ağlar'a “Sen”i Katmak kitabının bir bölümü: adres çubuğuna yazdığın tek bir isteğin peşinden bakırla fiberin fiziğine inip karşı taraftan geri dönen uzun bir teknik yolculuk.

Kısım 9: Karşı Tarafta ve Dönüşte (Bölüm 65-70)

Tüm bölümler
  1. Giriş
  2. Adres Çubuğundan İsteğe
  3. Paket Anahtarlamalı Yol
  4. İsimden Adrese
  5. DNS Kayıtları
  6. Önbellek, Tazelik ve Güven
  7. Port Numarası ve Soket
  8. Bağlantısız Taşıma: UDP
  9. Üç Adımlı El Sıkışma
  10. Simetrik Şifreleme
  11. Açık Anahtarlı Kriptografi
  12. TLS El Sıkışması
  13. Sertifika Zinciri
  14. HTTP Mesajının Anatomisi
  15. Durum, Çerez ve Oturum
  16. HTTP/2'den HTTP/3'e
  17. İçerik Dağıtım Ağları
  18. Diğer Uygulama Protokolleri
  19. Katmanlı Mimari
  20. Hizmet ve Protokol
  21. Encapsulation ve Başlıklar
  22. Paket Yakalama ve Çözümleme
  23. Ağ Interface Kartı
  24. Fiziksel Adresleme
  25. Hata Sezme ve CRC
  26. Adres Çözümleme: ARP
  27. Ortam Erişimi: CSMA/CD
  28. Switch'ler
  29. Ağ Topolojileri
  30. Sanal Yerel Ağlar
  31. Kablosuz Erişim: 802.11
  32. Radyo Kanalı ve Kapasite
  33. Kablosuz Ağ Güvenliği
  34. Hücresel Ağlar
  35. Spektrum ve Kuşaklar
  36. Hareketlilik ve Aktarma
  37. Adres Kiralama: DHCP
  38. Adresin Anatomisi
  39. Adres Tükenmesi ve IPv6
  40. Router Mimarisi
  41. Kuyruk Yönetimi
  42. Cihaz Yapılandırma
  43. Routing Protokolleri
  44. Kontrol Düzlemi ve SDN
  45. Ağ İzleme ve Yönetimi
  46. Alanlar Arası Routing
  47. Adres Çevirisi
  48. Ara Kutular
  49. Tünelleme ve IPsec
  50. Firewall'lar
  51. Ağ Saldırıları
  52. Operatör ve Metro Ağları
  53. Bitten Sinyale
  54. Sembol Hızı ve Kanal Kapasitesi
  55. Multiplexing Teknikleri
  56. İletim Ortamları
  57. Bakır Kablo Sonlandırma
  58. Fiber Sonlandırma
  59. Fiber Optik İletim
  60. Bakır Erişim Ağı: DSL
  61. DSL'de Hız ve Mesafe
  62. Pasif Optik Ağlar
  63. Kablo Erişim Ağları
  64. Kablo Modem ve CMTS
  65. Denizaltı Kabloları
  66. Veri Merkezi Ağları
  67. Encapsulation Çözme
  68. Güvenilir Aktarım
  69. Tıkanıklık Denetimi
  70. Trafik Çözümleme
  71. Gecikme Bütçesi
  72. Soket Programlama
  73. Eşten Eşe ve Protokol Tasarımı
  74. Uyarlanır Video Akışı
  75. Gerçek Zamanlı Ses ve Görüntü
  76. Kablosuz Sensör Ağlarının Mimarisi
  77. Sensör Ağlarında Ortam Erişimi
  78. Sensör Ağlarında Yönlendirme ve IP
  79. Zaman Eşitleme ve Konum Bulma
  80. Sensör Ağı Uygulamaları
  81. Mobil Kablosuz Sensör Ağları
  82. Son Söz

Okyanusu geçen istek bir binanın kapısından girdi. O binanın içini şimdiye kadar tek bir kutu gibi çizdim; perdeyi kaldırıyorum.

İçerideki ağ dışarıdakine benzemiyor. Tek bir isteği karşılamak için makineler yan odadaki komşularıyla konuşuyor. Bu ağ neye göre kuruluyor?

Rafın tepesindeki kutu oraya kabloyla kondu

Veri merkezi, on binlerce makineyi aynı çatı altında ve birbirine yakın çalıştıran bir tesistir. Bu yakınlık tesisin en temel tasarım kararı. Makineler birbirine bağımlı çalışıyor ve aralarındaki her metre gecikmeye yazılıyor.

Fiziksel birim raftır. Bir rafa kaç sunucu gireceğini güç, soğutma ve 42 birimlik yükseklik belirliyor; tipik bir rafta 20 ile 40 sunucu durur. Bir rafı kalabalık bir mahalle gibi düşünebilirsin. Bu mahallenin ağa açılan kapısı tepedeki top-of-rack switch’tir, kısaca ToR. Adı yerinden geliyor: rafın üstü. Altındaki sunuculara 25 Gbit/s ile 400 Gbit/s arasında Ethernet bağlantılarıyla iner.

Kutuyu tepeye koymanın sebebi kabloda. 42 birimlik bir kabinet 44,45 mm’lik kırk iki dilim, yani yaklaşık 1,87 metre yükselir. Doğrudan bağlantı bakır kablosu ise 1 ile 7 metre arasında satılır. Tepeden inen 3 metrelik pasif bir kablo kabinetin her sunucusuna yetişiyor; 7 metrelik olanı bile komşu sıraya geçemiyor. Switch’in neden ortada değil de tepede durduğunu bu iki sayı açıklıyor. Hız arttıkça bakırın boyu da kısalıyor: 55. bölümdeki skin effect yüzünden 400 Gbit/s’te pasif kablo birkaç metrede kalıyor.

28. bölümdeki yapısal kablolamanın yatay ve dikey dağıtımı tanıdık; veri merkezinde o dikey dağıtımın tamamı tek bir kabinetin içine sığıyor.

O kablonun kendisi de bu tesise özgüdür: 55. bölümde gördüğün DAC. Fiberdeki SFP+ modülünün aynısını takar ama içindeki pahalı lazerleri bırakır. İki ucundaki modüllerle birlikte sabit boyda satılır; ucundan kesip uzatamazsın. 10 Gbit/s’lik sürümünün adı 10GSFP+Cu; IEEE 802.3’te değil, üreticilerin ortak belgelerinde (multi-source agreement, MSA) tanımlı.

İki ucunda sabit SFP+ modülleri bulunan doğrudan bağlantı bakır kablosu. Modüller kabloya fabrikada takılı olduğu için sabit boyda satılıyor, kesilip uzatılamıyor; içinde optik lazer bulunmuyor.

Bir portun dörde bölündüğü de oluyor. Tek bir QSFP+ portu ya 40 Gbit/s’lik tek bir interface olur ya da dört bağımsız 10 Gbit/s interface’e ayrılır. Sebebi şeritlerdir. 40 Gbit/s sinyalinin her şeridi zaten tek başına 10 Gbit/s standardının aynısıdır. Ayırmayı bir ucu tek, öbür ucu dört modüllü breakout kablosu yapar. Bugün aynı hile 400 Gbit/s’lik bir portu dört 100 Gbit/s’e bölüyor.

Üç kat neden ikiye indi

Rafların üstündeki düzen uzun süre üç katlıydı. Her toplama switch’i altındaki yaklaşık on altı ToR switch’i topluyordu. Her çekirdek switch’i de yaklaşık on altı toplama switch’ini topluyordu. Dışarıya çıkış sınır router’larından oluyordu.

Bu miras kampüs ağından geldi: çekirdek, dağıtım ve erişim. Kampüsün sert kuralı da beraberinde geldi. En alttaki switch’ler yalnızca dağıtım katmanına bağlanır, birbirine bağlanmaz. Yatay yollar açmak dokuyu karmaşık bir örgüye çevirir.

Modern doku iki katlıdır. Aşağıda aynı ToR switch’ler duruyor; iki katlı düzende onların adı leaf (yaprak) oluyor. Yukarıda ise yalnızca leaf’leri birbirine bağlayan spine (omurga) switch’leri var. Kaybolan kat, gecikmenin ve karmaşıklığın büyük kısmını da götürüyor. Fikir yeni değil: 39. bölümde Charles Clos’un 1953’te telefon santralleri için kurduğu çok katlı dokuyu görmüştün; leaf-spine onun Ethernet’teki hâli.

Kazancı saymak kolay. İki katlı dokuda en uzun yol leaf, spine, leaf eder: üç switch. Üç katlı hiyerarşide aynı yol erişim, toplama, çekirdek, toplama, erişim eder: beş switch. Üstelik leaf-spine’da bu sayı her sunucu çifti için aynıdır.

Bağlantı derecesi de küçük kalmıyor. Facebook’un (bugün Meta) 2019’da tanıttığı F16 dokusunda her leaf on altı doku switch’ine bağlanır. Her doku switch’i de on altı spine switch’ine bağlıdır. Leaf tek bir üst kata değil, on altı ayrı kutuya birden asılıdır.

Bütün bunların sebebi trafiğin yön değiştirmesidir. Bir sayfa isteği içeride onlarca servise dağılıyor ve o servisler birbirini çağırıyor. Baskın akış dışarıya inen dikey trafik olmaktan çıkıp raflar arasında yatay akan doğu-batı trafiğine dönüşüyor. Yerleştirme de bu yüzden bir ağ kararıdır. İlişkili servisler ve veriler aynı rafa ya da komşu rafa konur. Üst kata çıkan yük böyle azalır.

Dikeyde kalan kısım sınır router’larından binayı terk ediyor. 64. bölümde ağlar internet değişim noktalarında birbirine dokunuyordu; bu tesisin dış kapısı da oraya açılıyor.

  1. bölümde bir router’ın içindeki anahtarlama dokusunu açmıştık; burada aynı fikir kutu ölçeğinden bina ölçeğine büyütülmüş durumda.

Aynı çift arasında altı yol açık

Zengin ara bağlantının iki ayrı kazancı var. Raflar arası throughput artıyor, çünkü aynı iki raf arasında birden çok routing yolu var. İkincisi yedekliliktir: o yolların ortak hiçbir bağlantısı yoktur. Bir spine ya da bir kablo ölünce trafik komşu yola kayıyor.

Yol sayısını spine sayısı belirler. Leaf’inde altı upstream bağlantısı taşıyan bir dokuda altı spine vardır. Her leaf hepsine birden bağlıdır. İki leaf arasında da altı eşit maliyetli yol açık kalır (43. bölümdeki ECMP). Trafik bu yollara flow flow dağıtılır: switch 49. bölümdeki five-tuple’ın özetini alır ve aynı flow’u hep aynı yola koyar, böylece bir flow’un paketleri sırasını kaybetmez.

Dokunun büyüklüğünü spine’ın port sayısı belirler. 32 portlu spine’lar 32 leaf taşır. Her leaf’te 48 sunucu portu varsa doku 1.536 sunucuya çıkar.

Leaf ile spine katlarının nasıl örüldüğünü görelim:

Üç spine'lı bir dokuda aynı çift arasındaki yollar
üç spine'a küçültülmüş bir dokuspine 1spine 2spine 3leaf Aleaf Bleaf C48 sunucu portu48 sunucu portu48 sunucu portuortadaki spine öldüyol hâlâ açık
Her leaf her spine'a bağlı. Şemada doku üçe küçültüldü: üç spine, üç leaf. Leaf yalnızca sunucuları taşır, spine yalnızca leaf'leri bağlar. İki leaf arasında yatay kablo yoktur.
  1. Her leaf her spine'a bağlı. Şemada doku üçe küçültüldü: üç spine, üç leaf. Leaf yalnızca sunucuları taşır, spine yalnızca leaf'leri bağlar. İki leaf arasında yatay kablo yoktur.
  2. A ile C arasında ilk yol. Soldaki leaf'ten çıkan trafik ortadaki spine'a çıkıyor ve sağdaki leaf'e iniyor. Uçtan uca üç switch geçiliyor ve bu sayı her leaf çifti için aynı.
  3. Aynı çift arasında üç yol. Diğer iki spine da aynı iki leaf'e bağlı olduğundan üç eşit maliyetli yol var. Yolların ortak hiçbir bağlantısı yok; gerçek dokuda sayıları spine sayısı kadar.
  4. Ortadaki spine ölüyor. Bir kutu ya da bir kablo ölünce o spine'dan geçen bütün bağlantılar birden gider. Üçte bir kapasite kayboluyor, ama iki leaf arasındaki bağ kopmuyor.
  5. Trafik komşu yola kayıyor. Kalan yollardan biri devralıyor ve akış sürüyor. Spanning tree bu dokuda çalışsaydı yolların ikisi zaten kapalı olurdu ve tek yolun ölümü, yeni bir yol açılana kadar rafı ağdan koparırdı.

Yolların hepsinin aynı anda açık kalması kendiliğinden olmuyor. 27. bölümdeki spanning tree döngüyü şöyle kesiyordu: paralel bağlantılardan yalnızca biri etkin bırakılır, gerisi mantıksal olarak kapanır. Veri merkezinde bu, satın alınan kapasitenin çoğunu ölü tutmak demektir. Klasik kaçış yolu network layer’a çıkmaktır. Router’lar spanning tree çalıştırmaz ve paralel bağlantıların hepsini birden etkin tutar. Büyük veri merkezleri bu yüzden içeride de 45. bölümdeki BGP’yi konuşuyor: RFC 7938 her leaf’e ve spine’a ayrı bir otonom sistem numarası verip dokuyu internetin küçük bir kopyası gibi yönetmeyi anlatıyor.

İkinci yol bağlantıları birleştirmektir. IEEE 802.1AX bağlantı toplama standardı paralel bağlantıları tek bir sanal kanal gibi kullanır. Gigabit bağlantılar 2, 4 ve 8 gigabit/s kanallara toplanır. 10 gigabit bağlantılarda tavan 80 gigabit/s olur. Standart önce 802.3ad adıyla yayımlanmıştı. Toplama tek bir flow’u hızlandırmaz: aynı özet hilesiyle her flow tek bir bağlantıya düşer ve kazanç ancak çok sayıda flow olduğunda görünür.

Aynı numaranın dayanıklılık sürümü de var (multi-chassis link aggregation, MLAG). Sunucu aynı sıradaki iki ayrı switch’e birden bağlanır. İki kutunun üstündeki yazılım ona tek switch gibi görünür. Sunucu standart bağlantı toplama yaptığını sanır. Bir port, hatta bütün bir switch ölse bile ağdan kopmaz.

Darboğaz nereye kurulur, kayıp nasıl karşılanır

Bir leaf’in iki yüzü vardır. Aşağı yüzünde 48 sunucu portu duruyor; her biri 100 Gbit/s ise downstream 4.800 Gbit/s eder. Üst yüzünde altı upstream bağlantısı var; her biri 400 Gbit/s ise toplam 2.400 Gbit/s eder. Oran iki katına bir. Bu kasıtlı bir eksikliktir ve adı aşırı aboneliktir.

Aynı leaf’i bloklamayan yapmak zor sayılmaz. Yukarıya 400 Gbit/s’lik on iki bağlantı koyarsın ve iki yön eşitlenir. Bedeli altı ek porttur: hem leaf’te hem spine’da. Bloklamayan tasarımın tanımı da budur: bütün portların aynı anda azami başarımda çalışabilmesi. Yüzlerce yüksek hızlı portta bunu sağlamak pahalıya patlar.

Aşırı aboneliği ayakta tutan gözlem şudur: Ethernet bağlantıları ortalamada düşük hızda çalışır, aralara yüksek hızlı patlamalar serpiştirilir. Bütün sunucular aynı anda tam hızda konuşursa yukarıda her birine ancak %50 düşer. Switch’in kendi iç dokusu yine de bloklamayan üretilir. Darboğaz kutunun içinde aranmaz, upstream’e kasten bırakılır.

Darboğazın yeri bilindiği için kayıp da başka türlü karşılanıyor. 40. bölümde tampon dolduğunda etkin kuyruk yönetiminin iki kolu vardı: düşürme ve işaretleme. Veri merkezi ikinci kolu seçiyor. Tıkanıklık denetimi açık tıkanıklık bildirimi (ECN) üzerine kuruluyor ve bu ailenin adları DCTCP ile DCQCN; atlama atlama geri baskı üzerinde de deneme yapılıyor.

Sebebi veri merkezine özgü bir kullanımda. RoCE (RDMA over Converged Ethernet) ile uzak doğrudan bellek erişimi (RDMA) Ethernet üzerinde taşınır: bir makine karşı makinenin belleğine işletim sistemini araya sokmadan yazar. RoCE kaybı TCP kadar ustaca onaramaz ve tek bir kayıp paket çok pahalıya mal olur.

En sert fren data link layer’dadır. PAUSE frame’i karşı tarafa bir süre susmasını söyler ve o süre quanta biriminde ölçülür.

hedef  01-80-C2-00-00-01   PAUSE için ayrılmış multicast adresi
tip    0x8808              MAC denetim frame'i
işlem  0x0001              PAUSE
süre   0 - 65.535 quanta   her quanta 512 bit süresi

Adres 48 bitliktir. 802.1D uyumlu bir switch onu diğer portlara iletmez; frame’in kendi içinde işleneceğini anlar. PAUSE yalnızca çift yönlü çalışan istasyonlardan gönderilir. Sürenin karşılığı bağlantı hızına bağlıdır: 100 Gbit/s’te bir quanta 5,12 ns, azami duraklama 335,5 µs olur. Aynı istek 10 Gbit/s’te 3,36 ms tutar; hız düştükçe aynı quanta sayısı daha uzun bir sessizliğe karşılık gelir.

Veri merkezinde kullanılan ise bu frenin sınıf sınıf çalışan sürümü: PFC (priority flow control, 802.1Qbb) yalnızca RoCE’nin öncelik sınıfını durdurup öbür trafiği akıtıyor. Bedeli de ünlü: bir switch’teki duraklama komşularına zincirleme yayılıp dokunun bir bölümünü kilitleyebiliyor. Yapay zekâ kümeleri bu sınırları yeniden zorluyor. Haziran 2025’te yayımlanan Ultra Ethernet belirtimi, bir aktarımın paketlerini tek yol yerine bütün yollara serpiştiriyor ve sırayı alıcıda topluyor.

Bir de frame boyu var. 20. bölümde gördüğün jumbo frame desteği switch’lerin veri sayfalarında 9.000 baytın biraz üstüne, örneğin 9.216 bayta kadar yazar. İnternetin tamamı ise 1.500 baytlık standart sınırla çalışır. Aradaki oran altı kat, yani aynı veri için başlık işleme sayısı o kadar seyreliyor. Jumbo frame de yalnızca iki ucunu senin yönettiğin bir küme içinde işe yarar.

Özet

  • Top-of-rack switch: rafın tepesindeki kutu oraya bakır kablonun bir ile yedi metrelik boyu yüzünden konur.
  • Leaf-spine: iki katlı doku üç katlı hiyerarşinin yerini aldı ve iki sunucu arasındaki mesafeyi her çift için üç switch’e sabitledi.
  • Doğu-batı trafiği: veri merkezinde baskın akış raflar arasında yatay akar, bu yüzden ilişkili servisler bilerek komşu raflara yerleştirilir.
  • Çok yol, tek flow: ECMP ve bağlantı toplama trafiği flow flow dağıtır; tek bir flow her zaman tek bir yolda kalır.
  • Aşırı abonelik: downstream ile upstream arasındaki oran kasten eşitlenmez, çünkü bağlantılar ortalamada düşük hızda çalışıp aralara patlama serpiştirir.
  • Kayıpsız taşıma: tıkanıklık işaretlemeyle bildirilir ve gerektiğinde PAUSE ya da PFC frame’i bağı doğrudan durdurur.

Doku kuruldu, yol seçildi ve paket rafın içindeki sunucuya kadar geldi. Peki üstüne katman katman sarılmış bu zarfı o makine nasıl açıp okuyacak?

66. bölüme devam et: Encapsulation Çözme