2013年4月1日月曜日

メインマシン ThinkPad T510 に R2021D を搭載

メインマシンとして ThinkPad T510 で、Windows 7 Professional と CentOS 6 をマルチブートで使用しています。純粋な Linux サーバであれば、md を使ってソフトウェア RAID1 にして運用するところですが、ノートPCで かつ Windows も使う環境ということで、OS 領域の RAID 化は諦めていました。データ領域については、eSATA 接続の ハードウェア RAID1 を利用しています。

もしメインマシンの OS ディスクが壊れたら、復旧が面倒だし結構ダメージ受けるなあとは思っていたのですが、先日、mSATA SSD 2枚で、2.5 inch ディスクサイズの RAID1 を構築できるユニット R2021D が発売され、面白そうだったのもあり、導入してみることにしました。
以下、少しレビューです。

まず、変換基盤裏面はこんな感じです。RAID のモードを設定するディップスイッチがあるのですが、ON / OFF の説明と逆向きになっています。


次は、表面に mSATA SSD 2枚 を搭載した状態です。今回は、PLEXTOR M5M 256G をチョイスしました。添付されていた説明書では、どのネジで mSATA SSD を留めるのかが分からず、意外と苦戦しました。加えて、mSATA SSD は初めて取り扱ったので神経使いました。


Windows 領域の引越しのため、ThinkPad の 2nd HDD アダプターに載せた状態です。

こちらを、DVD ドライブベイに差し込んで、元ディスク (Intel SSD 520 240G) 上の CentOS 6 を起動して、dd で丸ごと OS の引越しを行いました。
# dd if=/dev/sda of=/dev/sdb bs=1M  ※この類の操作をする際は、hdparm -I 等で個体確認必須です

メインディスクを入れ替えて、換装終了です。

この画像は、当初搭載されていた HDD のマウンタを R2021D に着けた状態です。

Windows 7 を起動して、RAID 管理ツールから状態を確認。


参考までに、CrystalDiskMark の数値はこの程度でした。


載せ換える前まで使っていた Intel 520 よりは性能が劣りますが、OS 起動時間はほとんど変わりませんでした。
マルチブートの CentOS 5 および 6、それと FreeBSD 9 の起動にも支障ありませんでした。

CentOS 6 からは、次のように見えます。
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata1.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
ata1.00: ATA-7: JMicron H/W RAID1, 0959, max UDMA/133
ata1.00: 500039680 sectors, multi 1: LBA48 
ata1.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
ata1.00: configured for UDMA/133
ata1.00: configured for UDMA/133
ata1: EH complete
scsi 0:0:0:0: Direct-Access     ATA      JMicron H/W RAID 0959 PQ: 0 ANSI: 5

2013-05-31追記
M5M (FW 1.02) は、かなり熱を発っするようでしたが、FW を 1.03 にアップデートしたところ、改善されたように思われます。FW アップデートには、AREA の上用賀というアダプタを利用しました。

2013-10-26追記
M5M の FW 1.04 が出ていたので、アップデートしました。更新履歴には4点ほど改善点が書いてありました。
2013/10/11 1.04 
This firmware revision improves: 
1. Drive compatibility with Lenovo/Dell NB. 
2. Data error recovery capability 
3. Drive health on platform which support DEVSLP. 
4. Drive stability when execute GC 
R2021D との組み合わせでは、負荷が掛かると不安定 (mirror が外れる) な時がありましたが、負荷に強くなったように思われます。

2013-11-27追記
M5M の FW を 1.04 にアップデートしてから1ヶ月経過しましたが、実に快調で、1度も mirror が外れることはありませんでした。それと、1.03 と比べても発熱し難くなった感じです。ThinkPad T510 の HDD ベイ位置は左手の下あたりで、M5M 2枚ということもあり、初期の FW では物凄く熱くなってましたが、現在の FW 1.04 では、元々載っていた HDD よりも冷たいぐらいな感触です。Plextor さんのエンジニアに感謝です!
mSATA SSD を使うマシン環境が他にありませんが、もし新規のマシンで mSATA 使うんなら、現時点なら、迷わず M5M を選ぶと思います。DEVSLP にも対応してますしね。

2014-01-25追記
M5M の FW 1.05 が出ているようです。
20140109 1.05 
This firmware revision improves: 
1. Drive stability while computer be accidentally powered off due to 
unexpected external operations. 
2. Read and write performance 
consistency on Linux operating systems 
Linux 向けの修正が入っているようで興味を惹かれますが、現在 1.04 で不都合は無く、アップデート作業は結構手間 (R2021D からの mSATA 取り出し、バックアップ/リストア) なので、今回は見送りたいと思います。

2014-02-26追記
玄人志向から出た mSATA RAID アダプタ(KRHK-mSATAX2/S7)を試してみました。
私のマシンは SATA2 までなので、M5M を十分活かせていませんが、R2021D よりも性能アップするのでは?と思ったのですが、結果は大して変わらず。

さらに、残念ながら私のマシン環境(ThinkPad T510 + KRHK-mSATAX2/S7 + M5M 256G x 2枚)では安定動作せず、マシンを再起動するとディスク(RAID1 ボリューム)を見失うことがあり、常用できませんでした。
加えて言うと、JMicron のチップ JMS562 が載っているのですが、RAID 管理ツールが使えず(説明書にも記載なし)、動作状況を把握するのに基板上の LED を見ないといけませんので、その点でも常用は無理でした。
ということで、結局 R2021D に戻しました。3千円台というお手頃値段でしたし、あきらめて、お蔵入りです。

2014-03-01追記
KRHK-mSATAX2/S7 を試行した際に、M5M の FW を 1.05 にアップデートしていたのですが、R2021D に戻してから性能が落ちた状態(seq READ/WRITE が 120MB/s くらいだったので RAID アダプタと mSATA の間のリンクが 1.5Gbps に落ちていた?)になり、secure erase を行ったり、RAID ボリュームを再作成したりしましたが回復せず、まさかとは思いつつも、M5M の FW を 1.04 に戻してみたら、以前の性能に戻りました。自分には分かりませんが FW 開発(各種チューニング、トレードオフ)は難しいのだろうなと想像します。なお、Plextor さんの場合、古い FW は公開されてないようで、以前ダウンロードしたのを消さないで放置していてよかったです。

2014-03-12追記
ディップスイッチの状態です。


2014-07-29追記
M5M の FW 1.06 が出ているようなのですが、いつの間にか、名前と Email アドレス(必須)を入力しないとダウンロードできなくなったようです。これは、結構がっかりです。次回以降 SSD を調達する際、マイナスポイントとして考慮してしまうと思います。修正内容は、公開されている PDF (こちらは Email アドレス入力不要)に、次のように記載されてます。
2014/07/08 1.06
This firmware revision improves:
1. Response ability during executing GC and operating.
2. Lag problem when doing S4/S5 under few specific situations and platforms.
わたしの環境では、1.05 で問題があり、1.04 に戻した経緯があり、その後は、全く問題ないので、1.06 のダウンロードは見送りたいと思います。


2015-10-25追記
T510 も、まだまだ現役で利用していますが、メインマシンは W520 に変更しました。
ThinkPad W520 で SSD 2台で IRST(インテルラピッドストレージテクノロジー)RAID1
ThinkPad W520 の HDD を SSD へ引越し

2013年3月24日日曜日

ThinkPad T510 + CentOS 6.4 に NVIDIA ドライバを導入する手順

現在、ThinkPad T510 をメインマシンとして利用しています。このマシンにはディスクリートGPU (NV3100M Optimus対応) が載っています。CentOS 6.4 の標準ドライバでも、とりあえずは X の起動に支障はないのですが、Desktop Effects を使いたいため、NVIDIA のドライバを導入してみました。以下、その手順です。

あらかじめ、NVIDIA のドライバをダウンロードしておきます。
# ls -l NVIDIA-Linux-x86-310.40.run 
-rwxr-xr-x 1 root root 38883580 Mar 24 11:51 NVIDIA-Linux-x86-310.40.run
NVIDIA ドライバは、dkms に対応しているので、もし dkms が未導入の場合は、EPEL から dkms を入れておきます。
# yum install dkms --enablerepo=epel
標準ドライバがロードされないように、/etc/modprobe.d/myblacklist.conf を新規作成して次のように設定します。
blacklist i915
blacklist nouveau
initramfs に反映するため、dracut コマンドを実行します。
# dracut -f /boot/initramfs-`uname -r`.img `uname -r`
再起動して、BIOS の設定を次のように変更します。
ランレベル3で起動して、ドライバをインストールします。
# ./NVIDIA-Linux-x86-310.40.run
簡単な英語で、いくつか尋ねられますが、特に dkms にするかどうかに注意すればよいかと思います。
# dkms status
nvidia, 310.40, 2.6.32-358.el6.nonpae.i686, i686: installed
spl, 0.6.0, 2.6.32-358.el6.nonpae.i686, i686: installed
zfs, 0.6.0, 2.6.32-358.el6.nonpae.i686, i686: installed

省電力機能も、ちゃんと動いている様子です。

2013-06-30
利用頻度は低いのですが、まだ CentOS 5 にも用があり、久々にマルチブート環境を起動していじくってましたが、FireFox のスクロールが遅くて耐えられず、CentOS 6 と同様に NVIDIA ドライバをインストールしてみたのですが、特に障壁はなく、すんなりインストールできました。

2014-11-14
CentOS 7 の場合については、こちらを参照。
ELRepo の kmod-nvidia を利用すると らくちん です。

2013年2月24日日曜日

NIC の ifup の際に eth パラメータを調整したい

CentOS 6 において、サーバ起動時の eth0 初期化時に、ethtool による調整を行いたいのですが、/etc/sysconfig/network-scripts/ifcfg-eth0 に指定可能な ETHTOOL_OPTS は、ethtool -s に対応しており、それ以外の ethtool 調整には対応していません。今回、ethtool -G による調整を行いたかった為、その方法について調べてみました。
真っ先に思いつく方法は、rc.local に書いてしまえばいいということなんですが、/sbin/ifup の内容を読んでみると、ローカルな設定を行えるようにする仕掛けがありました。次は、ifup から抜粋です。
...

if [ -x /sbin/ifup-pre-local ]; then
    /sbin/ifup-pre-local ${CONFIG} $2
fi

OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-${DEVICETYPE}"

if [ ! -x ${OTHERSCRIPT} ]; then
    OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-eth"
fi

exec ${OTHERSCRIPT} ${CONFIG} $2

ということは、自分で /sbin/ifup-pre-local を用意すれば、所望の設定が出来そうです。次のような具合。
#!/bin/bash

DEV=${1/ifcfg-/}

if [ "$DEV" = "eth0" ] ; then
    ethtool -G $DEV rx 4096 tx 4096 2>/dev/null
fi
これで、うまくいきました。
# ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX:  4096
RX Mini: 0
RX Jumbo: 0
TX:  4096
Current hardware settings:
RX:  4096
RX Mini: 0
RX Jumbo: 0
TX:  4096

この黄色の部分を調整したかった。

2013-02-26追記
匿名さま、コメント(Bugzilla情報)をありがとうございました。ifcfg-eth0 に次のように指定すれば、ethtool -G も指定可能だったのですね。確認足りませんでした。orz
ETHTOOL_OPTS="-G \$REALDEVICE rx 4096 tx 4096"

2013-02-27追記
匿名さま、たびたびコメントを頂きありがとうございました。network-functions を見てみたら、ご指摘のとおり、eval のアイデアは取り込まれておりませんでした。というわけで、こうなってしまうのですね。
ETHTOOL_OPTS="-G eth0 rx 4096 tx 4096"
コピーして間違いを犯しそうではありますが。。
人気ブログランキングへ にほんブログ村 IT技術ブログへ