[Openstack] [Swift] Multi device storage nodes - single .conf or one per device?

Mark Kirkwood mark.kirkwood at catalyst.net.nz
Thu Jun 11 23:28:49 UTC 2015


Clay, thanks for a very comprehensive answer!

I'll have to delve a bit more and see what I can achieve using the 
puppet module. I guess back patching in the change when it arrives is a 
possible option (I'm using the Icehouse branch of puppet-swift - our 
Openstack setup is running Icehouse).

With respect Aapche wsgi integration, we have recently moved to running 
a number of other Openstack services (e.g Keystone) this way, and I was 
hoping to "leverage" some of our existing puppet code to do likewise for 
Swift (ahem - so probably a bit of "We have this hammer here...use it to 
hit everything")!

Cheers

Mark

On 12/06/15 03:55, Clay Gerrard wrote:
> What a well timed question!
>
> 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.
>
> 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:
>
> https://review.openstack.org/#/c/184189/
>
> 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)
>
> 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)
>
> -Clay
>
> On Wed, Jun 10, 2015 at 5:08 PM, Mark Kirkwood
> <mark.kirkwood at catalyst.net.nz <mailto:mark.kirkwood at catalyst.net.nz>>
> wrote:
>
>     Hi,
>
>     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.
>
>     I note that devstack will create one config per device, e.g for a 2
>     device install:
>
>     $ ls -l /opt/stack/data/swift
>     total 16
>     lrwxrwxrwx  1 root  root    35 Jun 11 11:50 1 ->
>     /opt/stack/data/swift/drives/sdb1/1
>     lrwxrwxrwx  1 root  root    35 Jun 11 11:50 2 ->
>     /opt/stack/data/swift/drives/sdb1/2
>
>     $ ls -l /etc/swift/object-server/
>     total 16
>     -rw-r--r-- 1 stack stack 8148 Jun 11 11:49 1.conf
>     -rw-r--r-- 1 stack stack 8148 Jun 11 11:49 2.conf
>
>     $ head /etc/swift/object-server/1.conf
>     [DEFAULT]
>     # bind_ip = 0.0.0.0
>     bind_port = 6013
>     # bind_timeout = 30
>     # backlog = 4096
>     user = stack
>     swift_dir = /etc/swift
>     devices = /opt/stack/data/swift/1
>     mount_check = false
>     disable_fallocate = true
>
>
>     Whereas puppet-swift module seems to create just one, e.g:
>
>     $ ls -l /srv/node
>     total 0
>     drwxr-xr-x 5 swift swift 47 Jun 10 04:21 1
>     drwxr-xr-x 6 swift swift 62 Jun 10 04:21 2
>
>     $ head /etc/swift/object-server.conf
>     [DEFAULT]
>     devices = /srv/node
>     bind_ip = 192.168.5.181
>     bind_port = 6000
>     mount_check = false
>     user = swift
>     log_facility = LOG_LOCAL2
>     workers = 1
>
>
>     (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?
>
>     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...).
>
>     Cheers
>
>     Mark
>
>     _______________________________________________
>     Mailing list:
>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>     Post to     : openstack at lists.openstack.org
>     <mailto:openstack at lists.openstack.org>
>     Unsubscribe :
>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>
>





More information about the Openstack mailing list