事象内容

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