Solstice AutoClient 2.1 管理者ガイド

第 8 章 AutoClient 環境の保守

ホストマネージャを使用して AutoClient システムのネットワークを設定した後は、一定の保守作業を行う必要があります。

この章では、次の事項について説明します。

AutoClient パッチ管理の概要

パッチとは、ソフトウェアを正常に実行することができない原因となっている既存のファイルやディレクトリを、置き換えたり変更したりするためのファイルとディレクトリの集まりのことです。既存のソフトウェアは、アプリケーションバイナリインタフェースに準拠したパッケージ形式で作成されています。パッケージについての詳細は、日本語 Solaris 2.5 システム管理 AnswerBook の『Solaris のシステム管理 (第 1 巻)』を参照してください。

ディスクレスクライアントおよび AutoClient システムでは、すべてのソフトウェアがサーバー上に置かれます。たとえば、AutoClientシステムにソフトウェアパッチを追加する場合、ローカルのディスク領域がキャッシュ用として確保されているので、クライアント上にはパッチを追加しません。サーバー、またはサーバーにあるクライアントのルートファイルシステムのいずれか、あるいは両方に、パッチを追加することができます。AutoClientシステムのルートファイルシステムは通常、サーバーの /export/root/hostname にあります。

クライアントにパッチを追加すると、ソフトウェアの一部がクライアントのルートファイルシステム上に、別の一部はクライアントが使用する OS サービス上に置かれます。

ディスクレスクライアントおよび AutoClient システムにパッチをインストールする手順を簡素化するために、Solstice AutoClient には admclientpatch コマンドが用意されています。表 8-1 に、admclientpatch コマンドのオプションと使用方法を示します。

表 8-1 admclientpatch コマンドのオプションと使用方法

オプション 

機能 

-a patch_dir/ patch_id

サーバーのスプールディレクトリにパッチを追加します。 

-c

サーバーの配下にあるすべてのディスクレスクライアントと AutoClient システム、および OS サービスにインストールされているパッチを表示します。 

-p

現在スプールされているすべてのパッチを表示します。 

-r patch_list

patch_id に指定したパッチをスプールディレクトリから削除します。

-s

クライアントに追加されたすべてのパッチとスプールディレクトリにあるパッチとが一致するように、すべてのクライアントの同期をとります。 

AutoClient パッチの管理のヒント

AutoClientシステム上のパッチを管理する一般的な手順は、次のとおりです。

この手順は、OS サーバー (クライアントに OS サービスを提供するサーバー) が、パッチスプールディレクトリのあるシステムと同じであることを前提としています。ただし、AutoClient システム用の OS サーバーが複数ある場合は、パッチスプールディレクトリ用に 1 つのファイルサーバーを使用し、パッチスプールディレクトリを各 OS サーバーにマウントすることもできます。

このような構成で環境を設定する場合は、パッチスプールディレクトリの更新は、直接ファイルサーバー上で実行する必要があります。パッチスプールディレクトリが読み取り専用で共有されている場合には、OS サーバーから admclientpatch -a または -r を実行することはできません。1 台のファイルサーバーからパッチスプールディレクトリをマウントするには、次の手順で AutoClient システムのパッチを管理してください。

  1. ファイルサーバー上で admclientpatch -a または admclientpatch -r を実行して、該当するすべてのパッチがあるファイルサーバー上のスプールディレクトリを更新します。

  2. ファイルサーバーからパッチスプールディレクトリをマウントする宛先となる OS サーバー上で、admclientpatch -s を実行します。


注意 - 注意 -

スプールディレクトリに手動でパッチを追加したり、ここからパッチを削除したりしないでください。パッチの管理には、必ず admclientpatch コマンドを使用してください。


admclientpatch -a によるパッチの追加

admclientpatch -a コマンドによって、パッチディレクトリにあるパッチファイルが、ローカルシステムのスプールディレクトリにコピーされます。スプールディレクトリは、/opt/SUNWadmd/2.3/Patches です。スプールディレクトリに新しいパッチを追加することによって使われなくなった既存のパッチは保存されるので、後で必要に応じて復元することができます。

admclientpatch -r によるパッチの削除

admclientpatch -r コマンドによって、スプールディレクトリから既存のパッチが削除され、前のパッチ (存在する場合) が復元されます。スプールディレクトリに新しいパッチを追加することによって最新ではなくなった既存のパッチは保存されるので、後で必要に応じて復元することができます。

admclientpatch -s によるパッチの同期処理

admclientpatch コマンドは、標準パッチユーティリティ (installpatchbackoutpatch) のフロントエンドです。これらのユーティリティはそれぞれ、パッチのインストール、パッチのバックアウトという特定の処理を行います。admclientpatch -s コマンドを実行すると、パッチのインストールまたはバックアウトのどちらの処理を行うかを意識する必要がなくなります。-s オプションによって、サーバー上およびクライアントのファイルシステム上にパッチがインストールされるか、またはクライアントおよびサーバーのパッチがバックアウトされて前のバージョンのパッチが再インストールされるかの、いずれかの適切な処理が実行されます。この処理のことを、クライアントにインストールされたパッチとパッチスプールディレクトリにあるパッチとの同期をとる (同期処理) といいます。

ホストマネージャによるパッチスプールディレクトリの使用

ホストマネージャを使用して、ネットワークの設定ファイルに新しいディスクレスクライアントおよび AutoClient システムを追加すると、これらの新しいクライアントは、パッチスプールディレクトリにあるパッチに合わせて自動的に設定されます。つまり、OS サービス領域にパッチをインストールした後に、その他のクライアントとパッチスプールディレクトリとの同期が保たれているかどうかが、ホストマネージャによって検証されます。同期がとれていない場合は、admclientpatch -s を実行して、既存のディスクレスクライアントまたは AutoClient に追加されたパッチとパッチスプールディレクトリ中のパッチの同期をとる必要があることを示す警告メッセージが出力されます。

パッチ管理の詳細

パッチの追加や削除を実行するとどうなるか、パッチがどのように配布されるかについての詳細は、日本語 Solaris 2.5 システム管理 AnswerBook の『Solaris のシステム管理 (第 1 巻)』を参照してください。また、admclientpatch の使用方法については、admclientpatch(1M) のマニュアルページを参照してください。

AutoClient システムのパッチ管理

OS サーバーのパッチスプールディレクトリにパッチをコピーする

  1. PATH 環境変数に /opt/SUNWadm/2.3/bin が記述されていることを確認します。

    詳細は『Solstice AutoClient 2.1 ご使用にあたって』を参照してください。

  2. OS サーバーにログインし、スーパーユーザーになります。

  3. デフォルトのスプールディレクトリにパッチをコピーします。


    # admclientpatch -a patch_dir/patch_id
    

    patch_dir

    パッチが置かれているパッチサーバー上のソースディレクトリを指定します。パッチサーバーは、ローカルマシンまたはリモートマシンのどちらでもかまいません。 

    patch_id

    パッチの ID 番号 (102209-01 など) を指定します。 

    OS サーバー上のデフォルトスプールディレクトリに、パッチが コピーされます。

検証

指定したパッチが Solstice AutoClient のデフォルトのパッチスプールディレクトリに正しくコピーされたかどうかを確認するには、admclientpatch -p コマンドを実行して、現在のスプールパッチの一覧を表示します。

オートマウンタを使用して、パッチサーバー cable からパッチ (パッチ ID: 100974-02) をローカルシステム (OS サーバー) のスプールディレクトリにコピーする例を示します。


# admclientpatch -a /net/cable/install/sparc/Patches/100974-02
Copying the following patch into spool area: 100974-02 . done

パッチサーバー cable のパッチディレクトリをローカルシステム (OS サーバー) にマウントして、パッチサーバーからパッチ (パッチ ID: 102113-03) をローカルシステムのスプールディレクトリにコピーします。


# mount cable:/install/sparc/Patches /mnt
# admclientpatch -a /mnt/102113-03
Copying the following patch into spool area: 102113-03 . done

OS サーバーのパッチスプールディレクトリからパッチをバックアウトする

  1. PATH 環境変数に /opt/SUNWadm/2.3/bin が記述されていることを確認します。

    詳細は『Solstice AutoClient 2.1 ご使用にあたって』を参照してください。

  2. OS サーバーにログインし、スーパーユーザーになります。

  3. デフォルトスプールディレクトリにあるパッチをバックアウト処理します。


    # admclientpatch -r patch_id
    

    patch_id

    パッチの ID 番号 (102209-01 など) を指定します。 

    OS サーバー上のデフォルトスプールディレクトリから、パッチがバックアウトされます。

検証

指定したパッチが、Solstice AutoClient のデフォルトのパッチスプールディレクトリから正しくバックアウト処理されたかどうかを確認するには、admclientpatch -p コマンドを使用して、現在のスプールパッチの一覧を表示します。

デフォルトの Solstice AutoClient スプールディレクトリからパッチ (パッチ ID: 102209-01)を削除します。


# admclientpatch -r 102209-01
Unspooling the following patch: 102209-01
Removing the following patch from the spool area: 102209-01 .

AutoClient システムにインストールされたパッチと OS サーバーにスプールされたパッチの同期をとる

  1. PATH 環境変数に /opt/SUNWadm/2.3/bin が記述されていることを確認します。詳細は『Solstice AutoClient 2.1 ご使用にあたって』を参照してください。

  2. OS サーバーにログインし、スーパーユーザーになります。

  3. クライアントにあるパッチと、OS サーバーのスプールディレクトリにあるパッチとの同期をとります。


    # admclientpatch -s
    

    -s オプションを使用すると、必要に応じてクライアント上にパッチがインストールされるか、またはクライアント上のパッチがバックアウトされます。


    注 -

    パッチのインストール後に AutoClient システムをリブートする必要があります。この時、admreboot コマンドを使用して、リモートから AutoClient システムをリブートすることができます。admreboot コマンドについての詳細は、admreboot(1M) のマニュアルページを参照してください。


    すべてのクライアント上にあるパッチに対して同期処理が行われます。

検証

Solstice AutoClient のパッチスプールディレクトリにあるパッチが、ディスクレスクライアントと AutoClient システム上で正しく実行されているかどうかを確認するには、admclientpatch -c コマンドを使用します。


# admclientpatch -c
Clients currently installed are:
        rogue                    Solaris, 2.5, sparc
            Patches installed :  102906-01
OS Services available are:
        Solaris_2.5             
            Patches installed :  102906-01

すべてのクライアントにあるパッチが、OS サーバーのパッチスプールディレクトリにあるパッチに同期化されます。-v オプションを使用すると、admclientpatch コマンドによって、新しいパッチが追加されているか、または不要なパッチがバックアウト処理されているかが表示されます。


# admclientpatch -s -v
Synchronizing service: Solaris_2.5 
    Installing patches spooled but not installed
        102939-01      .....skipping; not applicable
Synchronizing client: rogue 

All done synchronizing patches to existing clients and OS
services.

バックファイルシステムによるキャッシュファイルシステムの更新

AutoClientシステムには、CacheFS 整合性モデルに新しいキャッシュ整合性モードが追加されています。この整合性モードのことを demandconst と言い、cfsadmin(1M) コマンドに指定できる新しいオプションです。このモードでは、通常サーバーではファイルが変更されません。サーバーでファイルを変更する場合は、必ずシステム管理者が整合性検査を行うことが前提になっています。したがって、明示的に要求しない限り整合性検査は行われません。ただし、AutoClient システムのブート時に CacheFS をマウントすると、整合性検査が自動的に実行され、以後 24 時間ごとに整合性検査を実行するようにデフォルトで AutoClient システムが設定されます。このモデルでは、整合性検査の頻度を下げることによってネットワークへの負荷が軽減されるので、AutoClient のパフォーマンスが改善されます。

システムの / (ルート) 領域は他のシステムにはエクスポートされないので、データーに不整合が生じる可能性はごくわずかです。システム自身がデーターを変更した場合でも、変更はキャッシュを介して反映されるので、キャッシュに不整合が生じることはありません。システムの / (ルート) 領域にあるデーターを変更できるのは、サーバーのスーパーユーザーだけです。

/usr ファイルシステムも同じように、サーバーが読み取り専用としてエクスポートします。したがって、/usr ファイルシステムを変更できるのは、サーバーのスーパーユーザー (システム管理者) だけです。キャッシュファイルシステムを対応するバックファイルシステムと同期化するには、autosync(1M) コマンドを使用してください。

各 AutoClient システム、ネットワーク上にあるすべてのローカル AutoClient システム、指定したファイルに記述されたすべての AutoClient システムを、バックファイルシステムと一致するように更新することができます。この更新処理は、/usr 共有ディレクトリや 1 つまたは複数のシステムの / (ルート) ディレクトリに新しいパッケージを追加した時、およびパッチを追加した時に実行する必要があります。以下に、autosync(1M) の使用方法を説明します。このコマンドは、サーバーから実行します。

autosync コマンドの使用条件

autosync コマンドを使用するには、sysadmin グループのメンバーになっている必要があります。

sysadmin グループの作成については、「AutoClient のアクセス権の設定」を参照してください。

すべての AutoClient システムをバックファイルシステムに合わせて更新する

autosync コマンドをオプションなしで実行すると、autosync コマンドを実行しているサーバーからローカルなネットワーク上のすべての AutoClient システムにあるすべてのキャッシュファイルシステムが更新されます。


% autosync

更新できなかったシステムがある場合は、そのシステム名が表示されます。何も表示されなければ、問題なく更新が実行されています。

システム plutogenesissaturn の更新が失敗した場合の例を示します。


% autosync
pluto:: failed:
genesis:: failed:
saturn:: failed:

検証

メッセージが何も表示されなければ、問題なく更新が実行されています。

1 つの AutoClient システムをバックファイルシステムに合わせて更新する

autosync コマンドに -h オプションを付けて実行すると、ネットワーク上で指定された AutoClient システムにあるすべてのキャッシュファイルシステムが更新されます。


% autosync -h hostname

-h

1 つのシステムを指定します。 

hostname

更新するキャッシュのあるシステム名を指定します。 

AutoClient システム pluto にあるすべてのキャッシュファイルシステムを更新する例を示します。

% autosync -h pluto

システムを更新できなかった場合は、次のメッセージが表示されます。

% autosync -h pluto

pluto:: failed:

検証

メッセージが何も表示されなければ、問題なく更新が実行されています。

AutoClient システムの特定のファイルシステムを更新する

次のように autosync コマンドを実行すると、AutoClient システムの特定のファイルシステムが、バックファイルシステムに合わせて更新されます。


% autosync -h hostname  cached-filesystem

-h

1 つのシステムを指定します。 

hostname

更新するキャッシュのあるシステム名を指定します。 

cached-filesystem

更新するキャッシュファイルシステム名を指定します。 

AutoClient システム foo にあるキャッシュファイルシステム /usr を更新する例を示します。

% autosync -h foo /usr

複数の AutoClient システムをバックファイルシステムに合わせて更新する

  1. ファイルを作成して、バックファイルシステムと同期をとるシステムの名前を記述します。

    ファイルはどこに置いてもかまいません (たとえば /tmp/home)。autosync コマンドに引き数を指定せずに実行した場合に、更新されなかったシステムが複数ある時には、更新されなかったシステム名をこのファイルに入力してください。たとえば、1 行に 1 つのシステム名を記述します。

  2. host_file ファイルに記述されたすべての AutoClient システムを更新します。


    % autosync -H host_file 
    

    -H

    ファイルに記述されたすべての AutoClient システムを更新します。 

    host_file

    ネットワーク上にある更新するすべての AutoClient システム名が記述されたファイルです。 

net_hosts 中に記述されたすべての AutoClient システムを更新する例を示します。

% autosync -H net_hosts

たとえば、net_hosts ファイルには次のように記述します。


mars  
jupiter  
saturn

クライアントから AutoClient システムを更新する

次のように autosync コマンドを使用して、AutoClient システムにあるすべてのキャッシュファイルシステムを更新することができます。このコマンドは、サーバーからではなく更新するシステム自体から実行します。


% autosync -l 

更新の必要なファイルシステムを指定することもできます。

/usr ファイルシステムをクライアントから更新する例を示します。

% autosync -l /usr

故障した AutoClient システムの交換

AutoClient システムは、常時保持する必要があるデーターは持たない FRU (現場交換可能ユニット) なので、他の同等のシステムと置き換えることができます。FRU は、データーを失わずに互換性のある別のシステムと物理的に交換することができます。AutoClient システムが故障した場合は、次の手順に従って、データーを失わずに短時間で故障した部分を交換することができます。


注 -

ディスクだけを交換する場合など Ethernet アドレスに変更がない場合は、キャッシュを再構成するために boot -f コマンドを実行してシステムをリブートしてください。


FRU の制限事項

カーネルアーキテクチャや OS のリリースを変更することはできません。

故障した AutoClient システムを交換する

  1. システムが実行中の場合は、halt コマンドを実行して PROM モニタープロンプトを表示させ、電源を切ります。

  2. 故障した AutoClient システムをネットワークから切り離します。

  3. 交換用の AutoClient システムをネットワークに接続します。

    交換用の AutoClient システムのカーネルアーキテクチャは、故障した AutoClient システムのカーネルアーキテクチャと同じものにしてください。

  4. AutoClient システムのサーバー上で、Solstice 起動ツールからホストマネージャを起動して、ネームサービスを選択します (まだこの手順を実行していない場合)。

    詳細は、「ホストマネージャの起動」を参照してください。

  5. ホストマネージャのメインウィンドウから、交換する故障システムを選択します。

  6. 「編集」メニューから「変更」を選択します。

    「変更」ウィンドウが表示されます。選択した AutoClient システムの情報が各フィールドに入力された状態で表示されます。

  7. Ethernet アドレスとディスクの設定を、新しい AutoClient システムに合わせて変更します。

  8. 「了解」をクリックします。

  9. 「ファイル」メニューから「変更を保存」を選択します。

  10. 新しいシステムの電源を入れます。

  11. > プロンプトが表示されている場合は、n と入力して Return (または Enter) キーを押し、ok プロンプトに変更します。

    ok プロンプトが表示されます。


    注 -

    Sun-4 システムの場合は ok プロンプトは表示されないので、この手順は必要ありません。


  12. AutoClient システムをブートします。

    AutoClient システム 

    ブートコマンド 

    Sun4/3nn

    b le()

    Sun4/1nn

    Sun4/2nn

    Sun4/4nn

    b ie()

    x86 

    「x86: ネットワークからのブート」を参照してください。

    その他 

    boot net

  13. AutoClient システムがブートされたら、スーパーユーザーとしてログインします。

  14. AutoClient システムのデフォルトのブートデバイスをネットワークに設定します (「x86: システムを自動ブートする」を参照)。


    注 -

    AutoClient システムは常にネットワークからブートするので、この手順は必ず実行してください。たとえば停電後に、AutoClient システムをネットワークから自動ブートする必要があります。


コマンド行インタフェースによる故障した AutoClient システムの交換例

ホストマネージャに対応するコマンドを使用して、AutoClient システムの Ethernet アドレスを変更する例を示します。


% admhostmod -e ethernet_address host_name

ホストマネージャに対応するコマンドを使用して、AutoClient システムのディスク構成を変更する例を示します。


% admhostmod -x diskconf=disk_config host_name

ディスク構成のオプションについては、表 6-3 を参照してください。

キャッシュへのファイルの格納

cachefspack(1M) コマンドを使用して、AutoClient システムのキャッシュを、指定したファイル名で指定したディレクトリに格納することができます。格納したファイルは常にシステムのキャッシュ中にあり、システムキャッシュがフルになっても削除せずに保存しておくことができます。キャッシュ中に格納するファイルやディレクトリは、キャッシュファイルシステムに存在するもの、すなわち、AutoClient システムの / (ルート) または /usr ファイルシステム中に存在している必要があります。


注 -

切断時実行継続機能を使用して AutoClient システムを設定すると、サーバーが使用できなくなった場合でも、キャッシュや格納したファイルへアクセスすることができます。切断時実行継続機能についての詳細は、表 6-2 を参照してください。


ファイルをキャッシュ中に格納する

cachefspack(1M) コマンドを使用して、ファイルをキャッシュに格納します。


$ cachefspack -p filename

-p

指定したファイル (複数も可) を格納します。これはデフォルトです。 

filename

キャッシュ中に格納するキャッシュファイルまたはキャッシュディレクトリの名前を指定します。ディレクトリを指定すると、その下のすべてのサブディレクトリも格納されます。cachefspack(1M) コマンドについての詳細は、マニュアルページを参照してください。

ファイル cm (カレンダマネージャ) をキャッシュに格納する例を示します。


$ cachefspack -p /usr/openwin/bin/cm

複数のファイルをキャッシュに格納する例を示します。


$ cachefspack -p /usr/openwin/bin/xcolor /usr/openwin/bin/xview

ディレクトリをキャッシュに格納する例を示します。


$ cachefspack -p /usr/openwin/bin

キャッシュからのファイルの削除

キャッシュからファイルを削除する必要が生じる場合もあります。たとえば、ファイルやディレクトリの重要度に差がある場合、重要度が低いファイルを削除することができます。

キャッシュからファイルを削除する

キャッシュから各ファイルを削除するには、cachefspack(1M) コマンドに -u オプションを指定します。


$ cachefspack -u filename

-u

指定したファイル (複数も可) を削除します。 

filename

キャッシュから削除するファイル名 (複数も可) を指定します。cachefspack(1M) コマンドについての詳細は、マニュアルページを参照してください。

キャッシュディレクトリにあるすべてのファイルを削除するには、cachefspack(1M) コマンドに -U オプションを付けて実行します。


$ cachefspack -U cache_directory

-U

指定したキャッシュディレクトリから、格納されたすべてのファイルを削除します。 

cache_directory

キャッシュから削除するキャッシュディレクトリ名を指定します。cachefspack(1M) コマンドについての詳細は、マニュアルページを参照してください。

ファイル /usr/openwin/bin/xlogo をキャッシュから削除する例を示します。


$ cachefspack -u /usr/openwin/bin/xlogo 

複数のファイルをキャッシュから削除する例を示します。


$ cachefspack -u /usr/openwin/bin/xview /usr/openwin/bin/xcolor

キャッシュディレクトリ中のすべてのファイルをキャッシュから削除する例を示します。


$ cachefspack -U /usr/openwin/bin

キャッシュにファイルシステムが 1 つもマウントされていない場合は、削除を実行することはできません。ファイルシステムが マウントされていないキャッシュを指定して -U オプションを使用すると、次のようなメッセージが表示されます。


$ cachefspack -U /local/mycache
cachefspack: Could not unpack cache /local/mycache, no mounted
filesystems in the cache.

格納ファイル情報の表示

格納する対象として指定したファイルや格納状態などの情報を表示することができます。

格納ファイルの情報を表示する

格納されたファイルやディレクトリに関する情報を表示するには、cachefspack(1M) コマンドに -i オプションを指定します。


$ cachefspack -i cached-filename-or-directory

-i

格納されたファイルに関する情報を表示します。 

cached-filename-or-directory

情報を表示するファイル名またはディレクトリ名を指定します。 

格納された ttce2xdr.1m というファイルが、キャッシュに格納されていることを示しています。


# cachefspack -i /usr/openwin/man/man1m/ttce2xdr.1m
cachefspack: file /usr/openwin/man/man1m/ttce2xdr.1m marked
packed YES, packed YES
.
.
.

次の例は、サブディレクトリ bin を含む /usr/openwin ディレクトリを示したものです。bin サブディレクトリには、xtermtexteditresize という 3 つのファイルがあります。xterm ファイルは格納するように指定されていますがキャッシュ中には存在しないこと、textedit ファイルは格納するように指定されておりキャッシュ中に存在すること、resize ファイルは格納するように指定されていますがキャッシュ中には存在しないことを表しています。


$ cachefspack -i /usr/openwin/bin
.
.
.
cachefspack: file /bin/xterm marked packed YES, packed NO
cachefspack: file /bin/textedit marked packed YES,packed YES
cachefspack: file /bin/resize marked packed YES,packed NO
.
.
.