Nfs 共享存储搭建

为了实现不同操作系统中的数据共享,我们一般会搭建一些用于文件共享的服务器,nfs服务器就是其中一种,它实现的是linux与linux之间的共享。今天我将把如何在linux系统搭建nfs服务器的步骤分享出来,供大家参考。

介绍

NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

NFS一般用来存储共享视频,图片等静态数据;NFS 协议默认是不加密的,它不像 Samba,它不提供用户身份鉴别。服务端通过限定客户端的 IP 地址和端口来限制访问。

原理

NFS在文件传送或信息传送的过过程中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序

  1. 首先服务器端启动RPC服务,并开启111端口

  2. 服务器端启动NFS服务,并向RPC注册端口信息

  3. 客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口

  4. 服务端的RPC(portmap)服务反馈NFS端口信息给客户端。

  5. 客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输

一 环境准备

服务器 IP地址 角色 备注
master01 10.0.0.100 NFS服务端 共享存储服务器 /data/nfs
node01 10.0.0.101 客户端  
node02 10.0.0.102 客户端  

#01 创建虚拟机 修改IP地址
sed -i   's#10.0.0.100#10.0.0.101#g' /etc/sysconfig/network-scripts/ifcfg-ens32
hostnamectl set-hostname node01
reboot

#02 修改主机名
hostnamectl set-hostname node01

二.开始搭建服务端

  • master01 执行

2.1 安装nfs所需软件包

yum install -y rpcbind nfs-utils

复制

2.2 创建测试文件并赋权限

#01 创建共享目录 并授权
[root@master01 ~]# mkdir -p   /data/nfs
[root@master01 ~]# chmod 777 -R /data/
[root@master01 ~]# cd /data/nfs/


#02 创建测试文件
[root@master01 nfs]# echo 'zhangbingbing zhen bucuo' >test.txt
[root@master01 nfs]# cat test.txt
zhangbingbing zhen bucuo

2.3 修改配置文件

[root@master01 nfs]# cat /etc/exports
/data/nfs 10.0.0.0/24(rw)
 

解释下: 共享文件路径 允许共享网段(10.0.0.0/24)(共享文件读写权限)
 
 
  • 权限

共享文件可执行权限有:
     ro           只读访问
     rw           读写访问
     sync          所有数据在请求时写入共享
     hide          在NFS共享目录中不共享其子目录
     no_hide         共享NFS目录的子目录
     all_squash       共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
     no_all_squash      保留共享文件的UID和GID(默认)
     root_squash       root用户的所有请求映射成如anonymous用户一样的权限(默认)
     no_root_squas      root用户具有根目录的完全管理访问权限

2.4 开启服务


#01 启动服务
[root@master01 nfs]# systemctl start rpcbind nfs
[root@master01 nfs]# systemctl enable rpcbind nfs


#系统管理 systemctl
   #启动 start
   #关闭 stop
   #重启 restart

设置开机自启
echo "192.168.121.38:/home/test /nfs nfs4 defaults 0 0" >> /etc/fstab
mount -av

2.5 检查共享信息



#01 检查进程
[root@master01 nfs]# ps -ef | grep nfs
root       1518      2  0 23:02 ?        00:00:00 [nfsd4_callbacks]
root       1524      2  0 23:02 ?        00:00:00 [nfsd]
root       1525      2  0 23:02 ?        00:00:00 [nfsd]
root       1526      2  0 23:02 ?        00:00:00 [nfsd]
root       1527      2  0 23:02 ?        00:00:00 [nfsd]
root       1528      2  0 23:02 ?        00:00:00 [nfsd]
root       1529      2  0 23:02 ?        00:00:00 [nfsd]
root       1530      2  0 23:02 ?        00:00:00 [nfsd]
root       1531      2  0 23:02 ?        00:00:00 [nfsd]
root       1542   1187  0 23:02 pts/0    00:00:00 grep --color=auto nfs
[root@master01 nfs]# ps -ef | grep rpc
rpc        1482      1  0 23:02 ?        00:00:00 /sbin/rpcbind -w
rpcuser    1499      1  0 23:02 ?        00:00:00 /usr/sbin/rpc.statd
root       1501      2  0 23:02 ?        00:00:00 [rpciod]
root       1506      1  0 23:02 ?        00:00:00 /usr/sbin/rpc.idmapd
root       1513      1  0 23:02 ?        00:00:00 /usr/sbin/rpc.mountd
root       1544   1187  0 23:02 pts/0    00:00:00 grep --color=auto rpc


#02 检查挂载目录
[root@master01 nfs]# showmount -e 10.0.0.100
Export list for 10.0.0.100:
/data/nfs 10.0.0.0/24

(此处ip地址为搭建服务器主机地址)

三.搭建客户端

  • node01 node02 执行



#00 安装NFS
yum install -y nfs-utils


#01 启动服务 并创建目录
[root@node01 ~]# mkdir -p /data/nfs
[root@node01 ~]# systemctl start nfs
[root@node01 ~]# systemctl enable nfs

#02 检查是否启动
[root@node01 ~]# systemctl status nfs
● nfs-server.service - NFS server and services
  Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
  Active: active (exited) since 六 2023-07-22 23:09:39 CST; 4min 32s ago
Main PID: 1470 (code=exited, status=0/SUCCESS)
  CGroup: /system.slice/nfs-server.service

7月 22 23:09:39 node01 systemd[1]: Starting NFS server and services...
7月 22 23:09:39 node01 systemd[1]: Started NFS server and services.


#03 挂载目录
[root@node01 ~]# mount 10.0.0.100:/data/nfs /data/nfs


#04 检查
[root@node01 ~]# df -h
文件系统                 容量 已用 可用 已用% 挂载点
devtmpfs                 979M     0 979M    0% /dev
tmpfs                   991M     0 991M    0% /dev/shm
tmpfs                   991M  9.5M 981M    1% /run
tmpfs                   991M     0 991M    0% /sys/fs/cgroup
/dev/mapper/centos-root   38G  1.6G   36G    5% /
/dev/mapper/centos-home   19G   33M   19G    1% /home
/dev/sda1               1014M 137M 878M   14% /boot
tmpfs                   199M     0 199M    0% /run/user/0
10.0.0.100:/data/nfs     38G  1.6G   36G    5% /data/nfs


#05 授权
[root@master01 nfs]# chmod 777 -R /data/


Nfs 共享存储搭建的更多相关文章

  1. 负载均衡LVS之DR(附:NFS共享存储) 五分钟搭建手册

    一:DR-模式 调度器Ip:192.168.1.254 服务器ip:192.168.1.1/192.168.1.2 VIP:192.168.1.10 ——配置负载均衡调度器: 关闭重定向响应配置: V ...

  2. 使用URLOS在linux系统中极速部署NFS共享存储服务

    如何在linux系统里搭建NFS服务?其实我们只需要安装一个URLOS面板,然后就能在3分钟内将NFS服务部署完成.近日,URLOS在应用市场中上架了一款NFS应用,它可以让我们的节点主机在3分钟内极 ...

  3. NFS 共享存储实战

    目录 NFS 共享存储实战 一.NFS概述 二.NFS部署 部署NFS客户端backup和web01 统一web.nfs.backup的用户权限 代码部署步骤 三.NFS配置详解 NFS存储小结 四. ...

  4. NFS 共享存储

    目录 环境准备 NFS服务端 NFS客户端 部署时常见报错 httpd服务 NFS 共享存储的坑 环境准备 主机名 WanIP(Wide Area Network) LanIP(Local Area ...

  5. 生产场景NFS共享存储优化及实战

    生产场景NFS共享存储优化: 1.硬件:sas/ssd磁盘,买多块,raid0/raid10,网卡好 2.NFS服务器端优化加all_squash,async /backup/NFS 192.168. ...

  6. Linux之nginx反向代理+三台web+nfs共享存储实现集群配置

    作业四:nginx反向代理+三台web+nfs共享存储实现集群配置 在各个web服务器上挂载nfs [root@localhost nginx]# mount -t nfs 192.168.152.1 ...

  7. 虚拟化(四):vsphere高可用功能前提-共享存储搭建(使用微软提供的iscsi software target,也可以使用免费开源的openfiler)

    虚拟化(一):虚拟化及vmware产品介绍 虚拟化(二):虚拟化及vmware workstation产品使用 虚拟化(三):vsphere套件的安装注意及使用 虚拟化(四):vsphere高可用功能 ...

  8. 虚拟化(四):vsphere高可用功能前提-共享存储搭建

    虚拟化(一):虚拟化及vmware产品介绍 虚拟化(二):虚拟化及vmware workstation产品使用 虚拟化(三):vsphere套件的安装注意及使用 虚拟化(四):vsphere高可用功能 ...

  9. Linux架构之NFS共享存储1

    第35章 NFS共享存储 35.1 NFS基本概述 NFS是Network File System的缩写及网络文件系统.NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录. 常见的文件 ...

  10. 基于NFS共享存储实现KVM虚拟机动态迁移

    基于NFS共享存储实现KVM虚拟机动态迁移 一:配置环境 二:安装相关的依赖包 三:实现NFS共享存储 四:KVM机配置相同的步骤 五:安装KVM01安装虚拟机 六:实现迁移  实验初始配置:所有主机 ...

随机推荐

  1. 手撕Vue-实现将数据代理到Vue实例

    前言 经过上一篇文章的学习,完成了 v-on 指令的实现,接下来我们来实现将数据代理到 Vue 实例上. 为什么要完成这个功能呢?因为我们在使用 Vue 的时候,可以直接通过 this.xxx 的方式 ...

  2. 强化学习从基础到进阶-案例与实践[4.2]:深度Q网络DQN-Cart pole游戏展示

    强化学习从基础到进阶-案例与实践[4.2]:深度Q网络DQN-Cart pole游戏展示 强化学习(Reinforcement learning,简称RL)是机器学习中的一个领域,区别与监督学习和无监 ...

  3. C/C++ Qt 监控文件状态变化

    实现对特定文件的监控,Qt中提供了QFileSystemWatcher调用这个接口可以快速实现监控功能,当有文件发生变化是自动触发并输出文件具体信息. filesystem.h #ifndef FIL ...

  4. 《Mybatis 手撸专栏》第2章:创建简单的映射器代理工厂

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 着急和快,是最大的障碍! 慢下来,慢下来,只有慢下来,你才能看到更全的信息,才能学到 ...

  5. nginx入门之安装和启动

    1.安装环境 nginx 使用源码编译安装,环境及组件如下: make 环境 openssl-fips-2.0.10 pcre-8.44 zlib-1.2.11 nginx-1.10.2 需要注意各组 ...

  6. Swift中UITableViewDiffableDataSource的使用

    在 iOS 13 中 Apple 为 UITableView 和 UICollectionView 引入了 DiffableDataSource, 让开发者可以更简单高效的实现 UITableView ...

  7. 数学微积分,学习笔记,等价无穷小的证明:(1+x)^a-1 ~ ax

    \(\lim_{x \to 0} \frac{\sqrt[n]{1+x} -1}{\frac{x}{n} } =1\)的证明 \[\lim_{x \to 0} \frac{\sqrt[n]{1+x} ...

  8. yapi 的分组的理解!

    yapi ,分为超级管理员和 分组组长和项目组长: ------------------------------------------------------------------------ 人 ...

  9. Spring Boot 单元测试笔记

    1. 导入JUnit5测试框架 <dependency> <groupId>org.springframework.boot</groupId> <artif ...

  10. NC22596 Rinne Loves Data Structure

    题目链接 题目 题目描述 Rinne 喜欢 OI.在 9102 年的 PION 中,她在初赛遇到了这样一道题目: 阅读下列代码,然后回答问题. 补充:建树过程中会更新lc和rc,这实质上是一个二叉查找 ...