Centos6.x 部署NFS
Posted VoW
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos6.x 部署NFS相关的知识,希望对你有一定的参考价值。
NFS(Network File System)网络文件系统会经常用到,用于在网络上共享存储。假如有三台机器A, B, C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A, B, C. 但是使用NFS只需要放到A上,然后A共享给B和C即可,B和C把A共享的目录放在本地,这个动作叫做挂载。访问的时候,B和C
是通过网络的方式去访问A上的那个目录的。
其主要特点就是允许一个系统和网络上的他人共享目录和文件。
服务端配置 NFS
下载服务包
# yum install -y nfs-utils
CentOS上使用NFS服务,需要安装两个包(nfs-utils和rpcbind), rpcbind是用来服务端和客户端通讯的,必不可少。不过当使用yum
安装nfs-utils时会把rpcbind一起安装上,在之前的CentOS版本中,是需要安装portmap包的,从CentOS6开始,就改为rpcbind了。
编辑配置文件 /etc/exports,配置文件详解
# vim /etc/exports
/mnt 192.168.32.130(rw,sync)
1. /mnt 第一行是本地要共享出去的目录
2. 允许访问的主机,可以是单个IP,也可以使一个IP段
3. 小括号里面的内容,为一些权限问题。
rw :读写;
ro :只读;
sync :同步模式,内存中数据时时写入磁盘;
async :不同步,把内存中数据定期写入磁盘中;
no_root_squash :加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。
不安全,不建议使用;该选项会把客户端创建的所有文件的属主和属组都映射成root。
192.168.0.0/24(rw,sync,no_root_squash)。
root_squash:和上面的选项对应,root用户对共享目录的权限不高,只有普通用户的权限,即限制了root;
all_squash:不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;
anonuid/anongid :要和root_squash 以及all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是
本机的/etc/passwd中存在这个uid和gid。
【分析/home 192.168.0.0/24(rw,sync,all_squash,anonuid=501,anongid=501) 其中要共享的目录为/home,信任的主机为
192.168.137.0/24这个网段,权限为读写,同步,限定所有使用者,并且限定的uid和gid都为501。】
启动NFS服务
# /etc/init.d/rpcbind start
# /etc/init.d/nfs start
必须先系统rpcbind,再启动nfs
客户端上挂载 nfs
下载包
# yum install -y nfs-utils
客户端在挂载NFS之前,我们需要先看一看服务端都共享了哪些目录,这需要使用showmount命令,但是这个命令是nfs-utils这个
包所带的,所以同样需要安装nfs-utils。查看共享目录
# showmount -e 192.168.32.128
showmount -e IP 会查看到 NFS 的共享情况。
在客户端挂载NFS
# mount -t nfs 192.168.32.128:/mnt /opt/
# df -h
# cd /opt ; touch 1.txt
touch: cannot touch `1.txt‘: Permission denied
【返回服务端,chmod 777 /mnt】
# mount -t nfs -o nolock,nfsvers=3 192.168.32.128:/mnt/ /opt/
-o 后面跟挂载选项,如果不加 -o nfsvers=3 则在挂在目录下的文件属主和属组都是nobody,如果指定nfsvers=3 则显示服务端指
定的uid,所以尽量加上这个选项,避免权限混乱;nolock选项是不让挂载的目录锁定,如果不加nolock,在客户机创建文件的时候,会
出现卡顿无法创建成功的情况。
主机 & 客户端配置
主机
# cat /etc/exports
/mnt 192.168.32.130(rw,sync,all_squash,anonuid=502,anongid=502)
# /etc/init.d/rpcbind restart
# /etc/init.d/nfs restart
客户机
# mount -t nfs -o nolock,nfsvers=3 192.168.32.128:/mnt/ /opt/
# cd /opt ; touch 1.txt; ll 1.txt
-rw-r--r-- 1 nfs-server nfs-server 0 3月 4 23:06 1.txt
exportfs 命令
-a 全部挂载或者卸载
-r 重新挂载
-u 卸载某一个目录
-v 显示共享的目录
当改变/etc/exports 配置文件后,不用重启nfs服务直接用exports 即可。
服务端
# vim /etc/exports 【增加一行】
/tmp 192.168.32.130(rw,sync,no_root_squash)
# exportfs -arv
【a全部,r重新挂载reload,v显示进程】
exporting 192.168.32.130:/tmp
exporting 192.168.32.130:/mnt客户端
# mkdir /testmnt
# mount -t nfs -o nolock,nfsvers=3 192.168.32.128:/tmp /testmnt
客户端开机自动挂载
# vim /etc/fstab
192.168.32.128:/mnt /pot nfs nolock 0 0
192.168.32.128:/tmp /testmnt nsf nolock 0 0
以上是关于Centos6.x 部署NFS的主要内容,如果未能解决你的问题,请参考以下文章