NFS服务搭建

    NFS是Network File System的简写(网络文件系统)。NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机,客户机远程访问存放在服务器上的数据。

1、软件

1.1 RPC 主程序:rpcbind

    port映射工作。

1.2 NFS 主程序:nfs-utils

    提供 rpc.nfsd 及 rpc.mountd 这两个 NFS daemons 与其他相关 documents 与说明文件、执行文件等的软件。


2、NFS的软件结构

主要配置文件:/etc/exports

参数值 内容说明
rw
ro
该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。
sync
async
sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘!
no_root_squash
root_squash
客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!默认值为root_squash。
all_squash 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦!
anonuid
anongid
anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。


3、配置NFS服务器端

配置NFS服务器

# /etc/init.d/rpcbind start

# /etc/init.d/nfs start

# /etc/init.d/nfslock start

# chkconfig rpcbind on

# chkconfig nfs on

# chkconfig nfslock on

查看rpcbind服务:

# netstat -tulnp|grep rpc

NFS服务搭建

说明:

(1)rpcbind 启动的 port 在 111 ,同时启动在 UDP 与 TCP;

(2)nfs 本身的服务启动在 port 2049 上;

(3)其他 rpc.* 服务启动的 port 则是随机产生的,因此需向 port 111 注册。


--RPC 服务的注册状况:

# rpcinfo -p localhost

   program vers proto   port  service

    100000    4   tcp    111  portmapper

    100000    3   tcp    111  portmapper

    100000    2   tcp    111  portmapper

    100000    4   udp    111  portmapper

    100000    3   udp    111  portmapper

    100000    2   udp    111  portmapper

    100024    1   udp  40292  status

    100024    1   tcp  12731  status

    100011    1   udp    875  rquotad

    100011    2   udp    875  rquotad

    100011    1   tcp    875  rquotad

    100011    2   tcp    875  rquotad

    100003    2   tcp   2049  nfs

    100003    3   tcp   2049  nfs

    100003    4   tcp   2049  nfs

    100227    2   tcp   2049  nfs_acl

    100227    3   tcp   2049  nfs_acl

    100003    2   udp   2049  nfs

    100003    3   udp   2049  nfs

    100003    4   udp   2049  nfs

    100227    2   udp   2049  nfs_acl

    100227    3   udp   2049  nfs_acl

    100021    1   udp  62943  nlockmgr

    100021    3   udp  62943  nlockmgr

    100021    4   udp  62943  nlockmgr

    100021    1   tcp  44053  nlockmgr

    100021    3   tcp  44053  nlockmgr

    100021    4   tcp  44053  nlockmgr

    100005    1   udp  54406  mountd

    100005    1   tcp  39433  mountd

    100005    2   udp  54406  mountd

    100005    2   tcp  39433  mountd

    100005    3   udp  54406  mountd

    100005    3   tcp  39433  mountd


--查看支持NFS版本:

# rpcinfo -t localhost  nfs

program 100003 version 2 ready and waiting

program 100003 version 3 ready and waiting

program 100003 version 4 ready and waiting


--查看NFS服务器共享:

# showmount -e localhost

Export list for localhost:

/ags/arcgis/server/usr 10.238.208.36


--NFS关于目录权限全部参数:

# cat /var/lib/nfs/etab

/ags/arcgis/server/usr10.238.208.36(rw,async,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534)

注意:anonuid=65534 对比/etc/passwd 后,会发现是nfsnobody。 如果有其他客户端挂载了你的 NFS 文件系统时,那么该客户端与文件系统信息就会被记录到 /var/lib/nfs/xtab 里头去的。

# grep 65534 /etc/passwd

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin


--重置NFS:

# exportfs [-aruv]

选项与参数:

-a :全部挂载(或卸除) /etc/exports 档案内的设定

-r :重新挂载 /etc/exports 里面的设定,此外,亦同步更新 /etc/exports

     及 /var/lib/nfs/xtab 的内容!

-u :卸除某一目录

-v :在 export 的时候,将分享的目录显示到屏幕上!

# 1. 重新挂载一次 /etc/exports 的设定

[root@www ~]# exportfs -arv

# 2. 将已经分享的 NFS 目录资源,通通都卸除

[root@www ~]# exportfs -auv

# 这时如果你再使用 showmount -e localhost 就会看不到任何资源了!


4、配置NFS客户端

# /etc/init.d/rpcbind start

--如果服务器端有启动 nfslock 的话,客户端也要启动才能生效

# /etc/init.d/nfslock start

--挂载

# mkdir -p /home/nfs/public

# mount -t nfs 192.168.100.254:/home/public  /home/nfs/public

--卸载

# umount /home/nfs/public


--查看挂在参数:

# mount | grep addr
192.168.100.254:/home/public on /home/nfs/public type nfs (rw,noexec,nosuid,
nodev,vers=4,addr=192.168.100.254,clientaddr=192.168.100.10)



     本文转自stock0991 51CTO博客,原文链接:http://blog.51cto.com/qing0991/1419412,如需转载请自行联系原作者










上一篇:oss php sdk+laravel搭建一个简单网站


下一篇:linux磁盘检查脚本