专栏首页张戈的专栏Redhat设置NFS挂载的简单步骤

Redhat设置NFS挂载的简单步骤

初识 nfs 还是在测试 lvs 负载均衡的时候,为了保证代码的一致性,将一台 Realserver 作为 nfs 服务器,而其他 Realserver 均以 nfs 将代码挂载过来。这样就保证了代码的一致性,但也是由很大隐患的,一旦那台 Realserver 宕机,那就全军覆没了...好了,废话不多说,进入 nfs 挂载简单步骤。

一、安装 nfs

一般 redhat 是默认安装了 nfs 服务的,如果非默认安装且取消勾选 nfs 的话,需要挂载 iso 或下载安装包手动安装,就几个 rpm 包,就不多说了。

二、配置/etc/exports

nfs 允许挂载的目录及权限需在文件/etc/exports 中进行定义。例如,我们要将代码所在目录/www/code 共享出来,那么我们需要编辑/etc/exports 文件,追加一行:

/www/code *(rw,sync,no_root_squash)

其中:

  • /www/code 是要共享的目录;
  • * 代表允许所有的网络段访问(仅测试中使用,实际使用应该做严格的 IP 限制);
  • rw 开启共享目录的可读写权限;
  • sync 是资料同步写入内存和硬盘;
  • no_root_squash 是客户端分享目录使用者的权限,如果客户端使用 root,那对于该共享目录而言,客户端就有 root 权限;

其他更多参数说明:

ro 只读访问   
rw 读写访问sync 所有数据在请求时写入共享   
async nfs在写入数据前可以响应请求   
secure nfs通过1024以下的安全TCP/IP端口发送   
insecure nfs通过1024以上的端口发送   
wdelay 如果多个用户要写入nfs目录,则归组写入(默认)   
no_wdelay 如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。   
hide 在nfs共享目录中不共享其子目录   
no_hide 共享nfs目录的子目录   
subtree_check 如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)   
no_subtree_check 和上面相对,不检查父目录权限   
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。   
no_all_squash 保留共享文件的UID和GID(默认)   
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)   
no_root_squas root用户具有根目录的完全管理访问权限   
anonuid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的UID   
anongid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的GID

三、启动 nfs 服务

在启动 nfs 之前需要先启动 portmap 服务,否则如下报错:

[root@localhost ~]# service nfs start   
Starting NFS services:                                     [  OK  ]   
Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused   
rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).   
                                                           [FAILED]   
Starting NFS daemon:

正确方法先启动 portmap 再启动 nfs,如下:

service portmap
service nfs start

/etc/init.d/portmap start   
/etc/init.d/nfs start

四、在客户端主机上挂载共享目录

1、挂载之前同样需要先启动 portmap 服务(同上);

2、在客户端使用 showmount -e 查看 nfs 主机共享情况:

[root@localhost2 ~]# showmount -e 192.168.1.100   
Export list for 192.168.1.100:   
/www/code *

3、在客户端建立 code 文件夹(名称需相同,路径可以不同),并使用 mount 挂载命令:

mount -t nfs 192.168.1.100:/www/code   /www/code

注意事项:千万不要学博主,测试时误使用了 mount -t nfs 192.168.1.100:/www/code  /www/,导致原先/www 目录内容全部被卸下,就算重新 mount -o loop 也是很麻烦的!所以强烈建议路径保持一致!

4、若无报错,则可使用 df -h 查看到挂载情况:

[root@localhost ~]# df -h   
 文件系统                  容量   已用      可用 已用% 挂载点   
/dev/sda2               31G   3.7G     25G  13%   /   
/dev/sda5               40G   9.5G     29G  26%   /www   
/dev/sda1               190M   12M    169M   7%   /boot   
tmpfs                        2.0G       0     2.0G   0%   /dev/shm   
192.168.1.100:/www/code 237G  131G     94G  59%   /www/code

5、若是需要长期使用,则可以设置开机自动挂载,将相关服务设置为自启动,并将挂载命令也加入开机启动即可(略)


五、在客户端卸载已挂载的目录

1、常规卸载命令:

umount /www/code

2、有时因为 nfs 主机或网络故障,会出现常规卸载提示 device is busy 的提示,此时强制卸载命令如下:

umount -f /www/code

umount -l /www/code

3、上述卸载命令均无法生效时,请继续往下看:

以下摘自网络: fuser 通常被用在诊断系统的“resource busy”问题,通常是在你希望 umount 指定的挂载点得时候遇到。 如果你希望 kill 所有正在使用某一指定的 file, file system or sockets 的进程的时候,你可以使用-k 选项。 格式为: $ fuser -m -v  (nfs 挂载点) 回车执行后得到的结果依次是:用户 进程号 权限 命令 此命令可以查看到访问此设备的所有进程,停止进程后 umount. 如果添加参数 -k 则可以一次性将所有当前访问 nfs 共享盘阵的进程停止 也可以加-i 打开交互显示,以便用户确认 或者用 fuser 命令: #fuser -v -m 挂载点 即可查处 用户 PID 等,KILL 掉该进程后再 umount. 或者 #umount -l 挂载点 选项 –l 并不是马上 umount,而是在该目录空闲后再 umount.还可以先用命令 ps aux 来查看占用设备的程序 PID,然后用命令 kill 来杀死占用设备的进程,这样就 umount 的 NFS 服务安全非常放心了.


好了,以上就是 redhat 下的简单设置,也是博主自己用的步骤,适合初次使用 nfs 的筒子参考,希望对你有所帮助!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 自动管理员身份执行小工具—asroot

    推荐使用的典型环境: 用户为普通帐号,没有管理员权限,但又必须取得程序安装权限,比如产线作业员需要时常更新驱动: 为了安全而使用普通帐号的个人电脑 还记得记得以...

    张戈
  • Linux+Nginx/Apache/Tomcat新增SSL证书,开启https访问教程

    上上篇文章《nginx 平滑升级&新增模块》提到了公司的 https 访问需求。当我新增了 SSL 模块之后,却发现以前还真没部署过 https 访问。 下面整...

    张戈
  • 修改博客文章链接为新窗口打开的方式

    记得,前段时间卢松松博客放出一个关于文章链接是新窗口 or 原窗口浏览方式的投票,结果大部分人都投给了新窗口,而投给原窗口的我顿时有点奥特 Man 的感觉。经过...

    张戈
  • NFS存储服务部署

    什么是NFS 中文意思是网络文件系统,主要功能是通过网络(一般是局域网)让不同主机之间可以共享文件或目录 NFS属于本地文件存储服务  缺点1: windows...

    863987322
  • 搭建NFS Server

    执行命令 vim /etc/exports,创建 exports 文件,文件内容如下:

    gang_luo
  • Kunbernetes-基于NFS的存储

    NFS是Network File System的简写,即网络文件系统,NFS是FreeBSD支持的文件系统中的一种。NFS基于RPC(Remote Proced...

    菲宇
  • k8s1.5.4挂载volume之nfs

    /usr/local/kubernetes/examples/volumes/nfs

    三杯水Plus
  • NFS挂载报错

    nfs共享的时候,无论怎么检查都报错:mount.nfs: access denied by server while mounting

    一夕如环
  • CentOS 8 -- 安装并配置NFS服务

    网络文件系统(Network File System)是一种分布式文件系统协议,通过网络共享远程目录。使用NFS,可以在系统上挂载远程目录,并像对待本地文件一样...

    Kevin song
  • nfs 挂载

    NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。...

    孙杰

扫码关注云+社区

领取腾讯云代金券