Re: orchestrator mds add|update

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 23 Oct 2019, Sebastian Wagner wrote:
> > - The 'name' here, IIUC, is the name of the grouping of daemons.  I think 
> > it was intended to be a file system, as per the docs:
> > 
> >  The ``name`` parameter is an identifier of the group of instances:
> > 
> >  * a CephFS file system for a group of MDS daemons,
> >  * a zone name for a group of RGWs
> > 
> > but IIRC the new CephFS behavior is that all standby daemons go into the 
> > same pool and are doled out to file systems that need them arbitrarily.  
> 
> We use this to set the name of the Rook CR, and this is afaik still
> supposed to be the fs name.

Patrick: this will be confusing the rook case too, right?  Imagine two 
CephFileSystem CRs, each saying 3 mds daemons, but in reality the pool of 
6 MDSs will be assigned randomly-ish to either fs?

> > - For SSH, none of that works, since we need to pass a location when 
> > adding daemons.  It seems like we want somethign closer to nfs_add, 
> > which is
> > 
> >     @_write_cli('orchestrator nfs add',
> >                 "name=svc_arg,type=CephString "
> >                 "name=pool,type=CephString "
> >                 "name=namespace,type=CephString,req=false",
> >                 'Create an NFS service')
> > 
> > i.e.,
> > 
> >    * 'add' takes a 'name' (the actual daemon name) and a location (if the 
> > orch needs it).
> 
> You could add a field `hosts` to PlacementSpec of type `List[str]`. We
> need this for all stateless services for the ssh orch anyway. Let's add
> it now.

In this case, we should add a count arg, and svg_arg is... a subvolume 
name?

> >    * 'rm' takes the same name and removes it.
> 
> Yes
>
> >    * 'update' does the smarts of adding ($want - $have) daemons for a 
> > given group and generating names for them.  Something else organizes these 
> > into groups (a common name prefix?).  I.e., 'update' basically builds on 
> > 'add' and 'rm'.
> 
> add creates a completely new "service" (aka group of physical daemons).
> Update is supposed to add and remove daemons from this service. `update`
> is not supposed to call add or rm.
> 
> `add` creates a new "group of daemons" (aka "service")
> `rm` removes the whole group of daemons
> `update` deploys new daemons to an existing group.

Okay, this makes sense.

In that case, the name should presumably be a prefix, and the 
daemon names should get a numeric (or random string) suffix.

I'll go with that for now, and ignore the sharing of MDS daemons for the 
moment...

sage



> > And/or, we introduce some basic scheduling into ssh orchestrator (or 
> > orchestrator_cli).  I'm not sure this is actually that smart since we can 
> > probably get away with something quite simple: round-robin assignment of 
> > daemons to hosts,
> 
> I'd be +1 for keeping the deployment 100% predictable at this time.
> 
> > and the ability to label nodes for a daemon type or 
> > daemon type + grouping.  This would basically give ssh orch what ansible 
> > does as far as mapping out the deployment, and gracefully degrade to 
> > something that "just works" (well enough) when you don't know/care 
> > where things land.  Obviously having a real scheduler like that in k8s 
> > do this is better, but for non-kube deployments, there is still a need for 
> > placing daemons to hosts to make things easy for the human operator.
> 
> I'm not yet into pros, cons and use cases of different low level
> scheduling mechanisms.
> 
> > 
> > sage
> > 
> 
> -- 
> SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany
> GF: Felix Imendörffer, Mary Higgins, Sri Rasiah, HRB 21284 (AG Nürnberg)
> 
> 
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx

[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux