CentOS下NFS服务器配置
- 格式:docx
- 大小:19.31 KB
- 文档页数:8
NFS服务器+客户端配置NFS:Network File System使⽤NFS需要启⽤RPC(remoteprocedure call),RPC可以指定每个NFS功能所对应的端⼝号,重启RPC后,RPC所管理的所有NFS功能服务都需重新向RPC注册。
设置NFS需要安装nfs-utils和portmap程序,使⽤rpm –q可以查看是否安装。
nfs-utils:提供rpc.nfsd和rpc.mountd两个daemon与其他document说明⽂件。
rpc.nfsd:管理client是否能够登⼊主机,及对登⼊者ID的辨别。
rpc.mountd:管理NFS⽂件系统,读取/etc/exports对⽐client取得相应的权限。
portmap:端⼝映射;在启动rpc之前做好端⼝映射⼯作。
NFS的配置⽂件:/etc/exports:NFS配置⽂件/var/lib/nfs/*tab:NFS服务器⽇志放置路径;etab记录共享出来的⽬录完整权限设置值;xtab记录曾经连接到此NFS主机的相关客户端数据NFS的两个命令:/usr/sbin/exportfs:维护NFS共享资源;重新共享/etc/exports变更⽬录或将NFS server共享⽬录卸载或重新共享/usr/sbin/showmount:在客户端查看NFS服务器共享出来的⽬录资源/etc/exports配置⽂件/etc/exports配置⽂件说明格式:<输出⽬录> [ 客户端1 选项(访问权限,⽤户映射,其他)] [客户端2 选项(访问权限,⽤户映射,其他)]共享⽬录必须使⽤绝对路径,权限部分依照不同的权限共享给不同的主机,括号内是设置权限参数的位置,权限不⽌⼀个时,使⽤ , 隔开,主机名和括号连在⼀起。
主机名设置可以使⽤⽹段:192.168.1.0/24或完整IP:192.168.1.23;也可以使⽤主机名称,但此主机名称需要存在于/etc/hosts中或使⽤DNS可以找到,找到IP即可,主机名⽀持通配符,如*?/mnt/sda4/share/images 192.168.23.129(rw)# 设置共享⽬录/mnt/sda4/share/images,仅192.168.23.129主机允许访问此共享⽬录,具有读写权限/mnt/sda4/share/data 192.168.23.129(rw) *(ro)# 设置共享⽬录/mnt/sda4/share/data,192.168.23.129可以读写该共享⽬录,其他主机只可以读取该共享⽬录/mnt/sda4/share/icon 192.168.23.129(no_root_squash)# 设置共享⽬录/mnt/sda4/share/icon,仅192.168.23.129可以访问和读写,root登录时拥有root权限/mnt/sda4/share/ds 192.168.23.0/24(rw)# 设置共享⽬录/mnt/sda4/share/ds,仅有192.168.23.0/24⽹段的主机才可访问和读写此⽬录⽂件/mnt/sda4/share/diaos *(rw,all_squash,anonuid=500,anongid=500)# 设置共享⽬录/mnt/sda4/share/diaos,所有主机都允许访问此共享⽬录,具有读写权限,但他们访问该共享⽬录时,已将其UID、GID设置成500。
自编centos7下搭建nfs服务器与连接详解1,安装Contos 7,具体请详见安装说明。
2,更新操作系统,用命令:yum update3,安装:wget 命令,可供从网上下载相应的软件包。
4,正式搭建NFS服务器例如下:服务器IP :192.168.145.128客户机IP:192.168.145.130一、服务器端执行:yum -y install nfs-utils下载安装NFS所需要的文件。
因为centos7自带了rpcbind,所以不用安装rpc服务,rpc监听在111端口,可以使用。
ss -tnulp | grep 111查看rpc服务是否自动启动,启动后如下。
如果没有启动,就systemctl start rpcbind 启动rpc服务。
rpc在nfs服务器搭建过程中至关重要,因为rpc能够获得nfs服务器端的端口号等信息,nfs服务器端通过rpc获得这些信息后才能连接nfs服务器端。
使用rpm -qa nfs-utils 查看是否安装成功启动成功提示如下:在服务器端新建NFS的服务目录,命令如下:Mkdir /etc/nfc编辑VI /etc/exports ,添加以下内容在个配置文件中加入如下命令/etc/nfs 192.168.145.128/24(rw,sync,no_root_squash)按i键编辑,输入完成后,按ESC键,退出编辑,按Shift+q键到命令行处输入w保存,按q键退出VI编辑器(w和q必需是小写字母大写非法不认识呵呵)。
启动nfs服务,systemctl start nfs ,启动后使用rpcinfo -p 192.168.145.128 查看,如图所示使用showmount -e localhost 查看共享的目录,如下图。
一般用此方法:服务器端需要关闭防火墙,命令如下:systemctl stop firewalld或是开启防火墙的111端口。
如果开启了iptables的话,也是一样的,iptables的策略里也默认不会为nfs服务开启需要的端口systemctl stop iptables在防火墙上开启端口在设置了防火墙的环境中使用NFS,需要在防火墙上打开如下端口:1. portmap 端口111 udp/tcp;2. nfsd 端口2049 udp/tcp;3. mountd 端口"xxx" udp/tcp系统RPC服务在nfs服务启动时默认会为mountd动态选取一个随机端口(32768--65535)来进行通讯,我们可以通过编辑/etc/services 文件为mountd指定一个固定端口:# vim /etc/services在末尾添加mountd 1011/udpmountd 1011/tcpwq退出保存该文件# stopsrc -s rpc.mountd# startsrc -s rpc.mountd# exportfs -a# rpcinfo -p Hostname现在我们会发现mountd已经和端口1011绑定了。
NFS的防火墙配置(针对centos)1、NFS 用到的服务有portmapper,nfs,rquotad,nlockmgr,mountd通过命令rpcinfo -p 可查看nfs使用的端口:其中portmapper,nfs 服务端口是固定的分别是111和2049;另外rquotad,nlockmgr,mountd 服务端口是随机的。
由于端口是随机的,这导致防火墙无法设置。
2、这时需要配置/etc/sysconfig/nfs 使rquotad,nlockmgr,mountd 的端口固定。
找到以下几项,将前面的#号去掉。
RQUOTAD_PORT=875LOCKD_TCPPORT=32803LOCKD_UDPPORT=32769MOUNTD_PORT=892service nfs restart3、再次4、设置使rquotad,nlockmgr,mountd 的端口固定。
vim /etc/services,在文件的最后一行添加:这几行内容。
保存并退出。
5、重启下nfs服务。
service nfs restart6、在防火墙中开放这5个端口编辑iptables配置文件vim /etc/sysconfig/iptables添加如下行:-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 875-j ACCEPT-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 2049 -j ACCEPT-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 892-j ACCEPT-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT保存退出并重启iptablesservice iptables restart7、可以挂载了。
nfs 参数NFS(Network File System)是一种分布式文件系统,可以让多个计算机通过网络共享文件。
在使用NFS时,需要设置一些参数来控制其行为和性能。
本文将详细介绍NFS参数的含义和设置方法。
一、NFS参数概述在Linux系统中,NFS参数主要包括以下几个方面:1. NFS服务端参数:这些参数用于控制NFS服务器的行为,例如共享目录、权限等。
2. NFS客户端参数:这些参数用于控制NFS客户端的行为,例如挂载远程目录、缓存大小等。
3. RPC(Remote Procedure Call)参数:这些参数用于控制RPC通信的行为,例如超时时间、连接数等。
4. TCP(Transmission Control Protocol)参数:这些参数用于控制TCP通信的行为,例如缓存大小、拥塞控制等。
5. UDP(User Datagram Protocol)参数:这些参数用于控制UDP 通信的行为,例如超时时间、最大传输单元等。
二、NFS服务端参数1. exportsexports文件是NFS服务器配置文件中最重要的部分之一。
它包含了所有需要共享给客户端的目录及其相关信息。
每个条目都由以下几个字段组成:<export-path> <client-options>其中,<export-path>表示需要共享的目录路径;<client-options>表示客户端可以使用的选项,例如权限、读写方式等。
例如:/home/user1 192.168.0.0/24(rw,all_squash)这个条目表示将/home/user1目录共享给192.168.0.0/24网段的客户端,并且允许读写操作,同时将所有客户端的UID和GID映射到匿名用户。
2. no_subtree_checkno_subtree_check参数用于控制NFS服务器是否检查共享目录的子目录。
NFS参数配置详细说明1、NFS概述NFS:Network file system,网络文件系统;由sun公司1984年推出,用来在网络中的多台计算机间实现资源共享(包括象文件或cd-rom);设计的目的是:实现在不同系统间交互使用,所以它的通信协议采用与主机和操作系统无关的技术;NFS Server可以看作是File Server,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档案MOUNT到自己的系统中,在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样;NFS协议从诞生到现在有多个版本:NFS V2(rfc1094),NFS V3(rfc1813)(最新的版本是V4(rfc3010);如何查看nfs当前的版本:rpm -qi portmaprpm -qi nfs-utilsNFS服务器的安装:可以由多种安装方法:----在安装linux系统时选择安装nfs服务对应的组件;(多数linux发行版本默认安装)----安装nfs的rpm套件包(手动安装)rpm -ivh rpm包需要5个RPM包。
setup-*:共享NFS目录在/etc/exports中定义(linux默认都安装)initscripts-*:包括引导过程中装载网络目录的基本脚本(linux默认都安装)nfs-utils-*:包括基本的NFS命令与监控程序portmap-*:支持安全NFS RPC服务的连接quota-*:网络上共享的目录配额,包括rpc.rquotad (这个包不是必须的)----也可以去下载nfs的源代码包,进行编译安装;RPC(Remote Procedure call) NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。
而这些传输协议用到这个RPC功能的。
可以说NFS本身就是使用RPC的一个程序。
或者说NFS也是一个RPC SERVER.所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。
第五章NFS服务器的配置与使用NFS(Network Files system)是网络文件系统,它能够在不同的Linux/UNIX系统上使用,以达到文件的共享。
本章将介绍有关网络文件系统NFS的知识。
本章目标:学习完本章你将能够¾理解NFS的作用及工作原理¾配置NFS服务器¾使用NFS1.NFS简介什么是NFS呢?它是Network File system的缩写,即网络文件系统。
NFS是由SUN公司开发,并于1984年推出的一个RPC服务系统,它使我们能够达到文件的共享,在不同的系统间使用,所以它的通信协议设计与主机及操作系统无关。
当用户想使用远程文件时只要用“mount”命令就可把远程文件系统挂接在自己的文件系统之下,使远程的文件与使用本地计算机上的文件一样。
例如在计算机A上,要把计算机B上的/usr/man挂接到A的/usr/man只需执行如下命令即可:mount B:/usr/man /usr/man用户不但可以mount(挂接)目录,而且可以挂接一个文件。
在挂接之后用户只能对文件做读取(或者写入)的操作,而不能在远程计算机上把此文件或目录移动或删除,但是如果挂接 /usr/man后,则不能再挂接 /usr/man底下的目录,否则会发生错误。
NFS就是一种促使servers(服务器)上的文件能被其他的计算机挂接而达到资源共享的网络文件系统,使用这些文件的计算机就可称为Client(客户机),一个客户机可以从服务器上挂接一个文件或者一个层次的目录。
然而,事实上任何一台计算机都可以是NFS服务器或NFS客户机,甚至同时为NFS 服务器和NFS客户机。
NFS服务器所共享出来的文件或目录都记录在/etc/exports文件中,当启动NFS 服务器时,脚本/etc/rc.d/rc会自动启动exportfs程序,搜索/etc/exports这一个文件是否存在,并且赋予正确的权限给所有共享出去的文件或目录。
网络文件系统(NFS)一、NFS简介1、NFS就是Network File System的缩写,它的最大功能就是可以通过网络让不同的机器,不同的操作系统彼此共享文件(share files)——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看作一个文件服务器(File Server)。
注意:一般而言,使用NFS服务能够方便地使各unix-like系统之间实现共享,但如果需要在unix-like和windows系统之间共享,那就得使用samba了。
2、NFS是通过网络进行数据传输,那么NFS使用哪些端口呢,答案是……不知道,因为NFS传输数据时使用的端口是随机的,唯一的限制就是小于1024,客户端怎么知道服务器使用的是哪个端口,此时就要用到远程过程调用RPC。
其实,NFS运行在SUN的RPC(Remote Procedure Call,远程过程调用)基础上,RPC 定义了一种与系统无关的方法来实现进程间通信,由此,NFS Server也可以看作是RPC Server。
正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap设定。
比如:某个NFS Client发起NFS服务请求时,它需要先得到一个端口(port),所以它先通过portmap得到port number(不仅是NFS,所有的RPC服务程序启动之前,都需要先设定好portmap)。
注意:在启动RPC服务(比如NFS)之前,需要先启动portmap服务。
3、NFS允许系统将其目录和文件共享给网络上的其他系统。
通过NFS,用户和应用程序可以访问远程系统上的文件,就像它们是本地文件一样。
那么NFS最值得注意的优点有:(1)本地工作站可以使用更少的磁盘空间,因为常用数据可以被保存在一台机器上,并让网络上的其他机器可以访问它。
(2)不需要为用户在每台网络机器上放一个用户目录,因为用户目录可以在NFS服务器上设置并使其在整个网络上可用。
CentOS下NFS服务器配置#####################################NFS_Configuration#Author:楚霏#Date: 2010-4-20#Update:2010-4-26#Env: Centos 5.4 x86_64####################################二、环境介绍####################################两台机器全是Centos 5.4 x86_64服务端IP=10.0.0.52客户端IP=10.0.0.166####################################三、配置服务端#####################################因为默认已经安装portmap,nfs-utils-lib和nfs-utils,所以直接配置即可#创建要共享的目录mkdir /nfsdata#nfs的主配置文件是/etc/exportsvi /etc/exports#—————————-引用文字-开始—————————-#加入/nfsdata 10.0.0.0/24(rw,root_squash,no_all_squash,sync) #—————————-引用文字-结束—————————-#保存设置exportfs -r#配置文件每行分为段:#第一段为共享的目录,使用绝对路径#第二段为客户端地址及权限:地址可以使用完整IP或网段,例如10.0.0.8或10.0.0.0/24,10.0.0.0/255.255.255.0当然也可以地址可以使用主机名,DNS解析的和本地/etc/hosts解析的都行,支持通配符,例如:*权限有:rw:read-write,可读写;ro:read-only,只读;sync:文件同时写入硬盘和内存;async:文件暂存于内存,而不是直接写入内存;no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。
显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;anongid:匿名用户的GID值。
####################################下面是一些NFS共享的常用参数:ro 只读访问rw 读写访问sync 所有数据在请求时写入共享async NFS在写入数据前可以相应请求secure NFS通过1024以下的安全TCP/IP端口发送insecure NFS通过1024以上的端口发送wdelay 如果多个用户要写入NFS目录,则归组写入(默认)no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录no_hide 共享NFS目录的子目录subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)no_subtree_check 和上面相对,不检查父目录权限all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)no_root_squash root用户具有根目录的完全管理访问权限anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UIDanongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID四、启动、测试#####################################先启动所依赖的postmapserviceportmap startservicenfs start#本地测试showmount -e 10.0.0.52#—————————-输出文字-开始—————————-Export list for 10.0.0.52:/nfsdata 10.0.0.0/24#—————————-输出文字-结束—————————-#创建挂载点mkdir /mnt/nfsdata#挂载mount -t nfs 10.0.0.52:/nfsdata /root/nfsdata#检查mount#—————————-输出文字-开始—————————-/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)/dev/hda1 on /boot type ext3 (rw)tmpfs on /dev/shm type tmpfs (rw)none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)nfsd on /proc/fs/nfsd type nfsd (rw)10.0.0.52:/nfsdata on /root/nfsdata type nfs (rw,addr=10.0.0.52) #—————————-输出文字-结束—————————-#写文件进行测试echo“This is a test”>> /nfsdata/test#检查一下cat /root/nfsdata/test#客户端测试#步骤相似serviceportmap startservicenfs startshowmount -e 10.0.0.52mount -t nfs 10.0.0.52:/nfsdata /root/nfsdata#检查mount#—————————-输出文字-开始—————————-/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)/dev/hda1 on /boot type ext3 (rw)tmpfs on /dev/shm type tmpfs (rw)none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)nfsd on /proc/fs/nfsd type nfsd (rw)10.0.0.52:/nfsdata on /root/nfsdata type nfs (rw,addr=10.0.0.52) #—————————-输出文字-结束—————————-#读写一下检查检查cat /root/nfsdata/testvi /root/nfsdata/test#注意:#如果需要开机挂载的话别忘了在/etc/fstab中加入#—————————-引用文字-开始—————————-/root/nfsdata 10.0.0.52:/nfsdata#—————————-引用文字-结束—————————-####################################五、常见错误####################################错误一:Cannot register service: RPCservicenfs restart#—————————-输出文字-开始—————————-Shutting down NFS mountd: [ OK ]Shutting down NFS daemon: [ OK ]Shutting down NFS quotas: [ OK ]Shutting down NFS services: [ OK ]Starting NFS services: [ OK ]Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refusedrpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).[FAILED]#—————————-输出文字-结束—————————-#解决方法:serviceportmap start#先启动portmap才行错误二:Address already in usetail -f /var/log/message#—————————-输出文字-开始—————————-Apr 10 13:43:27 bogonnfsd[15918]: nfssvc: Setting version failed: errno 16 (Device or resource busy)Apr 10 13:43:27 bogonnfsd[15918]: nfssvc: unable to bind UPD socket: errno 98 (Address already in use)Apr 10 13:45:27 bogonnfsd[15978]: nfssvc: Setting version failed: errno 16 (Device or resource busy)Apr 10 13:45:27 bogonnfsd[15978]: nfssvc: unable to bind UPD socket: errno 98 (Address already in use)Apr 10 13:49:05 bogonnfsd[16080]: nfssvc: Setting version failed: errno 16 (Device or resource busy)#—————————-输出文字-结束—————————-#解决方法:ps aux | grepnfs#然后用kill干掉这些进程错误三:mount: 10.0.0.52:/nfsdata failed, reason given by server: Permission denied#解决方法:a.把该客户端的ip加入服务端的/etc/exportsb.服务端的和客户端规则要统一,要么都使用主机名(注意每台机器的hosts文件),要么都使用IP错误四:客户端挂载超时tail -f /var/log/message#—————————-输出文字-开始—————————-Apr 10 14:42:35 localhost kernel: portmap: server localhost not responding, timed out Apr 10 14:42:35 localhost kernel: RPC: failed to contact portmap (errno -5).Apr 10 14:42:46 localhost kernel: RPC: failed to contact portmap (errno -512).Apr 10 14:42:46 localhost kernel: lockd_up: makesock failed, error=-512Apr 10 14:42:46 localhost kernel: RPC: failed to contact portmap (errno -512).#—————————-输出文字-结束—————————-#解决方法:serviceportmap restartservicenfs restart错误五:Error: RPC MTAB does not exist.servicenfs start#—————————-引用文字-开始—————————-Starting NFS services: [ OK ]Starting NFS quotas: [ OK ]Starting NFS daemon: [ OK ]Starting NFS mountd: [ OK ]Starting RPC idmapd: Error: RPC MTAB does not exist.#—————————-引用文字-结束—————————-#解决方法:#手动执行mount -t rpc_pipefssunrpc /var/lib/nfs/rpc_pipefs/#需要时加入开机启动时,加入下面两行到/etc/fstab #—————————-引用文字-开始—————————-rpc_pipefs /var/lib/nfs/rpc_pipefsrpc_pipefs defaults 0 0 nfsd /proc/fs/nfsdnfsd defaults 0 0 #—————————-引用文字-结束—————————-####################################。