Bug 1687446 - Include numactl in overcloud image (so we may start ceph daemons with numactl)
Summary: Include numactl in overcloud image (so we may start ceph daemons with numactl)
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tripleo-puppet-elements
Version: 13.0 (Queens)
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: z7
: 13.0 (Queens)
Assignee: John Fulton
QA Contact: Yogev Rabl
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-03-11 13:34 UTC by John Fulton
Modified: 2019-07-10 10:41 UTC (History)
8 users (show)

Fixed In Version: openstack-tripleo-puppet-elements-8.0.2-2.el7ost
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-07-10 10:41:36 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Launchpad 1819465 0 None None None 2019-03-11 14:24:59 UTC
OpenStack gerrit 643040 0 'None' MERGED Add numactl to overcloud image 2020-04-09 19:28:05 UTC

Internal Links: 1684146

Description John Fulton 2019-03-11 13:34:28 UTC
This bug was initially created as a copy of Bug #1684146

I am copying this bug because: 

The ceph-ansible fix in 1684146 isn't sufficient to address the full bug because we need the numactl pacakge to be installed on the overcloud image. This bug will track getting it into the image. 


Original report:

ceph-ansible has the ability to start OSDs with `docker run --cpuset-mems` or --cpuset-cpus [1]. However, there are benefits to starting OSD containers with numactl because we could use the --preferred option [2]. One way to implement this request is to modify the unit files and ceph-osd-run script [3] to support a prefix which the user could set.

[1] 
https://github.com/ceph/ceph-ansible/commit/8cba44262cf7291091b2318b563a28380e5049fd

[2] 
"""
When you numa-pin Ceph daemons, beware of difference between numactl --preferred and numactl --membind .  --preferred means that the program can allocate memory outside the NUMA socket if it has to, but --membind means you either swap or run the OOM killer when that NUMA node runs out of memory.   And that condition depends on what else has already been allocated.  Even with --preferred, you should do much better than with random allocation of memory from NUMA nodes.  But I don't see any way to express --preferred in ceph-ansible or "docker run" parameters, do you?  That to me makes ceph_osd_docker_cpuset_mems risky.  --preferred is a much softer landing when you run out of memory, and so it should be the default
"""

[3]
https://github.com/ceph/ceph-ansible/blob/master/roles/ceph-osd/templates/ceph-osd-run.sh.j2#L73

Comment 2 Yogev Rabl 2019-06-25 14:26:52 UTC
Verified

Comment 3 Lon Hohberger 2019-07-10 10:41:36 UTC
According to our records, this should be resolved by openstack-tripleo-puppet-elements-8.0.2-2.el7ost.  This build is available now.


Note You need to log in before you can comment on or make changes to this bug.