一个存储服务(也是一种文件系统),运行在存储服务器中 同类软件:nfs、ceph、gfs

存储服务器介绍

存储服务器用来存储用户上传的文件,包括但不限于视频、图片

存储服务器原理图:
nfs - 图1

nfs原理

原理图:

nfs - 图2

简单上手

服务端配置

  1. yum install -y nfs-utils # rpcbind是nfs的依赖之一,所以不用主动装
  2. systemctl enable rpcbind
  3. systemctl start rpcbind
  4. systemctl enable nfs
  5. systemctl start nfs
  6. rpcinfo -p # 查看注册信息,不加ip,默认查看本地rpc服务
  7. # showmount -e # 查看具体共享目录,不加ip默认查看本地nfs服务
vim /etc/exports

#共享/nfsdata/目录  172.16.1.0/24网段对 nfs服务端的/nfsdata目录 拥有读写权限
/nfsdata    172.16.1.0/24(rw,all_squash)
# 单独指定域名或ip共享/nfsdata ,对 nfs服务端的/nfsdata目录 拥有读写/只读权限
# /nfsdata 172.16.1.1(rw) 172.16.1.2(ro) www.baidu.com(ro)

# 其他服务端配置
# (rw,anonuid=,anongid=,root_squash,no_root_squash,allsquash,sync,async)
#   指定被压缩为的用户id     只有root压缩,其他用户不压缩, 都压缩, 同步传输,不同步传输
#不同步传输指的是先放在内存里攒一攒
systemctl reload nfs  # reload表示处理完未完成的任务在重启,不是所有服务都有,只有服务开启状态下才可以使用
showmount -e  # 查看具体共享目录,后面不加ip默认查看本地nfs服务
mkdir -p /nfsdata 
chown nfsnobody.nfsnobody /nfsdata -R  # 用户压缩,公司一般用www这个用户

客户端配置

yum install -y nfs-utils
mkdir -p /upload 
mount -t nfs 172.16.1.31:/nfsdata /upload/

其他: /proc/mounts可以看客户端挂载的详细配置,如mount -o,-t的详细内容
/var/lib/nfs/etab看服务端详细配置,如是否allsquash

永久挂载:和硬盘挂载相同,但fstab挂载需要启动 remote-fs.target 这个服务

排错

mount -t nfs exam_nfs:/data/w_shared /data/b_w

#挂载共享目录的时候夯住,排查发现不能使用rpcinfo,怀疑是rpc端口未开放
#开放111和1017没用,开放安全组所有端口就行了,rpcinfo也能用了/
#是哪个端口有问题呢?
# 答:由于nfs端口的随机性,需要固定https://www.cnblogs.com/longchengruoxi/p/13156444.html,
# 但是一般企业用内网,直接对内网开放全部端口就完事,用不着固定

nfs的超详细介绍,史诗巨作 ps:疑似有点问题,还是不看了