Traditional Networkからの決別
Traditional Networkから決別しなければならいと、今日強く思った。
武田の騎馬隊と信長の鉄砲隊ではないけれど、
戦い方が根本的に異なっているのに太刀打ちできるわけがない。
今のままでは本当にダメだと確信した。
IT業界は、現実社会の7倍の速度で進化していると聞いたことがあるけど、
今まさに刻一刻と時代に取り残されている感触がじわじわと沁みこんできている。
それともう一つ。
今まで、自分がやりたいと思ったことをやっているときが
一番愉しかったし愉しいと思っていた。
即ち、
やりたいこと=愉しいこと
だと思っていた。
そして、その逆も然り。
愉しいこと=やりたいこと
だと思っていた。
けれど、それは違うってことに気付いた。
愉しいことは、必ずしもやりたいこととは限らない。
オレは今やっている仕事がとても愉しいと思っている。
けれど「やりたいことではない」ってことが、ハッキリ判った。
自分に対して「愉しいから」という言い訳をして、
「やりたいことではない」って気持ちを
ただただ誤魔化していただけなのかもしれない。
オレが想う最も大きなストレスとは、
「やりたい」って思ったことが即行動に起こせないこと。
このストレスを課さないようにするために
今まで準備をしてきたんじゃないのか?と、
自分に対して、問い掛けている。
今日という日を決して忘れないようにするために
今の気持ちを書き残しておきたい。
3t3fを作ろう
久しぶりの書き込みですが、思いつきで3t3fなるキーワードを思いついたw
3target
iSCSI
FC
FCoE
玉の容量:3TB
NIC:BCM57xxと82572
HBA:QLA2342
OS:Kernel2.6.35
1筐体に集約
BCM57xxがボトルネック
BCM57xx:iSCSI,3f
82572:FCoE
QLA2342:FC
元々はFCbootできればOKなイメージだったけど、
どうせならまとめちゃおう的な感覚。
どこまでできるか?はわからんけど。
SCST2.0.0.xベース(最新の2.1.0.xはNG)でないと、
FCoEが我侭言い始めるので、この辺が要注意かなと。
ゆくゆくは、82572からX540へ機能を移管してDCBも稼働させつつ、
BCM57xxと82572でBonding+VlanIntにすれば、ボトルネックが緩和される。
ちょっとp(^-^)qワクワクする。
Windows VLAN Interface設定
以前の記事にはLinuxによるVLAN Interfaceの設定方法を書きましたが、
今回はWindows+Intel製NICを使用したVLAN Interfaceの設定方法を書きます。
Intel製NICとハードウエアを限定してしまい申し訳ないのですが、
Intel製NICドライバに付属のUtility(っていうか、Intel PROSet)で実現しているっぽいのです。
カニやBroadcomのNIC&ドライバで試してみました*1が、そもそも設定画面が出てこない。
レジストリでゴリゴリするレベルではなく、そもそもドライバで未対応といった具合なので、ハードウエアを限定した次第です。
なお、Windows10におけるVLAN Interface設定などは以下となります。2019/11/27追記
Windows10 VLAN Interface設定 - Metonymical Deflection
Windows10 VLAN aware VMs - Metonymical Deflection
それでは行ってみよう。
1.Intel PROSetのDL
IntelのサイトからPROSetドライバをDLしてください。
自身のPCやNICのチップにあったものを選択してください。
一例として、Intel 825xy系*2のドライバであれば、
「Network Adapter Drivers for Windows XP」のVer16.0.0などが
現時点での最新版となっているようです。
以下のような画面でDLします。
2.Intel PROSetのインストール
exe形式のファイル*3なので、そのまま実行してください。
インストール時の注意点として、セットアップ・オプション時に
「Advanced Network Services」にチェックを入れてください。
3.VLAN Interfaceの作成
3-1.NICのプロパティを開く
3-4.VLAN IDの追加
「VLAN ID」欄にVLAN番号を記載。
1つのNICに対して、最大64個のVLAN 番号が設定可能なようです。
また、設定できる番号の範囲は、1-4095です。
タグ無しVLAN(Ciscoライクにはnative VLAN)は後述
以下の画面が表示され1-2分くらい待たされます。
その間、NICの無効→有効などが実施され通信断が発生します。
3-6.ネットワークのプロパティ確認その1
VLAN Interface設定前後の「ネットワークのプロパティ」は以下の通り。
VLAN Interface設定後
「設定前」の画面にて「Local」となっていたNICが
「設定後」の画面にて「Physical」となっています。
これが物理Interface(Linuxで言えば、ethX)に該当します。
これに加えて、VLAN0,VLAN10,VLAN20のNICが追加されています。
これがVLAN Interface(Linuxで言えば、vlanXX)に該当します。
実際はNICのDefault名である「ローカルエリア接続1」などが設定されます。
しかし、判りづらいので名前は変更しておきましょう。
3-7.ネットワークのプロパティ確認その2
「物理Interface」のプロパティを確認してみます。
ポイントとして、「物理Interface」の場合は、
「Intel Advanced Network Services Protocol」がチェックされ、
「インターネットプロトコル(TCP/IP)」が未チェックとなっています。
ようするに、IPは未設定であるということです。
3-8.ネットワークのプロパティ確認その3
「VLAN Interface」のプロパティを確認してみます。
ポイントとして、「VLANInterface」の場合は、
VLAN Interface作成前のプロパティと同内容の設定が可能です。
また、「VLAN Interface」のプロパティ画面から、
「構成」をクリックすると、VLAN IDの設定が可能となります。
3-9.ipconfig /allの出力
コマンドプロンプトでipconfig /allを打ったときの出力を以下に記載します。
C:\>ipconfig /all Windows IP Configuration Host Name . . . . . . . . . . . . : hostname Primary Dns Suffix . . . . . . . : domainname.com Node Type . . . . . . . . . . . . : Hybrid IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No Ethernet adapter loopback: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Microsoft Loopback Adapter Physical Address. . . . . . . . . : 02-AA-00-11-22-33 Dhcp Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 192.168.12.111 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : Ethernet adapter local2: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Realtek RTL8139 Family PCI Fast Ethernet NIC Physical Address. . . . . . . . . : 00-AA-BB-CC-DD-EE Dhcp Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 192.168.11.111 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : Ethernet adapter VLAN0: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Intel(R) 82566DM-2 Gigabit Network Connection - VLAN : タグなし VLAN Physical Address. . . . . . . . . : 00-11-22-33-44-55 Dhcp Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 192.168.0.222 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : Ethernet adapter VLAN10: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Intel(R) 82566DM-2 Gigabit Network Connection - VLAN : VLAN10 Physical Address. . . . . . . . . : 00-11-22-33-44-55 Dhcp Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 192.168.10.222 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : Ethernet adapter VLAN20: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Intel(R) 82566DM-2 Gigabit Network Connection - VLAN : VLAN20 Physical Address. . . . . . . . . : 00-11-22-33-44-55 Dhcp Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 192.168.20.222 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : C:\>
4.その他
以下の画面を見てピンとこられた方もいらっしゃると思いますが、
「チーム化」タブからLinux同様にLink Aggregationの設定も可能です。
手元にある鯖ではIntel系NICが2枚挿しとなっているので、
Windows系OSとPROSetドライバをインストールすれば、
「チーム化」についても実際に試すことができます。
ですが、面倒なので、ここではあえて取り上げません。ごめんなさい。
興味のある方は自身で動作確認してみてください。
GUIで設定可能ですので、Linuxほどきちんとした手順を記載しなくても、
ある程度フィーリングで設定可能だと考えて良いと思います。
私自身も「できる」ことはわかっているので、
本当に必要に迫られたら「やってみようかな?」程度にしか考えていません。
以上です。
次回は技術的な記事からちょいと離れつつ、
Blogとして想いなどを書き綴りたいと考えています。
Windows Route設定
WindowsでのRoute設定方法を記載します。
Route設定とRouting設定の定義は過去の記事に記載したので、
興味のある方は一読してみてください。
そこで、今回はWindowsOSによるRoute設定を記載します。
それでは行ってみよう!
1.テンポラリRoute設定
設定後、OS再起動やNICの無効/有効を実施すると消えるRoute設定方法です。
route ADD <NWアドレス> MASK <ネットマスク> <GWアドレス> METRIC <メトリック> IF <Interface>
具体例を以下に記載します。
コマンドプロンプト上で、以下のroute printコマンドにて現在のroute設定を確認しておきます。
C:\>route print =========================================================================== Interface List 0x1 ........................... MS TCP Loopback interface 0x2 ...00 11 22 33 44 55 ...... Intel(R) 82566DC Gigabit Network Connection - パケット スケジューラミニポート 0x10004 ...00 aa bb cc dd ee ...... Realtek RTL8139/810X Family PCI Fast Ethernet NIC - パケット スケジューラ ミニポート =========================================================================== =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.11.1 192.168.11.11 10 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 169.254.0.0 255.255.0.0 192.168.11.11 192.168.11.11 20 192.168.11.0 255.255.255.0 192.168.11.11 192.168.11.11 10 192.168.11.11 255.255.255.255 127.0.0.1 127.0.0.1 10 192.168.11.255 255.255.255.255 192.168.11.11 192.168.11.11 10 224.0.0.0 240.0.0.0 192.168.11.11 192.168.11.11 10 255.255.255.255 255.255.255.255 192.168.11.11 192.168.11.11 1 255.255.255.255 255.255.255.255 192.168.11.11 10004 1 Default Gateway: 192.168.11.1 =========================================================================== Persistent Routes: None C:\>
以下のコマンドでroute設定を実施
route ADD 172.16.0.0 MASK 255.255.255.0 192.168.11.1 METRIC 20 IF 0x2
再度、route printコマンドにて設定後のroute確認。
★の付いた行が新たに追加されていることが判ります。C:\>route print =========================================================================== Interface List 0x1 ........................... MS TCP Loopback interface 0x2 ...00 11 22 33 44 55 ...... Intel(R) 82566DC Gigabit Network Connection - パケット スケジューラミニポート 0x10004 ...00 aa bb cc dd ee ...... Realtek RTL8139/810X Family PCI Fast Ethernet NIC - パケット スケジューラ ミニポート =========================================================================== =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.11.1 192.168.11.11 10 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 169.254.0.0 255.255.0.0 192.168.11.11 192.168.11.11 20 172.16.0.0 255.255.255.0 192.168.11.1 192.168.11.11 20 ★ 192.168.11.0 255.255.255.0 192.168.11.11 192.168.11.11 10 192.168.11.11 255.255.255.255 127.0.0.1 127.0.0.1 10 192.168.11.255 255.255.255.255 192.168.11.11 192.168.11.11 10 224.0.0.0 240.0.0.0 192.168.11.11 192.168.11.11 10 255.255.255.255 255.255.255.255 192.168.11.11 192.168.11.11 1 255.255.255.255 255.255.255.255 192.168.11.11 10004 1 Default Gateway: 192.168.11.1 =========================================================================== Persistent Routes: None C:\>
!コメント1!
若干面倒くさいのが、の部分です。
OS再起動などにより、コロコロ値が変わります。
route ADD
MASK <ネットマスク> METRIC <メトリック> IF
このため、都度route printコマンドにて表示された16進数を記載してあげます。
今回の例で言えば、
Intel(R) 82566DCから送信したければ「0x2」
Realtek RTL8139/810Xから送信したければ「0x10004」
となります。
「IF
」自体を省略しても設定できる場合があるようですが、
省略して弾かれる場合には、明示的に設定してやる必要があります。
2.パーシステンスRoute設定
設定後、OS再起動してもRoute設定が消えないようにする方法です。
Linuxのときほど面倒ではなく、「-p」オプションを付与するだけでOKです。
route -p ADD <NWアドレス> MASK <ネットマスク> <GWアドレス> METRIC <メトリック> IF <Interface>
具体例を以下に記載します。
コマンドプロンプト上で、以下のroute printコマンドにて現在のroute設定を確認しておきます。
C:\>route print =========================================================================== Interface List 0x1 ........................... MS TCP Loopback interface 0x2 ...00 11 22 33 44 55 ...... Intel(R) 82566DC Gigabit Network Connection - パケット スケジューラミニポート 0x10004 ...00 aa bb cc dd ee ...... Realtek RTL8139/810X Family PCI Fast Ethernet NIC - パケット スケジューラ ミニポート =========================================================================== =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.11.1 192.168.11.11 10 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 169.254.0.0 255.255.0.0 192.168.11.11 192.168.11.11 20 192.168.11.0 255.255.255.0 192.168.11.11 192.168.11.11 10 192.168.11.11 255.255.255.255 127.0.0.1 127.0.0.1 10 192.168.11.255 255.255.255.255 192.168.11.11 192.168.11.11 10 224.0.0.0 240.0.0.0 192.168.11.11 192.168.11.11 10 255.255.255.255 255.255.255.255 192.168.11.11 192.168.11.11 1 255.255.255.255 255.255.255.255 192.168.11.11 10004 1 Default Gateway: 192.168.11.1 =========================================================================== Persistent Routes: None C:\>
以下のコマンドでroute設定を実施
route -p ADD 172.16.0.0 MASK 255.255.255.0 192.168.11.1 METRIC 20 IF 0x2
再度、route printコマンドにて設定後のroute確認。
★の付いた行が新たに追加されていることが判ります。C:\>route print =========================================================================== Interface List 0x1 ........................... MS TCP Loopback interface 0x2 ...00 11 22 33 44 55 ...... Intel(R) 82566DC Gigabit Network Connection - パケット スケジューラミニポート 0x10004 ...00 aa bb cc dd ee ...... Realtek RTL8139/810X Family PCI Fast Ethernet NIC - パケット スケジューラ ミニポート =========================================================================== =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.11.1 192.168.11.11 10 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 169.254.0.0 255.255.0.0 192.168.11.11 192.168.11.11 20 172.16.0.0 255.255.255.0 192.168.11.1 192.168.11.11 20 ★ 192.168.11.0 255.255.255.0 192.168.11.11 192.168.11.11 10 192.168.11.11 255.255.255.255 127.0.0.1 127.0.0.1 10 192.168.11.255 255.255.255.255 192.168.11.11 192.168.11.11 10 224.0.0.0 240.0.0.0 192.168.11.11 192.168.11.11 10 255.255.255.255 255.255.255.255 192.168.11.11 192.168.11.11 1 255.255.255.255 255.255.255.255 192.168.11.11 20004 1 Default Gateway: 192.168.11.1 =========================================================================== Persistent Routes: Network Address Netmask Gateway Address Metric 172.16.0.0 255.255.255.0 192.168.11.1 20 ★ C:\>
!コメント1!
「Persistent Routes:」に追記されたのがわかると思います。
ここに記載されれば、OS再起動をしてもRoute設定は消えませんが、
逆の言い方をすると、明示的に消去しない限り残ったままとなります。
このため「Persistent Routes:」を消去したい場合には
以下のようにコマンドを打ってください。route delete 172.16.0.0
以上です。
今度はWindowsでVLAN Interfaceを作成する方法を記載できればと。
Intel製NIC限定の方法になってしまいますが、意外に知られていないようなので。
今欲しいGigaスイッチ
GS116E-100JPS or SG300-20-JPで悩み中。
なので、機能比較をしてみたw
How to FCoE FCoE Target & FCoE Initiator
Fedora13によるFCoE Target & FCoE Initiatorのセットアップ手順です。
近頃、Intelから正式発表があった「Open FCoE」を使用した具体的なセットアップ手順となります。
正式発表資料では、Intel X520(82599チップ)のみを謳っています。
しかし、個人購入するには少々高額(6万円程度)です。
このため、本手順ではIntel EXPI9301CT(82574Lチップ:実売4000円以下)を使用します。
また、Dell Optiplex 755のOn Borad NIC(82566DM-2チップ)でも動作確認済みです。
従って、e1000系ドライバで動作するIntel製NICであれば、概ね動作すると考えて良いと思います。
なお、本手順は自宅SAN友の会にも同内容をアップ済みですが、
正式発表後のTwitter件数などを鑑みて、こちらのBlogにも改めて書きたいと思います。
それでは行ってみよう!
Hardware構成
FCoE Target
デバイス | 型番など |
---|---|
筐体 | ML115G5 |
CPU | AMD Phenom X4 9350e |
Mem | W2U800CQ-2GL5J*2(こんなに積まなくてもOK) |
HDD | ST3160023AS OS起動用(SATAなら何でもOKなハズ) |
HDD | ST3500320NS Target用(SATAなら何でもOKなハズ) |
HBA | 不要 |
NIC | intel EXPI9301CT(増設) |
OS | Fedora13 x86 or Fedora13 x86_64(64bit版もOK) |
Kernel | 2.6.35 |
※
各NICは以下の用途で使用
ML115G5のDefaultNIC(Broadcom)をIP通信用
intel EXPI9301CT(増設)をFCoE用
接続構成
FCoE TargetとInitiatorは、EXPI9301CT同士でDAS(直結)構成としてください。
筐体(ML115G5)のDefaultNICはIP疎通性があれば接続方法は何でもOKです。
NIC2枚挿しが厳しければ、シリアルコンソール接続設定を参照。
OSインストール
TargetもInitiatorも同じです。
Fedora13 x86のインストールパッケージのカスタマイズ
<デスクトップ環境>
全てOFF(GNOME,KDEも使わない)
<アプリケーション>
エディタ→vim-enhancedのみ
<開発>
開発ツール 開発ライブラリ
<サーバー>
Samba ※ Mustではありません。 TeraTermをWinXPで動作させている関係で、ファイルのやり取りをCIFSでやりたかっただけです。
<ベースシステム>
ベースのみ
全てOFF
1.事前準備
1-1.KernelSrcのDL
cd /usr/src wget ftp://ftp.iij.ad.jp/pub/linux/kernel/linux/kernel/v2.6/linux-2.6.35.tar.gz tar zxvf linux-2.6.35.tar.gz ln -s /usr/src/linux-2.6.35 linux ln -s /usr/src/linux-2.6.35 kernel
1-2.SCSTのSrcDL
cd /usr/src svn co https://scst.svn.sourceforge.net/svnroot/scst/branches/2.0.0.x mkdir scst ln -s /usr/src/2.0.0.x /usr/src/scst/trunk
!コメント1!
2011/11/04に修正
最新版のscst(2.1.0.x系)をDLしてしまうと、
正常に動作しない場合があるので、lnしました。
これやらないと、永遠にKernelのBuildをやり直さなければならず、
心がへし折れそうになると思うので修正しました。
2.各種パッチ当て
2-1.SCSTのパッチ当て
cp /usr/src/scst/trunk/scst/kernel/scst_exec_req_fifo-2.6.35.patch /usr/src patch -p0 < scst_exec_req_fifo-2.6.35.patch
2-2.FCSTのパッチ当て
変数定義
KERNEL=linux-2.6.35 KDIR=/usr/src/$KERNEL PDIR=/usr/src/scst/trunk/fcst/linux-patches
パッチ当て
cd $PDIR for patch in `grep -v '^#' series-2.6.35` do (cd $KDIR; patch -p1) < $patch done cd /usr/src/
3.KernelのBuild
3-1.Linux KernelのMakefile設定
cd /usr/src/linux-2.6.35 make menuconfig
!コメント1!
基本的に変更する箇所はありませんので、
以下に記載する項目を確認していくという作業になります。
なお、SCST+qla2x00tgtによるFC Targetインストール時*1と同様に
32bit版のみHigh Memory Supportの項目をOffにします。
!コメント2!
以下のメッセージが表示された場合は
ターミナル(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
『make menuconfig』コマンドを打つと以下のような画面が表示されるので、
ここからカーソルキーを使用して各項目を選択し確認していきます。
# make menuconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/basic/docproc HOSTCC scripts/basic/hash HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/kxgettext.o HOSTCC scripts/kconfig/lxdialog/checklist.o HOSTCC scripts/kconfig/lxdialog/inputbox.o HOSTCC scripts/kconfig/lxdialog/menubox.o HOSTCC scripts/kconfig/lxdialog/textbox.o HOSTCC scripts/kconfig/lxdialog/util.o HOSTCC scripts/kconfig/lxdialog/yesno.o HOSTCC scripts/kconfig/mconf.o SHIPPED scripts/kconfig/zconf.tab.c SHIPPED scripts/kconfig/lex.zconf.c SHIPPED scripts/kconfig/zconf.hash.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/mconf scripts/kconfig/mconf arch/x86/Kconfig # # using defaults found in /boot/config-2.6.33.3-85.fc13.x86_64 # /boot/config-2.6.33.3-85.fc13.x86_64:569:warning: symbol value 'm' invalid for PCCARD_NONSTATIC /boot/config-2.6.33.3-85.fc13.x86_64:1952:warning: symbol value 'm' invalid for RT2800PCI_PCI /boot/config-2.6.33.3-85.fc13.x86_64:2744:warning: symbol value 'm' invalid for MFD_WM8350 /boot/config-2.6.33.3-85.fc13.x86_64:2745:warning: symbol value 'm' invalid for MFD_WM8350_I2C /boot/config-2.6.33.3-85.fc13.x86_64:2747:warning: symbol value 'm' invalid for AB3100_CORE /boot/config-2.6.33.3-85.fc13.x86_64:3748:warning: symbol value 'm' invalid for MMC_RICOH_MMC .config - Linux Kernel v2.6.35 Configuration qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq Linux Kernel Configuration qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x Arrow keys navigate the menu. <Enter> selects submenus --->. Highlighted letters are hotkeys. Pressing <Y> x x includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> for Search. x x Legend: [*] built-in [ ] excluded <M> module < > module capable x x x x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x x x General setup ---> x x x x [*] Enable loadable module support ---> x x x x -*- Enable the block layer ---> x x x x Processor type and features ---> x x x x Power management and ACPI options ---> x x x x Bus options (PCI etc.) ---> x x x x Executable file formats / Emulations ---> x x x x -*- Networking support ---> x x x x Device Drivers ---> x x x x Firmware Drivers ---> x x x x File systems ---> x x x x Kernel hacking ---> x x x x Security options ---> x x x x -*- Cryptographic API ---> x x x x [*] Virtualization ---> x x x x Library routines ---> x x x x --- x x x x Load an Alternate Configuration File x x x x Save an Alternate Configuration File x x x x x x x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu x <Select> < Exit > < Help > x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
3-1-1.802.1QとDCBの設定
Networking support ---> Networking options ---> <M> 802.1Q VLAN Support [*] GVRP (GARP VLAN Registration Protocol) support [*] Data Center Bridging support
3-1-2.QoS周りの設定
Networking support ---> Networking options ---> [*] QoS and/or fair queueing ---> <M> Multi Band Priority Queueing (PRIO) <M> Hardware Multiqueue-aware Multi Band Queuing (MULTIQ) <M> Elementary classification (BASIC) <M> Universal 32bit comparisons w/ hashing (U32) [*] Extended Matches <M> U32 key [*] Actions <M> SKB Editing
3-1-3.FCoEモジュール周りの設定
Device Drivers ---> SCSI device support ---> SCSI low-level drivers ---> {M} LibFC module {M} LibFCoE module <M> FCoE module
3-1-4.10GbitDeviceのDCBの設定
Device Drivers ---> Network device support ---> Ethernet (10000 Mbit) ---> [*] Data Center Bridging (DCB) Support
3-1-5.BlockLayerの設定
-*- Enable the block layer ---> [*] Block layer SG support v4
3-1-6.【32bit版限定】HighMemSupportの設定
Processor type and features ---> High Memory Support (64GB) ---> (X) off ( ) 4GB ( ) 64GB
3-1-7.設定の保存
Exitにて最初の画面に戻ってください。
以下の項目を選択し保存してください。
Save an Alternate Configuration File
保存が完了したら最初の画面に戻ってExitを選択すれば、元のプロンプトに戻ります。
3-2.Linux KernelのBuild
make bzImage && make modules && make modules_install && make install
!コメント1!
ガッツリ1時間半程度掛かります。
心の準備をしておいてください。
むしろ、TeraTermでログ取得しておいて、
以下のコマンド打ってみた方が良いかも?です。
date && make bzImage && make modules && make modules_install && make install && date && shutdown -h now
3-3.起動Kernelの選択
vi /boot/grub/menu.lst
ファイルを開いたら、以下の項目を0に設定
default=1 ↓ default=0
!コメント1!
新Kernelが最初に起動されるように設定します。
Windowsライクに言うと"c:\boot.ini"を書き換える作業です。
3-4.再起動
shutdown -r now
4.scst,scstadmin,fcst,fcoeadmのインストール(コンパイル含む)
4-1.scstのインストール
cd /usr/src/scst/trunk/scst make && make install
4-2.scstadminのインストール
cd /usr/src/scst/trunk/scstadmin make && make install
4-3.fcstのインストール
cd /usr/src/scst/trunk/fcst make && make install
5.VLANやHDDの設定とModuleの読み込み
!コメント1!
Linuxに精通した方は軽く読み飛ばしてください。なお、VLAN設定はfcoe-utilsのインストール後に
"fipvlan -a"がどうしてもうまく動作せず、苦肉の策として掲載しています。
ちなみに、VLAN設定を実施しなくても、FCoE Targetとしての動作は可能です。
いわゆるTag無しVLAN(CiscoライクにはnativeVLAN)でもOKです。
5-1.VLANの設定*2
5-1-1.networkファイルの設定
vi /etc/sysconfig/network
以下の2行を追加
VLAN=yes VLAN_NAME_TYPE=DEV_PLUS_VID_NO_PAD
5-1-2.ifcfg-ethxの設定
vi /etc/sysconfig/network-scripts/ifcfg-eth1
ファイルを開いたら以下のように設定
# Intel Corporation 82574L Gigabit Network Connection DEVICE=eth1 HWADDR=00:1B:21:49:82:FA ONBOOT=yes BOOTPROTO=none MTU=2500
!コメント1!
MACアドレスやeth1など、適宜実環境に合わせて修正してください。
!コメント2!
MTU=2500がポイントです。
FCoEの通信時は、きちんとMTU=2112で通信されるので安心してください。
5-1-3.ifcfg-ethx.yyyの設定
vi /etc/sysconfig/network-scripts/ifcfg-eth1.100
ファイルを開いたら以下のように設定
DEVICE=eth1.100 BOOTPROTO=static ONBOOT=yes USERCONTROL="no" INTERFACETYPE="vlan" #IPADDR=192.168.100.116 #NETMASK=255.255.255.0
!コメント1!
上記はifcfg-eth1.100としていますが、
適宜、実環境に合わせて修正してください。
NIC=eth1のVLAN100という意味です。
Pcap(パケットキャプチャ)すれば、
802.1QのTag内に100が記載されています。
!コメント2!
IPアドレスやネットマスクは、"#"していますが、外しても問題ありません。
「pingとfcpingを同時に試してみたいぜ!」という方は外してください。
説明は不要かと思いますが、Etherフレームの上に乗っかるProtocolが
IPとFCなのでVLAN100上にて同時通信させても問題ありません。
但し、IPアドレスを設定した場合、項番「7-4-1.NIC動作確認」にて
正常動作時の状態か?の判別が付き難くなることがあるため、
ここでは"#"を付けた状態=IPアドレス未設定状態を想定して進めます。
5-1-4.FCoEのcfg-ethx.yyyの設定
vi /etc/fcoe/cfg-eth1.100
ファイルを開いたら、以下をコピペしてください。
## 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="no" ## Type: yes/no ## Default: yes # Indicate if VLAN discovery should be handled by fcoemon AUTO_VLAN="no"
!コメント1!
DCB_REQUIRED="no"としている点がポイントです。
今回のNICではDCBの実装はHardware的に不可能なので。
5-1-5.FCoEのconfigの設定
vi /etc/fcoe/config
ファイルを開いたら、★の行を"yes"→"no"へ修正
## Type: yes/no ## Default: no # Switch on/off debug messages (script & C code) DEBUG="no" ## Type: yes/no ## Default: yes # All the messages go to syslog and stderr (script & C code) USE_SYSLOG="yes" ★ ↓ USE_SYSLOG="no"
!コメント1!
動作的には問題無いのですが、fcoemonがdcb関連の設定ファイルを探して、
dmesや/var/log/messageにゴミLogを残すため"no"へ修正。
5-2.HDDの設定
!コメント1!
ここでは500GBのHDDのシリンダ数=60800として、
250GB*2つのパーティションに分割します。
すいません、説明は端折ります。
時間があれば詳細を記載するようにしますが、
詳細を早く知りたい方は以下のサイトなどでお勉強してください。
http://www.itmedia.co.jp/help/tips/linux/l0112.html
fdiskにて、以下のようなイメージでパーティションを切ってください。
fdisk /dev/sdb m p n p 1 30399 p 2 空Enter 空Enter p t 1 83 p t 2 83 p w sfdisk -l /dev/sdb
!コメント2!
最終的にはこんな↓感じに仕上げてください。
"/dev/sdb1"と"/dev/sdb2"の2つのパーティションで構成されている想定で進めます。sfdisk -l /dev/sdb ディスク /dev/sdb: シリンダ数 60801、ヘッド数 255、63 セクタ/トラック ユニット = 8225280 バイトのシリンダ、1024 バイトのブロック、0 から数えます デバイス ブート 始点 終点 #シリンダ #ブロック Id システム /dev/sdb1 0+ 30399 30400- 244187968+ 83 Linux /dev/sdb2 30400 60800 30401 244196032+ 83 Linux /dev/sdb3 0 - 0 0 0 空 /dev/sdb4 0 - 0 0 0 空
5-3.Moduleの読み込み確認
5-3-1.libfc,libfcoe,fcoeのModuleの読み込み
/etc/rc.d/init.d/fcoe start
5-3-2.scst関連Moduleの読み込み
modprobe scst && modprobe scst_vdisk && modprobe scst_disk
5-3-3.fcst関連Moduleの読み込み
modprobe fcst
!コメント1!
上記5-3-2.の後、5秒程度待ってから"modprobe fcst"してください。
流し込みのように早過ぎるとfcstだけうまく読み込まれない場合があります。
5-3-4.Moduleの確認
以下のようなイメージでModuleが読み込まれればOKです。
lsmod Module Size Used by ◆ fcst 14292 0 ◆ scst_disk 8690 0 ◆ scst_vdisk 49497 0 ◆ scst 344380 3 fcst,scst_disk,scst_vdisk ◆ fcoe 15375 0 ◆ libfcoe 10524 1 fcoe ◆ libfc 66050 3 fcst,fcoe,libfcoe ipv6 219344 22 k10temp 2443 0 i2c_nforce2 5574 0 i2c_core 20569 1 i2c_nforce2 tg3 97786 0 ★ e1000e 158454 0 microcode 10563 0 pcspkr 1342 0 serio_raw 3316 0 qla2xxx 263249 0 ★ scsi_transport_fc 33685 3 fcoe,libfc,qla2xxx pata_acpi 2235 0 ★ scsi_tgt 8506 1 scsi_transport_fc ata_generic 2359 0 sata_nv 16359 4
!コメント1!
特に重要なModuleには◆
重要なModuleには★
を付けてます。
5-3-5.一旦再起動
shutdown -r now
!コメント1!
MTUを変更してることもあり、ここいらで一旦Reboot。
と言いつつ、再起動しないと先に進んでもしくじる=検証済み。
6.SCST設定とFCoE Target有効化設定
6-1.SCST設定
6-1-1.状況確認
以下のコマンドで状況確認
/usr/libexec/fcoe/fcc.sh FC HBAs: HBA Port Name Port ID State Device
!コメント1!
このタイミングでは何も表示されなくてOK
6-1-2.Module読み込み
以下のコマンドにてModule読み込み
/etc/rc.d/init.d/fcoe start modprobe scst && modprobe scst_vdisk && modprobe scst_disk modprobe fcst
6-1-3.Module読み込み状況確認
Rebootしても5-3-4と同じだよね?ってことを確認してください。
lsmod Module Size Used by ◆ fcst 14292 0 ◆ scst_disk 8690 0 ◆ scst_vdisk 49497 0 ◆ scst 344380 3 fcst,scst_disk,scst_vdisk ◆ fcoe 15375 0 ◆ libfcoe 10524 1 fcoe ◆ libfc 66050 3 fcst,fcoe,libfcoe ipv6 219344 22 k10temp 2443 0 i2c_nforce2 5574 0 i2c_core 20569 1 i2c_nforce2 tg3 97786 0 ★ e1000e 158454 0 microcode 10563 0 pcspkr 1342 0 serio_raw 3316 0 qla2xxx 263249 0 ★ scsi_transport_fc 33685 3 fcoe,libfc,qla2xxx pata_acpi 2235 0 ★ scsi_tgt 8506 1 scsi_transport_fc ata_generic 2359 0 sata_nv 16359 4
6-1-4.状況確認その2
/usr/libexec/fcoe/fcc.sh FC HBAs: HBA Port Name Port ID State Device host7 20:64:00:1b:21:49:82:fa - Offline eth1.100
!コメント1!
Module読み込み後、HBAが認識されたことを確認してください。
また、Port Nameは次項で設定するWWPNとなるので、メモなどに控えておいてください。
6-1-5.SCST設定投入
以下のコマンドでTergetデバイスを設定
scstadmin -open_dev dev00 -handler vdisk_blockio -attributes filename=/dev/sdb1 scstadmin -add_lun 0 -driver fcst -target 20:64:00:1b:21:49:82:fa -device dev00 scstadmin -open_dev dev01 -handler vdisk_blockio -attributes filename=/dev/sdb2 scstadmin -add_lun 1 -driver fcst -target 20:64:00:1b:21:49:82:fa -device dev01
!コメント1!
簡単に説明を入れようと考えましたが、
コマンド投入後の出力結果に説明が記載されているので、
出力結果を以下に記載します。
以下のコマンド投入後、
scstadmin -open_dev dev00 -handler vdisk_blockio -attributes filename=/dev/sdb1以下のメッセージが表示されればOK
Collecting current configuration: done. -> Making requested changes. -> Opening device 'dev00' using handler 'vdisk_blockio': done. -> Done. All done.
以下のコマンド投入後、scstadmin -add_lun 0 -driver fcst -target 20:64:00:1b:21:49:82:fa -device dev00以下のメッセージが表示されればOK
Collecting current configuration: done. -> Making requested changes. -> Adding device 'dev00' at LUN 0 to driver/target 'fcst/20:64:00:1b:21:49:82:fa': done. -> Done. All done.
!コメント2!
「WWPN=20:64:00:1b:21:49:82:fa」の構成を記載しておきます。
結構重要ですw2 決まり文句(WWNNの場合は「1」) 0:64 16進数表記のVLAN番号(256*0+16*6+1*4=100)※ 00:1b:21:49:82:fa NICのMACアドレス ※ 例えば、拡張VLANの場合、 VLAN4010=f:aa({256*15}+{16*10}+{1*10}=4010)となる。
!コメント3!
「Zoningしたいぜ!」って方は、こんな感じでイケます。scstadmin -open_dev dev00 -handler vdisk_blockio -attributes filename=/dev/sdb1 scstadmin -add_group host00 -driver fcst -target 20:64:00:1b:21:49:82:fa scstadmin -add_lun 0 -driver fcst -target 20:64:00:1b:21:49:82:fa -group host00 -device dev00後はscstadminのmanやREADMEを読みつつ想像しながら格闘してください。
iscsiやqla2x00tについては、そこそこサンプルコマンドが記載されているのですが、
fcstは一切記載や説明が無く、上記はTry&Errorで確認したSyntaxなので。
でも「VLAN別ければ、Zoningしなくてもいいんじゃねぇ?」と思ってしまう。
Initiatorを明示的に指定するなら別だけど。
6-1-6.SCST設定保存
以下のコマンドで設定を保存
scstadmin -write_config /etc/scst.conf
6-1-7.SCST設定の確認
以下コマンドで保存したファイルを確認します。
vi /etc/scst.conf "/etc/scst.conf" 22L, 267C# Automatically generated by SCST Configurator v2.0.0. HANDLER vdisk_blockio { DEVICE dev00 { filename /dev/sdb1 } DEVICE dev01 { filename /dev/sdb2 } } TARGET_DRIVER fcst { TARGET 20:64:00:1b:21:49:82:fa { enabled 0 LUN 0 dev00 LUN 1 dev01 } }
6-2.FCoE Target有効化設定
6-2-1.WWPNのディレクトリ確認
ls -Fal /sys/kernel/scst_tgt/targets/fcst 合計 0 drwxr-xr-x 3 root root 0 2010-10-25 23:33 ./ drwxr-xr-x 3 root root 0 2010-10-25 23:33 ../ drwxr-xr-x 5 root root 0 2010-10-25 23:33 20:64:00:1b:21:49:82:fa/
*1:今度手順をアップしますね。
*2:VLAN Interface設定と同じ手順です。
Linux Route設定
LinuxでのRoute設定方法を記載します。
Route設定とRouting設定は明確に異なるので、注意してください。
私の勝手な定義となってしまいますが、以下の認識です。
Route設定
自己生成パケット&自分宛パケットの経路制御
Routing設定
自己生成パケット&自分宛パケットの経路制御に加えて、
他のデバイスより受信したパケットの転送&経路制御
そこで、今回はRoute設定を記載します。
Routing設定の場合、quaggaを使うと、RIPやOSPF果てはBGPまでもが、
CiscoライクなShellで動作するステキなルータになってくれます。
余談ですが、そこそこのメモリを積んだマシンでquaggaにてBGPを動作させると
The Internet上でフルルートの送受信もできちゃったりするスグレものですw
それでは行ってみよう!
1.テンポラリRoute設定
設定後、OS再起動すると消えるRoute設定方法です。
OS再起動後は再度Router設定する必要があります。
route add -net <NWアドレス> gw <GWアドレス> metric <メトリック> netmask <ネットマスク> <Interface>
具体例を以下に記載します。
以下のrouteコマンドにて現在のroute設定を確認しておきます。
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.11.0 * 255.255.255.0 U 0 0 0 eth0
以下のコマンドでroute設定を実施
route add -net 172.16.0.0 gw 192.168.11.1 metric 10 netmask 255.255.0.0 eth0
再度、routeコマンドにて設定後のroute確認
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.11.0 * 255.255.255.0 U 0 0 0 eth0 172.16.0.0 192.168.11.1 255.255.0.0 UG 10 0 0 eth0
2.パーシステンスRoute設定
設定後、OS再起動してもRoute設定が消えないようにする方法です。
以下のコマンドにてファイルを開きます。
vi /etc/sysconfig/network-scripts/route-eth0
ファイルを開いたら以下のように設定することでRoute設定ができます。
ADDRESS0=172.16.0.0 NETMASK0=255.255.0.0 GATEWAY0=192.168.11.1 ADDRESS1=172.17.0.0 NETMASK1=255.255.0.0 GATEWAY1=192.168.11.1 ADDRESS2=172.18.0.0 NETMASK2=255.255.0.0 GATEWAY2=192.168.11.1
このときのポイントとして、NexthopにGWアドレスを設定しますが、
route addコマンドのようにInterfaceを指定する箇所はありません。
その代わり、ファイル名でとして、指定しています。
従って、GWアドレスとInterfaceが同一ネットワークとなるよう、
ファイルなどを事前に確認するようにしてください。
networkサービスの再起動を実施
以下のコマンドでnetworkサービスを再起動
/etc/rc.d/init.d/network restart
念のため、Route確認を実施
routeコマンドにて設定後のroute確認
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.11.0 * 255.255.255.0 U 0 0 0 eth0 172.18.0.0 192.168.11.1 255.255.0.0 UG 0 0 0 eth0 172.16.0.0 192.168.11.1 255.255.0.0 UG 0 0 0 eth0 172.17.0.0 192.168.11.1 255.255.0.0 UG 0 0 0 eth0
以上です。
次回以降はWindowsネタにも触れていきたいと思います。
加えて、最近話題のFCoEネタを取り上げたいなぁと思っています。