VMWarePlayer3.0.1(以下、VMWP) on CentOS5.4 x86_64
にて、
vmnet2やvmnet3を追加してCentOSの物理NICやVlan InterfaceにBridgeする方法。
別な言い方をすると、
Linux版VMWarePlayer3.0.1で、
・vmnet2、vmnet3とかDefault以外のvmnetを追加
・追加したvmnetとLinuxの物理NICやVlan InterfaceをBridge
する方法かなと。
かなり邪道というか、それはズルイよぉ~的な方法ですができたので以下に記載。
1.
適当なLinuxにVMware-Workstation-Full-7.0.1-227600.x86_64をインスト。
※
既に邪道ですw
Workstationは評価版でOKです。
インストする理由は、以下3.で記載する2つのファイルを
抽出したいだけなので、どんなLinuxでも良いです。
また、何かの仮想マシン上で動作するLinuxに
WorkstationをインストしちゃってもOKです。
2.
WorkstationをインストしたLinuxで以下を実施
vi /usr/bin/vmware-netcfg
以下のように修正
#export PRODUCT_NAME="VMware Workstation"
↓
export PRODUCT_NAME="VMware Player"
3.
WorkstationをインストしたLinuxから、
以下2つのファイルをローカルPCに一時保存
※
ファイル名が同じなので、ローカル保存時は一時的にファイル名を変更してね。
(1)
/usr/bin/vmware-netcfg
(2)
/usr/lib/vmware/bin/vmware-netcfg
(1)は、スクリプト
(2)は、バイナリ
4.
CentOSにVMWPをインスト
※
本来VMWPを稼動させたいCentOSなどのLinuxマシンに
本番用としてVMWPをインストします。
5.
上記3.でローカルに保存した2つのファイルを
同パスに同ファイル名でアップする。
必要に応じて、chmodで755など実行権限を付与してね。
6.
CentOSのデスクトップ上で、GNOME端末を起動
アプリケーション→アクセサリ→GNOME端末
以下のスクリプトを実行
# /usr/bin/vmware-netcfg
※
CentOSにsshでログイン後、
CLI上で上記のスクリプトを実行してもダメっぽい。
デスクトップ上のGNOME端末で実行しないと、
DisplayがOpenできないぜ!と怒られます。
7.
VM Editorの画面が表示

GNOME端末上にて、WarningとErrorが
表示されていますが全然気にしてません。
所詮は邪道な方法なので。
8.
Defautでは、vmnet0がAutomaticになっているので、
明示的にeth0などNICを指定する。
9.
Add Networkをクリックして、vmnet2やvmnet3を追加

10.
上記8.と同様にvmnet2やvmnet3にeth1などNICを指定する。
最後にsaveをクリックして保存
11.
VMWPを起動
アプリケーション→システムツール→VMWare Player
12.
Create a New Virtual Machineをクリックして新規仮想マシンを作成する。
※
ゲストOSは何でもOK。
作成後のvmxファイルを編集したいだけなので。
作成の最後にCustomize HardwareをクリックしてNICを追加。
この時点ではBridged、NAT、Host-onlyしか表示されないけど問題なし。

なお、仮想マシンは起動せずにおいておく。
13.
vmxファイルを修正
vi ~/vmware/仮想マシン名/仮想マシン名.vmx
ethernet0.present = "TRUE"
ethernet0.virtualDev = "e1000"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet0.addressType = "generated"
以下の2行を追加
ethernet0.connectionType = "custom"
ethernet0.vnet = "vmnet0"
ethernet1.present = "TRUE"
ethernet1.virtualDev = "e1000"
ethernet1.wakeOnPcktRcv = "FALSE"
ethernet1.addressType = "generated"
以下の2行を追加
ethernet1.connectionType = "custom"
ethernet1.vnet = "vmnet2"
14.
上記12.で作成した仮想マシンのEdit virtual machine settings画面を表示

Customの項目が追加されていれば、おつけ~!
15.
仮想マシンの起動

vmnet0=eth0=192.168.11.26(DHCPで外部からアドレス取得してる)
vmnet2=eth1=192.168.12.145(固定でIP設定)
16.
上記の状態で、eth0ð1共に外部のPCからICMPによる疎通がOKでした。
本当はもっとスマートな方法がある気がしてならないけど(^^;
ひとしきりやってみて思うことは、
ここまで頑張ってVMWarePlayer3を使う必要性を
あまり感じないので、当面はVMWareServer2で、けっぱるぜ!
ただ、今後VerUpして、VMWarePlayerでしかと使えない機能などがあり、
どうしても必要な機能ということであれば、もう一度検討しようと思う。
っていうか、「Workstation買えよ!」っていう所まで
来ちゃってる気がしてならない。
んまぁ、VCPでも取れたら、考えてみまっす。
っていうか、関係ないけど、海行きてぇ~。
現在、現役でバリバリ使ってるのは、
VMWareServer2.0.2(以下、VMWS) on CentOS5.4 x86_64
なんだけど、
VMSのEoLが発表されたので、
VMWarePlayer3.0.1(以下、VMWP) on CentOS5.4 x86_64
を試してみたw
CentOS5.4 x86_64にX window入れないとやっぱダメかなぁ(涙)
VMWSの場合、ブラウザで管理できるから、
VMWS関連のchkconfigをonにしておけば、
inittab:3でOKだった=電源Onして後はブラウザでゴリゴリだったのに。
場合によって、VMWS用の足(NIC)がたくさん必要なときは、
sshでCentOSに入ってVlanInterfaceの設定と、
VMWSの設定Perl(/usr/bin/vmware-config.pl)を走らせれば、
いくらでも足出せたのに。。。
VMWPの場合は、デスクトップ画面出さないと結構厳しい感じ。
もちろん、X windowを入れておけば、inittab:3でも
VNC経由でデスクトップ開けるから、ゴリゴリできるんだけどさ。
ちなみに、未だにVMWSの設定Perlに相当するものが見当たらない。
自主トレ不足なのは認めるけど、これでゴリゴリ足の設定が
できないのであれば、オレ的にはかなり致命的だよ。
ちなみに、VMWS1.x系→VMWS2.x系になったとき、
「ブラウザなんか使えね~」とか散々わめいてたんだけど、
いざVMWS2.x系+ブラウザに慣れちゃうと、
CentOSのデスクトップ画面なんか見たくない!と
我侭を言いたくなってしまう、しょ~もないヤツです。
せめて、vSphereClientでVMWPを動かせるようにならないだろうか?
コマンドを投入した際の画面出力をアップしておきます。
「scst その6」に記載した項番に紐付いているので、
項番ごとにどのような画面出力になるのか?を確認できます。
一部大量に出力されるものは省略してあります。
Blogのしょぼい文字数制限があるため、
txtファイルをアップします。
これまた私の備忘録の一部抜粋なので、
必ずしもこれ通りにいかなくても保証できないっす。
あしからず。
以下のtxtファイルをDLしてくださいませ。
インストール画面出力
文字化けしちゃう場合にはSJISで。
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 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
ベンダ固有の値
って言いながら、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...
OK3
CentOS5.4 x86_64
kernel2.6.26
手順は後日アップするとして、その後の動確まで実施。
こんなんでOKでしょうか。

これにて、DAS(Direct Attached Storage)検証は完了ってことで、
この勢いでFC-SANへ突入したい。
もし、FCスイッチをいじってみて、天が降りてきたら、
あと1~2台、FCスイッチを発注しちゃうかもしれん。
実際、DAS検証をやってみた感想として、
・PreBoot時のHBA画面(※)にてTargetデバイスが認識されたとき
・scstを使ってHBA経由でファイルの読み書きができたとき
すごい単純に「うぉ、これ、おもしれぇ~かも?」と思ったから。
※
BIOS画面って言ってもいいのかな?
FCスイッチを介せば、FCフレームのキャプチャってできるんだろうか。。。
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(発注済)を交えてゴリゴリとやるかね。
必要な部材は全て揃うはずなので。
ブラケットを外してPCIスロットに挿入してる(^^;
※
汎用性のあるブラケットを探すのが面倒になり、
別途、QLA2342を発注済なので、んまぁ予備用HBAってことで。
誰か汎用性のあるブラケット売ってる店知らないかなぁ。
んで、光ケーブルを挿す際にPCIスロット挿入口を抑えようと
ゴリゴリしてたら、右手の人差し指を切ってしまった。
痛ッ(涙)
昨夜の続き。
OK1
CentOS5.2 x86
kernel2.6.26
で、FCのTargetとして、scstやqla2x00tgtの
サービスが正常起動するところまではOKでした。
しかし、デバイスを設定する際にNGを喰らっちゃいました。
以下、(1)も(2)もNG
(1)
dd if=/dev/zero of=/mnt/disk bs=1024k count=512
scstadmin -adddev disk -handler vdisk -path /mnt/disk
(2)
scstadmin -adddev disk -handler vdisk -path /dev/VolGroup01/LogVol00
or
scstadmin -adddev disk -handler vdisk -path /dev/sda3
理由はOSが起動しているHDDの別パーティションで
scstadmin -adddevをやろうとしていたためと想定。
なので、HDDを新たに増設して(2)を実施したところOKでした。
その後、ESX4.0U1からFC-targetが正常に認識。
ESXにてLUNをマウントしVMFSv3にてフォーマット(といって自動でやってくれる)。
んでもって、ESX→FC-target上のLUNに2GBのisoファイルの読み書きOKでした。
なので、とりあえず、うまく行く方法は確立したので、
今度は以下の構成でやってみます。
っていうか、今Kernel Buildやってます。
CentOS5.4 x86_64
kernel2.6.33
ダメならkernel2.6.26に戻してみるよん。
ちなみに、scstをやり始めて、おぉ!と思ったんだけど、
FCoEに通じるところがあることに気付いたw
FCoE Driverの項目をじっくり読むと、
「Open-FCoEの開発場所は、scst svn上に含まれてるよん。」
「FCoEのhow toは、Open-FCoEのサイトへアクセスせぃ!」
っぽいことが書かれてる。
ってことは、今やっている方向性として、
当たらずとも遠からずで、
段階を踏んでいく必要がありそうです。
ここでの経験がFCoE=Readyとなったときにも
活きて来ると思えたよ。
結局のところ、SCSI規格におけるTargetとInitiatorの関係は変わらないので、
iSCSIしかり、FCしかり、FCoEしかり、原理原則を抑えておけば、
いくらでも応用できる部分があるんだろうなぁと思う。
ちなみに、InfiniBandまではいいかなぁ(^^;
それならいっそのこと大学にでも行った方が良いだろうし。
HPC分野となると、ちょっと超えちゃってる気がする、オレでもさ。
検索キーにすると一発で出てくるw
んまぁ、それは良いとして。
qla2x00tgtのbuildに四苦八苦していましたが、
以下の組み合わせでOKっぽいことが判ってきたw
NG1
CentOS5.4 x86_64
linux-2.6.28.3.tar.gz
NG2
CentOS5.2 x86
linux-2.6.28.3.tar.gz
OK1
CentOS5.2 x86
kernel2.6.26
個人的にはNG1の構成でscstとqla2x00tgtを動作させたいわけですよ。
Openfiler2.3にて、サクッと動作することは確認済みなんだけど、
それはそれとして置いておこうと思う。
というのも、
・HBAを挿入するタイミングが指定されている
・必要最低限のモノしか入っていない
って辺りが個人的にちょっとごめんなさいなので。
ちなみに、
scst(SCSI Target Subsystem)
qla2x00tgt(QLogic2x00系のTargetドライバ)
なんですが、
こやつらがyumでサクっとインストールできる日が
いつか来ることの待ち望んでいます。
オレはFCスイッチ周りの事もあるので、
一足先にKernelをゴリゴリBuildさせてもらいますが。
久々にBuildしたけどやっぱり愉しいね。
make menuconfigの画面で、
Driver周りをちょこっといじれば良いだけなんだけど、
他のDriver項目を超ガン見しちゃいましたよ。
Korg1212IOのDriverとかが入っていたのには感動したw
/sys/class/net/vswif0
/proc/sys/net/ipv4/conf/vswif0
/proc/sys/net/ipv4/neigh/vswif0
[root@esx41 ~]# vmkload_mod -l