Metaphorical Dream

タグ:scst ( 13 ) タグの人気記事

やりたい事リスト

引き続きなんだけど、一般的な話題で行こう!

さらに一般的じゃない気がするけど。。。

◆=やりたい事
▼=誰かがやってくれそうな事

◆scst関連
 FCoE with scstの検証継続
  夢が膨らんで夜も眠れない
 
 mhvtl with scst
  ちょっと確認したいときのために修得しておきたい。
 
 iscsi with scst
  もう一度scstを使ってiscsiをおさらいしたい。
  scsi-target-utils+DRBDは継続キャッチアップするとして。

◆Multipath FC-SANの検証
 device-mapper-multipathなどなど。
  ようやくQLA2342*2個をゲットできたので。
  めでたしw
 
 Silkworm3250と3850をいじる
  Brocade製品技術はきちんと修得しておきたいので、
  基本的なところから攻めていこうかなと。

◆KVM&VMWareServerの相互変換
 メイン鯖のCentOS5.2→CentOS6への移行を鑑みて。

◆KVM with FCoE + Open vSwitch (+ Eucalyptus)
 Open vSwitchでFCoEトラフィックを転送できないだろうか?
 ほぼ確実にできないんだけど、できなかったときのPcapを採取して、オレの目で確かめたい。

◆OpenCAPWAPの継続キャッチアップ
 「WLCが無いからできない」という歴史を終わらせてやりたい。

◆Wi-Spyの動作確認
 電波が見えるようになりたい(笑)
 その前に諭吉の調達方法を検討せねば。

◆IPv6 anycast検証
 数ヶ月前から興味津々

▼VMWare View
 誰かがやってくれそうなので、ToS=0~1で廃棄閾値=75%くらいでも良いかなと。

うん!ピックアップしてみると、たくさんあるな。

ここからは、
 ・自主トレメニューに落とし込む。 ←誰にも教えられない。
 ・具体的なトレーニングを繰り返す。 ←上に同じく。ここが一番愉しい。
 ・最終的にはDocに残す。 ←ここが一番辛い。とっておきの技術だけは端折るw
ってことを実践しながら、
次に「やりたい事イメージ(やりたい事リストの一歩手前)」を膨らませていくと。

よし!寝るか。

[PR]
by mdesign21 | 2010-11-19 00:34 | Diary

Linux FCoE その4 インストール 手順 with 自動起動設定

10/30のBlogに記載した方法だと、
FCoE Targetを手動にて起動していましたが、
以下の方法であれば自動起動してくれます。

◆FCoE TargetとInitiatorのインストール手順 with FCoE Target自動起動手順に修正

追加修正箇所や注意点は以下に記載。

■追加修正箇所
 項番3-4を追加
 項番5-1-4を修正
 項番5-1-5を追加
 項番8-1を修正

■注意点
「◆FCoE TargetとInitiatorのインストール手順 with FCoE Target自動起動手順に修正」
の場合、
動作的には問題ないものの、"/etc/rc.d/init.d/scst start" を実行すると
必ず[失敗]の表示となりますが、気にしないでください。

"/etc/rc.d/init.d/scst status"を実行するとOKとなっており、
Initiator側からも正常に認識するので。
ちなみに、Initiator側でうまくTargetを認識しないときは、
迷わずInitiatorを再起動してください。

さらに、Initiator側でどうしてもTargetを認識しないときは、
「◆FCoE TargetとInitiatorのインストール手順」の通り、
手動で起動するようにしてください。


ちなみに、VMWare上では恐らくインストールできないと想定されます。

正確に言うとインストールは間違いなくできますが、
Initiator側からTargetを認識できない状態となります。
もしくは認識できたとしても、
fdiskなどができない=BlockDeviceとして使用できない
という状態なります。

なぜなら、今回の手順の場合、
FCoE TargetとInitiatorはDAS(直接接続)構成であることが必須なためです。

VMの場合、必ず仮想スイッチ(vSwitchやvDSも含む)に接続することになるため、
FCoEフレームを転送できない状態となります。

Pcapすると解りますが、FLOGIやPLOGIがうまく出来なかったり、
FLOGIやPLOGIの後にTarget側でRejectされます。

仮想FCoEスイッチとか開発されてくれたら嬉しいけど、
あんま意味ないか。。。


[PR]
by mdesign21 | 2010-10-31 17:05 | IT系

Linux FCoE その3 インストール 手順

Fedora13にてFCoE TargetとFCoE Initiatorをインストールする手順です。
重要なのは、SCST+FCSTによる"FCoE Target"のインストール方法かなと。

私の備忘録を一部抜粋しているだけなので、
内容についての保証はできません。

また、よほどのチャンレンジャーやLinuxDriverの開発者でもない限り、
本番環境での使用は厳禁だと思います。
検証環境やFCoEのお勉強用途として使用できるレベルと考えた方が無難です。
なぜか?「再起動するとOKになる」といった事がチラホラなので。

今回はGigabit Ethernet NICを使用した手順となるため、
IEEE DCB(別名CEEやらCisco DCEというヤツ)は、
withoutとなります。

というのも、
現時点では、IEEE DCBはHardwareによる実装が必要のようで、
FCoEに加えてIEEE DCBをサポートさせるには、
IEEE DCB対応の10Gbit Ethernet NICが必須だろうと想定しています。

んまぁ、ここでは規格化途中の流動的な細かい話を追跡しても、
徒労に終わるだけなので、IEEE DCBについては除外します。

そんなことよりも、
 「Fibre ChannelをEthernetでカプセル化する技術=FCoE」
のみに的を絞って記載したいと思います。

ちなみに、今回は予算の都合上、Intel EXPI9301CTを使用しますが、
私の想定では、Intel82599を搭載した型番:E10G42BTDAを使用すれば、
上記したIEEE DCBをサポートしたFCoEを動作させることも可能だと考えています。

なぜなら、Linux KernelのBuild時には、
DCBのサポート有無を選択できるようになっているためです。
 ※
 今回はKernelのmenu config実行時に、確認のみですが、
 IEEE DCBの項目も参照するように記載しました。

以下のリンクにインストール手順をtxtファイルでアップしました。
ブラウザにより、文字化けする場合には、S-JISにしてみてください。

◆FCoE TargetとInitiatorのインストール手順


正直なところ早さと確実さを優先した関係で、
少々ダサい手順となっている感があるw
と言いつつ、
スマートな手順も見つけたんだけど、
手順に落とし込むのが辛い(涙)


上記は2010/10/31に修正済み。
修正済み手順は以下に掲載。

◆FCoE TargetとInitiatorのインストール手順 with FCoE Target自動起動手順に修正

また修正箇所など詳細は2010/10/31のBlogに記載。



手順の最後におまけとして、
同じVLAN上で、FC,IPv4,IPv6のPingを行う手順を記載しました。
その際に取得したPcapファイルは以下のリンクからDLできます。

◆FCoE TargetとInitiatorのPcap結果


[PR]
by mdesign21 | 2010-10-30 03:20 | IT系

Linux FCoE その2

もったいぶっているワケではなく、もうちょい検証させてください。

とりあえず、ML115同士であれば、100%確実に実装できる手順までは落とし込めた。

けど、「敷居が高い」と思う人も居る。

んまぁ、「敷居が高い」と思うなら、最初から別にやらなくてもいいと思うけど、
それじゃあんまりなので、VM上でできるか?をチェックしようと思う。

あとは、「主目的=Protocolのお勉強」が、やっぱりメインになると思う。

実際、いじってて思うのは、まだまだテスト環境でも使用しづらい面もあるので。

とはいえ、諭吉さん数十人を集めるよりかは、
遥かに容易で愉しみながらお勉強できるレベル
という観点に的を絞れば充分過ぎると、
オレは思う。

[PR]
by mdesign21 | 2010-10-26 00:02 | IT系

Linux FCoE その1

Linux(Fedora13)とSCST FCST fcoe-utilsを使って、
FCoEのInitiatorとTargetの実装に成功したw

e0113173_1311843.jpg


1年くらい前から、あれやこれや模索していたのだけど、何とかここまで辿り着けたよ。

EtherフレームとFCフレームのごちゃまぜ感が
たまらなく愛しいと思えるようになってきたら
チャレンジしてみよう!

以下のLog類は何のことやら?感が否めないので、
後日整理してアップしよう。

これで今までPcapできなかったFCとも仲良くなれそうな気がする。

久々の会心の一撃にちょっぴり浮かれたい気分w

◆InitiatorのStatsの結果◆
[root@fedora132 ~]# fcoeadm -s eth1
eth1 interval: 1 Err Inv IvTx Link Cntl Input Input Output Output
Seconds TxFrames TxBytes RxFrames RxBytes Frms CRC Byte Fail Reqs Requests MBytes Requests MBytes
------- --------- ------------ --------- -------------- ---- ---- ---- ---- ---- --------- --------- --------- ---------
488 795519 828131712 6129 2970996 0 0 0 0 6 826 16384 1572 1056768
489 840343 874847980 6305 2978388 0 0 0 0 6 826 16384 1660 1056768
490 884268 920614052 6475 2985528 0 0 0 0 6 826 16384 1745 1056768
491 926471 964601044 6641 2992500 0 0 0 0 6 826 16384 1828 1056768

◆InitiatorのLog◆
[root@fedora132 ~]# fcoeadm -i eth1
Description: 82574L Gigabit Network Connection
Revision: 00
Manufacturer: Intel Corporation
Serial Number: 001B21570B9C
Driver: e1000e 1.0.2-k2
Number of Ports: 1

Symbolic Name: fcoe v0.1 over eth1
OS Device Name: host8
Node Name: 0x1000001B21570B9C
Port Name: 0x2000001B21570B9C
FabricName: 0x0000000000000000
Speed: 1 Gbit
Supported Speed: 1 Gbit
MaxFrameSize: 1452
FC-ID (Port ID): 0x010102
State: Online

[root@fedora132 ~]# fcoeadm -i eth1tt eth1
Interface: eth1
Roles: FCP Target, FCP Initiator
Node Name: 0x1000001B214982FA
Port Name: 0x2000001B214982FA
Target ID: 0
MaxFrameSize: 1452
OS Device Name: rport-8:0-0
FC-ID (Port ID): 0x010101
State: Online

LUN ID Device Name Capacity Block Size Description
------ ----------- ---------- ---------- ----------------------------
0 /dev/sdb 74.54 GB 512 SCST_BIO 7:0:0:0 (rev 210)


[root@fedora132 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 18:A9:05:55:73:DE
inet addr:192.168.11.117 Bcast:192.168.11.255 Mask:255.255.255.0
inet6 addr: fe80::1aa9:5ff:fe55:73de/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:193052 errors:0 dropped:0 overruns:0 frame:0
TX packets:100497 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:272114701 (259.5 MiB) TX bytes:11824883 (11.2 MiB)
Interrupt:18

eth1 Link encap:Ethernet HWaddr 00:1B:21:57:0B:9C
inet6 addr: fe80::21b:21ff:fe57:b9c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10418 errors:0 dropped:0 overruns:0 frame:0
TX packets:1574593 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4293224 (4.0 MiB) TX bytes:1702304812 (1.5 GiB)
Memory:fcee0000-fcf00000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)


◆TargetのLog◆
[root@fedora13 ~]# /usr/libexec/fcoe/fcc.sh
FC HBAs:
HBA Port Name Port ID State Device
host6 21:00:00:e0:8b:0e:1d:90 00:00:00 Online QLA2340 FW:v3.03.27 DVR:v8.02.01-k4
host7 20:00:00:1b:21:49:82:fa 01:01:01 Online eth1

host7 Remote Ports:
Path Port Name Port ID State Roles
7:0-1 20:00:00:1b:21:57:0b:9c 01:01:02 Online FCP Initiator

[root@fedora13 ~]# lv /etc/fcoe/cfg-eth1
## Type: yes/no
## Default: no
# Enable/Disable FCoE service at the Ethernet port
FCOE_ENABLE="yes"

## Type: yes/no
## Default: yes
# Indicate if DCB service is required at the Ethernet port
#DCB_REQUIRED="yes"
DCB_REQUIRED="no"

## Type: yes/no
## Default: yes
# Indicate if VLAN discovery should be handled by fcoemon
AUTO_VLAN="yes"

[root@fedora13 ~]# lv /etc/fcoe/cfg-eth1scst.conf
# Automatically generated by SCST Configurator v2.0.0.


HANDLER vdisk_blockio {
DEVICE 7:0:0:0 {
filename /dev/sdb1
}
}

TARGET_DRIVER fcst {
TARGET 20:00:00:1b:21:49:82:fa {
rel_tgt_id 1
enabled 1

LUN 0 7:0:0:0

GROUP host00 }
}
}

[root@fedora13 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:24:81:E1:B5:52
inet addr:192.168.11.116 Bcast:192.168.11.255 Mask:255.255.255.0
inet6 addr: fe80::224:81ff:fee1:b552/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:100400 errors:0 dropped:0 overruns:0 frame:0
TX packets:419992 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:24438612 (23.3 MiB) TX bytes:549897597 (524.4 MiB)
Interrupt:18

eth1 Link encap:Ethernet HWaddr 00:1B:21:49:82:FA
inet6 addr: fe80::21b:21ff:fe49:82fa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1574408 errors:0 dropped:0 overruns:0 frame:0
TX packets:10423 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1702276716 (1.5 GiB) TX bytes:4292162 (4.0 MiB)
Interrupt:18 Memory:fcee0000-fcf00000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

[PR]
by mdesign21 | 2010-10-21 01:40 | IT系

scst その7 SCSTインストール qla2x00tgtインストール時の画面出力

「scst その6」に引き続き、
コマンドを投入した際の画面出力をアップしておきます。

「scst その6」に記載した項番に紐付いているので、
項番ごとにどのような画面出力になるのか?を確認できます。

一部大量に出力されるものは省略してあります。
Blogのしょぼい文字数制限があるため、
txtファイルをアップします。

これまた私の備忘録の一部抜粋なので、
必ずしもこれ通りにいかなくても保証できないっす。
あしからず。

以下のtxtファイルをDLしてくださいませ。
インストール画面出力

文字化けしちゃう場合にはSJISで。

[PR]
by mdesign21 | 2010-04-29 11:06 | IT系

scst その6 SCSTインストール qla2x00tgtインストール

CentOS5.4にSCSTをインストールする手順です。
qla2x00tgtによるFC Targetのインストール方法とも言えるかな。

Openfiler2.3の場合、HBAを挿入するタイミングが肝になります。

しかし、以下に記載する方法であれば、最初からHBAを挿入した状態で、
qla2x00tgtによるFC Targetを実装することができました。

なお、以下に記載することは、私の備忘録を一部抜粋しているだけなので、
内容についての保証はできません。

【Hardware】
筐体:ML115G5
CPU:PhenomⅡ 945(もっと遅くてもOK)
Mem:W2U800CQ-2GL5J*2(こんなに積まなくてもOK)
HDD:ST3160023AS
HBA:QLogic QLA2342 or QLA2340
OS:CentOS5.4 x86_64 or CentOS5.4 x86(32bit版もOK)
Kernel:2.6.26


【OSインストール】
CentOS5.4 x86_64のインストールパッケージのカスタマイズ

デスクトップ環境
 全てOFF(GNOME,KDEも使わない)

アプリケーション
 エディタ→vim-enhancedのみ

開発
 開発ツール
 開発ライブラリ

サーバー
 全てOFF

ベースシステム
 ベースのみ

仮想化,クラスタリング,クラスタストレージ
 全てOFF

!コメント!
OSインストールに10分程度掛かりますので、
CoffeeBreakでもどうぞ!

【scstのインストール手順】
1.事前準備
1-1.ドライバの確認
lspci | grep Fibre
dmesg | grep qla
cat /sys/class/fc_host/host?/port_name

1-2.ファームのDL
cd /lib/firmware/
wget ftp://ftp.qlogic.com/outgoing/linux/firmware/ql2300_fw.bin

1-3.Linux KernelソースのDL
cd /usr/src
wget ftp://ftp.iij.ad.jp/pub/linux/kernel/linux/kernel/v2.6/linux-2.6.26.tar.gz
tar xvf linux-2.6.26.tar.gz
ln -s /usr/src/linux-2.6.26 linux
ln -s /usr/src/linux-2.6.26 kernel

1-4.scstソースのDL
cd /root
svn co https://scst.svn.sourceforge.net/svnroot/scst

2.scstパッチ当て
2-1.scstパッチのコピー
cd /root/scst/trunk
cp /root/scst/trunk/scst/kernel/scst_exec_req_fifo-2.6.26.patch /usr/src

2-2.scstパッチをKernelに当てる
cd /usr/src
patch -p0 < scst_exec_req_fifo-2.6.26.patch

2-3.qla2xドライバの移動&ln貼り付け
cd /root/scst/trunk
mv /usr/src/linux/drivers/scsi/qla2xxx /usr/src/linux/drivers/scsi/qla2xxx_org
ln -s /root/scst/trunk/qla2x00t /usr/src/linux/drivers/scsi/qla2xxx

3.KernelのBuild
3-1.Linux KernelのMakefile設定
cd /usr/src/linux
make menuconfig

!コメント!
 以下のメッセージが表示された場合は
 ターミナル(TeraTermなど)の画面サイズが小さ過ぎます。
  Your display is too small to run Menuconfig!
  It must be at least 19 lines by 80 columns.
  make[1]: *** [menuconfig] エラー 1
  make: *** [menuconfig] エラー 2

3-1-1.FC targetモードの確認
make menuconfigコマンド投入後に表示されたGUIライクな画面にて、
以下の項目を選択していきます。

Device Drivers->
SCSI device support->
SCSI low level drivers->
Qlogic 2xxx target mode support

以下のように表示されていることを確認
[*]が[ ]なっていたりしたら、以下の通りに設定してください。

QLogic QLA2XXX Fibre Channel Support
[*] QLogic 2xxx target mode support (NEW)
[*] Disable initiator mode for ports with enabled target mode (NEW)

3-1-2.CONFIG_NOHIGHMEMをOFFに設定(x86の場合のみ=x86_64では項目自体が無い)

Processor type and features->
High Memory Support (64GB)->

以下のように表示されていることを確認
(X)が( )なっていたりしたら、以下の通りに設定してください。
(X) off
( ) 4GB
( ) 64GB

3-1-3.設定の保存
Exitにて最初の画面に戻ってください。
以下の項目を選択し保存してください。

Save an Alternate Configuration File

最後は、最初の画面に戻ってExitを選択すれば、
元のプロンプト([root@ ~]#)に戻ります。

3-2.Makefikeの微修正
`uname -r`の出力にて、Kernel Version 2.6.26の後に
Buildしていることを明示するため、「-scst」を付与します。
(2.6.26 → 2.6.26-scstとして生成&表示させるという意味です。)

cd /usr/src/linux
cp Makefile Makefile_org
vi Makefile

viの画面が表示されたら、以下の項目を変更
EXTRAVERSION =

EXTRAVERSION = -scst

!コメント!
本項はOptionです。
但し、3-4以降の項目でコマンドを
そのままコピペしたい方は本項を実施してください。
3-4以降は、2.6.26-scstでKernelをBuildした想定で進めます。

3-3.Linux KernelのBuild
make bzImage && make modules && make modules_install && make install

!コメント!
30分くらい掛かりますので、
お風呂にでも入ってサッパリしちゃってください

3-4.新KernelをGRUBメニューへ追加
3-4-1.x86_64(64bit版)の場合
installkernel 2.6.26-scst arch/x86_64/boot/bzImage System.map

3-4-2.x86(32bit版)の場合
installkernel 2.6.26-scst arch/i386/boot/bzImage System.map

3-5.起動Kernelの選択
vi /boot/grub/menu.lst

以下の項目を0に設定
default=1

default=0

!コメント!
新Kernelが最初に起動されるように設定します。
Windowsライクに言うと"c:\boot.ini"を書き換える作業です。

3-6.再起動
shutdown -r now

4.scst&qla2x00tgtの設定(make&installやサービス設定など諸々)
4-1.再度ドライバの確認
lspci | grep Fibre
dmesg | grep qla
cat /sys/class/fc_host/host?/port_name

少なくても"dmesg | grep qla"にて、
以下の表示が出力されればOKでしょう。
光ケーブルが挿入されてないぞ!と怒られていますが。

qla2xxx 0000:01:08.0: Cable is unplugged...
qla2xxx 0000:01:08.1: Cable is unplugged...

4-2.scstのdebugモードからreleaseモードへの変更
cd /root/scst/trunk
make debug2release

出力結果より、以下のエラーが表示されないことを確認
scst: disagrees about version of symbol struct_module

表示される場合には、ご愁傷様です。
以下を実施後、make bzImage無しで、3-3.を再度実行してください。
cd /usr/src/linux
make oldconfig
make clean
rm -rf /lib/modules/`uname -r`

!コメント!
30分待ちは辛いので、
もう一回お風呂にでも入って頭をCoolDownしてください。

4-3.scst,qla2x00t,qla2x00-target,scstadminのコンパイル&インストール
4-3-1.scstのmake&install
cd /root/scst/trunk/scst/src
make all
make install

4-3-2.qla2x00tのmake&install
cd /root/scst/trunk/qla2x00t
make

!コメント!
本項が本当に必要か?は未確認です(不要かもしれない)ので、
おまじないだと思ってください。
個人的には不要と思ってますが。。

4-3-3.qla2x00-targetのmake&install
cd /root/scst/trunk/qla2x00t/qla2x00-target/
make
make install

4-3-4.scstadminのmake&install
cd /root/scst/trunk/scstadmin
make
make install

4-4.qla2xxxのドライバをln
以下のコマンドを実施します。
ls -Fal /lib/modules/2.6.26-scst/extra

"qla2xxx.ko"が無ければ、以下のコマンドにてln
ln -s /lib/modules/2.6.26-scst/kernel/drivers/scsi/qla2xxx/qla2xxx.ko /lib/modules/2.6.26-scst/extra/qla2xxx.ko

4-5.dev_handlersの確認
ls -Fal /lib/modules/2.6.26-scst/extra/dev_handlers

最低でも以下のハンドラが表示されればOK
scst_vdisk.ko
scst_disk.ko

その他には以下のようなものがあります。
scst_cdrom.ko
scst_changer.ko
scst_modisk.ko
scst_processor.ko
scst_raid.ko
scst_tape.ko
scst_user.ko

4-6.scst,qla2x00関連モジュールのmodprobe
modprobe scst
modprobe qla2x00tgt
modprobe qla2xxx
modprobe scst_disk
modprobe scst_vdisk

4-7.qla2x00tのサービススクリプト修正
vi /etc/rc.d/init.d/qla2x00t
#KERNEL_MODULES="qla2x00t"

KERNEL_MODULES="qla2x00tgt"

!コメント!
何で修正するのか?は、修正しないで、
qla2x00tをスタートすればわかります。
ご愁傷様にはならないので、興味本位で試してOKです。

4-8.scstのサービススクリプト修正
vi /etc/rc.d/init.d/scst
#SCST_MODULES="scst scst_disk scst_vdisk"

SCST_MODULES="scst qla2x00tgt scst_disk scst_vdisk"

!コメント!
こちらも、4-7.と同様です。
たぶん、scstのソースをよく読んで、2-3をきちんと設定すれば、
4-7と4-8は不要になるんじゃないか?と想定しています。

4-9.scst.confのファイル初期化
scstadmin -WriteConfig /etc/scst.conf

!コメント!
初回起動時は、/etc/scst.confが無いので、
とりあえず、/etc/scst.confを生成する。

4-10.scst,qla2x00tのサービス開始
/etc/rc.d/init.d/qla2x00t start
/etc/rc.d/init.d/scst start

4-11.サービス開始確認
scstadmin -session

以下のような表示が出力されれば、とりあえずOKです。
[root@fct01 scstadmin]# scstadmin -session
Collecting current configuration: done.

Target Name Initiator Name Group Name Command Count

All done.


5.scstadminによる管理
ここから先は、FC InitiatorをDAS接続していることを想定しています。
そもそも、FC Targetが正常動作しているか?は、
FC Initiatorが居ないとお話にならないので。

5-1.自サーバのHBAのWWPN確認
cat /sys/class/fc_host/host?/port_name

5-2.Target DeviceのEnable化
scstadmin -enable 0x210000e0xxxxxxxx

5-3.グループの設定
scstadmin -addgroup GROUP00

5-4.ユーザ追加&グループへ登録
scstadmin -adduser 21:00:00:e0:xx:xx:xx:xx -group GROUP00

!コメント!
21:00:00:e0:xx:xx:xx:xx=FC InitiatorのWWPNを記載

5-5.ボリューム作成
scstadmin -adddev VOL00 -handler vdisk -path /dev/sda3

!コメント1!
/dev/sda3をvdiskとして、VOL00という名前で作成

!コメント2!
上記5-3では、/dev/sda3をBlockDeviceとして指定しました。
以下の方法であれば、ImageFileとして指定可能です。
dd if=/dev/zero of=/mnt/disk bs=1024k count=3072

/mnt配下にdiskという名前で3GBのImageFileを生成した後、
以下のように設定することも可能。
scstadmin -adddev VOL00 -handler vdisk -path /mnt/disk

!コメント3!
本項を実施すると、Errorが表示される場合があります。
その際、一番手っ取り早いWorkaroundは、新しい別のHDDを一発追加することです。
それが出来ない場合には、以下のように/dev/sda3をfdiskして、
一発Rebootした後、再度scstadmin -adddevを実施してみてください。

[root@fct01 ~]# fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 3837 30716280 8e Linux LVM
/dev/sda3 3838 19457 125467650 83 Linux
 ※1
 その他のPartionは、
  /dev/sda1=/boot
  /dev/sda2=/
 です。
 ※2
 Errorが表示される原因については、私も切り分けしきれていません。

5-6.ボリュームをグループにアタッチ
scstadmin -assigndev VOL00 -group GROUP00 -lun 0

!コメント!
いわゆるZoningです。
 VOL00をLUN 0として設定
 GROUP00に所属するユーザ(=FC InitiatorのWWPN)からVOL00へのアクセスを許可

5-7.設定の保存
scstadmin -WriteConfig /etc/scst.conf

5-8.設定ファイルの確認
lv /etc/scst.conf

ここまでで手順は完了です。

上記を実施した後、VMWare ESX4などでストレージの設定をすれば、
2010年 04月 28日に記載した「scst その4」のような画面で、
ESXがFC Targetを認識してくれます。

6.その他(いろいろな確認方法など)
6-1.認識済みFC Targetデバイスの確認
cat /proc/scsi_tgt/scsi_tgt

6-2.自サーバHBAのWWPNを確認
cat /sys/class/fc_host/host?/port_name

6-3.FC InitiatorのWWPNを確認
scstadmin -session

6-4.設定ファイル変更後の設定反映
scstadmin -config /etc/scst.conf

!コメント!
"vi /etc/scst.conf"にて、直接設定ファイルをゴリゴリいじった後、
設定を反映させたい場合のコマンド

6-5.その他scstadminのオプション
"scstadmin --help"で要確認

もしくは、以下のDocでPerlソースの詳細を確認しても良いと思います。
/root/scst/trunk/scstadmin/scstadmin

6-6.WWPNのフォーマット説明
以下、通常はありえないWWPNですが、
説明用に全て異なる値を書いています。

WWPN例
21:aa:bb:cc:dd:ee:ff:00

2
 HAA bits
  Hex:1=IEEE
  Hex:2=IEEE extended

1:aa
 Reserved
 Node内 N_portID

bb:cc:dd
 IEEEによるアサイン値(OUI)

ee:ff:00
 ベンダ固有の値

[PR]
by mdesign21 | 2010-04-29 01:23 | IT系

scst その5

一応、こんなんも載せておく。
って言いながら、wwnは伏せておく。
小心者なので、すいません。

(1)scst
[root@fct01 ~]# dmesg | grep scst
scst: Attached to scsi0, channel 0, id 0, lun 0, type 0
scst: Attached to scsi1, channel 0, id 0, lun 0, type 0
scst: Attached to scsi4, channel 0, id 0, lun 0, type 5
scst: Processing thread scsi_tgt0 (PID 2654) started
scst: Processing thread scsi_tgt1 (PID 2655) started
scst: Processing thread scsi_tgt2 (PID 2656) started
scst: Processing thread scsi_tgt3 (PID 2657) started
scst: Init thread started, PID 2658
scst: Task management thread started, PID 2659
scst: Management thread started, PID 2660
scst: SCST version 2.0.0-pre1-procfs loaded successfully (max mem for commands 2001MB, per device 800MB)
scst: Enabled features: TRACING
scst: Target 21:00:00:e0:xx:xx:xx:xx (rel ID 1) for template qla2x00tgt registered successfully
scst: Target 21:01:00:e0:xx:xx:xx:xx (rel ID 2) for template qla2x00tgt registered successfully
scst: Target template qla2x00tgt registered successfully
scst: Device 0:0:0:0: TST 0, QUEUE ALG 0, SWP 0, TAS 0, D_SENSE 0, has_own_order_mgmt 1
scst: Device 1:0:0:0: TST 0, QUEUE ALG 0, SWP 0, TAS 0, D_SENSE 0, has_own_order_mgmt 1
scst: Device handler "dev_disk" for type 0 registered successfully
scst: Device handler "dev_disk_perf" for type 0 registered successfully
scst: Virtual device handler vdisk_fileio for type 0 registered successfully
scst: Virtual device handler vdisk_blockio for type 0 registered successfully
scst: Virtual device handler vdisk_nullio for type 0 registered successfully
scst: Virtual device handler vcdrom for type 5 registered successfully

(2)qla2x
[root@fct01 ~]# dmesg | grep qla
qla2xxx 0000:01:08.0: Found an ISP2312, irq 19, iobase 0xffffc20000c4e000
qla2xxx 0000:01:08.0: Configuring PCI space...
qla2xxx 0000:01:08.0: Configure NVRAM parameters...
qla2xxx 0000:01:08.0: Verifying loaded RISC code...
scsi6 : qla2xxx
qla2xxx 0000:01:08.0:
qla2xxx 0000:01:08.1: Found an ISP2312, irq 18, iobase 0xffffc20000c70000
qla2xxx 0000:01:08.1: Configuring PCI space...
qla2xxx 0000:01:08.1: Configure NVRAM parameters...
qla2xxx 0000:01:08.1: Verifying loaded RISC code...
scsi7 : qla2xxx
qla2xxx 0000:01:08.1:
qla2xxx 0000:01:08.0: Cable is unplugged...
qla2xxx 0000:01:08.1: Cable is unplugged...
scst: Target 21:00:00:e0:xx:xx:xx:xx (rel ID 1) for template qla2x00tgt registered successfully
qla2x00t(0): 64 Bit PCI addressing enabled
scst: Target 21:01:00:e0:xx:xx:xx:xx (rel ID 2) for template qla2x00tgt registered successfully
qla2x00t(1): 64 Bit PCI addressing enabled
scst: Target template qla2x00tgt registered successfully
qla2x00t(0): Enabling target mode
qla2xxx 0000:01:08.0: Performing ISP abort - ha= ffff81024dc88608.
qla2xxx 0000:01:08.0: Cable is unplugged...

[PR]
by mdesign21 | 2010-04-28 23:41 | IT系

scst その4

とりあえず完了。

OK3
 CentOS5.4 x86_64
 kernel2.6.26

手順は後日アップするとして、その後の動確まで実施。

こんなんでOKでしょうか。
e0113173_23134392.jpg


これにて、DAS(Direct Attached Storage)検証は完了ってことで、
この勢いでFC-SANへ突入したい。

もし、FCスイッチをいじってみて、天が降りてきたら、
あと1~2台、FCスイッチを発注しちゃうかもしれん。

実際、DAS検証をやってみた感想として、
 ・PreBoot時のHBA画面(※)にてTargetデバイスが認識されたとき
 ・scstを使ってHBA経由でファイルの読み書きができたとき
すごい単純に「うぉ、これ、おもしれぇ~かも?」と思ったから。
 ※
 BIOS画面って言ってもいいのかな?

FCスイッチを介せば、FCフレームのキャプチャってできるんだろうか。。。

[PR]
by mdesign21 | 2010-04-28 23:24 | IT系

scst その3

これで概ね手順が把握できたw

NG3
 CentOS5.4 x86_64
 kernel2.6.33

OK2
 CentOS5.4 x86_64
 kernel2.6.26

NG3の場合、KernelPanicになっちまった(涙)

x86とx86_64の大きな違いは、
make configする際、以下の項目が無いこと。

#grep -i highmem /usr/src/linux/.config

 CONFIG_NOHIGHMEM=y
 # CONFIG_HIGHMEM4G is not set
 # CONFIG_HIGHMEM64G is not set

「How to configure QLogic target driver for 23xx adapters.」では、
DefaultがCONFIG_HIGHMEM4G=yのところを、
上記項目のように変更しなさいと記載されているんだけど、
x86_64だと上記項目自体が無くなってたw

仕方が無いので、OK2でやったところ、
最後の方は小技を使いながらだけど、
何とかscst qla2x00tgtを正常起動することができたw

ここまでくれば、後は
 -adddev
 -asigndev
 target_mode_enabled
するくらいなので、雑作も無いこと。

念のため、もう一回、同じ手順を繰り返してみて、
確実なMy手順Docに落とし込みたい。

っていうか、平日にKernelBuild*2連チャンは辛いっす。

あと、GW(ゲートウェイではない)中は、
Silkworm3250(発注済)を交えてゴリゴリとやるかね。

必要な部材は全て揃うはずなので。

[PR]
by mdesign21 | 2010-04-27 02:40 | IT系