このマニュアルで扱うトピックの概要について説明します。また、このリリースに含まれる Perl コマンドについても説明します。
Web サーバーのパフォーマンスを向上させる Solaris NCA サービスについて説明します。
クロックを同期させるために使用する NTP サービスなどの機構について説明します。
この章では、このマニュアルで説明する主なトピックの一覧を示します。また、このリリースに含まれる Perl コマンドについても説明します。
このマニュアルでは、次のサービスとユーティリティについて説明します。
システム資源の割り当て、監視、および制御を容易にするシステム資源管理機能について説明します。
リモートホストからファイルシステムへのアクセスを可能にする NFS プロトコルについて説明します。
動的サービス発見プロトコルである SLP について説明します。
ネットワークに応じたルーティングにより、だれにでもメッセージを送信できるメールサービス機能について説明します。
リモートホスト間にポイントツーポイント接続を提供する PPP プロトコルについて説明します。
ホスト間のファイル交換を可能にする UUCP について説明します。
リモートシステムからファイルにアクセスするために使用するコマンド、ftp、rlogin、および rcp について説明します。
Web ページのキャッシングにより、Web サーバーのパフォーマンスを向上させる NCA について説明します。
多くのシステムで時間の同期をとるために使用できる、NTP などの時間に関するユーティリティについて説明します。
システム管理作業を簡略化するためのスクリプトを生成するのに使用する Perl (Practical Extraction and Report Language) について説明します。
この Solaris リリースには、Perl (Practical Extraction and Report Language) 5.6.1 が付属しています。この強力な汎用プログラミング言語は、一般にフリーソフトウェアとして入手可能なツールです。Perl はプロセス、ファイル、およびテキスト処理機能に優れ、複雑なシステム管理作業を行う際の標準的な開発ツールとして広く使用されています。
Perl 5 には、動的にロード可能なモジュールフレームワークが含まれています。このモジュールフレームワークを使用すると、特定の作業に新しい機能を追加することができます。多くのモジュールが、Comprehensive Perl Archive Network (CPAN) のホームページ (http://www.cpan.org ) から自由に入手できます。
この Solaris リリースには、Perl に関する情報ソースも含まれています。以下に同じ情報へアクセスするための 2 通りの方法を示します。
MANPATH 環境変数に /usr/perl5/man を設定すると、マニュアルページにアクセスできます。次の例は Perl の概要を表示します。
% setenv MANPATH "${MANPATH} : /usr/perl5/man" % man perl |
追加ドキュメントには、perldoc ユーティリティを使用してアクセスします。次の例も同じ概要を表示します。
% /usr/perl5/bin/perldoc perl |
perl 概要ページには、このリリースに含まれているすべてのドキュメントの一覧が示されています。
一般に、バージョン 5.6.1 の Perl は以前のバージョンと互換性があるため、スクリプトの再作成や再コンパイルは必要ありません。ただし、XSUB ベースのモジュール (.xs) はすべて、再コンパイルおよび再インストールする必要があります。
Solaris 9 リリースでは、/usr/perl5/5.00503/bin/perl と入力することにより、古いバージョンの Perl にアクセスできます。古いバージョンは将来のリリースではサポートされない可能性があるため、このバージョンは新しいモジュールを再構築するまでの一時的な代用ツールとして使用してください。
Solaris 版 Perl は 64 ビット整数、malloc システムコール、および大規模ファイルをサポートするようにコンパイルされています。また、必要なパッチも適用済みです。すべての構成情報の一覧については、次のコマンドの出力を参照してください。
% /usr/perl5/bin/perlbug -dv --- Flags: category= severity= --- Site configuration information for perl v5.6.1: . . |
perl -V と入力すると、構成の要約リストを生成できます。
この章では、Solaris NCA (ネットワークキャッシュとアクセラレータ) の概要について説明します。また、NCA を使用するための手順と、NCA に関する参考資料も示します。
Solaris NCA (ネットワークキャッシュとアクセラレータ) は、HTTP 要求時にアクセスされる Web ページのカーネル内キャッシュを保持することにより、Web サーバーのパフォーマンスを向上させます。このカーネル内キャッシュはシステムメモリーを使用するため、通常は Web サーバーによって処理される HTTP 要求のパフォーマンスを、大幅に向上させます。HTTP 要求時に Web ページがシステムメモリー内に保持されているため、カーネルと Web サーバー間のオーバーヘッドが減少し、Web サーバーのパフォーマンスが向上します。NCA にはソケットインタフェースが用意されており、どのような Web サーバーでも最小限の変更で NCA と通信できます。
要求されたページがカーネル内キャッシュから取得された場合 (キャッシュヒット時) は、パフォーマンスが飛躍的に向上します。要求されたページがキャッシュ内になく、Web サーバーから取得する必要がある場合 (キャッシュミス時) でも、パフォーマンスは大幅に改善されます。
この製品は、専用の Web サーバー上で実行するようにします。NCA が動作するサーバー上で他の大きいプロセスを実行すると、問題が起きることがあります。
NCA はすべてのキャッシュヒットを記録するロギング機能を提供します。ログはパフォーマンスを向上させるためにバイナリ形式で格納されます。ncab2clf コマンドを使用すると、バイナリ形式のログを共通ログ形式 (CLF) に変換できます。
Solaris 9 リリースには、次のような機能強化が実施されています。
ソケットインタフェースの提供
AF_NCA サポートを可能にするベクトル化 sendfile システムコールの提供。詳細は sendfilev(3EXT) のマニュアルページを参照する
ncab2clf コマンド用の 2 つの新しいオプション、具体的には、選択された日付以前のレコードをスキップするための -s オプションと、指定された数のレコードを処理するための -n オプションの追加
ncalogd.conf ファイル内の logd_path_name を用いて raw デバイス、ファイル、または両者の組み合わせを指定可能
このリリースでは、Web サーバーに複数の AF_NCA ソケットを開くことができます。複数のソケットを使用すると、1 つのサーバーで複数の Web サーバーを実行できます。
さらに、新しく /etc/nca/ncaport.conf 構成ファイルが使用できるようになりました。このファイルによって、NCA で使用する IP アドレスやポートを管理することができます。Web サーバーによっては、AF_NCA ソケットを直接にサポートしない場合があります。 AF_NCA ソケットをサポートしないサーバーでは、この /etc/nca/ncaport.conf ファイルと NCA ソケットユーティリティライブラリを使って、AF_INET ソケットを AF_NCA ソケットに変換します。
次の表に、NCA を使用するために必要な手順を示します。
作業 |
説明 |
参照先 |
---|---|---|
NCA の利用を計画する |
NCA を有効にする前に解決すべき事項のリスト | |
NCA を有効にする |
Web サーバー上の Web ページのカーネル内キャッシュを有効にするための手順を実行する | |
NCA を無効にする |
Web サーバー上の Web ページのカーネル内キャッシュを無効にするための手順を実行する | |
NCA ロギングを管理する |
NCA ロギング処理を有効または無効にするための手順を実行する | |
NCA ソケットライブラリをロードする |
AF_NCA ソケットがサポートされていない場合に NCA を使用するための手順を実行する |
この節では、NCA サービスを開始する前に解決しておく必要のある事項について説明します。
NCA をサポートするには、システムは次の要件を満たす必要があります。
256M バイト以上の RAM がインストールされている
Solaris 9 リリース、または Solaris 8 アップグレードリリースのいずれかがインストールされている
Apache がサポートされている。Solaris 9 と Solaris 8 アップグレードリリースでは、Apache がサポートされています。
この製品は、専用の Web サーバー上で実行するようにします。NCA を実行しているサーバー上で別の大きいプロセスを実行すると、問題が生じることがあります。
NCA サービスでは、Web アクティビティを記録するように設定できます。通常、Web サーバーのロギングが有効になっているときには NCA のロギングも有効にします。
多くの Web サーバーは AF_INET ソケットを使用します。デフォルトでは、NCA は AF_NCA ソケットを使用します。この状況に対応するために、置き換え用のライブラリが用意されています。新しいライブラリは標準ソケットライブラリ libsocket.so の前にロードされます。bind() ライブラリ呼び出しには新しいライブラリ ncad_addr.so の用意するライブラリが呼び出されます。/etc/nca/ncakmod.conf ファイル内で状態が有効に設定されていれば、Solaris 9 リリースに付属している Apache は、このライブラリを呼び出すように設定されています。IWS または Netscape サーバーで新しいライブラリを使用する場合は、NCA ソケットユーティリティライブラリのロード方法を参照してください。
NCA がインストールされているシステムでは、複数の Web サーバーを実行することがよくあります。たとえば、1 つのサーバーで、外部からのアクセス用の Web サーバーと Web 管理サーバーの両方をサポートする場合があります。これらのサーバーを別にするには、それぞれのサーバーが別のポートを使用するように設定します。
この節では、サービスを有効または無効にするための手順を示します。
スーパーユーザーになります。
インタフェースを登録します。
/etc/nca/nca.if ファイルに各物理インタフェースの名前を指定します。詳細は、nca.if(4) のマニュアルページを参照してください。
# cat /etc/nca/nca.if hme0 hme1 |
インタフェースごとに、対応する hostname.interface-name ファイルが必要です。また、/etc/hosts ファイル内に hostname.interface-name の内容と一致するエントリが必要です。すべてのインタフェースで NCA 機能を使用可能にするには、nca.if ファイル内でアスタリスク (*) を指定します。
ncakmod カーネルモジュールを有効にします。
/etc/nca/ncakmod.conf 内の status エントリを enabled に変更します。
# cat /etc/nca/ncakmod.conf # # NCA Kernel Module Configuration File # status=enabled httpd_door_path=/var/run/nca_httpd_1.door nca_active=disabled |
(省略可能) NCA ロギングを有効にします。
/etc/nca/ncalogd.conf 内の status エントリを enabled に変更します。
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=enabled logd_path_name="/var/nca/log" logd_file_size=1000000 |
logd_path_name エントリに示されているパスを変更すると、ログファイルの格納場所を変更できます。ログファイルには raw デバイスとファイルのどちらでも指定できます。NCA ログファイルのパス例については、次項の例を参照してください。構成ファイルの詳細は、ncalogd.conf(4) のマニュアルページを参照してください。
(省略可能) 複数インスタンスのサポートのためのポートを定義します。
/etc/nca/ncaport.conf ファイルにポート番号を追加します。次の例では、NCA はすべての設定済み IP アドレスについて、ポート 80 を監視します。
# cat /etc/nca/ncaport.conf # # NCA Kernel Module Port Configuration File # . . ncaport=*/80 |
x86 のみ: 仮想メモリーサイズを増やします。
eeprom コマンドを使用して、システムの kernelbase を設定します。
# eeprom kernelbase=0x90000000 # eeprom kernelbase kernelbase=0x90000000 |
2 行目の eeprom コマンドを実行すると、パラメータが設定済みかどうかを確認できます。
kernelbase を設定すると、ユーザープロセスが使用できる仮想メモリー領域が 3G バイト未満に減少します。 このため、システムは ABI に準拠しなくなります。 システムをブートすると、そのことを警告するメッセージがコンソールに表示されます。ほとんどのプログラムは、実際には 3G バイトの仮想アドレス空間を必要としません。3G バイト以上の仮想アドレス空間を必要とするプログラムは、NCA を無効に設定したシステム上で実行する必要があります。
サーバーを再起動します。
ncalogd.conf ファイル内の logd_path_name 文字列で、NCA ログファイルの格納先として raw デバイスを指定できます。raw デバイスを使用する利点としては、アクセス時のオーバーヘッドが小さいため、サービスを高速に実行できることが挙げられます。
NCA サービスはファイル内に記述されているすべての raw デバイスに対して、対応するファイルシステムがないことを確認します。このテストは、アクティブなファイルシステムを誤って上書きしてしまわないように実行されます。
このテストでファイルシステムが検出されないようにするには以下のコマンドを実行します。このコマンドは、ファイルシステムとして構成されている任意のディスクパーティション上のファイルシステム部分を破棄します。この例では、/dev/rdsk/c0t0d0s7 が古いファイルシステムを持つ raw デバイスです。
# dd if=/dev/zero of=/dev/rdsk/c0t0d0s7 bs=1024 count=1 |
上記の dd コマンドを実行すると、ncalogd.conf ファイルに raw デバイスを追加できるようになります。
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=enabled logd_path_name="/dev/rdsk/c0t0d0s7" logd_file_size=1000000 |
ncalogd.conf ファイル内の logd_path_name 文字列で、NCA ログファイルの格納先として複数のファイルを指定できます。 最初のファイルが満杯になると、2 番目のファイルが使用されます。以下の例では、最初に /var/nca/log ファイルを書き込みに使用し、次に raw パーティションを使用する方法を示します。
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=enabled logd_path_name="/var/nca/log /dev/rdsk/c0t0d0s7" logd_file_size=1000000 |
スーパーユーザーになります。
ncakmod カーネルモジュールを無効にします。
/etc/nca/ncakmod.conf 内の status エントリを disabled に変更します。
# cat /etc/nca/ncakmod.conf # NCA Kernel Module Configuration File # status=disabled httpd_door_path=/var/run/nca_httpd_1.door nca_active=disabled |
NCA ロギングを無効にします。
/etc/nca/ncalogd.conf 内の status エントリを disabled に変更します。
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=disabled logd_path_name="/var/nca/log" logd_file_size=1000000 |
サーバーを再起動します。
NCA が有効になっていると必要に応じて NCA のログ処理のオン/オフを切り換えることができます。詳細は Web ページのキャッシングを有効にする方法を参照してください。
スーパーユーザーになります。
NCA ロギングのオン/オフを切り換えます。
ロギングを永続的に無効にする場合は、/etc/nca/ncalogd.conf 内の status を disabled に変更し、システムをリブートする必要があります。詳細は、ncalogd.conf(4) のマニュアルページを参照してください。
この手順は、AF_NCA ソケットを直接サポートしていない Web サーバーに対してのみ使用します。
Web サーバーの起動スクリプトに、ライブラリをプリロードするための 1 行を追加します。 次のような行を追加します。
LD_PRELOAD=/usr/lib/ncad_addr.so /usr/bin/httpd |
スーパーユーザーになります。
新しいポートを追加します。
/etc/nca/ncaport.conf に、新しいポートのエントリを追加します。次の例では、IP アドレス 192.168.84.71 に対してポート 8888 を追加しています。詳細は ncaport.conf(4) のマニュアルページを参照してください。
# cat /etc/nca/ncaport.conf # # NCA Kernel Module Port Configuration File # . . ncaport=*/80 ncaport=192.168.84.71/8888 |
新しい Web インスタンスを起動します。
Web サーバーが NCA でアドレスを使用するには、先にそのアドレスが NCA のポート設定のファイルに入っている必要があります。Web サーバーが実行中である場合は、新しいアドレスの定義後にその Web サーバーを再起動する必要があります。
この節では、NCA を使用するために必要なファイルとコンポーネントについて説明します。 また、NCA が Web サーバーと通信する方法についても説明します。
NCA 機能をサポートするには、いくつかのファイルが必要です。ほとんどのファイルは ASCII 形式ですが、バイナリ形式のファイルもあります。次の表に必要なファイルの一覧を示します。
表 2–1 NCA ファイル
ファイル名 |
機能 |
---|---|
NCA デバイスのパス名 |
|
サーバー上で構成されているすべての物理インタフェースについてホスト名が記述されているファイル |
|
サーバーに対応付けられるすべてのホスト名が記述されているファイル。 NCA が機能するには、このファイルの各エントリが、対応する /etc/hostname.* ファイル内のエントリと一致していなければならない |
|
NCA サーバーを起動するスクリプト。このスクリプトは、サーバーのブート時に実行される |
|
NCA ロギングを開始するスクリプト。 このスクリプトは、サーバーのブート時に実行される |
|
NCA が実行されるすべてのインタフェースが記述されているファイル。詳細は nca.if(4) のマニュアルページを参照 |
|
NCA 用のすべての構成パラメータが記述されているファイル。 詳細は ncakmod.conf(4) のマニュアルページを参照 |
|
NCA ロギング用のすべての構成パラメータが記述されているファイル。詳細は ncalogd.conf(4) のマニュアルページを参照 |
|
NCA で使用する IP アドレスとポートが記述されているファイル。 詳細は ncaport.conf(4) のマニュアルページを参照 |
|
ログファイル内のデータを共通ログ形式に変換するために使用されるコマンド。詳細は ncab2clf(1) のマニュアルページを参照 |
|
ブート時に複数のインタフェース上で NCA が実行するように設定するために使用されるコマンド。詳細は ncaconfd(1M) のマニュアルページを参照 |
|
AF_INET ソケットの代わりに AF_NCA ソケットを使用するライブラリ。このライブラリは AF_INET ソケットを使用する Web サーバー上で使用する。詳細は ncad_addr(4) のマニュアルページを参照 |
|
ログファイルのデータを保持するファイル。バイナリ形式のファイルなので編集できない |
|
ドアパス名 |
NCA が機能するためには、次のコンポーネントが必要です。
カーネルモジュール : ncakmod
Web サーバー : httpd
カーネルモジュール ncakmod は、Web ページのキャッシュをシステムメモリー内に保持します。このモジュールは、ソケットインタフェースを介して Web サーバー httpd と通信します。プロトコルファミリータイプは PF_NCA です。
また、カーネルモジュールは、すべての HTTP キャッシュヒットを記録するログ機能も備えています。NCA ロギングは、HTTP データをバイナリ形式でディスクに書き込みます。NCA には、バイナリログファイルを共通ログ形式 (CLF) に変換するユーティリティが用意されています。
次の図に、通常のデータフローと、NCA が有効になっている場合のデータフローを示します。
以下に、クライアントと Web サーバー間の要求フローを示します。
クライアントから Web サーバーに対して HTTP 要求が発行されます。
ページがキャッシュ内にある場合は、カーネル内キャッシュの Web ページが返されます。
ページがキャッシュ内にない場合は、Web サーバーに要求が送信され、ページが取得または更新されます。
ページがキャッシュされているかどうかは、HTTP 応答で使用される HTTP プロトコルのセマンティクスによって異なります。そのあと、ページがクライアントに返されます。 HTTP 要求ヘッダーに Pragma:No-cache が含まれている場合、ページはキャッシュされません。
多くのデータベースと認証サービスでは、ネットワーク内でシステムクロックを同期させる必要があります。この章の内容は次のとおりです。
Solaris 2.6 以降、Solaris ソフトウェアには Delaware 大学の NTP (Network Time Protocol) 公開ドメインソフトウェアが添付されています。xntpd デーモンは、UNIX システムの時刻をインターネット標準時刻サーバーの時刻と合うように調整し、保守します。xntpd デーモンは、RFC 1305 に規定されている NTP バージョン 3 標準に完全に準拠して実装されています。
xntpd デーモンは、システムの起動時に /etc/inet/ntp.conf ファイルを読み込みます。構成オプションの詳細は、xntpd(1M) のマニュアルページを参照してください。
ネットワーク内で NTP を使用するときには、次のことを考慮してください。
xntpd デーモンは最小限のシステム資源しか使用しない
NTP クライアントは起動時に、自動的に NTP サーバーと同期を取る。クライアントは同期の取れていない状態になった場合、タイムサーバーと通信したときに再同期を取る
cron を使用して rdate コマンドを実行することにより、時刻の同期を取ることもできます。
NTP サービスを設定および使用するための手順を示します。
スーパーユーザーになります。
xntpd デーモンを正しく実行するには、最初に ntp.conf ファイルを作成する必要があります。 ntp.server ファイルをテンプレートとして使用できます。
# cd /etc/inet # cp ntp.server ntp.conf |
# /etc/init.d/xntpd start |
スーパーユーザーになります。
xntpd デーモンを有効にするには、最初に ntp.conf ファイルを作成する必要があります。
# cd /etc/inet # cp ntp.client ntp.conf |
# /etc/init.d/xntpd start |
rdate コマンドを使用して、日付と時刻を設定し直し、他のシステムとの同期を取ります。
# rdate another-system |
他のシステムの名前
date コマンドを使用して、システムの日時が正しく設定し直されていることを確認してください
出力は、指定したシステムと同じ日付と時刻を示します。
次の例は、rdate を使用してシステムの日時を別のシステムの日時と同期させる方法を示します。次の例は、時刻が数時間遅れているシステム earth の日付と時刻をサーバー starbug の日付と時刻に一致させます。
earth# date Tue Jun 5 11:08:27 MDT 2001 earth# rdate starbug Tue Jun 5 14:06:37 2001 earth# date Tue Jun 5 14:06:40 MDT 2001 |
ファイル名 |
機能 |
---|---|
NTP 用のすべての構成オプションが記述されているファイル |
|
NTP クライアント用のサンプル構成ファイル |
|
NTP サーバー用のサンプル構成ファイル |
|
NTP サーバー上で初期周波数オフセットを設定するファイル |
|
NTP サーバー用のサンプル構成ファイル |
|
ホストの起動時に実行される NTP 起動スクリプト |
|
NTP デーモン。詳細は xntpd(1M) のマニュアルページを参照 |
|
NTP に基づいてローカルな日付と時刻を設定するユーティリティ。詳細は ntpdate(1M) のマニュアルページを参照 |
|
NTP 照会プログラム。詳細は ntpq(1M) のマニュアルページを参照 |
|
マスターの NTP サーバーまで NTP ホストを追跡するプログラム。詳細は ntptrace(1M) のマニュアルページを参照 |
|
xntp デーモン用の NTP 照会プログラム。詳細は xntpdc(1M) のマニュアルページを参照 |
|
NTP の統計情報を保持するディレクトリ |