ltib在嵌入式系统中来实现nfs服务器

来源:本站
导读:目前正在解读《ltib在嵌入式系统中来实现nfs服务器》的相关信息,《ltib在嵌入式系统中来实现nfs服务器》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《ltib在嵌入式系统中来实现nfs服务器》的详细说明。
简介:本文将介绍ltib在嵌入式系统中实现nfs服务器

NAS系统需要支持NFS协议,这时的NAS作为NFS的服务器,客户端通过NFS协议登录NAS来存取数据。

1.安装nfs-utils

nfs-utils是nfs服务器端的用户程序。

在LTIB当前目录下,使用下面命令进入LTIB配置界面。

$./ltib –configure

进入“package list”。选中nfs-utils

保存退出,LTIB会将nfs-utils编译并部署在文件系统的/usr/sbin下。

2.配置Linux内核

在LTIB当前目录下,使用下面命令进入LTIB配置界面。

$./ltib –configure

选中“[]Configure the kernel”选项。这样在LTIB配置过程中会进入Linux内核配置。在内核配置界面,

进入“File systems”,进入“Network File systems”,选中

<*> Provide NFSv3 server support选项;

<*> NFS server support选项;

<*> Provide NFS server over TCP support。

3.编写nfs启动脚本

启用nfs服务器的过程需要配置相关参数,再启动相关应用程序。通过编写一个nfs启动脚本,并将其添加到配置文件的启动列表中,实现系统开机自动启动nfs服务器。

/etc/rc.d/init.d/nfs代码:

--------------------------------------------------------------------------------------------------

#!/bin/sh

nfsd="/usr/sbin/rpc.nfsd"

mountd="/usr/sbin/rpc.mountd"

exportfs="/usr/sbin/exportfs"

portmap="/sbin/portmap"

# Number of servers to be started by default

[ -z "$RPCNFSDCOUNT" ] && RPCNFSDCOUNT=4

# Get the initial values for the input sock queues at the time of running the script.

if [ "$TUNE_QUEUE" = "yes" ]; then

RMEM_DEFAULT=`/sbin/sysctl -n net.core.rmem_default`

RMEM_MAX=`/sbin/sysctl -n net.core.rmem_max`

# 256kb recommended minimum size based on SPECsfs NFS benchmarks

[ -z "$NFS_QS" ] && NFS_QS=262144

fi

case "$1" in

start)

$portmap

# Start daemons.

# Apply input queue increase for nfs server

if [ "$TUNE_QUEUE" = "yes" ]; then

/sbin/sysctl -w net.core.rmem_default=$NFSD_QS >/dev/null 2>&1

/sbin/sysctl -w net.core.rmem_max=$NFSD_QS >/dev/null 2>&1

fi

echo "Starting NFS services"

$exportfs -r

echo -n "Starting NFS daemon: "

$nfsd $RPCNFSDCOUNT

echo

[ -n "$MOUNTD_PORT" ]

&& RPCMOUNTDOPTS="$RPCMOUNTDOPTS -p $MOUNTD_PORT"

echo -n "Starting NFS mountd: "

$mountd $RPCMOUNTDOPTS

echo

touch /var/lock/nfs

# reset input queue for rest of network services

if [ "$TUNE_QUEUE" = "yes" ]; then

/sbin/sysctl -w net.core.rmem_default=$RMEM_DEFAULT >/dev/null 2>&1

/sbin/sysctl -w net.core.rmem_max=$RMEM_MAX >/dev/null 2>&1

fi

;;

stop)

# Stop daemons.

echo -n "Shutting down NFS mountd: "

killall -9 rpc.mountd

echo

echo -n "Shutting down NFS daemon: "

killall -9 nfsd

echo

# Do it the last so that clients can still access the server

# when the server is running.

echo -n "Shutting down NFS services: "

$exportfs -au

rm -f /var/lock/nfs

killall portmap

;;

restart)

$0 stop

$0 start

;;

reload)

$exportfs -r

touch /var/lock/nfs

;;

*)

echo "Usage: nfs {start|stop|restart|reload}"

exit 1

esac

exit 0

--------------------------------------------------------------------------------------------------

打开LTIB当前目录的下的config/userspace/sysconfig.lkc文件,添加如下代码。

config SYSCFG_START_NFSD

depends PKG_PORTMAP && PKG_NFS_UTILS

bool "start nfs server"

default y

help

Before enabling the NFS server, please check /etc/exports

这样在LTIB配置界面下的Target System Configuration Option选项里就添加了开机启动nfs服务器的选项。

打开LTIB当前目录下的dist/lfs-5.1/sysconfig/sysconfig.spec 文件,添加SYSCFG_START_NFSD 宏的定义。

if [ "$SYSCFG_START_NFSD" = "y" ]

then

nfs=nfs

fi

打开LTIB当前目录的下的config/platform/mpc837xerdb/merge/etc/rc.d/rc.conf文件,做如下修改:

在all_services= line末尾添加“nfs”;

在all_services_r= line起始添加“nfs”

在cfg_services and cfg_services_r.添加“$nfs”

手动启动或停止nfs服务器的命令分别是:

# ./etc/rc.d/init.d/nfs start

# ./etc/rc.d/init.d/nfs stop

4.nfs配置文件

nfs的配置文件是/etc/exports,在该配置文件中添加如下代码:

/sharec *(rw,root_squash)

/mnt/md/public 192.168.1.1/192.168.1.255(rw,root_squash)

说明:该配置文件有三列。第一列是nfs服务器开放的本地的共享文件夹路径;第二列是指nfs客户端地址(*表示任意地址,192.168.1.1/192.168.1.255表示该网段地址);第三列是访问属性。

5.使用nfs

在Linux下使用nfs协议挂载nfs服务器上的共享文件夹。首先,建立挂载目录

#mkdir /mnt/nfs

然后,挂载

#mount –t nfs –o tcp 192.168.1.102:/share /mnt/nfs

其中

mount 挂载命令

–t nfs 挂载文件系统类型为nfs

–o tcp 使用基于tcp协议的nfs(或–o udp 使用基于udp协议的nfs)

192.168.1.102:/share nfs服务器IP地址和共享文件夹路径

/mnt/nfs 挂载目录

挂载完成后,可以使用dd命令写入和读出一个文件进行nfs访问测试。

写入:

[root@fedora8 nfs]# dd if=/dev/zero of=1GB_20100412 bs=10M count=100

100+0 records in

100+0 records out

1048576000 bytes (1.0 GB) copied, 92.1231 s, 11.4 MB/s

读取:

[root@fedora8 nfs]# dd if=1GB_20100412_tcp_bs1M of=/dev/null bs=1M count=1000

1000+0 records in

1000+0 records out

1048576000 bytes (1.0 GB) copied, 105.538 s, 9.9 MB/s

卸载nfs的命令是:

#umount /mnt/nfs

提醒:《ltib在嵌入式系统中来实现nfs服务器》最后刷新时间 2024-03-14 01:13:38,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《ltib在嵌入式系统中来实现nfs服务器》该内容的真实性请自行鉴别。