11.17. Replica および Disperse サブボリューム内の一貫した時間属性
従来、gluster は、ブリックからのファイルまたはディレクトリーの時間属性 (ctime、atime、mtime) を使用していました。このアプローチの問題は、異なるノードでホストされるレプリカとブリック間で一貫性が維持されないことです。時間属性としてこのようなタイムスタンプ属性に依存するアプリケーションは、レプリカセットの同じブリックから必ずしも返されるとは限りません。
この問題を解決するには、gluster が DHT のレプリカセットと max-time からの同じブリックから stat 構造に対応できるようにしました。ただし、システムの起動時に ctime を変更する方法がないため、これにより問題を完全に回避することはありません (lutimes() は mtime と atime のみを許可します)。つまり、自己修復、内部 xattr 更新、およびリバランス後に、一貫した ctime をレプリカブック全体で維持することはできません。
したがって、このソリューションは、時間属性 (ctime、mtime、および atime) をファイルの xattr (拡張属性) として格納することです。xattr は、ファイル操作に基づいて更新されます。ファイルシステムファイルの操作が mtime および ctime のみを変更する場合、gluster はそのファイルの xattr の属性のみを更新します。これは、レプリカセットのすべてのバックエンドブリックに一貫して維持されます。
11.17.1. 前提条件
すべてのクライアントノード間で時刻を同期する必要があります。Red Hat は、すべてのクライアントノード間で同期し、一貫性のない時間属性を回避するためにネットワークタイムプロトコルサービスを設定することを推奨します。「ネットワークタイムプロトコルの設定」を参照してください。