NFS服务

主要内容

1.Linux中的文件系统
2.NFS的应用场景
3.软件
4.准备环境
5.第一次启动rpc和nfs
6.nfs的配置
7.nfs权限控制
8.排错流程
9.nfs配置文件

NFS=Network File System 网络文件系统

一、文件系统:决定文件 数据如何在系统中存放

1.xfs:C7
2.ext系列:C5 C6
3.swap
4.tmpfs:内存文件系统(存放的数据相当于存放在内存中)

二、NFS应用场景

1.共享存储
2.存放用户上传的 附件(zip) 图片 (头像和文章里的图片)

三、软件

1.NFS:单个服务器
2.分布式存储:GlusterFS、Fastdfs

四、准备环境

1.机器
(1)web01:nfs的客户端

RPC服务:rpcbind(C6 C7) portmap(C5)
NFS服务:nfs-utils

(2)nfs01:nfs的服务端

RPC服务:rpcbind(C6 C7) portmap(C5)
NFS服务:nfs-utils

2.软件

RPC服务:rpcbind(C6 C7) portmap(C5)
NFS服务:nfs-utils

[root@nfs01 ~]# systemctl is-enabled rpcbind  nfs
enabled
enabled
[root@nfs01 ~]# systemctl is-active rpcbind  nfs
active
active

五、第一次启动rpc和nfs

1.nfs服务端nfs01
(1).启动rpcbind
[root@nfs01 ~]# systemctl restart rpcbind  
(2).启动nfs
[root@nfs01 ~]# systemctl restart nfs 
(3).查询rpc服务的注册信息:rpcinfo -p
[root@nfs01 ~]# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  57161  nlockmgr
    100021    3   udp  57161  nlockmgr
    100021    4   udp  57161  nlockmgr
    100021    1   tcp  41054  nlockmgr
    100021    3   tcp  41054  nlockmgr
    100021    4   tcp  41054  nlockmgr
2.用户映射基础 idmapd

用户映射就是客户端用户进入服务端后会被映射为匿名用户,默认为nfsnobody

六、nfs配置

1.nfs服务端
(1)nfs配置文件:/etc/exports
NFS共享目录     NFS客户端地址(参数列表)
(2)systemctl reload nfs

reload:
平滑重启/优雅重启
不中断当前正在处理的请求 只影响新的请求
注意:nfs尽量不要使用restart 使用之后会卡住90s

(3)检查可以挂载的具体信息:showmount -e 172.16.1.31
[root@nfs01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/nfs    172.16.1.0/24
/upload 172.16.1.0/24
(4)本地挂载 进行测试
[root@nfs01 ~]# mount -t  nfs  172.16.1.31:/upload/   /mnt/
[root@nfs01 ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/sda3             19G  1.8G   18G  10% /
devtmpfs             476M     0  476M   0% /dev
tmpfs                487M     0  487M   0% /dev/shm
tmpfs                487M  7.7M  479M   2% /run
tmpfs                487M     0  487M   0% /sys/fs/cgroup
/dev/sda1            197M  105M   93M  54% /boot
tmpfs                 98M     0   98M   0% /run/user/0
172.16.1.31:/upload   19G  1.8G   18G  10% /mnt
2.nfs客户端
(1)在web01 上进行挂载测试
[root@web01 ~]# mount -t nfs 172.16.1.31:/nfs   /nfs/
[root@web01 ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/sda3             19G  1.8G   18G  10% /
devtmpfs             476M     0  476M   0% /dev
tmpfs                487M     0  487M   0% /dev/shm
tmpfs                487M  7.7M  479M   2% /run
tmpfs                487M     0  487M   0% /sys/fs/cgroup
/dev/sda1            197M  105M   93M  54% /boot
172.16.1.31:/upload   19G  1.8G   18G  10% /video
tmpfs                 98M     0   98M   0% /run/user/0
172.16.1.31:/nfs      19G  1.8G   18G  10% /nfs
(2)把nfs的upload目录挂载到video目录

七、nfs权限控制

1.配置文件/etc/exports
2.Linux服务端 共享目录权限755 用户和组是不是nfsnobody

八、排错流程

1.道路畅通

能ping通

2.rpc服务状态

rpcinfo -p 172.16.1.31

[root@nfs01 ~]# rpcinfo -p 172.16.1.31
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  57161  nlockmgr
    100021    3   udp  57161  nlockmgr
    100021    4   udp  57161  nlockmgr
    100021    1   tcp  41054  nlockmgr
    100021    3   tcp  41054  nlockmgr
    100021    4   tcp  41054  nlockmgr
3.nfs服务的共享信息

showmount -e 172.16.1.31

[root@nfs01 ~]# showmount -e  172.16.1.31
Export list for 172.16.1.31:
/nfs    172.16.1.0/24
/upload 172.16.1.0/24
4./proc/mounts

客户端挂在信息

[root@nfs01 ~]# cat /proc/mounts |egrep 'upload|nfs'
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
nfsd /proc/fs/nfsd nfsd rw,relatime 0 0
172.16.1.31:/upload /mnt nfs4 rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.31,local_lock=none,addr=172.16.1.31 0 0
5./var/lib/nfs/etab

exports tables nfs服务端共享信息
服务端配置的共享参数

[root@nfs01 ~]# cat /var/lib/nfs/etab 
/nfs    172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=888,anongid=888,sec=sys,rw,secure,root_squash,all_squash)
/upload 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

九、nfs配置文件

1.sync

同步
同时将数据写入到内存与硬盘中,保证不丢失数据
直接写入数据

2.async

异步
优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
先写到内存 在通过内存写入硬盘

3.rw

读写权限

4.ro

只读权限

5.all_squash

所有用户都压缩,访问nfs服务端都变成nfsnobody用户

6.root_squash

只有root用户被压缩,访问nfs服务端只有root变成nfsnobody,其他用户不变

7.no_all_squash

不是所有用户都压缩,一般和root_squash一起使用 默认情况

8.anonuid=xxx,anongid=xxx

指定访问客户端时的用户(这个用户一般为虚拟用户)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容