NP12のCentOSでUnixBench


 VPSのUnixBench結果などがよく掲載されているので、NP12にCentOS5.5を入れた時のUnixBenchの結果は無いかなー、と思って探してみたが見付からなかった。
 という訳で、UnixBench 5.1.3を落としてきて、make。
 command not found。オウ…。
 えーと、yum groupinstall 開発ツール、辺りでいいかな。このコマンドラインには慣れないな(笑)。俺的には面白くていいと思いますが。
 そんでもって、makeも通ったんで実行。サーバとして稼動させたままなので多少結果が悪くなるかもだが。

   BYTE UNIX Benchmarks (Version 5.1.3)

   System: ***: GNU/Linux
   OS: GNU/Linux -- 2.6.18-194.32.1.el5 -- #1 SMP Wed Jan 5 17:52:25 EST 2011
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Atom(TM) CPU 230 @ 1.60GHz (3199.1 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   CPU 1: Intel(R) Atom(TM) CPU 230 @ 1.60GHz (3192.3 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   15:59:14 up 1 day,  6:30,  1 user,  load average: 0.24, 0.33, 0.16; runlevel 3

------------------------------------------------------------------------
Benchmark Run: 火  3月 01 2011 15:59:14 - 16:27:26
2 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        3204338.8 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                      589.4 MWIPS (10.0 s, 7 samples)
Execl Throughput                               1202.5 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        141671.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           42030.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        305172.2 KBps  (30.0 s, 2 samples)
Pipe Throughput                              465093.1 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  69150.4 lps   (10.0 s, 7 samples)
Process Creation                               4010.4 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1759.8 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    306.4 lpm   (60.1 s, 2 samples)
System Call Overhead                         939599.9 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    3204338.8    274.6
Double-Precision Whetstone                       55.0        589.4    107.2
Execl Throughput                                 43.0       1202.5    279.7
File Copy 1024 bufsize 2000 maxblocks          3960.0     141671.5    357.8
File Copy 256 bufsize 500 maxblocks            1655.0      42030.9    254.0
File Copy 4096 bufsize 8000 maxblocks          5800.0     305172.2    526.2
Pipe Throughput                               12440.0     465093.1    373.9
Pipe-based Context Switching                   4000.0      69150.4    172.9
Process Creation                                126.0       4010.4    318.3
Shell Scripts (1 concurrent)                     42.4       1759.8    415.0
Shell Scripts (8 concurrent)                      6.0        306.4    510.7
System Call Overhead                          15000.0     939599.9    626.4
                                                                   ========
System Benchmarks Index Score                                         318.1

------------------------------------------------------------------------
Benchmark Run: 火  3月 01 2011 16:27:26 - 16:55:43
2 CPUs in system; running 2 parallel copies of tests

Dhrystone 2 using register variables        4342089.6 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1046.2 MWIPS (10.0 s, 7 samples)
Execl Throughput                               1550.1 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         92862.2 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           25551.8 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        269021.5 KBps  (30.1 s, 2 samples)
Pipe Throughput                              391993.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 102501.7 lps   (10.0 s, 7 samples)
Process Creation                               4495.9 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2260.7 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    312.3 lpm   (60.3 s, 2 samples)
System Call Overhead                        1103687.9 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    4342089.6    372.1
Double-Precision Whetstone                       55.0       1046.2    190.2
Execl Throughput                                 43.0       1550.1    360.5
File Copy 1024 bufsize 2000 maxblocks          3960.0      92862.2    234.5
File Copy 256 bufsize 500 maxblocks            1655.0      25551.8    154.4
File Copy 4096 bufsize 8000 maxblocks          5800.0     269021.5    463.8
Pipe Throughput                               12440.0     391993.3    315.1
Pipe-based Context Switching                   4000.0     102501.7    256.3
Process Creation                                126.0       4495.9    356.8
Shell Scripts (1 concurrent)                     42.4       2260.7    533.2
Shell Scripts (8 concurrent)                      6.0        312.3    520.5
System Call Overhead                          15000.0    1103687.9    735.8
                                                                   ========
System Benchmarks Index Score                                         341.6

 ふむふむ。
 しかし、横長のテキストが見辛くなるテーマだなこれ…。つっても最後のスコアしか見ないからいいか。←SyntaxHighlighter導入で解決。したような、してないような。

 という訳で、318.1と341.6である。
 まあ、SOHOの社内Web+CGIとWINSとSSHのサーバにする程度なら、体感では全く問題無い。
 つーか2GBに増設したメモリが激しく余り過ぎてどうしようもない(笑)。Windows 7環境に戻す時は必須ですが。でももうそんな用途は無い気もするけど。いや、別のLinux鯖とか立てる日が来たらWindows 7環境に戻すこともあり得るか。


その後のFail2ban


 安定まで苦労したFail2banだが、今ではすっかり落ち着いておられる。
 そして今日、とうとうLogwatchからSMTP第三者中継失敗の報告が消えた。よくやった。

 ちなみに長期遮断に引っ掛かってるホストは全部中国だった。国ごと遮断する人の気持ちもすごく分かる気がする。しないけどさー。


Yumのグループインストールを使ってみる


 余り物状態で放置されていたNP12に、MBMによるWindows7とCentOSの二本立ての環境が整備出来て、これからLinuxサーバとしての華麗なる第二の人生が始まろうとしていた。が、そこにはcrondすら無く。
 という訳で、yum登場。先にEPELも入れといて、と。
 んー、色々と大量にインストールしたいから、groupinstallってのを試してみたいな。それじゃリストを出すか。yum grouplist、と。
 うむ。何かグループ名が全部日本語に翻訳されてるな。「システムツール」とか「管理ツール」とか。groupinstallに与える名前が知りたいのに。yum groupinstall システムツールとか実行しろっていうのか。
 いや、あれ、まさか。あ、そうなんですか。本当にそのコマンドが正しいんで。ウヘァ。
 確かにインストール出来ました。ははははは。Python3kのUnicode識別名とか使ったらもっと凄い違和感がありそうだ(笑)。
 それじゃーどんどん入れちゃうよー。


CentOSを入れてみるんどす


注意:
 普通にインストールするならこんな無駄な苦労は全く不要です!

前回までの登場人物

NP12
EPSON Endeavor NP12。定価32550円だが、いつ見ても限定クーポンで10500円引の22050円で売られている。小さくて安くて非力。メモリは2GBに増設済み。Windows 7とか入ってるけど、正直事務用としても少し厳しい重さ。Windowsで使うならIONなり何なりの方が良さげ。事務用でも。
USB HDD
USB接続キットで無理矢理繋いだ、その辺に余ってた250GBのベアドライブ。
カマクラ
USB HDDにFreeDOSを入れたパーティション。

前回の分かりにくいあらすじ

NP12にLinux入れたい→デュアルブートしたい↓
↓ブートできない←FreeDOS入れたい←MBM入れたい
GRUB4DOS入れた→FreeDOS入れた→MBM入れた↓
本当の戦いはこれからだ!←LinuxはいつものCentOSにしよう

 つーわけで。

 インストール先となるNP12に空き領域を作ろう。簡単だが。コンパネ→管理ツール→コンピュータの管理→ディスクの管理、から適当に右クリで既存パーティションを縮小出来る。こんな簡単だったっけ。Windows 7だから?

 次に、USB HDDにカマクラとは別のFAT32な32GBパーティション(以下ホンヤラ)を作った。そして、CentOSインストーラーを入れるのだが、DVD版とか巨大だからネットワークインストールを試してみようぜー、と思って、そうしてみた。つっても多分、以下はDVD版も同じ手順だろうけど。
 まず、CentOSインストーラーのISOイメージを落として、Explzhで開いてisolinuxディレクトリの中身をホンヤラのルートに突っ込む。楽勝である。
 ホンヤラのisolinux.cfgsyslinux.cfgにリネームして、syslinux落としてきて展開して、コマンドプロンプトでwin32ディレクトリに入ってsyslinux.exeに適当なパラメータ付けてホンヤラに書き込ませる。これも楽勝。
 NP12にUSB HDDを繋ぎ直して、MBMでホンヤラから起動すると、よしよし、CentOSのインストーラーの画面が出たぞ。もう後は簡単だろ、ははは。

 などと油断していたのだが。
 インストーラーをずんずん進めて、パーティション構成をカスタム設定にして、NP12の空き領域にext3で/にマウント、として。快調な雰囲気だったが、ブートローダーを書き込む設定のところで、USB HDDのMBRにブートローダーを書き込もうとしてるように見えてならない。非常に意味が分からない。どこから設定変えるんだこれ。わかんね。いっそ、ブートローダーを書き込まない、でどうなるか試してみるかー。
 そして、ずんずん進めてたらインストーラー落ちた。例外で落ちたよ!
 何が原因か良く分からないので、微妙に設定を変えてもう一度試す。ネットワークインストールだと、二度もやるのは無駄に重いでござるなあ。
 そして例外で落ちる。
 …適当に検索したところ、「Packages from CentOS Extrasを導入しようとすると落ちるぜ」とか書いてあった。三年以上前の日付で。長生きなバグだな、ちくしょうめ。

 三度目のインストール。くそう、重いぜ。何でこんなに重いのか少し不思議だが。
 でも、今度こそ順調にインストーラーが完走した。パッケージ選択では、何も入れないことにしてみた。面白そうなので。
 そして再起動して、MBMから選択して、起動しない。よしよし。予想通りのトラブルだ。よくねーけどな。
 要するにパーティションにブートローダーがいないのだろう。GRUB Legacyをgrub-installしてやればいいのだろうが、どっからやんのかな。多分ほぼ同じ中身のLinuxからじゃないとまずいよね。うん。つまりホンヤラからレスキューだね。

 四度目のホンヤラ。今度はインストールじゃなくて、linux rescueと打ち込んでレスキュー運用である。が、ネットワークインストール版なので、重いのは変わらない。うん。DVD版にすべきだった気がするよね。とっくにだけどね。
 んでシェルが来たんで、chroot /mnt/sysimageで騙くらかして、えーとNP12の目標パーティションは/dev/sda3みたいだから、grub-install /dev/sda3かな。そして、/boot/grub/device.mapに不要なエントリがあるからついでに除去しちゃって、と。(hd0) /dev/sda3以外要らないべ。
 そして再起動ー、っと。
 あ。GRUB設定してない。
 もちろん起動しないが、GRUBシェルまでは行くから、勘でkernelパラメータを打ち込んでみる。そんなファイル無いと言われる。lsとか取れないのかなこれ。カーネルのバージョンが分からないと無理ですなあ。ははは。

 五回目のホンヤラ。D・V・D! D・V・D!
 さっきと同じ手順でchrootして、/bootのファイル名を確認し、

# touch /boot/grub/grub.conf
# ln -s /boot/grub/grub.conf /boot/grub/menu.lst

って感じに作って、/etc/fstabを見たりしながら適当に編集。

default=0
timeout=3
title CentOS (2.6.18-194.el5)
    root (hd0,2)
    kernel /boot/vmlinuz-2.6.18-194.el5 ro root=LABEL=/
    initrd /boot/initrd-2.6.18-194.el5.img

こんな感じかな。

 そして、再起動。流れるブートログ。とうとう任務が完了したのだ。
 が、そこにあったのはcrondすら無い荒野だった。誰が…、こんなことを…。
 sshdを入れた途端にまるっきりいつも通りの楽な作業になったけどな。

 なお、Windows 7でクライアントとして使うには非常に非力だったNP12だが、SOHOのLinux鯖としては全く問題無さそうだった。リモート管理だとビデオ性能も全く要らないし。何だか大満足の転身劇である。
 そして、これが思ったより便利なのであった。Windowsしか使わない事務所なのに。Sambaすごいなあ。


DOSを入れてみるんどす


 やめろ。

 USBに突っ込むと起動する、みたいなDOS環境があるとすごく便利ですよね。あらかた嘘ですが。memtestとか使うには便利かもしんないですね。
 まあ、今回はDOSが必要なのだ。NP12のLinuxサーバ化計画では最終的にデュアルブートにする予定なので、ブートの仕組みを調べたが、MBRに便利なブートローダーを入れるべき、と熱弁してるとこがあって、こういう仕組みならそうなるよなあ、と。で、MBMもお勧めされてるんだけど、DOS用なのでありますなあ。

 という訳で、作業開始。
 ただし、フロッピーは使えません。CDも使えません。USBメモリも使えません。USBなHDDだけが使えます。OSはWindows XP以降だけです。何この激しい縛り。XPだと起動ディスクもFDにしか作れないんだよな確か。つーかUSBメモリなんか糞安いんだし買ってこいよ俺。ついでにピザポテトとコーラもな。
 などと思いつつ、面白そうなので気合で何とかしてみようとする。
 お役御免となっていた250GB HDDをUSB接続キット(NV-TW130U)でUSBに接続してー、FreeDOSのイメージを適当に用意してー…。

 ここで一度目の躓き。FreeDOSの配布場所にはISOが置いてあるが、今回はCDが使えない。ISOの中にはFDイメージもあるが、FDも無い。
 めんどくさいので、commandとkernelの最新っぽい奴のバイナリっぽい奴をバラで落とす。多分フォーマット直後にカーネルを最初に書き込めば平気なんじゃないかな、DOSだし。知らんけど。つーかFreeDOSにこだわらんでも、Virtual Floppy Driveを入れて起動ディスク作らせて抜き取る方が楽かもしんないけど。

 で、作業再開。次はブータブルなHDDの作成だな。
 DOSを入れる為の32768MBのFAT32パーティション(以下カマクラ)をクイックフォーマットで作成してー、HP USB Disk Storage Format ToolでFreeDOSの入ってるフォルダを指定して再度クイックフォーマットをカマクラ…。
 はい今死んだ! 今"the user-supplied DOS system files are not compatible with FAT32."とか出て死んだよ!
 マジうぜえ。2047MBのFAT領域を作ってみても駄目だし。えーと、HP USB Disk(略)が2.1.8だと駄目みたいだな。2.2.3だと突破出来たぜ。でも、突破しただけで結局起動しなかったから全然意味無いけどな!

 何かこー、あれですよ。手軽にWindows上からHDDにブートローダーを入れられれば、それで何とかなるはずじゃないですか。MBRとカマクラの両方にな。
 そして、探してみると、grubinstがまさにそれであった。何だよ結局GRUBかよ。GRUB4DOSかもしれないけど。まあいいや、とにかく入ってみようぜ。こっちだ越前。
 展開すると、中にはgrubinst_gui.exeなどという眩しげなファイルも見えたり。早速そいつを起動して、MBRとカマクラに書いて、と。あとはFreeDOSを適当にカマクラにコピーして、NP12にUSB HDDを繋いで、BIOSのブート優先順位を変えて、さあ起動だ。はい今"No Grldr"とか出て死んだ!
 grub4dos-0.4.4.zipとか適当に拾って、中のgrldrをカマクラにコピーして、もういっちょ。おお、GRUBのシェルが出たぞ。ゴールは近い予感。えーと、

> chainloader /kernel.sys
> boot

でどうだ。
 お、FreeDOSが起動した。すげー、起動したよー。でも面倒だからmenu.lstとか書こうな。

 という訳で、USB接続の外付けHDDにFreeDOSを突っ込んだ手順をまとめると、

  • 面倒なのでUSB HDDのパーティションを全開放(空き領域を作るだけで十分だろうけど)
  • 32768MB以下の適当なサイズの領域(もう一度言うけど以下カマクラ)を作って、FATかFAT32でクイックフォーマット
  • 何となくカマクラをアクティブにしてみる
  • FreeDOSのibiblioミラー(リンク切れ)からkernelディレクトリに入って、適当に新しそうなバイナリ拾って、その中のkernel.sysをカマクラにコピー(GRUBならフォーマット直後でなくてもいいのだろうか?)
  • 同じとこからcommandディレクトリに入って、command.com, config.sys, autoexec.bat辺りをカマクラにコピー
  • 他にもDOSで使いたいツールをどんどんカマクラ送り
  • grub4dos-*.zipを拾って、grldrをカマクラ送り
  • grubinst-*-bin-w32-*.zipを拾って展開し、grubinst_gui.exeを起動
  • Diskのリストから正しいドライブを絶対に間違えないように選択し、Part ListのRefreshを押し、リストからWhole Diskを選択してInstallし、さらにリストからカマクラも選択してInstall
  • カマクラにmenu.lstファイルを作り、中には
    title Boot FreeDOS 
    root (hd0,0)
    chainloader /kernel.sys

    とか書いておけばいいのかも?

という感じ。
 あ、Windowsで接続されたUSB HDDを引っこ抜く時は、ハードウェアの安全な取り外しがもちろん必須。DOSの方は遅延書き込みとか無かった気がするからどうでもいいが。多分。

 以上のあやふやな手順により、めでたくカマクラDOSが起動したので、NP12のMBRにMBMを書き込む。これでもうBIOSのブート順位も元の平常運転に戻せるし、USB HDDにどんどんOSも増やせそうだ。
 という訳で、早速Ubuntu…、いやCentOSにしよう。何かもう新しいの覚える気力が無いんだぜ。

 そしてここから、もう一つの山場が待っていたのであった。