VERITAS ClusterServer 資料一覧

Shareエージェント(NFSサーバ)を構成する方法

2007/9/1更新

対応バージョン: 2

標準で用意されているNFSリソースはタイプがOnOnlyになっているのでそのままでは別のリソースとの接続ができない。

そこでNFSサーバの起動スクリプト(/etc/init.d/nfs.server)を変更し、OSブート時にはNFSのサーバ群「だけ」を起動するようにし、ShareについてはVCSのShareタイプを使って管理するようにする。

以下に作業手順を示す。

通常(OS標準)のShareシーケンス停止

# /usr/sbin/unshareall -F nfs
/etc/dfs/dfstabからShare部分をコメントアウト
NFSサーバの起動スクリプト変更
# cd /etc/init.d
# cp -p nfs.server nfs.server.org (*)

(*) 上記作業はmvではなくcpにする。これは以下のファイルがnfs.serverにハードリンクしているため、mvすると新しいnfs.serverのiノード番号が変わってしまい、リンクを張り直す必要がでてきてしまうからである。

/etc/rc0.d/K28nfs.server
/etc/rc1.d/K28nfs.server
/etc/rc2.d/K28nfs.server
/etc/rc3.d/S15nfs.server
/etc/rcS.d/K28nfs.server
/etc/dfs/dfstab内にnfsタイプのShareが指定されていなくてもNFSサーバ関連デーモン(mountd,nfsd)が起動するように同デーモン起動スイッチを最初から1(ON)にしておく
# vi nfs.server
:
  35          startnfsd=0 ← 0を1にする
:

VCSエージェント作成

ShareをVCS管理下で行なうためのVCSエージェントを作成する。

エージェントの設定はクラスタメンバの1つのマシン上で行なえばよい。

ここでは例として以下のようなShareエージェントを作成するものとして説明する。

システム

sysa,sysb

メンバグループ

grpa,grpb

リソース名

grpa_Share_ap (grpaに所属)

依存リソース

grpa_Mount_ap

Shareポイント

/opt/ap

Shareオプション

rw(Read Write)

host_aとhost_bからのrootの書き込み可

リソース定義モード変更(書き込み不可 → 可)

# haconf -makerw

リソース定義

# hares -add grpa_Share_ap Share grpa
# hares -modify grpa_Share_ap Critical 0 (*)

(*) 通常運用ではこの値を1(ON)にする。1にするとこのリソースにエラーが発生したり手動でオフラインにした場合に他のリソースを含めて全体がフェールオーバするのでテスト時には0にしておいてこのリソース単体の試験等によって全体がフェールオーバするのを防ぐ。

# hares -modify grpa_Share_ap PathName "/opt/ap"
# hares -modify grpa_Share_ap Options "rw,root=host_a:host_b"
# hares -link grpa_Share_ap grpa_Mount_ap

リソース有効化 & online

# hares -modify grpa_Share_ap Enabled 1
# hares -online grpa_Share_ap -sys sysa

リソース状況チェック

# hares -display grpa_Share_ap
#Resource     Attribute       System     Value
grpa_Share_ap Group           global     sysa 
grpa_Share_ap Type            global     Share
grpa_Share_ap AutoStart       global     1    
grpa_Share_ap Critical        global     0    
grpa_Share_ap Enabled         global     1    
grpa_Share_ap LastOnline      global     sysa 
grpa_Share_ap MonitorOnly     global     0    
grpa_Share_ap ResourceOwner   global     unknown
grpa_Share_ap TriggerEvent    global     0    
grpa_Share_ap ArgListValues   sysa       /opt/ap ""
grpa_Share_ap ArgListValues   sysb       /opt/ap ""
grpa_Share_ap ConfidenceLevel sysa       100
grpa_Share_ap ConfidenceLevel sysb       0
grpa_Share_ap Flags           sysa     
grpa_Share_ap Flags           sysb     
grpa_Share_ap IState          sysa       not waiting
grpa_Share_ap IState          sysb       not waiting
grpa_Share_ap Probed          sysa       1
grpa_Share_ap Probed          sysb       1
grpa_Share_ap Start           sysa       1
grpa_Share_ap Start           sysb       0
grpa_Share_ap State           sysa       ONLINE
grpa_Share_ap State           sysb       OFFLINE
grpa_Share_ap Options         global     rw,root=host_a:host_b
grpa_Share_ap PathName        global     /opt/ap

確認

# share
-     /opt/ap   rw,root=host_a:host_b   ""

フェールオーバ確認

# hagrp -switch grpa -to sysb

この段階でsysb上でshareが正しく行われていることを確認し、問題なければフェールバックする。

# hagrp -switch grpa -to sysa

リソース設定変更

リソース定義時に0に設定していたCriticalフラグを必要に応じて1(フェールオーバ対象)に設定する。

hares -modify grpa_Share_ap Critical 1

リソース定義モード変更(書き込み可 → 不可)

# haconf -dump -makero

このようにNFSサーバとShareの関連性を切ることによってフェールオーバ時にもNFSのサーバ群には影響を与えずにUnshare/ShareがVCSの管理下で行える。