1.概述
存储: 用于存放用户上传的内容(数据),一般应用在网站集群中
如果不使用存储,用户上传的数据就直接存放在网站服务器上了,用户下次访问就可能找不到
如果使用存储,用户上传的内容存放在存储上面,用户访问就会访问存储. 位置: 网站后排.
2. 存储分类
分类 说明 硬件存储 硬件存储,硬盘多,使用的时候挂载即可 开源软件 普通存储NFS,分布式存储:FastDFS 云产品 阿里云OSS,腾讯云COS
3. NFS原理
服务组成:NFS服务和rpcbind(portmap)服务
4. 环境部署
环境 主机 nfs服务端 nfs01_xing 10.0.0.31 nfs客户端 web01_xing 10.0.0.7 (通过挂载使用)
4.1 服务端部署
##部署
yum install -y rpcbind nfs-utils
##启动rpcbind
systemctl enable rpcbind
systemctl start rpcbind
rpcinfo -p
#启动nfs
systemctl enable nfs
systemctl start nfs
rpcinfo -p
##配置
vim /etc/exports
/data/ 172.16.1.0/24(rw) ##共享/data/目录给172的网段并赋予读写权限
systemctl reload nfs
##目录与权限
chown -R nfsnobody.nfsnobody /data/
systemctl reload nfs
##挂载存储测试
mount -t nfs 172.16.1.31:/data/ /mnt/
##查看nfs服务端共享哪些目录
showmount -e ip或不写 #ip为nfs服务端ip
4.2 客户端部署
yum install -y nfs-utils
mount -t nfs 172.16.1.31:/data /mnt
4.3 NFS相关的文件
nfs服务端或客户端 NFS服务端配置 /etc/exports或者/var/lib/nfs/etab(当前使用的nfs服务端配置) NFS客户端配置 客户端:mount /etc/rc.local或/etc/fstab(当前系统的挂载情况)
4.4 nfs客户端永久挂载
1. 挂载命令写入到/etc/rc.local
chmod +x /etc/rc.d/rc.local
2. 按照/etc/fstab格式要求书写
5. NFS服务端的配置文件
5.1 配置文件格式
/etc/exports 第1部分 第2部分 共享目录 网段(选项)
5.2 NFS配置文件中网络配置
网段 172.16.1.0/24 常用 172.16.1.7 指定ip baidu.com 指定域名
5.3 服务端核心配置
服务端配置选项 说明 rw 可以读写共享目录 ro 只读 sync 同步,只要用户上传,就把数据写到磁盘上 async 异步,用户上传的数据,nfs先临时存放到内存中,过一段时间写入到磁盘. 并发高,数据可能丢失
5.4 服务端用户压缩
1. NFS客户端挂载NFS服务端后,创建的文件默认属于nfsnobody,这种操作就叫用户压缩(映射)
2. 用户压缩是通过NFS服务端的配置实现
服务端配置选项-用户压缩系列 说明 root_squash 如果客户端是root用户访问,则到了nfs服务端会被压缩 no_all_squash 如果客户端不是root用户访问,则不进行压缩 all_squash 所有用户都进行压缩( anonuid 和 anongid 用于指定压缩的匿名用户
5.4.1 用户压缩案例
设置/nfsdata共享目录,匿名用户为www. 客户端挂载到/upload-video/
www用户的uid,gid:1999 (服务端,客户端
##1.所有主机(nfs服务端和nfs客户端)添加用户 www uid统一1999
groupadd -g 1999 www
useradd -u 1999 -g www -s /sbin/nologin -M www
##2.nfs服务端配置
vim /etc/exports
/nfsdata/ 172.16.1.0(rw,all_squash,anonuid=1999,anongid=1999)
##创建目录
mkdir -p /nfsdata/
##修改所有者
chown -R www.www /nfsdata/
##重启
systemctl reload nfs
##3.客户端配置
#创建挂载目录
mkdir -p /upload-video/
##挂载
mount -t nfs 172.16.1.31:/nfsdata/ /upload-video/
##查看
df -h /upload-video/
##创建
touch /upload-video/xzb666.txt
touch /upload-video/xzb666.txt
##服务端查看
ll /nfsdata/
6. NFS优化
1.NFS优化: 硬件(物理服务器+nfs服务)
2. NFS安全优化: 客户端挂载 只能上传,无法执行
mount -o noexec,nosuid,nodev -t nfs 172.16.1.31:/data /video/
###这几个是客户端挂载选项
noexec 挂载的nfs目录中如果有命令,无法运行
nosuid 带有suid的命令
nodev 带有特殊属性的文件
7. 进军Sersync()