うんちくメモ

ただのメモです。内容は妄想の可能性があります

Oracle Direct NFS(dNFS)環境設定手順

・dNFS環境設定時のメモ

■設定概要

NFSサーバ側
・NFS用ディスク追加
・fdiskでパーティション作成
・mke2fsでファイルシステム作成
・balkidでUUID確認後fstab設定
・oinstallグループ、oracleユーザ作成
・NFSマウントポイントオーナー・パーミッション設定
・/etc/exports 設定
・NFS関連サービス設定
NFSクライアント側
・oinstallグループ、oracleユーザ作成
・NFSマウントポイントオーナー・パーミッション設定
・fstab へdNFSオプションで設定
・NFS関連サービス設定
・dNFS設定

■設定詳細

NFSサーバ側
・mke2fsでファイルシステム作成

・ext3で作成
# mke2fs -j /dev/sdb1
・ext4で作成
# mke2fs -t ext4 /dev/sdb1

・balkidでUUID確認後fstab設定

# blkid
/dev/sda5: UUID="4ee0ec77-65bd-48c3-b261-bc47acfc779e" TYPE="ext4"
/dev/sda1: UUID="e01495a6-fa9c-407a-a1d4-401b3e33f6a1" TYPE="ext4"
/dev/sda2: UUID="128c317f-b199-4f5e-a7fc-d7290499059e" TYPE="ext4"
/dev/sda3: UUID="dc0fd9d1-4302-4df1-92e7-c952925b0efc" TYPE="swap"
(略)
# blkid -o list

device                         fs_type      label         mount point                        UUID
----------------------------------------------------------------------------------------------------------------------------------
/dev/sda5                      ext4                       /                                  4ee0ec77-65bd-48c3-b261-bc47acfc779e
/dev/sda1                      ext4                       /boot                              e01495a6-fa9c-407a-a1d4-401b3e33f6a1
/dev/sda2                      ext4                       /oracle                            128c317f-b199-4f5e-a7fc-d7290499059e
/dev/sda3                      swap                       <swap>                             dc0fd9d1-4302-4df1-92e7-c952925b0efc
(略)

/etc/fstab

UUID=a99ebdae-b1b8-4089-9b6a-5f5ec03dc05d /databackup  ext3 defaults    0 0

・oinstallグループ、oracleユーザ作成
※作成せずに利用も可能だがユーザマッピングで面倒なことになるので仕様上許されるならDBサーバ側の設定に合わせて作成する

groupadd -g 1000 oinstall
useradd oracle -d /home/oracle -g oinstall -s /bin/bash -u 1100
cat /etc/group |egrep "(oinstall)"
cat /etc/passwd |egrep "(oracle)"

NFSマウントポイントオーナー・パーミッション設定
※サーバ側、クライアント側で同一設定とする

mkdir -p /databackup
chown oracle:oinstall /databackup
chmod 775 /databackup/

・/etc/exports 設定
★dNFS設定として推奨は(ドキュメントID:762374.1)の通りだが、検証用途ではall_squash設定は面倒なので設定せず、insecure設定のみ明示的に追加する
また、RMANバックアップ用途なのでno_subtree_checkを追加する

/databackup 192.168.1.0/24(rw,sync,no_root_squash,insecure,no_subtree_check)

設定を反映

exportfs -rv
exporting 192.168.1.0/24:/databackup

NFS関連サービス設定
※OSバージョンによるが、下記サービスを自動起動化する

サービス状態確認

service rpcbind status
service nfslock status
service nfs status
service portmap status

サービス起動

service rpcbind start
service nfslock start
service nfs start
service portmap start

サービス起動設定確認

chkconfig --list rpcbind
chkconfig --list nfslock
chkconfig --list nfs
chkconfig --list portmap

サービス自動起動

chkconfig rpcbind on
chkconfig nfslock on
chkconfig nfs on
chkconfig portmap on

NFSクライアント側

・fstab へdNFSオプションで設定
oracle推奨オプション(ドキュメントID:1763626.1)を設定する。
下記はシングル構成のため、RAC時は actimeo=0 も追加する
NFSサーバ停止時にネットワーク開始時までマウントを待機させるため _netdev オプションも追記する(付与しないとOS起動時にNFSマウントを試みてタイムアウトまで待機してしまうため)

192.168.1.101:/databackup /databackup nfs rw,bg,hard,_netdev,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600

設定反映

mount -av

・dNFS設定
oracleユーザで作業
作業ディレクトリへ移動

$ cd $ORACLE_HOME/lib
$ ls -l libodm11.so
lrwxrwxrwx 1 oracle oinstall 12  9月 21  2010 libodm11.so -> libodmd11.so

シンボリックリンク張替え

$ mv libodm11.so libodm11.so.bk
$ ln -s libnfsodm11.so libodm11.so
$ ls -l libodm11.so
lrwxrwxrwx 1 oracle oinstall 14  3月 31 14:12 libodm11.so -> libnfsodm11.so

インスタンス再起動後に反映される(起動時のアラートログで確認可能)