NFS简介NFS(Network File System)网络文件系统,由NFS服务器端和NFS客户端构成,通过网络(一般是局域网)使不同主机系统,可以彼此共享文件。NFS客户端mount挂载NFS服务器端共享的文件目录到NFS客户端本地系统的某一个挂载点下,NFS客户端本地访问挂载点的共享目录时,像是访问本地的磁盘分区或目录一样,实际上访问的是挂载的NFS服务器目录。

RPC远程过程调用

NFS服务器端和客户端之间的数据传输通过相对应网络端口,由于NFS支持的功能比较多,不同的功能会使用不同的程序启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能对应的端口不固定,那么造成NFS服务器和NFS客户端数据传输的通信障碍(NFS客户端必须知道NFS服务器端的数据传输端口才能通信进行数据交互)则需要RPC(Remote procedure Call)远程过程调用来统一管理NFS端口,并且统一对外的端口是111,RPC会记录NFS端口的信息,这样就可以通过RPC实现NFS服务器和NFS客户端的端口通信。(RPC指定每个NFS功能所对应的端口,并且通知客户端,使客户端可连接到相应的端口上)

NFS工作流程

先启动NFS服务器端的RPC服务并开启111端口,然后启动NFS服务器端,NFS会随机使用一些端口,然后NFS就向PRC注册这些端口,RPC记录这些端口等待客户端RPC的请求,启动客户端RPC,向服务器端PRC请求服务器端NFS端口,服务器端的RPC将之前记录的NFS端口信息告知客户端,客户端通过获取到的NFS端口来建立和服务器端的NFS连接进行数据传输。

注:在启动服务器端NFS前启动RPC服务,否则服务器端NFS无法向RPC注册;如果PRC服务重启,之前注册好的NFS端口数据会全部丢失。

搭建NFS共享存储服务1、查看系统环境准备相应的安装包

部署NFS服务需要NFS和RPC软件包

linux-szge:~ # uname -a

Linux linux-szge 3.0.76-0.11-default #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990) x86_64 x86_64 x86_64 GNU/Linux

linux-szge:~ # cat /etc/issue

Welcome to SUSE Linux Enterprise Server 11 SP3 (x86_64) - Kernel \r (\l).

注:内核和操作系统不同,使用的安装包的版本也有差异,故需要根据操作系统和内核准备相应的软件包

2、检查是否安装NFS和RPC

linux-szge:~ # rpm -qa | egrep "nfs|rpcbind"

3、安装NFS和RPC

linux-szge:~ # zypper install rpcbind*

linux-szge:~ # zypper install nfs*

linux-szge:~ # rpm -qa | egrep "nfs|rpcbind"

nfsidmap-0.25-0.11.29

nfs-doc-1.2.3-18.29.1

rpcbind-0.1.6+git20080930-6.18.1

nfs-client-1.2.3-18.31.1

nfs-kernel-server-1.2.3-18.29.1

或者到下载相应的源码包或rpm包安装

注:服务器端和客户端本地都需要安装NFS和RPC

4、启动RPC

linux-szge:~ # service rpcbind start 启动RPC

linux-szge:~ # netstat -anpp | grep rpcbind 查看监听的端口是111

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2641/rpcbind

linux-szge:~ # rpcinfo -p localhost 未启动NFS前查看NFS服务向RPC注册的端口信息

program vers proto port service

100000 4 tcp 111 portmapper

100000 3 tcp 111 portmapper

...

详情请看rpcinfo --help详解

linux-szge:~ # chkconfig rpcinfo on rpcinfo设置为开机自启动

linux-szge:~ #chkconfig --list rpcinfo

rpcinfo 0:off 1:off 2:off 3:on 4:off 5:on 6:off

详情请看chkconfig --help详解

5、配置及启动NFS

配置NFS服务器端

linux-szge: ~ # mkdir /data/lml;chmod 666 /data/lml/ 创建共享目录/data/lml并设置权限

linux-szge:~ # vim /etc/exports 编辑NFS主要配置文件exports(默认是空的)

/data/lml 172.30.3.73(rw,sync,no_root_squash,no_all_squash) 172.30.3.73可读写共享目录/data/lml

注:在172.30.3.73和(之间不能有空格,否则nfs写入时会报错read-only file system

NFS配置exports文件格式

注:客户端地址可以写IP,网段,主机名

NFS常用配置参数

启动NFS服务器端

linux-szge:~ # service nfsserver start 启动服务器端NFS

注:如果已启动服务器端NFS,后修改了/etc/exports配置,需要重新加载NFS或者重启RPC和NFS

linux-szge:~ # service nfsserver reload 重新加载服务器NFS

linux-szge:~ # exportfs -rv 重新加载服务器NFS(r表示重启,v表示显示export的选项)

linux-szge:~ # service rpcbind restart 先重启RPC

linux-szge:~ # service nfsserver restart 后重启NFS

linux-szge:~ # rpcinfo -p localhost 启动NFS后查看RPC注册的端口信息

program vers proto port service

100000 4 tcp 111 portmapper

...

100003 4 tcp 2049 nfs

100227 2 tcp 2049 nfs_acl

...

linux-szge:~ # chkconfig nfs on NFS设置为开机自启动

linux-szge:~ #chkconfig --list nfs

nfs 0:off 1:off 2:off 3:on 4:off 5:on 6:off

服务器端测试是否可联机

linux-szge:~ # showmount -e 测试是否可联机

Export list for linux-szge:

/data/lml 172.30.3.73

详情请看showmount --help详解

配置NFS客户端

linux: ~ # mkdir /getshare 创建共享目录

linux:~ # service rpcbind restart先重启RPC

linux:~ # showmount -e 172.30.1.199 扫描服务器端NFS目录(172.30.1.199是服务器端NFS的IP)

mount挂载NFS服务器端的共享目录/data/lml到客户端本地的/getshare下

linux:~ # mount -t nfs 172.30.1.199:/data/lml /getshare

挂载格式

mount -t nfs 主机名或IP:/共享目录 /挂载点

linux:~ # df 查看挂载情况

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 40G 28G 11G 73% /

...

172.30.1.199:/data/lml 26G 8K 26G 1% /getshare

注:访问本地的/getshare相当于访问172.30.1.199的共享目录/data/lml

6、测试NFS能否正常使用

172.30.3.73客户端

挂载点创建文件test

linux:~ #cd /getshare ;echo "llalala" > test;ls -l

-rw-r--r-- 1 root root 8 May 7 15:28 test

172.30.1.199服务器端

共享目录查看是否有挂载点创建的test文件,有表示NFS可正常使用

linux-szge:~ # cd /data/lml;ls -l

-rw-r--r-- 1 root root 8 May 7 15:28 test

举报/反馈

linux共享文件丢失,linux基础应用(NFS文件共享)相关推荐

  1. Linux上(Redhat7)实现NFS文件共享服务

    NFS(Network File System)网络文件系统基于TCP/IP 主要功能:通过网络(局域网)让不同的主机系统之间可以共享文件或目录,可以像使用本地主机资源那样远程读写文件夹 主要用途:N ...

  2. linux共享文件丢失,【干货分享】linux平台下数据文件被误删后,如何及时得知并进行恢复...

    原标题:[干货分享]linux平台下数据文件被误删后,如何及时得知并进行恢复 我们知道在windows平台下,一旦文件在程序中打开,则不能被删除,所以不存在误删数据文件的情况,如下图所示. 但是在LI ...

  3. linux nfs文件共享

    linux nfs文件共享 ◆一.概念 NFS是网络文件系统(Network File System)的简称,是分布式计算机系统的一个组成部分,可实现在异构网络上共享和装配远程文件系统. NFS由SU ...

  4. Linux配置NFS文件共享存储

    一.NFS简介 NFS是一种基于TCP/IP传输的网络文件系统协议.通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源. 对于大多数负载均衡群集来说,使用NFS协议来共享数据存 ...

  5. Linux就该这么学--Samba NFS的配置

    SAMBA文件共享服务 Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的选择 1.安装ansible [root@myserver ~]# yum install -y ...

  6. linux入门指南(基础教程)

    Linux学习基础 1.什么是Linux? 准确的说,是指Linux的kernel(系统的核心程序),其内核版权属于Linus Torvalds,在GPL(GNU General Public Lic ...

  7. 浅谈linux - samba实现linux与windows文件共享

    概述 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块,SMB主要是作为Microsoft的网络通 ...

  8. Linux最常用的基础命令

    Linux最常用的基础命令个人总结 计算机基础知识: 32bit和64bit系统的区别.系统运行机制 32bit=内存的最大寻址空间是2**32,也就是说最大只能使用4GB的内存 64bit=内存的最 ...

  9. 《Linux共享文件夹搭建===samba》

    博主这边文章主要是讲解一下 Linux共享文件夹搭建,利用samba服务协议. 博主之前介绍过利用NFS服务来搭建共享文件夹,这次来讲讲利用samba搭建共享文件夹的方法. 目录 1.samba服务以 ...

  10. 嵌入式Linux视频笔记----Linux基础入门

    https://www.bilibili.com/video/BV1JK4y1t7io/?spm_id_from=333.788.videocard.2 运行于ARM-A7的嵌入式Linux系统基础知 ...

最新文章

  1. Scrapy五大核心组件简介
  2. 分布式事务:分布式事务原理概述
  3. <力扣>-----利用哈希表来判断是否存在重复元素
  4. 打造自己的装机U盘(二)
  5. vue 加载太慢_如何提高Vue项目首页的加载速度
  6. vmnet0 子网ip和子网掩码_IP地址知识介绍及子网划分与汇总
  7. 码头结构计算机辅助设计软件,空间结构分析软件MST2016 官方版
  8. postgres 退出_Postgresl选择正确的关闭模式
  9. pands 画图 调整大小_用宏命令对word里的图片尺寸大小进行批量修改的方法
  10. 中国电话区号(CSV)
  11. 大鱼吃小鱼小游戏完整版
  12. Xilinx AXI Crossbar相关调试记录
  13. windows 命令方式查找指定IP的MAC地址
  14. 7000词汇这么背我比较可以接受,连续看20天足以
  15. linux管道只能运输参数吗,oeasy教您玩转 linux 010212 管道 pipe
  16. JSRUN 对比 jsfiddle,jsbin,codepen
  17. tomcat错误This is very likely to create a memory leak
  18. 计算机软著进行转让的步骤
  19. flarum 轻论坛安装教程
  20. (已更新)谁是卧底线下发牌器微信小程序源码下载,强大的自定义功能

热门文章

  1. 学习 Python 第八天
  2. 科技四巨头展望:战线***升级 软硬界限模糊
  3. 「leetcode」701. 二叉搜索树中的插入操作:【递归法】【迭代法】详解
  4. 如何使用终端下载 macOS Monterey 12.1 正式版
  5. 如何在任何设备上将您的Apple笔记导出为PDF文件?
  6. 如何为 Apple 设备使用通用控制?
  7. 18 Strings for Mac(Xcode文件翻译工具)
  8. 在苹果Mac上如何将zsh用作默认Shell?
  9. 如何使用Snagit修剪视频?
  10. 已支持macOS Big Sur 的apple App更新列表