事象内容

swift stat コマンドを実行すると、UnicodeDecodeError: ‘ascii’ codec can’t decode といったエラーメッセージが messages ログに出力される。

[root@controller ~]# tail -F /var/log/messages
Nov  2 22:13:29 controller proxy-server: STDERR: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 27: ordinal not in range(128)
Nov  2 22:13:29 controller proxy-server: STDERR: Removing descriptor: 54

解決方法

プロキシーサービスがインストールされているコントローラーノード、オブジェクトストレージノードのファイアウォールで Swift に必要となる通信を許可する。

コントローラーノードでは、TCPポート 8080の通信を許可する。

■ TCP 8080 許可
[root@controller swift]# firewall-cmd --add-port=8080/tcp --permanent
success
[root@controller swift]#

■ 設定の状態を確認 
[root@controller swift]# firewall-cmd --list-port --zone=public --permanent
5000/tcp 5672/tcp 8778/tcp 6080/tcp 80/tcp 3306/tcp 9696/tcp 9292/tcp 8472/tcp 6081/tcp 6082/tcp 123/udp 67/udp 8776/tcp 8472/udp 9191/tcp 11211/tcp 8774/tcp 8775/tcp 8080/tcp
[root@controller swift]# 

■ リロードして設定を反映
[root@controller swift]# firewall-cmd --reload
success
[root@controller swift]# 

各オブジェクトストレージノードでは、TCPポート 6200、6201、6202の通信を許可する。

■ TCP 6200 許可
[root@object1 ~]# firewall-cmd --add-port=6200/tcp --zone=public --permanent
success
[root@object1 ~]#

■ TCP 6201 許可 
[root@object1 ~]# firewall-cmd --add-port=6201/tcp --zone=public --permanent
success
[root@object1 ~]# 

■ TCP 6202 許可
[root@object1 ~]# firewall-cmd --add-port=6202/tcp --zone=public --permanent
success
[root@object1 ~]#

■ 設定の状態を確認  
[root@object1 ~]# firewall-cmd --list-port --zone=public --permanent
6200/tcp 6201/tcp 6202/tcp
[root@object1 ~]# 

■ リロードして設定を反映
[root@object1 ~]# firewall-cmd --reload
success
[root@object1 ~]#