一.NFS是什么
NFS(Network File System)是一种分布式文件系统协议,它允许在网络上的计算机之间共享文件和目录。NFS的工作原理是将文件系统挂载到远程计算机上,使得远程计算机可以像本地文件系统一样访问共享的文件和目录。NFS使用客户端-服务器模型,其中客户端计算机通过网络连接到NFS服务器,请求访问共享的文件和目录。NFS服务器将文件和目录的内容传输到客户端计算机上,使得客户端可以像访问本地文件系统一样访问共享的文件和目录。
NFS协议支持多种安全机制,包括基于主机的访问控制、基于用户的访问控制和加密传输。它还支持文件锁定和缓存机制,以提高性能和可靠性。
NFS是NAS的一种。NAS系统通常由一个或多个硬盘驱动器组成,可以提供大量的存储空间,同时也可以提供文件共享、备份和远程访问等功能。NAS系统通常使用标准的网络协议(如TCP/IP)进行通信,可以在局域网或广域网上使用。NAS系统的优点包括易于安装和管理、可扩展性强、数据安全性高等。
二.NFS部署
服务端
1.安装
nfs-utils-1.3.0-0.33.el7.x86_64 主程序包
yum install nfs-utils -y
2.服务端配置要共享的资源
例:服务器共享/webdata目录
[root@192 ~]# mkdir /webdata
[root@192 ~]# echo "nfs test" > /webdata/index.html
3.配置共享/webdata目录
[root@192 ~]# vim /etc/exports
/webdata 192.168.220.0/24(rw) 共享资源 共享给谁(共享的属性)
4.启动服务
[root@192 ~]# systemctl start nfs
5.查看共享资源
[root@192 ~]# exportfs -v
/webdata 192.168.220.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)
客户端
1.布置本地网站服务
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# systemctl start httpd
2.查看共享资源
[root@localhost ~]# showmount -e 192.168.220.4
Export list for 192.168.220.4:
/webdata 192.168.220.0/24
3.挂载
[root@localhost ~]# mount.nfs 192.168.220.4:/webdata /var/www/html/
[root@localhost ~]# vim /etc/fstab #可选: 开机挂载
192.168.220.4:/webdata /var/www/html/ nfs defaults 0 0
4.查看是否挂载
[root@localhost ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 475M 0 475M 0% /dev
tmpfs tmpfs 487M 0 487M 0% /dev/shm
tmpfs tmpfs 487M 7.7M 479M 2% /run
tmpfs tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.5G 16G 9% /
/dev/sda1 xfs 1014M 138M 877M 14% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
192.168.220.4:/webdata nfs4 17G 11G 6.4G 63% /var/www/html
5.测试
[root@localhost ~]# ls /var/www/html/
index.html
其他问题
1.对于已经在运行的nfs服务器,不要restart,用reload
2.文件系统级别: 服务器共享的属性
ro: 只读
rw: 读写
3.基本UGO权限
默认情况下,客户端上的root用户会被映射为nfsnobody用户
如果服务器上的nfsnobody用户对共享目录有写权限,客户端的root用户才有写权限解决客户端写权限问题:
1).在服务器上给共享目录加上写权限给nfsnobody,目录内的文件也同样需要授权给nfsnobody
2).在共享时加上no_root_squash属性4.共享的属性:文件系统的属性
ro 只读
rw 可读写
async 异步
sync 同步
secure 小于1024端口连接
insecure 大于1024端口连接
root_squash 把客户端使用root操作的文件的uid和gid映射为匿名用户(nfsnobody)
no_root_squash 不映射,以管理员root身份操作
all_squash 把所有用户创建文件的uid和gid都映射为匿名用户 (nfsnobody)