阿里雲ECS上實現NFS掛載

 

1. 背景

因爲項目須要,如今須要在阿里雲上多臺服務器上共享一些靜態的文件數據。開始時選型方案有:OSS對象存儲、NAS存儲、本身搭建NFS;考慮成本須要,選擇了本身搭建NFS。 項目在阿里金融雲上,金融雲上產品比公有云貴多了。 下面講解過程。vim

注意:你的ECS是否在一個區,且是否在一個安全組。若是兩臺ECS不在同一個安全組,所以須要在各自的安全組設置規則,在內網進出方向分別添加對方的IP地址。安全

p_w_picpath

 

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)app

#新建目錄tcp

mkdir –p /home/nfstestide

no_root_squash:登入 NFS 主機使用分享目錄的使用者,若是是 root 的話,那麼對於這個分享的目錄來講,他就具備 root 的權限!這個項目『極不安全』,不建議使用!    
root_squash:在登入 NFS 主機使用分享之目錄的使用者若是是 root 時,那麼這個使用者的權限將被壓縮成爲匿名使用者,一般他的 UID 與 GID 都會變成 nobody 那個系統帳號的身份;oop


2.1.3 啓動服務    
service rpcbind start #啓動端口轉發    
service nfs start #啓動NFS阿里雲

chkconfig rpcbind on #rpcbind 加入啓動項  
chkconfig nfs on #nfs加入啓動項  
啓動後若是修改了目錄,可執行exprotfs -rv 實現刷新spa

 

2.1.4 添加防火牆規則unix

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

相關文章
相關標籤/搜索