- - PR -
nscdのキャッシュデータの更新について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-11-01 17:35
いつもお世話になっております。
NSCDの設定についてご教示いただけませんでしょうか。 現在、Solaris 9 を NIS マスタサーバ、Linux を NIS スレーブサーバとして利用 しております。Linux では自分自身を参照するように NISクライアントの設定を しております。 NIS マスタサーバでは passwd と group を共有しており、変更時には NIS スレーブ サーバに反映されるようになっておりますが、NSCD が動作しているため、getent にて確認してもすぐに反映されず困っております。 1. NIS マスタサーバのgroupファイルに以下のように登録されているとします。 1000::test:userA 2. NIS スレーブサーバでgetent group testとすると、以下のような結果が得られます。 1000::test:userA 3. NIS マスタサーバの該当エントリを以下のように変更します。 1000::test:userA,userB 4. NIS スレーブサーバでgetent group testとしても、変更が反映されず、 しばらくまっていると変更が反映されます。 NSCDを再起動することで即座に反映されるため、NSCDのキャッシュが原因である と思われますが、この反映されるまでの時間を短くする方法はございます でしょうか。 この場合、(古いけど)成功したクエリをキャッシュしているため、 positive-time-to-live group 1 の値を上記のように短くしてみましたが、即座に反映されませんでした。また、 keep-hot-count group 0 のようにしてみましたが同様でした。 以上、何か改善方法があればご教示頂けますと幸いです。 |
|
投稿日時: 2006-11-01 17:59
多分(未検証)、/etc/nscd.confの
positive-time-to-live negative-time-to-live あたりで制御できると思います。 またはnscdのプロセスに kill -HUP プロセス番号 のコマンドをcronとかで定期的にリロードすれば良いかも。 自分の場合は素直にリスタートしてますけど... あと、 paranoia <yes|no> restart-interval time でパラノイアモードで再起動する方法もあるかも。 ただここまでやってまでnscdを使う意味があるかどうか... [ メッセージ編集済み 編集者: 非武装エリア 編集日時 2006-11-01 18:01 ] [ メッセージ編集済み 編集者: 非武装エリア 編集日時 2006-11-01 18:04 ] |
|
投稿日時: 2006-11-02 12:01
非武装エリア様、ご回答を頂き、ありがとうございます。
kill -HUPによる方法を試してみましたが、残念ながらデータの再読み込みは行わない ようです。また、positive-time-to-liveですが、これは「クエリに成功したデータを キャッシュする時間」と認識しておりますが、うまく動かないようです。今回試験の ために 1 としましたが、NIS マスタ側のデータを更新してもなかなか反映されません。 ただし、negative-time-to-liveはうまく動いている感じです。存在しないエントリを クエリを getent group noexist のようにした上で、noexist というエントリを追加 して再度 getent すると、追加したエントリが出力されました。 以上、そもそも当方の認識が異なっている等ございましたら、ご指摘を頂けますと 幸いです。 |
1