Linux

PCIバス経由のSATA Controller

たまには技術ネタでも。

一昔前のICH5なM/Bをどうでもいいファイルサーバ用に組み立てたんだけど、SATAが4台入るホットスワップケース買ってきてディスク入れたら、あ、しまった、SATAのチャンネル数が足りん。

というわけで高田馬場クレバリー(便利だ!)で980円で売ってたPCIの拡張SATAコントローラをつけてみた。チップはVIAの VT6421A。

PCIバス経由ってどの程度遅くなるんだろ、と思ったので、久々に bonnie++ などインストールしてベンチマーク取ってみた。

ディスクはどっちも先日泣かされた ST31000333AS。OSはもちろん Linux で、Ubuntu の 2.6.28-15-server。ドライバは ata_piix と sata_via のようです。

総論としては10%弱ぐらい内蔵の方が早いかしら、ぐらいの差。

まずICH5の方。

[Size 3G]
------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
37723  98 97037  50 41215  14 35770  81 119697  16 229.6   0

[files 16]
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
/sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
1128   5 +++++ +++   825   5   955   5 +++++ +++   897   4

次、VIAの外付け。

[Size 3G]
------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
37403  98 91819  46 38570  12 34463  87 107700  15 225.2   0

[Files 16]
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
 /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
 1096   6 +++++ +++   791   5  1094   6 +++++ +++   841   4

まあこんぐらいの差ならミラーリング相手を別コントローラになる内/外に振ってもいいかもしれない。

ま、どっちのコントローラもSATAII対応じゃないし、モードもUDMA/133 なようなですし。ICH5だし。

新世代だともうちょっと早いんだろうけどまあ、別に速度要らないいしな。極端に遅くなる訳じゃないことが確認できたのでよろしいかと。

ディスク地獄

SeagateのST31000333ASっていう、例のバグ対象のHDDを持っていて、ふと思い出してファームウェアアップデートしたんですよ。昨晩。で、このファームウェアアップデート自体は、ISOファイルも提供されてさほどややこしくなく終わったんだけど。

同じディスクが3台あって、1台は特に問題なく終了。普通に使える。

残り2台は、Coregaの NAS Box(CG-NST2100GT, PromiseのOEM) に入れて使ってたんですよ。でまあ、「バックアップ必要とか当然書いてあるけど、まさかディスクのファームウェア上げたからって2台中2台ともおかしくなることねーだろ」と思い、むしろRAIDのミラー再構築とか走るとかったりーなー、と思い、システム停止して2台とも同時に変えてみたんですよね。

アップデートは普通に終わって、ディスクとしては健全に生きてるんですけどね。

まあもちろん、RAID、HDDときたら故障というぐらいで、「まさか」が起きるわけですよ!ある意味もう予想通り!

2台差し直して起動したら、2台ともNASが認識拒否しやがんの。なんでファームウェア入れ替えただけでディスク違うって信じ込むんだよー!中見てから判断しろよー!

もちろんNASに、無理矢理読み込むとか、データ非破壊再構築とか、そういうメニューはございません。NAS的には全面拒否の姿勢です。SSHとtelnetのpluginもenableしてあったけど、HDD領域読まないと使えないし。

でまあ、中身は、バックアップはどっかにあるはずだけどどこにあるのか分からないぐらいの感じのデータになっていてめんどくさいわけですよ。

でまあしょーがないから頑張って他のマシンから読み取ろうと戦いを始める。

Corega/Promise NAS は中に Promise のSATA RAIDチップを積んでるので、Software RAID じゃないんだよね。Mirroring でも、パーティーションは素ではないらしく、Acronis DiskDirector とかだとFSが見えない。

最近Macで生きていたので Desktop PC にはLinuxとか入れてないし、Ubuntu とか Knoppix のLive CDを使って見たんだけど、Xが上がっちゃうとうちのマシンのグラボうまく認識してくれなくて、画面が同期しない。Ubuntuってなんでテキストコンソールのシングルユーザーモードにできないの?

とかなんとかあって、Debian Live CD の rescue disk を使ってなんとか、ディスク操作できるまではたどり着く。

どうも Promise NAS 配下のディスクは、lvm2pv ってタイプでパーティーション一個作って、その中に lvm 使って認識させてるらしい。

vgscan

vgchange -a y

lvs

してなんとか認識したようである。 /dev/vg001/lv001 とかそんな感じ。

というわけでなんとかそこまで言ったので、NFSごしにマックの外付けディスクに吸い出して寝ました。

焦ってこんな作業をしていたら朝になってしまい、ちょっとだけ寝たけど起きたら頭がクラクラして気分が悪く、本日終了の巻。

午後になってナントカ行き交って出勤。そしてこっちはこっちで別のマシンのRAIDをいじる。そんな日。

zshにっき(2)

噂の先読み補完を使ってみた。

autoload -U compinit; compinit

もっとキモく感じるかと思ったけど、意外と違和感感じなかった。

書いてみようかと思ったがあんまり面白くないよなあ。

zshにっき(1)

zshの使い方を書いていく会議。

emacs キーバインド: bindkey -e

for 文

for i in *; hoge

  • ライブドアブログ