嵌入式Linux之NFS配置

NFS(Network File System)

1、NFS介绍

NFS(网络文件系统)是Sun公司开发的分布式文件系统,由提供NFS服务的NFS Server端和使用NFS服务的NFS Client端组成,NFS使用RPC(Remote Procedure Call)协议进行数据传输。RPC服务是NFS服务的基础。

在Linux系统中,实现RPC服务的组件是rpcbind组件(前身为portmap),rpcbind负责管理NFS服务和端口映射。

通过实现NFS服务,NFS Client可以在本地文件系统的NFS挂载点对远程主机的文件系统进行直接读写操作。

2、NFS配置

2.1、Linux内核NFS配置
首先必须配置Linux内核支持NFS服务,即使能CONFIG_EXPORTFS和CONFIG_NFS_FS配置选项

 
2.2、根文件系统集成nfs-utils和rpcbind服务组件
实际项目开发中使用buildroot搭建根文件系统,在buildroot配置选项中选中nfs-utils和rpcbind
 
nfs-utils组件提供了以下两个服务:
1)rpc.nfsd用于管理Client使用Server共享目录的权限,包括对Client的IP的判断;
2)rpc.mountd用于管理NFS的文件系统。

2.3、mount命令支持NFS文件系统
如果mount命令为busybox提供,使能busybox配置选项的FEATURE_MOUNT_NFS选项
2.4、NFS Server配置
首先配置/etc/exports文件,该配置文件提供给exportfs命令使用,主要是用来配置NFS共享目录及其属性。
/mnt/share 192.168.100.2(insecure,rw,sync,fsid=0,no_subtree_check,no_root_squash)
其中/mnt/share为共享目录路径,192.168.100.2为NFS Client端的IP地址,其他的为配置参数。
其次,在系统启动脚本中执行以下命令:
            exportfs –arv    //根据/etc/exports配置文件更新共享目录列表
            rpc.mountd -p 52400  //指定rpc服务数据报文端口号(rpc有两个端口号,管理报文端口号2049是固定的,数据报文端口号如果不指定就是随机分配的)
            rpc.statd --no-notify  //该守护进程用于监听其他主机的重启消息,并管理本地主机重启时需要通知的主机列表。
            sm-notify     //在本地系统重启时通知NFS对端
 
2.5、NFS Client配置
 在系统启动脚本中执行以下命令挂载NFS Server共享目录
        sm-notify
        rpc.statd
        mount -t nfs 192.168.100.1:/mnt/share /mnt/share -o nfsvers=3 –v
其中,192.168.100.1:/mnt/nor为NFS Server的IP和共享目录路径,/mnt/share为挂载点。
 
至此,完成NFS配置过程。

猜你喜欢

转载自www.cnblogs.com/justin-y-lin/p/10836721.html