Hi,
Eugen is right, no need to drain and readd your OSDs, this will be very
long and lead to a lot of unnecessary load balancing. You should
decouple replacing the failed OSD (where you should try to drain it,
after setting its primary-affinity to 0 to limit the I/O redirected to
it, and readd it) and once this operation is done, reinstalling your
server as explained by Eugen.
If your cluster is cephadm-based, note that the command "ceph cephadm
osd activate" is only available in recent versions (at least Pacific I'd
say). If you are running a version that doesn't have this command yet,
the trick is :
- Reinstall temporarily ceph-osd on the server to have access to the
ceph-volume command
- Reconfigure the OSDs as legacy OSD with "|ceph-volume lvm activate --all|"
- Redo the adoption of the OSDs on this server by cephadm with:
| for id in `ls -1 /var/lib/ceph/osd`; do cephadm adopt --style
legacy --name ${id/ceph-/osd.}; done|
- Check with "cephadm ls" that all OSDs are managed by cephadm (no OSD
in legacy style).
- Uninstall ceph-osd package : this will stop the OSDs...
- Reboot your server to restart the OSDs and check that everything is ok.
Cheers,
Michel
Le 19/10/2022 à 09:25, Eugen Block a écrit :
Hi,
there's no need to drain the OSDs before adding them back. Since
ceph-volume is in place you could scan and activate existing OSDs on a
reinstalled node. In cephadm there's a similar way [1]:
ceph cephadm osd activate <host>...
If you want to prevent the OSDs from being marked out you can run:
ceph osd add-noout <host>
This will put only the OSDs on this node in noout, the rest of the
cluster will rebalance in case other OSDs fail during that time. I'm
not sure if the maintenance mode [2] will do that for you, I haven't
used that myself yet.
[1]
https://docs.ceph.com/en/latest/cephadm/services/osd/?highlight=reinstalled#activate-existing-osds
[2]
https://docs.ceph.com/en/latest/cephadm/host-management/#maintenance-mode
Zitat von Geoffrey Rhodes <geoffrey@xxxxxxxxxxxxx>:
Good day
I have a ceph osd node with an OS drive that has errors and may soon
fail.
There are 8 x 18TB drives installed in this node.
The journal's for each drive are co-located on each drive.
I'd like to replace the falling OS drive, re-install the OS (same
node name
and IP addressing), push the admin keys and conf to the node again and
re-activate the eight storage drives.
Is this possible without affecting the crushmap and data distribution?
In the past I would have set the weight of each drive to 0 and then wait
for the data to backfill elsewhere, then purge the drives and node
from the
cluster.
Then start over, installing the node and adding it to the correct crush
bucket, etc.
This feels like an unnecessary course of action when all I need to do is
replace the OS drive.
OS: Ubuntu 18.04.6 LTS
Ceph version: 15.2.17 - Octopus
Kind regards
Geoffrey Rhodes
_______________________________________________
ceph-users mailing list -- ceph-users@xxxxxxx
To unsubscribe send an email to ceph-users-leave@xxxxxxx
_______________________________________________
ceph-users mailing list -- ceph-users@xxxxxxx
To unsubscribe send an email to ceph-users-leave@xxxxxxx
_______________________________________________
ceph-users mailing list -- ceph-users@xxxxxxx
To unsubscribe send an email to ceph-users-leave@xxxxxxx