Ucuz SSD sabit disklerle veri tabanlarını ölçeklendirme


25

Birçoğunuzun trafik trafiğinin yoğun olduğu web siteleriyle çalıştığınızı umuyorum ve ana ölçeklenebilirlik sorunlarınızın veritabanında olması ihtimali. Son zamanlarda birkaç şey fark ettim:

  1. Çoğu büyük veritabanı, ölçeklendirmek için bir DBA ekibi gerektirir. Sabit sürücü sınırlamaları ile sürekli mücadele ederler ve çok pahalı çözümlerle sonuçlanırlar (SAN'lar veya büyük RAID'ler, etiketleme ve yeniden bölümlendirme için sık kullanılan bakım pencereleri, vb.). benim için çok dik :)

  2. Sonunda, SLC Flash teknolojisine dayanan son derece hızlı ancak uygun fiyatlı SSD sabit disklerini satmaya başlayan Intel, Samsung, FusionIO vb. Gibi birkaç şirketimiz var. Bu sürücüler rastgele okuma / yazma işlemlerinde piyasadaki en iyi dönen sabit sürücülerden 100 kat daha hızlıdır (saniyede 50.000 rastgele yazma). Onların arama süresi hemen hemen sıfırdır, bu nedenle rasgele I / O'nun maliyeti, veritabanları için harika olan sıralı G / Ç ile aynıdır. Bu SSD diskleri gigabayt başına yaklaşık 10 $ - 20 $ civarındadır ve nispeten küçüktür (64 GB).

Bu nedenle, BÜYÜK ölçekleme veritabanlarının, yalnızca yeterince büyük bir RAID 5 SSD disk dizisi oluşturarak (yalnızca birkaç bin dolara mal olacak) geleneksel yöntemlerle veri tabanından kaçınması için bir fırsat olduğu görülüyor. O zaman veritabanı dosyasının parçalanmış olup olmadığına aldırmıyoruz ve veritabanını 100 iş miline yaymak zorunda kalmadan saniyede 100 kat daha fazla disk yazabiliriz. .

Bununla ilgilenen başka biri var mı? Birkaç SSD sürücüyü test ediyorum ve sonuçlarımı paylaşabilirim. Bu sitedeki herhangi biri G / Ç darboğazını SSD'lerle çözmüşse, savaş hikayelerinizi duymak isterim!

PS. Dışarıda ölçeklenebilirliğe, örneğin kanıtlanmış RAM tabanlı SAN'lara yardımcı olacak birçok pahalı çözüm olduğunu biliyorum. 50 bin doların bile projem için çok pahalı olduğu konusunda net olmak istiyorum. 10 bin dolardan fazla olmayan ve uygulaması için fazla zaman almayan bir çözüm bulmalıyım.


Dave, NXC ve Burly,

Cevaplarınız için teşekkürler! Durumumda "ucuz" kelimesinin çok önemli olduğunu açıklığa kavuşturmak isterim. Bu yüzden ucuz Dell sunucularını kullanmam gerekiyor (sadece 8 hafıza bankasına sahip olan 4 bin 2950 dolar). Zaten 32GB RAM yüklü olduğundan, bu şekilde ölçeklemeye devam edemiyorum. Ayrıca, RAM eklemek sizi şu an asıl sorunum olan WRITE darboğazlarından kurtarmıyor.

Ömür boyu SSD'lerle ilgileniyordum, ancak modern aşınma dengeleme algoritmaları hakkında okuduktan sonra bu sürücülerin yeterince uzun süre dayanacağından eminim. Veritabanım günde 300 GB yazıyor ve 2009'da günde 1 TB'ın üzerine çıkacağı öngörülüyor. Enterprise SSD'leri, birkaç yıl boyunca günde yaklaşık 10 TB'lık yazma işleyecek şekilde tasarlanmıştır.

Burly'nin SAS’tan SSD’ye geçişi çok fazla emek harcadığı konusundaki görüşe katılmıyorum. Veritabanım senkronize bir aynadır, bu yüzden aynanın bir tarafını yükseltebilirim, sonra birkaç ay boyunca izleyebilirim ve eğer patlarsa hala eski iyi SAS sabit diskleri olan ikinci sunucuya yük devredebilirim ...


2
BTW, iyileştirilmiş performansın donanım maliyetlerini nasıl potansiyel olarak azaltacağını belirtirken, SSD'lerin maliyetinizi düşürme maliyetini nasıl düşüreceğini açıkça belirtmiyorsunuz. Muhtemelen kurulum büyüklüğünde bir küçülmenin personel ihtiyacınızı azaltabileceği gerçeğine varacağınızı farz ediyorum
Burly

2
Veritabanım, tam zamanlı DBA'lar veya danışmanlar olmadan 3 yıl boyunca üretimde mutlu çalışıyordu. Sonra yük, I / O darboğazlarına çarptığımız noktaya yükseldi. Bu yüzden, veritabanını bölümlemek ve birleştirmek için DBA'lara çok para ödemek zorunda kalabilirim. Ya da sadece bazı ucuz SSD'ler olsun.
Dennis Kashkin

Cevabımı, eklediğiniz maliyet kısıtlamalarını tartışmak üzere güncelledim. DB'nizin alan, boyut, performans, bakım ve değiştirme gereksinimlerine bağlı olarak, SSD'ler kesinlikle uygun maliyetli bir çözüm sunabilir. Çözüm tasarımı ve maliyet analizi burada kapsamımızın ötesinde. İyi şanslar!
Burly

Çok fazla koolaid içiyorsunuz, SSD en iyi ihtimalle, RAID sürücüsünden okuma için 1.5 kat daha hızlı, ancak yazma işlemleri manyetik disklerden daha yavaş. Yüksek hızlı RAID'li fiber bazlı SANS, ne kadar iyi olursa olsun herhangi bir SSD'yi imha edecektir.
TravisO

Sadece paylaşmak istedim - 5 aydır SSD'lerde 400GB veri tabanı kullanıyoruz. Bu veri tabanı çok fazla yazma aktivitesi alır (saniyede 1200'e kadar işlem). Şu ana kadar hiçbir sorun yaşamadık ve 15K rpm SAS sürücülü RAID10'lara kıyasla performans çarpıcı bir şekilde daha iyi. Diskler% 96 boşta kalıyor. Bu nedenle, SSD'lerin şu anda inanılmaz derecede ucuz hale geldiğini düşünüyoruz (160 GB Intel disk için 600 dolar), bunun G / Ç'yi SAN'lardan daha iyi ölçeklendirmenin bir yolu olduğunu iddia ediyorum.
Dennis Kashkin

Yanıtlar:


20

Potansiyel sorunlar

Şu anda üretim veritabanları için SSD'lerin kullanılmasıyla ilgili birkaç sorunum var

  • Web sitelerinin çoğunda veritabanı işlemlerinin çoğunluğu yazmıyor. Dave Markle'ın dediği gibi, bu performansı ilk önce RAM ile en üst seviyeye çıkartın.
  • SSD'ler, ana akım ve işletme pazarları için yenidir ve tuzuna değer hiçbir yönetici, şu anda 15 k RPM U320 disk gerektiren RAID5'te fibrechannel aracılığıyla kanıtlanmamış bir teknolojiyle iletişim kuran bir üretim veritabanını taşımayacaktır.
  • Araştırmanın maliyeti ve bu yeni teknolojiye geçmenin test edilmesi, kendi ortamlarında gözden geçirilmesi, işletim prosedürlerinin güncellenmesi vb., Çoğu dükkanın ayırması gerekenden hem zaman hem de para açısından daha büyük bir ön maliyettir.

Önerilen Avantajlar

Bununla birlikte, gelecekte SSD'lerin lehine en azından kağıt üzerinde birtakım maddeler var:

  • Bir HDD'ye kıyasla daha düşük güç tüketimi
  • Çok daha düşük ısı üretimi
  • Bir HDD'ye kıyasla watt başına daha yüksek performans
  • Çok daha yüksek verim
  • Çok daha düşük gecikme süresi
  • Şu anki nesil SSD'lerin milyonlarca döngü yazma dayanıklılığı sırası var, bu yüzden yazma dayanıklılığı bir zamanlar olduğu gibi değil. Burada biraz tarihli bir yazı bakın

Dolayısıyla, belirli bir performans ölçütü için, doğrudan güç ve dolaylı soğutma maliyetleri dahil olmak üzere toplam sahip olma maliyetini hesaba kattığınızda, SSD'ler çok cazip hale gelebilir. Ek olarak, çevrenizin özelliklerine bağlı olarak, belirli bir performans seviyesi için gerekli cihaz sayısındaki azalma, personel gereksinimlerinin azalmasına ve işçilik maliyetlerinin düşmesine de neden olabilir.

Maliyet ve Performans

50.000 YTL’nin altında bir maliyet sınırlamanız olduğunu ve gerçekten 10 bin YTL’nin altında kalmak istediğinizi eklediniz. Ayrıca, SSD'lerin DBA'lardan veya danışmanlardan daha ucuz olacağına değinerek, bazı "ucuz" SSD'leri alabileceğinizi belirttiniz. Bu, bir DBA'ya ihtiyaç duyacağınız saat sayısına ve bunun masraflı olup olmamasına bağlı olarak doğru olabilir. Maliyet analizini senin için yapamam.

Ancak, olması gereken bir şey çok dikkatli biridir tür Alacağınız SSD. Tüm SSD'ler eşit yaratılmamıştır. 200-400 Dolar (2008/11/20) fiyatlarında sattığınız "ucuz" SSD'ler genel olarak dizüstü bilgisayarlar gibi düşük güç / ısı ortamları için tasarlanmıştır. Bu sürücüler aslında 10K veya 15K RPM HDD'ye kıyasla daha düşük performans seviyelerine sahipler - özellikle de yazarlar için. Mtron Pro serisi gibi, bahsettiğiniz katil performansa sahip işletme düzeyinde tahrikler oldukça pahalıdır. Şu anda onlar etrafında:

  • 16GB için 400 USD
  • 32GB için 900 ABD Doları
  • 64GB için 1400 USD
  • 128GB için 3200 USD

Alanınıza, performansınıza ve artıklık gereksinimlerinize bağlı olarak bütçenizi kolayca etkileyebilirsiniz.

Örneğin, gereksinimleriniz toplam 128 GB kullanılabilir depolama alanı gerektiriyorsa, 1 hotspare ile RAID 0 + 1/10 veya RAID 5 ~ 5600

Bununla birlikte, mevcut bir depolama TB'ine ihtiyacınız varsa, RAID 0 + 1/10 ~ 51 K $ ve 2 hotspar ile RAID 5 ~ 32 $ olacaktır.

Büyük fotoğraf

Bununla birlikte, büyük bir üretim veritabanının kurulumu, konfigürasyonu ve bakımı çok yetenekli bireyi gerektirir. DB içindeki veriler ve bu verilerden sağlanan hizmetler, bu seviye performans gereksinimlerine sahip şirketler için son derece değerlidir. Ek olarak, soruna donanım atarak çözülemeyen birçok şey var. Yanlış yapılandırılmış bir DBMS, zayıf bir veritabanı şeması veya endeksleme stratejisi bir DB'nin performansını / çökertebilir. Stackoverflow'un burada ve burada SQL Server 2008'e geçişinde yaşadığı sorunlara bakın.. İşin aslı, bir veritabanı sadece diskte değil, RAM ve CPU'da da yorucu bir uygulamadır. Çok değişkenli performans sorununu veri bütünlüğü, güvenlik, yedekleme ve yedekleme ile birlikte dengelemek zor bir bit.

Özet olarak, hem donanım hem de yazılım teknolojisindeki tüm gelişmelerin toplum tarafından memnuniyetle karşılandığını düşünüyorum, ancak büyük ölçekli veritabanı yönetimi - yazılım geliştirme gibi - zor bir sorundur ve vasıflı işçilere ihtiyaç duymaya devam edecektir. Belirli bir gelişme, sizin veya bir şirketin umabileceği işgücü azaltma maliyetlerini karşılamayabilir.

Bazı araştırmalar için iyi bir sıçrama noktası Brent Ozar'ın buradaki web sitesi / blogu olabilir . Adını tanıyor olabilirsiniz - istifleme akış ekibine MS SQL Server 2008 performans sorunları konusunda yardımcı olan kişi. Blog ve kaynakları, biraz genişlik ve derinlik sunmak için bağlar.

Güncelleştirme

Stackoverflow'un kendisi, tüketici SSD-tabanlı rotaya depolanması için gidiyor. Buradan okuyun: http://blog.serverfault.com/post/our-storage-decision/

Referanslar


Mükemmel cevap
Aralık'ta saat

Bu konuda çok fazla zaman
harcadın

Müthiş açıklamalar. Herkes için odun kes. İyi iş!
BerggreenDK,

4

Daha yüksek yazma performansı için bir SSD'den faydalanabilecek gerçekten yüksek trafikli bir siteniz varsa, muhtemelen SSD'nin kullanım ömrü ile ilgili bir sorun yaşarsınız, bu yüzden henüz bunlarla ilgili olarak satılmadım.

Bunu akılda tutarak, okuma seviyesi yüksek olan veritabanları ile ne yapmalı? Cevap basit: Sunucuyu mide olabildiğince fazla RAM ile sıkın. En sıcak tabloların neredeyse her zaman RAM önbelleğinde tutulduğunu göreceksiniz ve diske yapılan büyük darbeler büyük olasılıkla uygun dizin oluşturma ile optimize edilebilecek büyük bir tablo veya dizin taramasından kaynaklanacak.


SSD'nin ömrünün endişesiyle ilgili yorumunuzu tekrar gözden geçiririm. MTBF açısından, SSD bir HDD’den çok daha yüksek bir dereceye sahiptir. Yazma döngüsünün dayanıklılığı açısından - daha önce bir sorun olan, mevcut nesil> 1 milyon yazma döngüsüdür, bu da özellikle RAID yapılandırmalarında bunu sorun dışı kılar.
Burly

(Karakterlerin dışında) ... Bir SSD'nin ömrü hakkında endişelenmemeniz gerekmiyor, sadece mevcut teknik derecelendirmeler SSD'lerin bir HDD karşılığına eşit veya üstün olduğunu gösteriyor. SSD'lerin üretimde onlarca yıllık deneyime sahip olmaması, kanıtlanmamış oldukları anlamına geliyor.
Burly

SSD'ler yazma konusunda
HD'lerden

SSD'ler genellikle rastgele yazılarda, özellikle 4K rasgele yazılarda büyük ölçüde daha hızlıdır. Sıralı yazmalar için daha yavaş olabilirler, ancak bu veritabanı sunucuları için mutlaka önemli değildir.
ChrisInEdmonton

1

5 yıldan fazla bir süredir DBA olarak çalıştım ve DB performansını iyileştirmenin yollarını düşünmek her zaman madenin arkasında. SSD uzayını izliyorum ve kesinlikle daha uygun bir seçenek haline geldiklerini düşünüyorum.

Bunu kontrol et;

http://i.gizmodo.com/5166798/24-solid-state-drives-open-all-of-microsoft-office-in-5-seconds

Ayrıca, GC-Ramdisc'in geliştirilmiş bir sürümü olan ANS-9010 adı verilen Acard tarafından üretilen ve 400 MB / sn teorik bir DDR2 çubuğu kullanarak bir SATA Sürücüsü (64 gig'e kadar) kullanarak DDR2 ram kullanmanıza olanak tanıyan yeni bir ürün de var. maksimum.

http://techreport.com/articles.x/16255/3

^^ Ancak bu makalede faydalı olan diğer bir şey de ANS-9010'u SSD pazarındaki tüm oyunculara karşı karşılaştırması ve Intel’in 64 MB x 25-E SSD’nin donanım radarlarına sahip olmakla hemen hemen aynı olduğunu ortaya koyması.

Beni SSD için endişelendirecek olan şey, onları büyük bir DB'nin maruz kalacağı stresiyle onları aşınmaktır ve bu nedenle sürücüleri iki kez ödeyeceğiniz anlamına gelir.

Ve donanım ramdiskinin olumsuz tarafı, pilin bir elektrik kesintisi durumunda sadece çok uzun süre güç vermesidir, böylece onu desteklemek için süslü bir şekilde çalışmak zorunda kalacaksınız. Ayrıca onlar için bir şebeke fişi satın alabileceğinize inanıyoruz ama bu hala UPS'inize bağlı.

Temp ramb ve windows takas dosyası için donanım ram diskini kullanmanızı öneririm - ve veritabanını Intel X25-E Extreme'e (64 gig için yaklaşık 600 USD) koyun.

Neyse, çığlık atar ve geri kalanımızı çok kıskandırırdı.

(Ayrıca, web sitesine ev sahipliği yapmak için başka bir ANS-9010 kullanmayı düşünün)

Şerefe, Dave.


1

Yeni 2.5in Seagate Momentus XT hibrit ayna - w2k3 r2 64bit Sql 2008 sunucusunu bir araya getirdik - OS için 1/4 vuruş ve DB için 1/4 vuruş. Yani OS için 125GB, DB için 125GB kullanıyorlardı. 1500 MB / sn alıyorlardı 1900 MB / sn. Intel i7 2600K'da 3.4GHz 8GB


0

Gibi piyasada ürün var Bu birinin bu tür bir şey yok. Ayrıca, diğer posterin dediği gibi, DB sunucusuna fazladan RAM eklemek size daha iyi önbellek isabet oranları verecek ve bu da disk trafiğini azaltacaktır.

Sun X4600 gibi 8 soketli Opteron sunucular , büyük bir DBA ekibinden daha ucuz fiyatlar için bunlara 256 GB RAM koymanıza izin verecek. Ayrıca bir DBMS yerine düz dosyalar kullanmayı düşünebilirsiniz ( bu şirketin yaptığı gibi), bu da size bir DBMS'den daha iyi performans sağlayacaktır. Bu durumda, bir SAN size bir derece veri bütünlüğü verecektir. Bununla birlikte, kendinizi karmaşaya sokmamak için veri erişim stratejinizi dikkatli bir şekilde tasarlamanız gerekecektir. Görünüşe göre epeyce büyük hacimli dot-com-kıyafetleri bunu yapıyor. Bir DBMS'den çok daha verimli, oldukça yaya donanımının büyük yüklerle başa çıkmasına izin veriyor ve DBMS lisans ücretlerinden kaçınıyor.


-1

SSD sürücüleri NAND flash belleğe (MLC veya SLC) dayanmaktadır. Bir SATA (2 veya 3) form faktöründe SSD sürücüler satın alıyorsanız, bunlardan elde edebileceğiniz performansı sınırlıyorsunuzdur. Tipik olarak hızlı Sandforce SF-1200 denetleyicisine dayanan SSD sürücüler, 220 MB / saniye okuma ve 205 MB / saniye yazma sağlar - eski moda bir mekanik döner diskten çok daha hızlı.

Bununla birlikte, yavaş SATA 2 veya SATA 3 konektörü bulunmayan FusioIO gibi bir PCIe çözümüne geçerseniz, dönen mekanik boğalardan (diskleri kastediyorum) 10-50 kat daha hızlı olan çözümlere bakıyorsunuzdur.

Bu yüzden "ucuz" çözümünüz için Sandforce SF-1200 denetleyicisine dayanan bir SATA 2/3 SDD ile gidin. Bu size (gerçek dünya deneyimine dayanarak) 3-5 kat daha fazla hız artışı sağlayacaktır. Bütçeniz varsa FusioIO'ya gidin. Performans açısından hiçbir şey onu yenemez. Delicesine hızlı. Yine de 20.000 ila 50.000 dolar harcamasını bekliyoruz.


2
Yanılgısı. Modern bir SSD, yaklaşık 50.000 IOPS için iyidir, 580 MB verim sunar. SAS, 500 IOPS'den daha düşük bir performans sunar. Veritabanları dosya sunucuları değil.
TomTom
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.