文件存储NAS是否支持inotify

网站编辑2022-01-07 10:54:47629

  文件存储NAS是否支持inotify?使用inotify配合rsync是一种常见的实时数据备份、同步方案,由于inotify本身的实现机制会导致NAS文件系统上inotifywait无法正常工作。
  
  inotifywait原理简介
  
  inotifywait是Linux内核子模块inotify的用户态接口实现,inotify实现在VFS层。当文件操作到达VFS层时,inotify模块会将操作类型(创建、删除、属性改变等)和操作对象(文件名)反馈给用户态,用户态的inotifywait即可将本次操作信息输出给用户。
  
  NAS上使用inotifywait存在的问题
  
  由于inotify是在Kernel的VFS层实现的,因此在NFS文件系统上,远程客户端对NFS文件系统的操作无法被本地Kernel所感知,inotify也就无法感知远程客户端的文件修改操作。因此,在NAS上使用inotifywait时,例如在客户端A和B同时挂载一个NAS文件系统,在客户端A启动inotifywait监听挂载目录,会出现以下现象:
  
  在客户端A上操作挂载目录中的文件,可以被inotifywait感知。
  

  在客户端B上操作挂载目录中的文件,inotifywait无法感知任何文件操作。


  
  替代方案
  
  替代方案为使用FAM。FAM是一个用来监听文件或目录的库,均在用户态实现,原理为在后台运行一个daemon,定时扫描目录,获取文件变化情况。但是使用FAM存在以下几个缺陷:
  
  需要用户在客户端编写程序调用FAM接口实现功能。
  
  对于文件数目很多的场景,使用该方案性能会较差,可能消耗大量资源,无法做到很好的实时性。

最新推荐

右侧广告图1
  • 对象存储OSS

    阿里云对象存储OSS是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。

    171.99/年

    包年75折

  • 标准OSS存储包

    适合图片/音视频等多媒体数据存储,数据实时处理,海量存储无上限

    89.00/年

  • 云备份

    云备份作为阿里云统一灾备平台,是一种简单易用、敏捷高效、安全可靠的公共云数据管理服务,可以为阿里云 ECS 整机、ECS 数据库、文件系统、NAS、OSS、Tablestore 以及自建机房内的文件、数据库、虚拟机、大规模 NAS 等提供备份、容灾保护以及策略化归档管理。

    486.00/年

    年中优惠

右侧广告图2