安基网 首页 系统 Linux 查看内容

Linux中共享(NFS)服务器实践练习及挂载总结

2019-7-29 02:46| 投稿: xiaotiger |来自: 互联网


免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

摘要: 共享不同的两个目录,分别赋予读和写权限准备三台虚拟服务器(backup(备份服务器)、NFS(共享服务器服务端)web01(web服务器))服务端要求 nfs服务器172.16.1.31 共享下面两个目录 /test/w 要求的权限可读写,同步数据,所有的用户都压缩为匿名用户/test/r 要求的权限为只读,同步数据,所有的用户都 ...

共享不同的两个目录,分别赋予读和写权限

准备三台虚拟服务器(backup(备份服务器)、NFS(共享服务器服务端)web01(web服务器))

  • 服务端要求

nfs服务器172.16.1.31 共享下面两个目录

/test/w 要求的权限可读写,同步数据,所有的用户都压缩为匿名用户

/test/r 要求的权限为只读,同步数据,所有的用户都压缩为匿名用户

  • 客户端要求

backup服务器 把nfs服务器的/test/r 挂载到/test/r

web服务器 把nfs服务器的/test/w 挂载到/test/w

  • NFS服务器进行配置

第一步:编写配置文件

第二步:创建新增共享目录,创建共享目录用户组(所有人即为nfsnobody)

因共享目录为所有用户所有为nfsnobody

第三步:平滑重启nfs服务

/etc/init.d/nfs reload (平滑重启不影响用户体验)

  • 进行共享目录挂载

把共享文件目录/test/r挂载到backup服务器的/test/r

把共享文件目录/test/w挂载到wen01服务器的/test/w

如果挂载点已经挂载,卸载重新挂载

强制卸载 umount -lf /mnt 是挂载点

  • 测试backup服务器

因backup服务器再共享目录里面设置了只读所以不能创建文件目录

  • 测试web01服务器

因web01服务器再共享目录里面设置可读写,所以可以创建文件目录

注意:nfs配置文件中,配置的共享目录,不要有父目录与子目录的继承关系

存储服务器部署后--客户端访问服务端原理

  • NFS配置文件权限参数说明

rw 对共享目录有读写权限

ro 对共享目录有只读权限

sync 实时同步数据,写入磁盘

优点:数据安全不会丢

缺点:性能比不启用该参数要差

async 异步同步数据,写入内存,磁盘IO消耗不高时,再讲内存数据写入磁盘

no_root_squash root用户不进行映射压缩

root_squash root用户进行映射压缩

all_squash 所有用户进行映射压缩

no_all_squash 所有用户都不进行映射压缩,原有什么用户身份到达nfs服务端还是什么身份

anonuid 修改默认匿名用户信息为指定UID用户(默认匿名用户时nfsnobody)

anongid 修改默认匿名用户信息为指定GID用户(默认匿名用户时nfsnobody)

  • 例:root_squash,no_all_squash参数说明

服务端修改配置文件

[root@nfs01 ~]# vim /etc/exports

/mnt 172.16.1.0/24(rw,sync,root_squash,no_all_squash)

[root@nfs01 ~]# /etc/init.d/nfs reload

客户端root用户在/mnt下创建文件

[root@backup mnt]# touch 666.txt

服务端

[root@nfs01 ~]# ll /data/

total 4

-rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 30 12:35 666.txt

客户端test用户在/mnt下创建文件

[root@backup mnt]# su - test

[test@backup ~]$ cd /mnt/

[test@backup mnt]$ touch 555.txt

touch: cannot touch `555.txt': Permission denied 没有权限

  • 说明:修改映射后的默认用户信息

实践操作配置;修改NFS默认映射用户(nfsnobody---www)

第一步:创建映射用户(服务端与客户端都创建,并且gid和uid保持一致)

客户端和服务端创建用户www

[root@nfs ~]# useradd -u 666 www

[root@nfs ~]# id www

uid=666(www) gid=666(www) groups=666(www)

[root@web01 ~]# useradd -u 666 www

[root@web01 ~]# id www

uid=666(www) gid=666(www) groups=666(www)

第二步:服务端进行nfs文件配置

[root@nfs01 ~]# vim /etc/exports

/data 172.16.1.0/24(rw,sync,anonuid=666,anongid=666)

vim /etc/exports

重启 /etc/init.d/nfs reload

第四步:/data目录更改权限 www www

[root@nfs01 ~]# chown -R www.www /data

[root@nfs01 ~]# ll -d /data/

drwxr-xr-x 2 www www 4096 Dec 1 09:34 /data/

客户端重新挂载 umount卸载

第五步:客户端进行测试

[root@web01 ~]# mount -t nfs 172.16.1.31:/data /mnt

[root@web01 ~]# touch /data/oldboy.txt

[root@web01 ~]# ll /data/

total 0

-rw-r--r-- 1 www www 0 Dec 1 09:50 oldboy.txt

NFS客户端权限与三个因素有关

1、NFS服务器/etc/exports设置需要开放可写入的权限,即服务器端的共享权限。

2、NFS服务器实际要共享的NFS目录权限具有可写入w的权限,即服务器端本地目录的安全权限。

3、每台机器对应存在和NFS默认配置UID的相同UID 65534的nfsnobody用户(确保所有客户端的访问权限统一,否则每个机器需要同时建立相同UID的用户,并覆盖NFS的默认用户配置)

  • 企业生产场景 NFS exports配置实例

挂载mount命令总结

  • mount

mount [-fnrsvw] [-t vfstype] [-o options] device dir

命令 参数 文件类型 有关权限参数 设备 挂载点

  • umount命令重要参数

-l lazy umount 懒惰卸载,不退出卸载目录可直接卸载

-t force mount 强制卸载

  • 如何设置客户端开机自动挂载

将挂载命令放入到/etc/rc.local中

echo 'mount -t nfs 172.16.1.31:/data /mnt' >> /etc/rc.local

编写配置/etc/fstab文件

[root@web01 ~]# vim /etc/fstab

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

172.16.1.31:/data /data/w nfs defaults 0 0

挂载的设备 挂载点 类型 挂载参数 是否备份 是否检查

客户端挂载可能会遇到的问题

  • errno 113 (No route to host)

[root@nfs-client1 ~]# showmount -e 10.0.0.7 <- 这里遇到了故障

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

问题说明:

nfs服务端防火墙没有关闭,防火墙策略阻止掉了

  • clnt_create: RPC: Program not registered

[root@nfs-client1 ~]# showmount -e 10.0.0.7

clnt_create: RPC: Program not registered

问题说明:

nfs服务没有启动,只启动了rpcbind服务

  • errno 111 (Connection refused)

[root@nfs01 data]# /etc/init.d/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 mountd: [FAILED]

Starting NFS daemon: rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)

rpc.nfsd: unable to set any sockets for nfsd

[FAILED]

问题说明:

nfs与rpcbind服务启动顺序不正确,rpcbind服务没有启动,先启动了nfs服务

  • 客户端挂载报错“No such file or directory”

[root@nfs-client ~]# showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data 172.16.1.0/24

[root@nfs-client ~]# mount -t nfs 172.16.1.31:/data /mnt

mount.nfs: mounting 172.16.1.31:/data failed, reason given by server: No such file or directory

解答:原因是NFS服务器端没有共享目录/data,创建即可。命令如下:

[root@nfs-server ~]# mkdir /data

  • 卸载挂载设备时显示device is busy

[root@nfs-client mnt]# umount /mnt

umount.nfs: /mnt: device is busy

umount.nfs: /mnt: device is busy

问题解决:

umount -lf /mnt

  • wrong fs type,bad option

示例5:CentOS 6.6客户端NFS挂载时遇到问题。

[root@nfs-client ~]# mount -t nfs 172.16.1.31:/data /mnt

mount:wrong fs type,bad option,bad option,bad superblock on 10.0.0.7:/data,

missing codepage or helper program,or other error

(for several filesystems (e.g. nfs, cifs) you might

need a /sbin/mount. helper program )

In some cases useful info is found in syslog - try

meg | tail or so

问题说明:

客户端没有安装nfs-utils软件包,无法识别nfs文件系统类型

  • 共享目录挂载很卡

mount -t nfs 172.16.1.31:/data /mnt

cd /mnt

time touch test.txt

原因分析:

�8�5 NFS服务端重启之后。立刻进行挂载会出现此问题,因为NFS自身重启的时候,拥有无敌的时间,默认是90秒;在无敌时间内,是不能对共享目录进行更改的操作;

�8�5 在系统配置中/etc/sysconfig/nfs中指定了无敌时间的配置参数

NFSD_V4_GRACE=90

NFSD_V4_LEASE=90

NLM_GRACE_PERI0D=90

  • 客户端报错 Stale file handle

mount -t nfs 172.16.1.31:/data /mnt

mount.nfs: Stale file handle

问题原因:

挂载点目录已经在挂载中,一定要卸载后,才能进行重新挂载

来自于:ke.ke 感谢大家支持······



小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:https://www.toutiao.com/a6718629487145124359/

免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

 最新
返回顶部