一、NFS概述
NFS(Network File System,网络文件系统)是一种分布式文件系统协议,允许用户通过网络访问存储在服务器上的文件,就像访问本地文件系统一样。NFS服务在Linux系统中广泛应用于文件共享,尤其适用于多台机器共享数据的场景。
二、NFS服务基本原理
-
NFS允许客户端通过网络挂载服务器上的目录,使得客户端可以像访问本地文件系统一样访问服务器上的文件。
-
它基于客户端/服务器架构,服务器端共享目录,客户端通过挂载这些目录来访问文件。
三、NFS服务特点
1、优点:
-
透明性:客户端可以透明的读写位于远端nfs服务器上的文件,像访问本地文件一样访问共享文件。
-
跨平台:支持多种操作系统,如Linux、Unix和Windows(通过Samba或第三方工具)。
-
高效性:基于网络协议,适合分布式环境。
-
方便性:nfs服务配置简单,部署方便,数据可靠,服务稳定,满足中小企业需求
2、缺点:
-
安全性较低:基于UDP协议,默认情况下安全性较弱,容易受到网络攻击。
-
依赖网络:性能受网络带宽和延迟影响较大。
-
配置复杂:需要正确配置服务器和客户端,否则可能导致权限问题。
四、NFS的主要组件
1、NFS服务器:共享文件系统的机器,负责管理文件的存储和访问。
2、NFS客户端:挂载服务器上共享目录的机器,通过网络访问文件。
3、共享目录:服务器上指定的目录,允许客户端通过网络访问。
4、挂载点:客户端上的一个目录,用于映射服务器上的共享目录。
五、NFS服务参数
1、ro (只读) rw (读写)
2、sync 数据同步写入到内存和磁盘,保证内存数据安全,但是效率低
3、async 数据先写入到内存,再持久化到磁盘,速度快,但是会有数据丢失
4、all_squash 所有nfs客户端的用户都映射为匿名用户,很安全,生产环境常用
六、NFS服务配置
示例一:不指定用户
1、准备NFS服务组件
nfs服务器(nfs):10.0.0.31
客户端(web01):10.0.0.7
2、在nfs服务器上下载nfs
yum -y install nfs-utils
3、编辑nfs配置文件
vim /etc/exports
/data 172.16.1.0/24(rw,rsync,all_squash) # /data (共享目录) 172.16.1.0/24(可挂载的网段)
4、根据配置文件创建共享目录
mkdir /data
5 、启动nfs服务并加入开机自启动
systemctl start nfs
systemctl enable nfs
6、 检查nfs启动参数
cat /var/lib/nfs/etab #(有内容则配置文件没有问题,无内容则有问题)
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,all_squash)
7、根据anonuid=65534,anongid=65534查看用户
id 65534
uid=65534(nobody) gid=65534(nobody) groups=65534(nobody)
8、修改/data的属主和属组为nobody
chown nobody.nobody /data
9、客户端(web01)下载NFS服务但不用开启
yum -y install nfs-utils
10、 客户端(web01)检查是否可以查到挂载点
showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
11、客户端(web01)挂载
mount -t nfs 172.16.1.31:/data /image # nfs (挂载的文件类型) -t (用于指定文件系统的类型)
12、检查磁盘挂载情况看是否挂载成功
df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 13M 462M 3% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/sda3 48G 3.8G 45G 8% /
tmpfs 475M 236K 474M 1% /tmp
/dev/sda1 195M 122M 74M 63% /boot
tmpfs 95M 0 95M 0% /run/user/0
172.16.1.31:/data 48G 3.8G 45G 8% /image
13、上传文件测试
示例二:指定用户
1、准备NFS服务组件
nfs服务器(nfs):10.0.0.31
客户端(web01):10.0.0.7
2、在nfs服务器上下载nfs
yum -y install nfs-utils
3、编辑nfs配置文件
vim /etc/exports
/data 172.16.1.0/24(rw,rsync,all_squash,anonuid=666,anongid=666) # /data (共享目录) 172.16.1.0/24(可挂载的网段)
4、创建指定用户
groupadd -g 666 www
useradd -u 666 -g 666 -M -s /sbin/nologin
5、根据配置文件创建共享目录
mkdir /data
6、修改共享目录的属主和属组为www
chown www.www /data
7、启动nfs服务并加入开机自启动
systemctl start nfs
systemctl enable nfs
8、客户端(web01)下载NFS服务但不用开启
yum -y install nfs-utils
9、 客户端(web01)检查是否可以查到挂载点
showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
10、客户端(web01)挂载
mount -t nfs 172.16.1.31:/data /image # nfs (挂载的文件类型) -t (用于指定文件系统的类型)
11、检查磁盘挂载情况看是否挂载成功
df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 13M 462M 3% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/sda3 48G 3.8G 45G 8% /
tmpfs 475M 236K 474M 1% /tmp
/dev/sda1 195M 122M 74M 63% /boot
tmpfs 95M 0 95M 0% /run/user/0
172.16.1.31:/data 48G 3.8G 45G 8% /image
12、上传文件测试
七、NFS的替代方案
1、Samba:适用于Windows和Linux之间的文件共享,支持Windows网络协议。
2、SSHFS:基于SSH协议的文件系统,安全性更高,但性能稍逊于NFS。
3、GlusterFS/Ceph:分布式文件系统,适用于大规模存储需求。

8338

被折叠的 条评论
为什么被折叠?



