何か決めなきゃ駄目ですか。



俺が決めたら、貴方はどうするんだい。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

zfsとRAIDカード

環境:FreeBSD7.2p7 + RR2300*2 + zfs version6



ストレージが動いてないと何も出来ないのに、数日前問題が発覚。

ことの次第は、RocketRAID2300(以下RR2300)を単なるSATAコントローラとして利用して、
zpoolをぶら下げようとした時ことだった。

話題としては前回 : 「RocketRAID2300に」の続き。
前回は同じマザーに2枚挿したときにOUT OF MEMORYになる話で、
そりゃまぁRAIDカード的にはよくある話で終わった。

で、今回問題なのは、RR2300は所謂SingleDisk(non-RAID)状態が作れないこと。
HDDを接続→initialize→単体diskをJBOD。という手順を踏んで初めてOSからディスクが見える。
BIOSをNon-RAID 2.4に書き換えても無理っぽい。(っていうかnon-RAID BIOS入れた人見つからねぇ・・・)

しょうがないので上記の方法でOSからはda0のように見せて、zpoolを作成。
これを引っこ抜いて、マザーのSATAポートに挿し直して、zpool importしようとすると、
> invalid vdev configuration
と言われる。

最も現象が近いのはこの辺り。
http://d.hatena.ne.jp/navyfox/20091129/1259505858

残念ながら頭が回らなくてセクタ計算をしないまま今に至るのだが。
(本当のところは、してみたけど間違ってた。スペアディスクを挿すポートが余ってねぇ。)
zdb -lを使ってatimeを見てみると、ad14とda0で値が異なっている。
(ちなみに、セクタ数はad14>da0)
物理的には同じディスクなのに!バカ!

RR2300でinitializeしたら認識セクタ数が変わるせいか、
adとdaドライバの値の扱いの違いかと思ってるのだけど・・・。
(後者は微妙だなぁ。)
そもそも、物理的に同じディスクをOSにIDE的に見せるのと、SCSI的に見せるのって想定してるのか・・・?

どこぞで、RAIDカードのディスク使用率制限があるとかないとか、
切ったらセクタ数が一致したとかしないとかいう話も聞こえているのだけど、確信出来てない。
そもそもRR2300はBIOSが微妙すぎる。

あまり時間をかけられないので、今のところは下記の不可逆プールの生成法則に従って生きてる。
RAIDカードに挿した状態で作ったzpoolは、
zpool export→zpool importで読み込める。
逆は無理。


相性問題と片付けるのもありなんだけど・・・。
ようするに、ディスクの末尾に書いてあるラベル2,3の位置がずれてて、
ディスクの先頭のラベル0,1と整合性が取れてないってこと?

例えばそれってzpool destroyした後、zpool import -Dしても駄目かな?
ちょっと怖くて出来ないんで・・・。
destroyとimport -Dがラベルを再生成して無理矢理書き込むなら生き返りそうだけど・・・あ、違う?


割と他のユーザも引っかかってるっぽいんだけど、俺はどこに行けばいいんだ?
検索ワード的には、「different SATA controller zpool」とか。
言語の壁つれぇ。

いやでも、例えばこれって最初SATA(ad)で作ったプールを、AHCIモードにしてadaとか、
ATA_CAMとか有効にした時に、zpool export→zpool importすればいいと思ってたら、
セクタ数の認識違いで同じ問題が出たりしないの?

まぁ・・・多分RR2300が悪いんだとは思うけど・・・。



思考停止。

PCIExpress1レーンの内部SATA4ポートなSATAインターフェースカードでてこーい。

PageTop

コメント


管理者にだけ表示を許可する
 

もう解決されたかもしれませんが念のため.

一旦 onboard SATA に繋いで newfs してから RR につなげば legacy という状態で認識されます.
legacy として認識されれば単体の non-raid なディスクとして扱えますのであとは zpool create するなりしてしまえば良いでしょう.

a | URL | 2010年04月08日(Thu)23:03 [EDIT]


なんと!
ちょっと試してくる!
(都合の悪いことは忘れることにしていたのです。

ruy | URL | 2010年04月15日(Thu)22:34 [EDIT]


Re: タイトルなし

情報頂きありがとうござます。

まず、問題になっていたディスクは抜いておいて、転がっていた2TBのHDDを使います。
これをまずRR2300につなぐと、既にJBOD化されていたので、これを削除。
オンボードに差し替えてddで先頭から500MB分くらいzeroで埋めます。
そこからnewfs後、再度RR2300に繋ぐと、legacyではなくSINGLE/NORMALとして認識されてしまいます。
パーティション情報ごと無いと駄目か。ということでLABELの設定をしてみるのですが、やはりlegacyにはなりませんでした。

何かすごい勘違いをしているのかもしれませんが、RR2300がLegacy扱えるのはすっかり忘れてました。
次はなんとかなりそう(だといいなぁ)。
後はwindowsでNTFSかUbuntuのLiveディスクでext2かVMwareで適当に・・・と、疲れてるのでまた後日。

ruy | URL | 2010年04月17日(Sat)01:53 [EDIT]


Re: Re: タイトルなし

> 情報頂きありがとうござます。
>
> まず、問題になっていたディスクは抜いておいて、転がっていた2TBのHDDを使います。
> これをまずRR2300につなぐと、既にJBOD化されていたので、これを削除。
> オンボードに差し替えてddで先頭から500MB分くらいzeroで埋めます。
> そこからnewfs後、再度RR2300に繋ぐと、legacyではなくSINGLE/NORMALとして認識されてしまいます。
> パーティション情報ごと無いと駄目か。ということでLABELの設定をしてみるのですが、やはりlegacyにはなりませんでした。
>
> 何かすごい勘違いをしているのかもしれませんが、RR2300がLegacy扱えるのはすっかり忘れてました。
> 次はなんとかなりそう(だといいなぁ)。
> 後はwindowsでNTFSかUbuntuのLiveディスクでext2かVMwareで適当に・・・と、疲れてるのでまた後日。

あー・・・uninitializeしないといけなくなってるってことですかね。
単体JBODであってもアウトだと。
(highpointのヘルプページめ・・・書き方適t(ry
BSD上では作業続行はしんどいなぁ。素直にwin行きか。
そして代わりに挿される玄人。

ruy | URL | 2010年04月17日(Sat)02:20 [EDIT]


古い記事にコメントするのもあれですが、RR2300をただのSATAカードとして使う方法発見しました@FreeBSD8.1R

まずRR2300のBIOSをv2.4LAというnonRAIDなものに更新します
このBIOSを使うことでarrayを組んでないディスクがlegacyとして認識されます
legacyにならない場合は管理情報が先頭セクターか最終セクターに残っていると思われるのでddで飛ばしてみてください
(データが消えるのでご注意を)

次にカスタムカーネルを作成します
カーネルコンフィグへは以下の変更を加えRR2300の本来のドライバーであるhptrrを除外します
nodevice hptrr

次に/usr/src/sys/dev/mvs/mvs_pci.cに以下の変更を加えます
61行目から始まるmvs_ids構造体に以下のエントリーを追加
{0x23001103,0x00,"Marvell 88SX7042(HPT)", 4, MVS_Q_GENIIE|MVS_Q_CT},
(最初の0x23001103はpciconf -vlで表示される"RocketRAID 230x SATA Controller"のchip=の数字です)

変更を加えたらカーネルビルドとインストールを行います
無事にインストールできたら/boot/loader.confにmvs_load="yes"を追加し再起動します
すべてがうまくいけばmvs0と認識されディスクも認識されると思います
(カーネルコンフィグにdevice mvsとしてもよいです)

RR2300にはMarvellの88SX7042というチップが使われており、このチップの汎用ドライバーがmvsとなります
RR2300はchipIDが独自になっているためmvsでは認識できませんが、無理やり対応チップとしてドライバーを書き換えることで認識させることができます

gleentea | URL | 2010年08月20日(Fri)01:09 [EDIT]


こんなネタでそこまで試してもらえるなんて・・・
1500円/個で売り払った僕を殴ってください。

記憶では、ddで先頭をzero飛ばししてもregacyにならなかったのですよね。
(2枚持ってて、RAID/non-RAIDとBIOS分けて試験してたので)
RR2300をnon-RAID BIOS入れても、先頭と終端セクタがずれてた気がするので、他のSATAコントローラ経由でddしても駄目だったような・・・uninitializeとかにならないかな。(オンボで先頭セクタに傷つけてもRR2300経由だと傷が見えななかった気がする)。
勘違いかな・・・最初はZFSの先頭セクタが対応FSじゃないからregacyに見えないんだと思い込んでたけど違いそうだなぁ。

カーネルからhptrr飛ばしてmvs作り直せば確かにいけそうですね。
対応前のUSB製品を無理矢理認識させる方法と似てるかも。

結論出てなかったのでコメントありがとうございます。いくらでもサンクスなのです。

ruy | URL | 2010年08月26日(Thu)23:49 [EDIT]


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。