免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8592 | 回复: 8

[FreeBSD] 关于实时监控目录变化的要求. 【已解决】 [复制链接]

论坛徽章:
10
金牛座
日期:2014-09-16 19:02:48技术图书徽章
日期:2015-11-24 01:37:29操作系统版块每日发帖之星
日期:2015-11-18 06:20:002015年亚洲杯之沙特阿拉伯
日期:2015-04-13 17:33:462015年迎新春徽章
日期:2015-03-04 09:51:162015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2014-12-04 19:33:55白羊座
日期:2014-09-17 19:34:42巨蟹座
日期:2014-09-16 21:09:4815-16赛季CBA联赛之同曦
日期:2016-06-27 23:23:07
发表于 2017-10-01 13:51 |显示全部楼层
本帖最后由 qq58945591 于 2017-10-22 10:36 编辑

由于线上机器还有一台老的FreeBSD 8.4 , 领导要求对上面的某个目录进行实时同步备份, 任何变动包括增删改都配合rsync实时同步至另外一台内网机器,防止这台机器挂了,数据没有及时同步.
FreeBSD 上没有Linux上常用的inotify机制以及工具包, 查了一下,说是bsd 上有类似inotify 机制的是kqueue , 网上找了一下,目前发现两个工具说是支持这种实时监控的需求.


1. fswatch
这个玩意简单测试了一下,针对少量文件是有效,大量文件的话,需要配合打开内核参数kern.maxfiles 加大该参数, 但不幸的是,在实测监控包含大量文件的目录当中出现卡死无响应问题 , 暂时放弃.

2. clsync
这个据说也支持,但还没时间测试, 效果未知.


所以,只好到论坛来求助一下,有没有什么比较好用的类似于Linux 上的 inotify +rsync 实时监控目录并同步的方案,工具等, 求推荐或者建议.

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
发表于 2017-10-02 10:53 来自手机 |显示全部楼层
这种不应该用监控来解决

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
发表于 2017-10-02 10:54 来自手机 |显示全部楼层
上drbd或者集群文件系统

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
发表于 2017-10-02 10:58 来自手机 |显示全部楼层
在Linux下是有DRBD可以使用的。FreeBSD下也有与DRBD类似的项目,名字为Highly Available Storage(HAST)

论坛徽章:
10
金牛座
日期:2014-09-16 19:02:48技术图书徽章
日期:2015-11-24 01:37:29操作系统版块每日发帖之星
日期:2015-11-18 06:20:002015年亚洲杯之沙特阿拉伯
日期:2015-04-13 17:33:462015年迎新春徽章
日期:2015-03-04 09:51:162015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2014-12-04 19:33:55白羊座
日期:2014-09-17 19:34:42巨蟹座
日期:2014-09-16 21:09:4815-16赛季CBA联赛之同曦
日期:2016-06-27 23:23:07
发表于 2017-10-02 22:25 |显示全部楼层
感谢楼上回复, 改drbd 有点大工程了,不现实。现在力求最简单方式,仅监控目录变化同步文件即可,无奈没有什么好的工具啊。

论坛徽章:
0
发表于 2017-10-17 11:19 |显示全部楼层
那么, 用zfs 定时快照增量发送接收呢?

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
发表于 2017-10-19 09:06 |显示全部楼层
回复 6# zmoon

快照已经不是实时的了。
如果可以忍受分钟级的延迟,cron+rsync也可以。

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-04-01 06:20:00
发表于 2017-10-21 18:11 |显示全部楼层
是否可以尝试将需要监控的目录操作写入到一个log中,然后写一个daemon秒级监控该log最后一行的变化情况。一旦发生写入操作,在写入完成后立即启用rsync。

论坛徽章:
10
金牛座
日期:2014-09-16 19:02:48技术图书徽章
日期:2015-11-24 01:37:29操作系统版块每日发帖之星
日期:2015-11-18 06:20:002015年亚洲杯之沙特阿拉伯
日期:2015-04-13 17:33:462015年迎新春徽章
日期:2015-03-04 09:51:162015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2014-12-04 19:33:55白羊座
日期:2014-09-17 19:34:42巨蟹座
日期:2014-09-16 21:09:4815-16赛季CBA联赛之同曦
日期:2016-06-27 23:23:07
发表于 2017-10-22 10:36 |显示全部楼层
问题暂时解决了,最终方案还是用回fswatch, 但是分拆多个部分启动多进程进行监控, 不至于同时监控总目录由于小文件数量太多导致无响应.

期间也测试了其他方案,包括python 版的watchdog ,  以及python 使用gevent异步方法的,效果都不够理想.

目前虽然暂时是解决了,但毕竟不是长久之计,随着文件数量增多,响应延迟还是可能会出现的.


好像在新版本的freebsd 上有基于libinotify库可以使用的inotify-tools,   老式freebsd没有,或者可能需要自己另行开发改造源码吧,可惜我没有这个能力. 另外,似乎这种需求也很少,网上找的解决方案都是linux 的,即便是linux , 基于文件实时同步这种场景也是很low的做法了,现如今都是各种分布式存储,对象存储了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP