NFS(Network File System),即网络文件系统。
网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS.,它允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
模式:C/S模式 端口:2049
安装包 nfs-utils:基本的NFS命令与监控程序 portmap:支持安全NFS RPC服务的连接
[root@qianshuiliyu ~]# yum -y install rpcbind nfs-utils启动
[root@qianshuiliyu ~]# systemctl restart rpcbind.service [root@qianshuiliyu ~]# systemctl status nfs [root@qianshuiliyu ~]# systemctl enable nfs查看端口
不要在服务器的目录里设置,有些目录特殊会出问题,这边设置没问题,客户端那边会出问题
1、创建测试信息
[root@qianshuiliyu ~]# mkdir /nfs [root@qianshuiliyu ~]# cp /etc/passwd /etc/shadow /nfs/2、配置文件
[root@qianshuiliyu ~]# vim /etc/exports /root/nfs/ *(rw) # * 表示对所有网段开放权限,也可以设置网段或者主机 ============================================================ [root@qianshuiliyu ~]# exportfs -rv exporting *:/root/nfs重启
[root@qianshuiliyu ~]# systemctl restart nfs ============================================================ # 重新读取配置文件,不中断服务 [root@qianshuiliyu ~]# exportfs -rv exporting *:/nfs1、命令 mount -t -t,指定挂载系统 showmount -e NFS服务器IP
[root@qianshuiliyu_client ~]# man showmount # 查看说明,很简单 # 列出挂载信息,有了之后进行挂载 [root@qianshuiliyu_client ~]# showmount -e 192.172.168.100 Export list for 192.172.168.100: /nfs *2、在客户端进行挂载
[root@qianshuiliyu_client ~]# mount -t nfs 192.172.168.100:/nfs /mnt/ # 现在系统一般会自动识别 [root@qianshuiliyu_client ~]# mount 192.172.168.100:/nfs /mnt/ [root@qianshuiliyu_client ~]# ll /mnt/ 总用量 8 -rw-r--r--. 1 root root 1917 10月 4 15:39 passwd ----------. 1 root root 1138 10月 4 15:39 shadow3、查看,最下面的是
[root@qianshuiliyu_client ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/rhel-root 22G 3.7G 19G 17% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 80K 1.9G 1% /dev/shm tmpfs 1.9G 8.9M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 497M 108M 390M 22% /boot 192.172.168.100:/nfs 22G 3.7G 19G 17% /mnt4、设置开机自动挂载
# 修改配置文件或者追加,千万别覆盖 [root@qianshuiliyu_client ~]# echo "192.172.168.100:/nfs /mnt nfs defaults 0 0" >> /etc/fstab1、创建文件
[root@qianshuiliyu_client ~]# cd /mnt/ [root@qianshuiliyu_client mnt]# touch 1 touch: 无法创建"1": 权限不够2、修改权限
[root@qianshuiliyu ~]# chmod 777 /nfs/3、客户端创建
[root@qianshuiliyu_client mnt]# touch 1 [root@qianshuiliyu_client mnt]# ls 1 passwd shadow [root@qianshuiliyu_client mnt]# ============================================================ # 服务端也存在 [root@qianshuiliyu ~]# ls /nfs/ 1 passwd shadow共享目录是必跟参数外,其他参数都是可选的。 共享目录与客户端之间及客户端与客户端之间需要使用空格符号,但是客户端括号里面的参数与客户端不能空格 空格的
参数说明ro只读访问rw读写访问sync资料同步写入到内存与硬盘当中async资料会先暂存于内存当中,而非直接写入硬盘secureNFS通过1024以下的安全TCP/IP端口发送insecureNFS通过1024以上的端口发送wdelay如果多个用户要写入NFS目录,则归组写入(默认)no_wdelay如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。Hide在NFS共享目录中不共享其子目录no_hide共享NFS目录的子目录subtree_check如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)no_subtree_check和上面相对,不检查父目录权限all_squash共享文件的UID和GID映射匿名用户anonymous,适合公用目录no_all_squash保留共享文件的UID和GID(默认)root_squashroot用户的所有请求映射成如anonymous用户一样的权限(默认)no_root_squashroot用户具有根目录的完全管理访问权限root_squash(压制):如果用root登录nfs,使其身份自动且换成nfsnobody。 no_root_squash:如果用root登录nfs,使其身份就是root。 all_squash:用户登录nfs时,指定身份为UID/GID的用户,用户要存在 压制root,指定身份,客户noboday,服务指定的身份,有可能不显示
查看客户端 查看服务端
客户端在挂载的时候进行优化或者直接写入配置文件 mount命令
mount说明-o优化加-oasync 异步同步此参数会提高I/O性能,但会降低数据安全(除非对性能要求很高,对数据可靠性不要求的场合。一般生产环境,不推荐使用)noatime取消更新文件系统上的inode访问时间,提升I/O性能,优化I/O目的,推荐使用。nodiratime取消更新文件系统上的directory inode访问时间,高并发环境,推荐显式应用该选项,提高系统性能intr可以中断不成功的挂载rsize/wsize 读取(rsize)/写入(wsize)的区块大小(block size),这个设置值可以影响客户端与服务端传输数据的缓冲存储量。一般来说,如果在局域网内,并且客户端与服务端都具有足够的内存,这个值可以设置大一点,比如说32768(bytes),提升缓冲区块将可提升NFS文件系统的传输能力。但设置的值也不要太大,最好是实现网络能够传输的最大值为限。
内和优化 内核优化:
net.core.wmem_default = 8388608 #内核默认读缓存 net.core.rmem_default = 8388608 #内核默认写缓存 net.core.rmem_max = 16777216 #内核最大读缓存 net.core.wmem_max = 16777216 #内核最大写缓存
[root@qianshuiliyu_client ~]# mount -o noatime,nodiratime,intr 192.172.168.100:/nfs /mnt/在客户端使用 通过autofs实现自动挂载 自动挂载涉及到两个文件,auto.master和auto.misc,也可能直接是autofs软件包
[root@qianshuiliyu ~]# yum -y install autofs.x86_64/etc/auto.master 文件定义本地挂载点. /etc/auto.misc 配置文件是用来设置需要挂载的文件系统类型和选项
注: 只有cd /tmp/a/nfs 进去, 触发一下,才能自动挂载。 另外 nfs目录,不能提前创建,自动挂载时,系统自动创建nfs目录。