netapp NFS 最佳实践

filer01> aggr add aggr0 3
filer01> vol create vol1 aggr0 200m
filer01> vol create vol2 aggr0 200m
filer01> rdfile /etc/exports
#Auto-generated by setup Fri Feb 10 16:21:29 GMT 2012
/vol/vol0 -sec=sys,rw,anon=0,nosuid
/vol/vol1 -sec=sys,rw,root=192.168.50.20,nosuid
/vol/vol2 -sec=sys,rw,root=192.168.50.20,nosuid
filer01> exportfs -r

[root@Linux ~]# useradd Masayoushi
[root@Linux ~]# passwd Masayoushi
[root@Linux ~]# useradd xyx
[root@Linux ~]# passwd xyx
[root@Linux ~]# cd /
[root@Linux /]# mkdir vol1
[root@Linux /]# mkdir vol2
[root@Linux /]# cd /vol1
[root@Linux vol1]# mkdir Masayoushi_Data
[root@Linux vol1]# chown Masayoushi:Masayoushi Masayoushi_Data
[root@Linux vol1]# chmod 700 Masayoushi_Data
[root@Linux vol1]# ls -l
total 4
drwx------. 2 Masayoushi Masayoushi 4096 Mar 19 02:58 Masayoushi
[root@Linux /]# cd /vol2
[root@Linux vol2]# mkdir xyx_Data
[root@Linux vol2]# chown xyx:xyx xyx_Data
[root@Linux vol2]# chmod 700 xyx_Data
[root@Linux vol2]# ls -l
total 4
drwx------. 2 xyx xyx 4096 Mar 19 03:24 xyx_Data
[root@Linux vol2]#

如果设置「管理主机」,则会发现 vol0 卷的输出如下:
filer01> rdfile /etc/exports
#Auto-generated by setup Mon Mar 19 15:27:39 CST 2012
/vol/vol0 -sec=sys,ro,rw=192.168.50.10,root=192.168.50.10,nosuid
/vol/vol1 -sec=sys,rw,root=192.168.50.20,nosuid
/vol/vol2 -sec=sys,rw,root=192.168.50.20,nosuid

修改客户端访问权限:
filer01> wrfile /etc/exports
#Auto-generated by setup Mon Mar 19 15:27:39 CST 2012
/vol/abc -sec=sys,root=192.168.1.0/24,anon=0,nosuid
/vol/vol0/home -sec=sys,rw,nosuid
/vol/vol0 -sec=sys,rw,anon=0,nosuid
/vol/vol1 -sec=sys,root=192.168.1.0/24,anon=0,nosuid


========================================================================================

在 Linux 系统里用 rpcinfo 命令查看 NFS 所使用的端口号码

什么是 pNFS ?
解答:使文件能够交叉存取在多个数据服务器的并行 NFS (pNFS)

配置 NFS 可是使用 CLI 和 System Manager 两种方式实现。

当我们想使用 NFS 存储协议之前,需要安装上 NFS License

并且可以启用 NFS over TCP、NFS over UDP 或者两者同时支持的模式

以及确定使用的 NFS 版本,目前主流的是 NFS v3 和 NFS v4 版本。

========================================================================================

pcuser 的 UID 是 65534
nobody 的 UID 是 65535

========================================================================================

nosuid 是什么?

nosuid 就象 UNIX 里的 /etc/passwd 这种文件,本来是除了 root 用户谁都不能写的。

但普通用户通过 passwd 改自己的密码时也就对 /etc/passwd 做了更改,也就是一个权限提升的过程,而设置 nosuid 也就是防止了这类情况的发生,毕竟 /etc 总不弄能乱改。

=================================================================

=======================

filer01*> rdfile /etc/exports
#Auto-generated by setup Fri Feb 10 16:21:29 GMT 2012
/vol/vol0 -sec=sys,rw,anon=0,nosuid
/vol/vol0/home -sec=sys,rw,nosuid
/vol/vol1 -sec=sys,rw,nosuid
filer01*>
此时 root 用户能将 /vol/vol1 挂载到 /filer01 目录上,但是无法在 /filer01 目录里新建文件

[root@Linux ~]# ls -l
drwxr-xr-x. 2 root root 4096 Mar 18 08:12 filer01

[masayoushi@Linux /]$ mount -t nfs 192.168.50.50:/vol/vol1 /filer01
mount: only root can do that
普通用户权限无法将 /vol/vol1 挂载到 /filer01 目录上,提示没有权限。

========================================================================================

但是当配置成如下:System Manager 界面里配置为 Grant root access to all hosts
filer01*> rdfile /etc/exports
#Auto-generated by setup Fri Feb 10 16:21:29 GMT 2012
/vol/vol0 -sec=sys,rw,anon=0,nosuid
/vol/vol0/home -sec=sys,rw,nosuid
/vol/vol1 -sec=sys,rw,anon=0,nosuid
filer01*>
此时 root 用户能将 /vol/vol1 挂载到 /filer01 目录上,也能在 /filer01 目录里新建文件

========================================================================================

当配置成如下:GUI 界面里配置为 Disable root access
filer01*> rdfile /etc/exports
#Auto-generated by setup Fri Feb 10 16:21:29 GMT 2012
/vol/vol0 -sec=sys,rw,anon=0,nosuid
/vol/vol0/home -sec=sys,rw,nosuid
/vol/vol1 -sec=sys,rw,anon=65534,nosuid
filer01*>

[root@Linux ~]# mount -t nfs 192.168.50.50:/vol/vol1 /filer01
[root@Linux ~]# mount
/dev/mapper/vg_linux-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev)
192.168.50.50:/vol/vol1 on /filer01 type nfs (rw,addr=192.168.50.50)
[root@Linux ~]#
[root@Linux ~]# cd /filer01
-bash: cd: /filer01: Permission denied
[root@Linux ~]#
说明还是允许挂载的,但是没权限,甚至访问权限都没有。

========================================================================================

[root@Linux ~]# cat /etc/passwd | grep 65534
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@Linux ~]#

========================================================================================

勾选 Enable setuid and setgid executables
filer01*> rdfile /etc/exports
#Auto-generated by setup Fri Feb 10 16:21:29 GMT 2012
/vol/vol0 -sec=sys,rw,anon=0,nosuid
/vol/vol0/home -sec=sys,rw,nosuid
/vol/vol1 -sec=sys,rw
filer01*> exportfs
/vol/vol0/home -sec=sys,rw,nosuid
/vol/vol0 -sec=sys,rw,anon=0,nosuid
/vol/vol1

-sec=sys,rw
filer01*>

========================================================================================

filer01*> rdfile /etc/exports
#Auto-generated by setup Fri Feb 10 16:21:29 GMT 2012
/vol/vol0 -sec=sys,rw,anon=0,nosuid
/vol/vol0/home -sec=sys,rw,nosuid
/vol/vol1 -sec=sys,rw,root=192.168.50.20
filer01*>

========================================================================================

相关文档
最新文档