1.NFS的介绍
NFS主要功能是通过网络(一般是局域网)让不同主机之间共享文件或者目录
获取数据的方式:
samba windows--linux之间传输数据
NFS Linux-Linux之间传输数据
用于门户网站:
一个用户 --存储服务器
上万用户 --存储服务器
2.利用分布式存储
Moosefs(mfs) 比较落伍
GlusterFS 企业常用
FastDFS 企业常用
3.NFS存储服务的作用
1)实现数据的共享存储
2)编写数据操作管理
3)节省购买服务器成本开销
4.NFS工作流程图
NFS(房源)、RPC(中介)、客户端(租客)
步骤1:先启动RPC服务
步骤2:启动NFS服务(向RPC服务注册启动的端口)
步骤3:客户请求NFS服务-->RPC服务
步骤4:RPC返回端口到租客
步骤5:客户端拿着地址端口请求传输数据
PS:RPC-远程过程调用服务程序--相当于租房中的中的中介(来管理NFS的随机端口)
5.NFS服务部署流程
服务端部署:
第一个历程:下载安装软件
rpm -qa|egrep "nfs|rpc"
yum -y install nfs-utils rpcbind
第二个历程:编写nfs服务配置文件
vim /etc/exports(man exports)
01:设置数据存储的目录
02:设置网络一个白名单(允许哪些主机可以链接到存储服务器进行数据存储)
03:配置存储目录的权限信息,存储目录一些功能
/data 172.16.1.0/24(rw,sync)
第三个历程:创建一个存储目录
mkdir /data
chown nfsnobody.nfsnobody /data
第四个历程:启动服务程序
先启动 rpc服务---systemctl start rpcbind.service
systemctl enable rpcbind.service
在启动 nfs服务---systemctl start nfs
systemctl enable nfs
客户端部署:
第一个历程:安装nfs服务软件
yum -y install nfs-utils
第二个历程:实现远程挂载共享目录
mount -t nfs 172.16.1.31:/data /mnt
第三个历程:
在/mnt目录创建文件,服务端/data也会同步数据
6.NFS服务工作原理:
服务端:
1.启动rpc服务,开启111端口
2.启动nfs服务
3.实现nfs服务进程和端口号的注册
补充:检查nfs服务进程与端口注册信息--执行命令rpcinfo -p 172.16.1.31(localhost)
一旦重启nfs服务端口会发生随机变化
客户端:
1.建立TCP网络连接
2.客户端执行挂载命令,进行远程挂载
3.可以实现数据远程数据存储
7.nfs服务配置详细说明
实现多个网段主机进行挂载
第一种方法:
vim /etc/exports
/data 172.16.1.0/24(rw,sync) 10.0.0.0/24(rw,sync)
第二种方法:
/data 172.16.1.0/24(rw,sync)
/data 10.0.0.0/24(rw,sync)
总结:共享目录跟哪些因素有关
1:和存储目录的本身权限有关(755 属主:nfsnobody)
2:和配置文件中的权限配置有关(rw/wo,XXX_squash,anongid=XXX,anonuid=XXX)
3.和客户端挂载命令参数有关
8.nfs配置参数说明
rw --存储目录是否有读写权限
ro --存储目录是否是只读权限
sync --同步方式存储数据
async --异步方式存储数据
no_root_squash --不要将root用户身份进行转换
root_squash --将root用户身份进行转换
all_squash --将所有用户身份都进行转化
no_all_squash --不要将普通用户身份进行转换
同步方式---存入硬盘当中
优点:传输数据可靠,不易丢失数据
缺点:数据传输慢
异步方式---存入内存当中
优点:传输数据块
缺点:传输数据不可靠,易丢失数据
9.企业互联网公司如何配置NFS各种squash参数
保证网站存储服务器用户数据安全性:
no_all_squash 需要进行配置 共享目录权限为www (确保客户端和服务端 UID数值一致)
root_squash 需要进行配置 root---nfsnobody data目录---www
以上默认配置(很多服务默认配置都是从安全角度出发)
如何查看nfs服务的默认配置
cat /var/lib/nfs/etab (只是记录文件)
如何让root用户可以操作管理www用户管理的data目录
root----root_squash----www----data目录
anonuid=65534,anongid=65534, ----可以指定映射的用户信息
修改映射用户:www=1002
/data 172.16.1.0/24(rw,sync,anonuid=1002,anongid=1002)
企业中如何编辑nfs配置文件
01.通用方法:
/data 172.16.1.0/24(rw,sync)
02.特殊情况:(让部分人员不能操作存储目录,可以查看目录中的数据)
/data 10.0.0.0/24(ro,sync)
03.修改默认的匿名用户
/data 172.16.1.0/24(rw,sync,anonuid=XXX,anongid=XXX)
无法针对每个用户设置
FTP可以 分布式存储可以
10.nfs服务问题
01.nfs服务重启,挂载后创建数据比较慢
服务器重启方式不正确
服务重启:
a.systemctl restart nfs (强制退出)(restart重启冷却时间大概90s左右)
b.systemctl reload nfs(平滑重启)(强制断开没有数据传输的链接)
11.nfs客户端详细配置说明
mount -t nfs 172.16.1.31:/data /mnt
如何实现自动挂载:
1:利用rc.local
echo "mount -t 172.16.1.31:/data /mnt" /etc/rc.local
2.利用fstab文件
vim /etc/fstab
172.16.1.31:/data /mnt nfs defaults 0 0
特殊服务已经开启了
centos6:无法实现网络存储服务自动挂载原因
根据系统服务启动顺序
按照顺讯一次启动:network服务--sshd服务--crond服务--rsync服务--rpcbind服务--nfs服务(串行方式)
先加载/etc/fstab ---network服务 ---autofs服务
autofs服务程序:开机自动启动
服务启动好之后,重新加载fstab
centos7:无法实现网络存储服务自动挂载原因
根据系统服务启动顺序
network服务
sshd服务
crond服务
rsync服务(并行方式)
remote-fs.target:开机自动启动
服务启动好之后,重新加载fstab
12.客户端mount命令参数(-o)
rw ----实现挂载后挂载目录可读可写(默认)
ro ----实现挂载后挂载目录可读可写
suid ----在共享目录中可以让setuid权限位生效(默认)
nosuid ----在共享目录中可以让setuid权限位失效(提高共享目录的安全性)
exec ----共享目录中的执行文件可以直接执行(默认)
noexec ----共享目录中的执行文件无法直接执行(提高共享目录的安全性)
auto ----可以实现自动挂载 mount -a(可以试想批量挂载)
vim /etc/fstab 172.16.1.31:/data /mnt auto 0 0
noauto ----不可以实现自动挂载
user ----可以让普通用户卸载挂载点
nouser ----禁止普通用户卸载挂载点
13.客户端如何卸载
umount /mnt
umount -lf /mnt (强制卸载挂载点)
-l 不退出挂载点目录进行卸载
-f 强制进行卸载操作
14.NFS服务挂载不上排查方法:
服务端进行排查:
1.检查nfs进行信息是否注册
rpcinfo -p localhost
问题原因:服务启动顺序不对,没有启动nfs服务
2.有没有可用的存储目录
cat /etc/exports
showmount -e 172.16.1.31(查看有没有共享的目录)
问题原因:配置文件编写有问题
3.在服务端进行挂载测试
是否能能够在存储目录中创建或者删除
客户端进行排查:
1.查看nfs服务是否启动
2.检查有没有 可用的存储目录
3.ping 172.16.1.31