红帽linux 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服务,否则如下报错:

[[email protected] ~]# 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主机共享情况:

[[email protected] ~]# 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 查看到挂载情况:

[[email protected] ~]# 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值