なんとなくやりたい「ギガ」
我が家のサーバーでは玄人志向のギガビットLANカード「GbE-PCI2」を使用しています。また、このカードに使われているチップはVIA製VT6122です。CentOS4.2にはVT6122用のドライバーが同梱されているので、ネットワークカードを差してOSをリブートするだけで認識します。が、この状態でJumboFrameを有効にすると(MTUを9000にすると)、システムがハングします。ドライバに問題があるのでしょう。そこで、VIAのHPからドライバをダウンロードしてインストールします。
ドライバのダウンロード
今回はソースをダウンロードしました。VIA ARENAというVIAのサポートサイトがありますので、そこから入手します。http://www.viaarena.com/default.aspx?PageID=420&OSID=25&CatID=2590&SubCatID=130
以下作業手順
適当なディレクトリにダウンロードしたファイルを保存
tar xvf velocityget.tar
1.23というディレクトリが作成される。作成されたディレクトリの中にあるlinux.txtを読む。インストール方法が記載されているので必見。
おもむろにコンパイル
make
make install
make install
そうすると、オブジェクトファイル(velocityget.ko)がカーネルのドライバーディレクトリに作成さるので確認します。
ドライバディレクトリはCentOSの場合以下の場所です。
/lib/modules/KERNEL_VERSION/kernel/drivers/net
カーネルのバージョンが分からなければ以下のコマンドで確認します。
uname -r
コンフィグファイルの確認
vi /etc/modprobe.conf
先頭行を以下の通り書き換えます。
alias eth0 via-velocity
↓
alias eth0 velocityget
↓
alias eth0 velocityget
ここまで出来たらサーバーをリブートします。
shutdown -r now
ドライバの読み込み
insmod
/lib/modules/KERNEL_VERSION/kernel/drivers/net/velocityget.ko
JumboFrameの有効化
ここで、JumboFrameを有効にしようと、
ifconfig eth0 mtu 9000
を実行したところ、システムがハングしてしまいました。で、lsmodで読み込まれているドライバを確認すると、「via-velocity」がリストアップされます。そこで、モジュールのアンインストールを行う。
rmmod via-velocity
このコマンドで正しいのかどうか分かりませんが(汗)
再度lsmodを実行すると、今度はvelocitygetだけがリストアップされます。ifconfigでのMTU変更ではハングしてしまったので、コンフィグファイルでMTUを変更します。理屈から言えばifconfigでハングするんだからコンフィグファイルでもハングするはずなんですが、まあ、とりあえずやってみる。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
MTU=??と書かれた行がなければ、以下の行を追加
MTU=9000
ここまで来たら、ネットワークの再起動を行う。
/etc/sysconfig/network-scripts/ifdown
これでネットワークが使えなり、当然Macからは操作出来なくなるので、直接サーバーにログオンしてネットワークを起動します。
/etc/sysconfig/network-scripts/ifup
これで、MTUが9000になりました。
ドライバーの状態確認
eth0 Link encap:Ethernet HWaddr 00:02:2A:DD:1A:1B
inet addr:***.***.***.*** Bcast:***.***.***.*** Mask:255.255.255.0
inet6 addr: fe80::202:2aff:fedd:1a1b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1
RX packets:17553 errors:0 dropped:0 overruns:0 frame:0
TX packets:7981 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:661218 (645.7 KiB) TX bytes:48405285 (46.1 MiB)
Interrupt:9 Base address:0xc800
ただしく、MTU:9000と表示される事が確認出来ます。
inet addr:***.***.***.*** Bcast:***.***.***.*** Mask:255.255.255.0
inet6 addr: fe80::202:2aff:fedd:1a1b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1
RX packets:17553 errors:0 dropped:0 overruns:0 frame:0
TX packets:7981 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:661218 (645.7 KiB) TX bytes:48405285 (46.1 MiB)
Interrupt:9 Base address:0xc800
参考
Intelのサイト
http://support.intel.co.jp/jp/support/network/adapter/1000/linux_readme.htm
http://oyarest.exblog.jp/m2007-02-01/