[Openstack] [Swift] Bug: swift-ring-builder <builder file> set_weight doesn't work
Matthew Oliver
matt at oliver.net.au
Mon Jan 30 22:09:09 UTC 2017
You welcome, and thank you for bringing it to our attention. Thanks to you,
the next release will have the set_weight usage corrected:
https://bugs.launchpad.net/swift/+bug/1660214
Regards,
Matt
On Mon, Jan 30, 2017 at 7:25 PM, Alexandr Porunov <
alexandr.porunov at gmail.com> wrote:
> 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/20170131/099bf1d8/attachment.html>
More information about the Openstack
mailing list