NFS:Network File System 网络文件系统,Unix系统之间共享文件的一种协议


NFS 的客户端主要为Linux


支持多节点同时挂载以及并发写入



1.nfs


NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样,也就是说客户端PC可以挂载NFS服务器所提供的目录并且挂载之后这个目录看起来如同本地的磁盘分区一样,可以使用cp、cd、mv、rm及df等与磁盘相关的命令。



2.NFS的优缺点


优点


a.节省本地存储空间将常用的数据存放在一台服务器可以通过网络访问


b.简单容易上手


c.方便部署非常快速,维护十分简单


缺点


a.局限性容易发生单点故障,及server机宕机了所有客户端都不能访问


b.在高并发下NFS效率/性能有限


c.客户端没用用户认证机制,且数据是通过明文传送,安全性一般(一般建议在局域网内使用)


d.NFS的数据是明文的,对数据完整性不做验证


e.多台机器挂载NFS服务器时,连接管理维护麻烦




3.NFS配置知识:


3.1权限参数:



权限参数类型                                  功能


rw                                                    可读写的权限


ro                                                     只读的权限


sync(同步)                                   资料同步写入到内存与硬盘中(慢,不容易丢数据)


async(异步)                                 资料会暂存于内存当中,而不是写入硬盘(快,容易丢数据)


no_root_squash                           客户端用root用户访问该共享文件夹时, root用户不会映射成匿名用户(极不安全,不建议使用)


root_squash                                  客户端用root用户访问该共享文件夹是,将root用户映射为匿名用户


all_squash                                      不论登入NFS的使用者身份是谁,他的身份都会被压缩成匿名用户(nfsnobody)


anonuid=xxx                                 指定NFS服务器的匿名用户UID


anongid=xxx                                 指定NFS服务器的匿名用户GID


insecure                                          NFS通过1024以上的端口发送


secure                                             NFS通过1024以下的安全TCP/IP端口发送


hide                                                 在NFS共享目录中共享其子目录


no_hide                                          在NFS共享目录中共享其子目录


wdelay                                           如果多个用户写入NFS目录,则归组写入(默认)


no_wdelay                                    如果多个用户写入NFS目录,则立即写入,当使用async时,无需此设置


subtree_check                             在共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)


no_subtree_check                      和上面相对,不检查父目录权限




3.2 常用命令:



      命令                 参数                                    含义


exportfs               -a                                       递增式更新,对/etc/export增加或修改的部分进行挂载和卸载


                               -i<文件>                            指定配置文件


                               -r                                       更新配置重新读取/etc/exports


                               -u                                      卸载指定的目录


                               -o                                      使用指定的参数


                               -v                                      显示共享详细情况


showmount         -a或--all                           以host:dir 这样的格式来显示客户主机名和挂载点目录


                              -d 或 --directories            仅显示客户端挂载的目录名


                              -e或--exports                  显示NFS服务器输出清单


                              -h或--help                        显示帮助信息


                              -v或--version                  显示版本信息


                              --no-headers                  禁止输出描述头部信息





一.NFS


(服务端和客户端都需要安装nfs,但客户端不需要修改配置文件)



服务端:


1. 安装nfs


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


2.共享date


    step1. # mkdir /date    -----(根目录下,与step3同步)


    step2. # vim /etc/exports


    step3. 配置文件中写入:


             /date    172.16.84.0.24(rw,sync,no_root_squash)


    step4. # systemctl restart rpcbind


    step5. # iptables -F


    step6. # iptables -X


    step7. # setenforce 0


    step8. # systemctl restart rpcbind


    step9. # systemctl restart nfs



客户端:


    step1.  # showmount -e 172.16.84.128


                Export list for 172.16.84.128:


                         /date 172.16.84.0/24


    step2. mount.nfs 172.16.84.128:/date /mnt


    step3. # df


                172.16.84.128:/date 17811456 1120768 16690688    7% /mnt


    step4. # cd /mnt


    step5. # touch aa.txt


    step6. 切换到服务器端的/date下查看aa.txt是否存在;


    step7. 也可以在客户端的/mnt下增删改;




二.Samba


    服务端:


1. 安装软件


     [root@samba ~]# yum -y install samba



  2. 建立共享所需要目录


     [root@samba ~]# mkdir /data


       [root@samba ~]# chmod 777 /data


       [root@samba ~]# cp -rf /etc/hosts /data/



 3.建立访问用户


     [root@samba ~]# useradd alice


       [root@samba ~]# useradd jack


       [root@samba ~]# smbpasswd -a alice


       [root@samba ~]# smbpasswd -a jack



 4.修改配置文件


    smb.conf文件的配置内容:


          [global]:全局设置


          [homes]:用户目录共享设置


          [printers]:打印机共享设置


          [myshare]:自定义名称的共享目录设置


     辅助配置内容:


       注释行:以 # 号开头的行


           配置样例行:以 ; 号开头的行


   常见共享目录配置项的含义:


        comment:对共享目录的注释、说明信息


           path:共享目录在服务器中对应的实际路径


           browseable:该共享目录在“网上邻居”中是否可见


           guest ok:是否允许所有人访问,等效于“public”


           writable:是否可写,与read only的作用相反



 step1. # vim /etc/samba/smb.conf


        [data]


                        path = /data


                        ;valid users = alice jack


                         ;hosts allow = 172.16.84.       -----必须与测试端网络段保持一致


                writable = yes  


5.重启服务:


       # systemctl start smb



windows网页端测试:


 1. 打开为indows网页输入 \\172.16.84.128;


 2. 点击用户登录查看;


 3. 可以在网页端增减删除;