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. 使用rider调试lua

    emmylua1.3.5及以上版本支持rider调试,但emmylua的新版本只支持rider2020及以上版本,所以如果想用rider来调试lua,就要升级rider为2020,emmylua插件从 ...

  2. 样本数量不平衡问题方案(Focal Loss & Circle Loss)

    1.Focal Loss focal loss是最初由何恺明提出的,最初用于图像领域解决数据不平衡造成的模型性能问题.本文试图从交叉熵损失函数出发,分析数据不平衡问题,focal loss与交叉熵损失 ...

  3. gitee 命令合集(从远程仓库拉取项目到推送项目到远程仓库)

    1.配置用户的信息 git config --global user.name '你的用户名' git config --global user.email '你的邮箱' 2.初始化 Git 仓库,生 ...

  4. P5309 [Ynoi2011] 初始化 题解

    题目链接:初始化 这种 ynoi 的老题就是卡常.来简单说说这题的思维切入口. 看到形如 \(y+k \times x\) 的结构,自然而然思考一下如果我们是暴力更新会有怎么样的效果.我们容易发现,如 ...

  5. 使用C语言构建一个独立栈协程和共享栈协程的任务调度系统

    使用了标准库头文件 <setjmp.h>中的 setjmp 和 longjmp两个函数,构建了一个简单的查询式协作多任务系统,支持独立栈和共享栈两种任务. 其中涉及到获取和设置栈的地址操作 ...

  6. 深入浅出Java多线程(八):volatile

    引言 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第八篇内容:volatile.大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在当今的软件开发领域,多线程编程 ...

  7. MySQL创建函数报错:1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled

    创建函数时报错: 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaratio ...

  8. Linux离线安装MySQL(5.7.22)

    1.下载tar包 (1)Window PC下载(PC需要联网) MySQL官网地址:https://www.mysql.com/ MySQL社区版下载地址: https://dev.mysql.com ...

  9. Hive中insert into 和 insert overwrite的区别

    相同点 insert into 和 insert overwrite 都是往表中插入数据的. 不同点 区别1: insert into :其实是将数据追加到表的末尾,注意:不是覆盖,是追加. inse ...

  10. Python实现冒泡排序、选择排序、插入排序

    排序与搜索 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法. 排序算法的稳定性 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序.也就是如 ...