文章目录
- 01.课程知识概述部分
- 02.知识回顾说明
- 03.存储服务配置参数
- 04.存储服务常用命令
- rpcinfo ----查看nfs服务注册信息
- 服务端使用:rpcinfo -p localhost 查看本地
- 客户端使用
- 服务端使用
- 05.存储服务客户端操作
- a 客户端挂载操作
- 永久挂载操作:
- 方法一:利用/etc/rc.local
- 方法二:利用/etc/fstab
- b.客户端挂载参数
- mount -o 挂载参数
- 存储服务权限说明:*****
- 06.存储服务企业应用
- 07.实时同步服务概述
- 08.实时同步服务监控软件部署:
- 存储服务器部署
- 第一个里程:安装监控数据变化的软件
- 第二个里程:监控命令使用
- 实现永久监控目录中数据变化 inotifywait -m 目录
- 实现目录中数据递归监控: inotifywait -rm 目录
- 可监听的事件
- 09.知识总结:
01.课程知识概述部分
1)存储服务配置文件
2)存储服务相关命令
3)存储服务客户端配置 mount
4)存储服务企业应用
5)实时同步服务概述 (定时任务备份数据)
6)实时同步实现方法 三种: 利用脚本实现 + 利用sersync + 利用lsync 扩展学习
02.知识回顾说明
1)存储服务概述说明 nfs
a 实现数据共享存储
b 节省运维成本开支
2)存储服务存储原理
a 数据存储原理过程 网络挂载操作
b 用户身份映射原理
3)存储服务部署过程
服务端:安装软件 (nfs-utils rpcbind) →编写配置文件/etc/exports →创建存储目录(属主属组nfsnobody) →启动服务
客户端:安装软件(nfs-utils) →挂载操作 mount -t nfs 172.16.1.31:/data /mnt
4)存储服务配置文件
a 配置文件格式信息 3个部分
1)存储目录信息
2)允许挂载主机
3)进行挂载存储参数 rw ro async sync root_squash no_root_squash all_squash no_all_squash
root_squash root 用户映射完毕 无法进行数据存储
***no_all_squash ---- 是否将用户信息做映射转换 将普通用户身份不做转换
***root_squash ---- 是否将用户信息做映射转换 将root用户身份进行转换
03.存储服务配置参数
anonuid: 指定映射用户身份信息uid数值
anongid: 指定映射用户身份信息gid数值
需要在服务端也创建相同uid用户
总结:配置存储服务参数时:root_squash,no_all_squash,anonuid=xxx,anongid=xxx
默认配置↓
# cat /var/lib/nfs/etab --- 记录nfs服务配置配置信息
[root@nfs01 ~]# cat /var/lib/nfs/etab
/data web*(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
04.存储服务常用命令
rpcinfo ----查看nfs服务注册信息
服务端使用:rpcinfo -p localhost 查看本地
rpcinfo -p 172.16.1.31
-p(probe,探测) 列出所有在host用portmap注册的RPC程序,如果没有指定host,就查找本机上的RPC程序。
-n(port number,端口号) 根据-t或者-u,使用编号为port的端口,而不是由portmap指定的端口号。
-u(UDP) UDP RPC调用host上程序program的version版本(如果指定的话),并报告是否接收到响应。
-t(TCP) TCP RPC调用host上程序program的version版本(如果指定的话),并报告是否接收到响应。
-b(broadcast,广播) 向程序program的version版本进行RPC广播,并列出响应的主机。
-d(delete,删除) 将程序program的version版本从本机的RPC注册表中删除。只有具有root特权的用户才可以使用这个选项。
客户端使用
showmount ----查看可用挂载目录信息
showmount -e 172.16.1.31
-d:仅显示已被NFS客户端加载的目录;
-e:显示NFS服务器上所有的共享目录。
服务端使用
exportfs--- 管理nfs服务运行状态
exportfs -rv 重载
-a 打开或取消所有目录共享。
-o options,...指定一列共享选项,与 exports(5) 中讲到的类似。
-i 忽略 /etc/exports 文件,从而只使用默认的和命令行指定的选项。
-r 重新共享所有目录。它使 /var/lib/nfs/xtab 和 /etc/exports 同步。 它将 /etc/exports 中已删除的条目从 /var/lib/nfs/xtab 中删除,将内核共享表中任何不再有效的条目移除。
-u 取消一个或多个目录的共享。
-f 在“新”模式下,刷新内核共享表之外的任何东西。 任何活动的客户程序将在它们的下次请求中得到 mountd添加的新的共享条目。
-v 输出详细信息。当共享或者取消共享时,显示在做什么。 显示当前共享列表的时候,同时显示共享的选项。
05.存储服务客户端操作
a 客户端挂载操作
mount -t nfs 存储服务器地址:存储目录 本地挂载点目录
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 98G 1.7G 97G 2% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 127M 888M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 98G 1.6G 97G 2% /mnt
永久挂载操作:
方法一:利用/etc/rc.local
方法二:利用/etc/fstab
172.16.1.31:/data /mnt nfs defaults 0 0
PS:关注系统启动顺序
先加载/etc/fstab → 启动网络服务 → 加载/etc/fstab(systemctl start remote-fs.target)
检查是否开机自启↓
b.客户端挂载参数
cat /proc/mounts
关注点:
172.16.1.31:/data /mnt nfs4 rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.7,local_lock=none,addr=172.16.1.31 0 0
mount -o 挂载参数
rsize 提升数据存储效率,减缓存储服务器压力 在客户端内存中设置了缓存
wsize 提升数据读取效率,减缓存储服务器压力 在客户端内存中设置了缓冲
hard 实现长连接挂载操作 对于架构而言,配置hard容易造成耦合度过高(连接关系太紧密了,一个坏了影响其他的)rsize 提升数据存储效率,减缓存储服务器压力 在客户端内存中设置了缓存
wsize 提升数据读取效率,减缓存储服务器压力 在客户端内存中设置了缓冲
hard 实现长连接挂载操作 对于架构而言,配置hard容易造成耦合度过高(连接关系太紧密了,一个坏了影响其他的)
soft 实现长连接挂载操作 (具有超时时间timeo=600秒) 对于架构而言,配置soft可以实现解耦
proto 网络挂载时选择通讯协议(tcp可靠性高/udp效率性高)
atime 访问存储数据 →atime时间变化 →查看属性 →inode →磁盘(IO) →磁盘性能下降访问存储数据时,会消耗磁盘IO,影响磁盘性能
*noatime 访问存储数据时,不要更改atime属性信息,不会消耗磁盘IO,减少磁盘性能消耗
diratime 访问存储目录时,会消耗磁盘IO,影响磁盘性能
*nodiratime访问存储目录时,不要更改目录atime属性信息,不会消耗磁盘IO,减少磁盘性能消耗 优化
存储服务权限说明:*****
1)存储服务端配置文件参数没有设置正确(rw/ro xxx_squash )
2)存储服务端存储目录本身权限配置问题
3)存储客户端挂载参数配置问题 (ro)就会造成无法存储
4)存储目录权限继承关系 (服务端配置文件中不要有目录层级配置)
06.存储服务企业应用
弃用NFS案例:如何解决NFS服务单点故障
读取数据时:弃用NFS服务(将存储数据和web服务器数据做同步),让用户读取web服务器本地数据
写入数据时:弃用NFS服务(写入数据到本地,将数据进行恢复同步),让用户写入web服务器本地数据
或者将实时备份服务中的data挂载到web服务器
有条件还是要使用分布式存储
07.实时同步服务概述
A主机 新的数据 ----实时同步---- B主机 数据备份
如何实现数据实时同步:
1)发现数据变化 inotify(监控软件)
2)进行数据备份 rsync
08.实时同步服务监控软件部署:
https://man.linuxde.net/inotifywait
存储服务器部署
第一个里程:安装监控数据变化的软件
条件:确认epel源可以使用
yum install -y inotify-tools
第二个里程:监控命令使用
[root@nfs01 ~ 12:06:07]$ rpm -ql inotify-tools
/usr/bin/inotifywait ----监控数据变化命令
/usr/bin/inotifywatch ----统计数据变化次数 添加 删除 修改
-m是要持续监视变化。
-r使用递归形式监视目录。
-q减少冗余信息,只打印出需要的信息。
-e指定要监视的事件列表。
--timefmt是指定时间的输出格式。
--format指定文件变化的详细信息。inotifywait 目录 默认只监控一次
[root@nfs01 ~ 12:07:16]$ inotifywait /data
Setting up watches.
Watches established.
/data/ OPEN 123.txt
实现永久监控目录中数据变化 inotifywait -m 目录
-m|--monitor Keep listening for events forever. 保持永久监控
实现目录中数据递归监控: inotifywait -rm 目录
-r|--recursive Watch directories recursively.监控目录中子目录数据变化
利用脚本实现实时同步:notifywait + rsync
利用实时同步软件实现: sersync
可监听的事件
事件 描述
access 访问,读取文件。
modify 修改,文件内容被修改。
attrib 属性,文件元数据被修改。
move 移动,对文件进行移动操作。
create 创建,生成新文件
open 打开,对文件进行打开操作。
close 关闭,对文件进行关闭操作。
delete 删除,文件被删除。
09.知识总结:
1)存储服务配置参数
如何实现用户映射,保存数据
2)存储服务常用命令
showmount rpcinfo
3)存储服务客户端操作
如何进行挂载使用存储服务器(临时/永久挂载)
存储客户端挂载参数信息
4)存储服务器企业应用
弃用NFS方案
5)如何实现实时同步存储数据 inotify 监控数据变化的软件