全部博文(535)
分类: 系统运维
2012-08-22 18:48:04
一、环境介绍
两台机,一台是NFS服务器,操作系统是AIX5.3,主机名是nfsserver , ip 是10.14.54.247 ,另一台NFS客户端,操作系统是linux,主机名是nfsclient , ip 是10.14.50.191
二、配置nfsserver 和nfsclient的hosts文件
分别修改两台服务器的hosts文件
NFS服务器改成如下:
127.0.0.1 loopback nfsserver # loopback (lo0) name/address
10.14.54.120 nfsserver
10.14.54.168 nfsclient
NFS客户端改成如下:
127.0.0.1 nfsclient
10.14.54.247 nfsserver
10.14.50.191 nfsclient
三、配置NFS Server
AIX: 1, 在服务器上配置如下:
Vi /etc/exports
/home/ -sec=sys,rw,access=10.14.50.190:10.14.50.191
或是/home/ -sec=sys,rw,access=10.14.50.0:10.14.54.0
2,启动nfsserver
startsrc -g nfs
refresh -g nfs
可以通过lssrc -g nfs查看nfs的服务情况
#lssrc -g nfs
Subsystem Group PID Status
biod nfs 712706 active
nfsd nfs 635260 active
rpc.mountd nfs 462932 active
rpc.lockd nfs 639418 active
rpc.statd nfs 757914 active
nfsrgyd nfs inoperative
gssd nfs inoperative
通过startsrc -g nfs与stopsrc -g nfs启动与停止该服务组子系统。每当系统启动时,/etc/rc.nfs运行exportfs命令来读取服务器上的/etc/exports文件,然后告诉内核要导出哪些目录与对应的权限。然后rpc.mountd和以上守护进程由/etc/rc.nfs启动。
用exportfs可以导出该目录,如:
#/usr/sbin/exportfs -a
root@localhost:/etc#/usr/sbin/exportfs
/home/ -sec=sys,rw,access=10.14.50.190:10.14.50.191
关于更多的exportfs的用法,可以查看相关帮助,另外,/etc/xtab则与/ext/exports有一样的格式,运行exportfs的时候,/etc/xtab将被更新,这样可以临时导出一个目录而不更新exports文件。
关于/etc/exports的更新,也可以用smit nfs–>Network File System (NFS) –>Add a Directory to Exports List或者是Change / Show Attributes of an Exported Directory来实现,如
#smit chnf***p
* Pathname of directory to export /u01/logs
Anonymous UID [-2]
Public filesystem? [no]
* Change export now, system restart or both both
Pathname of alternate exports file []
Allow access by NFS versions []
External name of directory (NFS V4 access only) []
Referral locations (NFS V4 access only) []
Replica locations []
Ensure primary hostname in replica list yes
Allow delegations? []
Security method [sys,krb5p,krb5i,krb5,dh,none]
Mode to export directory [read-write]
Hostname list. If exported read-mostly []
Hosts & netgroups allowed client access [host_name1,host_name2]
Hosts allowed root access []
验证服务器中上的 /etc/exports 文件是否列出客户机要安装的文件系统名称以及该文件系统是否已导出。输入以下命令进行操作:
#showmount -e nfsserver
[root@localhost home]# showmount -e nfsserver
Export list for nfsserver:
/home/ 10.14.50.190,10.14.50.191
[root@localhost home]# showmount -e 10.14.54.247
Export list for 10.14.54.247:
/home/ 10.14.50.190,10.14.50.191
[root@localhost home]#
该命令在NFS Server/client上都可以正常运行,列出了由 server_name 当前导出的所有文件系统。
四、配置 nfs client
nfs的client配置比较简单,需要portmap服务正常即可。
Linux 配NFS
如果是linux 的话。就是如下
vi /etc/exports
/home/nfs-share 10.14.50.191 (rw,sync,no_root_squash) ##表示10.14.50.191的root用户可以读写,非root用户没有权限,如果想普通用户也是有权限,那就chmod –R 777 /home/nfs-share
也可以写成 /home/share 10.14.57.0/24(rw,sync,no_root_squash) 表示整个网段的client都可以有权访问
以下是选项:
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
默认就有sync,wdelay,hide 等等,no_root_squash 是让root保持权限,root_squash 是把root映射成nobody,no_all_squash 不让所有用户保持在挂载目录中的权限。所以,root建立的文件所有者是nfsnobody。
重启 Server 端的服务
/etc/init.d/nfs restart
/etc/init.d/nfslock restart
/etc/init.d/portmap restart
然后再在 服务器上 (这一步是设置服务器开机启动的程序)
chkconfig --add portmap
chkconfig --add nfs
chkconfig --add nfslock
在client 上 加上这条,开机后自动挂
echo "mount 10.14.57.179:/home/share /home/179home" >> /etc/rc.local
如果centos 6.0 以上的。 Nfs 启动稍有不同,请查一下相关手册
ps -aux |grep nfs
ps -aux |grep portmap
#lssrc -s portmap
Subsystem Group PID Status
portmap portmap 225506 active
验证 mountd、portmap 和 nfsd 守护程序正在 NFS 服务器上运行,请在客户机 shell 提示符下输入以下命令:
#/usr/bin/rpcinfo -u server_name mount
#/usr/bin/rpcinfo -u server_name portmap
#/usr/bin/rpcinfo -u server_name nfs
如果守护程序在服务器运行,会返回以下响应:
program 100005 version 1 ready and waiting
program 100000 version 2 ready and waiting
program 100003 version 2 ready and waiting
程序号分别与命令对应,如前例中所示。如果没有返回类似的响应,请在服务器控制台上登录服务器并按照获取 NFS 守护程序的当前状态中的指示信息检查守护程序的状态。
#showmount -e server_name
该命令列出了由 server_name 当前导出的所有文件系统。
五、到nfsclient 上去挂载
最后在linux (nfsclient) 和挂载服务器的目录就可以以了
mount -t nfs 10.14.54.247:/home /home
再用
df –h 可以看到挂载的目录
[root@localhost home]# mount -t nfs 10.14.54.247:/home /home
[root@localhost home]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
18G 13G 4.1G 76% /
/dev/sda1 99M 13M 82M 14% /boot
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/mapper/datavg3-oracle_lv2
31M 4.5M 25M 15% /oracle_lv2
10.14.54.247:/home/ 1.1G 544K 1.1G 1% /home
[root@localhost home]# ls
然后再到服务器上/home/目录下创建目录,就可以在nfsclient 上可以看到的(要先cd / 跳出/home目录后,再次进去就可以看到在服务器上创建的目录或是文件)。
AIX:
mount 10.14.54.247:/home /home
另外在AIX 上挂载Linux 上的NFS 需要改AIX的一个参数,如下:
nfso -o nfs_use_reserved_ports=1
另外在Solaris 挂载 AIX上的NFS 要加-o 选项
mount -o vers=3 10.14.54.102:/nfs5552 /nfs5552