设为首页 收藏本站
查看: 1254|回复: 0

[经验分享] NFS for LINUX

[复制链接]

尚未签到

发表于 2018-5-25 10:23:24 | 显示全部楼层 |阅读模式
一、NFS的原理介绍
NFS为Network File System的缩写,可以用于不用的机器,不同操作系统之间的文件共享。与samba相比,NFS更快捷方便。简单的讲,可以把NFS服务器当做是一个文件服务器,NFS服务器可以让PC机将远程的NFS主机共享出来的目录挂载到本地机器中,挂载之后,这个目录就像是本地的一个分区一样,在有足够权限的情况下可以随意使用。
1、NFS需要启动的进程
rpc.nfsd 这个进程主要功能是管理client端是否能够登入主机,其中包含复杂的登录权限检测。
rpc.moutd 负责NFS的档案系统,当client通过rpc.nfsd登陆server后,对client存取server 的文件进行一系列的管理。NFS server 在linux平台下需要两个套件 nfs-utils 和PORTMAP。
nfs-utils 提供rpc.nfsd 和rcp.mountd两个NFS daemon的套件
portmap 远程过程调用RPC的守护进程


2、NFS工作的大概原理:
NFS服务器共享目录、目录权限的检查
NFS服务使用RPC协议进行数据的传输
NFS服务器会开启一系列的RPC服务进程和端口
portmap启动一个111端口等待客户端连接
portmap会把访问111端口的数据发送给RPC服务对应的端口


二、NFS服务端安装、配置
1、安装nfs相关软件
[root@localhost ~]# yum install nfs-utils  -y  ##nfs-utils 为nfs的安装包

……………………
Installed:
nfs-utils.x86_64 1:1.2.3-36.el6                 

Dependency Installed:
keyutils.x86_64 0:1.4-4.el6                  
libevent.x86_64 0:1.4.13-4.el6                 
libgssglue.x86_64 0:0.1-11.el6                 
libtirpc.x86_64 0:0.2.1-6.el6_4                 
nfs-utils-lib.x86_64 0:1.1.5-6.el6               
rpcbind.x86_64 0:0.2.0-11.el6                  

Complete!



2、NFS配置文件的介绍
/etc/exports NFS的主配置文件,一般是空文件或者不存在,需要自己建立(相关的参数在本文最下面介绍
/usr/bin/exportfs 维护nfs共享资源的命令,可以使用这个命令来重新共享/etc/exports更改的目录资源、将NFS服务器共享的目录卸载或者重新共享,是nfs服务器中非常重要的一个命令。
/usr/sbin/showmout 该命令主要用在服务端,而show mount 主要用在客户端,可以使用它来查看NFS的服务器共享出来的目录资源。
/var/lib/nfs/*tab nfs服务器的日志文件都放在该目录下,包含两个日志文件,一个是etab,主要记录NFS共享出来的目录的完整地权限设置值;另一个是xtab,记录曾经连接到此NFS主机的相关客户端数据。
/etc/init.d/nfs nfs的服务进程,启动nfs服务
/etc/init.d/rpcbind rpcbind的守护进程,基本上第一次启动之后以后每次都会开机自动运行,不会关闭。
3、修改配置文件:
[root@localhost ~]# id nobody  ###查看nobody的id 和uid
uid=99(nobody) gid=99(nobody) groups=99(nobody)

[root@localhost ~]# cat /etc/exports   ###查看nfs的主配置文件
/nfs 192.168.254.46(rw,all_squash,anonuid=99,anongid=99)  *(ro,all_squash)
###允许192.168.254.46这个主机读写我本机的/nfs目录,其他用户只读

[root@localhost ~]# mkdir /nfs    ##我将要共享出去的文件夹

[root@localhost ~]# chown nobody.nobody /nfs -R        ####共享出去的文件夹属主要为普通用户,我选nobody

4、启动rpcbind服务
[root@localhost ~]# /etc/init.d/rpcbind restart
Stopping rpcbind:                     [ OK ]
Starting rpcbind:                     [ OK ]

5、重启nfs服务
[root@localhost ~]# service nfs restart
Shutting down NFS daemon:                 [ OK ]
Shutting down NFS mountd:                 [ OK ]
Shutting down NFS quotas:                 [ OK ]
Shutting down NFS services:                [ OK ]
Starting NFS services:                   [ OK ]
Starting NFS quotas:                    [ OK ]
Starting NFS mountd:                    [ OK ]
Starting NFS daemon:                    [ OK ]

6、查看一下服务进程
[root@localhost ~]# netstat -tunlp | grep 111      ####rpcbind开启的端口为111
tcp    0   0 0.0.0.0:111         0.0.0.0:*          LISTEN   2814/rpcbind   
tcp    0   0 :::111           :::*            LISTEN   2814/rpcbind   
udp    0   0 0.0.0.0:111         0.0.0.0:*                2814/rpcbind   
udp    0   0 :::111           :::*                  2814/rpcbind  



7、查看一下NFS共享的目录
[root@localhost ~]# exportfs
/nfs      192.168.254.46

[root@localhost ~]# exportfs -au  ###下载掉所有共享目录
[root@localhost ~]# exportfs      ###卸载后就无法看到共享目录了
[root@localhost ~]# exportfs -av  ####加载所有的共享目录
exporting 192.168.254.46:/nfs




三、客户端(192.168.254.46)
1、安装nfs相关软件
[root@localhost ~]# yum install nfs-utils -y

2、 查看nfs server的共享目录
[root@localhost ~]# showmount -e 192.168.254.153 ####showmount查看nfs server上的共享文件夹
Export list for 192.168.254.153:
/test (everyone)

3、客户端挂载
[root@localhost ~]# mkdir /tmp/test
[root@localhost ~]# mount.nfs 192.168.254.153:/test /tmp/test/ ###nfs共享目录的挂载

[root@localhost ~]# df -Th
Filesystem  Type  Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
       ext4   48G 3.7G  41G  9% /
tmpfs    tmpfs  499M   0 499M  0% /dev/shm
/dev/vda1   ext4  485M  29M 431M  7% /boot
/dev/mapper/VolGroup-lv_home ext4   49G 180M  47G  1% /home
192.168.254.153:/nfs    nfs   70G 4.7G  62G  8% /tmp/test

4、测试读写
[root@localhost ~]# cd /tmp/test/
[root@localhost test]# ls
[root@localhost test]# touch a
[root@localhost test]# mkdir test
[root@localhost test]# ls  ###查看新建的文件和文件夹
a test



四、客户端 (192.168.254.38)
[root@localhost ~]# ifconfig eth0 | grep Bcast | awk '{print $2}'   ###查看一下客户端IP
addr:192.168.254.38
[root@localhost ~]# showmount -e 192.168.254.153  ###查看153的共享文件夹
Export list for 192.168.254.153:
/nfs 192.168.254.46

[root@localhost ~]# mkdir /test
[root@localhost ~]# mount -t nfs 192.168.254.153:/nfs /test
mount: 192.168.254.153:/nfs failed, reason given by server: Permission denied
[root@localhost ~]# mount -t nfs 192.168.254.153:/nfs /test
[root@localhost ~]# cd /test/
[root@localhost test]# touch a
touch: 无法触碰 “a”: 权限不够        ####38客户端允许挂载,权限是只读



五、/etc/exports的参数
[root@localhost ~]# cat /etc/exports
/nfs 192.168.254.46(rw,all_squash,anonuid=99,anongid=99) *(ro,all_squash)


nfs server共享的目录; 允许挂载的IP或主机 ; 代表权限;其他IP或主机;其他主机的权限
主要介绍一下权限参数
rw:读写权限,不解释;
ro:只读权限,不解释;
no_root_squash: 如果是root用户挂载nfs共享目录,那么就是root身份,对于这个共享目录来说用户具有root权限,这个参数非常不安全,给用户的权限太大,慎用或者不建议使用!
root_squash:如果root用户使用nfs共享目录,那么用户权限就会被压缩成匿名用户,默认为nobody;
all_squash:任何用户的权限都被压缩成匿名用户,默认为nobody;
anonuid:anon是anonymous的缩写,通常是nobody的uid‘
anongid:nobody的gid;
sync:数据同步写入到内存与磁盘中
async:数据暂存在内存中而不是直接写入到磁盘。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-480905-1-1.html 上篇帖子: linux 常用参数 下篇帖子: linux framebuffer 学习
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表