Hi Francois!
If I've understood your question, I think you have two options.
1. You should be able to create an empty host then move it into a room
before creating any osd:
ceph osd crush add-bucket <hostname> host
ceph osd crush mv <hostname> room=<the room>
2. Add a custom crush location to ceph.conf on the new server so that
its osds are placed in the correct room/rack/host when they are first
created, e.g.
[osd]
crush location = room=0513-S-0034 rack=SJ04 host=cephdata20b-b7e4a773b6
Does that help?
Cheers, Dan
On Wed, Dec 2, 2020 at 11:29 PM Francois Legrand <fleg(a)lpnhe.in2p3.fr> wrote:
>
> Hello,
>
> I have a ceph nautilus cluster. The crushmap is organized with 2 rooms,
> servers in these rooms and osd in these servers, I have a crush rule to
> replicate data over the servers in different rooms.
>
> Now, I want to add a new server in one of the rooms. My point is that I
> would like to specify the room of this new server BEFORE creating osd in
> this server (so the data added to the osd will be directly at the right
> location). My problem is that it seems that servers appears in the
> crushmap only when they have osds... and when you create a first osd,
> the server is inserted in the crushmap under the default bucket (so not
> in a room and then the first data stored in this osd will not be at the
> correct location). I could move it after (if I do it rapidly, there will
> be no that much data to move after), but I was wondering if there is a
> way to either define the position of a server in the crushmap hierarchy
> before creating osd or eventually to specify the room when creating the
> first osd ?
>
> F.
> _______________________________________________
> ceph-users mailing list -- ceph-users(a)ceph.io
> To unsubscribe send an email to ceph-users-leave(a)ceph.io