<div dir="ltr">What a well timed question!<div><br></div><div>A swift core maintainer recently did some analysis on this very question and the results strongly favored using multiple workers on different ports each handling only a single physical filesystem device.</div><div><br></div><div>To make it easier to achieve that configuration there's a patch to enable the swift-object-server wsgi worker handler to layout processes like this automatically based on the ports in the ring:</div><div><br></div><div><a href="https://review.openstack.org/#/c/184189/">https://review.openstack.org/#/c/184189/</a><br></div><div><br></div><div>However, that isn't in (yet) so it's not available to you in swift 1.13 - but the references to the benchmarks and graphs and i/o isolation should indicate that even in swift 1.13 you'll want to run multiple workers per disk - and if possible have those workers handling only one device for isolation (which until this change lands means config file per disk) </div><div><br></div><div>Unrelated, but I wonder why you think apache/mod_wsgi is better than having the swift-proxy-server process back right up to a simple ssl termination (i.e. stud)</div><div><br></div><div>-Clay</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 10, 2015 at 5:08 PM, Mark Kirkwood <span dir="ltr"><<a href="mailto:mark.kirkwood@catalyst.net.nz" target="_blank">mark.kirkwood@catalyst.net.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I'm looking at setting up a Swift cluster and am wondering if there is any strong preference for one vs many config files in this case.<br>
<br>
I note that devstack will create one config per device, e.g for a 2 device install:<br>
<br>
$ ls -l /opt/stack/data/swift<br>
total 16<br>
lrwxrwxrwx  1 root  root    35 Jun 11 11:50 1 -> /opt/stack/data/swift/drives/sdb1/1<br>
lrwxrwxrwx  1 root  root    35 Jun 11 11:50 2 -> /opt/stack/data/swift/drives/sdb1/2<br>
<br>
$ ls -l /etc/swift/object-server/<br>
total 16<br>
-rw-r--r-- 1 stack stack 8148 Jun 11 11:49 1.conf<br>
-rw-r--r-- 1 stack stack 8148 Jun 11 11:49 2.conf<br>
<br>
$ head /etc/swift/object-server/1.conf<br>
[DEFAULT]<br>
# bind_ip = 0.0.0.0<br>
bind_port = 6013<br>
# bind_timeout = 30<br>
# backlog = 4096<br>
user = stack<br>
swift_dir = /etc/swift<br>
devices = /opt/stack/data/swift/1<br>
mount_check = false<br>
disable_fallocate = true<br>
<br>
<br>
Whereas puppet-swift module seems to create just one, e.g:<br>
<br>
$ ls -l /srv/node<br>
total 0<br>
drwxr-xr-x 5 swift swift 47 Jun 10 04:21 1<br>
drwxr-xr-x 6 swift swift 62 Jun 10 04:21 2<br>
<br>
$ head /etc/swift/object-server.conf<br>
[DEFAULT]<br>
devices = /srv/node<br>
bind_ip = 192.168.5.181<br>
bind_port = 6000<br>
mount_check = false<br>
user = swift<br>
log_facility = LOG_LOCAL2<br>
workers = 1<br>
<br>
<br>
(both of these are Swift 1.13). Is there a scalability advantage to having each device having its own port? Or any other reason to prefer one of the other?<br>
<br>
I'm hoping to use Puppet + puppet-swift to actually deploy Swift, and actually run the proxy, account, container and object servers under Apache mod_wsgi (which is my next struggle with Puppet no doubt...).<br>
<br>
Cheers<br>
<br>
Mark<br>
<br>
_______________________________________________<br>
Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
Post to     : <a href="mailto:openstack@lists.openstack.org" target="_blank">openstack@lists.openstack.org</a><br>
Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
</blockquote></div><br></div>