オレのショボい PC パワーアップ大作戦

Getting mighty power my poor PC , by SHIBATA Akira
作成 2008/06/16

■はじめに

オレの PC はショボい!この記述をお読みのあなたはどうだろう?富豪的 PC でパワー余りまくりだったら、この記事を読む必要はない。帰れ!(笑)

さて、ショボい PC をお持ちの諸君、この記事の目的は少しでも高い計算機リソースを使おうとする当方の努力をここに公開して、エコに必要な三つの R すなわち、 Recycle ・ Reuse ・ Reduce を実現する。まさに地球に優しい真のエココンピューティングを実現することなのだ。※ 1

サーバは離れたところにあってもいいし、近くにあってもよい。当方のように枕元にサーバがあって、気温 25 ℃を超えると爆音を発する HP の ProLiant 君を愛しく想いつつも、疎ましく思うという、とってもアンビーバレンツな状況を打破するために便所に追いやった筆者は罪人である。冬場は零下になりそうな便所を若干暖めてくれるので、脳卒中を避けられるかもしれない。夏場は、暑い便所の空気をケースのファンがかき回してくれるので、気温は高いけどちょっと涼しいかもしれないが、体感はやっぱり暑い。

※ 1 ウソです。本当は金がないから新しい高性能 PC を買えなくて虚勢を張っているだけなの。しかもデスクトップ用 PC って高いじゃない?サーバは激安なのに…じゃぁデスクトップ用にサーバを使うとウルサイし…。

○オレの PC を紹介?

ではタワゴトはたいがいにして、オレの PC を紹介しよう。仕様は下の通りだ。

見た目はこんな感じだった。…だった。

在りし日のオレの PC の図

web によると、 1999 年 5 月 13 日デビューとのことだ。当時ではそこそこの性能である。…が、今ではやっぱり見劣りする。というか、ちょっと重い処理をすると時間はかかるし、すぐに CPU ファンが回りだしてやっぱりやかましい。

○ いまの見た目はちょっと違う

しかも、いまはちょっと改造というか…下のような見た目だ。

現在のオレの PC の図

別にウケを狙ったわけではない。もともとノート型の PC だが液晶画面の表示が出なくなったのだ。バックライトに問題があったわけではなく、液晶パネルにフィルム基板がついていたのだが、それがはがれて接触不良ということだった。こんなの半田付けできないので、画面部をとっぱずして、キーボードのついている本体にあまっていた液晶モニタをつけたのだ。外部モニタとしてやれば問題なく使えるのだ。まぁ、省スペースデスクトップというか、キーボード一体型といえばそんなものでもある。画像 OUT (D-SUB 15 pin 3 列) 以外に、シリアル I/O (D-SUB 9pin)、 USB 、プリンタ、フロッピーディスクドライブ、 CD-ROM ドライブと一通りそろっているのだ。動作が遅いことはおいといても入出力装置としては悪くない。

動作が遅い原因は最高クロックが低いせいだけではない。もともとノートパソコンは電池を長く持たせるために平常時でもクロックは低めだろうし、ましてや CPU が熱くなってファンが回っているときは、温度上昇を抑えるためにもクロックがより低くなるということで、早い処理を期待する時には悪循環にハマるわけだ。


■現状の問題点と解決案

「オレの PC 」の問題点を列記してみよう。

理由は簡単だ。計算機リソースが小さくていっぱいいっぱいだからだ。

次に計算機リソースを考えてみる。

だから重い仕事は ProLiant 君にやらせて表示を「オレの PC 」で行うという考え方は悪くないハズだ。だが、その画面を飛ばす方法と OS が違うことが問題なのでその辺を検討しよう。

○ 画面飛ばしの方法の検討

VMware Player を動かして、画面を飛ばすことを思いついた。そのスジで有名なのは X Window System だ。しかし、個人的に考えるとほとんど使ったことのない X は難しい。ほかには vnc がある。 vnc は早い PC でも遅い PC でもなんとなーくモッサリ感が取れない。ふと、思い立ったのは ProLiant 君で VMware Server を動かして Server Console を手元の「オレの PC 」で動かすとリモートデスクトップみたいにならないか?ダメだったら vnc や X にチャレンジということだ。試す順番は下のようにしてみよう。けっきょく今回は 1 で成功した。

  1. VMware Server を ProLiant 君に、 VMware Server Console を「オレの PC 」で (初体験)
  2. VMware Player を ProLiant 君に、 vnc を「オレの PC 」で (vnc は経験アリ)
  3. VMware Player を ProLiant 君に、 X を「オレの PC 」で (X on Windows は経験なし)

■構築の実際

例によって、筆者は Debian GNU/Linux ( 2008 年現在のバージョンは Etch だ。) で構築する。

VMware Server のダウンロードとライセンスの取得およびインストールの詳細についてはほかの資料を参照してくれ。キモな部分だけ書いておく。また、後で「オレの PC 」用に VMware Server Console をインストールして使うので、一緒においてある VMware Server Console を OS の種類をあわせて (今回の場合は Windows 用) ダウンロードしておこう。

VMware Server 上で、『「オレの PC 」で動かしている Windows 』相当を稼動させるが、表示はいらないハズだ。そう考えて、いきなりインストールにチャレンジしてみるが、結果的にはどれもうまくいかなかった。

# /etc/init.d/vmware start
Starting VMware services:
   Virtual machine monitor                                            failed
   Virtual ethernet                                                   failed
   Bridged networking on /dev/vmnet0                                  failed
   Bridged networking on /dev/vmnet2                                  failed
   Bridged networking on /dev/vmnet3                                  failed

面倒クサくなったので、インストール作業はルート権限で tasksel を起動してデスクトップ環境をいれたら、まぁほしいもの以外 (たとえば Linux 上では使わないので OpenOffice.org などが入っても使わない) も入ったが、すんなりいったのでいいこととしよう。

Package configuration
 lqqqqqqqqqqqu Software selection tqqqqqqqqqqqk
 x You can choose to install one or more of   x
 x the following predefined collections of    x
 x software.                                  x
 x                                            x
 x Choose software to install:                x
 x                                            x
 x    [*] Desktop environment                 x
 x    [ ] Web server                          x
 x    [ ] Print server                        x
 x    [ ] DNS server                          x
 x    [ ] File server                         x
 x    [ ] Mail server                         x
 x    [ ] SQL database                        x
 x    [ ] Laptop                              x
 x    [ ] manual package selection            x
 x                                            x
 x                                        x
 x                                            x
 mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

○ VMware Server Console を起動

VMware Server をダウンロードしたときに VMware Server Console をもダウンロードしておいたと思う。それを手元の装置(今回は「オレの PC 」)にインストールする。インストールが終わったら早速起動してみよう。

VMware Server Console の起動に成功すると下のように、「どこに接続するか?」と聞いてくるハズだ。 VMware Server をインストールするときにどのポートで待ち受けているかの質問があったのだが、標準では 902 番だ。

Please specify a port for remote console connections to use [902]

902 から変更してなければ、インストールした ProLiant 君の IP アドレスと、アカウントとパスワードを入れて OK すればよい。

Connect to Host の図

希望的には最初は下のような画面になってつながるハズだ。

VMware Server Console 最初の起動の図

そうしたら、右のペインにある New Virtual Machine をクリックして新しく Virtual マシンを作って使うことができる。ここまできたら一般の VMware 関連サイトにある情報を参考につかってみよう。 なお、筆者の場合インストール CD-ROM を Client (要するに「オレの PC 」) に突っ込んでリモートにある ProLiant 君にインストール可能だと思ったのだが、うまくいかず、結局便所に置いた ProLiant 君の CD-ROM ドライブを開けて入れに行ったのだった。

ダメパターン

VMware Server Console 物理ドライブ選択の図 Client に置いた場合

ウマくいったパターン(まぁ標準なんだけど)

VMware Server Console 物理ドライブ選択の図 Host に置いた場合

この辺が注意が必要な気がするが、何とかなるだろう。


■セキュリティ

当初予定していた、計算機リソースをよりパワフルなマシンで使うという目的は達成したが、今回それ以外にもメリットが出た。

  1. 作業していて、ちょっと時間がかかりそうだなーと思っても手元 PC をすぐにシャットダウンできる。というのも、ネットワーク越しに ProLiant 君で動いている Windows なのだから、 VMware Server Console を閉じても影響がない。後で再び VMware Server Console を同じユーザで開けば作業を再開できるわけだ。
  2. 実はこの VMware Server を動かしている ProLiant 君だが、自宅ネットワークの NAT ルータも兼ねている。したがって外部からも IP アドレスがわかれば参照して作業できるのだ。

ところで、上記 2 だが、外部ネットワークから参照するわけだから、セキュリティリスクも高まる。ちょっと考えると

メニューをよく見ると、 Host → Settings → Connection でなんか SSL 使ってというような、ソレっぽいメニューがある。確か起動したあとも右下に鍵マークあるし。

VMware Server Console メニューで SSL を選択しているの図

しかし、本当に SSL でつないでいるのかについてはパケットキャプチャしてもよくわからなかった。というか、パケットキャプチャできるが、中身はぜんぜんわからない (爆)。そこで、イージーな方法として ssh でトンネルを掘ることにした。例として TeraTerm での手順は Setup → SSH Forwarding → Add ボタン→ Forward local port を適当な値(たとえば 1902 )にして、 to remote machine を指定 (今回は ProLiant 君の IP アドレス 172.18.211.172 )にして、 VMware Server のインストールのときに指定したポート(標準では 902 で、今回も 902 ) にして OK し、 ProLiant 君にログインしてみる。

VMware Server Console を TTSSH の ssh forwording しているの図

詳しい原理はほかの情報に譲るが、これで「オレの PC 」 で動いている VMware Server Console と ProLiant 君上で動いている VMware Server との間はひょっとすると SSL で接続されているのかもしれないが、それも含めて ssh トンネルの中を通るので経路はほぼ安全といえよう。あとは VMware Server が動いている装置(今回は ProLiant 君)で iptables をつかって port902 をふさげばほぼ完璧♪

つまりローカルホスト 127.0.0.1 の 1902 につないで、それをサーバの ssh ポート 22 から 902 に内部で接続ということだ。

VMware Server Console を localhost から ssh forwording しているの図

■まとめ

この仕組みによって、ショボい PC でも高性能な計算機リソースが使えるようになる。たとえば「オレの PC 」で表示する mixi のペイジは日記を書こうと思っても表示に 20 秒くらい待つことがあってゲンナリしていたが、 ProLiant 君の中で動かしたら、待ち時間はなくなった。非常に快適だ。 ただし、動画の表示などは VMware Server の目的外なので、効果はほぼないと思われる。 Java Script とか、あるいは表計算ソフトのマクロが非常に遅いとかには大きな効果が期待できるハズだ。 今回はほんの素材なので、いろいろな応用を試してみて欲しい。

Good Luck !

○おまけ

参考にサーバでの CPU 稼働率を見ると下のようになった。 PC として使ってないときは 30% にも届かないがいろいろ作業するとそれなりに CPU を使えているというように見える。

サーバの CPU 負荷状況の図

Windows 上から見た ssh トンネルを使ったネットワーク接続状態は下の通り。

C:\>netstat
Active Connections
  Proto  Local Address          Foreign Address        State
  TCP    pc-shibata2:1119       localhost:1902         ESTABLISHED
  TCP    pc-shibata2:1120       localhost:1902         ESTABLISHED
  TCP    pc-shibata2:1902       localhost:1119         ESTABLISHED
  TCP    pc-shibata2:1902       localhost:1120         ESTABLISHED
  TCP    pc-shibata2:1051       192.168.1.3:microsoft-ds  ESTABLISHED
  TCP    pc-shibata2:1117       172.18.211.172:22      ESTABLISHED

Windows 上から見た ssh トンネルなしのネットワーク接続状態は下の通り。

C:\>netstat
Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    pc-shibata2:1051       192.168.1.3:microsoft-ds  ESTABLISHED
  TCP    pc-shibata2:1123       172.18.211.172:902     ESTABLISHED
  TCP    pc-shibata2:1124       172.18.211.172:902     ESTABLISHED

Memorandum about Linux and Network | ほかのジャンルを見てみる | サイトマップ

免責

beacon

当方(SHIBATA Akira)は, 本サイトをご利用の際に起きるかもしれない不利益に対し, 一切責任を負いません.