事象内容
Swift のオブジェクトストレージノードの messages ログに下記エラーメッセージが出力される。
object1 object-replicator: ERROR creating /srv/node/vdb/objects:
[root@object1 ~]# tail -F /var/log/messages Oct 31 23:05:17 object1 object-replicator: SIGTERM received Oct 31 23:05:17 object1 systemd: Stopping OpenStack Object Storage (swift) - Object Replicator... Oct 31 23:05:17 object1 systemd: Started OpenStack Object Storage (swift) - Object Replicator. Oct 31 23:05:17 object1 systemd: Starting OpenStack Object Storage (swift) - Object Replicator... Oct 31 23:05:17 object1 object-replicator: Starting 3317 Oct 31 23:05:17 object1 object-replicator: オブジェクトレプリケーターをデーモンモードで開始中です。 Oct 31 23:05:17 object1 object-replicator: オブジェクト複製パスを開始中です。 Oct 31 23:05:17 object1 object-replicator: ERROR creating /srv/node/vdb/objects: #012Traceback (most recent call last):#012 File "/usr/lib/python2.7/site-packages/swift/obj/replicator.py", line 810, in build_replication_jobs#012 mkdirs(obj_path)#012 File "/usr/lib/python2.7/site-packages/swift/common/utils.py", line 1284, in mkdirs#012 os.makedirs(path)#012 File "/usr/lib64/python2.7/os.py", line 157, in makedirs#012 mkdir(name, mode)#012OSError: [Errno 13] Permission denied: '/srv/node/vdb/objects' Oct 31 23:05:17 object1 object-replicator: ERROR creating /srv/node/vdc/objects: #012Traceback (most recent call last):#012 File "/usr/lib/python2.7/site-packages/swift/obj/replicator.py", line 810, in build_replication_jobs#012 mkdirs(obj_path)#012 File "/usr/lib/python2.7/site-packages/swift/common/utils.py", line 1284, in mkdirs#012 os.makedirs(path)#012 File "/usr/lib64/python2.7/os.py", line 157, in makedirs#012 mkdir(name, mode)#012OSError: [Errno 13] Permission denied: '/srv/node/vdc/objects' Oct 31 23:05:17 object1 object-replicator: 0.00286817550659 秒間で何も複製されませんでした。 Oct 31 23:05:17 object1 object-replicator: オブジェクト複製が完了しました。(0.00 分) Oct 31 23:05:23 object1 object-auditor: Begin object audit "forever" mode (ZBF) Oct 31 23:05:23 object1 object-auditor: オブジェクト監査 (ZBF) 「forever」モード完了: 0.00s。合計検疫済み: 0、合計エラー: 0、合計ファイル/秒: 0.00、合計バイト/秒: 0.00、監査時間: 0.00、率: 0.00 Oct 31 23:05:33 object1 container-replicator: 複製の実行を開始中 Oct 31 23:05:33 object1 container-replicator: 複製の実行が終了しました Oct 31 23:05:33 object1 container-replicator: 0.00060 秒で 0 個の DB の複製を試行しました (0.00000/s) Oct 31 23:05:33 object1 container-replicator: 0 個の DB が削除されました Oct 31 23:05:33 object1 container-replicator: 成功 0、失敗 0 Oct 31 23:05:33 object1 container-replicator: diff:0 diff_capped:0 empty:0 hashmatch:0 no_change:0 remote_merge:0 rsync:0 ts_repl:0
解決方法
SElinux のセキュリティーが原因であるため、オブジェクトストレージノードで、/srv/nodeディレクトリのセキュリティコンテキストを、swift_data_tタイプ、object_rロール、およびsystem_uユーザのセキュリティレベル(s0)を最低レベルに変更する。
[root@object1 ~]# chcon -R system_u:object_r:swift_data_t:s0 /srv/node