ずいぶんとご無沙汰してましたが、あまり間が空くのもよろしくないので、少し仕事から離れたところで・・。
さて、1週間ほど前から、近所のソフマップ天王寺店の店頭にて、D945GCLF2というデュアルコアAtomを搭載したマザーが売られており、面白そうだったので買ってみました。
Atomには以前から興味があったものの、動作が少しもっさりしてるとのことで、1代前のD945GCLF(Atom230搭載)は敬遠してました。ただ、D945GCLF2では、デュアルコアのAtom330を搭載して、HTにも対応とのことで、HT有効時には4CPU分として利用できることもあり、悪くなさそうです。
また、SSDの32GBが1万円を切っており、せっかくなので両方試してみることにしました。
![]() |
![]() |
種類 | 型番 | スペック | 価格 |
---|---|---|---|
マザーボード | D945GCLF2 | Atom 330 i945GC Chipset 1000BaseT(Realtek RTL8111) |
\10,980 |
SSDディスク | CSSD-SM32NP | 32GB MLC | \9,980 |
ハードディスク | WD10EACS | 1TB 16MBキャッシュ 7200rpm? | \10,990 |
メモリー | Castor LoDDR2-2GB-800 | DDR2 2GB PC6400 | \3,980 |
ケース | \13,380 | ||
SATAケーブル | \675 | ||
SATA電源変換コネクタ | \390 | ||
\50,375 |
なお、マザーボード自体は、USBは当然のことながら、PCIバス1スロット、1000BaseT対応のLANポート、SATA×2ポート、PATA×1ポートなど、必要なものはすべて用意されています。また、PCIバスにLANカードを挿せば2ポートを実現できますし、RAIDカードも挿せますから、それなりに本格的なサーバとしても利用できそうです。
で、完成した写真は右のとおり。
5インチベイもあるケースでしたが、インストール時にDVDドライブをつけてみたものの、放熱が悪そうなこともあり、取り外してしまいました。
感想としては、発熱も音も少なく、なかなか良いハードウェアだと思います。
次にOSインストールですが、今回はCentOS5.2にしました。これがまた曲者で、今回はネットワークカードとSATAディスクのエラーの両方でかなりてこずりました。
まず、ネットワークカードですが、認識されるのに通信ができないという事態に見舞われます。原因は、実際に載っているチップがRTL8111なのに、r8169(RealtekのRTL8169)として認識されていることのようです。仕方がないので、とりあえず予備でおいてあったバッファローのLGY-PCI-GT(RTL8169搭載)を利用してeth1として認識させることに。
実際の運用開始時には、RealtekのウェブサイトからLinux版のドライバをダウンロードしインストールすることで解決します(後述)が、とりあえずインストールのときはeth1を利用しました。
そして、とりあえずネットワークカードはいったん問題を回避したものの、インストール後に、ディスク関係のエラーが山のように出るという問題に遭遇。そればかりか、延々とエラーが続き、マルチユーザモードでは立ち上がる気配すら見せません。
ためしに、SSDではなくハードディスクにインストールしてみると問題なかったのですが、せっかくSSDを買ったにもかかわらず使えないのも負けた気がするので、いろいろ調査した結果、カーネルのパラメータにirqpollを付加して急場しのぎができました。いや、これで数時間悩んでしまいました。
ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0 ata1.00: BMDMA stat 0x24 ata1.00: cmd 35/00:20:75:c9:03/00:02:00:00:00/e0 tag 0 dma 278528 out res 51/04:00:00:00:00/04:00:00:00:00/a0 Emask 0x1 (device error) ata1.00: status: { DRDY ERR } ata1.00: error: { ABRT } ata1.00: configured for UDMA/133 ata1: EH complete SCSI device sda: 62881792 512-byte hdwr sectors (32195 MB) sda: Write Protect is off sda: Mode Sense: 00 3a 00 00 SCSI device sda: drive cache: write through ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0 ata1.00: BMDMA stat 0x24 ata1.00: cmd ca/00:18:9d:ce:03/00:00:00:00:00/e0 tag 0 dma 12288 out res 51/04:00:00:00:00/04:00:00:00:00/a0 Emask 0x1 (device error) ata1.00: status: { DRDY ERR } ata1.00: error: { ABRT } ata1.00: configured for UDMA/133 ata1: EH complete SCSI device sda: 62881792 512-byte hdwr sectors (32195 MB) sda: Write Protect is off sda: Mode Sense: 00 3a 00 00 SCSI device sda: drive cache: write through [drm] Initialized drm 1.0.1 20051102 ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) -> IRQ 233 [drm] Initialized i915 1.8.0 20060929 on minor 0 hda: cdrom_pc_intr: The drive appears confused (ireason = 0x01). Trying to recover by ending request.
とりあえず、以下のように/boot/grub/grub.confを修正
title CentOS (2.6.18-92.el5) root (hd0,0) kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/VolGroup01/LogVol00 rhgb quiet irqpoll ←ココ initrd /initrd-2.6.18-92.el5.img
なお、上で書いたとおり、ネットワークカードが認識されていないので、RTL8111用のドライバインストールが必要です。
ドライバは、Realtekのウェブサイトからダウンロードでき、私がダウンロードしたのは r8168-8.008.00.tar.bz2というものでした。
これを、どこかのディレクトリで展開し、readmeファイルにあるとおりにインストールすれば完了です。
# make clean modules # make install # depmod -a # insmod ./src/r8168.ko # lsmod | grep r8168 r8168 36884 0 ← 表示されればOK後は、/etc/modprobe.conf の eth0に対するaliasを変更すれば、eth0の利用準備ができます。
alias eth0 r8168 ← 通常にインストールすると r8169になってしまっているはずこの後で、eth1として追加で挿していたバッファーローのネットワークカードを抜き、無事eth0としてオンボードのNICが認識されました。
# ethtool -i eth0 driver: r8168 version: 8.008.00-NAPI firmware-version: bus-info: 0000:01:00.0
これですべて終わりです。
なお、デュアルコアでかつHT対応なので、/proc/cpuinfoでは4つのCPUが見えています。シングルスレッドでシングルプロセスの場合には、それほどパフォーマンスに差は出ないかもしれませんが、サーバソフトウェアの多くは対応していると思われるので、十分に力を使いきれるのではないでしょうか。
Atom330のcpuinfo - 20080928-atom-cpuinfo.txt
ちなみに、BogoMIPSは12772.97と出ました。
Total of 4 processors activated (12772.97 BogoMIPS).
ディスクI/Oのほうは、SSDとHDDのパフォーマンスの差がなく、少々残念な結果になりました。
# hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 190 MB in 3.03 seconds = 62.72 MB/sec # hdparm -t /dev/sdb /dev/sdb: Timing buffered disk reads: 190 MB in 3.00 seconds = 63.32 MB/secまだ、DMAモードがOffなこと、32bit I/OがOffなことなど、チューニングの余地が多分にありそうです。 とりあえず、hdparmの -cオプションと-dオプションを利用してパラメータ変更を行おうとしましたが、エラーとなってしまったので、kernelのバージョンアップなど検討してみます。(それとも、そもそもチップがサポートしてないのでしょうか・・・そんなことはないと思うけど)
setting using_dma to 1 (on) HDIO_SET_DMA failed: Inappropriate ioctl for device setting 32-bit IO_support flag to 1 HDIO_SET_32BIT failed: Invalid argumentUNIXBenchの結果は、235.7とまずまずでした。
INDEX VALUES TEST BASELINE RESULT INDEX Arithmetic Test (type = double) 29820.0 159570.8 53.5 Dhrystone 2 using register variables 116700.0 2834237.1 242.9 Execl Throughput 43.0 1245.6 289.7 File Copy 1024 bufsize 2000 maxblocks 3960.0 102713.0 259.4 File Copy 256 bufsize 500 maxblocks 1655.0 28882.0 174.5 File Copy 4096 bufsize 8000 maxblocks 5800.0 299036.0 515.6 Pipe Throughput 12440.0 187493.0 150.7 Pipe-based Context Switching 4000.0 45235.4 113.1 Process Creation 126.0 5403.1 428.8 Shell Scripts (8 concurrent) 6.0 538.7 897.8 System Call Overhead 15000.0 324813.4 216.5 ========= FINAL SCORE 235.7UNIXBenchの結果
とりあえず、ディスク周りではまだ完璧で無い感があるものの、実際に利用した感想としては、予想以上にパフォーマンスが高いと思います。X上でFirefoxを利用していますが、ストレスは全く感じません。
また、バックグラウンドで地デジ録画をしながらでも、別の作業が重くなるということもなく、今のところは全く不満ありません。
トータルで3万円程度で自宅サーバ、ぜひ皆さんもいかがでしょうか。