美文网首页
存储服务

存储服务

作者: 肥四_F4 | 来源:发表于2022-12-03 19:29 被阅读0次

一、概述介绍

NFS是Network File System的缩写,中文意思是网络文件系统,
主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录

互联网中小型网站集群机构后端常用NFS进行数据共享  (新华日报)
大型网站,那么有可能还会用到更复杂的分布式文件系统,例如:Moosefs(mfs)、GlusterFS(*)、FastDFS

二、存在意义:

1)实现数据统一存储
2)节省磁盘购买成本

三、存储原理

   a 在存储客户端创建本地存储数据目录
   b 在存储服务端创建共享存储数据目录
   c 实现客户端目录和存储目录建立挂载
  # 客户端目录中操作数据等价于存储服务器目录中操作数据

四、部署过程

rpc (rpcbind) --- 远程过程调用服务程序 nfs每次重启服务进程和端口都会发生变化,有了rpc,他会管理nfs的进程及端口,统一到111
(类似于中介)

服务端

1.安装软件程序
yum install -y rpcbind nfs-utils
#检查软件版本
rpm -qa rpcbind nfs-utils
2.vim /etc/exports
    /data   web*(rw)
    配置文件样例:
    /projects       proj*.local.domain(rw)
        /usr            *.local.domain(ro) @trusted(rw)
    ①                ②                             ③
    ① 设置定义数据存储目录
    ② 定义允许哪些主机存储数据 定义网段信息  定义地址信息  定义主机名称信息
    ③ 定义存储数据参数
3.创建存储目录
    mkdir /data
    chown nfsnobody.nfsnobody /data
4.编写本地解析配置文件
    vim /etc/hosts
    172.16.1.7  web01
    172.16.1.8  web02
    172.16.1.9  web03
5.启动服务
    systemctl start rpcbind 
    systemctl start nfs

五、服务端配置文件详细参数

/etc/exports
    rw    --- 是否允许向存储目录中存储数据  存储目录可读可写
    ro    --- 是否允许向存储目录中存储数据  存储目录只读状态
    async --- 异步传输数据  客户端(存储数据)  ----  服务端 (内存) ---> 服务端(磁盘)
    sync  --- 同步传输数据  客户端(存储数据)  ----  服务端 (磁盘)
    root_squash     --- 是否将用户信息做映射转换  将root用户身份进行转换 (默认转换用户nfsnobody)
    no_root_squash  --- 是否将用户信息做映射转换  将root用户身份不做转换 
    all_squash      --- 是否将用户信息做映射转换  将普通用户身份进行转换 (默认转换用户nfsnobody)
    no_all_squash   --- 是否将用户信息做映射转换  将普通用户身份不做转换
    anonuid        ----指定uid
    anongid       -----指定gid
同步传输数据直接存储到磁盘
异步传输数据先存储到内存再存储磁盘
配置存储服务参数时:root_squash,no_all_squash,anonuid=xxx,anongid=xxx
root_squash,no_all_squash,这两个可以不写,默认配置里已经有了

六、默认配置

cat /var/lib/nfs/etab 
/data   172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

客户端

1.安装软件程序
    yum install -y  nfs-utils
2.挂载应用存储服务
    mount -t nfs 172.16.1.31:/data  /mnt

七、客户端挂载参数

       cat /proc/mounts
       172.16.1.31:/data /mnt nfs4 rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.7,local_lock=none,addr=172.16.1.31 0 0

       mount -o 挂载参数
       rsize        提示数据存储效率,减缓存储服务器压力          在客户端内存中设置了缓存
       wsize        提升数据读取效率,减缓存储服务器压力          在客户端内存中设置了缓冲
       hard         实现长连接挂载操作                           (对于架构而言,配置hard容易造成耦合度过程)  架构师
       soft         实现长连接挂载操作(具有超时时间timeo=600)  (对于架构而言,配置soft可以实现解耦)        架构师
       proto        网络挂载时选择通讯协议 (tcp/udp) 
       atime        访问存储数据时,会消耗磁盘IO, 影响磁盘性能    
       noatime      访问存储数据时,不要更改atime属性信息, 不会消耗磁盘IO, 减少磁盘性能消耗   优化
       diratime     访问存储目录时,会消耗磁盘IO, 影响磁盘性能
       nodiratime   访问存储目录时,不要更改目录atime属性信息, 不会消耗磁盘IO, 减少磁盘性能消耗   优化
客户端挂载操作
   临时挂载操作: mount -t nfs 存储服务器地址:存储目录  本地挂载点目录
   永久挂载操作: 
   方法一: 利用/etc/rc.local 
   方法二: 利用/etc/fstab
            172.16.1.31:/data    /mnt   nfs     defaults        0 0
   PS: 关注系统启动顺序
        先加载/etc/fstab  ---> 启动网络服务 ---> 加载/etc/fstab(systemctl start remote-fs.target)

存储服务权限说明:*****

1)存储服务端配置文件参数没有设置正确(rw/ro xxx_squash)
2) 存储服务端存储目录本身权限配置问题
3)存储客户端挂载参数配置问题        (ro)
4)存储目录权限继承关系              (服务端配置文件中不要有目录层级配置)       

八、存储服务常用命令

rpcinfo   --- 查看nfs服务注册信息
rpcinfo -p 172.16.1.31
showmount --- 查看可用挂载目录信息
showmount -e 172.16.1.31 
exportfs  --- 管理nfs服务运行状态
exportfs  -rv 平滑重启相当于systemctl reload nfs

九、存储服务企业应用

弃用NFS案例: 如何解决NFS服务单点故障
读取数据时:弃用NFS服务(将存储数据和web服务器数据做同步),  让用户读取web服务器本地数据
写入数据时:弃用NFS服务(写入数据到本地 将数据进行恢复同步),让用户写入web服务器本地数据
分布式存储

相关文章

网友评论

      本文标题:存储服务

      本文链接:https://www.haomeiwen.com/subject/kjqmfdtx.html