NFS部署和优化

系统环境:CentOS release 6.5 (Final)

一、啥是NFS

    NFS是Network File System即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

二、安装NFS服务(Server端)

服务端ip地址:192.168.1.201

监听端口号:2049/tcp,2049/udp 

# yum -y install nfs-utils rpcbind

在CentOS5.x叫portmap

编辑/etc/exports文件加入如下内容:

/web 192.168.1.1/24(rw,sync)

exports文件说明:

文件系统 客户端1(文件系统导出属性) 客户端2(文件系统导出属性)

  • 客户端指定方式:

    IP:192.168.1.202

    Hostname:*.fansik.com

    Network:192.168.1.0/24

  • 文件系统属性  

    rw:读写 

    async:异步
    sync:同步
    root_squash:压缩root用户,基于imapd,将root通过网络访问时转换为nfsnobody用户
    no_root_squash:不压缩用户
    all_squash:压缩所有用户
    anonuid,anongid:指定

启动rpcbind服务:

# /etc/init.d/rpcbind start

启动nfs服务:

# /etc/init.d/nfs start

启动后三个关键进程:

mountd:挂载守护进程,负责客户端来源认证的进程

nfsd:文件读写

idmapd:id映射进程

使用下面的命令可以查看各进程监听的端口号

# rpcinfo -p localhost

由于mountd的监听端口号是随机的可能会占用其他服务的端口号,所以要使nfs的辅助进程mountd监听在固定的端口上,可以通过/etc/sysconfig/nfs文件进行配置。

三、挂在NFS目录(Client端)

客户端IP地址:10.10.10.101

# yum -y install nfs-utils

查看Server端共享哪个目录,允许那个ip访问

# showmount -e 192.168.1.201

-e:在nfs客户端执行,探查某主机所导出的nfs文件系统,使用格式"showmount -e Server_IP";

-d:在nfs服务器端执行,显示哪个导出的文件系统已经被至少一个客户挂载使用了;

-a:在nfs服务器端显示所有挂载会话。

创建挂载目录

# mkdir /web

挂载Server端web目录到本地

# mount -t nfs 192.168.1.201:/web /web

在挂载目录创建文件时由于操作web目录的是nfsnobody所以要把其他人的写权限打开。

四、NFS指定被关在目录写入文件的用户

编辑Server端的/etc/exports文件

/web 192.168.1.1/24(rw,sync,all_squash,anonuid=502,anongid=502)

重启nfs的服务或者# exportfs -arv

不去限制root的写法如下:

/web 192.168.1.1/24(rw,sync,no_root_squash)

去Client端重新挂载目录

如果使用# mount -t nfs 192.168.1.201:/web /web命令在touch文件的时候很慢,我们可以使用下面的命令指定nfs版本重新挂载一次就好啦:

# mount -t nfs -onolock,nfsvers=3 192.168.1.201:/web /web

是用此种方法后指定的用户id和组id使用的都是本地的id:例如Server端的组和用户id是fansik那么在Server端显示所属组和所有者就是fansik,但是如果Client的组和用户id是fanjinbao,那么Client端的文件的所属组和所有者就是fanjinbao

五、exportfs重新导出文件系统

在不重启nfs服务的情况下导出文件系统属性

选项:

-a:操作所有文件系统

-ra:重新导出所有文件系统

-ua:取消导出的所有文件系统

-v:显示详细信息

posted @ 2016-07-08 11:47  fansik  阅读(402)  评论(0编辑  收藏