NFS 是 Network File System 的简写,即网络文件系统。
网络文件系统是 Linux 支持的文件系统中的一种,也被称为NFS。NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
下面来介绍一下 NFS 的配置。
假设有2台 Linux 服务器,IP地址分别为 192.168.0.1 和 192.168.0.2,我们希望将 192.168.0.1 作为 Server 端,把其 /home/public 目录共享给作为客户端的 192.168.0.2,方法如下:
Server端(IP地址:192.168.0.1)
vi /etc/exports
编辑/etc/exports文件,并添加下面一行命令:
/home/public 192.168.0.2(rw,sync,root_squash,anonuid=508,anongid=508)
Client端(IP地址:192.168.0.2)
showmount -e 192.168.0.1 //查看Server端上共享的目录
#showmout命令对于NFS的操作和查错有很大的帮助,所以我们先来看一下showmount的用法 showmout
#-a :这个参数是一般在NFS SERVER上使用,是用来显示已经mount上本机nfs目录的cline机器。
#-e :显示指定的NFS SERVER上export出来的目录。
mkdir -p /home/nfs/public
mount -t nfs 192.168.0.1:/home/public /home/nfs/public //将Server端的共享目录挂载到本地路径
例如:
showmount -e 172.16.81.219
Export list for localhost:
/tmp *
/home/public (everyone)
/home/test 172.16.81.220
挂载/var/nfs目录(本地挂载点为/mnt/nfs)
mount -t nfs 172.16.81.219:/var/nfs /mnt/nfs
成功mount以后,即可同本地目录一样随意操作;
mount nfs的还有其它可选参数,例如:
mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 10.10.5.190:/data/oraclebak /app/backup/
上面这种mount方式适合oracle10g对数据文件或备份集的访问。
mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 tibems01:/data/test /data/test
mount -t nfs hndc01:/bak/nfs /bak/nfs
mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 hndc01:/bak/nfs /bak/nfs
mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 hndc01:/bak/upload /bak/aaa
前段时间在广州使用expdp导出到nfs文件系统上,发现只能用下面方式挂载后才正常:
mount -t nfs -o hard,bg,proto=tcp,vers=3,suid,rsize=32768,wsize=32768,intr,noac,timeo=600,nolock 192.168.3.1:/bak/cpdds1 /bak/cpdds1
mount -t nfs -o hard,bg,proto=tcp,vers=3,suid,rsize=32768,wsize=32768,intr,noac,timeo=600,nolock 192.168.3.1:/bak/cpdds2 /bak/cpdds2
mount -t nfs -o hard,bg,proto=tcp,vers=3,suid,rsize=32768,wsize=32768,intr,noac,timeo=600,nolock 192.168.3.1:/bak/cpdds3 /bak/cpdds3
下面来介绍一下Server端配置参数的含义:
ro:该主机对该共享目录有只读权限
rw:该主机对该共享目录有读写权限
root_squash:客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
no_root_squash:客户机用root访问该共享文件夹时,不映射root用户
all_squash:客户机上的任何用户访问该共享目录时都映射成匿名用户
anonuid:将客户机上的用户映射成指定的本地用户ID的用户
anongid:将客户机上的用户映射成属于指定的本地用户组ID
sync:资料同步写入到内存与硬盘中
async:资料会先暂存于内存中,而非直接写入硬盘