NFSで公開するディレクトリをadd exportで定義します。ここで「add export PWS500$DKA100:[USER]」のような指定が出来ないので、予めmapで定義しておかなければなりません。ただしmapで定義した内容は再起動すると消えてしまうので、永続的に指定するためにはset configuration mapも指定しておく必要があります。
TCPIP> map "/dka100" pws500$dka100:さらにFreeBSD/i386側からNFS接続してくるユーザをOpenVMS alpha上のユーザと対応づけておく必要があります。ここで注意が必要だったのは、uid=0すなわちrootアカウントについても対応させておく必要があったことでした。FreeBSD/i386でmountコマンドを用いるときにはrootでおこないますが、その時に対応付けがないとマウントできません。オペレーションコンソールに「%TCPIP-W-NFS_NOCMAP, cannot find client record in proxy database (TCPIP$PROXY)」と「-TCPIP-S-NFS_CLIENT, uid=0 gid=0 host_name = 以下略」のような出力が出てきてしまいます。FreeBSDにおけるrootはOpenVMSのSYSTEMに相当するわけですが、proxyでSYSTEMに対応付けるのはセキュリティの問題になりそうな気がして抵抗を感じます。そこでNFSサーバを有効にした時に自動作成されるアカウントTCPIP$NFSを使うことにしました。
TCPIP> sh map
Dynamic Filesystem Map
Pathname Logical File System
/dka100 PWS500$DKA100:
TCPIP> add export "/dka100/user" /host=*
TCPIP> sh export
File System Host name
/dka100/user *
TCPIP> sh proxyNFSサーバの状態はshow nfsやshow portmapperで確認できます。NFSサーバに接続が無い状況では以下のようになっています。
VMS User_name Type User_ID Group_ID Host_name
FURUSAWA ON 1001 1001 *
TCPIP$NFS ON 0 0 *
TCPIP> sh nfsFreeBSD/i386側からNFSマウントする時に注意が必要なのはmntudpオプションをつけることです。
%TCPIP-E-NONFS, NFS server is not active
-SYSTEM-W-NONEXPR, nonexistent process
TCPIP> sh portm
Program Number Version Protocol Port-number Process Service-name
---------------------- ------- ---------- ----------- -------- ------------
000186A0 ( 100000) 2 TCP 111 00000215 PORTMAPPER
000186A0 ( 100000) 2 UDP 111 00000215 PORTMAPPER
root@kazumi:~ # mount -t nfs 192.168.1.161:/dka100/user /mntFreeBSD/i386側からNFSマウントしたOpenVMS alphaのディスクを見ると、OSの違いが顕著に表れます。マウント時のオプションで変更できることもありますが、注意は必要です。
[tcp] 192.168.1.161:/dka100/user: RPCPROG_NFS: RPC: Program not registered
^C
root@kazumi:~ # mount -o mntudp -t nfs 192.168.1.161:/dka100/user /mnt
furusawa% cp a.c /mnt/furusawa/a.c.5NFSを経由するとRecord formatが「Variable length」から「Stream_LF」に変わるようです。
furusawa% ls -l /mnt/furusawa/a.c*
-rwxr-x--- 1 furusawa furusawa 94 Oct 15 10:02 /mnt/furusawa/a.c.1
-rwxr-x--- 1 furusawa furusawa 94 Mar 8 09:49 /mnt/furusawa/a.c.2
-rwxr-x--- 1 furusawa furusawa 94 Mar 8 10:12 /mnt/furusawa/a.c.3
-rwxr-x--- 1 furusawa furusawa 84 Mar 8 11:13 /mnt/furusawa/a.c.4
-rw-r--r-- 1 furusawa furusawa 84 Mar 8 11:15 /mnt/furusawa/a.c.5
$ dir/full a.c;1,;5
Directory DISK$USER:[FURUSAWA]
A.C;1 File ID: (3050,6,0)
Size: 1/4 Owner: [FURUSAWA]
Created: 15-OCT-2015 10:02:50.88
Revised: 15-OCT-2015 10:02:50.95 (1)
Expires: <None specified>
Backup: <No backup recorded>
Effective: <None specified>
Recording: <None specified>
File organization: Sequential
Shelved state: Online
Caching attribute: Writethrough
File attributes: Allocation: 4, Extend: 0, Global buffer count: 0
No version limit
Record format: Variable length, maximum 0 bytes, longest 31 bytes
Record attributes: Carriage return carriage control
RMS attributes: None
Journaling enabled: None
File protection: System:RWED, Owner:RWED, Group:RE, World:
Access Cntrl List: None
Client attributes: None
A.C;5 File ID: (3762,1,0)
Size: 1/8 Owner: [FURUSAWA]
Created: 8-MAR-2016 11:15:09.92
Revised: 8-MAR-2016 11:15:39.73 (0)
Expires: <None specified>
Backup: <No backup recorded>
Effective: <None specified>
Recording: <None specified>
File organization: Sequential
Shelved state: Online
Caching attribute: Writethrough
File attributes: Allocation: 8, Extend: 0, Global buffer count: 0
No version limit
Record format: Stream_LF, maximum 0 bytes, longest 32767 bytes
Record attributes: Carriage return carriage control
RMS attributes: None
Journaling enabled: None
File protection: System:RWD, Owner:RWD, Group:R, World:R
Access Cntrl List: None
Client attributes: None
Total of 2 files, 2/12 blocks.
NFSマウントを解除する時に「Program/version mismatch」というメッセージが出ますが、マウントは外れています。
root@kazumi:~ # umount /mnt
umount: 192.168.1.161: RPCMNT_UMOUNT: RPC: Program/version mismatch; low version = 1, high version = 1
0 件のコメント:
コメントを投稿