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数据库实现在线游戏中的游戏玩家积分排行榜功能。
相关文章
|
3月前
|
Ubuntu jenkins 机器人
在Jenkins上配置触发Ubuntu环境的图形用户界面(GUI)构建任务。
以上,这趟融合了技术与艺术的Jenkins配置之旅就告一段落了。记住,技术应当像艺术一样有趣和生动,这样才能激发出最大的创新和效率。
102 2
|
4月前
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
146 5
|
5月前
|
Ubuntu 关系型数据库 MySQL
在Ubuntu 22.04上配置和安装MySQL
以上就是在Ubuntu 22.04上配置和安装MySQL的步骤。这个过程可能看起来有点复杂,但只要按照步骤一步步来,你会发现其实并不难。记住,任何时候都不要急于求成,耐心是解决问题的关键。
607 30
|
5月前
|
Ubuntu 安全 网络安全
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
309 13
|
5月前
|
Ubuntu 网络协议
在Ubuntu 18.04服务器上配置双网口以接入互联网
总结一下,配置双网口在Ubuntu 18.04服务器就像一场冒险游戏,你小心翼翼地从查看网络布局开始,铺设新线路,最后得到了通往互联网的双重通道。祝你在网络世界的冒险旅程中更上一层楼!
180 11
|
6月前
|
NoSQL Ubuntu 网络安全
在 Ubuntu 20.04 上安装和配置 Redis
在 Ubuntu 20.04 上安装和配置 Redis 的步骤如下:首先更新系统包,然后通过 `apt` 安装 Redis。安装后,启用并启动 Redis 服务,检查其运行状态。可选配置包括修改绑定 IP、端口等,并确保防火墙设置允许外部访问。最后,使用 `redis-cli` 测试 Redis 功能,如设置和获取键值对。
239 1
|
9月前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
1786 7
|
11月前
|
网络协议 Ubuntu 网络安全
|
11月前
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
313 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
11月前
|
资源调度
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
124 2
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败