2011年11月21日月曜日

テスト


Webサーバを使ったテストです。このサイトの本来の目的とは関係ありません。

2011年9月29日木曜日

ハードウェアRAID

最近、新しいT3-1でシステムを構築しております。
ZFSやら、SASインタフェースやら、知らないものがいっぱいあって困ります。

ハードウェアRAIDも作り方が変わりました。
T-5120のときは、raidctlというSolarisのコマンドで作成しました。
# raidctl -c c1t0d0 c1t1d0
こんな感じです。

でも、T3-1で、raidctlを打つと、何の反応もなくプロンプトに戻ります。
Solarisのコマンドなので、コマンドとしては存在しているのだけど、実態としてはマザーボード上のRAIDコントローラを操作していると思われるので、コントローラそのものがないからなんだろうな、と思います。

で、調べたところ、okプロンプトから作るのだ、ということがわかりました。
【やりかた】
1.対象のコントローラを選ぶ
{0} ok devalias (これで一覧を表示)
{0} ok select scsi0 (scsi0を選択)

2.配下のディスク一覧を確認
{0} ok show-children

こんなふうに出てきます。

FCode Version 1.00.54, MPT Version 2.00, Firmware Version 5.00.17.00

Target 9
Unit 0 Disk HITACHI H106030SDSUN300G A2B0 585937500 Blocks, 300 GB
SASDeviceName 5000cca01249b908 SASAddress 5000cca01249b909 PhyNum 0
Target a
Unit 0 Disk HITACHI H106030SDSUN300G A2B0 585937500 Blocks, 300 GB
SASDeviceName 5000cca0127fcb50 SASAddress 5000cca0127fcb51 PhyNum 1

'Target'の後の数字やアルファベットが、物理ディスクの識別子です。
(どうして9からなんだろう?)

3.RAIDを作成する
{0} ok 9 a create-raid1-volume

識別子を2つ指定して、RAIDの形式を指定するだけです。簡単です。

Target 9 size is 583983104 Blocks, 298 GB
Target a size is 583983104 Blocks, 298 GB
The volume can be any size from 1 MB to 285148 MB
What size do you want? [285148 ]
Volume size will be 583983104 Blocks, 298 GB
Enter a volume name: [0 to 15 characters] ABCDE
Volume has been created

この状態で、いきなりディスクの同期が始まります。
raidctlのときは、途中で再起動したりすると失敗したりしましたが、こちらは大丈夫のようです。

ただし、この状態で、論理的にはディスクの中身が壊れた状態になっています。
Corrupt label; wrong magic number
というのが出ます。
この場合、formatコマンドで、見えるようになった論理ボリュームを選択して、ラベルの作成を行えば、OSのインストールなどができる状態になります。

あ、そうそう。RAIDのペアを選択した時に、困った問題がありました。
今回のサーバは、2台のドライブがスロットの0番と4番に取り付けられていたのですが、どうやら、コントローラの方は、0~3と、4~7で2つに分かれているらしく、scsi0を選択すると、配下のディスクが1つしか見えませんでした。
これでは困るので、4番のディスクを外して、1番に付け直したところ、両方とも認識されて、RAIDボリュームが作成できるようになりました。
負荷分散のために、良かれと思ってこうやって取り付けてくれたのだろうとは思いますが、やっかいな話です。

2011年5月11日水曜日

route -p add の保存先

ルーティング情報を追加する時に、"route -p add"というオプションを付けると、再起動後も有効になります。
これまでは、/etc/rc2.d などの中に、routeコマンドを並べたスクリプトを置いて、これで起動時にルーティング情報を追加していたのですが、必要なくなりました。

しかし、1つ問題があって、起動中のシステムのルーティングテーブルを、"netstat -rn (もしくは-rnv)"で参照しても、どれが再起動後も有効で、どれがなくなってしまうかがわかりません。
これを判別するためには、-pで登録された内容の出力先を知っている必要があります。
で、その場所ですが、

/etc/inet/static_routes

でした。
ここに、routeコマンドの後ろに続く引数の形ですべて書かれているそうです。

参考 http://blogs.oracle.com/yappri/entry/static_routes

2011年4月9日土曜日

lhaz

lzh形式、Windows7以降は標準でサポートされたようなので、もう、フリーソフトは必要ないかもしれませんが、自分の環境はほとんど、VistaとXPなので、まだ必要です。

環境を新しくして、インストールしようとするたびに、いつも忘れるので、覚えておかないと。
わたくしの推奨する、lzhなどの解凍プログラムのNo.1は、'lhaz'です。
http://www.vector.co.jp/soft/winnt/util/se107748.html

どこがいいところだっけ?忘れてしまったのですが、むやみやたらと関連づけしたりしないのと、ダブルクリックしてもいきなり圧縮解凍したりしないでメニューが出るところなどがよいです。また、tgzとか、使う人しか使わないような形式にも、それなりに対応しているところがありがたいですね。

2011年4月6日水曜日

hostnameファイルの掟

Solaris10で、インタフェースにIPアドレスをアサインする際に、
/etc/hostname.e1000g0
といったファイルを作成しますが、とても大事な決まりがございます。

ファイルの末尾は改行せずに、1行のファイルにしなくてはなりません!

これを守らないと、少なくともわたくしが試したケースでは、サブネットマスクがおかしくなります。(その結果、全体のルーティングテーブルがぐちゃぐちゃになってしまいました。)

このような状況でした。
・hostname.e1000g0に下記のように記述(空白行を付けていた)

123.123.123.123
(空白行)

・/etc/netmasksで、このアドレスが属するサブネットのマスクを、'255.255.255.252'と設定

・システムを再起動

これで、起動後に'ifconfig -a'で確認すると、サブネットマスクが'255.255.0.0'になっていました。(結果的に、'123.123.xxx.xxx'向けのトラフィックは、すべてこのインタフェースから出て行こうとするようになって、ほぼすべての通信が止まりました。)

空白行を削除して再起動すると、サブネットマスクは正しく戻りました。ふぅ。

昔のUNIXの設定ファイルだと、スペースとタブとか、末尾を改行するかしないかで動きが変わってくるものがいろいろあったと思いますが、今でも結構健在です。
恐るべし...

複数のIPアドレスのアサイン

V2000のネットワークインタフェースに、複数のIPアドレスを設定することになりました。
方法はとても簡単で、hostname.e1000g1:1というファイルを作って、IPアドレスかホスト名を記述して、再起動すればOKです。

(/etc/hostname.e1000g1が、e1000g1というインタフェースの1つめのIPアドレスの定義用です。2つめから、':1',':2'となっていきます。)

実際には今回は、ループバック(サーバで内部的に持っているIPアドレス)のアドレスを1つ追加する、というトリッキーなことをやりました。この場合も、方法としては同様で、/etc/hostname.lo0:1というファイルを作ります。(こちらに関しては、hostname.lo0というファイルはありません。lo0には、デフォルトで、127.0.0.1が割り当てられています。)
ファイルの中身ですが、今回はサブネットなしのホストアドレスだったので、下記のように記述しました。

123.123.123.123/32

このアドレスを何に使ったかは話すと長いので省略しますが、再起動すると、'ifconfig -a'コマンドなどでちゃんと認識されました。

ただ1つ、とても大事な注意事項があります!
上記のファイルの中身ですが、改行を入れず、1行だけのファイルにしておかなくてはなりません。
何がどうまずいかは別のエントリに書きます。

(すごく久しぶりの投稿になりました。1年ちょっとの間、仕事が切なすぎて書けませんでした。)