作成開始 : 平成21年10月03日(土) 最終更新日 : 平成21年10月22日(木)

シンクライアントを使ってみる。


1.背景

とあるお客様のシステムのうち一部の業務でちょっとしたトラブルがありコンサルする機会がありました。
その時に事前学習としてシンクライアントについて調べてみたのですが、次の興味深いページが検索にかかりました。
無料で構築するセキュリティ  無償 無料 シンクライアント
「こりゃーいいや」と思い同時に試してみたい衝動にかられてしまいました。

2.シンクライアントとは (技術、話題としてはかなり前からあったようです)

シンクライアント - Wikipedia より引用
シンクライアント(Thin client)とは、ユーザーが使うクライアント端末に必要最小限の処理をさせ、ほとんどの処理をサーバー側に集中させたシステムアーキテクチャ全般のことを言う(広義のシンクライアント)。または、そのようなシステムアーキテクチャで使われるように機能を絞り込んだ専用のクライアント端末のことを言う場合もある(狭義のシンクライアント)。
シンクライアントの「シン」とは「thin」すなわち「薄い」と言う意味で、クライアント端末が、サーバーに接続するための最小限のネットワーク機能、およびユーザーが入出力を行うためのGUIを装備していれば良いことを示している。
「ふぅーん、要するにクライアント端末には最小限の機能しか持たせないわけだ。じゃーどうやって動かすの?」
そんなこんなで、メーカ各社が提供しているシンクライアント・システムも調べてみました。
まとめてみると、端末の電源ON時にネットワーク・ブート可能なハードを実装、TFTPサーバーからブートイメージを取得しブート、ブート後はサーバーとの通信で各種の処理を行う・・・ってなことらしい。
さらに検索すると、ハードディスクが要らない。静か。低消費電力・・・ますます興味を引かれました。

3.試した原理

接続処理イメージ
・クライアントは、CPU : 450MHz MEM : 256Mbyte です。
・DHCP、TFTPサーバーは CPU : 33MHz MEM : 14Mbyte です。
・接続先は CPU : 500MHz MEM : 384Mbyte です。

4.関連ファイルのダウンロード

下記のサイトから無償版をダウンロードしました。
無料で構築するセキュリティ  無償 無料 シンクライアント シンクライアント無償ダウンロード
必要スペックは、メモリ64M程度、PXE対応のNICくらいです。
オリジナルのThinstationと比較して、ターミナルクライアントの機能に絞り、X WindowとRdesktopの日本語対応を行っています。・・・とのことです。
Thinstation.nbi 形式ベータ(Rdesktop1.6.0 Vista,Windows7対応) 無料ダウンロード(6MByte) です。
(これの前のバージョンはキー操作がいまいちだったのでこちらをダウンロードしました。)
これを保存後に展開しておきます。

5.DHCPとTFTPサーバーの準備

わが家には FreeBSD で構築した DHCP サーバーが既に動いていたのでそれを使いました。なのでTFTPサーバーもFreeBSDのを使いました。
FreeBSD によるDHCPサーバーの構築は こちら を参照ください。
(1)TFTPサーバーの構築
/etc/inetd.conf の以下コメントを外し有効にします。
#tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tftpboot
   ↓
tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tftpboot
次に、tftpd の root ディレクトリを作成します。
mkdir /tftpboot
chmod 777 /tftpboot
そして、kill -HUP `cat /var/run/inetd.pid ` で起動するようにします。「`」は逆シングルコーテーション(Shift+@)です。
起動の確認をします。
TFTPを設定したFreeBSD機のローカルで確認してもよいですが、せっかくなので WindowsXP Home機から確認しました。
ただ、WindowsXP Home機にはウイルス対策ソフトでファイヤウォールの設定をしていたので、LAN内ネットワークアドレスからのUDP受信を許可しました。
(自分のPCはユーザー個別設定しているので結構ハマリました。)
さらに、アプリケーションである tftp.exe も実行許可しました。

コマンドプロンプトから・・・
tftp 192.168.1.7 get test.txt test.txt
・・・・とすると・・・
Transfer successful: 1146 bytes in 1 second, 1146 bytes/s
・・・と表示してOKを確認しました。

これ以降はサーバー起動時に自動で起動するようになります。
そしたら、先に取得して展開していた以下のファイルを /tftpboot へ保存します。
私はいつも自分のアカウントにFTPした後、該当のフォルダへmvしています。
thinstation.conf.network ・・・・asciiモード
thinstation.nbi ・・・・・・・・・・・・バイナリモード
thinstation.nbi.zpxe ・・・・・・・・バイナリモード
thinstation.conf.network にはクライアント側の設定が書かれています。
これを編集して使いやすいように設定します。
参考に以下へ記載しておきます。
また、上記起動用コンフィグファイルの他にthinstation.conf-xxxxxxxxx とMACアドレス(又はIPアドレスも可)を指定したファイルを用意することにより、個別に画面解像度なども変更できます。
(2)DHCPサーバーの設定
先に構築していた isc-dhcpd の /usr/local/etc/dhcpd.conf に BOOTP のエントリを追加しました。
次のような感じです。
※検索すると色々ヒットしますけど、下のでとりあえず動きました。
host fmv645_sin {                        -> シンクライアントに付与するホスト名です。
    hardware ethernet 00:00:0E:D4:68:3F;       -> NICのMACアドレスです。
    server-identifier mail.takaq.jp;            -> DHCPサーバーのありか
    option dhcp-client-identifier "PXEClient";    -> PXEブートのため必要
    fixed-address 192.168.1.101;             -> クライアントに付与するIPアドレス
    filename "thinstation.nbi.zpxe";           -> ブートファイル・イメージのファイル名
}
そして、sh /usr/local/etc/rc.d/dhcpd.sh stop で停止し、sh /usr/local/etc/rc.d/dhcpd.sh start で開始します。

6.接続

クライアントPCの電源をONにします。
最初の起動で「ブートメニュー」→「ネットワークブート」を選択します。


システムブートします。ズラズラと表示するメッセージは・・・・Linuxですね。
TFTPでフートイメージを取得しています。
こんな画面を表示します。
少し待つとメニュー画面を表示します。
目的のサーバー名(またはIPアドレス)入力するのと、設定ファイルで設定した接続先です。
そして、reboot、shutdown です。
Linuxで見慣れたマウスカーソルを表示します。
接続先を指定してEnterすると接続先のログオン画面を表示します。
ユーザとパスワードを入力しEnterすると・・・・

おぉーーーまるでこのPCでWindowsXPが動いているかのようです。
画面上で「ログオフ」または「切断」を指定するとメニュー画面に戻ります。
「切断」しておくと次回ログオンが早くなります。

これって、Linuxのrdesktopですね。

7.その他

(1)一部IME上でのキーがうまく動いてくれないところはありますが思ったより動きは軽快です。
(2)HDDを外してディスクレスにしましたが、とにかく静かです。
(3)BIOS設定でPXEを最初のブート位置にしました。
(4)接続先のPCは家族・親戚、仕事用のWebサーバーなのでこれから常時稼動することにしました。
(5)無料で構築するセキュリティ  無償 無料 シンクライアント にはネットワークブートできないPCのためのCD用ISOイメージもあります。
  また、起動USB用のイメージもあります。
(6)CDやUSBメモリも使えないので会社情報や個人情報漏洩の心配も解消されるでしょう。
  ついでに、音も出ないです。
  ただ、企業で使う場合はこれではいけないので、WindowsのTerminal Service や クライアントアクセスライセンスなんかについて学習したいと思います。
(7)http://www.thinstation.org/ では、TS-O-Matic siteで必要な機能を選択しながら、自分用にカスタマイズしたThinstationが作成できるようです。
  ハードウェアの知識が要りますね。
  ただ、細かなカスタマイズには、やはりBuild用イメージをダウンロード後、自分のパソコン内でBuildが必須とのことです。
  ハードウェアとLinuxの知識および環境が要りますね。(今の俺には無理っす。)

平成21年10月22日(木) 追記

ブートイメージを保存、供給している tftpサーバー(PXEサーバー) を変更しました。
変更前のはNICが10Base-Tでしたが、変更後は100Base-Tなのでかなり起動が早くなりました。
これにともない、DHCPサーバーの dhcpd.conf を以下のように変更しました。
host fmv645_sin {                        -> シンクライアントに付与するホスト名です。
    hardware ethernet 00:00:0E:D4:68:3F;       -> NICのMACアドレスです。
    server-identifier mail.takaq.jp;            -> DHCPサーバーのありか
    next-server Armada.takaq.jp;             -> PXEサーバーのありか
    option dhcp-client-identifier "PXEClient";    -> PXEブートのため必要
    fixed-address 192.168.1.101;             -> クライアントに付与するIPアドレス
    filename "thinstation.nbi.zpxe";           -> ブートファイル・イメージのファイル名
}

FreeBSD構築苦労談へ戻る

Windowsマシンの小部屋へ戻る

サイトトップへ