`
whotodo
  • 浏览: 168616 次
文章分类
社区版块
存档分类
最新评论

Linux挂载网络文件夹(简单NFS配置)

 
阅读更多
###########################################
###挂载网络文件夹###
###########################################

NFS说明
=======
NFS是Net File System的简写,即网络文件系统.
NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。


使用NFS的原因
=============
由于要在公司内部配置YUM,而且准备用Apache发布,能通过Http访问。A服务器上有http服务,但是空间不足。B服务器上有足够空间。A、B均为Linux
所以准备通过NFS,将B上的/yum挂载到A的/mnt/yum中。
假设A IP:192.168.0.100
假设B IP:192.168.0.200


NFS使用概括
===========
服务器端要求://在上面的例子中B为服务器端
portmap 启动# service portmap start
nfs 启动# service nfs start

客户端要求://在上面的例子中A为服务器端
portmap 启动# service portmap start

在A上执行挂载命令:
# mount -t nfs 192.168.0.200:/yum /mnt/yum(注意主机后的冒号)

具体NFS Server 配置
===================
1.安装软件
包含的软件包:
NFS需要5个RPM,分别是:
setup-*:    共享NFS目录在/etc/exports中定义
initscripts-*: 包括引导过程中装载网络目录的基本脚本
nfs-utils-*:  包括基本的NFS命令与监控程序
portmap-*:   支持安全NFS RPC服务的连接
quota-*:    网络上共享的目录配额,包括rpc.rquotad (这个包不是必须的)
//检查系统是否安装好所需的套件
# rpm -qa | nfs
# rpm -qa | portmap
//启动nfs服务前必须启动portmap服务
nfs-utils包括rpc.nfsd和rpc.mountd
如果以上软件都安装了,下面就可以开始配置了.

2.Server 端配置

NFS 启动需要的服务:
rpc.nfsd: 管理Client是否能够登陆主机的权限,还包括登陆者的ID判别
rpc.mountd:管理NFS的文件系统,当client端通过rpc.nfsd登陆主机后
rpc.rquotad:磁盘配额管理

# vi /etc/exports

//编辑此文件增加NFS的共享内容,如果没有该文件则增加.
exports主要参数:
rw:可读写权限
ro:只读权限
no_root_squash:对于登陆NFS主机的共享目录用户如果是root的话则对该目录具有root权限。这样做极
不安全,建议不用为好!
root_squash:对于登陆NFS主机的共享目录用户使用者如果是root则它的权限将被压缩成匿名使用者,同
时它的UID和GID都会变成nobody那个系统账号的身份。
all_squash:不管登陆NFS主机用户身份如何,它的身份都会被压缩成匿名使用者,通常就是nobody
anonuid:anonuid=xxx,制定NFS服务器/etc/passwd中匿名用户的UID
anongid:anonuid=xxx,制定NFS服务器/etc/passwd中匿名用户的GID
sync:数据在请求时写入共享
async:NFS在写入数据前可响应请求
secure:NFS通过1024以下的安全端口发送
insecure:NFS通过1024以上端口发送
hide:不共享NFS目录的子目录
no_hide:共享NFS目录的子目录

设置实例:
/home/public 192.168.0.*(rw)   *(ro)
//允许192.168.0网段用户对/home/public有读写权限,其他用户只读权限

/home/test  192.168.0.100(rw)
//允许IP为192.168.0.100的用户访问/home/test,并且有读写权限

/home/linux  *.linux.org(rw,all_squash,anonuid=40,anongid=40)
//只要是linux.org域用户都可以访问,而且是读写权限,不管你是哪个用户你的身份都被改成:UID=40
这个账号名称

/tmp     *(rw,no_root_squash)
//允许所有用户对tmp有可读写权限,如果是root则对该目录有root权限

启动服务:
#service portmap start
#service nfs start

3.Client设置
--启动portmap服务
#service portmap start

--在client上挂载NFS 共享目录
#mount -t nfs 172.17.196.10:/home/test /mnt/share

//把nfs上的共享目录/home/test挂载到本机的/mnt/share下(/mnt/share目录必须首先创建)
连接成功后nfs的test目录就mount到本机share上了.

4.调试监控
察看NFS 运行状态:
#nfsstat
察看RPC运行信息:
#rpcinfo -p IP
#rpcinfo -u hostname

exportfs [-aruv]
-a:全部挂载(或卸载) /etc/exports文件设定
-r:重新挂载 /etc/exports设定,也可以同步更新/etc/exports设定
-u:卸载某一目录
-v:在export时,将共享目录显示在屏幕上

在NFS Server上重新挂载exports内容(一般用在及时更改过exports但又不想重新启动机器的时候)
#exportfs -rv

卸载全部mount 目录 exportfs -au,这样在NFS Client上将看不到原来mount的目录
# exportfs -au

在NFS Server上显示已经mount上本机NFS目录的Client机器。
# showmount -a
All mount points on test:
172.17.196.11:/share

显示被mount出来的目录
# showmount -e 172.17.196.10
Export list for 172.17.196.10:
/share 172.17.196.11

5.会发生的问题
//使用者权限不符:
# mount -t nfs 172.17.196.10:/home/test /mnt/share
mount: 172.17.196.10:/home/test failed, reason given by server: Permission denied

//portmap服务未启动
# mount -t nfs localhost:/home/test /home/nfs
mount: RPC: Port mapper failure - RPC: Unable to receive
或mount: RPC: Program not registered

注意:如果有客户端连接,nfs服务器是不能关机的。想要解决这个问题。要在关机之前先关闭portmap服务及nfs服务。


另外,如果服务端意外停止,在客户机上使用 ls,df等磁盘查看命令时,会卡住,原因是默认的mount是“硬”挂载,会不断的重试。解决办法是:

1、mount的时候加上 -s 参数,作为“软”挂载

2、umount -f /xxxxx/xxxx 用这个命令来取消挂载。 如果出现device busy的错误,说明还有进程在使用该挂载点,要把进程停了,才能umount


分享到:
评论

相关推荐

    windows Storage2012 R2通过NFS共享磁盘Linux挂载使用

    windows Storage2012 R2通过NFS共享磁盘Linux挂载使用

    用于嵌入式linux的半自动nfs挂载脚本

    完善的用于嵌入式linux系统的半自动nfs挂载脚本 如果你厌烦了每次连接开发板时必须输入的那段又长又臭的mount命令 该脚本将会是你的菜 脚本整合了快速挂载 快速卸载功能 通过参数指定 只需成功挂载一次 脚本将记忆...

    nfs离线安装包(含所有依赖-已亲测)

    Linux现有比较成熟的解决方案有两种,一种是NFS远程挂载,另一种是Samba共享目录。 4、其他说明: 目录的挂载于共享是基于RPC协议进行的,所以B服务器作为挂载方,也应同时具备RPC的应用功能,所以也应同时安装对应...

    windows共享文件夹给linux

    windows通过共享文件夹给linux系统使用,开机自动加载windwos的共享挂载到指定目录,可以实现跨操作系统的共享文件、再结合备份脚本实现异机备份等功能

    Suse11中使用NFS实现网络文件共享并重启自动挂载手册

    同时包含nfs服务端安装包 nfs-kernel-server的下载地址,还包含在其他机器中设置开机启动自动挂载方式。通过笔者亲身试验,发现suse与其他linux及suse10都存在不同之处,希望通过此文档能对其他同仁有所帮助。

    Linux共享文件脚本:被挂载

    nfs要共享的文件夹和共享ip自己手动设置。 Linux服务器中执行该脚本,可以共享文件夹

    NFS文件的使用

    目标板无法通过NFS挂载宿主机文件夹问题解决方法

    nfs-utils-1.3.0-0.66.el7_8.x86_64.rpm

    nfs-utils安装包,为解决linux挂载共享文件夹或硬盘包nount nfs错误的安装包,有网络建议直接使用命令安装,该包用于解决无法访问外网的环境。

    一文搞定 Linux,Mac,Windows 的 NFS 网络文件共享服务部署

    NFS,全称是 Network File System,用于在不同的服务器之间建立文件共享的通道,使得从其他服务器上访问共享目录时,就如同访问服务器自己本地的文件夹一样方便,这在分布式系统上得到广泛的应用。比如, k8s 集群,...

    samba-client-2.2.3a-6.i386

    不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的; 大家知道在Windows 网络中的每台机器即可以是文件共享的服务器,也可以同是客户机;Samba 也一样能行,比如一台Linux的机器...

    WinNFSd.exe

    用于网络文件夹挂载,当需要将windows系统上的一个文件夹挂载到linux开发板上,或者linux系统上时,可用于windows系统上的NFS工具

    linux于windows下资源的共享

    在Linux的中,就是通过Samba的向网络中的机器提供共享文件系统,也可以把网络中其它机器的共享挂载在本地机上使用;这在一定意义上说和FTP是不一样的。 Samba 用的netbios协议,如果您用Samba 不成功, Linux与...

    linux-常用命令

    Q1:在使用kernel(版本号:2.6.22.6)时,开发板通过nfs挂载服务器的nfs文件夹时,在开发板上一拷贝或执行该文件夹下的文件,就会卡死。 W1: 原因是:server机和目标机网卡传输速率冲突,目标机网卡速

    blobfs:BlobFs是由Microsoft azure blob存储服务支持的基于分布式FUSE的文件系统。 无论是Linux系统还是Windows系统,它都允许您将存储对象作为本地文件夹驱动程序挂载在存储帐户中。 它还支持集群模式

    它允许您将存储帐户中的容器/ blob作为本地文件夹/驱动程序挂载,无论是Linux系统还是Windows系统。 它支持集群模式。 您可以跨多个linux和Windows节点挂载blob容器(或其中的一部分)。 重要笔记: 这是blobfs的...

    Samba文件共享SambaFilesharing.apk

    不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的; 大家知道在Windows 网络中的每台机器即可以是文件共享的服务器,也可以同是客户机;Samba 也一样能行,比如一台Linux的机器...

    rootfs的制作.docx

    5) nfs挂载 10 6) Ubifs挂载 10 a. 下载mtd-utils 10 1) 内核配置 12 2) iw系列命令移植 ---wireless_tools.30.rtl.tar.gz 12 3) wpa系列命令移植 --- wpa_supplicant-2.7.tar.gz 13 4) 内核配置rfkill 子系统...

    Linux应用软件服务篇-五剑客

    第三章节讲解NFS服务器实现与客户机磁盘文件的共享,通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,重点讲解了通过客户端远程挂载服务器...

    入门学习Linux常用必会60个命令实例详解doc/txt

    举例而言,如要挂载下列5个设备,其执行指令可能如下 (假设都是Linux的ext2系统,如果是Windows XX请将ext2改成vfat): 软盘 ===>mount -t ext2 /dev/fd0 /mnt/floppy cdrom ===>mount -t iso9660 /dev/hdc /mnt/...

    Linux中移除(删除)符号链接的命令

    你可能有时需要在 Linux 上创建或者删除符号链接。如果有,你知道该怎样做吗?之前你做过吗?你踩坑没有?...它也可用于链接日志文件和挂载的 NFS(网络文件系统)上的文件夹。 什么是 rm 命令? rm

Global site tag (gtag.js) - Google Analytics