阿里云ECS上实现NFS挂载

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介:

1. 背景

由于项目需要,现在需要在阿里云上多台服务器上共享一些静态的文件数据。开始时选型方案有:OSS对象存储、NAS存储、自己搭建NFS;考虑成本需要,选择了自己搭建NFS。 项目在阿里金融云上,金融云上产品比公有云贵多了。 下面讲解过程。

注意:你的ECS是否在一个区,且是否在一个安全组。如果两台ECS不在同一个安全组,因此需要在各自的安全组设置规则,在内网进出方向分别添加对方的IP地址。

image

 

2. 过程

2.1 服务端

 

2.1.1 安装     
yum install nfs-utils –y

 

2.1.2 修改配置文件     
[root@test02 home]# vim /etc/exports     
/home/nfstest 10.0.18.1(rw,sync,no_root_squash)     
/home/nfstest 10.0.16.120(rw,sync,no_root_squash)

#新建目录

mkdir –p /home/nfstest

no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!    
root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份;


2.1.3 启动服务     
service rpcbind start #启动端口转发     
service nfs start #启动NFS

chkconfig rpcbind on #rpcbind 加入启动项   
chkconfig nfs on #nfs加入启动项   
启动后如果修改了目录,可执行exprotfs -rv 实现刷新

 

2.1.4 添加防火墙规则

iptables -I INPUT -p tcp -m multiport --dports 875,2049,111,28300,5076,39927,46286 -j ACCEPT    
iptables -I INPUT -p udp -m multiport --dports 875,2049,111,37747,31166,9292,57181 -j ACCEPT

注意:由于要开放的端口较多且不连续,最好的做法是修改相应的端口。 可以参考我的另外一篇博文

http://pizibaidu.blog.51cto.com/1361909/1662428

 

2.2 客户端

 

2.2.1 安装     
yum install nfs-utils –y


2.2.2 挂载     
a. 立一个目录用来作挂接点     
mkdir -p /home/nfs     
b、进行挂接     
mount -t nfs 10.0.16.122:/home/nfstest /home/nfs -o proto=tcp -o nolock     
c、取消挂接     
umount /home/nfs

 

3. 遇到的问题

 

3.1 如果客户端不安装nfs-utils会报如下错误:

mount: wrong fs type, bad option, bad superblock on 10.0.16.122:/home/nfstest,    
        missing codepage or helper program, or other error     
        (for several filesystems (e.g. nfs, cifs) you might     
        need a /sbin/mount.<type> helper program)     
        In some cases useful info is found in syslog - try     
        dmesg | tail  or so

解决方法:yum install nfs-utils –y

 

 

3.2 clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

挂载时报的错误。

解决方法: 由于服务端防火墙的阻止,需要把所有的端口都加进去。需要把那些端口加入防火墙,可以执行命令: rpcinfo -p 10.0.16.122

或者关掉防火墙

   # rpcinfo -p 10.0.16.122

    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     
     100011    1   udp    875  rquotad     
     100011    2   udp    875  rquotad     
     100011    1   tcp    875  rquotad     
     100011    2   tcp    875  rquotad     
     100005    1   udp  37747  mountd     
     100005    1   tcp   5076  mountd     
     100005    2   udp  31166  mountd     
     100005    2   tcp  39927  mountd     
     100005    3   udp   9292  mountd     
     100005    3   tcp  28300  mountd     
     100003    2   tcp   2049  nfs     
     100003    3   tcp   2049  nfs     
     100003    4   tcp   2049  nfs     
     100227    2   tcp   2049  nfs_acl     
     100227    3   tcp   2049  nfs_acl     
     100003    2   udp   2049  nfs     
     100003    3   udp   2049  nfs     
     100003    4   udp   2049  nfs     
     100227    2   udp   2049  nfs_acl     
     100227    3   udp   2049  nfs_acl     
     100021    1   udp  57181  nlockmgr     
     100021    3   udp  57181  nlockmgr     
     100021    4   udp  57181  nlockmgr     
     100021    1   tcp  46286  nlockmgr     
     100021    3   tcp  46286  nlockmgr     
     100021    4   tcp  46286  nlockmgr

 

3.3 nfs rpc.mountd: svc_tli_create: could not open connection for udp6

启动NFS报错如下:    
Starting NFS mountd: rpc.mountd: svc_tli_create: could not open connection for udp6     
rpc.mountd: svc_tli_create: could not open connection for tcp6     
rpc.mountd: svc_tli_create: could not open connection for udp6     
rpc.mountd: svc_tli_create: could not open connection for tcp6     
rpc.mountd: svc_tli_create: could not open connection for udp6     
rpc.mountd: svc_tli_create: could not open connection for tcp6

解决办法:

修改如下配置文件,然后重启服务即可。    
[root@localhost ~]# vi /etc/netconfig     
udp tpi_clts v inet udp - -     
tcp tpi_cots_ord v inet tcp - -     
#udp6 tpi_clts v inet6 udp - -     
#tcp6 tpi_cots_ord v inet6 tcp - -     
rawip tpi_raw - inet - - -     
local tpi_cots_ord - loopback - - -     
unix tpi_cots_ord - loopback - - -



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

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
22小时前
|
弹性计算 负载均衡 容灾
应用阿里云弹性计算:打造高可用性云服务器ECS架构
阿里云弹性计算助力构建高可用云服务器ECS架构,通过实例分布、负载均衡、弹性IP、数据备份及多可用区部署,确保业务连续稳定。自动容错和迁移功能进一步增强容灾能力,提供全方位高可用保障。
5 0
|
22小时前
|
存储 弹性计算 监控
探索阿里云弹性计算:如何优化云服务器ECS的性能与成本
在云时代,【阿里云ECS】的性能优化与成本控制至关重要。利用实例规格选择、自动伸缩、网络和存储配置,可增强性能、减少成本。结合监控工具和优化建议,用户能解决性能问题,提升应用稳定性,实现高效且经济的云计算运营。
6 1
|
22小时前
|
弹性计算 运维 监控
解密阿里云弹性计算:探索云服务器ECS的核心功能
阿里云ECS是核心计算服务,提供弹性云服务器资源,支持实例按需配置、集群管理和监控,集成安全防护,确保服务稳定、安全,助力高效业务运营。
8 0
|
1天前
|
域名解析 Unix Linux
AIX上如何正确挂载Linux 的nfs共享目录分享篇
AIX上如何正确挂载Linux 的nfs共享目录分享篇
|
2天前
|
弹性计算 运维 安全
阿里云ecs使用体验
整了台服务器部署项目上线
|
3天前
|
编解码 缓存 安全
阿里云目前活动内各云服务器实例规格适用场景与价格参考
目前阿里云的活动中,云服务器有多种不同实例规格可选,实例规格定义了实例的基本属性:CPU和内存(包括CPU型号、主频等),但是不同实例规格所适用的场景是不一样的,价格也有很大差别,有的用户初次选购阿里云服务器可能并不知道这些实例规格的具体适用场景,下面是小编整理汇总的2024年截止目前阿里云的活动中云服务器实例规格适用场景与活动价格,以供参考。
阿里云目前活动内各云服务器实例规格适用场景与价格参考
|
4天前
|
弹性计算
阿里云ECS的使用心得
本文主要讲述了我是如何了解到ECS,使用ECS的一些经验,以及自己的感悟心得
|
3天前
|
弹性计算
阿里云ECS使用体验
在申请高校学生免费体验阿里云ECS云服务器后的一些使用体验和感受。
|
5天前
|
弹性计算 运维 安全
阿里云ecs使用体验
整了台服务器部署项目上线
|
1月前
|
Linux
Linux安装NFS挂载NFS卸载客户端服务端都有
Linux安装NFS挂载NFS卸载客户端服务端都有
40 0