Hi Followers,
We made a mistake in physically placing nvme disks on our machine.
currently 7 nvme per node, but all are tied to cpu#1
I search for a best practice to move half of them to disk-slots tied to cpu#2
my first approach from theory
on each storage node:
move.sh: (param: 1) osd# to move 2) devicename new
example: ./move.sh 6 /dev/nvmean1
is there a better way to accomplish this task ?
Regards
Gerhard
We made a mistake in physically placing nvme disks on our machine.
currently 7 nvme per node, but all are tied to cpu#1
I search for a best practice to move half of them to disk-slots tied to cpu#2
my first approach from theory
on each storage node:
move.sh: (param: 1) osd# to move 2) devicename new
example: ./move.sh 6 /dev/nvmean1
Code:
ID=$1
echo "wait for cluster ok"
while ! ceph health | grep HEALTH_OK ; do echo -n "."; sleep 10 ; done
echo "ceph osd out $ID"
ceph osd out $ID
sleep 10
while ! ceph health | grep HEALTH_OK ; do sleep 10 ; done
echo "systemctl stop ceph-osd@$ID.service"
systemctl stop ceph-osd@$ID.service
# wait for calming down things...
sleep 60
DEVICE=$2
umount /var/lib/ceph/osd/ceph-$ID
echo "move osd $ID to intented slot, i wait 600 seconds!"
sleep 600
echo "ceph-disk zap $DEVICE"
ceph-disk zap $DEVICE
ceph osd destroy $ID --yes-i-really-mean-it
echo "ceph-disk prepare --bluestore $DEVICE --osd-id $ID"
ceph-disk prepare --bluestore $DEVICE --osd-id $ID
sleep 10;
ceph osd metadata $ID
ceph -s
echo "wait for cluster ok"
while ! ceph health | grep HEALTH_OK ; do echo -n "."; sleep 10 ; done
ceph -s
echo " proceed with next"
is there a better way to accomplish this task ?
Regards
Gerhard