Linux系统中的NFS服务

一、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:分布式文件系统,适用于大规模存储需求。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值