Soru SQL Server + işletim sistemi için 6 disk baskısını yapılandırmanın en iyi yolu nedir?


Aşağıdaki donanım ile Win 2k8 üzerinde bir SQL Server kuruyorum:

  1. 6 x WD RE3 500G SATA
  2. PERC H700

Bazıları RAID10'da kalanlar RAID10'da iken, RAID1'e günlük dosyası ve işletim sistemi koymanın 8 diskler için en iyi yapılandırma olacağını öne sürdüm. Ancak, 2 diskten kısayım ve hangi yapılandırmanın sadece iyi olacağını merak ediyorum.

Seçenek 1) OS ve Günlükler için 2 x RAID1, Veri için 4 x RAID10

Seçenek 2) OS, Günlükler ve Veri için 6 x RAID10

Not; Diskin RAID10'da bölümlenmesi herhangi bir fark yaratıyor mu?


6
2017-07-29 16:42


Menşei


Sunucuyu ne için kullanıyorsunuz? Girintili kullanım deseniniz önemlidir. Yüksek bir işlem hacmine sahip olmayacaksanız ve alan konusunda daha fazla endişeleniyorsanız (özellikle de çoğunlukla okunan bir kapasitede çalışacaksanız), o zaman “seçenek 2” aslında mantıklı olabilir. - Evan Anderson
Bu şeyi tam olarak merak ettim ama 8 iğ ile. Farklı bir iş mili üzerinde işlem günlüğüne sahip olmanın, ekstra 2 disk daha büyük bir raid 10 dizisine sahip olduğu gerçek sayıları görmeyi çok isterim. Bu elbette sadece hız hakkında düşünmek .... - Kyle Brandt♦
@Kyle: 'simüle etmek eğlencelidir, eh? Kesinlikle çok fazla hareketli parça var (RAID denetleyici önbellek, OS önbellek, SQL Server). Gerçek dünyayı gerçekten simüle etmek için kullanıcı etkinlik verisine sahipsiniz. Bir test evrenini döndürmek için yeterli donanıma sahipseniz, görebilirsiniz. > Gülümseme < - Evan Anderson
@Kyle, veri ve logların aynı dizi / disk / bölüm içinde bulundurulmasıyla ilgili kaygımın kurtarılabilirlikle daha fazla ilgisi var (veri yok, ancak loglar yok = iyi, yedekleme + günlükler = iyi, veri yok + günlük yok = kötü) - Chopper3
@ Chopper3: Bu, kurtarma modelinize bağlı. OLTP uygulamaları için size katılıyorum, ancak zaman içinde geri yükleme konusunda hiç umursamadığınız başka uygulamalar da var (örneğin, tüm veritabanının başka bir OLTP veritabanının ETL'd görünümüyse). ve dolarınız için alanınızı maksimize etmekle daha çok ilgileniyorsunuz. - Evan Anderson


Cevaplar:


Buradaki genel nokta, farklı fiziksel disklerdeki (veya RAID birimlerindeki) iki dosya grubunun, her iki kümeye aynı anda erişildiğinde işleri daha hızlı yapmasıdır; Bu yüzden O.S. genellikle kendi sesini alır (kendi başına biraz I / O yapar ve istemezsiniz) o Veriler üzerinde büyük bir çalışma yaparken yavaşlamak) ve bu yüzden de genellikle verilerinizi kullanım modellerine göre ayırmak istersiniz.

SQL Server ile daha da önemli bir nokta, sadece işlem kayıtlarının genellikle veri dosyaları ile aynı anda erişilememesi değil, aynı zamanda ikisini de iyi bir seçimden ayırmaktır, aynı zamanda eğer bunlardan en az birine ihtiyacınız olacaktır. Bir donanım arızası durumunda gerçekten bir şeyleri kurtarmak mümkün olmak istiyorum. İşlem kayıtlarını kaybederseniz, başka bir set oluşturabilirsiniz, ancak gerçek verileriniz güvenlidir ... ve verilerinizi kaybederseniz, işlem günlükleri en son yedeklemeden arıza noktasına kadar iyileşmenizi sağlar. Hem verileri hem de günlükleri aynı anda kaybederseniz, yalnızca son yedeklemenizi geri yükleyebilirsiniz, başka bir şey değil.

Senaryonuzdaki en iyi seçim üç adet RAID 1 birimi oluşturacaktır, biri O.S. için, biri veritabanı dosyaları için, diğeri de işlem günlükleri için. Bunun büyük bir alan israfına benzediğini biliyorum (O.S. 500 GB'yi kullanacak bir yer yok, ve böylece uygun bir yedekleme planını takip ederseniz işlem günlüklerini kaydeder). çok performans ve geri kazanılabilirlik söz konusu olduğunda. Ve eğer 500 GB'den fazla gerçek verilere ihtiyacınız olmazsa, sizin için çok çalışacaktır.

Bunu yapamazsanız, O.S. için bir RAID 1 birimi kullanın. ve veriler için günlükler ve bir RAID 10 birimi. Sahip olduğunuz donanım ile yapabileceğiniz en iyisi budur. Ama ne yaparsanız yapın, verileri ve günlükleri aynı yere koymamalısınız.

Çoklu bölümler hakkında: Bu tamamen işe yaramaz ve hatta işleri daha da kötüleştirebilir. Aynı diskteki (veya RAID) üç bölüm, tek bir bölümle tam olarak aynı (= hatalı), veya disk geometrisi sorunları nedeniyle daha da kötüdür; ve kurtarma ile yardımcı olmaz, çünkü bir donanım arızası durumunda bunların hepsini kaybedeceksin.

Oh, ve kendi iyiliğin için bile düşünmek RAID 5'i kullanarak yazma performansı hakkında her şeyden önemlisiniz.


5
2017-07-29 17:27



Aynı diskteki üç bölümün performans göstermesi olasıdır daha da kötüsü Tek bir bölümden daha fazla, özellikle de disk hiç bir yere yakın değilse, çoklu bölümlerin kullanılması, kafaların istenen verileri içeren silindirler * arasında gitmesi gereken mesafeyi artıracaktır. (* Sabit diskteki "silindirlere" yapılan herhangi bir referansın, yaşlandığımın bir göstergesi olabileceğini tam olarak kabul ediyorum.) - Skyhawk
Günlüklerden veri ayırmanın önemini açıklayan +1. - Skyhawk


Raid 1 Log diski için 2 ek disk ekleyemezseniz, Seçenek 1'i kişisel olarak kullanırdım.

RAID 10 için bölümlendirme, size ayna ve hız ve artıklık için şeritleme sağlar.

Bu soru soruldu ve yanıtlandı StackOverflow de. Belki aradığınız cevaplara sahip olacak.


5
2017-07-29 16:57



Seçenek 1. Soru sorulmadı. OS + Günlükler için RAID 1 iyidir - İşletim sistemi normalde çok fazla IO değildir. Diğeri size veri için mükemmel hız verir. - TomTom


Bu durumda 8 diskin daha iyi olacağı konusunda haklısınız, ancak dikkate alınması gereken en önemli şey, günlükleri veriden farklı bir diskte kullanmaktır. Gerçekten sadece 6 ile sıkışmış ve 4 disk veri alanına ihtiyacınız varsa, o zaman günlükleri OS R1 çiftine ikinci bir bölüme koymak cazip olurdu. Bu, hem oturum açma hem de işletim sistemi çalıştığında başların çok fazla hareket etmesi gerektiği için ideal değildir, ancak çok fazla belleğiniz varsa, işletim sistemi işi oldukça düşük olmalıdır. Çok fazla disk alanına ihtiyacınız yoksa 2 + 2 + 2 kurulumuna ne dersiniz?


2
2017-07-29 16:55





Şahsi olarak, her biri kendi benzersiz, tamamlayıcı olmayan disk I \ O desenleri olduğu için, OS işlemlerini veritabanı işlemlerinden günlük işlemlerden ayırmanız gerektiğine inanıyorum. Veritabanları ve günlükler, çok küçük uygulamaların dışında asla aynı dizide tutulmamalıdır. Veritabanlarınız \ uygulamalar çok yoğun disk I \ O yoğun, IMHO sürece RAID10 veritabanları için biraz overkill. Önerebilirim:

RAID1 = İşletim Sistemi RAID1 = Günlükler RAID1 = Veritabanları


1
2017-07-29 23:21





Genel kurulumlarımın çoğunda OS için bir RAID1'e sahip olma eğilimindeyim; geçici, zorunlu olmayan şeyler için bir RAID0; ve veriler için çeşitli RAID'ler.

İstemci maksimum disk alanı istiyorsa, bu son set 1 x RAID5 olacaktır; Performansla daha çok ilgilenirlerse, ikincisi 1 x RAID10 olacaktır; ve eğer fazlalık ile daha fazla ilgilenirlerse, ben 2 x RAID1 giderdim.

Genellikle veri hacmi için ikinci bir denetleyicim var; bazen veritabanının kullanım profiline bağlı olarak okuma yazma önceliğini her zaman değiştirerek (Kontrol Cihazı 1'deki İşletim Sistemi, Sıcaklık ve Günlükler'i tercih etme eğilimindeyiz.% 25 okundu:% 75 yazma ve Kontrolör 2'deki Veriler% 75 ile oku:% 25 yaz - sattığımız uygulamaların doğası gibi)

Sizin durumunuzda, PERC'nin bunu yapabileceğini varsayarak (HP SmartArrays'i tercih etme eğilimindeyim), muhtemelen aşağıdakilerle giderim:

  1. 2 diskli A dizisi oluştur
  2. 2 diskli dizi B oluşturun
  3. 2 diskli dizi C oluşturun
  4. Toplamda yaklaşık% 20-25 oranında RAID1 olarak A dizisinde A1 birimi oluştur
  5. Geri kalan ile RAID0 olarak dizi A'da A2 birimi oluşturun.
  6. Kullanılabilir alan ile RAID1 olarak B dizisindeki B1 hacmini oluşturun
  7. Tüm kullanılabilir alanla RAID1 olarak C dizilimi C1 oluştur

Bu size vermelidir (yaklaşık):

  • C: \ RAID1-OS - 90GB (OS, SQL Server ve iyi bir sayfa dosyası için yeterli olmalıdır)
  • D: \ RAID0-TEMP - 790GB (Yedekleme, geçici depolama, vb. İçin idealdir)
  • E: \ RAID1-DATA - 480GB (MDF dosyaları)
  • F: \ RAID1-LOGS - 480 GB (LDF dosyaları)

Benim görüşüme göre, performans endişeleriniz muhtemelen SATA diskleriyle olacak. Onları istikrarlı olmak için yeterince yakın bir yerde çalıştırmayı asla başaramadım, bu yüzden her zaman en az 10K SAS diskleri seçiyorum. Belki de en son kullandığımdan çok daha iyi bir şeyleri var, bu yüzden kilometreniz değişebilir ...


0
2017-07-30 04:34



Sanırım # 4 & # 5'iniz kapalı, iki diske RAID 0 ve RAID 1 yapabileceğiniz bir yol bilmiyorum. Orada yapabileceğiniz en iyi şey, birden çok bölüm içeren bir RAID1 yapmaktır. Genellikle bir üretim ortamında herhangi bir yerde RAID 0'a katılmıyorum, yapmanız gereken tek şey bir diski kaybetmektir ve diziyi kaybettiniz. - Edinor