when I tail log, it seems that swift-container-reconciler need memcache.
Jun 14 09:55:17 compute-1 container-reconciler: STDOUT: ERROR:root:Error connecting to memcached: 127.0.0.1:11211#012Traceback (most recent call last):#012 File "/usr/lib/python2.7/dist-packages/swift/common/memcached.py", line 239, in _get_conns#012 fp, sock = self._client_cache[server].get()#012 File "/usr/lib/python2.7/dist-packages/swift/common/memcached.py", line 135, in get#012 fp, sock = self.create()#012 File "/usr/lib/python2.7/dist-packages/swift/common/memcached.py", line 128, in create#012 sock.connect((host, int(port)))#012 File "/usr/lib/python2.7/dist-packages/eventlet/greenio.py", line 239, in connect#012 socket_checkerr(fd)#012 File "/usr/lib/python2.7/dist-packages/eventlet/greenio.py", line 43, in socket_checkerr#012 raise socket.error(err, errno.errorcode[err])#012error: [Errno 111] ECONNREFUSED (txn: tx730c3a1f9f914a0199cbd-00557cdf05)
This is due to the fact that the container reconciler uses the swift InternalClient to communicate inside the cluster, which uses a proxy server. If you look at your container- reconciler. conf you'll see it uses the proxy and has the cache in the pipeline. So by default yes it does use memcache.
If you don't want to use it, you can remove it from the pipeline. Or if you have a bunch of memcache servers your are already using, define them in /etc/swift/ memcache. conf and drop this file on all servers that needs memcache hosts defined.