質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

基本情報技術者

基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

Q&A

解決済

3回答

3888閲覧

RAIDの構成方法について

yuto_

総合スコア11

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

基本情報技術者

基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

0グッド

1クリップ

投稿2017/02/14 09:03

RAIDの構成方法についてごく基本的な質問があります。
たとえばRAID5で3枚のハードディスクを用いて構成する場合、それぞれのハードディスクを3領域に(等分割で)パーティションする、という理解でよろしいでしょうか?
実際に構成しようとしてみると、それしかないよなあ..と思ったのですが、用語の意味程度の知識しかなく、どうかよろしくお願い致します。
(実際に組まないかも知れませんが、学生に正しく教えねばなりませんので(_))

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

maisumakunさんの質問へのコメントを拝見して感じたことをコメントします。

RAIDは信頼性および性能目的で用いるものだと思いますが、例えば信頼性を上げることの一つに「ハードディスクが物理的に故障した場合にホットスワップが可能である」という点も重要な機能だと思います。よってRAIDは「ソフトを使って構成するもの」ではなく「物理的なハードディスクを複数用意してそれらをまとめて一つのディスクとしてみなす技術」と考えた方が一般的でありmaisumakunさんはそういうことを前提に答えておられると思います。

またRAID5でいえば2D+Pの構成以外に3D+Pや4D+Pも考えられますのでもし2D+Pが唯一の構成であるかのように認識されているのであればその点も注意したほうがよいのではないでしょうか?

RIADについてどのような範囲で学生に説明しようとしているかを明確にした上で質問されたほうがよいと思います。いわゆるRAID技術を説明するならパーティションを切って・・・という前提がおかしいように感じられます。

パーティションで疑似的にRAIDっぽいものを作ることができるかも知れませんがそういう構成ではホットスワップなんて芸当はやりようがなくパリティーによるデータの自動訂正というRAID技術の基礎的なアイデアについての話にとどまってしまいます。自動訂正の話ならパーティションをどうこうという話なしに説明できる気がします。

追記:すみません、「自動訂正」という言葉は不適切な気がします。単に一つのディスクで障害が発生した際にパリティーから欠損したデータが計算できるに過ぎませんね。その点誤解を招く表現になっているので訂正させていただきます。

投稿2017/02/14 10:22

編集2017/02/15 01:10
KSwordOfHaste

総合スコア18392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuto_

2017/02/15 02:14

KSwordOfHaste 様 詳しくご回答下さり有り難うございます。 >RAIDは信頼性および性能目的で用いるものだと思いますが、例えば信頼性を上げることの一つに「ハードディスクが物理的に故障した場合にホットスワップが可能である」という点も重要な機能だと思います。 一台故障してもそのまま(電源をおとさず)使い続けられる(ついでにデータも修復できる)ということですよね。  (違っていたらご指摘下さいませ) >よってRAIDは「ソフトを使って構成するもの」ではなく「物理的なハードディスクを複数用意してそれらをまとめて一つのディスクとしてみなす技術」と考えた方が一般的でありmaisumakunさんはそういうことを前提に答えておられると思います。 そうですね、「複数のハードディスクを一つのディスクとみなして使用できる技術」というのがRAIDの大前提であることは、今朝 maisumakun 様からの返信を読んで分かりました。別の観点から補足下さり、有り難うございました(_)  >RIADについてどのような範囲で学生に説明しようとしているかを明確にした上で質問されたほうがよいと思います。いわゆるRAID技術を説明するならパーティションを切って・・・という前提がおかしいように感じられます。 学生に実際に話すかは別にして、実際にデータを保存していくときの仕方が、きっとそういうやり方でないかと思ったもので^^;、具体的な実装はどうかを知りたい(知った上で教えたい)と思い、質問しました。 質問の内容も見当違いだったようですが、ご指摘の通り、質問の仕方があまりにも言葉足らず・分かりにくかったです。失礼いたしました。 IT関係は素人もいいところなのですが、教えねばならぬことになり四苦八苦しています。 皆様有り難うございました(_)
KSwordOfHaste

2017/02/15 05:29

> 一台故障してもそのまま(電源をおとさず)使い続けられる そうですね。そのためにこそRAIDを使うのだと思います。 > 具体的な実装はどうかを知りたい RAIDの中身については概念的な「こうなっているであろう」ということは話してもよさそうに思います。 例えば2D+Pなら3本のディスクに連続したデータが以下のように順番に並んでいると仮定して不自然なことはないはずです。 -------------- 各ディスクのブロック位置 D1 D2 P12 - LBA(Logical Block Address) = 0 D3 D4 P34 - LBA = 1 ... ディスクの先頭から4ブロック読み込む指示をするとRAID Controllerは2つのディスクからD1,D2,D3,D4と読み込むという具合です。もし2台目が壊れていたらD1,P12,D3,P34と読み込んでD1,P12からD2を計算しD3,P34からD4を計算し何事もなかったかのようにD1~D4をホストへ転送するといった感じですね。RAIDの実際の中身が正確にどうなっているかは別として「概念的にはこんな具合にできている」という説明をする分にはよいと思います。
yuto_

2017/02/15 07:03

有り難うございます。 確かに KSwordOfHaste 様の言われるように、あえて RAID5 でなく RAID4 的に示した方が、分かりよいかも知れませんね! 自分も学生には、KSwordOfHaste 様がいま書いて下さった位の説明しかしません。 ...パリティの取り方も復元の仕方も排他的論理和を取るだけで非常にsimpleなので話したいですが、排他的論理和の計算に慣れている学生以外には、混乱させるだけなので話しません^^; RAID6 も。 ITパスを受ける子には RAID0,1と、「RAID5 の雰囲気」のみで、応用情報を受ける子にも、相手によりますが、RAID5 の上記のような説明しかしないと思います。(といいましても、できたばかりの専門学校で、まだ僕は数人にITパス~応用情報を教え始めたばかりですが;) しかしとにかく、自分が具体的なブツとその働きをある程度正確に理解していないと、自信をもって正しくデフォルメできませんので、今回色々と教えて頂きまして本当に有り難うございました。とても勉強になりました。(_) ちゃんと教えられるよう、精進します。
KSwordOfHaste

2017/02/15 09:54

白状するとRAID5の説明のつもりでRAID4を書いてました...RAID4の存在を意識してなかったのでパリティー分散がRAID5の条件という点を意識してませんでした。テストなら×ですね・・・ちゃんと区別して覚えてなくお恥ずかしい限りです。 > 論理和の計算に慣れている学生以外には、混乱させる プログラマーであれば二進数やビット演算の基礎知識は知っておいたほうがいい気もします。そうした基礎事項を知った上でならRAID4の仕組みが腑に落ちるはずだからです。プログラマーは論理的に物事を積み上げていくのが大事な気がするので単なる暗記より仕組みを知ってほしいという気がします・・・ただどう教えるかというのは難しい問題かも知れません、受講対象が全員プログラマー志望というわけでもないのでしょうし。
yuto_

2017/02/15 14:34

はい。ビット演算はそれ自体面白いですし、論理和についても慣れて欲しいのですが、うちは特に?数学が普通に出来ない子が多いので… ただ、基本情報・応用情報になると必要になってきますので、最低限は教えます。そして、数学が普通に出来る子やプログラマ志望の子には確かに徹底したい所ですね… RAIDのパリティの所もスッキリ分かりますので、具体的に計算させて分かった気にさせるプリントを、基本情報以上対象に作ろうかしら? 色々良い方向性が見えてきました。有難うございます。 自分は致命的にハードに弱く(実際に余り触っていない)、ネットワーク系にも弱いので、道は険しいですが頑張ります(^^;
guest

0

ベストアンサー

いえ、RAIDをかけたディスクアレイはOSから見ればあくまで1つのディスクに見えますので、内部のパーティション構成は、RAID自体のディスク構成とは無関係に設定できます。

なお、RAID5の場合、1台分の容量がパリティのために消費されますので、3台のディスクを使った場合は「2台分の容量を持ったディスク」として認識されます。

投稿2017/02/14 09:13

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuto_

2017/02/14 09:52

RAIDをソフトを使わず自分でプログラミングする場合、どうするかという話なのですが・・。
maisumakun

2017/02/14 10:01

そもそも「RAID」という語自体が、「複数台のハードディスクを組み合わせることで仮想的な1台のハードディスクとして運用」することを前提としています。 個々のディスクやパーティーションが見えている状態で、その内側で行うものは、「RAIDごっこ」に過ぎません。
maisumakun

2017/02/14 10:05

実際のRAID 5コントローラーは、入出力すべき「データの塊」を適当な単位で分散・パリティ計算しているだけで、パーティーション構造なんて知らない、という実装でも問題ありません。
Panzer_vor

2017/02/14 23:19

一口にRAIDといったら、 論理的には1つに見せて信頼性(耐障害性)と効率性を高める技術としか言えないですよね。 質問者様がどこまで教えるのか次第ですが、 試験的に問われる観点でいうと、ストライピング(RAID0)、ミラーリング(RAID1)は知らないと話を膨らませることはできないかもですね。
yuto_

2017/02/15 01:14

maisumakun 様,Panzew_vor 様、ご回答有り難うございます。 >そもそも「RAID」という語自体が、「複数台のハードディスクを組み合わせることで仮想的な1台のハードディスクとして運用」することを前提としています。 これは知りませんでした!本来、そういうことだったのですね・・! 自分は「RAID」=「複数台のハードディスクを組み合わせることで、信頼性や効率性を高める技術」という理解でした。 勿論、理屈からRAID5ならば実際のハードディスク数ー1台分の容量になりますし、それを仮想的な1台のハードディスクとして運用していることは製品から理解していましたが、そこに力点があるとは認識していませんでした。(単に実用上の分かりやすさのためだと思っていました) しかしそこに最初の動機があったのですね。また実装も一番そこが面倒そうですね。 パリティの使い方自体は非常に単純なアイディア・計算ですので。 >実際のRAID 5コントローラーは、入出力すべき「データの塊」を適当な単位で分散・パリティ計算しているだけで、パーティーション構造なんて知らない、という実装でも問題ありません。 これが知りたかったのです! そうなのですね・・。「分散したデータ・パリティを、どう保存してゆくのか」について、単純に言えば、(1)各ディスクで空いているところから順に保存してゆくのか、(2)パリティはパリティで(パーティションした領域に)保存してゆくのか、疑問に思ったのです。 後者の方が実装しやすいように思ったのですが、どうもそういう訳ではなさそうですね・・。 詳しく教えて下さり、どうも有り難うございました。(_)
guest

0

RAID - Wikipedia
ストレージ 用語解説 RAIDとは - Fujitsu Japan
RAID比較(構成・速度実測・耐障害性)

ネット検索が全てとは言いませんが、
用語として古くからある言葉なのでどういう技術なのか調べようと思えば簡単に調べがつくので、
教える立場として根幹的原理原則からしっかり押さえていただきたいと存じます。

ソフトウェアRAIDってものもありますがややこしくなるので省きます。

通常ハードディスクには(ハードウェアである)RAIDコントローラを介してアクセスします。
OSから見たら一つのハードディスクに見えますが、
物理的に複数のハードディスクを管理して束ねています。
単純ミラーリングであるRAID 1以外は、
一度RAID構成したハードディスクを外して単品で読み書きしようとしても
RAIDコントローラが散らしたデータの断片でしかないため
人力でデータ復旧するのは困難です。
むしろ、人はRAID構成している物理的ハードディスクの中がどうなっているか知らなくて良くて、
構成されたあとのOSから見える論理的ハードディスクだけわかっていればいい世界です。

RAIDの構成の仕方によっては
一つが壊れてもシステムを止めずにRAIDコントローラが復旧を段取りできる場合があります。
しかし、復旧中に追い打ちをかけるように二つ目が壊れたりすることもあり、
その場合構成の仕方によってはお手上げになります。
(どういう構成の場合どういう耐障害性を持つかは上記に上げたサイトで確認してください。)

もちろん、RAIDコントローラが肝なので、
コントローラ自身やコントローラの動作に必要な構成情報を収めた記憶域が壊れると
これもお手上げです。
特定の技術一つに依存せず、運用面も含めてバックアップ体制を構築することが求められます。

投稿2017/02/15 02:55

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuto_

2017/02/15 03:57

上記の疑問に対して色々検索してはみたのですが、疑問自体が普通は考えないであろう間違ったものでしたので、疑問を解消するページが全然出てこなかったのですよね^^; 種々のIPA試験対策本や僕が調べた解説ページではハッキリしなかったのですが、 Wikiがこんなに詳しく分かりやすいとは!!! いつも愛用していますのに、迂闊でした。 RAID0~6と、その組合せの内容について一通り理解しているつもりでしたが、上記の疑問(コントローラがどう振る舞うか)を含め、残っていた細かい疑問が、いま Wiki を読んですべて氷解しました。 どうも有り難うございました。いや、本当に感謝しています。 というか・・Wiki すら調べていなかったこと、それで質問したことは、本当に恥ずかしい。反省しています。 大変失礼致しました!(_)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問