サーバーストレージが少なくなると、開発者全員がうめき始めます。「ウォルマートで100ドルで1 TBドライブを手に入れることができます。何が問題なのですか」。
ストレージの複雑さを開発者に説明して、ウォルマートの1 TBドライブが機能しない理由を理解してもらうにはどうすればよいですか。
pS私は開発者であり、知りたいです:)
消費者向けハードドライブは大量のスペースを提供するため、*咳*ストリーミングメディア*咳*の最も目の肥えたユーザーでも、数テラバイトのコレクションを保存するのに十分な量を購入できます。実際、ディスク容量は、数十年前からシリコン上のトランジスタ数よりも速く増加しています。
「エンタープライズ」ストレージは、データにパフォーマンスと整合性の要件があり、やや重いアプローチを要求するため、やや複雑な問題です。データは、ハードウェア障害が発生した場合の可用性をある程度保証する必要があり、多数のユーザーと共有する必要がある場合があります。これにより、単一のユーザーよりも多くの読み取り/書き込み要求が生成されます。
この問題の技術的ソリューションは、コンシューマストレージソリューションよりも1ギガバイトあたり何倍も高価になる可能性があります。また、物理的なメンテナンスも必要です。火事でデータが破壊されないように、バックアップを取り、オフサイトに保管することがよくあります。このプロセスにより、継続的なコストが追加されます。
パフォーマンス
1TBのコンシューマまたはエンタープライズのニアラインドライブでも、頭は1つだけです。ディスクは7200 RPM、つまり毎秒120回転で回転します。これは、理論的には1秒あたり最大120のランダムアクセスI/O操作を取得できることを意味します*。したがって、単一の1TBボリュームに大きなファイルをコピーすると、比較的遅くなります。
14 GBの72 GBディスクを備えたディスクアレイでは、ディスク上に14ヘッドがあり(たとえば)15,000 RPMまたは毎秒約250回転です。これにより、毎秒最大3,500回のランダムI/O操作*が得られます(ここでも、実際には少し少なくなります)。他のすべてのファイルコピーが同じであれば、何倍も速くなります。
*
読み取りのジオメトリによりドライブがヘッドを移動し、ディスクの1回転内でたまたま使用可能なセクターを読み取ることができる場合、ディスクの1回転あたり複数のランダムアクセスを取得できます。ディスクアクセスが広く分散している場合は、平均して1未満になります。ストライプ(下記参照)レイアウトでフォーマットされたディスクアレイでは、ほとんどの状況で、ディスクの1回転あたり最大1つのストライプが読み取られ、(RAIDコントローラーによっては)平均で1未満になる可能性があります。
7200 RPM 1TBドライブは、シーケンシャルI/Oでおそらくかなり高速になります。ストライプスキーム(RAID-0、RAID-5、RAID-10など)でフォーマットされたディスクアレイは、通常、ディスクの1回転あたり最大で1つのストライプを読み取ることができます。 64Kストライプを使用すると、15,000 RPMディスクから1秒あたり64Kx250 = 16MB程度のデータを読み取ることができます。これにより、14台のディスクのアレイで毎秒約220MBのシーケンシャルスループットが得られます。これは、現在の1TB SATAディスクで見積もられている150MB /秒ほど高速ではありません。
たとえばビデオストリーミングの場合、大きなストライプサイズのRAID-0の4つのSATAディスクのアレイ(一部のRAIDコントローラーは最大1MBのストライプサイズをサポートします)のシーケンシャルスループットは非常に大きくなります。この例では、理論的には約480MB /秒でストリーミングできます。これは、リアルタイムの非圧縮HDビデオ編集を行うのに十分快適です。したがって、Mac Proや同様のハードウェアの所有者は、数年前に直接接続ファイバーアレイを備えたマシンが必要であったはずのHDビデオ合成タスクを実行できます。
ディスクアレイの真の利点は、多数の小さな分散したI/O要求によって特徴付けられるデータベース作業にあります。このタイプのワークロードのパフォーマンスは、ディスク内の金属のビットの物理的なレイテンシによって制限されます。このメトリックはIOPS(1秒あたりのI/Oオペレーション)として知られています。容量に関係なく、より多くの物理ディスクを使用すると、理論的にはより多くのIOPSを実行できます。 IOPSが高いほど、1秒あたりのトランザクションが多くなります。
データの整合性
さらに、ほとんどのRAID構成は、ある程度のデータ冗長性を提供します。これには、定義上、複数の物理ディスクが必要です。このような冗長性を備えたストレージスキームと多数のドライブの組み合わせにより、システムは大きなトランザクションワークロードに確実に対応できます。
ディスクアレイ(およびより極端な場合はSAN)のインフラストラクチャは、大衆市場のアイテムではありません。さらに、本当にが失敗することのないビットの1つです。ビルドの標準と小さな市場ボリュームのこの組み合わせは安くはありません。
バックアップを含む合計ストレージコスト
実際には、1 TBのデータを維持するための最大のコストは、バックアップとリカバリにかかる可能性があります。テープドライブと34セットのSDLTまたはウルトリウムテープは、バックアップとリカバリの完全な祖父サイクルのために、おそらく1TBディスクアレイよりもコストがかかります。オフサイトストレージのコストとテープサル1匹の給与を加算すると、突然、1 TBのデータはそれほど安価ではなくなります。
ディスクのコストは、多くの場合、主要なストレージコストの階層を下がる公正な方法です。ある銀行で私はSANストレージは開発システムでは£900/GB、運用サーバーではディスクあたり£5,000/GBのコストがかかりました。エンタープライズベンダーの価格でもディスクの物理的なコストはそのほんの一部にすぎませんでした。私が知っているもう1つの例は、(比較的)適度に構成されたIBM Shark SANで、100万ポンドを超えるコストがかかることです)。物理ストレージは、ギガバイトあたり約9ポンド、または1 TBのコンシューマーHDDと同等のスペースの場合は約9,000ポンドで充電されます。
「ええ、私はJavaプログラマーをオフショア$ 5 /時間でオフショアすることができます。」と言うだけです。
ウォルマートドライブについていくつか質問してみましょう。
...これらの回答を、適切に管理されたデータセンターでRAID 5アレイの一部として実行されているドライブと比較します。
(開示:私も開発者です-推測しているだけです!)
おそらく、差別化されたストレージを検討する必要があります。
あなたの開発者はより多くのスペースを必要とするかもしれませんが、多分それは彼が求めている「エンタープライズクラス」のドライブスペースではありません。たぶん、彼は.vhdとISOを格納する場所が必要なだけです。ディスククラッシュの場合は、MSDNから再度ダウンロードできます。たぶん、テスト実行には、テスト実行中のみ必要な大きな一時的なスペース要件が必要です。これらすべてに対して、50ドルのWallmartドライブは有効なソリューションです。
ストレージについて人々が理解する必要がある一番のことは、容量とIOPSの間に大きな違いがあることです。耐久性などのようなものは、通常、議論の余地があり、それはほとんど常にIOPS対容量です。
それはそこに尋ねるサーバーの種類に依存します。基本的な開発またはテストサーバーの場合、Wallmartの1つのTBドライブで十分でしょう。既製のコンポーネントを使用しないハイエンドサーバーを扱っている場合は、レーシングカーを構築し、自動車部品店からタイヤを購入して数ドルを節約するかどうかを尋ねます。
私が説明する方法はこれです。上司が購入を承認する場合。と書かれているウォルマートドライブにサインを入れます。
「Sys Adはこれを彼の意志と根性に反してここに置くように指示されました。」ドライブが故障したら、ドライブを手渡して開発者に連絡し、今回は自分の仕事の仕方を尋ねます。
私はポートマンに同意します...チームを信頼するか、去ります。
簡単な1行の答え:1TBドライブは通常SATAですが、サーバーはSCSIです。 (サーバーがSCSIでない場合でも、今のところ問い合わせの行を停止する可能性があります...)
300GB SCSIドライブは通常4倍の価格です。既存のデータのバックアップ、ダウンタイムの整理、インストールの実行、問題が発生する可能性、残業などがあります。全体として、単純なストレージのアップグレードですべてが可能になります一種の痛み-開発者が直接責任を負うものはありません。現在のニーズを満たす既成のドライブを購入できると言うのは、どうしようもないほど単純です。
しかし、あなたがそれらを買ったときあなたがいまいましいサーバーにもっと大きなドライブを置くべきだったと知っている、そしてあなたは今自分を蹴っている!しかし、あなたはサーバーをインストールしたいと思っていて、それらは前払いのコストに追加され、追加の承認ラウンドを行わなければならなかったかもしれません...システム管理者の苦痛の世界へようこそ...