linux nfs文件共享

◆一、概念

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

NFS由SUN公司开发,目前已成为文件服务的一种标准(RFC1904,RFC1813)。其最大的功能就是可以通过网络,让不同操作系统的计算机可以共享数据,所以也可以看作是一个文件服务器。NFS是除了SAMBA之外Windows与Linux及Unix与Linux之间通信的方法。

理想条件下的NFS 网络拓扑结构

1、设置Linux系统之间的文件共享(Linux与Windows中间文件共享采用SAMBA服务);

2、NFS只是一种文件系统,本身没有传输功能,是基于RPC协议实现的,才能达到两个Linux系统之间的文件目录共享;

3、NFS为C/S架构;

◆二、服务器配置

1、配置文件

主要配置文件为:/etc/exports

格式为: 共享目录 可mount主机IP(参数1,参数2,……)

如:/var/nfs 172.20.*.*(rw,sync,no_rootl_squash)

ro: 只读

rw: 可读写

sync: 同步写入

async: 不同步写入
root_squash: 将root用户映射为来宾账号

no_root_squash:  将root用户映射为非来宾账号

all_squash:  所有帐号为来宾帐号

anonuid,anongid: 指定映射的来宾帐号的UID和GID;

说明:必须注意nfs/目录的访问权限,必须设置成777权限;父目录/var权限无要求,普通的755即可;

2、启动相关服务

然后依次启动相关服务:portmap,nfslock,nfs

service portmap start

service nfslock start

service nfs start

关闭顺序相反。

3、检查共享目录

随后可以采用showmount –e查看一下,看看共享的目录情况:

[root@ns var]# showmount -e

Export list for ns.osserver:

/var/nfs 172.20.*.*

OK,到此为止,NFS服务器搭建完毕;

◆三、客户端配置

1、确保portmap运行

客户端必须确保RPC协议相应的portmap正常运行,否则mount将失败;

2、挂载/var/nfs目录(本地挂载点为/mnt/nfs)

mount -t nfs 172.20.65.16:/var/nfs /mnt/nfs

成功mount以后,即可同本地目录一样随意操作;

◆四、其它相关命令

1、当修改了/etc/exports文件后,可以不用重新启动nfs服务,直接采用exports –rv 即可重新导出共享目录;

该命令格式如下:

exportfs [-aruv]

-a :全部mount或者unmount /etc/exports中的内容

-r :重新mount /etc/exports中分享出来的目录

-u :umount 目录

-v :在 export 的时候,将详细的信息输出到屏幕上。

具体例子:

[root@ns var]# showmount -e

Export list for ns.osserver:

/var/nfs 172.20.*.*

[root@ns var]# exportfs –au #全部卸载

[root@ns var]# showmount -e

Export list for ns.osserver:

[root@ns var]# exportfs –rv #全部重新 export 一次

exporting 172.20.*.*:/var/nfs

[root@ns var]#

2、showmout命令对于NFS的操作和查错有很大的帮助,所以我们先来看一下showmount的用法

showmout

-a :这个参数是一般在NFS SERVER上使用,是用来显示已经mount上本机nfs目录的cline机器。

-e :显示指定的NFS SERVER上export出来的目录。

例如:

[root@localhost ~]# showmount -e 172.20.16.139

Export list for 172.20.16.139 :
/root/share 172.20.16.137

[root@ns var]# showmount -a

All mount points on localhost.localdomain:
*:/root/share
172.20.16.139:,172.20.16.139
172.20.16.139:DEFAULT

◆五、常见问题解答

1、提示:mount to NFS server '172.20.67.203' failed: server is down.

解决方案:可能是NFS服务器的防火墙有问题;

2、提示:mount: RPC: Timed out

解决方案:由于RPC协议没运行;启动portmap服务;

也有可能是防火墙问题;Server/Client均有可能。

[root@test conn]# service nfslock status  #服务器端查看
rpc.statd (pid  3041) is running...
[root@test conn]# service portmap status
portmap (pid 2983) is running...
[root@test conn]# service nfs status
rpc.mountd (pid 22877) is running...
nfsd (pid 22874 22873 22872 22871 22870 22869 22868 22867) is running...
rpc.rquotad (pid 22862) is running...
[root@test conn]# showmount -e
Export list for test:

[root@test conn]# vi /etc/exports

/var/nfs 10.109.131.*(rw,async)

[root@test conn]# exportfs -arv
exporting 10.109.131.*:/var/nfs
[root@test conn]# showmount -e
Export list for test:
/var/nfs 10.109.131.*

[root@test ~]# mkdir /var/nfs
[root@test nfs]# cd /var/nfs
[root@test nfs]# touch a.123

[root@jacktest ~]# mount -t nfs 10.109.131.209:/var/nfs/ /mnt/nfs/     #客户端查看

[root@jacktest ~]# ll /mnt/nfs/a.123 
-rw-r--r-- 1 root root 0 Jan 15 16:28 /mnt/nfs/a.123

[root@jacktest ~]# mount
...
10.109.131.209:/var/nfs/ on /mnt/nfs type nfs (rw,addr=10.109.131.209)

[root@jacktest ~]# showmount -e 10.109.131.209
Export list for 10.109.131.209:
/var/nfs 10.109.131.*

特例:NSF权限是通过ID号来确认权限,因此root默认为

[root@test conn]# id hbase     #服务器端查看,hbase的ID号为502
uid=502(hbase) gid=502(hbase) groups=502(hbase)
[root@test conn]# setfacl -m u:hbase:rwx /var/nfs/
[root@test conn]# ll /var/nfs/
total 0
-rw-r--r--  1 root root 0 Jan 15 16:28 a.123
[root@test conn]# su - hadoop
[hadoop@test ~]$ cd /var/nfs/
[hadoop@test nfs]$ touch 11.hadoop
[hadoop@test nfs]$ ll
total 0
-rw-rw-r-- 1 hadoop hadoop 0 Jan 15 16:52 11.hadoop
-rw-r--r-- 1 root   root   0 Jan 15 16:28 a.123
[hadoop@test nfs]$ su - hbase

[root@test conn]# setfacl -m u:hbase:rwx /var/nfs/
[root@test conn]# ll /var/nfs/
total 0
-rw-rw-r--  1 hadoop hadoop 0 Jan 15 16:52 11.hadoop
-rw-rw-r--  1 hbase  hbase  0 Jan 15 16:57 321.hbase
-rw-r--r--  1 root   root   0 Jan 15 16:28 a.123

[root@jacktest ~]# groupadd -g 502 openstack      #客户端查看,openstack的ID号为502
[root@jacktest ~]# useradd -g 502 -u 502 openstack
[root@jacktest ~]# id openstack
uid=502(openstack) gid=502(openstack) groups=502(openstack)
[root@jacktest ~]# ll /mnt/nfs/
total 0
-rw-rw-r--  1 hadoop    hadoop    0 Jan 15 16:52 11.hadoop
-rw-rw-r--  1 openstack openstack 0 Jan 15 16:57 321.hbase
-rw-r--r--  1 root      root      0 Jan 15 16:28 a.123
[root@jacktest ~]# su - openstack
[openstack@jacktest ~]$ cd /mnt/nfs/
[openstack@jacktest nfs]$ ll /mnt/nfs/
total 0
-rw-rw-r-- 1 hadoop    hadoop    0 Jan 15 16:52 11.hadoop
-rw-rw-r-- 1 openstack openstack 0 Jan 15 16:57 321.hbase
-rw-r--r-- 1 root      root      0 Jan 15 16:28 a.123
[openstack@jacktest nfs]$ touch b.openstack
[openstack@jacktest nfs]$ ll
total 0
-rw-rw-r-- 1 hadoop    hadoop    0 Jan 15 16:52 11.hadoop
-rw-rw-r-- 1 openstack openstack 0 Jan 15 16:57 321.hbase
-rw-r--r-- 1 root      root      0 Jan 15 16:28 a.123
-rw-rw-r-- 1 openstack openstack 0 Jan 15 17:04 b.openstack

[root@test conn]# ll /var/nfs/     #服务器端查看
total 0
-rw-rw-r--  1 hadoop hadoop 0 Jan 15 16:52 11.hadoop
-rw-rw-r--  1 hbase  hbase  0 Jan 15 16:57 321.hbase
-rw-r--r--  1 root   root   0 Jan 15 16:28 a.123
-rw-rw-r--  1 hbase  hbase  0 Jan 15 17:04 b.openstack

统一用一个权限访问:

[root@test nfs]# useradd -u 511 nfstest      #服务器端查看
[root@test nfs]# touch nfstest
[root@test nfs]# ls
11.hadoop  321.hbase  b.openstack  nfstest
[root@test nfs]# ll
total 0
-rw-rw-r-- 1 hadoop hadoop 0 Jan 15 16:52 11.hadoop
-rw-rw-r-- 1 hbase  hbase  0 Jan 15 16:57 321.hbase
-rw-rw-r-- 1 hbase  hbase  0 Jan 15 17:04 b.openstack
-rw-r--r-- 1 root   root   0 Jan 15 17:16 nfstest
[root@test nfs]# chown nfstest.nfstest /var/nfs/nfstest
[root@test nfs]# ll
total 0
-rw-rw-r-- 1 hadoop  hadoop  0 Jan 15 16:52 11.hadoop
-rw-rw-r-- 1 hbase   hbase   0 Jan 15 16:57 321.hbase
-rw-rw-r-- 1 hbase   hbase   0 Jan 15 17:04 b.openstack
-rw-r--r-- 1 nfstest nfstest 0 Jan 15 17:16 nfstest
[root@test nfs]# vi /etc/exports
[root@test nfs]# cat /etc/exports
/var/nfs 10.109.131.*(rw,async,all_squash,anonuid=511,anongid=511)
[root@test nfs]# exportfs -ra
[root@test nfs]# exportfs -rav
exporting 10.109.131.*:/var/nfs
[root@test nfs]# showmount -e 10.109.131.209
Export list for 10.109.131.209:
/var/nfs 10.109.131.*
[root@test nfs]#

[root@jacktest nfs]# ll      #客户端查看
total 0
-rw-rw-r-- 1 hadoop    hadoop    0 Jan 15 16:52 11.hadoop
-rw-rw-r-- 1 openstack openstack 0 Jan 15 16:57 321.hbase
-rw-rw-r-- 1 openstack openstack 0 Jan 15 17:04 b.openstack
-rw-r--r-- 1       511       511 0 Jan 15 17:16 nfstest

[root@jacktest nfs]# vim /etc/fstab

...

192.168.1.5:/var/nfs  /mnt/nfs   nfs  default,-rnetdev  0 0

[root@test var]# vi /etc/sysconfig/nfs   #固定监控端口

# Optional arguments passed to rpc.mountd. See rpc.mountd(8)
# Port rquotad should listen on.
RQUOTAD_PORT=875
# Optinal options passed to rquotad
#RPCRQUOTADOPTS=""
 
# Optional arguments passed to rpc.mountd. See rpc.mountd(8)
#RPCMOUNTDOPTS=""
# Port rpc.mountd should listen on.
MOUNTD_PORT=892

[root@test var]# rpcinfo -p localhost
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp    676  status
    100024    1   tcp    679  status
    100011    1   udp    991  rquotad
    100011    2   udp    991  rquotad
    100011    1   tcp    994  rquotad
    100011    2   tcp    994  rquotad
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100021    1   udp  39240  nlockmgr
    100021    3   udp  39240  nlockmgr
    100021    4   udp  39240  nlockmgr
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100021    1   tcp  37209  nlockmgr
    100021    3   tcp  37209  nlockmgr
    100021    4   tcp  37209  nlockmgr
    100005    1   udp   1005  mountd
    100005    1   tcp   1008  mountd
    100005    2   udp   1005  mountd
    100005    2   tcp   1008  mountd
    100005    3   udp   1005  mountd
    100005    3   tcp   1008  mountd

◆六、示例

1. 服務器端配製:

[root@MyLinux ~]# useradd -u 510 nfstest
[root@MyLinux ~]# mkdir /shared
[root@MyLinux ~]# touch /shared/nfstest
[root@MyLinux ~]# ll /shared/nfstest
-rw-r--r-- 1 root root 0 Apr  6 16:22 /shared/nfstest
[root@MyLinux ~]# tail /etc/passwd
.
nfstest:x:510:510::/home/nfstest:/bin/bash
[root@MyLinux ~]# chown nfstest.nfstest /shared/nfstest
[root@MyLinux ~]# ll /shared/nfstest
-rw-r--r-- 1 nfstest nfstest 0 Apr  6 16:22 /shared/nfstest
[root@MyLinux ~]# vi /etc/exports
/shared  10.109.0.0/16(rw,all_squash,anonuid=510,anongid=510)
[root@MyLinux ~]# exportfs -ra
[root@MyLinux ~]# showmount -e 10.109.132.126
Export list for 10.109.132.126:
/shared 10.109.0.0/16

2. 客戶端手动挂载:

[root@MyLinux ~]# mkdir /mnt/nfs

[root@MyLinux ~]# mount -t nfs 10.109.132.126:/shared /mnt/nfs

3. 客戶端自动挂载:

[root@MyLinux ~]# vim /etc/fstab

/dev/VolGroup00/LogVol00 /    ext3    defaults    1 1
LABEL=/boot    /boot   ext3    defaults   1 2
tmpfs   /dev/shm    tmpfs   defaults    0 0
devpts   /dev/pts     devpts  gid=5,mode=620  0 0
sysfs    /sys      sysfs   defaults    0 0
proc     /proc    proc    defaults   0 0
/dev/VolGroup00/LogVol01 swap  swap   defaults     0 0
10.109.132.126:/shared  /mnt/nfs  nfs    defaults,_rnetdev 0 0  #若挂载不成功则跳过不挂载

---END---

转载于:https://blog.51cto.com/wangfx/1896858

linux nfs文件共享相关推荐

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

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

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

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

  3. nfs文件共享+netstat相关 记录

    经常要创建nfs文件共享,每次都要重新找一下笔记,特记录下来方便查找: 一般linux自带有nfs应用,所以要使用时,只要启用即可,启动过程如下: 服务端: 在/etc/exports 里面加入要nf ...

  4. linux nfs 配置_centos7 NFS 配置

    NFS是什么 最近项目上有这么个需求,客户端上传文件的时候,想把文件上传到另外一台服务器. 本来想用ftp的,觉得太麻烦,就各种查资料,请教别人,后来发现,NFS这个东东真不错. NFS(网络文件系统 ...

  5. Linux——SAMBA文件共享

    文章目录 一.SAMBA概念 1. 什么是SAMBA 2. SAMBA主要进程 3. SAMBA软件安装(服务器搭建) 4. smb配置文件 二.SAMBA使用案例 1. 环境准备 1)配置静态ip ...

  6. Linux 网络文件共享服务详细介绍

    Linux 网络文件共享介绍 一.常见的存储类型 1.1 DAS 类型的存储 1.2 NAS 类型的存储 1.3 SAN 类型的存储 1.4 三种存储类型的比较 二.文件传输协议 FTP 2.1 FT ...

  7. linux 协议文件,下面支持UNIX和Linux的文件共享协议是() - 问答库

    问题: [单选] 下面支持UNIX和Linux的文件共享协议是() A . CIFS B . NFS C . iSCSI D . FCP Which log contains the output g ...

  8. NFS 文件共享的创建过程

    nfs 文件共享的服务器 nfs服务需要两个软件包nfs-utils和portmap 启动nfs服务 # service portmap start # service nfs start # chk ...

  9. AIX 访问Linux NFS共享错误案例

    AIX 访问Linux NFS共享错误案例 系统环境: 操作系统: RedHat EL4.AIX 5.3 错误现象: Linux 作为NFS Server ,AIX host 作为NFS Client ...

最新文章

  1. Linux系统mongdb还原数据库,linux下mongodb数据库备份与还原
  2. 使用Docker迁移与备份
  3. LeetCode 795. 区间子数组个数
  4. java线程礼让yield
  5. 学生使用计算机中怎么关机,学会正确开关机初中计算机教案
  6. CYQ.DBImport 数据库反向工程及批量导数据库工具 V2.0 发布[增加批量导出数据库脚本及数据库设计文档]...
  7. 手机qq音乐qmc0文件转mp3_录音添加背景音乐最新教程
  8. idea运行maven:No URLs will be polled as dynamic configuration sources
  9. qtcreator下拉列表怎么制作_如何用WPS制作月度记账表
  10. UVa 12174 (滑动窗口) Shuffle
  11. Cocoa中Core Data的简单介绍
  12. 阅读材料:信息技术年谱
  13. lzg_ad: FBWF配置详解
  14. 让游戏画面会说话,游戏音效制作有讲究
  15. 超越前作,实现动漫风格迁移——AnimeGANv2
  16. C++几个常用的排序
  17. java程序假死_分析一个常见的java多线程通信问题(假死现象)
  18. 微信开放平台创建应用时应用官网的问题
  19. Mifare UltraLight 卡存储结构
  20. cee怎么把大图片放进小盒子_PS的实际应用:怎么给盒子制作包装图片

热门文章

  1. cesium 圆形波纹
  2. linux dd来加载驱动,linux 加载raid驱动
  3. 七乐彩中奖规则表_双色球第2020118期开奖结果出炉!你中奖了吗?
  4. c语言 统计数量用count_C语言编程中统计输入的行数以及单词个数的方法
  5. c语言 waveout用法,用C语言发声
  6. 若依微服务部署遇到问题
  7. mysql语句优化 explai_mysql使用explain优化sql语句
  8. responseentity 详解_大六壬毕法赋精注详解(1)【六壬】
  9. mysql索引数据结构图解_干货:mysql索引的数据结构
  10. python求小数部分_python-numpy数组的小数部分