测试系统的版本为RHEL6.4
服务端IP172.26.181.101
客户端IP172.26.181.98
一、服务端安装NFS
检查系统是否已安装NFS
[root@rman-backup ~]# rpm -qa|grep nfs
nfs4-acl-tools-0.3.3-6.el6.x86_64
nfs-utils-lib-1.1.5-6.el6.x86_64
nfs-utils-1.2.3-36.el6.x86_64
[root@rman-backup ~]# rpm -qa|grep rpcbind
rpcbind-0.2.0-11.el6.x86_64
这两个包应该是默认安装的,上述结果表示已安装NFS,否则执行下面的命令在线安装:
yum -y install nfs-utils rpcbind
二、服务端配置NFS服务
检查服务器文件系统:
[root@rman-backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_rmanbackup-lv_root
42G 3.2G 36G 9% /
tmpfs 3.9G 68K 3.9G 1% /dev/shm
/dev/sda1 485M 38M 423M 9% /boot
/dev/sdb1 50G 2.5G 45G 6% /u01
/dev/sdb5 148G 188M 140G 1% /orabackup
我们需要把/orabackup作为NFS供客户端读写。
编辑NFS主要配置文件:
[root@rman-backup ~]# vi /etc/exports
/orabackup 172.26.181.98(rw)
~
这里我们要让客户端172.26.181.98以读写权限访问/orabackup
重启NFS:
[root@rman-backup ~]# service rpcbind restart
Stopping rpcbind: [ OK ]
Starting rpcbind: [ OK ]
[root@rman-backup ~]# service nfs restart
Shutting down NFS daemon: [ OK ]
Shutting down NFS mountd: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down NFS services: [ OK ]
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Stopping RPC idmapd: [ OK ]
Starting RPC idmapd: [ OK ]
Starting NFS daemon: [ OK ]
查看自己共享的服务:
[root@rman-backup ~]# showmount -e 172.26.181.101
Export list for 172.26.181.101:
登录客户端,使用下面命令查看可挂载的NFS:
[root@node1 ~]# showmount -e 172.26.181.101
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
这个报错大部分是因为服务端未关闭防火墙,在服务端关闭防火墙并重启:
[root@rman-backup ~]# chkconfig iptables off
再次在客户端查看:
[root@node1 ~]# showmount -e 172.26.181.101
Export list for 172.26.181.101:
/orabackup 172.26.181.98
挂载NFS:
[root@node1 ~]# mkdir /nfs
[root@node1 ~]# mount 172.26.181.101:/orabackup /nfs
[root@node1 ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/sda7 1008M 248M 709M 26% /
tmpfs 2.5G 1.1G 1.5G 43% /dev/shm
/dev/sda1 97M 32M 61M 35% /boot
/dev/sda8 1008M 38M 920M 4% /home
/dev/sda9 1008M 37M 920M 4% /opt
/dev/sda3 2.0G 70M 1.9G 4% /tmp
/dev/sda2 5.0G 3.1G 1.6G 66% /usr
/dev/sda10 1008M 34M 924M 4% /usr/local
/dev/sda5 2.0G 262M 1.7G 14% /var
/dev/sda11 20G 14G 5.4G 72% /u01
/dev/sr0 3.5G 3.5G 0 100% /media/RHEL_6.4 x86_64 Disc 1
172.26.181.101:/orabackup
148G 188M 140G 1% /nfs
可以看到在客户端已经挂载成功。
尝试创建文件:
[root@node1 nfs]# touch test
touch: 无法创建"test": 权限不够
查看服务端权限:
[root@rman-backup /]# ls -l |grep ora*
drwxr-xr-x. 4 root root 4096 Dec 10 14:12 orabackup
修改服务端权限:
[root@rman-backup /]# chmod 777 /orabackup
[root@rman-backup /]# ls -l |grep ora*
drwxrwxrwx. 4 root root 4096 Dec 10 14:12 orabackup
再次尝试在客户端创建文件:
[root@node1 nfs]# touch test
[root@node1 nfs]# ll
总用量 20
drwx------ 2 nobody nobody 16384 12月 8 09:29 lost+found
drwxr-xr-x 2 nobody nobody 4096 12月 10 14:12 script
-rw-r--r-- 1 nobody nobody 0 12月 10 15:40 test
最后在客户端设置自动挂载:
[root@node1 ~]# vi /etc/fstab
增加下面这行:
172.26.181.101:/orabackup /nfs nfs defaults 0 0
配置完成。
四、服务端的配置选项
上面例子中/etc/exports文件内容为:
/orabackup 172.26.181.98(rw)
该条目的完整格式如下:
<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
输出目录就是服务器要共享给客户端的目录。
客户端有多种指定方法:
指定ip地址的主机:172.26.181.98
指定子网中的所有主机:172.26.181.*
指定域名的主机:node1.mg.cn
指定域中的所有主机:*.mg.cn
所有主机:*
选项包括权限,用户映射和其他三种
访问权限
ro代表只读
rw代表可读写
用户映射
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash取反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:同步写入;
async:异步写入;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
服务端IP172.26.181.101
客户端IP172.26.181.98
一、服务端安装NFS
检查系统是否已安装NFS
[root@rman-backup ~]# rpm -qa|grep nfs
nfs4-acl-tools-0.3.3-6.el6.x86_64
nfs-utils-lib-1.1.5-6.el6.x86_64
nfs-utils-1.2.3-36.el6.x86_64
[root@rman-backup ~]# rpm -qa|grep rpcbind
rpcbind-0.2.0-11.el6.x86_64
这两个包应该是默认安装的,上述结果表示已安装NFS,否则执行下面的命令在线安装:
yum -y install nfs-utils rpcbind
二、服务端配置NFS服务
检查服务器文件系统:
[root@rman-backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_rmanbackup-lv_root
42G 3.2G 36G 9% /
tmpfs 3.9G 68K 3.9G 1% /dev/shm
/dev/sda1 485M 38M 423M 9% /boot
/dev/sdb1 50G 2.5G 45G 6% /u01
/dev/sdb5 148G 188M 140G 1% /orabackup
我们需要把/orabackup作为NFS供客户端读写。
编辑NFS主要配置文件:
[root@rman-backup ~]# vi /etc/exports
/orabackup 172.26.181.98(rw)
~
这里我们要让客户端172.26.181.98以读写权限访问/orabackup
重启NFS:
[root@rman-backup ~]# service rpcbind restart
Stopping rpcbind: [ OK ]
Starting rpcbind: [ OK ]
[root@rman-backup ~]# service nfs restart
Shutting down NFS daemon: [ OK ]
Shutting down NFS mountd: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down NFS services: [ OK ]
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Stopping RPC idmapd: [ OK ]
Starting RPC idmapd: [ OK ]
Starting NFS daemon: [ OK ]
查看自己共享的服务:
[root@rman-backup ~]# showmount -e 172.26.181.101
Export list for 172.26.181.101:
/orabackup 172.26.181.98
最后配置NFS服务开机启动:
修改/etc/rc.d/rc.local这个文件,添加下面两行
/etc/rc.d/init.d/rpcbind restart
/etc/rc.d/init.d/nfs restart
三、客户端挂载NFS
登录客户端,使用下面命令查看可挂载的NFS:
[root@node1 ~]# showmount -e 172.26.181.101
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
这个报错大部分是因为服务端未关闭防火墙,在服务端关闭防火墙并重启:
[root@rman-backup ~]# chkconfig iptables off
再次在客户端查看:
[root@node1 ~]# showmount -e 172.26.181.101
Export list for 172.26.181.101:
/orabackup 172.26.181.98
挂载NFS:
[root@node1 ~]# mkdir /nfs
[root@node1 ~]# mount 172.26.181.101:/orabackup /nfs
[root@node1 ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/sda7 1008M 248M 709M 26% /
tmpfs 2.5G 1.1G 1.5G 43% /dev/shm
/dev/sda1 97M 32M 61M 35% /boot
/dev/sda8 1008M 38M 920M 4% /home
/dev/sda9 1008M 37M 920M 4% /opt
/dev/sda3 2.0G 70M 1.9G 4% /tmp
/dev/sda2 5.0G 3.1G 1.6G 66% /usr
/dev/sda10 1008M 34M 924M 4% /usr/local
/dev/sda5 2.0G 262M 1.7G 14% /var
/dev/sda11 20G 14G 5.4G 72% /u01
/dev/sr0 3.5G 3.5G 0 100% /media/RHEL_6.4 x86_64 Disc 1
172.26.181.101:/orabackup
148G 188M 140G 1% /nfs
可以看到在客户端已经挂载成功。
尝试创建文件:
[root@node1 nfs]# touch test
touch: 无法创建"test": 权限不够
查看服务端权限:
[root@rman-backup /]# ls -l |grep ora*
drwxr-xr-x. 4 root root 4096 Dec 10 14:12 orabackup
修改服务端权限:
[root@rman-backup /]# chmod 777 /orabackup
[root@rman-backup /]# ls -l |grep ora*
drwxrwxrwx. 4 root root 4096 Dec 10 14:12 orabackup
再次尝试在客户端创建文件:
[root@node1 nfs]# touch test
[root@node1 nfs]# ll
总用量 20
drwx------ 2 nobody nobody 16384 12月 8 09:29 lost+found
drwxr-xr-x 2 nobody nobody 4096 12月 10 14:12 script
-rw-r--r-- 1 nobody nobody 0 12月 10 15:40 test
最后在客户端设置自动挂载:
[root@node1 ~]# vi /etc/fstab
增加下面这行:
172.26.181.101:/orabackup /nfs nfs defaults 0 0
配置完成。
四、服务端的配置选项
上面例子中/etc/exports文件内容为:
/orabackup 172.26.181.98(rw)
该条目的完整格式如下:
<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
输出目录就是服务器要共享给客户端的目录。
客户端有多种指定方法:
指定ip地址的主机:172.26.181.98
指定子网中的所有主机:172.26.181.*
指定域名的主机:node1.mg.cn
指定域中的所有主机:*.mg.cn
所有主机:*
选项包括权限,用户映射和其他三种
访问权限
ro代表只读
rw代表可读写
用户映射
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash取反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:同步写入;
async:异步写入;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;