Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • resplat-public/jj-ceph-balancer
1 result
Select Git revision
Show changes
Commits on Source (2)
......@@ -17,14 +17,12 @@ MAX_REMAPS="20"
#Maximum number of pg movement attempts per osd. (--max-move-attempts)
MAX_MOVE_ATTEMPTS="50"
#Name of the pool that JJ should balance. The ID of this pool will be fed into (--only-poolid)
POOL="cephfs_data"
################################
#### Shell Script arguments ####
################################
#Don't run placementoptimizer.py if the number of remapped pgs exceed this threshold
PG_THRESHOLD="1"
#The name of the pool used to search for remapped pgs.
#If left undefined, remapped pgs in the whole cluster will be considered.
#POOL="mf1fs_data"
......@@ -4668,24 +4668,6 @@ def balance(args, cluster):
if osd_from not in source_osds:
continue
## WX BUGFIX --- Only utilize the osds with the right crushclass
#Iterate through valid crushclasses
for crushclass_name in pg_mappings.get_enabled_crushclasses():
osds_in_crushclass = cluster.get_crushclass_osds(crushclass_name)
#Skip balancing the OSD if it does not have the right crushclass
if osd_from not in osds_in_crushclass:
logging.info(f"-BUGFIX: WE ARE ONLY USING CRUSHCLASS: {crushclass_name}")
logging.info(f"-BUGFIX: OSD: {osd_from} HAS INVALID CRUSHCLASS - SKIPPING")
skip_osd=True
continue
else:
skip_osd=False
#Comment/uncomment this if statement to see effects of bugfix
if skip_osd:
continue
source_attempts += 1
if source_attempts > args.max_move_attempts:
......
......@@ -47,9 +47,12 @@ if [ -n "$5" ]
#Which Pool to use to search for remapped pgs.
POOL=$5
POOL_ID=$(ceph df --format json | jq --arg poolname $POOL '.pools[] | select(.name == $poolname) | .id')
echo "Using Pool: $POOL with pool_id: $POOL_ID"
else
echo "Must Specify which pool to balance. Exiting"
exit 1
fi
echo "Using Pool: $POOL with pool_id: $POOL_ID"
echo "Using Device Class: $DEV_CLASS"
echo "Using PG Threshold: $PG_THRESHOLD"
echo "Using Max Remaps: $MAX_REMAPS"
......@@ -81,7 +84,7 @@ wait_remapped() {
}
while [ 1 ]; do
wait_remapped
timeout 600 ./placementoptimizer.py -v balance --max-pg-moves $MAX_REMAPS --only-crushclass $DEV_CLASS --max-move-attempts $MAX_MOVE_ATTEMPTS | tee /tmp/balance-upmaps
wait_remapped
timeout 600 ./placementoptimizer.py -v balance --max-pg-moves $MAX_REMAPS --only-crushclass $DEV_CLASS --max-move-attempts $MAX_MOVE_ATTEMPTS --only-poolid $POOL_ID| tee /tmp/balance-upmaps
cat /tmp/balance-upmaps | /bin/bash
done