1 常用存储服务介绍
中小型企业:
- NFS Network File System,运行在linux--linux系统之间,通过网络在不同主机之间共享文件或目录
- Samba,运行在windows--linux系统之间,在linux上部署samba
大型企业:
分布式存储
- Moosefs(mfs) 最古老
- GlusterFS 第二多
- FastDFS 企业用的较多
2 NFS存储
NFS需要借助RPC服务,RPC服务相当于NFS的代理,每次NFS服务启动将开启多个进程,多个进程的端口号向RPC注册。RPC面向用户提供固定的访问端口,为用户屏蔽了NFS进程多实例多端口号的问题。
具体的工作流程:
服务端
1.启动rpc服务,开启111端口
2.启动nfs服务
3.实现nfs进程及端口号的注册
客户端
1.建立网络连接
2.客户端执行挂载命令,进行远程挂载
3.实现数据远程传输
2.1 服务端部署
2.1.1 安装nfs、rpcbind软件
yum -y install nfs-utils rpcbind
2.1.2 编写nfs配置文件
/etc/exports
配置文件格式:
01 02(03) 02(03)...
01:设置数据存储目录
02:网络白名单
03:存储目录的权限信息和一些功能
(03)常用参数:
rw 读写权限
ro 只读权限
sync 同步存储,数据写入硬盘,速度慢,安全
async 异步存储,数据写入内存,速度块,不安全
no_root_squash 不要将root用户身份进行转换
root_squash 将root用户身份进行转换
all_squash 将所有用户身份进行转换
no_all_squash 不将普通用户身份进行转换
anonuid 指定转换的用户id
anongid 指定转换的用户组id
结论:
1.nfs在进行用户映射时,默认映射到nfsnobody用户
2.为保证存储服务器安全,建议配置(no_all_squash,root_squash),且这两个选项是默认配置
3.在服务侧,如果配置no_all_squash,建议将共享文件夹的所属者和所属组改为客户端使用共享文
件夹的用户,且保证服务端和客户端用户的uid一致,这样客户侧只有指定用户能修改共享文件夹,能
最大限度保证安全。
4.配置(anonuid=xxx,anongid=xxx),让客户用root用户访问时,转换成共享文件夹的所属用户,
也能够修改共享文件夹内容。
实现多个网段允许挂载同一目录,白名单之间用空格隔开
/data 172.16.1.0/24(rw,sync) 10.0.0.0/24(rw,sync)
2.1.3 准备共享文件夹
创建文件夹
mkdir /data
更改所有者和所属组为nfsnobody
chown nfsnobody.nfsnobody /data
2.1.4 启动服务
先启动rpc(tcp 端口号111),后启动nfs
systemctl start rpcbind
systemctl enable rpcbind
systemctl start nfs
systemctl enable nfs
2.1.5 使用rpcinfo 查看nfs注册情况(可选)
rpcinfo -p [ip地址]
,不写ip地址代表查看本机
2.1.6 showmount查看共享目录情况(可选)
showmount -e [IP]
,不写IP查看本机
[root@nfs01 ~]$ showmount -e
Export list for nfs01:
/data 172.16.1.0/24
2.1.7 服务端检查能否挂载(可选)
mount -t nfs IP:/共享目录 挂载点
2.2 客户端部署
2.2.1 安装nfs软件
不安装nfs软件,系统无法识别nfs文件系统
yum install -y nfs-utils
2.2.2 远程挂载
mount -t nfs ip地址:共享目录 挂载点
mount -t nfs 172.16.1.31:/data /mnt
2.3 常用的nfs服务端配置文件编辑方法
1.通用方法
/data 172.16.1.0/24(rw,sync)
2.特殊情况(让部分人员不能操作存储目录,只有查看权限)
/data 10.16.0.0/24(ro,sync)
3.修改默认的匿名用户,不使用nfsnobody
/data 10.0.0.0/24(ro,sync,anonuid=xxx,anongid=xxx)
2.4 nfs服务端重启
服务重启有两种方式:
- restart 普通重启,强制断开所有连接,用户需要重新建立tcp连接,感知不好
- reload 平滑重启,强制断开没有数据传输的连接,有数据传输的等数据传输完再断开,感知好!!!
2.5 实现fstab自动挂载nfs文件夹
在/etc/fstab
文件中添加
172.16.1.31:/data /mnt nfs defaults 0 0
同时保证autofs(CentOS6)
、remote-fs(CentOS7)
服务开机自动加载。
原理:
CentOS开机时会先加载/etc/fstab文件,此时网络服务还没有加载,无法实现远程挂载。autofs或remote-fs服务在网络服务启动后启动,启动时会再次加载/etc/fstab,实现挂载。
网友评论