En verimsiz veri merkezi nasıl tasarlanır?
PUE değerini 4.0 üzerine çıkarmak için RAID 0 kullanımı ve ısı yönetimi stratejileriyle en verimsiz veri merkezi kurulumu hakkında varsayımsal bir rehber.
Ne inşa ediyorsunuz
Bu sitedeki her kılavuz size bir şeyi doğru yapmayı öğretir: komutlar sırasıyla, doğru sonucun neye benzediği ve hata modlarının tanımlanmış hali. Bu kılavuz farklıdır. Bugün, tamamen varsayımsal olarak, paranın, elektriğin ve kibrin üretebileceği en verimsiz veri merkezini tasarlayacağız.
Bir metriğe ihtiyacımız var, bu yüzden sektörün kendi metriğini ödünç alacağız: PUE, Power Usage Effectiveness — toplam tesis gücünün, hesaplama ekipmanına ulaşan güce bölünmesi. Bir hyperscale veri merkezi yaklaşık 1.1 ile çalışır: neredeyse her watt faydalı bir iş yapar. Standart bir kurumsal sunucu odası 1.5 değerini yönetir. Hedefimiz 4.0 veya daha yükseği; bu, her bir watt hesaplama için üç watt daha boşa harcanıyor demektir. Bu sayıdan sık sık bahsedeceğiz, ciddi kılavuzların yedeklemelerden bahsettiği gibi.
Site seçimi: odak noktası ısıdır
Soğutma, gerçek bir veri merkezindeki en büyük genel gider kalemidir; bu yüzden bizimki termodinamiğe kendi sahasında savaş açacak. İdeal konum bir tavan arasıdır. Güney cepheli. İdeal olarak, doğrudan sunucunun üzerine ışık düşürecek şekilde konumlandırılmış bir çatı penceresi ile; böylece makine hem kendi atık ısısını hem de güneşin ısısını alır; bu, elektrik faturanız ile bir yıldız arasındaki bir iş birliğidir.
Kışın soğutma, pencereyi açarak sağlanır. Gerçek veri merkezleri dış havayı kullanır — bu tekniğe free cooling denir; bu teknik mühendislik ürünüdür, filtrelenmiştir ve nem kontrolü altındadır. Biz ise bunu kazara, içine yağmur, polen ve her çeyrekte en az bir şaşkın kuş alan bir pencere aracılığıyla yapacağız.
Gerçek bir ustalık için bir klima kurun, ardından termostatın iki ayak uzağına, klimanın hedef sıcaklığından iki derece daha sıcak ayarlanmış bir ısıtıcı yerleştirin. Her iki makine de artık sonsuza dek, mükemmel bir anlaşmazlık içinde sürekli çalışacaktır. Elektrik şirketi size Noel'de bir kart gönderecektir.
Tek sunucu, büyük, sevilen
Yedeklilik (redundancy), bağlılığı seyreltir. Veri merkezimiz tam olarak bir sunucu içerir ve bu sunucu devasadır; çünkü 512 GB RAM'e sahip tek bir makine bir altyapı gibi hissettirirken, dört küçük makine bir yapılacaklar listesi gibi hissettirir.
Sunucunun bir adı vardır. Hostname değil — bir adı vardır. Genellikle Gandalf veya Odin. Odin'i devre dışı bırakamazsınız (decommission). Odin beş yıldır açık:
$ uptime
09:14:02 up 1847 days, 3:22, 1 user, load average: 6.41, 6.38, 6.40Bu sayı bir gurur kaynağıdır; bu yüzden ekran görüntüsünü alıp paylaşırsınız ve ekran görüntüsünü gören her saldırgan bunu etkileyici bulur: 1,847 günlük uptime, yamalanmamış 1,847 günlük kernel zafiyeti demektir. Yeniden başlatmak (reboot) zaten söz konusu bile değil — yeniden başlatma, 2021 yılında hangi servislerin elle başlatıldığını ve bir systemd ünitesine asla yazılmadığını keşfetme yönteminizdir. Hangileri olduğunu kimse hatırlamaz. Sunucu artık organizasyon şemasında taşıyıcı bir sütun halindedir.
Depolama: hız ve diğer veri kaybetme yolları
Diskler, performans için RAID 0 olarak yapılandırılmıştır. Sıfır, hata verebilecek disk sayısını ifade eder. Maksimum etki için diziyi (array) karmaşık kökenli depolama birimleri üzerine stripe edin: iki düzgün SSD, bir yaşlı HDD ve bir konferanstan kalma USB bellek. Dizi, tasarım gereği tam olarak o konferans belleği kadar güvenilirdir.
Yedeklemeler, aynı dizi üzerinde bulunan ve önceki isimlendirme şemasinin bir tarball dosyasını içeren backup_final_v2_REAL adlı bir dizin tarafından yönetilir. Saha dışı (off-site) yedeklemeler, üzerinde "saha dışı yedeklemeleri kur" yazan bir yapışkan not ile temsil edilir; bu not, dizüstü bilgisayarınızın kapağına yapıştırıp eve götürdüğünüzde teknik olarak saha dışındadır.
Doğru bir sonuç şuna benzer: df %97 kullanım raporlar ve bunu bir sonraki sprintte halletmek için bir plan sunar.
Ağ: her şeyden tek bir hat
DNS sunucusu makinenin kendisi üzerinde çalışır, böylece sunucu çöktüğünde, nedenini bulmak için kullanacağınız DNS kaydını da beraberinde götürür. Buna konsolidasyon denir.
Güvenlik duvarı (firewall) 2021 yılında — geçici olarak, bir şeyi hata ayıklamak (debug) için devre dışı bırakıldı. Hata ayıklama sona erdi; güvenlik duvarı geri dönmedi. Yönlendiricinin (router) her portu, "ileride zaman kazanmak için" sunucuya yönlendirildi ve yönlendiricinin admin paneli, kolay uzaktan yönetim için fabrika şifresiyle WAN tarafı üzerinden erişilebilir durumdadır. Sizin ve diğerlerinin erişimine.
Sunucu son zamanlarda, tavan arası standartlarına göre bile alışılmadık derecede sıcak çalışıyor ve top en yoğun işlemin xmrig olduğunu gösteriyor. Bunun kullandığımız izleme aracı olduğunu varsayıyoruz. Biz kurmadık — portlar yönlendirildikten kısa bir süre sonra kendiliğinden belirdi, bunu ekosistemin geliştiğinin bir işareti olarak kabul ediyoruz. Gün boyu izleme yapıyor.
Güç, toplam uzunluğu sigorta panelinin yürüyüş mesafesini aşan bir dizi tüketici tipi grup prizden gelir — bu bir anlamda verimlidir, çünkü sigorta panelini sık sık ziyaret edeceksiniz.
Karmaşıklık yoluyla yedeklilik
Önemli olan yerlerde yedeklilikten kaçındıktan sonra, şimdi gereksiz yerlere ekliyoruz. Şirketin ana sayfası — tek bir statik HTML dosyası — on iki düğümlü bir Kubernetes kümesi tarafından sunulur. Bu, mühendislerin "özgeçmiş odaklı mimari" dediği şeyi başarır: Sayfa, nginx'in sunacağı aynı kırk milisaniyede yüklenir, ancak artık bir danışman gerektiren şekillerde hata verebilir.
İzolasyon için kümenin kendisi bir sanal makine içinde bir sanal makine içinde bir sanal makine içinde çalışır; her katman, bir turducken'ın her katmanının kuş eklemesi gibi güvenlik ekler. İletişim formu dokuz mikroservisten oluşur. Bunlardan ikisi hiç çağrılmamıştır. Bir tanesi ise kritik bir görev üstlenmiştir ve kimse hangisi olduğunu bilmemektedir.
Hizmet olarak ısıtma
Modern bir sunucu elektriği hesaplama ve ısıya dönüştürür ve biz ikinci çıktıyı maksimize etmeyi amaçlıyoruz. Bir GPU'su olmayan bir medya sunucusu klasik bir tercihtir: Tek bir 4K akışın CPU ile transcode edilmesi, on altı çekirdeği tam yükte çalıştıracak ve küçük bir yatak odasını ısıtacaktır; yani film oynatan bir ısıtıcı. İddialı operatörler ise CPU üzerinde büyük bir dil modeli çalıştırmaya geçer — API'si olan 70 milyar parametreli bir ısıtıcı, en iyi mevsimsel olarak ölçülebilen bir hızda token üretir.
Monitör kendini izler
Gözlemlenebilirlik önemlidir, bu yüzden kendi kendine barındırılan bir uptime monitörü kuruyoruz — izlediği sunucunun kendisine. Odin öldüğünde, monitör de onunla birlikte ölür ve işin zarif kısmı şudur: hiçbir alarm çalmaz. Hiçbir alarmın çalmaması, olay (incident) olmadığı anlamına gelir. Olay olmaması ise ölçülen mükemmel uptime demektir. Aylık rapor hiç bu kadar iyi görünmemişti.
Tamamlayıcılık adına, uyarı e-postaları Odin üzerinde çalışan bir mail sunucusu aracılığıyla iletilir. Böylece uyarı hattı (alerting pipeline) tamamen kendi içine kapalıdır; tıpkı kendi kuyruğunu yiyen bir yılanın tamamen doygun olması gibi.
Rahatsız edici kısım
İşte ertelediğim bölüm burası. Bunların hiçbiri kurgu değil. O çok sevilen, değiştirilemez sunucu, aynı hacim üzerindeki yedeklemelerle birlikte RAID 0, "geçici olarak" devre dışı bırakılmış güvenlik duvarı, tek bir sayfayı sunan Kubernetes kümesi, kendini izleyen monitör — bunların her birini üretim ortamında (production) gördüm. Bazalarını bu yıl gördüm. Bir veya ikisini ise kariyerimin başlarında ben inşa ettim.
Gerçek verimliliğin neye benzediği sıkıcıdır; bu yüzden o anlık tartışmaları kaybeder ama on yıl boyunca kazanır: Başka birinin tasarladığı için hakkında hiç düşünmediğiniz bir PUE. Makinelerin, sahibinin öz imajına göre değil, iş yüküne göre boyutlandırılması. Patlamadan önce düşünülmüş bir etki alanı (blast radius). Takvim hatırlatıcısıyla ve kahramanlık yapmadan, belirli bir program dahilinde geri yüklenerek test edilen yedeklemeler. Sıkıcı olan yedeklilik — her çağrıldığım hata durumunda, ucuz olan iki şey, muhteşem olan bir şeyden her zaman daha iyidir.
Ve çalıştırabileceğiniz en verimli veri merkezi, çalıştırmadığınızdır. Bir VPS; gücü, soğutmayı, yedekliliği ve saat 3'teki donanım arızalarını bunları ölçekli ve sıkıcı bir şekilde yapan insanlara devreder; bu, bir altyapının kazanabileceği en yüksek övgüdür — ve size gerçekten eğlenceli olan kısmı bırakır: üzerinde kendi servislerinizi çalıştırmak, yani kaybetmeyi göze alabileceğiniz bir makine üzerinde; ki deneme yapmanız gereken tek makine türü budur.
FAQ
Bunların herhangi birini gerçekten yapmalı mıyım?
Hayır. Bu kılavuzun her bölümü, hafta sonlarını feda eden belgelenmiş birer anti-patern'dir. Eğer mevcut kurulumunuz iki bölümden fazlasına benziyorsa, bu FAQ'daki son soruya atlayın — verilen sırayla, çünkü sıra triyajdır.
Gerçekte iyi bir PUE nedir?
Hyperscale veri merkezleri 1.1 civarında çalışır, iyi yönetilen bir kurumsal oda 1.4 ile 1.6 arasını yönetir ve bir ısıtıcı ile yapılan bir tavan arası kavgası olan soğutmasız bir dolap gerçekten 3'ü aşabilir. Evde 1.1 ile anlamlı bir şekilde rekabet edemezsiniz, bu da hesaplama gücünü bunu yapabilen birinden kiralamak için sessiz bir ekonomik argümandır.
Sunucularla bir binayı ısıtmak gerçek bir şey mi?
Evet — doğru yapıldığında. Birçok ülkedeki bölgesel ısıtma projeleri, veri merkezi atık ısısını ısı değiştiriciler aracılığıyla yakalar ve tasarım gereği mühendislik ve sözleşmelerle evlere borularla taşır. Yukarıdaki hiciv, sunucu ısısının bir odayı ısıtabilmesi değil; bunu kazara yapıp kazara olanı bir strateji olarak adlandırmasıdır.
Sunucum zaten buna benziyor. İlk olarak ne yapmalıyım?
Yedeklemeleri bu gece, sunucunun olmadığı bir yere alın ve ardından bir geri yükleme testi yapın — test edilmemiş bir yedekleme sadece bir söylentidir. İkinci olarak, yamaları ve kaçındığınız o yeniden başlatmayı, planlı bir zaman diliminde yapın; böylece izlerken neyin bozulduğunu öğrenirsiniz. Üçüncü olarak, tek hata noktasını (single point of failure) bölün: DNS ve izlemeyi kutunun dışına taşıyın. Diğer her şey daha sakin bir haftayı bekleyebilir; ancak bu üçü bekleyemez.