安価なSSDハードドライブを使用したデータベースのスケーリング


25

多くの人がトラフィックの多いデータベース駆動型Webサイトで作業していることを望みます。そして、主なスケーラビリティの問題がデータベースにある可能性があります。最近、いくつかのことに気付きました。

  1. 大規模なデータベースのほとんどは、拡張するためにDBAのチームが必要です。彼らは常にハードドライブの制限と格闘しており、非常に高価なソリューション(SANまたは大規模なRAID、最適化と再パーティション化のための頻繁なメンテナンスウィンドウなど)になります。私には急すぎる:)

  2. 最後に、Intel、Samsung、FusionIOなどのように、SLCフラッシュテクノロジーに基づいて非常に高速で手頃な価格のSSDハードドライブの販売を開始した企業をいくつか獲得しました。これらのドライブは、市場で最高の回転するハードドライブよりもランダムな読み取り/書き込みで100倍高速です(1秒あたり最大50,000回のランダム書き込み)。シーク時間はほとんどゼロであるため、ランダムI / OのコストはシーケンシャルI / Oと同じです。これはデータベースにとって素晴らしいです。これらのSSDドライブの価格はギガバイトあたり約10〜20ドルで、比較的小さい(64GB)。

そのため、SSDドライブの十分に大きいRAID 5アレイ(わずか数千ドル)を構築するだけで、従来の方法でデータベースをスケーリングする莫大なコストを回避する機会があるようです。データベースファイルが断片化されているかどうかは気にしません。データベースを100スピンドルに分散させることなく、1秒間に100倍のディスク書き込みを行う余裕があります。。

他の誰かがこれに興味がありますか?私はいくつかのSSDドライブをテストしてきましたが、結果を共有できます。このサイトの誰かがすでにSSDでI / Oボトルネックを解決しているなら、あなたの戦争の話を聞きたいです!

PS。実績のあるRAMベースのSANなど、スケーラビリティに役立つ高価なソリューションがたくさんあることを知っています。私は、$ 50Kでさえ私のプロジェクトには高すぎることを明確にしたいと思います。コストが1万ドル以下で、実装にそれほど時間をかけないソリューションを見つける必要があります。


デイブ、NXC、およびバリー、

返信いただきありがとうございます!私の状況では「安い」という言葉が非常に重要であることを明確にしたいと思います。そのため、安価なDellサーバー(メモリバンクが8つしかない2950ドル$ 4K)を使用する必要があります。既に32 GBのRAMがインストールされているため、この方法でスケーリングを続けることはできません。それに、RAMを追加しても、ディスクWRITEのボトルネックからあなたを救うことはできません。これが今の私の主な問題です。

以前はSSDの寿命に関心がありましたが、最新のウェアレベリングアルゴリズムについて読んだ後、これらのドライブは十分に長く続くと確信しています。私のデータベースは1日あたり300GBを書き込み、2009年には1日あたり1TBを超えると予測されています。エンタープライズSSDは、複数年にわたって1日あたり約10TBの書き込みを処理するように設計されています。

SASからSSDに移行するには手間がかかりすぎるというBurlyの主張には同意しません。私のデータベースは同期ミラーであるため、ミラーの片側をアップグレードしてから数か月間監視し、それが壊れた場合、古いSASハードディスクドライブがまだ残っている2番目のサーバーにフェールオーバーできます...


2
ところで、パフォーマンスの向上によってハードウェアコストがどのように削減される可能性があるかを説明しますが、SSDが主要なコストである労働をどのように削減するかを明確に表現していません。おそらく、インストールサイズを縮小すると人員配置の要件が緩和される可能性があるという事実を理解していると思われます。
Burly

2
私のデータベースは、フルタイムのDBAやコンサルタントなしで、3年間実稼働で問題なく稼働していました。その後、I / Oのボトルネックにぶつかるところまで負荷が増加しました。そのため、データベースのパーティション分割とデフラグのために、DBAに多額の費用を支払う必要があります。または、安価なSSDを入手してください。
デニスカシキン

追加したコストの制約について説明するために、回答を更新しました。DBのスペース、サイズ、パフォーマンス、メンテナンス、および変更の要件に応じて、SSDは確かに費用対効果の高いソリューションを提供します。ソリューションの設計とコスト分析は、ここでは範囲を超えています。幸運を祈ります!
たくましい

あなたはあまりにも多くのkoolaidを飲みすぎており、SSDはせいぜいRAIDドライブの1.5倍の速さですが、書き込みは磁気ディスクよりも遅いです。高速RAIDを備えたファイバーベースのSANSは、どんなに優れたSSDでも破壊します。
TravisO 08

共有したいだけです-SSDで400 GBのデータベースを5か月間実行しています。このデータベースは、大量の書き込みアクティビティを取得します(1秒あたり最大1200トランザクション)。これまでのところ問題はなく、15K rpm SASドライブを搭載したRAID10と比較してパフォーマンスが劇的に向上しています。ディスクは96%アイドルのままです。したがって、SSDが驚くほど安くなっていることを考えると(160GBのIntelドライブで600ドル)、これはSANよりもI / Oをスケーリングするより良い方法であると主張します。
デニスカシキン

回答:


20

潜在的な問題

現在、本番データベースにSSDを使用することにはいくつかの問題があります

  • 大多数のWebサイトでのデータベーストランザクションの大部分は、書き込みではなく読み取りです。Dave Markleが言ったように、最初にRAMでこのパフォーマンスを最大化します。
  • SSDは主流市場およびエンタープライズ市場で初めて使用されるもので、現在のところ、RAID5で15K RPM U320ディスクを必要とする実稼働データベースをファイバーチャネル経由で実績のない技術に移行する管理者はいません。
  • この新しい技術への移行、環境への調査、操作手順の更新などの研究とテストのコストは、時間とお金の両方の面で、ほとんどのショップが必要とするよりも大きな初期費用です。

提案された利点

とはいえ、将来的にはSSDを支持する多くのアイテムが、少なくとも紙の上ではあります。

  • HDDと比較して低消費電力
  • はるかに低い発熱
  • HDDと比較してワットあたりのパフォーマンスが高い
  • はるかに高いスループット
  • はるかに低いレイテンシー
  • 現在のほとんどの世代のSSDには数百万サイクルの書き込み耐久性があるため、書き込み耐久性はかつてのような問題ではありません。多少古くなった記事はこちらをご覧ください

そのため、特定のパフォーマンスベンチマークに対して、直接電力や間接冷却のコストを含む総所有コストを考慮すると、SSDは非常に魅力的になります。さらに、環境の詳細によっては、特定のレベルのパフォーマンスに必要なデバイスの数を減らすと、人員の要件が削減され、人件費が削減される可能性があります。

コストとパフォーマンス

コスト制約が5万ドル未満であり、本当に1万ドル未満に抑えたいことを追加しました。また、SSDがDBAやコンサルタントよりも安価になることを避けて、「安い」SSDを入手できるとコメントで述べています。これは、DBAが必要になる時間数と、それが繰り返し発生するコストかどうかによって異なります。私はあなたのためにコスト分析を行うことはできません。

ただし、非常に注意しなければならないことの1つは、取得するSSD の種類です。すべてのSSDが同等に作成されるわけではありません。概して、200〜400ドル(2008/11/20)で販売されている「安い」SSDは、ラップトップなどの低電力/発熱環境向けです。これらのドライブは、実際には10Kまたは15K RPMのHDDと比較して、特に書き込みのパフォーマンスレベルが低くなっています。Mtron Proシリーズのように、非常に高いパフォーマンスを誇るエンタープライズレベルのドライブは非常に高価です。現在、それらは次のとおりです。

  • 16GBで400 USD
  • 32GBで900 USD
  • 64GBで1400 USD
  • 128GBで3200 USD

スペース、パフォーマンス、および冗長性の要件によっては、予算を簡単に使い果たす可能性があります。

たとえば、要件で合計128GBの使用可能なストレージが必要な場合、RAID 0 + 1/10または1ホットスペアのRAID 5は最大$ 5600になります

ただし、TBの使用可能なストレージが必要な場合、RAID 0 + 1/10は最大$ 51K、2つのホットスペアを持つRAID 5は最大$ 32Kになります。

大局

ただし、大規模な本番データベースのインストール、構成、およびメンテナンスには、高度なスキルを持つ個人が必要です。DB内のデータとそのデータから提供されるサービスは、このレベルのパフォーマンス要件を持つ企業にとって非常に価値があります。さらに、問題にハードウェアを投げるだけでは解決できない多くのことがあります。不適切に構成されたDBMS、不適切なデータベーススキーマ、またはインデックス付け戦略は、DBのパフォーマンスを/破壊/する可能性があります。ここここで SQL Server 2008への移行時にStackoverflowで発生した問題を見てください。。問題の事実は、データベースはディスクだけでなく、RAMとCPU上の激しいアプリケーションでもあるということです。データの整合性、セキュリティ、冗長性、およびバックアップとともに多変量のパ​​フォーマンスの問題のバランスをとるのは難しい作業です。

要約すると、ハードウェアとソフトウェアの両方の技術に対するすべての改善はコミュニティに歓迎されていると思いますが、ソフトウェア開発のような大規模なデータベース管理は難しい問題であり、熟練した労働者が必要です。与えられた改善は、あなたや会社が望むかもしれない労力削減コストを享受しないかもしれません。

いくつかの研究の良いジャンプポイントは、ブレントオザールのウェブサイト/ブログです。彼の名前をご存知かもしれません。彼は、MS SQL Server 2008のパフォーマンスの問題でstackoverflowクルーを支援した人物です。彼のブログと彼がリンクしているリソースは、かなり幅広さと深さを提供します。

更新

Stackoverflow自体は、ストレージ向けのSSDベースのコンシューマールートになっています。ここでそれについて読む:http : //blog.serverfault.com/post/our-storage-decision/

参照資料


素晴らしい答え。
NotMe

あなたはこれにあまりにも多くの時間を費やしました:P
TravisO 08

素晴らしい説明。みんなのために木を切り取ります。良くやった!
BerggreenDK

4

書き込みパフォーマンスを向上させるためにSSDの恩恵を受けることができる、本当に、非常にトラフィックの多いサイトがある場合、おそらくSSDの寿命に問題があるので、私はそのためにまだ販売していません。

それを念頭に置いて、読み取りレベルの高いデータベースをどうすればよいでしょうか?答えは簡単です:できるだけ多くのRAMをサーバーに詰め込んでください。いずれにせよ、最もホットなテーブルはほとんど常にRAMキャッシュに保持されることがわかります。ディスクへの大きなヒットは、おそらく大きなテーブルまたはインデックススキャンが原因である可能性があります。


SSDの寿命に関する懸念についてのコメントを再訪します。MTBFの観点では、SSDはHDDよりも格段に高い評価を持っています。書き込みサイクルの耐久性に関しては、以前は問題でしたが、現在の世代は100万回を超える書き込みサイクルであるため、特にRAID構成では問題になりません。
たくましい

(性格外)... SSDの寿命を気にする必要はありません。単に現在の技術的評価では、SSDがHDDと同等またはそれ以上であることを示唆しているだけです。SSDには数十年の実稼働経験がないという事実は、実績がないことを意味します。
-Burly

SSDは書き込みよりもHDより遅い
TravisO 08

SSDは一般に、ランダム書き込み、特に4Kランダム書き込みで実質的に高速です。順次書き込みでは速度が遅くなる場合がありますが、データベースサーバーでは必ずしも重要ではありません。
ChrisInEdmonton 2009年

1

私はDBAとして5年以上働いてきましたが、DBのパフォーマンスを改善する方法について考えることは、私の後ろに常にあります。私はSSDスペースを見てきましたが、間違いなくますます実行可能なオプションになりつつあると思います。

これをチェックしてください。

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

また、ANS-9010と呼ばれるAcardによって製造された新製品もあります。これは、GC-Ramdiscの改良版で、DDR2スティックを使用して、DDR2スティックを使用してSATAドライブ(最大64gig)を作成できます。最大。

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

^^しかし、この記事で役立つもう1つの点は、ANS-9010をSSD市場のすべてのプレーヤーと比較し、IntelがハードウェアRAMディスクを持つのとほぼ同等の64GB x25-E SSDを持っていることです。

SSDについて私が心配するのは、大規模なDBがそれらにかけるすべてのストレスでそれらを使い果たしているため、RAIDを使用してドライブをミラーリングする必要があるため、2倍の費用がかかることを意味します。

ハードウェアRAMディスクの欠点は、停電の場合にバッテリーが長時間電力を供給するだけであるため、バックアップのために何らかの工夫をしなければならないことです。電源プラグを購入することもできますが、それでもUPSに依存しています。

一時DBおよびWindowsスワップファイルにハードウェアRAMディスクを使用し、Intel X25-E Extremeにデータベースを配置することをお勧めします(64ギガで約600米ドル)。

とにかくそれは悲鳴を上げ、私たちの残りすべてを非常にjeさせます。

(Webサイトのホストに別のANS-9010を使用することも検討してください)

乾杯、デイブ


1

デュアル2.5インチSeagate Momentus XTハイブリッドミラー(OSの場合は1/4ストローク、DBの場合は1/4ストローク)にw2k3 r2 64ビットSQL 2008サーバーをまとめました。OSには125GB、DBには125GBを使用していました。1500MB / sから1900MB / sのシーケンス読み取りを取得していました。Intel i7 2600K 3.4Ghz 8GBの場合


0

このようなことをするこのような製品が市場に出回っています。また、他の投稿者が言うように、DBサーバーにRAMを追加すると、キャッシュヒット率が向上し、ディスクトラフィックが減少します。

Sun X4600などの8ソケットOpteronサーバーを使用すると、大規模なDBAチームよりも安い価格で最大256GBのRAMを搭載できます。また、(この会社が行ったように)DBMSではなくフラットファイルの使用を検討することもできます。これにより、DBMSよりもパフォーマンスが向上します。この場合、SANはある程度のデータ整合性を提供します。ただし、混乱に陥らないように、データアクセス戦略を慎重に設計する必要があります。どうやら、かなりの数の大容量のドットコムの衣装がこれを行います。DBMSよりもかなり効率的で、かなり歩行者用のハードウェアで大きな負荷を処理でき、DBMSのライセンス料が不要です。


-1

SSDドライブはNANDフラッシュメモリ(MLCまたはSLC)に基づいています。SATA(2または3)フォームファクターのSSDドライブを購入している場合、それらから得られるパフォーマンスを制限しています。通常、高速Sandforce SF-1200コントローラーに基づくSSDドライブは、220MB /秒の読み取りと205MB /秒の書き込みを生成します。これは、従来の機械的な回転ディスクよりもはるかに高速です。

ただし、SATA 2またはSATA 3の低速コネクタが含まれていないFusioIOなどのPCIeソリューションに移行する場合、機械式ブル(ディスクを意味する)の10〜50倍の速度のソリューションを検討しています。

したがって、「安価な」ソリューションには、Sandforce SF-1200コントローラーに基づいたSATA 2/3 SDDを使用してください。これにより、(実際の経験に基づいて)速度が約3〜5倍向上します。予算がある場合は、FusioIOにアクセスしてください。パフォーマンスに関しては何も勝てません。それはめちゃくちゃ速いです。ただし、20,000〜50,000ドルを費やすことを期待してください。


2
誤Fall。最新のSSDは約50.000 IOPSであり、580MBのスループットを実現します。SASは500 IOPS未満を実現します。データベースはファイルサーバーではありません。
トムトム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.