CentOS Linux上配置NFS网络文件系统以及客户端使用
NFS就是Network FileSystem的缩写,是基于RPC(Remote Procedure Call Protocol远程过程调用协议)实现。最早之前是由Sun公司开发出来的。主要功能就是可以通过网络,让不同的主机、不同的操作系统、可以彼此分享指定的文件。所以,也可以简单的将它看做是一个文件服务器!NFS 服务器可以让你的PC将NFS 服务器分享的目录,挂载到本地的机器中,在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分区一样,使用上面相当的便利!
NFS服务器端
安装NFS服务器非常之简单:
1
|
yum
install
nfs-utils protmap
|
这样就安装好了,其中nfs-utils是提供NFS服务器程序和相应的管理工具。protmap是一个管理RPC连接的程序。
NFS服务器一些配置文件和命令:
-
主配置文件:/etc/exports
-
NFS文件系统维护命令:/usr/sbin/exportfs
-
分享资源的登录档:/var/lib/nfs/*tab
-
客户端查询服务器分享资源的命令:/usr/sbin/showmount
主配置文件:/etc/exports
配置文件的格式为:[共享目录] [主机名或IP(参数,参数)]
共享目录:服务器上需要共享的目录路径;
主机名或IP:如果主机名或IP地址为空,则表示共享给所有客户机;
参数:NFS共享的常用参数如下:
-
ro:只读
-
rw:读写
-
sync:同步写入资料到内存与硬盘中
-
async:资料会先暂存于内存中,而非直接写入硬盘
-
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文件中匿名用户的UID
-
anongid=xxx:指定NFS服务器/etc/passwd文件中匿名用户的GID
当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:
[共享目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]
示例
1
2
3
|
cat
/etc/exports
/share
192.168.1.6(rw,no_root_squash) *(ro)
|
共享目录/share 允许192.168.1.6客户机读写并且root用户有管理权限。其他机器只有可读权限。
启动NFS相关服务:
1
2
3
4
5
|
service portmap start
service nfs start
chkconfig --level 35 nfs on
chkconfig --level 35 portmap on
|
如果修改了/etc/exports文件后不需要重新激活nfs,只要使用exportfs命令重新扫描一次/etc/exports文件,且重新将设定加载即可。
1
|
exportfs –arv
|
exportfs命令用法:
1
|
exportfs [-aruv]
|
参数说明如下:
-
-a:全部挂载(或卸载)/etc/exports文件内的设定。
-
-r:重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容。
-
-u:卸载某一目录。
-
-v:在export时将共享的目录显示在屏幕上。
确认NFS成功运行:
1
2
3
4
5
6
7
|
rpcinfo -p |
grep
nfs
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
|
NFS客户端
安装软件包
1
|
yum
install
nfs-utils protmap
|
启动必要服务
1
|
service portmap start
|
显示NFS服务器的共享目录
1
2
3
4
5
|
showmount -e 192.168.1.5
Export list
for
192.168.1.5:
/share
192.168.1.0
/24
/nishome
192.168.1.0
/24
|
创建本地目录并挂载远程共享目录
1
2
3
4
5
|
mkdir
/share
mkdir
/nishome
mount
-t nfs 192.168.1.5:
/sharee
/share
mount
-t nfs 192.168.1.5:
/nishome
/nishome
|
客户端查看挂载情况
1
2
3
4
5
6
7
8
9
10
11
12
13
|
mount
/dev/sda3
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/sda2
on
/data
type
ext3 (rw)
/dev/sda1
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)
192.168.1.5:
/nishome
on
/nishome
type
nfs (rw,addr=192.168.1.5)
192.168.1.5:
/share
on
/share
type
nfs (rw,addr=192.168.1.5)
|
或者
1
2
3
4
5
6
7
8
9
|
df
-h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3
9.7G 1.6G 7.7G 18% /
/dev/sda2
38G 177M 36G 1%
/data
/dev/sda1
190M 19M 163M 11%
/boot
tmpfs 59M 0 59M 0%
/dev/shm
192.168.1.5:
/nishome
9.7G 1.8G 7.4G 20%
/nishome
192.168.1.5:
/share
9.7G 1.8G 7.4G 20%
/share
|
客户端卸载NFS文件命令
1
2
|
umount
/share
umount
/nishome
|
客户机开机自动挂载
客户端可以设置系统启动时自动挂载NFS文件,需要将NFS的共享目录挂载信息写入/etc/fstab/文件,以实现对NFS共享目录的自动挂载。
编辑/etc/fstab文件:
1
|
vi
/etc/fstab
|
在最后加入如:
1
|
192.168.1.5:
/home/share
/share
nfs defaults 0 0
|
本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1614301 ,如需转载请自行联系原作者