Re: Beta testing crush optimization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 05/31/2017 12:32 PM, han vincent wrote:
> hello, loic:
>      
> I had a cluster build with hammer 0.94.10, then I used the following commands to change the algorithm from "straw" to "straw2".
> 1. ceph osd crush tunables hammer
> 2. ceph osd getcrushmap -o /tmp/cmap
> 3. crushtool -d /tmp/cmap -o /tmp/cmap.txt
> 4. vim /tmp/cmap.txt and change the algorithm of each bucket from "straw" to "straw2"
> 5. crushtool -c /tmp/cmap.txt -o /tmp/cmap
> 6. ceph osd setcrushmap -i /tmp/cmap
> 7. ceph osd crush reweight-all
> after that, I used "python crush" to optimize the cluster, the version of "python crush" is 1.0.32
> 
> 1. ceph report > report.json
> 2. crush optimize --crushmap report.json --out-path optimized.crush
> Unfortunately, there was an error in the output:
> 
> 2017-05-30 18:48:01,803 42.1 map to [4, 9] instead of [4, 8]
> 2017-05-30 18:48:01,838 49.3af map to [9, 2] instead of [9, 3]
> 2017-05-30 18:48:01,838 49.e3 map to [6, 4] instead of [6, 5]
> 2017-05-30 18:48:01,838 49.e1 map to [7, 2] instead of [7, 3]
> 2017-05-30 18:48:01,838 49.e0 map to [5, 1] instead of [5, 0]
> 2017-05-30 18:48:01,838 49.20d map to [3, 1] instead of [3, 0]
> 2017-05-30 18:48:01,838 49.20c map to [2, 9] instead of [2, 8]
> 2017-05-30 18:48:01,838 49.36e map to [6, 1] instead of [6, 0]
> ......
> 
> Traceback (most recent call last):
>  File "/usr/bin/crush", line 25, in <module>
> sys.exit(Ceph().main(sys.argv[1:]))
>  File "/usr/lib64/python2.7/site-packages/crush/main.py", line 136, in main
> return self.constructor(argv).run()
>  File "/usr/lib64/python2.7/site-packages/crush/optimize.py", line 373, in run
> crushmap = self.main.convert_to_crushmap(self.args.crushmap)
>  File "/usr/lib64/python2.7/site-packages/crush/ceph/__init__.py", line 690, in convert_to_crushmap
> c.parse(crushmap)
>  File "/usr/lib64/python2.7/site-packages/crush/__init__.py", line 138, in parse
> return self.parse_crushmap(self._convert_to_crushmap(something))
>  File "/usr/lib64/python2.7/site-packages/crush/ceph/__init__.py", line 416, in _convert_to_crushmap
> crushmap = CephReport().parse_report(something)
>  File "/usr/lib64/python2.7/site-packages/crush/ceph/__init__.py", line 137, in parse_report
> raise MappingError("some mapping failed, please file a bug at "
> crush.ceph.MappingError: some mapping failed, please file a bug at http://libcrush.org/main/python-crush/issues/new
> Do you know what the problem is? can you help me? I would be very grateful to you.    

This is a safeguard to make sure python-crush maps exactly as expected. I'm not sure yet why there is a difference but I'll work on that, using the crush implementation found in hammer 0.94.10. For your information, the full output of:

$ crush analyze --crushmap /tmp/han-vincent-report.json

is at https://paste2.org/PyeHe2dC What I find strange is that your output regarding pool 42 is different than mine. You have:


2017-05-30 18:48:01,803 42.1 map to [4, 9] instead of [4, 8]

and I have

2017-05-31 12:55:04,207 42.3 map to [4, 3] instead of [4, 2]
2017-05-31 12:55:04,207 42.7 map to [8, 0] instead of [8, 1]
2017-05-31 12:55:04,207 42.1 map to [4, 9] instead of [4, 8]

I wonder if that's a sign that the changes to the crushmap following your change to straw2 are still going on. Would you mind sending me the output of ceph report (please run it again after receiving this mail) ?

Cheers

-- 
Loïc Dachary, Artisan Logiciel Libre
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux