Linuxを用いたターミナルサービスの活用

1 はじめに

   実習用コンピュータの管理方法としてLinuxを用いたターミナルサービスの活用を提案します。

   (1) ターミナルサービスとは

   サーバ機にインストールされたアプリケーションソフトウエアやデータをネットワークを通じてクライアント機が利用できるようにすることをいいます。この場合,クライアント機にはサーバ機にアクセスする機能さえ備わっていればよいことになります。

   (2) ターミナルサービスの利点

   Linuxを用いたターミナルサービスでは,OSの起動から終了まですべてネットワークを通じて行い,各クライアント機のHDD(ハードディスクドライブ)は全く用いられません。このため,数多くのコンピュータを抱える実習室では各クライアント機の個別の保守・修復の必要がなくなり,大幅に管理の省力化をはかることができます。また,Linuxやターミナルサービスには一切ライセンス料はかからないため,有料のアプリケーションソフトウエアを導入しなければ,システム導入にコストは全くかかりません。

2 ターミナルサービスの導入

   はじめからターミナルサービスを含んだLinuxのディストリビューションもあります。新規にサーバ機を設置できるのであればそれを利用するのがよいでしょう。以下のサイトからダウンロードできます。

   今回導入した実習室では新規にサーバ機を設置することはできませんでしたが,すでにLinuxを用いたサーバ機があるため,そのサーバ機にターミナルサーバの機能を追加するという方法を採りました。

   (1) 導入する環境

   今回以下のような環境の実習室にターミナルサービスを導入しました。

   サーバ機

   サーバ機の機能

   クライアント機(ノート型PC)

   クライアント機(デスクトップ型PC)

   (2) 導入手順 1. DHCPおよびtftpの導入

   以下の作業はすべてroot権限で行います。DHCPおよびtftpの導入にはRedHat Linux 7.3のインストールCDを用いました。以下に示すのはCDドライブが /mnt/cdrom にマウントしている場合です。

   DHCPサーバプログラムのパッケージ dhcp-2.0p15-8.i386.rpm を解凍し,導入するためにコマンドラインで以下のように入力します。
   # rpm -ivh /mnt/cdrom/RedHat/RPMS/dhcp-2.0p15-8.i386.rpm

   tftpサーバプログラムのパッケージ tftp-server-0.28-2.i386.rpm を解凍し,導入するためにコマンドラインで以下のように入力します。
   # rpm -ivh /mnt/cdrom/RedHat/RPMS/tftp-server-0.28-2.i386.rpm

   (3) 導入手順 2. ターミナルサービスの導入

   今回インストールするのは Ltsp-4.2 というターミナルサービスです。インストールプログラムのパッケージ ltsp-utils-0.25-0.noarch.rpm を以下のサイトからダウンロードします。

   ダウンロードされたパッケージを解凍し,インストールプログラムを実行します。以下に示すのは /root/ にパッケージをダウンロードした場合です。

   インストールプログラムのパッケージ ltsp-utils-0.25-0.noarch.rpm を解凍するためにコマンドラインで以下のように入力します。これによって,インストールプログラム ltspadmin の実行ファイルが /usr/sbin/ に作成されます。
   # rpm -ivh /root/ltsp-utils-0.25-0.noarch.rpm

   インストールプログラム ltspadmin を実行するためにコマンドラインで以下のように入力します。
   # /usr/sbin/ltspadmin

   インストールプログラム ltspadmin の操作の仕方の解説(リンク)です。これによって,ターミナルサービスのプログラムは /opt/ltsp/ にインストールされます。

   (4) 導入手順 3. 設定ファイル

   設定が必要になるのは以下の3つのファイルです。

   /etc/dhcpd.conf の設定例(リンク)です。これは,DHCPサーバによって各クライアント機にどのようなIPアドレスが割り振られるかを設定するファイルです。DHCPによるIPアドレスの振り分けは,普段使用しているIPアドレスと重ならないよう192.168.2.50〜99に設定しました。設定後,DHCPサーバプログラム dhcpd とtftpサーバプログラム tftp を起動させます。

   DHCPサーバプログラム dhcpd を起動させるためにコマンドラインで以下のように入力します。
   # /etc/rc.d/init.d/dhcpd start

   サーバを再起動したときに自動的に dhcpd が起動するようにコマンドラインで以下のように入力します。
   # chkconfig httpd on

   tftpサーバプログラム tftp を起動させるためにコマンドラインで以下のように入力します。
   # /etc/rc.d/init.d/xinetd start

   サーバを再起動したときに自動的に tftp が起動するようにコマンドラインで以下のように入力します。
   # chkconfig tftp on

   /opt/ltsp/i386/etc/lts.conf の設定例(リンク)です。これは,クライアント機のビデオカード,キーボード,マウスなどの設定をするための設定ファイルです。ノート型PCとデスクトップ型PCではビデオカードのドライバが異なるため, [Default] セクションでノート型PCのビデオカードのドライバを設定し, MACアドレスを指定した [01:23:45:67:89:ab] セクションでデスクトップ型PCのビデオカードのドライバを設定しました。また,クライアント機でもサーバと同じフォントが利用できるように USE_XFS オプションを Y に設定しました。設定後, Xフォントサーバ xfs を起動させます。

   Xフォントサーバ xfs を起動させるためにコマンドラインで以下のように入力します。
   # /etc/rc.d/init.d/xfs start

   サーバを再起動したときに自動的に xfs が起動するようにコマンドラインで以下のように入力します。
   # chkconfig xfs on

   /etc/X11/gdm/gdm.conf の設定例(リンク)です。これは,リモートでサーバにログインする場合に,同時にログインできるクライアント機の台数や,ログイン画面などを設定するための設定ファイルです。 [xdmcp] セクションの MaxSessions オプションを41に設定し,教室内のクライアント機全てが同時にログインできるようにしました。

   (5) 動作確認

   クライアント機によっては,BIOSの設定が必要になります。設定の仕方はBIOSの種類や機種によって異なります。多くの場合「起動(Boot)」セクションで「ネットワークブートを有効にする」と設定するか,「ネットワークブート」の起動順序をHDDより上位に設定することでターミナルサービスのクライアント機として使用できるようになります。また,省電力設定を有効にしていると復帰できない場合もあります。この場合はBIOSで省電力設定を無効にしておいてください。

   クライアント機の電源を入れてからログイン画面が表示されるまでの時間は,ローカルHDDにインストールしたRed Hat Linux 7.3を起動させるよりかなり短縮されます。ログイン画面は普通のRed Hat Linux 7.3 の画面とほとんど変わりません。リモートでログインになりますので,ログイン画面にサーバー機のホスト名が表示されます。このログイン画面は /etc/X11/gdm/gdm.conf の設定で変更することができます。

   20台のクライアント機の電源を順に入れ,ログイン画面を表示させた状態で,サーバ機のメモリーの使用量の増加量を調べてみました。今回導入したケースでは,最初の1台がログイン画面を表示した時点で約20MB,以降,1台がログイン画面を表示するごとに,約1.3MBのメモリーを余分に使用することがわかりました。

   クライアント機の電源を切るときには,ログイン画面が表示された状態で電源スイッチによって電源を切ります。

3 アプリケーションソフトウエアの導入

   ターミナルサービスで利用する無料のアプリケーションソフトウエアとして OpenOffice.org1.1 を新たに導入しました。このソフトウエアには各ユーザごとの設定ファイルが存在するため,それを複数のユーザが共有することのないように「マルチユーザ・ネットワークインストール」という方法を採りました。

   (日本語 OpenOffice.org の最新バージョンは OpenOffice.org2.1 [2007年6月現在] です。 OpenOffice.org1.x と OpenOffice.org2.x では導入方法が異なりますのでご注意ください。)

   (1) root権限で行う作業

   OOo_1.1.5_LinuxIntel_install_ja.tar.gz というファイルを以下のサイトからダウンロードします。

   ダウンロードされた書庫ファイルを解凍し,インストールプログラムを実行します。以下に示すのは,ファイルを /root/ にダウンロードした場合です。

   書庫ファイル OOo_1.1.5_LinuxIntel_install_ja.tar.gz を解凍するためにコマンドラインで以下のように入力します。これによって,ディレクトリ /root/OOo_1.1.5_LinuxIntel_install_ja/ が作成され,その中にインストールプログラムがコピーされます。
   # tar -xvzf /root/OOo_1.1.5_LinuxIntel_install_ja.tar.gz

   ディレクトリ /root/OOo_1.1.5_LinuxIntel_install_ja/ に移動するためにコマンドラインで以下のように入力します。
   # cd OOo_1.1.5_LinuxIntel_install_ja

   インストールプログラム setup を起動するためにコマンドラインで以下のように入力します。(「マルチユーザ・ネットワークインストール」を示す -net オプションをつけてください)
   # ./setup -net

   インストールプログラム setup の操作の仕方の解説(リンク)です。これによって, OpenOffice.org1.1 のプログラムがディレクトリ /opt/OpenOffice.org1.1.5/ にインストールされます。

   (2) 各ユーザが行う作業

   OpenOffice.org1.1 を起動するプログラム soffice は,初めてのユーザに対して自動的にインストールプログラムを実行します。

   プログラム soffice を実行するためにコマンドラインで以下のように入力します。
   $ /opt/OpenOffice.org1.1.5/program/soffice

   インストールプログラム soffice の操作の仕方の解説(リンク)です。これによって,メニューの「お気に入り」に OpenOffice.org のアイコンが追加されます。

   (3) 動作確認

   メニューの「お気に入り」に OpenOffice.org のアイコンが追加された様子です。
OpenOffice.orgの起動(1)
   OpenOffice.org Writerを起動してみました。
OpenOffice.orgの起動(3)

4 授業での使用にむけて

   OpenOffice.org1.1 のインストールプログラム soffice は各ユーザごとに実行する必要があります。そのため, soffice を呼び出すためのショートカットアイコンと,それをクラス全員のユーザのデスクトップ上に貼り付けるためのスクリプトを作成しました。(貼り付けたショートカットアイコンを削除するためのスクリプトも作成しました。)


5 おわりに

   以前はLinuxといえばサーバ用のOSというイメージが強かったのですが,ここ数年クライアント用にも十分使えるようになり,Linux用の無料のアプリケーションソフトウエアも増えてきました。しかし,それらのアプリケーションソフトウエアは以前のLinuxには導入できない場合が多く,ターミナルサーバとして利用するLinuxはなるべく新しいものがよいようです。一度導入したらめったにOSの入れ替えをしないファイルサーバやメールサーバ等とターミナルサーバを1台で兼用するというのは,可能であるけれどもずいぶん制約が多いことです。できれば,ターミナルサーバ専用機を導入できるとよいでしょう。

参考文献・Web

   Linuxで作るターミナルサーバ(三浦一則 著)九天社
   PXEを使ってPCもディスクレスにしよう(http://www15.big.or.jp/~yamamori/sun/pxe/)