Linux NFS共享,文件系统级共享

一、基础知识

      NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

NFS共享概述

• Network File System,网络文件系统
– 用途:为客户机提供共享使用的文件夹
– 协议:NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)

• 所需软件包:nfs-utils
• 系统服务:nfs-server

二、环境准备

   两台虚拟机,server,desktop

   server ip:172.25.0.11

   desktop ip:172.25.0.10

三、服务器配置

1.修改防火墙

   ①防火墙区域修改为trusted 

     [root@server0 ~]# firewall-cmd --set-defualt-zone=trusted

   ②将访问点的ip添加到trusted区域

    [root@server0 ~]#firewall-cmd --zone=trusted --add-source=172.25.0.10

2.安装nfs-utils软件包


[root@server0 ~]# yum -y install  nfs-utils

3.创建共享访问点


[root@server0 ~]# mkdir /shared
[root@server0 ~]# echo 123 > /shared/1.txt
[root@server0 ~]# ls /shared/

4.配置共享访问点

IP地址:192.168.4.0

网段地址:172.0.0.0/24或172.0.0.*

所有主机:*

允许某个域:*.com

 

[root@server0 ~]# vim /etc/exports
格式: 文件夹路径   客户机地址 (权限) .. ..
   /shared      *(rw,sync)             # 主机地址为* 代表所有主机 , 权限为读写,异步操作

  /shared     172.0.0.*(rw,sync)  

5.重启服务(重启程序)


[root@server0 ~]# systemctl restart nfs-server

 

四、客户端配置

1.安装 nfs-utils

[root@server0 ~]# yum -y install nfs-utils

2.挂载共享目录


[root@server0 ~]# mkdir /mnt/shared  #创建挂载点
[root@server0 ~]# showmount -e 172.25.0.11     #查看服务端共享内容

Export list for 172.25.0.11:
/shared *
[root@server0 ~]# mount 172.25.0.11:/shared /mnt/shared/      #挂载
[root@server0 ~]# df -h       #查看disk file
[root@server0 ~]# ls  /mnt/shared  #查看文件内容

1.txt

3.开机自动挂载 

    
    _netdev:声明网络设备
                     指明挂载本设备需要有网络参数再进行挂载

[root@desktop0 ~]# vim /etc/fstab 
 172.25.0.11:/shared  /mnt/a  nfs defaults,_netdev 0 0
 

四、NFS配置权限设置常用参数说明

参数名称 参数用途
rw 读写权限
ro 只读权限
sync 请求或写入数据时,数据同步写入到NFS Server的硬盘后才返回。优点:数据安全不会丢;缺点:性能比不启动该参数要差
async 写入时数据会先写入到内存缓冲区,直到硬盘有空档才会再写入磁盘,这样可以提升写入效率!风险为若服务器宕机或不正常关机,不会缓冲未写入磁盘的数据(解决办法:服务器主板电池或UPS不间断电源)
no_root_squash 访问NFS Server共享目录的用户如果是root的话,它对该共享目录具有root权限。这个配置原本是为无盘客户端准备的。用户应避免使用。
root_squash 如果访问NFS Server共享目录的用户时root,则它的权限将被压缩成匿名用户,同时它的UID和GID通常会变成nfsnobody账号身份。
all_squash 不管访问NFS Server共享目录的用户身份如何,它的权限都将被压缩成匿名用户,同时它的UID和GID都会变成nfsnobody帐号身份。在早期多个NFS 客户端同时读写NFS Server数据时,这个参数很有用。 在生产中配置NFS 的重要技巧: l)确保所有客户端服务器对NFS共享目录具备相同的用户访问权限 a.all_squash 把所有客户端都压缩成固定的匿名用户(UID相同) b.就是anonuid,anongid 指定的UID和GID的用户。 2)所有的客户端和服务端都需要有一个相同的UID和GID的用户,即nfsnobody(UID必须相同)。
anonuid 参数以anon*开头即指anonymous匿名用户,这个用户的UID设置值通常为nfsnobody的UID值,当然也可以自行设置这个UID值。但是,UID必须存在于/etc/passwd 中。在多NFS Clients时,如多台Web Server共享一个NFS目录,通过这个参数可以使得不同的NFS Clients写入的数据对所有NFS Clients保持同样的用户权限,即为配置的匿名UID对应用户权限,这个参数很有用,一般默认即可。
anongid 同anonuid,区别就是把uid(用户id)换成gid(组id)。
带底纹标记的表示为常用参数,更多可以参考man exports                                  

你可能感兴趣的:(Linux基础)