Ubuntu NFS配置

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

1、 开启portmap和nfs服务

apt-get install nfs-kernel-server

/etc/init.d/portmap start

/etc/init.d/nfs-kernel-server start

2、 将要共享的目录写到exports文件中 假设共享的目录为 /sharedisk/

vim /etc/exports

这个文件的内容非常简单,每一行由抛出路径,客户名列表以及每个客户名后紧跟的访问选项构成:

            [共享的目录] [主机名或IP(参数,参数)] 

其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay。

当主机名或IP地址为空时,则代表共享给任意客户机提供服务。

当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:

            [共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]

/home/share 192.168.102.15(rw,sync) *(ro)

#对192.168.102.15赋予读写权限,其他机器仅有只读权限。

括号中的参数设置意义为:

ro                      只读访问 

rw                      读写访问 

sync                    所有数据在请求时写入共享 

async                   NFS在写入数据前可以相应请求 

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_squas           root用户具有根目录的完全管理访问权限 

anonuid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的UID 

anongid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的GID 


3、重启nfs 或者使用exportfs命令使设置生效

   重启nfs:/etc/init.d/nfs-kernel-server restart

   用exportfs: 

   exportfs -rv

-a :全部mount或者unmount /etc/exports中的内容 

-r :重新mount /etc/exports中分享出来的目录 

-u :umount 目录 

-v :将详细的信息输出到屏幕上

exportfs可以根据/etc/exports配置生成一个 /var/lib/nfs/etab文件,此文件是共享目录的最终权限的设置。

4、在客户端挂载该目录:

在本地创建挂载的目录 

mkdir /sharedisk

mount -t nfs 192.168.0.10:/sharedisk  /sharedisk

#将服务器192.168.0.10上的/sharedisk/ 路径挂载到本地

   

5、NFS 防火墙设置

由于nfs服务需要开启 nfs,portmapper,mountd,nlockmgr,rquotad这5个服务,需要将这5个服务的端口加到iptables里面

而nfs 和 portmapper两个服务是固定端口的,nfs为2049,portmapper为111。其他的3个服务是用的随机端口,那就需要

先把这3个服务的端口设置成固定的。

查看当前这5个服务的端口并记录下来 用rpcinfo -p

root@server:~# rpcinfo -p

    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  32802  status

    100024    1   tcp  54040  status

    100003    2   tcp   2049  nfs

    100003    3   tcp   2049  nfs

    100003    4   tcp   2049  nfs

    100227    2   tcp   2049

    100227    3   tcp   2049

    100003    2   udp   2049  nfs

    100003    3   udp   2049  nfs

    100003    4   udp   2049  nfs

    100227    2   udp   2049

    100227    3   udp   2049

    100021    1   udp  54770  nlockmgr

    100021    3   udp  54770  nlockmgr

    100021    4   udp  54770  nlockmgr

    100021    1   tcp  44903  nlockmgr

    100021    3   tcp  44903  nlockmgr

    100021    4   tcp  44903  nlockmgr

    100005    1   udp  44541  mountd

    100005    1   tcp  54030  mountd

    100005    2   udp  47762  mountd

    100005    2   tcp  57530  mountd

    100005    3   udp  35485  mountd

    100005    3   tcp  56965  mountd

将这3个服务的端口设置为固定端口:

vim  /etc/services

在文件的最后一行添加:

mountd  54030/tcp

mountd  35485/udp

rquotad  966/tcp

nlockmgr  44903/tcp

nlockmgr  54770/udp

把相关的端口添加到iptables

6、启动时自动挂栽

修改客户机的 /etc/fstab文件,加入类似如下行:

            192.168.102.47:/home/share      /mnt    nfs     rsize=8192,wsize=8192,timeo=14,intr

重启客户机,即可实现系统启动时自动挂栽共享资源


7、使用 autofs 实现资源挂栽

autofs 使用 automount 守护进程来管理你的挂载点,它只在文件系统被访问时才动态地挂载它们。

autofs 查询主配置文件 /etc/auto.master 来决定要定义哪些挂载点。然后它使用适用于各个挂载点的参数来启动 automount 进程。

主配置中的每一行都定义一个挂载点,然后用单独的配置文件定义在该挂载点下要挂载的文件系统。

安装 autofs

             # aptitude  install autofs

修改/etc/auto.master文件, 加入如下内容:

            /mnt      /etc/auto.nfs

创建 /etc/auto.nfs 文件内容如下:


            nfs -rw,soft,intr,rsize=8192,wsize=8192 192.168.102.47:/home/share


这样,每当您进入 /mnt/nfs 目录时,系统都会尝试将服务器的共享资源挂栽到该目录上。

应当注意nfs目录是由 automount 动态地创建的,它不应该在客户机器上实际存在。

===============================================================================================

centos系统的iptables设置

配置针对NFS Server的防火墙

[root@mes-bk backup]# vi /etc/sysconfig/nfs

# Port rquotad should listen on.

RQUOTAD_PORT=875

# TCP port rpc.lockd should listen on.

LOCKD_TCPPORT=32803

# UDP port rpc.lockd should listen on.

LOCKD_UDPPORT=32769

# Port rpc.mountd should listen on.

MOUNTD_PORT=892

其中 portmapper nfs 服务端口是固定的分别是 111 2049

另外 rquotad nlockmgr mountd 服务端口是随机的。由于端口是随机的,这导致防火墙无法设置。

这时需要配置/etc/sysconfig/nfs 使 rquotad nlockmgr mountd 的端口固定。

找到以下几项,将前面的#号去掉。

[root@mes-bk backup]# rpcinfo -p localhost

   程序采用的协议连接阜

100000    2   tcp    111  portmapper

100000    2   udp    111  portmapper

100024    1   udp    907  status

100024    1   tcp    910  status

100011    1   udp    897  rquotad

100011    2   udp    897  rquotad

100011    1   tcp    900  rquotad

100011    2   tcp    900  rquotad

100003    2   udp   2049  nfs

100003    3   udp   2049  nfs

100003    4   udp   2049  nfs

100021    1   udp  47851  nlockmgr

100021    3   udp  47851  nlockmgr

100021    4   udp  47851  nlockmgr

100003    2   tcp   2049  nfs

100003    3   tcp   2049  nfs

100003    4   tcp   2049  nfs

100021    1   tcp  56501  nlockmgr

100021    3   tcp  56501  nlockmgr

100021    4   tcp  56501  nlockmgr

100005    1   udp    911  mountd

100005    1   tcp    914  mountd

100005    2   udp    911  mountd

100005    2   tcp    914  mountd

100005    3   udp    911  mountd

100005    3   tcp    914  mountd

-A RH-Firewall-1-INPUT -s 0.0.0.0/24 -m state --state NEW -p tcp --dport 33993 -j ACCEPT

-A RH-Firewall-1-INPUT -s 0.0.0.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT



挂接nfs server的client端执行nfsstat -m命令,可以得出nfs server端nfs版本




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

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
打赏
0
0
0
0
265
分享
相关文章
在Ubuntu 22.04上配置和安装MySQL
以上就是在Ubuntu 22.04上配置和安装MySQL的步骤。这个过程可能看起来有点复杂,但只要按照步骤一步步来,你会发现其实并不难。记住,任何时候都不要急于求成,耐心是解决问题的关键。
83 30
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
69 13
在Ubuntu 18.04服务器上配置双网口以接入互联网
总结一下,配置双网口在Ubuntu 18.04服务器就像一场冒险游戏,你小心翼翼地从查看网络布局开始,铺设新线路,最后得到了通往互联网的双重通道。祝你在网络世界的冒险旅程中更上一层楼!
60 11
在 Ubuntu 20.04 上安装和配置 Redis
在 Ubuntu 20.04 上安装和配置 Redis 的步骤如下:首先更新系统包,然后通过 `apt` 安装 Redis。安装后,启用并启动 Redis 服务,检查其运行状态。可选配置包括修改绑定 IP、端口等,并确保防火墙设置允许外部访问。最后,使用 `redis-cli` 测试 Redis 功能,如设置和获取键值对。
67 1
|
5月前
|
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
600 7
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
219 2
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
214 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
89 2
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
1336 3
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等