NFS 实现文件共享

💡 NFS 即网络文件系统,是一种使用于分布式文件系统的协议,NFS 功能是通过网络让不同的机器,不同的操作系统能够彼此分享各自的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法

应用场景

服务器A(server端)192.168.127.138
服务器B(clinet端) 192.168.127.139

两台服务器(服务器A、服务器B) 安装nfs

apt install -y nfs-kernel-server

两台服务器(服务器A、服务器B):创建共享目录 nfs

mkdir -p /usr/local/share/nfs

服务器A(server端) :修改配置文件

vim /etc/exports

服务器A(server端): 在exports文件中添加

/usr/local/share/nfs *(rw,sync,no_root_squash,no_subtree_check)

配置参数说明

NFS权限选项功能描述信息
ro以只读方式共享
rw以读写方式共享
sync同步写入磁盘
async异步写入磁盘
wdelay延迟写入操作
root_squash屏蔽远程root权限
no_root_squash不屏蔽远程root权限
all_squash屏蔽所有远程用户权限

服务器A、服务器B: 重启服务并设置开机自启

systemctl restart nfs-kernel-server.service && systemctl enable nfs-kernel-server.service 

服务器A、服务器B : 查看服务状态

systemctl status nfs-kernel-server.service

image.png

服务器B(client端): 查看服务器A(server端)的共享目录

showmount -e 192.168.127.138

image.png

服务器B(client端): 进行目录挂载

mount -t nfs 192.168.127.138:/usr/local/share/nfs /usr/local/share/nfs

服务器B(client): 查看磁盘挂载,看到一下挂载信息则成功

df -h

image.png

服务器A(server): 创建目录

cd /usr/local/share/nfs && mkdir tt

image.png

服务器B(client): 查看是否目录已经同步

cd /usr/local/share/nfs && ls

image.png

卸载挂载目录

umonut -f /usr/local/share/nfs

服务器B(client) : 设置开机自动挂载

vim /etc/rc.d/rc.local

# 在文件最下面添加
mount -t nfs 192.168.127.138:/usr/local/share/nfs /usr/local/share/nfs
### NFS 配置文件共享实现方法 NFS(Network File System)是一种分布式文件系统协议,允许客户端访问远程服务器上的文件如同本地文件一样。以下是通过 NFS 实现文件共享的配置方法。 #### 1. 配置 NFS 服务端 在 NFS 服务端上,需要安装必要的软件包并设置共享目录。 ```bash # 安装 NFS 和 rpcbind 软件包 yum -y install nfs-utils rpcbind ``` 启动并启用相关服务: ```bash systemctl enable --now nfs-server.service systemctl enable --now rpcbind ``` 创建需要共享的目录,并在 `/etc/exports` 或 `/etc/exports.d/` 中定义共享规则[^3]: ```bash mkdir -pv /data/test echo "/data/test *(rw,no_root_squash)" > /etc/exports.d/test.exports exportfs -r exportfs -v ``` 上述命令中: - `/data/test` 是共享目录。 - `*(rw,no_root_squash)` 表示允许所有主机以读写权限访问该目录,并且不压缩 root 用户权限[^3]。 #### 2. 配置 NFS 客户端 在客户端上,需要安装 NFS 软件包并挂载共享目录。 ```bash # 安装 NFS 软件包 yum -y install nfs-utils ``` 临时挂载共享目录: ```bash mount -t nfs 10.0.0.118:/data/test /mnt ``` 如果希望在系统重启后自动挂载,可以编辑 `/etc/fstab` 文件[^3]: ```bash echo "10.0.0.118:/data/test /mnt nfs defaults 0 0" >> /etc/fstab ``` #### 3. 权限管理 在 `/etc/exports` 文件中,可以通过以下参数控制访问权限[^1]: - `rw`:允许读写。 - `ro`:只读访问。 - `sync`:数据同步写入磁盘。 - `no_root_squash`:允许客户端的 root 用户拥有对共享目录的完全控制权。 - `*(...)`:表示所有主机均可访问。 - `192.168.1.0/24(...)`:仅允许指定网段内的主机访问。 例如: ```plaintext /nfs 192.168.1.1(rw) localhost(rw) *(ro,sync) ``` 此配置表示: - `192.168.1.1` 和 `localhost` 可以以读写权限访问 `/nfs`。 - 其他所有主机只能以只读权限访问,并且数据同步写入磁盘[^1]。 #### 4. 测试与验证 在客户端上验证挂载是否成功: ```bash df -hT | grep nfs ``` 检查共享目录是否正常访问: ```bash touch /mnt/testfile ls -l /mnt/ ``` ### 注意事项 - 确保防火墙允许 NFS 通信。可以添加以下规则: ```bash firewall-cmd --add-service=nfs --permanent firewall-cmd --reload ``` - 如果使用 SELinux,可能需要调整其策略以允许 NFS 共享。 ```python # 示例代码:检查挂载状态 import os if os.path.ismount('/mnt'): print("NFS 挂载成功") else: print("NFS 挂载失败") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值