中小规模架构

课堂笔记day34——NFS企业级网络存储服务

2019-04-17  本文已影响0人  劉歓

1.什么是NFS?

1)NFS全称:network file system(网络文件系统)

     通过网络存储和组织文件的一种方法或机制。

2)为什么要用它?

     前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一的放到后端的存储上。

3)为什么要共享?

     所有节点服务器都需要将内容存到存储服务器上,取得时候统一来取。

4)共享存储的种类:

     单点存储系统就是NFS,适用于中小型企业,比如:阿里云服务的NAS服务以及OSS对象存储,但是NFS性能不太高。

    大型企业会用分布式存储FastDFS、Ceph、GlsterFS、Mfs。

5)举例:

大型存储厂商:EMC、Netapp(几十万)。

艺龙旅行网:存储用的EMC,传统企业。

硬件存储:传统企业==>稳定、2台、双主机头、几十块硬盘RAID10。

2.NFS工作原理

2.1NFS网络文件系统

启动NFS服务,而且还要启动很多端口

NFS功能:需要很多服务。每个服务都有端口,而且经常变化

如何让客户端找到这些端口呢?就需要一个经纪人(rpc服务)

2.1NFS服务:

NFS服务(有很多进程和端口)

RPC服务(对外固定端口111)

客户端请求NFS服务,先找RPC 111,查找NFS的端口,发给客户。

2.3原理图:


3.NFS企业级存储服务搭建

3.1nfs01中(服务端)

1)安装服务:

[root@nfs01 /]# yuminstall nfs-utils rpcbind -y

[root@nfs01 /]# rpm-qa nfs-utils rpcbind

rpcbind-0.2.0-47.el7.x86_64

nfs-utils-1.3.0-0.61.el7.x86_64

2)开启服务并设置开启自启动:

[root@nfs01 /]#systemctl start rpcbind.service

[root@nfs01 /]#systemctl enable rpcbind.service

[root@nfs01 /]#rpcinfo -p 127.0.0.1

   programvers 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

[root@nfs01 /]#systemctl start nfs

[root@nfs01 /]#systemctl enable nfs

[root@nfs01 /]#rpcinfo -p 127.0.0.1

   program vers proto   port service

  100000    4   tcp   111  portmapper

  ……

  ……

  100003    3   tcp  2049  nfs

  100021    4   tcp 20579  nlockmgr

[root@nfs01 /]#netstat -lnup|egrep "rpc|nfs"

udp        0     0 0.0.0.0:53301          0.0.0.0:*                          7893/rpc.statd     

udp        0     0 0.0.0.0:20048          0.0.0.0:*                           7946/rpc.mountd    

udp        0     0 0.0.0.0:821              0.0.0.0:*                           7854/rpcbind       

udp        0     0 127.0.0.1:863          0.0.0.0:*                          7893/rpc.statd     

udp6       0     0 :::20048                  :::*                                   7946/rpc.mountd    

udp6       0     0 :::821                      :::*                                   7854/rpcbind       

udp6       0     0 :::26458                  :::*                                    7893/rpc.statd

3)添加配置文件:

[root@nfs01 /]# vim/etc/exports

[root@nfs01 /]# tail-1 /etc/exports

/data 172.16.1.0/24(rw,sync)

[root@nfs01 /]#mkdir -p /data

[root@nfs01 /]# ls-ld /data

drwxr-xr-x 2 root root 6 4月  16 09:32 /data

[root@nfs01 /]#chown -R nfsnobody.nfsnobody /data

[root@nfs01 /]# ls-ld /data

drwxr-xr-x 2 nfsnobody nfsnobody 6 4月  16 09:32 /data

4)重启服务:(任选一个即可)

[root@nfs01 /]#systemctl reload nfs        <==生产场景必须要实现平滑重启

[root@nfs01 /]#exportfs -r

5)检查:

[root@nfs01 /]#showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data 172.16.1.0/24

3.2切换到web01(客户端)

1)安装

yum install nfs-utils rpcbind -y

rpm -qa nfs-utils rpcbind

2)启动服务并设置开机自启动

[root@web01 ~]#systemctl start rpcbind

[root@web01 ~]#systemctl enable rpcbind

3)检查端口

[root@web01 ~]#netstat -lntup|grep rpc

udp        0     0 0.0.0.0:875            0.0.0.0:*                          7908/rpcbind       

udp6       0     0 :::875                 :::*                               7908/rpcbind       

[root@web01 ~]# ps-ef|grep rpcbind

rpc       7908      1  0 12:17 ?        00:00:00 /sbin/rpcbind -w

root      7932   7523  0 12:18 pts/0    00:00:00 grep --color=auto rpcbin

4)查看NFS服务器提供的共享目录

[root@web01 ~]#showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data 172.16.1.0/24

5)挂载:

[root@web01 ~]#mount -t nfs 172.16.1.31:/data /data

[root@web01 ~]# df-h|tail -1

文件系统                 容量  已用  可用已用% 挂载点

172.16.1.31:/data         18G 2.0G   16G   11% /data

[root@web01 ~]#touch /data/liuhuan.txt

[root@web01 ~]# ls/data

liuhuan.txt

6)切换到backup下:和web01下的操作完全一样

7)开机自动挂载:

方法一、nfs01、web01、backup下分别执行如下命令就实现了开机自动挂载:

注意:如果将命令添加到/etc/rc.local中重启后不挂载的话记得给/etc/rc.d/rc.local加执行权限。

echo "mount -t nfs 172.16.1.31:/data /data" >>/etc/rc.local

方法二、/etc/fstab中添加文件

[root@nfs01 /]# vim/etc/fstab

172.16.1.31:/data       /data                    nfs     defaults        0 0

3.3项目实战

1)NFS下面共享/backup ,允许web01 backup客户端(/backup)可读写,且web01上传图片,backup上可以删除web01上传的图片

第一步:服务端

yum install nfs-utils rpcbind -y

rpm -qa nfs-utils rpcbind

systemctl start rpcbind.service 

systemctl enable rpcbind.service 

systemctl start nfs 

systemctl enable nfs 

rpcinfo 127.0.0.1 

netstat lnup|egrep "nfs|rpc" 

echo "/backup 172.16.1.0/24(rw,sync)">>/etc/exports 

tail -1 /etc/exposts 

mkdir -p /backup 

chown -R nfsnobody.nfsnobody /backup

ll -ld /backup 

systemctl reload nfs 

showmount -e 172.16.1.31 

第二步:web01和backup(客户端)中执行如下命令

yum install nfs-utils rpcbind -y 

rpm -qa nfs-utils rpcbind 

systemctl start rpcbind.service 

systemctl enable rpcbind.service 

netstat -lntup|grep rpc 

mkdir -p /backup 

showmount -e 172.16.1.31

mount -t nfs 172.16.1.31:/backup /mnt 

df -h|tail -1 

echo "mount -t nfs 172.16.1.31:/backup /mnt">>/etc/rc.local 

tail -1 /etc/rc.local

2)NFS下面共享/data1,允许 web01 backup客户端10网段只读(data1)

第一步:服务端

yum install nfs-utils rpcbind -y 

rpm -qa nfs-utils rpcbind 

systemctl start rpcbind.service 

systemctl enable rpcbind.service 

systemctl start nfs 

systemctl enable nfs 

rpcinfo 127.0.0.1 

netstat -lnup|egrep "rpc|nfs" 

echo "/data1 10.0.0.0/24(ro)" >>/etc/exports 

mkdir -p /data1 

chown -R nfsnobody.nfsnobody /data1 

ls -ld /data1 

systemctl reload nfs 

showmount -e 172.16.1.31

第二步:客户端

yum install nfs-ntils rpcbind -y

rpm -qa nfs-utils rpcbind

systemctl start rpcbind.service

systemctl enable spcbind.service

netstat -lntup|grep nfs

mkdir -p /data1

showmount -e 172.16.1.31

mount -t nfs 10.0.0.31:/data1 /opt

df -h|tail -1

echo "mount -t nfs 10.0.0.31:/data1 /opt" >>/etc/rc.local

tail -1 /etc/rc.local

上一篇下一篇

猜你喜欢

热点阅读