Linux NFS说明,配置及故障分析

一、NFS服务简介

NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

 

二、系统环境

系统平台:Red hat 5.8

NFS Server IP:10.48.11.41

防火墙已关闭/iptables: Firewall is not running.

SELINUX=disabled

 

三、安装NFS服务

NFS的安装是非常简单的,只需要两个软件包即可,而且在通常情况下,是作为系统的默认包安装的。

 

nfs-utils-* :包括基本的NFS命令与监控程序 

portmap-* :支持安全NFS RPC服务的连接

1、查看系统是否已安装NFS

[root@exadatabackup dir01]# rpm -qa | grep nfs

nfs-utils-lib-1.0.8-7.9.el5

nfs-utils-1.0.9-60.el5

[root@exadatabackup dir01]# rpm -qa | grep portmap

portmap-4.0-65.2.2.1

 

四、NFS系统守护进程

nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;

mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。

portmap:主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

 

五、NFS服务器的配置

NFS服务器的配置相对比较简单,只需要在相应的配置文件中进行设置,然后启动NFS服务器即可。

NFS的常用目录

/etc/exports                NFS服务的主要配置文件

/usr/sbin/exportfs          NFS服务的管理命令

/usr/sbin/showmount         客户端的查看命令

/var/lib/nfs/etab           记录NFS分享出来的目录的完整权限设定值

/var/lib/nfs/xtab           记录曾经登录过的客户端信息

 

NFS服务的配置文件为 /etc/exports,这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。

 

/etc/exports文件内容格式:

<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]

a. 输出目录:

输出目录是指NFS系统中需要共享给客户机使用的目录;

b. 客户端:

客户端是指网络中可以访问这个NFS输出目录的计算机

客户端常用的指定方式:

  指定ip地址的主机:192.168.0.200

  指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0

  指定域名的主机:david.bsmart.cn

  指定域中的所有主机:*.bsmart.cn

  所有主机:*

 

c. 选项:

选项用来设置输出目录的访问权限、用户映射等。

 

NFS主要有3类选项:

访问权限选项:

 设置输出目录只读:ro

 设置输出目录读写:rw

用户映射选项:

  all_squash:    将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

  no_all_squash: 与all_squash取反(默认设置);

  root_squash:   将root用户及所属组都映射为匿名用户或用户组(默认设置);

  no_root_squash:与rootsquash取反;

  anonuid=xxx:   将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

  anongid=xxx:   将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

其它选项

 secure:    限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

 insecure:  允许客户端从大于1024的tcp/ip端口连接服务器;

 sync:      将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

 async:     将数据先保存在内存缓冲区中,必要时才写入磁盘;

 wdelay:    检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

 no_wdelay: 若有写操作则立即执行,应与sync配合使用;

 subtree:   若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

 no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

 

六、NFS服务器的启动与停止

 

在对exports文件进行了正确的配置后,就可以启动NFS服务器了。

1、启动NFS服务器

为了使NFS服务器能正常工作,需要启动portmap和nfs两个服务,并且portmap一定要先于nfs启动。

# service portmap start

# service nfs start

2、查询NFS服务器状态

# service portmap status

# service nfs status  

3、停止NFS服务器

要停止NFS运行时,需要先停止nfs服务再停止portmap服务,对于系统中有其他服务(如NIS)需要使用时,不需要停止portmap服务

# service nfs stop

# service portmap stop

4、设置NFS服务器的自动启动状态

对于实际的应用系统,每次启动LINUX系统后都手工启动nfs服务器是不现实的,需要设置系统在指定的运行级别自动启动portmap和nfs服务。

# chkconfig --list portmap

# chkconfig --list nfs

设置portmap和nfs服务在系统运行级别3和5自动启动。

# chkconfig --level 35 portmap on

# chkconfig --level 35 nfs on

 

[root@exadatabackup dir01]# cat /etc/exports

#/dir01 *(rw,no_root_squash)

#/dir02 *(rw,no_root_squash)

/dir01 *(rw)

/dir02 *(rw)

 

[root@exadatabackup dir01]# exportsfs

-bash: exportsfs: command not found

[root@exadatabackup dir01]# exportfs

/dir01          <world>

/dir02          <world>

 

[root@exadatabackup dir01]# showmount -e

Export list for exadatabackup:

/dir02 *

/dir01 *

 

[root@exadatabackup dir01]# showmount -e

sExport list for exadatabackup:

/dir02 *

/dir01 *

 

[root@exadatabackup dir01]# showmount -a

All mount points on exadatabackup:

10.48.28.3:/dir01

10.48.28.9:/dir01

10.48.28.9:/dir02

 

客户端使用showmount命令查询NFS的共享状态

# showmount -e NFS_SERVER_IP

[root@exadatabackup dir01]# showmount -e 10.48.11.41

Export list for 10.48.11.41:

/dir02 *

/dir01 *

  

NFS有很多默认的参数,打开/var/lib/nfs/etab 查看分享出来的/home/david/ 完整权限设定值。

[root@exadatabackup dir01]# cat /var/lib/nfs/etab 

/dir01  *(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)

/dir02  *(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)

  

no_root_squash 是让root保持权限,root_squash 是把root映射成nobody,no_all_squash 不让所有用户保持在挂载目录中的权限。所以,root建立的文件所有者是nfsnobody。

 

关于权限的分析

1. 客户端连接时候,对普通用户的检查

  a. 如果明确设定了普通用户被压缩的身份,那么此时客户端用户的身份转换为指定用户;

 b. 如果NFS server上面有同名用户,那么此时客户端登录账户的身份转换为NFS server上面的同名用户;

 c. 如果没有明确指定,也没有同名用户,那么此时 用户身份被压缩成nfsnobody;

2. 客户端连接的时候,对root的检查

 a. 如果设置no_root_squash,那么此时root用户的身份被压缩为NFS server上面的root;

 b. 如果设置了all_squash、anonuid、anongid,此时root 身份被压缩为指定用户;

 c. 如果没有明确指定,此时root用户被压缩为nfsnobody;

 d. 如果同时指定no_root_squash与all_squash 用户将被压缩为 nfsnobody,如果设置了anonuid、anongid将被压缩到所指定的用户与组;

 

相关命令

1、exportfs

如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs 命令来使改动立刻生效,该命令格式如下:

 

# exportfs [-aruv]

  -a 全部挂载或卸载 /etc/exports中的内容 

  -r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab

  -u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)

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

 

具体例子: 

# exportfs -au 卸载所有共享目录

# exportfs -rv 重新共享所有目录并输出详细信息

 

2、nfsstat

查看NFS的运行状态,对于调整NFS的运行有很大帮助。

 

3、rpcinfo

查看rpc执行信息,可以用于检测rpc运行情况的工具,利用rpcinfo -p 可以查看出RPC开启的端口所提供的程序有哪些。

 

4、showmount

  -a 显示已经于客户端连接上的目录信息

  -e IP或者hostname 显示此IP地址分享出来的目录

 

5、netstat

可以查看出nfs服务开启的端口,其中nfs 开启的是2049,portmap 开启的是111,其余则是rpc开启的。

最后注意两点,虽然通过权限设置可以让普通用户访问,但是挂载的时候默认情况下只有root可以去挂载,普通用户可以执行sudo。

NFS server 关机的时候一点要确保NFS服务关闭,没有客户端处于连接状态!通过showmount -a 可以查看,如果有的话用kill killall pkill 来结束,(-9 强制结束)

 

故障实例

========

使用nfs挂载失败:

mount: 10.48.11.41:/home/test/distfiles failed, reason given by server: Permission denied

 

关闭防火墙再次mount,依旧如此。

 

查看服务器端/var/log/message记录发现

Aug  2 16:15:11 exadatabackup mountd[1106]: refused mount request from 10.48.28.9 for /dir01 (/dir01): unmatched host

服务器端的/etc/hosts里的主机名ip全部去掉,客户端再次mount,就可以了,但是再换一台客户端问题mount时同样错误又出现了。

 

经过反复实验,最终该问题解决汇总:

解决方式1、去掉/etc/hosts中的主机名ip

解决方式2、查看客户端挂载的目录不具备读写权限,添加权限即可。

解决方式3、服务器和客户机网段不同引起,修改ip地址,使其同网段即可。

用 192.168.0.0/16 替代 192.168.* 方式

----------------------------------------------------------------------------------------------------------------------

网上有人遇到和我同样的问题,其猜测是因为NFS会先把IP地址转成对应的主机名,然后用这个主机名去匹配/etc/exports文件,而该文件都是设置IP段的,当然就没有权限 mount。通过查阅资料和测试,证实了我的这个猜测。 另外才测试过程中,如果使用主机名或者全质量主机名(FQDN)来mount NFS 文件系统,会比单纯使用IP要快得多。因此,如果使用NFS服务的局域网内添加一个DNS服务,然后采用全质量主机名的方式来访问,应该效果会好得多。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章 Linux系统安装与环境介绍 5 1.1 Linux产生 5 1.2 Linux功能 5 1.3 Linux术语 5 1.4 Kernel 5 1.5 版本 5 1.6 安装RedHat Enterprise Linux ES 6 1.7 开关机操作 7 1.8 桌面环境简介 7 1.9 安装故障排除 7 1.10 安装逻辑卷 8 第二章 Linux设备管理和引导流程 9 2.1 Linux文本编辑器 9 2.2 Linux下安装配置网卡 12 2.2.1 Linux下支持的网络设备 12 2.2.2 以太网网卡 13 2.3 配置显卡 13 2.4 Linux下使用外设 13 2.4.1 文件系统类型、设备名、装载目录 14 2.5 Linux文件目录 15 2.5.1 文件名 15 2.5.2 路径 15 2.6 Linux引导流程 15 2.7 有关的配置文件 16 2.8 Linux Shell 简介 17 第三章 Linux 用户管理与磁盘管理 20 3.1用户和组 20 3.1.1 添加用户和组 20 3.1.2 与用户和组有关的重要文件 20 3.1.3 查封用户 21 3.2 权限管理 21 学习权限要掌握的基础 21 3.2.1 Linux中的访问权限 22 3.2.2 改变权限的命令 22 实例练习: 23 3.2.3 改变文件作者 26 3.3 Linux文件系统 26 3.4 Linux磁盘管理 26 第四章 远程登录和PAM 30 4.1 OpenSSH 30 4.1.1 OpenSSH的安装 30 4.1.2 OpenSSH服务器的配置 30 4.1.3 使用ssh命令登录SSH服务器 30 4.2 Telnet服务 31 4.3 插入式身份认证模块 32 第五章 SAMBA和NFS服务 33 5.1 SAMBA服务简介 33 5.2 配置方法 33 5.3 NFS服务配置方案 36 第六章 DHCP服务 38 6.1 DHCP服务简介 38 6.2 DHCP服务的原理 38 6.3 DHCP服务的配置 38 配置方案: 39 测试及管理方法: 39 第七章 域名系统 40 7.1 域名系统简介 40 7.2 配置文件 40 7.3 相关工具 40 7.4 安装DNS服务 40 7.5 DNS的配置 41 7.6 测试及管理办法 43 第八章 Apache和Vhost服务 44 8.1 Web服务器简介 44 8.2 安装和启动Adache 44 8.3 Apache的配置 44 1、查看编译配置参数 44 2、查看已经被编译的模块 44 3、Apache的配置文件 44 4、基本配置 44 5、分割配置任务 45 8.4 Vhost配置 45 1、DNS配置 45 第九章 邮件服务器和数据库服务器 49 9.1 SendMail 服务 49 9.2服务原理 49 9.3配置文件 49 9.4安装sendmail 50 9.5 配置方案 50 9.6 数据库服务器的安装和配置 52 一、所需软件: 52 二、安装和配置 52 三、测试 54 四、Server的启动与关闭 54 第十章 FTP服务器和Linux安全 55 10.1 FTP服务器简介 55 10.2 FTP运行原理 55 10.3 Linux下的FTP服务器 55 10.3.1安装并启动vsftpd 55 10.3.2 配置vsftpd 55 10.4 使用vsftp服务 56 10.4 Linux安全初步 56
数据来源:中经数据库 主要指标110多个(全部都是纯粹的 市辖区 指标),大致是: GDP GDP增速 第一产业增加值占GDP比重 第二产业增加值占GDP比重 第三产业增加值占GDP比重 人均GDP 社会消费品零售总额 固定资产投资(不含农户) 新设外商投资企业数_外商直接投资 实际利用外资金额(美元) 一般公共预算收入 一般公共预算支出 一般公共预算支出_教育 一般公共预算支出_科学技术 金融机构人民币各项存款余额_个人储蓄存款 金融机构人民币各项存款余额 金融机构人民币各项贷款余额 规模以上工业企业单位数 规模以上工业企业单位数_内资企业 规模以上工业企业单位数_港澳台商投资企业 规模以上工业企业单位数_外商投资企业 规模以上工业总产值 规模以上工业总产值_内资企业 规模以上工业总产值_港澳台商投资企业 规模以上工业总产值_外商投资企业 规模以上工业企业流动资产合计 规模以上工业企业固定资产合计 规模以上工业企业利润总额 规模以上工业企业应交增值税 规模以上工业企业主营业务税金及附加 户籍人口数 年均户籍人口数 户籍人口自然增长率 第一产业就业人员占全部城镇单位就业人员比重 第二产业就业人员占全部城镇单位就业人员比重 第三产业就业人员占全部城镇单位就业人员比重 城镇非私营单位就业人员数 城镇非私营单位就业人员数_第一产业 城镇非私营单位就业人员数_第二产业 城镇非私营单位就业人员数_第三产业 城镇非私营单位就业人员数_农、林、牧、渔业 城镇非私营单位就业人员数_采矿业 城镇非私营单位就业人员数_制造业 城镇非私营单位就业人员数_电力、热力、燃气及水生产和供应业 城镇非私营单位就业人员数_建筑业 城镇非私营单位就业人员数_批发和零售业 城镇非私营单位就业人员数_交通运输、仓储和邮政业 城镇非私营单位就业人员数_住宿和餐饮业 城镇非私营单位就业人员数_信息传输、软件和信息技术服务业 城镇非私营单位就业人员数_金融业 城镇非私营单位就业人员数_房地产业 城镇非私营单位就业人员数_租赁和商务服务业 城镇非私营单位就业人员数_科学研究和技术服务业 城镇非私营单位就业人员数_水利、环境和公共设施管理业 城镇非私营单位就业人员数_居民服务、修理和其他服务业 城镇非私营单位就业人员数_教育 城镇非私营单位就业人员数_卫生和社会工作 城镇非私营单位就业人员数_文化、体育和娱乐业 城镇非私营单位就业人员数_公共管理、社会保障和社会组织 城镇非私营单位在岗职工平均人数 城镇就业人员数_私营企业和个体 城镇非私营单位在岗职工工资总额 城镇非私营单位在岗职工平均工资 城镇登记失业人员数 建成区面积 建设用地面积 建设用地面积_居住用地 液化石油气供气总量 液化石油气供气总量_居民家庭 人工煤气、天然气供气总量 人工煤气、天然气供气总量_居民家庭 液化石油气用气人口 人工煤气、天然气用气人口 城市公共汽电车运营车辆数 城市出租汽车运营车辆数 城市公共汽电车客运总量 道路面积 排水管道长度 建成区绿化覆盖面积 建成区绿化覆盖率 绿地面积 公园绿地面积 维护建设资金支出 土地面积 生活用水供水量 供水总量 全社会用电量 城乡居民生活用电量 工业生产用电量 房地产开发投资 房地产开发投资_住宅 限额以上批发和零售业法人单位数 限额以上批发和零售业商品销售总额 普通中学学校数 中等职业教育学校数 普通小学学校数 普通高等学校专任教师数 普通中学专任教师数 中等职业教育专任教师数 普通小学专任教师数 普通高等学校在校生数 普通中学在校生数 中等职业教育在校生数 普通小学在校生数 电视节目综合人口覆盖率 公共图书馆总藏量_图书 医疗卫生机构数_医院和卫生院 卫生人员数_执业(助理)医师 医疗卫生机构床位数_医院和卫生院 城镇职工基本养老保险参保人数 职工基本医疗保险参保人数 失业保险参保人数
### 回答1: Hanewin NFS Server 1.2.5是一款适用于Windows系统的NFS服务器软件,可以在Windows系统上实现NFS文件分享服务,使得Linux、UNIX等操作系统可以直接访问共享文件夹或磁盘分区。这款软件基于NFSv3协议,支持读/写权限、文件锁定等功能,可以灵活地控制文件共享权限。同时,它还支持TCP/IP、UDP/IP等网络协议,保证了数据传输的流畅性和稳定性。而且,Hanewin NFS Server提供了Web管理界面,使得用户可以方便地管理共享文件夹和用户账户,可视化、简洁明了。不仅如此,这款软件还支持日志功能,记录了文件访问、锁定等操作,可用于故障排查以及安全审计等用途。 总括来讲,Hanewin NFS Server是一款功能强大,易于安装和配置NFS服务器软件。它使得Windows系统和Linux/UNIX等操作系统之间的数据共享变得更加容易,大大提高了数据共享的稳定性和效率,符合企业级使用的要求,是一款非常优秀的网络数据共享工具。 ### 回答2: Hanewin NFS Server 1.2.5 是一款用于 Windows 操作系统上的 NFS 服务器软件。它允许 Windows 主机和 Unix/Linux 主机之间实现文件共享。 在安装和配置过程中,Hanewin NFS Server 1.2.5 需要进行一些基本设置,比如指定共享目录、设置共享权限和进行用户认证等。它支持多种 NFS 协议版本,包括 NFSv2、NFSv3 和 NFSv4。同时还支持 TCP 和 UDP 两种网络传输协议。 Hanewin NFS Server 1.2.5 允许用户进行高级配置,例如启用文件锁定和对故障进行排除。此外,该软件还支持在 Windows 集群环境中使用,确保系统和数据的高可用性。 总的来说,Hanewin NFS Server 是一款可靠的 NFS 服务器软件,在跨平台文件共享和数据传输方面发挥重要作用。它易于安装和配置,并且提供许多高级功能,满足不同用户的需求。 ### 回答3: Hanewin NFS Server 1.2.5是一款Windows平台下的网络文件系统(NFS)服务器软件。它可以让用户在Windows操作系统下方便地进行NFS文件共享,并和其他操作系统进行互动,例如Linux、Unix等。Hanewin NFS Server 1.2.5是一款功能强大的软件,它支持TCP/IP协议,可以将本地文件系统映射到NFS客户端,还能够进行安全访问控制、文件锁定以及协同处理等操作。此外,Hanewin NFS Server 1.2.5也提供了一系列易于使用的管理界面,用户可以通过它对服务器进行控制和管理,例如添加、删除用户、设置用户权限等。总体来说,Hanewin NFS Server 1.2.5是一款好用的NFS服务器软件,它能够满足用户在Windows平台下进行NFS文件共享的需求,提升组织的工作效率和数据共享能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值