Günlükler ve veri sürücüleri, bir sürücüyü paylaştıklarında birbirleriyle çakışan (en azından teoride) farklı veri erişim modellerine sahiptir.
Log Yazıyor
Kayıt girişi, çok sayıda küçük ardışık yazmadan oluşur. Biraz basit bir şekilde, DB kayıtları veri öğelerini diskteki belirli yerlere yazmak için talimatların listesini içeren halka arabellekleridir. Erişim kalıbı, tamamlanması garanti edilmesi gereken çok sayıda küçük ardışık yazıdan oluşur - bu yüzden diske yazılır.
İdeal olarak, günlükler sessiz olmalıdır (başka bir şeyle paylaşılmamalıdır) RAID-1 veya RAID-10 biriminde. Mantıksal olarak, süreci, günlük girişlerini ve günlükleri tüketen ve değişiklikleri veri disklerine yazan bir veya daha fazla günlük okuyucusu iş parçacığı yazan ana DBMS olarak görüntüleyebilirsiniz (pratikte, işlem veri yazmalarına olanak sağlayacak şekilde optimize edilmiştir. mümkünse hemen dışarı. Tomruk disklerinde başka trafik varsa, kafalar bu diğer erişimler tarafından hareket ettirilir ve sıralı log yazmaları rasgele log yazmaları olur. Bunlar daha yavaştır, bu nedenle meşgul kütük diskleri, tüm sistemde bir darboğaz gibi davranan bir sıcak nokta oluşturabilir.
Veri Yazıyor
(güncellendi) Bir işlemin geçerli ve uygun olması için günlük yazmaları diske (kararlı ortam olarak adlandırılır) gönderilmelidir. Bu mantıksal olarak, günlük girişleri yazılmış ve ardından zaman uyumsuz bir işlemle veri sayfalarını diske yazmak için talimatlar olarak kullanılabilir. Uygulamada, disk sayfası yazıları aslında günlük girişi yapıldığı sırada hazırlanır ve tamponlanır, ancak işlemin gerçekleşmesi için derhal yazılmaları gerekmez. Disk tamponları Yavaş yazan işlemiyle stabil medya (Disk) (bu out işaret Paul Randal sayesinde) dışarı yazılır Bu Technet makale biraz geçen daha detaylı.
Bu oldukça rasgele bir erişim şeklidir, bu nedenle aynı fiziksel diskleri günlüklerle paylaşmak sistem performansında yapay bir darboğaz yaratabilir. İşlemin yapılabilmesi için kayıt girişleri yazılmalıdır, bu nedenle rasgele aramalar bu süreci yavaşlatır (rastgele G / Ç, sıralı kütük G / Ç'den çok yavaştır) kütüğü sıradan bir rasgele erişim cihazına dönüştürür. Bu yoğun bir sistemde ciddi bir performans darboğazı yaratır ve kaçınılması gerekir. Aynısı geçici alanları log hacimleriyle paylaşırken de geçerlidir.
Önbelleğe alma rolü
SAN denetleyicileri, rasgele erişim trafiğini bir dereceye kadar emebilen büyük RAM önbelleklerine sahip olma eğilimindedir. Bununla birlikte, işlem bütünlüğü için, tamamlanma garantili bir DBMS'den disk yazması istenir. Bir denetleyici geri yazma önbelleğe almak için ayarlandığında, kirli bloklar önbelleğe alınır ve G / Ç çağrısı ana bilgisayara tam olarak bildirilir.
Bu, önbellek, aksi takdirde fiziksel diske gidecek çok fazla G / Ç'yi emebileceği için bir çok çekişme problemini düzeltebilir. Ayrıca, RAID-5 birimlerinin sahip olduğu performans üzerindeki etkisini azaltan, parite okumalarını ve RAID-5 için yazmayı da optimize edebilir.
'SAN'la başa çıkma' düşünce okulunu yönlendiren özellikler şunlardır: Bu görüşe göre bazı sınırlamalar vardır:
Geri yazma önbelleklemesi hala veri kaybedebilecek arıza modlarına sahiptir ve denetleyici, DBMS'ye liflendi ve blokların aslında olmadığı yerlerde diske yazıldığını söyledi. Bu nedenle, işlem bütünlüğü için geri yazma önbelleği kullanmak istemeyebilirsiniz, özellikle de veri bütünlüğü sorunlarının iş için ciddi sonuçları olabileceği görev kritik veya finansal verileri tutan bir şey.
SQL Server (özellikle), bir bayrak (FUA veya Zorla Güncelleme Erişimi olarak adlandırılır) çağrı geri dönmeden önce diske fiziksel yazmaya zorlayan bir modda G / Ç kullanır. Microsoft bir sertifika programına sahiptir ve birçok SAN satıcısı bu semantikleri onurlandıran donanımlar üretir ( burada özetlenen gereksinimler ). Bu durumda cache miktarı ne olursa günlük trafik demek olduğunu, disk yazma, optimize edecek edecek yoğun bir paylaşılan hacmi üzerinde bulunuyorsa, thrash.
Uygulama çok fazla disk trafiği oluşturursa, çalışma kümesi önbelleği aşabilir ve bu da yazma çekişmesi sorunlarına neden olabilir.
SAN başka uygulamalarla (özellikle aynı disk biriminde) paylaşılıyorsa, diğer uygulamalardan gelen trafik günlük darboğazları oluşturabilir.
Bazı uygulamalar (örn. Veri ambarları) SAN'larda oldukça anti-sosyal kılan büyük geçici yük artışları üretiyor.
Büyük bir SAN'da bile, ayrı kütük hacimleri hala uygulamada önerilir. Hafifçe kullanılan bir uygulamadaki düzen hakkında endişelenmemekle kurtulabilirsiniz. Gerçekten büyük uygulamalarda, birden fazla SAN denetleyicisinden bile yararlanabilirsiniz. Oracle, daha büyük yapılandırmaların bazılarının birden fazla denetleyiciyi içerdiği bir dizi veri ambarı yerleşim durumu çalışması yayınlamaktadır.
Ait olduğu performansın sorumluluğunu üstlenin
Büyük hacimli veya performansın sorun olabileceği bir konuda, SAN ekibini uygulamanın performansından sorumlu hale getirin. Yapılandırma konusundaki önerilerinizi görmezden geleceklerse, yönetimin bunun farkında olduğundan ve sistem performansı sorumluluğunun uygun yerde bulunduğundan emin olun. Özellikle, G / Ç bekleri veya sayfa mandalı bekleri veya kabul edilebilir uygulama G / Ç SLA'ları gibi temel DB performans istatistikleri için kabul edilebilir kurallar oluşturun.
Performansın birden fazla takım arasında paylaştırılması sorumluluğuna sahip olmanın, parmak uçlarına teşvik etmeyi ve parayı diğer takıma geçirmesini sağladığını unutmayın. Bu bilinen bir yönetim karşıtı kalıp ve hiç çözülmeden aylarca ya da yıllarca süren sorunlar için bir formül. İdeal olarak, uygulama, veritabanı ve SAN yapılandırma değişikliklerini belirtme yetkisi olan tek bir mimar bulunmalıdır.
Ayrıca, sistemi yük altında kıyaslayın. Düzenleyebilirseniz, ikinci el sunucular ve doğrudan bağlantı dizileri Ebay'den oldukça ucuza satın alınabilir. Bir veya iki disk dizisi ile böyle bir kutu kurarsanız, fiziksel disk yapılandırması ile frig yazabilir ve performans üzerindeki etkisini ölçebilirsiniz.
Örnek olarak, büyük bir SAN (bir IBM Shark) üzerinde çalışan bir uygulama ile doğrudan takılan U320 dizisine sahip iki soketli bir kutu arasında bir karşılaştırma yaptım. Bu durumda, ebay'dan satın alınan 3.000 £ değerinde donanım, kabaca eşdeğer CPU ve bellek konfigürasyonuna sahip bir ana bilgisayar üzerinde iki kat faktör ile 1 milyon £ 'luk bir yüksek seviye SAN'ı geride bıraktı.
Bu olaydan, böyle bir şeye sahip olmanın SAN yöneticilerini dürüst tutmanın çok iyi bir yolu olduğu söylenebilir.