6.Advanced設定セッテイ 一部イチブ作成サクセイチュウ
6-2.Storage
6-2-1.NFS 検証ケンショウち イマさらアラタめてやらなくてもよいがしてるけど、ナヤチュウ
6-2-2.iSCSI 検証ケンショウみ Docヨウネタアツめ&校正コウセイ思案中シアンチュウ 2-2.とほぼ同一ドウイツ内容ナイヨウ
6-2-3.FC_DAS構成コウセイヘン
6-2-3.FC_DAS構成コウセイヘン
!コメント1!
esx41およびesx42にHBAを搭載トウサイし、DAS構成コウセイにてデータストアとしてFC targetを参照サンショウするように設定セッテイします。
そこで、まずは構成コウセイイメージを以下イカ掲載ケイサイします。
1-2-1.検証ケンショウ構成図コウセイズ掲載ケイサイした右側ミギガワにFC targetヨウのServer4(fct01.luxion.biz)が追加ツイカしました。
HBAはQLogicのQLA234xを使用シヨウしています。
FC Target=QLA2342
FC Initiator(esx41とesx42)=QLA2340
Server1でも出来デキないことはいのですが、FCはハジめてだったので物理ブツリサーバ筐体キョウタイをもう1追加ツイカしました。
!コメント2!
作業サギョウ概要ガイヨウ以下イカ記載キサイします。
A.事前準備
B.scstパッチ当て
C.KernelのBuild
D.scst_qla2x00tgtの設定(make&installやサービス設定など諸々)
E.scstadminによる管理
F.VMWareESX側の設定
G.簡易動作確認
H.その他(いろいろな確認方法など)
A-Dの作業サギョウオコナうことにより、QLogic 2xxxドライバがFC targetとして動作ドウサするように設定セッテイします。
それと同時ドウジにQLogic 2xxxドライバのFC initiator modeをDisableにします。
Eの作業サギョウにて、FC Targetの設定セッテイ実施ジッシすることにより、FC Initiatorから可能カノウなBlock Deviceを準備ジュンビします。
Fの作業サギョウにて、ESXからFC Targetへデータストアとしてきできるように設定セッテイします。
GとHはおまけです。
それではってみましょう!
!コメント3!
ベツ資料シリョウからの抜粋バッスイなど諸々モロモロ事情ジジョウで、プロンプトの記載キサイ省略ショウリャクしています。
A.事前準備
B.scstパッチ当て
C.KernelのBuild
D.scst_qla2x00tgtの設定(make&installやサービス設定など諸々)
E.scstadminによる管理
F.VMWareESX側の設定
G.簡易動作確認
H.その他(いろいろな確認方法など)
A.事前準備
A-1.Hardware
以下イカ、1-1-6.Server 4より抜粋バッスイ
1-1-6.Server 4
CPU:
 AMD Phenom X4 945*1
Mem:
 CFD W2U800CQ-2GL5J*2
NIC:
 追加ツイカNIC
HBA:
 Qlogic QLA2342
ホストメイ
fct01.luxion.biz
OS:
CentOS5.4 x86_64
Kernel:
2.6.26
用途ヨウト
FC Target
A-2.OSインストール
CentOS5.4 x86_64のインストールパッケージのカスタマイズ
デスクトップ環境
 全てOFF(GNOME,KDEも使わない)
アプリケーション
 エディタ→vim-enhancedのみ(ワタシコノみ)
開発
 開発ツール
 開発ライブラリ
サーバー
 全てOFF
ベースシステム
 ベースのみ
仮想化,クラスタリング,クラスタストレージ
 全てOFF
!コメント!
OSインストールに10分程度掛かりますので、
CoffeeBreakでもどうぞ!
A-3.ドライバの確認
lspci | grep Fibre
dmesg | grep qla
cat /sys/class/fc_host/host?/port_name
A-4.ファームのDL
cd /lib/firmware/
wget ftp://ftp.qlogic.com/outgoing/linux/firmware/ql2300_fw.bin
A-5.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
A-6.scstソースのDL
cd /root
svn co https://scst.svn.sourceforge.net/svnroot/scst
B.scstパッチ当て
B-1.scstパッチのコピー
cd /root/scst/trunk
cp /root/scst/trunk/scst/kernel/scst_exec_req_fifo-2.6.26.patch /usr/src
B-2.scstパッチをKernelに当てる
cd /usr/src
patch -p0 < scst_exec_req_fifo-2.6.26.patch
B-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
C.KernelのBuild
C-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
C-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)
C-1-2.CONFIG_NOHIGHMEMをOFFに設定(x86の場合のみ=x86_64では項目自体が無い)
Processor type and features->
High Memory Support (64GB)->
以下のように表示されていることを確認
(X)が( )なっていたりしたら、以下の通りに設定してください。
(X) off
( ) 4GB
( ) 64GB
C-1-3.設定の保存
Exitにて最初の画面に戻ってください。
以下の項目を選択し保存してください。
Save an Alternate Configuration File
最後は、最初の画面に戻ってExitを選択すれば、
元のプロンプト([root@ ~]#)に戻ります。
C-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です。
但し、C-4以降の項目でコマンドを
そのままコピペしたい方は本項を実施してください。
C-4以降は、2.6.26-scstでKernelをBuildした想定で進めます。
C-3.Linux KernelのBuild
make bzImage && make modules && make modules_install && make install
!コメント!
30分くらい掛かりますので、
お風呂にでも入ってサッパリしちゃってください
C-4.新KernelをGRUBメニューへ追加
C-4-1.x86_64(64bit版)の場合
installkernel 2.6.26-scst arch/x86_64/boot/bzImage System.map
C-4-2.x86(32bit版)の場合
installkernel 2.6.26-scst arch/i386/boot/bzImage System.map
C-5.起動Kernelの選択
vi /boot/grub/menu.lst
以下の項目を0に設定
default=1
default=0
!コメント!
新Kernelが最初に起動されるように設定します。
Windowsライクに言うと"c:\boot.ini"を書き換える作業です。
C-6.再起動
shutdown -r now
D.scst_qla2x00tgtの設定(make&installやサービス設定など諸々)
D-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...
D-2.scstのdebugモードからreleaseモードへの変更
cd /root/scst/trunk
make debug2release
出力結果より、以下のエラーが表示されないことを確認
scst: disagrees about version of symbol struct_module
表示される場合には、ご愁傷様です。
以下を実施後、make bzImage無しで、C-3.を再度実行してください。
cd /usr/src/linux
make oldconfig
make clean
rm -rf /lib/modules/`uname -r`
!コメント!
30分待ちは辛いので、
もう一回お風呂にでも入って頭をCoolDownしてください。
D-3.scst,qla2x00t,qla2x00-target,scstadminのコンパイル_インストール
D-3-1.scstのmake_install
cd /root/scst/trunk/scst/src
make all
make install
D-3-2.qla2x00-targetのmake_install
cd /root/scst/trunk/qla2x00t/qla2x00-target/
make
make install
D-3-3.scstadminのmake_install
cd /root/scst/trunk/scstadmin
make
make install
D-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
D-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
D-6.scst,qla2x00関連モジュールのmodprobe
modprobe scst
modprobe qla2x00tgt
modprobe qla2xxx
modprobe scst_disk
modprobe scst_vdisk
D-7.qla2x00tのサービススクリプト修正
vi /etc/rc.d/init.d/qla2x00t
#KERNEL_MODULES="qla2x00t"
KERNEL_MODULES="qla2x00tgt"
!コメント!
何で修正するのか?は、修正しないで、
qla2x00tをスタートすればわかります。
ご愁傷様にはならないので、興味本位で試してOKです。
D-8.scstのサービススクリプト修正
vi /etc/rc.d/init.d/scst
#SCST_MODULES="scst scst_disk scst_vdisk"
SCST_MODULES="scst qla2x00tgt scst_disk scst_vdisk"
!コメント!
こちらも、D-7.と同様です。
たぶん、scstのソースをよく読んで、2-3をきちんと設定すれば、
D-7とD-8は不要になるんじゃないか?と想定しています。
D-9.scst.confのファイル初期化
scstadmin -WriteConfig /etc/scst.conf
!コメント!
初回起動時は、/etc/scst.confが無いので、
とりあえず、/etc/scst.confを生成する。
D-10.scst,qla2x00tのサービス開始
/etc/rc.d/init.d/qla2x00t start
/etc/rc.d/init.d/scst start
D-11.サービス開始確認
scstadmin -session
以下のような表示が出力されれば、とりあえずOKです。
[root@fct01 scstadmin]# scstadmin -session
Collecting current configuration: done.
Target Name Initiator Name Group Name Command Count
All done.
E.scstadminによる管理
E-1.自サーバ(fct01)のHBAのWWPN確認
cat /sys/class/fc_host/host?/port_name
E-2.Target DeviceのEnable化
scstadmin -enable 0x210000e0xxxxxxxx
!コメント!
ここで指定シテイしているWWPN(0x210000e0xxxxxxxx)は、E-1にて確認カクニンしたWWPNとなります。
fct01はQLA2342を搭載トウサイしているので、E-1ではWWPNが2つ表示ヒョウジされるため、
2つともEnableしましょう。
E-3.グループの設定
scstadmin -addgroup GROUP00
E-4.ユーザ追加_グループへ登録
scstadmin -adduser 21:00:00:e0:xx:xx:xx:xx -group GROUP00
!コメント!
ここで指定シテイするWWPN(21:00:00:e0:xx:xx:xx:xx)は、FC InitiatorのWWPNを記載
scstadmin -session コマンドにて確認カクニンできます。
またはesx41やesx42を再起動して、BIOS画面ガメンにて参照サンショウ可能カノウです。
esx41とesx42トモにGROUP00のLUNにきさせますので、
esx41のWWPNとesx42のWWPNを登録トウロクしてください。
E-5.ボリューム作成
scstadmin -adddev VOL00 -handler vdisk -path /dev/sdb1
!コメント1!
/dev/sdb1をvdiskとして、VOL00という名前で作成
同様ドウヨウにVOL01も作成サクセイしてください。
scstadmin -adddev VOL01 -handler vdisk -path /dev/sdb2
!コメント2!
上記E-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
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       30400   244187968+  83  Linux
/dev/sdb2           30401       60801   244196032+  83  Linux
[root@fct01 ~]#
E-6.ボリュームをグループにアタッチ
scstadmin -assigndev VOL00 -group GROUP00 -lun 0
!コメント!
VOL00をLUN 0として設定
GROUP00に所属するユーザ(=FC InitiatorのWWPN)からVOL00へのアクセスを許可
同様ドウヨウにVOL01もLUN1として作成サクセイしてください。
scstadmin -assigndev VOL01 -group GROUP00 -lun 1
E-7.設定の保存
scstadmin -WriteConfig /etc/scst.conf
E-8.設定ファイルの確認
lv /etc/scst.conf 
# Automatically generated by SCST Configurator v1.0.11.
# NOTE: Options are pipe (|) seperated.
[OPTIONS]
#OPTION <1|0|YES|NO|TRUE|FALSE|VALUE>
# Copy configuration options during a -writeconfig
KEEP_CONFIG TRUE
# For FC targets, issue a LIP after every assignment change
ISSUE_LIP FALSE
[HANDLER vdisk]
#DEVICE <vdisk name>,<device path>,<options>,<block size>,<t10 device id>
DEVICE VOL00,/dev/sdb1,,512,VOL00 a0bcab47 ←E-8-1
DEVICE VOL01,/dev/sdb2,,512,VOL01 f7b63035 ←E-8-2
[HANDLER vcdrom]
#DEVICE <vdisk name>,<device path>
[GROUP Default]
#USER <user wwn>
[GROUP GROUP00]
#USER <user wwn>
USER 21:00:00:e0:8b:0e:53:4e ←E-8-3
USER 21:00:00:e0:8b:0e:1d:90 ←E-8-4
[ASSIGNMENT Default]
#DEVICE <device name>,<lun>,<options>
[ASSIGNMENT GROUP00]
#DEVICE <device name>,<lun>,<options>
DEVICE VOL00,0 ←E-8-5
DEVICE VOL01,1 ←E-8-6
[TARGETS enable]
#HOST <wwn identifier>
HOST 21:00:00:e0:8b:0e:8f:9d ←E-8-7
HOST 21:01:00:e0:8b:2e:8f:9d ←E-8-8
[TARGETS disable]
#HOST <wwn identifier>
E-8-1,E-8-2
Deviceを論理ロンリボリュームVOL00,VOL01として設定セッテイ
E-8-3,E-8-4
GROUP00にアクセス可能カノウなFC InitiatorのWWPNを登録トウロク
ここではesx41とesx42に搭載トウサイしたHBAのWWPNを記載キサイ
E-8-5,E-8-6
論理ロンリボリュームVOL00,VOL01をGROUP00にアサイン
E-8-7,E-8-8
FC Target Deviceとして動作ドウサさせるWWPNを登録トウロク
ここではfct01に搭載トウサイしたHBAのWWPNを記載キサイ
F.VMWareESX側の設定
F-1.FC Target Deviceの認識ニンシキ1
ホスト名(esx41 or esx42)をクリック→構成タブをクリック→ストレージ アダプタをクリック
ストレージアダプタ欄の画面を下にスクロールさせてください。
!コメント!
上記ジョウキE-8.設定セッテイファイルの確認カクニンまでOKであれば、
esx41およびesx42にてFC Targetを認識しているハズです。
もし認識ニンシキしていなかったら、サイスキャンをクリックすると
以下イカ画面ガメン表示ヒョウジされるのでOKをクリック
それでもNGな場合バアイには、fct01にてサービスを再起動サイキドウ
/etc/rc.d/init.d/scst restart
/etc/rc.d/init.d/qla2x00t restart
もしくはあんまりやりたくないけど、fct01やesx41とesx42のOS再起動サイキドウ
F-2.FC Target Deviceの認識ニンシキ2
パスをクリック
FC TargetガワのWWPNも確認カクニンできます。
(1)パスをクリック
(2)自身ジシン搭載トウサイされたHBAのWWPN(ここではesx41のHBAのWWPN)
(3)FC TargetのHBAのWWPN(fct01のHBA port1のWWPN)
本項ホンコウ最初サイショ構成図コウセイズ掲載ケイサイしているので、それと見比ミクラべればイメージがツカめるとオモいます。
F-3.ストレージの追加ツイカ1
ホスト名(esx41 or esx42)をクリック→構成タブをクリック→ストレージ をクリック→ストレージの追加ツイカをクリック
F-4.ストレージの追加ツイカ2
ディスク/LUNを選択センタクツギへをクリック
F-5.ストレージの追加ツイカ3
LUN0のホウ選択センタクツギへをクリック
!コメント!
LUN1も同様ドウヨウ手順テジュン追加ツイカします。
F-6.ストレージの追加ツイカ4
ツギへをクリック
F-7.ストレージの追加ツイカ5
データストアメイ入力ニュウリョク任意ニンイ名前ナマエ入力ニュウリョクツギへをクリック
F-8.ストレージの追加ツイカ6
ツギへをクリック
!コメント!
1つのLUNたり500GBとか1TBを追加ツイカするなら、上記ジョウキの250GB , ブロックサイズ:1MBのアタイオオきくしてください。
F-9.ストレージの追加ツイカ7
終了シュウリョウをクリック
!コメント!
終了シュウリョウをクリックしてから、実測ジッソク22ビョウかりました。
F-10.ストレージの追加ツイカ完了カンリョウ
FC経由ケイユでストレージが追加ツイカされました。
以下イカ画面ガメンでは、LUN0と同様ドウヨウ手順テジュンでLUN1も追加ツイカしてあります。
また、esx42のドウ画面ガメンにおいても、自動的ジドウテキ追加ツイカされているハズです。
G.簡易動作確認
以下の条件下において、仮想マシンをfct01_LUN1へ移行(StorageVMotion)させます。
ホスト:esx41
データストア:fct01_LUN0
仮想マシン:Franz160
確認ポイントは4-1-2.StorageVMotionのうち通信ツウシン確認カクニンのみを実施ジッシします。
G-1.仮想マシンを右クリック→移行をクリック
G-2.データストアの変更を選択→次へをクリック
G-3.fct01_LUN1を選択→次へをクリック
G-4.ソースと同じフォーマットを選択→次へをクリック
G-5.終了をクリック
G-6.結果
仮想マシンのデータストアが「fct01_LUN1」に変更されていることを確認
収束時間
3分31秒
通信断時間
2秒(端末的に3発、4発と通信断発生)
!コメント!
至極シゴク当然トウゼン結果ケッカですが、個人的コジンテキには安定感アンテイカンチガうなとオモいます。
H.その他(いろいろな確認方法など)
H-1.認識済みFC Targetデバイスの確認
cat /proc/scsi_tgt/scsi_tgt
H-2.自サーバHBAのWWPNを確認
cat /sys/class/fc_host/host?/port_name
H-3.FC InitiatorのWWPNを確認
scstadmin -session
H-4.設定ファイル変更後の設定反映
scstadmin -config /etc/scst.conf
!コメント!
vi /etc/scst.confにて、直接設定ファイルをゴリゴリいじった後、
設定を反映させたい場合のコマンド
H-5.その他scstadminのオプション
scstadmin --helpで要確認
もしくは、以下のDocでPerlソースの詳細を確認しても良いと思います。
/root/scst/trunk/scstadmin/scstadmin
H-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
 ベンダ固有の値