NFS共享存储

原理

1,什么是NFS?

全称 network file system 网络文件系统

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

什么是文件系统?  管理磁盘的工具

2,为什么要用它?

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

      为什么要共享?所有节点服务器都需要将内容存到存储上,取的统一来取

3,共享存储的种类

    单一存储系统就是NFS,中小型企业,相当于阿里云服务的DAS服务。

    NFS性能不太高。

    大型企业会用FastDFS, Ceph, ClsterFS, MFS(分布式存储)

    大型存储厂商: EMC,Netapp,几十万。

    硬件存储好处:稳定,2台,双主机头 几十块硬盘 RAID10.适用于传统企业不适合大型企业

    BAT  曾经用硬件,超贵,

    阿里云  去IOE  IBM  orace  EMC

4,NFS 的工作原理

      NFS网络文件系统

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

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

      如何让客户端找到这些端口呢?(rpc服务)

NFS服务:

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

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

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


NFS共享存储_第1张图片


5、安装

服务器端和客户端都要安装:

yum install nfs-utils rpcbind -y

rpm -qa nfs-utils rpcbind

启动RPC

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

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

启动NFS

[root@nfs01 ~]# systemctl start nfs

[root@nfs01 ~]# systemctl enable nfs

NFS配置文件 /etc/exports

#shared

/data 172.16.1.0/24(rw,sync)

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

NFS默认用户nfsnobody

[root@nfs01 ~]# grep nfsno /etc/passwd

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

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

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

drwxr-xr-x 2 nfsnobody nfsnobody 51 4月  16 10:24 /data

重启NFS

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

[root@nfs01 ~]# exportfs -r

上述二者等价,选一个即可。

[root@nfs01 ~]# showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data 172.16.1.0/24  #《==看到共享的目录了

服务单本地挂载:

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

[root@nfs01 ~]# df -h

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

172.16.1.31:/data  19G  1.8G  18G  10% /mnt

换到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)查看NFS服务器提供的共享目录

[root@web01 ~]# showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data 172.16.1.0/24

4)挂载测试

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

为什么fstab无法实现nfs挂载?

NFS网络文件系统,通过网络挂载,网络没起如何挂载?

又想在fstab里实现挂载、就用一个服务,延迟启动。

systemctl start remote-fs.target

systemctl enable remote-fs.target

企业生产场景NFS共享储存优化

1).硬件:SAS/SSD磁盘,买多块,硬件Raid,制作Raid5或Raid10.网卡吞吐量要大,至少千兆(多块bond) 

2).NFS服务器配置:/data 172.16.1.0/24(rw,sync,all_squash,anonuid=65535,anongid=65534)

3).mount -t nfs -o nosuid,boexec,nodev,noatime,nodiratime,raize=131072,wsize=131072 172.16.1.31:/data/ /mnt  #<<====兼顾安全性能

4).对NFS服务的所有服务器内核进行优化时,执行如下命令:

cat >>/etc/sysctl.conf <

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

EOF

执行sysctl -p

解决NFS性能问题:

1).使用CDN加速以及自己搭建文件缓存服务(squid,nginx,varnish).

2).把多个目录分配到不同的NFS服务器上

3).弃用NFS

4).使用分布式文件系统

你可能感兴趣的:(NFS共享存储)