[Openstack] [Swift] Bug: swift-ring-builder <builder file> set_weight doesn't work

Alexandr Porunov alexandr.porunov at gmail.com
Mon Jan 30 08:25:55 UTC 2017


Hello Matt,

Thank you very much for your help! It's awesome. Now everything works!

Best regards,
Alexandr

On Mon, Jan 30, 2017 at 12:48 AM, Matthew Oliver <matt at oliver.net.au> wrote:

> Hey Alexandr,
>
> Thanks for the email. I can help you in this instance, and I'll push up a
> patch to correct the usage documentation for the long version of the
> set_weight command.
>
>
> On Sun, Jan 29, 2017 at 8:33 AM, Alexandr Porunov <
> alexandr.porunov at gmail.com> wrote:
>
>> Hello,
>>
>> I can't change a weight of the device.
>> Here is a list of my devices:
>>
>> Devices:    id  region  zone      ip address  port  replication ip
>>  replication port      name weight partitions balance meta
>>              0       1     1           host1  6000           host1
>>        6000        d1 1000.00       1024    0.00 bla bla1 bla2
>>              1       1     1           host1  6000           host1
>>        6000        d2 1000.00       1024    0.00 bla bla1 bla2
>>              2       1     1           host1  6000           host1
>>        6000        d3 1000.00       1024    0.00 bla bla1 bla2
>>
>> Here is what I tried to change a weight:
>> swift-ring-builder object.builder set_weight --region 1 --zone 1 --ip
>> host1 --port 6000 --replication-ip host1 --replication-port 6000 --device
>> d1 --meta "bla bla1 bla2" --weight 1000
>>
>
> There is a problem with the command as you've sent it. But I agree it
> isn't obvious from the usage error. Using the long form (--region,
> --device, etc) is just defining search criteria for what you want to
> change. Not specifying what you want to change.
>
> So in your case above your looking for a device that already has a weight
> of 1000, and your not specifying what the change it to. To fix your
> command, you'd need to:
>
>   swift-ring-builder object.builder set_weight --region 1 --zone 1 --ip
> host1 --port 6000 --replication-ip host1 --replication-port 6000 --device
> d1 --meta "bla bla1 bla2" --weight 1024 1000
>
> NOTE: I am sending in the 1000 as the last option. Obviously as these are
> search terms you don't actually have to send them all in, only the ones
> that identify the devices or device you want to change.
>
>
>> swift-ring-builder object.builder set_weight r1z1-host1:6000Rhost1:6000
>> d1_"bla bla1 bla2" 2000
>>
>
> The short version above is failing, as you forgot to add the '/' seperator
> between the port and the device, given your example it should have been:
>
>     swift-ring-builder object.builder set_weight
> r1z1-host1:6000Rhost1:6000/d1_"bla bla1 bla2" 2000
>
> NOTE: the '/' before the d1.
>
> What your putting in there is just a search for devices to change. You
> don't have to put the full string in. I guess if you have a tool that will
> use the full definition then fine. I find when wanting to update just 1
> host it's easier to do so via the device id:
>
>   swift-ring-builder set_weight d1 2000
>
> In both cases it doesn't work and shows the next information:
>>
>> swift-ring-builder <builder_file> set_weight <search-value> <weight>
>>
>>     [<search-value> <weight] ...
>>
>>     [--yes]
>>
>>
>>
>> or
>>
>>
>>
>> swift-ring-builder <builder_file> set_weight
>>
>>     --region <region> --zone <zone> --ip <ip or hostname> --port <port>
>>
>>     --replication-ip <r_ip or r_hostname> --replication-port <r_port>
>>
>>     --device <device_name> --meta <meta> --weight <weight>
>>
>>     [--yes]
>>
>>
>
> This usage isn't been very useful here, as it's missing the actual adding
> the weight. I'll raise a bug and patch to address this.
>
>
>>
>>
>>     Where <r_ip>, <r_hostname> and <r_port> are replication ip, hostname
>>
>>     and port.
>>
>>     Any of the options are optional in both cases.
>>
>>
>>
>>     Resets the devices' weights. No partitions will be reassigned to or
>> from
>>     the device until after running 'rebalance'. This is so you can make
>>
>>     multiple device changes and rebalance them all just once.
>>
>>
>>
>>     Option --yes assume a yes response to all questions.
>>
>>
>> Please, correct me if it is my fault.
>>
>> Best regards,
>> Alexandr
>>
>> _______________________________________________
>> Mailing list: http://lists.openstack.org/cgi
>> -bin/mailman/listinfo/openstack
>> Post to     : openstack at lists.openstack.org
>> Unsubscribe : http://lists.openstack.org/cgi
>> -bin/mailman/listinfo/openstack
>>
>>
> regards,
> Matt
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20170130/0ab73f2d/attachment.html>


More information about the Openstack mailing list