web-dev-qa-db-ja.com

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

多くの方がトラフィックの多いデータベース駆動型のWebサイトで作業していることを願っています。おそらく、スケーラビリティの主な問題はデータベースにあります。最近、いくつか気づきました。

  1. ほとんどの大規模なデータベースでは、スケーリングするためにDBAのチームが必要です。彼らは常にハードドライブの制限に苦しんでおり、非常に高価なソリューション(SANまたは大規模なRAID、デフラグと再パーティション化のための頻繁なメンテナンスウィンドウなど)になります。このようなデータベースを維持するための実際の年間コストは、10万ドルから100万ドルの範囲です。私には急すぎます:)

  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です。 5万ドルでさえ、私のプロジェクトには高すぎることを明確にしたいと思います。コストが1万ドル以下で、実装にそれほど時間がかからないソリューションを見つける必要があります。


Dave、NXC、およびBurly、

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

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

SASからSSDに移行するには手間がかかりすぎるというBurlyの指摘には同意しません。私のデータベースは同期ミラーなので、ミラーの片側をアップグレードして、数か月、そしてそれが打てば、古いドライブがまだある2番目のサーバーにフェイルオーバーできますSASハードドライブ...

25
Dennis Kashkin

潜在的な問題

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

  • ほとんどのWebサイトのデータベーストランザクションの大部分は、書き込みではなく読み取りです。 Dave Markleが言ったように、RAM=最初にこのパフォーマンスを最大化します。
  • SSDは主流市場とエンタープライズ市場にとって新しいものであり、ファイバーチャネル経由で通信するRAID5で現在15K RPM U320ディスクを必要とする本番データベースを実証されていないテクノロジーに移行する管理者はいないでしょう。
  • この新しいテクノロジーへの移行、環境での検証、運用手順の更新などの調査とテストのコストは、ほとんどのショップが費やさなければならない時間と費用の両方の点で、前払いコストが大きくなります。

提案された利点

そうは言っても、将来的にはSSDを支持する項目が少なくとも紙の上にはいくつかあります。

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

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

コストとパフォーマンス

あなたは$ 50K USD未満のコスト制約があり、$ 10K未満に維持したいことを追加しました。また、SSDはDBAやコンサルタントよりも安くなることを避けて、「安価な」SSDを入手できるとコメントで述べています。これは、DBAが必要となる時間数と、それが繰り返し発生するコストであるかどうかに応じて当てはまる場合があります。コスト分析はできません。

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

  • 16 GBの場合は400 USD
  • 32 GBで900 USD
  • 64GBで1400 USD
  • 128 GBで3200 USD

スペース、パフォーマンス、冗長性の要件によっては、予算を簡単に浪費する可能性があります。

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

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

大局

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

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

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

更新

Stackoverflow自体は、ストレージ用にコンシューマーSSDベースのルートを進んでいます。それについてここで読んでください: http://blog.serverfault.com/post/our-storage-decision/

参考文献

20
Burly

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

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

4
Dave Markle

デュアル2.5インチSeagate Momentusにw2k3 r2 64ビットSQL 2008サーバーを組み合わせただけですXTハイブリッドミラー-OSに1/4ストローク、DBに1/4ストローク。 OSおよびDB用の125GBは、1500MB/sから1900MB/sのシーケンス読み取りを取得していました。Inteli7 2600K 3.4Ghz 8GBの場合

1
Adam Smith

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

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

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

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

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

^^しかし、この記事で役立つもう1つの点は、ANS-9010をSSD市場のすべてのプレーヤーと比較したところ、Intelにはハードウェアラムディスクに相当する64GB x25-E SSDがあることがわかりました。

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

また、ハードウェアramdiskの欠点は、バッテリーが停電の場合に長時間しか電力を供給しないため、バックアップを作成するために特別な方法を考えなければならないことです。あなたはそれらのために主電源プラグを購入することもできると私は信じていますが、それでもそれでもあなたのUPSに依存しています。

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

とにかく、それは悲鳴を上げて、私たちの残りすべてをとても嫉妬するでしょう。

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

乾杯、デイブ

1
Davinchio

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

Sun X46 などの8ソケットOpteronサーバーでは、大規模なDBAチームよりもさらに安い価格で、最大256GBのRAMをそれらに入れることができます。また、DBMSではなくフラットファイルの使用を検討することもできます(これは this company のように)、DBMSよりもパフォーマンスが向上します。この場合、SANはある程度のデータ整合性が得られます。ただし、混乱を避けるために、データアクセス戦略を慎重に設計する必要があります。明らかに、大量のドットコム企業がこれを実行しています。DBMSよりもはるかに効率的です。かなり歩行者のハードウェアが大きな負荷を処理できるようにし、DBMSライセンス料を回避します。