June 22, 2009

もしRAIDボードが壊れたら

このエントリーをブックマークに追加

ハードディスクは壊れやすいのでRAIDで冗長性を確保することが多いですが、RAIDボードは壊れにくいのでRAIDボードが壊れたらどうしようというところまで考えている人は意外と少ないです。

もし今RAID5でサーバを組んでいたとして突然RAIDボードが壊れたとしたらどうなるか。「RAIDボードが壊れたら単に新しいRAIDボードに交換すればよいのでは? 」と単純に考える人もいると思います。しかしもしそうだとしたらRAID設定した情報はどうやって復元しましょうか。「え?単に同じ設定を新しいRAIDボードに同じように施せばよいのでは?」と思うかもしれませんが、この方法で本当に大丈夫なのでしょうか?

と、今回はそんなことを考えていきたいと思います。

【RAID構成情報ってどこに書かれている?】
RAID構成情報ってどこに書かれているか。高価なRAIDボードであればRAIDボードとHDD双方に、安価なRAIDボードであればRAIDボード上だけに書かれていることが多いようです。

これを確かめるには次の手順で行えます。例えばHDD3本でRAID5を構成し、マシンの電源を落とします。マシンが停止しているときHDD1~3の順番を入れ替えてからマシンの電源を入れます。このときHDDが入れ替わったことをRAIDボードが検知してくれるようであればHDDにRAID構成情報が書き込まれています。逆にRAIDが壊れてしまったらRAIDボード上にしかRAID構成情報が書き込まれていないことになります。

【新しいRAIDボードにそれまでのRAID構成情報を移せるか】
もし高価なRAIDボードが壊れたのであれば、新しいRAIDボードに入れ替えるだけで勝手にHDDからRAID構成情報が新しいRAIDボードに引き継がれます。

それに対して安価なRAIDボードが壊れたのであればもうちょっと深く考える必要があります。

もし安価なRAIDを使っていて、[HDD1][HDD2][HDD3] & [HDD4(HotSpare)]というRAID5構成を組んだとします。これがしばらく使っているうちにHDD2が壊れてしまい、HDD2を新しいHDDに入れ替えたとすると構成は[HDD1][HDD3][HDD4] & [HDD2(HotSpare)に変わります。さて、もしこの時点でRAIDボードが壊れてしまった場合どうなるでしょう。ひょっとしたら新しいRAIDボードに入れ替えて新たに[HDD1][HDD3][HDD4] & [HDD2(HotSpare)という設定を施せば復活するかもしれないし復活しないかもしれません(使用するRAIDボードによるでしょう)。確実に言えるのは、このとき最初の設定[HDD1][HDD2][HDD3] & [HDD4(HotSpare)]にしてしまったら間違いなくRAID5は飛んでしまうでしょう。

つまり、安価なRAIDボード使っているとしたら、新しいRAIDボードに入れ替えてもRAID構成を復旧できるかどうかはボードによるし、もし対応可能なボードであっても壊れる直前のRAID構成情報を正しく把握していなければ復旧が行なえないことになります。

ただし安価なRAIDボードを使っていてもRAID構成がミラーリング(RAID1)なのであれば、RAID1には特にパリティ情報を保持しているわけではなく単にHDD1とHDD2に同じ情報を書き込んでいるだけなので、もしRAIDボードが死んでも、HDDだけ取り出してサーバに直接つなげば普通に読み書きできる場合が多いです。

というわけで、RAID5やRAID6といったパリティを用いるタイプのRAIDを組むのであれば高価なRAIDボード(数万円くらいするもの)でないと怖いですが、RAID1であれば安価なRAIDボードでもそれなりに使えるのではないでしょうか。

【高価なRAIDボードにバッテリーが搭載されている理由】
ここからは余談となりますが、高価なRAIDボードにはバッテリーが搭載されていることがあります。これはRAID構成情報を保持するためのものではなく、キャッシュデータを保持するメモリに何らかの理由で電源供給ができなくなった場合電源供給できるようにすること及び、もしRAIDボードの交換となった場合、キャッシュデータごと新しいRAIDボードに引き継げるようにバッテリーが搭載されている模様です。(DELLのRAIDボードとか)

【オンボードRAIDが壊れた場合】
マザーボードにRAIDチップが搭載されているような場合は、RAIDチップが壊れてしまうとマザーボードごと入れ替えなければならないので面倒です。

以上、RAIDについて述べてきました。RAIDって奥深いですね。


| | Comments (5) | TrackBack (0)

March 04, 2009

大容量ストレージユニットを安価で構築する方法(上級者向け)

このエントリーをブックマークに追加

数十テラバイトクラスのストレージユニットを構築しようとすると通常は車が買えるくらいのお金が必要になります。しかしお金のないベンチャー企業や個人だとそんなに出せません。何かよい手はないかと以前いろいろ調べたところ、自作PCならぬ自作ストレージユニットを構築できる硬派な製品を発見しました。写真を見ていただければどんなものか一目瞭然ですね。

外付けハードディスク自作ケース金具「番長皿屋敷シリーズ」という製品なようですが、すごいのが「ハードディスク・ATX電源・ポートマルチプライア・ファン・アクセスランプはすべて別売り」ということ。要するに箱だけ提供するので、あとは好きにやってね、ということのようです。個人的には「ハードディスク以外のパーツは含まれているのでハードディスクだけ用意してね」というので例えば4万円とかだと買っていたかもしれません。

| | Comments (0) | TrackBack (0)

August 14, 2008

容量の大きすぎるHDDを使わないほうが良い理由

このエントリーをブックマークに追加

HDDの大容量化のペースはすごいですね。最近では1TBもの容量があるHDDが個人でも買える値段で登場しています。しかしインターネットサービスを提供する立場で考えると、容量が大きすぎるHDDというは結構困ることがあります。今回はその理由について述べてみたいと思います。

【FormatやRAID Rebuildに時間がかかる】
例えば36GBと1TBのHDDでは実に30倍もの容量差があります。いろいろな要素を省いて単純に考えるとFormatやRAID Rebuildも30倍の時間がかかるということになります。FormatやRAID Rebuildって結構時間がかかりますのでこの差はとても大きいです。

RAID Rebuildと言えばこんな話しがあります。例えばサーバに3個のHDDが搭載されていて、2個をRAID1(ミラーリング)に、1個をHotSpareにしているサーバがあったとします。サービス提供中にRAID1側HDDの1個に障害がおきるとHotSpare側HDDがActiveになって自動的にRAID Rebuildがかかりますが、このRAID Rebuild時はレスポンスがものすごく悪くなります。大規模サイトともなるとクライアント側に一切レスポンスを返さなくなるくらいです。理想を言えばRAID Rebuildがかかったサーバはサービスから切り離すべきですが、24時間サーバ監視できない小さなベンチャー企業などではそこまで柔軟にサーバ管理できない場合もあるかと思います。そんな場合はやはりRAID Rebuildが極力短くて済む容量の小さなHDDのほうが望ましいです。

【容量の大きなHDDは壊れやすい、かも】
容量の大きなHDDは容量の小さなそれと比べて壊れやすいというのはよく聞く話です。実測データはありませんが、普通に考えれば記録密度が上がることで単位ビット当たりの専有面積が狭くなるのでエラーが発生しやすい、すなわち壊れやすいというのは一応筋が通っています。ただしこのあたりは技術革新によって解決される可能性もあるので一応一般論として捕らえてください。


【まとめ】
容量の小さなHDDと大きなHDDの価格差があまりなければ何も考えずに容量の大きなHDDを買ってしまいそうですが、サービスで利用するHDDは用途にあった容量のものを選択しないと無駄な作業時間が多く発生します。普通のWEBサーバであれば36GB、もっと言えば18GBでも十分なことが多いです(まあそこまで小さい容量のものは現在なかなか売ってないでしょうが)。というわけでHDDを購入する際は是非サービスに合ったものを選びましょう。

| | Comments (0) | TrackBack (0)

July 02, 2007

MTBF(平均故障間隔)の正しい読み方

このエントリーをブックマークに追加

HDDのカタログを見ると、MTBF(Mean Time Between Failures:平均故障間隔)が140万時間などと書いてあることがあります。140万時間というと約160年なわけで、つい「このHDDは平均160年間壊れない」と読み違えてしまうわけです。

しかしその解釈は間違いで、正確には

・140万台のHDDを同時稼動させたときに1時間に1台故障する

ということを意味しています。

ということは、「HDDを100台、24時間365日稼動させると1年で0.625台故障する」となります。

●計算式
160年:1台=1年:x
x=1/160=0.00625
0.00625x100台=0.625

■関連リンク
メーカー別HDDシリーズ一覧表
ストレージカテゴリー

| | Comments (0) | TrackBack (0)

March 16, 2007

ハードディスクの故障率に関するgoogleの研究結果

ハードディスクの故障率に関するgoogleの調査結果を見つけました。

ハードディスクは高温で利用しても故障は発生しないという新説には驚きました。ただこの件、ホームページを見る限りではどういう実験から導いた結論なのかまで記されていないのでその説が本当に正しいのかはわからないですね。

ただ、ハードディスクは常時アクセスがあり、回転している方が、こまめにスリープ状態に入るものよりも故障率は低くなるということになるとう説は正しい気がします。私の経験則的にもなんとなくそんな気がします。同じ方向に回り続けているのと、しょっちゅう回転にブレーキがかかるのとではたしかに前者のほうが寿命が長そうです。


あとちょっと脱線になりますが、「最初にハードディスクに対するスキャンを実行し、スキャンエラーが発生したディスクは、発生しなかったディスクに比べて60日以内に故障する確率は39倍も高くなる」とありますね。ハードディスクを購入したらまずはスキャンしてみるというのはとても良い習慣です。ハードディスクに限らず機械物は初期不良期が結構不具合率が高くそれを乗り越えると意外と長持ちする場合が多いですから、まずは初期不良ではないということをしっかりとチェックしておくと安心です。

■関連記事
壊れにくいサーバについて考える(HDD編)

| | Comments (1) | TrackBack (0)

March 15, 2007

ハードディスクを廃棄する方法

大規模サイトともなるとたくさんのハードディスクを保持しています。ここまでくるとほぼ毎日どこかしらのハードディスクが壊れているような状態で、それに伴い廃棄するハードディスクも年々増えてきています。そこで今回はハードディスクを安全に廃棄する方法を整理してみたいと思います。

【ハードディスクのデータを消去する】
単純にフォーマットした程度ではデータは割と簡単に復元できる、というのは有名な話しです。そこでハードディスクの中身をランダムなデータで埋め尽くすという方法が考案されました。これ、Linuxでは簡単に実現できます。

# shred -n 5 -vz /dev/hda (※hdaはハードディスクドライブ名)

shred。シュレッド。シュレッダーですね。ちなみに-nは何回ランダムなデータを書き込むかを指定するオプション。-vは進捗状況メッセージ表示。-zはshredを実行した後、NULで上書きするオプションです。

※おすすめ
CDROMブート可能なLinux CDを作っておくとCDブートしてコマンドを叩くだけでshredが出来ます。shredする機会が多い方は是非作っておきましょう。

【ハードディスクを破壊する】
ただ、shredが実行できるのはあくまでもハードディスクが生きている場合であって、そもそもドライブが認識しないだとか不良セクターがあるなどの場合はshredできません。こんなときはハードディスクを物理的に破壊するしかありません。

よく取られる方法は専用のハードディスク破壊機器を使うかもしくは電気ドリルで穴を開ける方法です。大規模サイトを運営している会社であれば各1セット持っておいたほうがよいと思います。

ただし注意があります。ハードウェアをリースやレンタルで調達している場合はそもそも業者が保有する資産ですから勝手に物理破壊することができません。こんな場合は業者に相談してしかるべき対処を双方で検討するしかありません。

【ハードディスクを廃棄する】
そしていよいよハードディスクの廃棄です。民間の廃棄物処理業者かもしくは地方自治体の清掃局に処理を依頼することになるかと思います。中古販売業者に処理を依頼すると中古品として販売されてしまう可能性があるので避けたほうがよいと思います。

【最後に】
セキュリティを考え出すとどうしても性悪説で物事を考えなければならないのであまり楽しい作業ではないといえます。しかし避けられないことは楽しめという言葉の通り、どうせやるなら楽しくかつ楽に済ませたいものです。shredコマンドや電気ドリル破壊等は発想がシンプルで操作も簡単なのでその方向性に合っていると思いご紹介してみました。

| | Comments (0) | TrackBack (0)

November 10, 2006

安く、早く、確実、安全なバックアップとは

今月分の@IT連載記事が掲載されました。タイトルは「安く、早く、確実、安全なバックアップとは」です。

http://www.atmarkit.co.jp/im/cop/serial/kanrisha/09/01.html

| | Comments (1) | TrackBack (0)

September 11, 2006

デフラグの有効性について考える

デフラグが好きな方は多いと思います。真っ赤なグラフが次第に青に変わっていく姿は精神的に心地よいものがあります。しかし最近「デフラグって実はあまり効果がないのではないか?」という説をよく聞くようになりました。そこで今回はデフラグの有効性について考えてみることにしました。

さて、デフラグの有効性を考える上でポイントは3点ありそうです。

【ポイント1:デフラグでパフォーマンスは向上するのか?】
断片化したデータを連続的に再配置するのがデフラグの役目です。デフラグ実施後に最も効果を発揮するのはシーケンシャルな(連続した)データにアクセスする場合です。それに対してランダムアクセスの場合、特に小さいサイズのファイルを対象としたランダムアクセスの場合はデフラグ効果があまりありません。また年々OSやHDDのバッファサイズが増えていて、HDDへの物理的なアクセス速度がバッファで吸収されていく傾向にあります。

以上を総合すると、アクセスしようとするデータ中に明らかにシーケンシャルなデータが多い場合はデフラグによるパフォーマンス向上が見込めますが、そうでない場合はデフラグを行っても大してパフォーマンスが上がらないという結論になりそうです。

【ポイント2:デフラグはHDDの寿命を縮めるのか?】
この議題に対しては、「寿命を縮める派」と「むしろ寿命が延びる派」が存在するようです。まずは両者の言い分を聞いてみましょう。「寿命を縮める派」の主張としては、デフラグはそれ自体HDDアクセスなので、デフラグばかりやっていると当然HDDの寿命が縮まるという意見。それに大して「むしろ寿命が延びる派」の主張としては、常にHDDが断片化された状態だとヘッドがあちこちに動きまわる状態なので、デフラグを行ったほうがヘッドの無駄な動きが減りHDDの寿命が延びるという意見です。

それぞれの主張を見てみると双方それなりに筋が通っているので、場合によりけりという結論になりそうです。デフラグを行う頻度や断片化されている程度によると思います。

【ポイント3:デフラグの失敗でデータが失われることがあるのか?】
各々のデフラグツールのアルゴリズムや実装についてまで知る術がないので断言はできませんが、デフラグ中にマシンが異常終了したり停電が起こった場合、データが失われる可能性はたしかに否定できないです。よってデフラグの失敗でデータが失われることはたしかにありそうだという結論になりそうです。

【結論】
既に記したようにシーケンシャルなデータを連続的にREADするような特殊な状況においてはデフラグはものすごい有効だと思います。しかし一般論として個人的な結論を述べるとすると、デフラグには多くの時間がかかること、デフラグの失敗でデータが失われるリスクがあること、及び劇的にパフォーマンス向上が見込めないことを考えると、一般的な期待値よりもデフラグの有効性は低いのではないかと思いました。

※追記:デフラグネタを出すと、必ず「Linuxなどのようにデフラグが必要ないファイルシステムに比べたらWindowsのファイルシステムは不完全だ」という意見が出ますが、いいかげん聞き飽きましたので自分から書いちゃいます。なぜLinuxなどのファイルシステムではデフラグが必要にならないかご興味がある人はネット上のどこかに書いてありますから探してみてください。

| | Comments (1) | TrackBack (0)

August 11, 2006

メーカー別HDDシリーズ一覧表

HDDを購入するときメーカー別のHDDシリーズを知ってないと比較が難しいのでまとめてみました。私が一番気にするのはエンタープライズストレージかデスクトップストレージかなのでその2つの大分類をしています。

一般的にエンタープライズストレージのMTBF(平均故障率)は100万時間、デスクトップストレージのMTBFは60万時間程度となっていて、私は壊れにくいエンタープライズストレージを積極的に選んで購入するようにしています。

※MTBFの意味についてはこちら


■■■[ Maxtor ]■■■

●エンタープライズストレージ
・Atlas 15K II
・Atlas 15K
・Atlas 10K
・MaxLine Pro 500
・MaxLine III
・MaxLine Plus II
・MaxLine II

●デスクトップストレージ
・DiamondMax

■■■[ Seagate ]■■■

●エンタープライズストレージ
・Cheetah
・Savvio(2.5inch)
・NL35

●デスクトップストレージ
・Barracuda
・Momentus(2.5inch)

■■■[ Western Digital ]■■■

●エンタープライズストレージ
・Raptor
・Caviar RE2
・Caviar RE

●デスクトップストレージ
・Rapror X
・Cavier SE16
・Cavier SE
・Cavier
・Scorpio(2.5inch)

■■■[ 日立 ]■■■

●エンタープライズストレージ
・Ultrastar

●デスクトップストレージ
・Deskstar
・Travelstar(2.5inch)

| | Comments (0) | TrackBack (0)

August 09, 2006

ハードディスクは外側と内側で速度が違う

ハードディスクは外側と内側で速度が違います。外側が速くて内側が遅いです。またハードディスクは外側から内側に向かって書き込んでいきます。

ということは、Windowsをインストールするとき普段何気なくパーティションを分け、CドライブにOSを、Dドライブにデータを入れるという行為はとても合理的だということがわかります。何故なら、速度の速い領域をアクセス頻度の高いOS用に押さえ、OSよりはアクセス頻度の遅いデータはそれ以外の領域を使う、という使い分けをしているからです。なかなか奥が深いですね。

| | Comments (1) | TrackBack (0)

February 21, 2006

ハードディスクの中身をそのまま移行する方法

先日久しぶりにノートPCのHDD入れ換えを行いました。普段であればOSから再インストールしてすっきりさせるところなのですが、今回は業務上必要な設定が満載のノートPCだったのでHDDの中身を丸ごと入れ換える方法を取りました。というわけで今回はハードディスクのイメージをそのまま移行する方法を述べてみたいと思います。

【市販ソフトを使う場合】
作業に入る前にいろいろ調べてみたんですが、こういう場合はNorton Ghostを使うのが定番らしいですね。それ以外にもいろいろな市販ソフトがありそうです。市販ソフトの安心感はなかなか捨てがたいものがあり、よい選択です。


【フリーソフトを使う場合】
が、今回は急いでいたのでフリーソフトを使いました。いろいろ調べたのですが、DrvImagerXPというソフトがなかなか良さそうで、今回はそれを使いました。詳細な使い方は他サイトに譲るとしてここでは割愛させていただきます。

感想としては、パーティション内のデータをそのまま1つもしくは複数のファイルにしそれを別のHDD上で展開するというシンプルさで特に問題もなく簡単にHDD移行ができました。新旧のHDDのパーティションサイズが異なっていても問題なく展開できるのはなかなか便利です。

気づいた点としては、まず展開後CHKDSKをかけないとパーティションが正しく認識されなかったことです。この件マニュアルにしっかり書いてあるのですが英語なので読むのに時間がかかってしまいました。次にイメージの圧縮機能は一度イメージを作ってからgzipをかけるという仕様であまり意味を感じませんでした。すなわち例えば20GBのパーティションをイメージ化しようとしたら少なくとも20GB以上のHDDの空き容量がないといけません(ネットワーク上のファイルサーバを使いました)。最後に作業にはなかなか時間がかかります。まぁこれは仕方がないですね。


http://www.forest.impress.co.jp/article/2002/10/03/drvimagerxp2.html


http://www.softpedia.com/get/System/Back-Up-and-Recovery/DrvImagerXP.shtml


【応用】
以前HDDを丸ごとコピーする方法でご紹介した方法に今回の内容が追加できそうですね。WEBサーバを100台増強とかいった場合、いろいろな方法がありますが、今回の方法は簡単かつ安上がりで、アルバイトの方でも作業できるオペレーションなので結構使えるかもしれません。

| | Comments (0) | TrackBack (0)

September 08, 2005

最近のHDD事情

久しぶりに最近のHDD事情を調べてみました。

【HDD製造メーカー】
ここ数年で統廃合が進み、HDDを作っているメーカーがかなり少なくなりましたね。現在HDDを作っているメーカーで思いつくのは以下の通り。

Seagatey、Maxtor、Western Digital、東芝、富士通、日立GST、Samsung


【インタフェース】
昔はIDEとSCSIしか思いつかなかったですが、今はこんなにたくさんあります。

・ATA・・・IDE、E-IDEの後継で上位互換。インタフェースの形が同じ。
・SATA(Serial ATA)・・・インタフェースの形がATAとは全然違う。
・SCSI
・iSCSI
・FC(Fibre Channel)・・・注:Fiber Channelではない!
・SAS(Serial Attached SCSI)・・・これから主流になっていきそう?

※この辺り詳しくないので間違っているかも。間違っていたらどうか指摘してください。


【回転数】
主に以下の5種類ですが、1.8インチHDDで4,200rpm等例外もありそう。

5,400rpm、7,200rpm、10,000rpm、12,000rpm、15,000rpm


【余談: HDDの選び方】
いろいろあって迷いますが、選ぶポイントは基本的にこの3つしかありません。

1.耐久性(MTBF・・・平均故障間隔の長いものを選ぶ)
2.パフォーマンス(平均I/O速度を見ます。ここで注意です。ディスク回転数やシークタイムも重要ですが、搭載キャッシュ容量もかなり重要になります。またランダムアクセスかシーケンシャルアクセスかによってキャッシュの使われ方が変わってくるので一概にカタログスペックを見るだけではパフォーマンスは判断できません。なので私の所属している会社で大型ストレージ機を買う場合検証機で実際に測定するようにしています。)
3.価格(安いものと高いものでは極端な話100倍くらい値段が違ってきます)

| | Comments (3) | TrackBack (1)

最近のサーバ用HDDのトレンドは2.5インチ

最近サーバ購入を検討する機会があり某ベンダーさんから聞いて驚いたのですが、最近のサーバ用HDDのトレンドは2.5インチになってきているそうです。

2.5インチと聞くとどうしても個人で使うノートPC用HDDを思い浮かべてしまい不安な気持ちになってしまうのですが、重要なことはメーカーが謳っているMTBF(平均故障間隔)であり、それが3.5インチHDDのそれと変わらないかそれ以上なのであれば全然問題ないはず。それが客観的な考えというものです。実際購入するときはそのあたりをベンダーさんに質問してみると良いと思います。

| | Comments (1) | TrackBack (0)

February 17, 2005

信頼性の高いファイルサーバについて考える

最近当社で使っていたNASファイルサーバのHDDに不良セクターやI/Oエラーがたくさんみつかりました。幸いRAID5+HotSPARE&HotSwap対応のNASだったので今のところデータが飛ぶという事態までには至っていないので助かってますが、最悪の事態を想定して現在その対応にてんやわんやな状態です。そこで今回はよい機会なので信頼性の高いファイルサーバについて考えてみましょう。

【ATA HDDを使ってはいけない】
最近のATA HDDは昔とくらべてずいぶん信頼性が上がったと聞きますが、それでもファイルサーバ用途には耐久性的に全然駄目です。どんなに高価でもファイルサーバ用に使うHDDにはMTBF(平均故障間隔)の長いSCSIやFCを使うべきです。

【普通のPCを使ってはいけない】
普通のPCにWindowsを入れてファイルサーバとして使っているところも多いと思います。しかし普通のPCといわゆるサーバ機は設計ポリシーや品質基準が大きく異なるので絶対にファイルサーバにはサーバ機を使うべきです。

【RAIDについて考える】
ファイルサーバに置かれるデータは基本的にかなり重要であると考えたほうがよいです。そう考えるとRAID構成はとても重要です。RAID5だと不十分です。最低RAID5+HotSPARE、理想的にはRAID1+HotSPAREにしたほうがよいです。また、もしRAID5構成を選択するのであれば障害発生時のダメージを軽減するために少な目の本数のRAID5構成を組むほうがよいです。例えばHDDが9本あったとしたら9本でRAID5構成にするのではなく、3本のRAID5構成x3という感じにしたほうがよいです。

【ファイルサーバを冗長化する】
ファイルサーバが止まってしまうと他部署の業務に支障が出ます。そう考えるとファイルサーバは冗長化しておいたほうがよさそうです。常にデータがsyncできるようなNAS機器がおすすめです。

【バックアップを考える】
これだけの対応をしてもバックアップを考えることは重要です。テープでもいいですし、安価なNASでもよいです。もし可能であれば災害対策のために遠隔地にバックアップ装置を置ければ理想的です。

※ほんとうにここまでの対策をしなければならないの?と思いますよね。はい、したほうがよいです。ちなみにうちはここまでできてません。でも今回の障害をよい機会に、できる限り理想に近づける努力をしてみようかなと思うようになりました。データが飛んでしまうことを想像したら怖くて夜も眠れません。(寝るけど)

| | Comments (3) | TrackBack (2)

September 10, 2004

【ストレージ】パフォーマンスを上げるキャッシュ容量の考え方

昨日に引き続きストレージのネタに行きたいと思います。今日はキャッシュ容量の考え方を書きます。

最近のハイエンドストレージのキャッシュは大容量です。代理店さんからストレージの提案をいただくと、最近では1GBなんて当たり前。4GBや8GBは割と普通で、まれに64GBなんて提案をいただいたこともあります(64GBっていったらハードディスク容量と変わんないよ~^^)。しかしストレージのキャッシュは非常に高価なので、今回は最適なキャッシュ容量の考え方を述べてみたいと思います。

【そもそもストレージのキャッシュって何?】
キャッシュする・・・貯蔵するということなのですが、IEのキャッシュやWEBキャッシュサーバと違ってストレージのキャッシュって何を貯蔵するのかちょっとわかりにくいです。ストレージにおけるキャッシュの役割はベンダーによっても違うようですが主に下記の3点に集約されるようです。

 ①最近アクセスしたデータ(読み取りキャッシュ)
 ②使用を見越してディスクから読み取られたデータ(先読みキャッシュ)
 ③最近書き込まれたデータ(書き込みキャッシュ)


【キャッシュのヒット率と利用率について考える】
これを踏まえてキャッシュのヒット率と利用率について考えてみたいと思います。最適なキャッシュ容量を考える上で重要なのはリードの場合はキャッシュのヒット率、ライトの場合はキャッシュ利用率です。IEのキャッシュやWEBキャッシュサーバの場合はキャッシュ容量を大きくすればするほどキャッシュヒット率が向上していきますが、ストレージの場合は場合によります。ここではシーケンシャルリード、ランダムリード、シーケンシャルライト、ランダムライトの4パターンで考えて見ましょう。

■シーケンシャルリード
連続したデータをリードする場合です。この場合は先読みキャッシュ機能のおかげで高いキャッシュヒット率が期待できます。このアクセスが多い場合はキャッシュ容量を増やせるだけ増やすのがよいでしょう。

■ランダムリード
ランダムにデータをリードする場合です。この場合は上記キャッシュ機能①②③のいずれにもひっかからないので
このアクセスが多い場合はキャッシュヒット率を上げるためにキャッシュ容量を増やすことは得策ではありません。

■シーケンシャルライト
連続したデータをライトする場合です。この場合は書き込みキャッシュ機能のおかげで高いキャッシ利用率が期待できます。

■ランダムライト
ランダムにデータをライトする場合です。この場合も書き込みキャッシュ機能のおかげで高いキャッシ利用率が期待できます。


【考察】
ストレージキャッシュはランダムリードに弱いです。DBはランダムリードが多いと思われるのでDB用途にストレージを購入する場合はこの弱点回避のためにはキャッシュ容量を増やすこと以外の別の手段を取る必要があります。一番効果的なのは一番アクセスが多いデータだけに限ってキャッシュ上に全てのデータを置くことだとかいろいろ考えられますね。それは今回の趣旨と違うのでまたいつか別の機会にでも。

| | Comments (0) | TrackBack (1)

September 09, 2004

【ストレージ】パフォーマンスを上げるHDD構成の考え方

ハイエンドストレージの導入を検討することになった場合悩みどころがたくさんあります。思いつくことを挙げるだけでもメーカー、モデル、ディスク実容量、ディスク本数、RAID構成、キャッシュ容量、ファイバーチャネル本数、FCスイッチポート数、パーティションのきり方とデータの載せ方等々いろいろあります。いずれこれら全てのポイントについてこのBLOGの中で触れてみたいと思うのですが、今回はその中でも特にディスク総容量とディスク本数の話題に触れてみたいと思います。(ちなみにディスクのインタフェースにはS-ATA、SCSI、FC(ファイバーチャネル)等いろいろありますがハイエンドストレージの場合はS-ATAやSCSIを選ぶことは考えにくいのでここではFCを前提で考えます)

【ディスク実容量の決め方】
例えば現在データが50GB、年内100GB、来年末に200GBになることが見込まれているとした場合、あなたはどれくらいのディスク実容量にするのが妥当だと思いますか? ここで判断のために重要となるの今何が問題なのかです。すなわちディスク容量が足りないことが問題なのか、単にDASからNAS/SANへ移行することだけが目的なのか、もしくはパフォーマンスが遅いことが問題なのかということです。

ディスク容量が足りないことが問題な場合や、DASから単にNAS/SANへ移行することだけが目的な場合では、必要な分のディスク総容量を用意すればよいでしょう。それが200GBなのか300GBなのか500GBなのかはどこまで余裕を持たせるかということなので価格と予算を見て決めればよいでしょう。

それに対してパフォーマンスが遅いことが問題な場合。この場合はちょっとパラダイムシフトが必要です。パフォーマンスを上げるためにはディスク本数が多ければ多いほど良い。よってディスク総容量は大きければ大きいほど良いです。現在データが50GBなのだとしたら、例えば1TBとか10TBとか、それくらいディスク総容量を持つくらいの勢いで行くのがよいと思います。

【パフォーマンスを上げるためのディスク本数の決め方】
パフォーマンスを上げるための基本的な考え方を記します。

① HDD回転数が最大のものを選ぶ。(現在であれば15000rpm)
② HDD容量が極力小さいものを選ぶ。(が、製造中止の恐れのあるものは選ばない)
③ ①と②のものをたくさん並べてストライピングする。

ストライピングは偉大です。どんなにディスクI/Oが高いシステムであっても、基本的にストライピング本数を増やせば増やすほどディスクI/Oが分散されるのでレスポンスが上がっていきます。また現在HDD回転数が15krpmのものは18GB,36GB,72GBになると思いますが、18GBのHDDはそろそろ製造中止が予想されるので選ばないことが無難そうです。36GBもそろそろ危ないかもしれないです。そんなわけで、72GB(15krpm)か36GB(15kpm)のHDDを横にたくさん並べてストライピングするというのがよいと思います。(ただしストライピングとはいっても実際はRAID1+0構成を選択すべきなのは言うまでもありません)

同じ144GBでも下記の3パターンの中では(3)がパフォーマンス最速
 (1)144GB(10krpm): [HDD]
 (2) 72GB(15krpm): [HDD][HDD]
 (3) 36GB(15krpm): [HDD][HDD][HDD][HDD]

【ストライピング可能本数はシャーシによってまちまちである】
ただしストライピング可能本数が、ストレージ本体によってまちまちであることに要注意です。4本、8本、16本、もしくはまれに無制限というものもあります。これはメーカーによってもばらばらですし、同じメーカー内でもばらばらなことが多いです。カタログにこの制限が書いてないこともありますのでその場合は代理店さんに質問するのがよいでしょう。

ただしこの制限を回避する裏技もあります。それはソフトウェアRAIDを使うことです。ハードウェアRAIDによるストライピンググループをソフトウェアRAIDで束ねるという方法です。ソフトウェアRAIDを使うことは特にWindows Serverではとても不安がよぎりますが、安定性を謳うハイエンドUNIXサーバやメインフレームの世界では意外と現実的だったりします。

| | Comments (4) | TrackBack (0)

September 07, 2004

RAID0+1とRAID1+0の違い

RAID01とRAID10に違いってご存知ですか?特にハイエンドストレージを導入するときにはこの違いについての理解がとても大切になってきますのできちんと理解しておいてください。

【RAID01とは?】
ストライピンググループをミラーリングしたものがRAID01になります。

HDD[1]~[4]で構成されたストライピンググループ1とHDD[5]~[8]で構成されたストライピンググループ2があったとします。

[1 2 3 4] <- ストライピンググループ1
[5 6 7 8] <- ストライピンググループ2

この構成時、例えばストライピンググループ1のHDD[1]が死亡した場合はグループ1のストライピングが使えなくなります。よってこの状態ではストライピンググループ2だけが動いている状態になるわけですから、この時HDD[5][6][7][8]のいずれかのHDDが1本でも死亡したらRAID全体が死亡となります。

[X 2 3 4] <- ストライピンググループ1
[5 6 X 8] <- ストライピンググループ2
↑この状態になると両ストライピンググループが壊れるのでアウト!


【RAID10とは?】
ミラーリングしたグループをストライピングしたのがRAID10になります。

[1 2]、[3 4]、[5 6]、[7 8]というミラーリンググループがあったとします。

[1] [3] [5] [7]  } ミラーリンググループを
[2] [4] [6] [8]  } 束ねてストライピング

この構成時、例えばHDD[1]が死亡した場合、続いてHDD[2]が死ぬとRAID全体が死亡となりますが、それ以外のHDDが死んでもRAID全体としては生きつづけます。


[X] [3] [5] [7]
[2] [4] [X] [8]
↑この状態でもそれぞれのミラーリンググループは生きているので大丈夫。

[X] [3] [5] [7]
[X] [4] [6] [8]
↑この状態だと1つのミラーリンググループが壊れ、ストライピングも壊れていまうためアウト!


【結論】
RAID01とRAID10では可用性という観点から見れば明らかにRAID10の方が上になります。RAID01とRAID10ではHDDの本数が変わりませんし、パフォーマンスも普通に考えれば同じ程度なはずです。よってRAID01とRAID10が選択できるのであれば迷わずRAID10を選択すべきです。

| | Comments (2) | TrackBack (2)

June 25, 2004

HDDを丸ごとコピーする方法

同じ内容のWEBサーバをたくさん並べて負荷分散を行うことなったとします。この時サーバ1台1台インストールしていくのは大変面倒なので他の手段を取りたいですよね。ではどうやるか。

■悪い例
①サーバ毎にOSを順番にインストールし、最後にデータをコピーする。(←面倒すぎます!)

■良い例
②RAIDコントローラのRAID1ミラーリング機能を使って、ミラーを作る(←簡単。お勧め)
Norton GHOSTを使う。(←バックアップも取れて一石二鳥)
④サーバメーカーにマスターHDDを送付して、メーカーの方でミラーを作ってもらう。(←DELLの場合CFIサービスという名で、1台数千円程度かかります)

| | Comments (2) | TrackBack (0)