Server

Chef Yardımıyla LAMP Kurulumu

Daha önce bir yazımda Configuration management aracı olarak Chef’den bahsetmiş ve kurulumunu gerçekleştirmiştik. Bu yazıdaysa Chef yardımıyla bir node’a üzerinde LAMP stack oluşturma sürecinden bahsedeceğim.

Bu yazıda daha önce kurduğum Chef server’ın yanında üzerine LAMP rolünü de yükleyeceğim bir adet de Ubuntu 14.04 oluşturdum. Her iki sunucunun hostname’lerini hosts dosyası içerisine yazdım ve FQDN üzerinden bir birlerini pingleyebilmelerini sağladım. Rol,Node ve Cookbook kavramlarından bahsetmiştik. Bunları yönetebilmek için Chef bize knife isimli araç sunmaktadır.

Continue reading

Hyperconvergence ve Simplivity Omnicube

Bu yazımda son zamanlarda adını sıkça duymakta olduğumuz Hyperconvergence sistemlerden ve bu sistemler arasında öne çıkan bir isim olan Simplivity’den bahsetmek istiyorum. Hayatımıza sanallaştırmanın ve bulut kavramının girmesinden sonra IT’de buna uyarak şekil değiştirmeye başladı. Sanallaştırma sayesinde daha hızlı ve çok sayıda sunucu kurabilmeye başladık doğal olarak bu daha çok veri depolama ve güvenlik ihtiyaçlarını doğurdu. Artık disklerimizi sunucularımız üzerinde değil SAN/NAS gibi çözümlerde tutmaya başlamıştık. IT olarak gittikçe esnek, hızlı ve daha güvenle çalışabiliyorduk ama mevcut sistemlerimiz büyüdükçe getirdiği hem fiziksel hem de mantıksak karmaşıklıkta çoğalmaktaydı.

Continue reading

IOPS ve Throughput Nedir?

Hiçbir son kullanıcı ne kadar teknoloji harikası olursa olsun yavaş, sürekli çöken ve bir işlemlerin yarısında kapanan yazılımlarla çalışmak istemezler. Doğal olarak bir sistem veya proje planlarken performans bizim için önemli bir etkendir. Sunucu ve servislerde oluşan dar boğazları incelediğiniz zaman büyük bir kısmının yetersiz kaynak atamasından dolayı oluştuğunu görürsünüz, hal böyleyken sorunun çözümü kolay gibi gözükmektedir. Memory yetmiyorsa Ram artırımı işlemci yetmiyorsa CPU artırımına gidilir. Sanallaştırma sayesinde minimum kesintiyle hatta çoğu durumda kesintiye bile ihtiyacımız olmadan kaynakları değiştirebiliriz ama durum her zaman böyle olmayabilir. Özellikle disk performansında oluşan sorunların çözümü bu kadar kolay olmuyor. Bunun için mimariyi oluştururken ilk seferde üzerinde çalışacak servisleri ve yükü doğru tahmin etmeli ve buna göre sistemler hazırlamalıyız.

Birçok sistem yöneticisi bir servisi veya sistemi devreye alırken disk’le ilgili ihtiyaçlarını düşünürken sadece kapasite öngörüsünde bulunurlar. Doğal olarak orta ve uzun vadede yük artıkça dar boğazlar oluşmaya ve performans kaybı gözlemlenir. Bunun yegane sebebi sistemin ihtiyaç duyacağı toplam IOPS ve Throughput doğru öngörülememesi veya hiç hesaba katılmamasıdır.

Peki nedir bu değerler ve ne işe yararlar. IOPS(Input/output operations per second) adından da anlaşılacağı gibi bir diskin saniyede yapabileceği maksimum yazma veya okuma sayısıdır. Throughput is belli bir zaman aralığında yapılan işi temsil eder storage için konuşursak 1 saniyede kaç MB yazdığı veya okuyabildiği değerdir. Genelde insanlar IOPS’a odaklanır ve Throughput’u önemsemez veya aynı şey olduğunu düşünür. Durum maalesef böyle değil ve size iki farklı senaryoyla durumu anlatmak istiyorum. İlk senaryoda kullanıcıların arşiv olarak kullandıkları bir dosya sunucusunun throughput’unu hesaplarken ikinci senaryoda aynı diskler ile bir yoğun yazma oranına sahip bir log arşivininkini hesaplayacağız.

Öncelikle  Throughput hesaplama formülümüz tek disk için şudur.

MB/s = IOPS * <KB per IO> / 1024

Burada ki “KB per IO” disk üzerindeki block size’larıdır.Her iki örnek içinde 128KB olarak aldım.

İlk önce dosya sunucumuzu ele alalım. Bu sunucunun toplam iş yükünün %80’i okuma, %20’si yazma olsun ve güvenlik sebebiyle de RAID-5 yapalım. 4 adet 175IOPS’a sahip disk takalım.

Öncelikle toplam IOPS’u hesaplamamız gerekiyor.

Toplam IOPS = 4 * 175

Raid yaptığımız için Raid’den kaynaklı bir “IO penalty” bulunmaktadır. Bunun sebebi Raid 0 haricinde tüm Raid yapılarında verinin birden fazla diske yazılmasıdır. Yazının sonunda “raid penalty” tablosunu bulabilirsiniz.Raid 5 için bu değer “4”.

Fonksiyonal IOPS’u hesaplarsak

Fonksiyonal IOPS = ((Toplam IOPS *yazma yüzdesi)/(Raid penalty ))+(Toplam IOPS*okuma yüzdesi)

Dosya sunucusunun fonksiyonal IOPS ve Throughput’u
Yazma için 35 IOPS ve Throughput’u yaklaşık olarak 4,5MB/s
Okumak içinse 560 IOPS ve Throughput’u yaklaşık olarak 70MB/s

Logları tuttuğumuz sunucu Raid-6 ile kurulmuş olsun. Geri kalan tüm özellikleri bire bir aynı olduğunu varsayalım. Raid-6’nın penalty değeri 6’dır. Bu durumda,

Yazma için yaklaşık IOPS 94 ve Throughput’u yaklaşık olarak 11,75 MB/s
Okumak içinse yaklaşık IOPS 140 ve Throughput’u yaklaşık olarak 17,5 MB/s

Gördüğünüz üzere aynı diskler farklı raid yapıları ve okuma ve yazma oranlarıyla tamamen farklı sonuçlar vermektedir. Tasarımınızı yaparken mutlaka ihtiyacınızı iyicene analiz edip karar verin. Peki kullanıcı sayınızı ve her kullanıcının yaklaşık olarak yaratacağı yükü biliyorsunuz diyelim. Bu durumda

Gerekli Disk Sayısı = ((Read IOPS) + (Write IOPS*Raid Penalty))/ Disk IOPS

Formülünü kullanarak ihtiyacınız olan disk sayısını bulabilirsiniz. Gereken minimum disk sayısını bilmek performansın yanında kapasite planlaması yaparken de size yardımcı olacaktır.

Yazımı bitirmeden önce küçük bir tiyo vermek istiyorum : Diskin block size’ını değiştirerek throughput’da artış sağlayabilirsiniz ama bu deduption oranınızı ciddi anlamda etkileyecektir.

raidpenalties