nfs存储服务器作用说明
当没有存储服务器
用户存储数据到不同的web服务器上面的时候 别的用户去查看上一个用户存储的数据就会查找不到
有存储服务器 将存储在web服务器上的数据进行整合
小结 : nfs服务器作用
(1)实现数据共享存储 数据放在存储服务器方便数据同步
(2)实现数据的统一管理 (删除/保护)
(3)实现运营成本的节省
NFS存储服务器存储原理
(1) 服务端设置好共享目录
(2)客户端进行挂载
(3)数据存储到客户端挂载点就等于存储到了服务器共享目录
存储服务实现方法(各种服务)
中型小型企业
nfs :网络文件系统 (客户端不保存数据 服务端保存数据)
FTP :文件传输协议 (客户端磁盘保存一份数据) 但是配置复杂
samba : 文件共享存储 (结合两者优缺点) 配置复杂
大型企业 (分布式存储)
Moosefs (mfs) 服务
GlusterFS 服务
FastDFS 服务(常见)
分布式概念: 将一个大的数据分成小份 每台存储服务器都一起进行存储 (效率高) 类似于raid0 存储模式
NFS存储服务器部署流程
服务端部署需要有 rpc服务
Rpc服务类似一个中介 NFS服务每次开启的时候进产生随机多个端口 不利于客户端进行访问链接挂载 , rpc服务就是客户端和服务端的桥梁 每次NFS服务开启都会到rpc服务进行注册信息 rpc再分出标准端口方便远程连接
nfs服务端部署
查看服务端是否安装了rpc和nfs服务 (默认系统没有安装)
rpm -qa | egrep nfs|rpc
使用yum install nfs-utils rpcbind安装两个服务
nfs服务安装包名nfs-ufils
rpc服务安装包名rpcbind
编写nfs配置文件 vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash)
(共享目录) (白名单地址) (配置参数)
创建共享目录, 修改目录属主属组为NFS服务默认用户(nfsnobody)
mkdir -p /data
chown -R nfsnobody.nfsnobody /data
启动服务程序
先启动rpc 后启动nfs 否则会报错
[root@nfs01 ~]# systemctl start rpcbind.service
[root@nfs01 ~]# systemctl enable rpcbind.service
[root@nfs01 ~]# systemctl start nfs
[root@nfs01 ~]# systemctl enable nfs
客户端部署
安装nfs服务
yum install nfs-utils -y
检查服务端是否指定了目录
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data/w 172.16.1.0/24
/data/r 172.16.1.0/24
进行远程挂载操作
mount -t nfs 172.16.1.31:/data /mnt
测试查看挂载点
df -h
向挂载点存储数据是否成功
开机自动挂载
方法一 在/etc/fstab下编辑开机自动挂载
vim /etc/fstab
编写172.16.1.31/data/ /mnt nfs defaults 0 0
方法二 在/etc/rc.local 编写开机自动执行命令
vim /etc/rc.local
编写 mount -t nfs 172.16.1.31:/data /mnt
方法三 编写脚本放在 /etc/profile.d 开机自动运行
网站存储服务端配置条件参数信息
设置多个白名单
[root@nfs01 ~]# vim /etc/exports
不同条件新起一行编辑
/data/r 172.16.1.0/24(ro,sync,all_squash)
/data/w 172.16.1.0/24(rw,async,all_squash)
存储配置文件参数
rw 让存储共享目录权限为读写
ro 让存储共享目录权限为只读
sync 同步存储数据(直接存进硬盘)
async 异步存储数据(先存入内存 在存入硬盘)
all_squash 让所有用户都做映射成为NFS的虚拟用户( 建议开启 )
no_all_squash 不让用户做映射 (默认状态)
root_squash root用户做映射(默认状态)
no_all_squash root用户不做映射(建议开启 安全)
anonuid=uid数值 修改默认映射用户 修改后服务端和客户端uid/gid数值必须一致否则会出现只显示uid/gid数值
anongid=gid数值 修改默认映射用户组
影响数据存储的因素
(1) 配置文件参数信息
(2) 存储目录本身 (权限, 属主属组是否正确)
(3) 父级目录权限到子集目录权限是继承关系
(4) 客户端在挂载时的参数也会影响
服务端重要文件等
(1) /etc/ecports nfs服务器配置文件
(2) /var/lib/nfs/etab 默认配置记录文件 (记录文件不可更改)
(3) 命令
showmount -e 目标ip 查看服务共享目录是否存在
exportfs -rv平滑重启nfs服务
rpcinfo -p 存储服务器ip 查看nfs是否向rpc注册了信息
(4) 客户端 /proc/mounts记录客户端挂载参数
客户端挂载参数
atime 修改访问时间戳信息
noatime 不修改时间戳
diratame 修改目录访问时间戳
nodiratime 不修改时间戳
remount 重新挂载