* disk enclosure LEDs
@ 2016-11-30 16:51 Sage Weil
2016-11-30 18:57 ` Brett Niver
` (2 more replies)
0 siblings, 3 replies; 30+ messages in thread
From: Sage Weil @ 2016-11-30 16:51 UTC (permalink / raw)
To: ceph-devel
Hi all,
libstoragemgmt has made progress on a generic interface for twiddling
enclosure LEDs!
> * RHEL 7.3 or Fedora 24+
> * sudo yum install libstoragemgmt
> * sudo lsmcli local-disk-ident-led-on --path /dev/sdX
> * sudo lsmcli local-disk-ident-led-off --path /dev/sdX
> * sudo lsmcli local-disk-fault-led-on --path /dev/sdX
> * sudo lsmcli local-disk-fault-led-off --path /dev/sdX
> Python API document:
>
> python2 -c'import lsm; help(lsm.LocalDisk.ident_led_on)'
> python2 -c'import lsm; help(lsm.LocalDisk.ident_led_off)'
> python2 -c'import lsm; help(lsm.LocalDisk.fault_led_on)'
> python2 -c'import lsm; help(lsm.LocalDisk.fault_led_off)'
>
> C API document:
>
> Check header file `libstoragemgmt_local_disk.h` in
> `libstoragemgmt-devel` rpm package. The functions are:
>
> lsm_local_disk_ident_led_on()
> lsm_local_disk_ident_led_off()
> lsm_local_disk_fault_led_on()
> lsm_local_disk_fault_led_off()
Since this is in a reasonably usable state, I think It's time for us to
figure out how we are going to do this in ceph.
A few ideas:
ceph osd identify osd.123 # blink for a few seconds?
or
ceph osd ident-led-on osd.123 # turn on
ceph osd ident-led-off osd.123 # turn off
ceph osd fault-led-on osd.123 # turn on
ceph osd fault-led-off osd.123 # turn off
This would mean persistently recording the LED state in the OSDMap. And
it would mean ceph-osd is the one twiddling the LEDs. But that might not
be the way to go in all cases. For example, if we have an OSD that fails,
once we confirm that we've healed (and don't need that OSDs data) we'd
probably want to set the fault light so that the disk can be pulled
safely. In that case, ceph-osd isn't running (it's long-since failed),
and we'd need some other agent on the node to twiddle the light. Do we
really want multiple things twiddling lights?
We also often have a N:M mapping of osds to devices (multiple devices per
OSD, multiple OSDs per device), which means a per-OSD flag might not be
the right way to think about this anyway.
Has anyone thought this through yet?
Thanks!
sage
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: disk enclosure LEDs 2016-11-30 16:51 disk enclosure LEDs Sage Weil @ 2016-11-30 18:57 ` Brett Niver 2016-11-30 19:37 ` Joao Eduardo Luis 2016-12-01 0:10 ` John Spray 2 siblings, 0 replies; 30+ messages in thread From: Brett Niver @ 2016-11-30 18:57 UTC (permalink / raw) To: Sage Weil; +Cc: ceph-devel Besides the obvious disk pull, I really like the option to dynamically identify mappings. Ive used a very similar concept on fabric switch enclosures as part of visually verifying proper cabling and path mapping... On Wed, Nov 30, 2016 at 11:51 AM, Sage Weil <sweil@redhat.com> wrote: > Hi all, > > libstoragemgmt has made progress on a generic interface for twiddling > enclosure LEDs! > >> * RHEL 7.3 or Fedora 24+ >> * sudo yum install libstoragemgmt >> * sudo lsmcli local-disk-ident-led-on --path /dev/sdX >> * sudo lsmcli local-disk-ident-led-off --path /dev/sdX >> * sudo lsmcli local-disk-fault-led-on --path /dev/sdX >> * sudo lsmcli local-disk-fault-led-off --path /dev/sdX > >> Python API document: >> >> python2 -c'import lsm; help(lsm.LocalDisk.ident_led_on)' >> python2 -c'import lsm; help(lsm.LocalDisk.ident_led_off)' >> python2 -c'import lsm; help(lsm.LocalDisk.fault_led_on)' >> python2 -c'import lsm; help(lsm.LocalDisk.fault_led_off)' >> >> C API document: >> >> Check header file `libstoragemgmt_local_disk.h` in >> `libstoragemgmt-devel` rpm package. The functions are: >> >> lsm_local_disk_ident_led_on() >> lsm_local_disk_ident_led_off() >> lsm_local_disk_fault_led_on() >> lsm_local_disk_fault_led_off() > > Since this is in a reasonably usable state, I think It's time for us to > figure out how we are going to do this in ceph. > > A few ideas: > > ceph osd identify osd.123 # blink for a few seconds? > > or > > ceph osd ident-led-on osd.123 # turn on > ceph osd ident-led-off osd.123 # turn off > ceph osd fault-led-on osd.123 # turn on > ceph osd fault-led-off osd.123 # turn off > > This would mean persistently recording the LED state in the OSDMap. And > it would mean ceph-osd is the one twiddling the LEDs. But that might not > be the way to go in all cases. For example, if we have an OSD that fails, > once we confirm that we've healed (and don't need that OSDs data) we'd > probably want to set the fault light so that the disk can be pulled > safely. In that case, ceph-osd isn't running (it's long-since failed), > and we'd need some other agent on the node to twiddle the light. Do we > really want multiple things twiddling lights? > > We also often have a N:M mapping of osds to devices (multiple devices per > OSD, multiple OSDs per device), which means a per-OSD flag might not be > the right way to think about this anyway. > > Has anyone thought this through yet? > > Thanks! > sage > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-11-30 16:51 disk enclosure LEDs Sage Weil 2016-11-30 18:57 ` Brett Niver @ 2016-11-30 19:37 ` Joao Eduardo Luis 2016-12-01 0:15 ` John Spray 2016-12-01 0:10 ` John Spray 2 siblings, 1 reply; 30+ messages in thread From: Joao Eduardo Luis @ 2016-11-30 19:37 UTC (permalink / raw) To: Sage Weil, ceph-devel On 11/30/2016 04:51 PM, Sage Weil wrote: > Since this is in a reasonably usable state, I think It's time for us to > figure out how we are going to do this in ceph. > > A few ideas: > > ceph osd identify osd.123 # blink for a few seconds? > > or > > ceph osd ident-led-on osd.123 # turn on > ceph osd ident-led-off osd.123 # turn off > ceph osd fault-led-on osd.123 # turn on > ceph osd fault-led-off osd.123 # turn off > > This would mean persistently recording the LED state in the OSDMap. And > it would mean ceph-osd is the one twiddling the LEDs. But that might not > be the way to go in all cases. For example, if we have an OSD that fails, > once we confirm that we've healed (and don't need that OSDs data) we'd > probably want to set the fault light so that the disk can be pulled > safely. In that case, ceph-osd isn't running (it's long-since failed), > and we'd need some other agent on the node to twiddle the light. Do we > really want multiple things twiddling lights? Although this is really neat, I don't think ceph is the place to implement or even manage it. This should fall under a management tool's purview. That doesn't mean we couldn't keep some info on ceph itself, but in that case it should be kept either on the mon's kv config-key or ceph-mgr (e.g., set of osds that actually support this, which led to turn if something misbehaves, whatever). And adding this sort of information to the osdmap is overkill. This is not something that the osds should be concerned about, but whatever tool/service monitors the osds. Besides, we'd be taking a stand on how to do something completely ceph unrelated - "how to blink your enclosure's leds". I'm guessing this will be hardware dependent; availability of the required libraries will be distro dependent; and people may want to implement this in totally different ways from whatever we concoct here. I don't see a good argument to delegate this to ceph. -Joao ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-11-30 19:37 ` Joao Eduardo Luis @ 2016-12-01 0:15 ` John Spray 2016-12-01 1:46 ` Allen Samuels ` (3 more replies) 0 siblings, 4 replies; 30+ messages in thread From: John Spray @ 2016-12-01 0:15 UTC (permalink / raw) To: Joao Eduardo Luis; +Cc: Sage Weil, Ceph Development On Wed, Nov 30, 2016 at 7:37 PM, Joao Eduardo Luis <joao@suse.de> wrote: > On 11/30/2016 04:51 PM, Sage Weil wrote: >> >> Since this is in a reasonably usable state, I think It's time for us to >> figure out how we are going to do this in ceph. >> >> A few ideas: >> >> ceph osd identify osd.123 # blink for a few seconds? >> >> or >> >> ceph osd ident-led-on osd.123 # turn on >> ceph osd ident-led-off osd.123 # turn off >> ceph osd fault-led-on osd.123 # turn on >> ceph osd fault-led-off osd.123 # turn off >> >> This would mean persistently recording the LED state in the OSDMap. And >> it would mean ceph-osd is the one twiddling the LEDs. But that might not >> be the way to go in all cases. For example, if we have an OSD that fails, >> once we confirm that we've healed (and don't need that OSDs data) we'd >> probably want to set the fault light so that the disk can be pulled >> safely. In that case, ceph-osd isn't running (it's long-since failed), >> and we'd need some other agent on the node to twiddle the light. Do we >> really want multiple things twiddling lights? > > > Although this is really neat, I don't think ceph is the place to implement > or even manage it. > > This should fall under a management tool's purview. I would agree that any persistence/policy parts don't belong in the OSD or the mons, but the remote access part where we reach across the network and do something with libstoragemgmt is very useful to have inside Ceph, because it means we can have management tools that just speak librados and don't have to have their own remote access to all the nodes in the system. Put another way, I'd like it to be the case that people who want to twiddle LEDs can write a ceph-mgr module that does that, rather than having to push out a libstoragemgmt-enabled agent to the Ceph servers. John > That doesn't mean we couldn't keep some info on ceph itself, but in that > case it should be kept either on the mon's kv config-key or ceph-mgr (e.g., > set of osds that actually support this, which led to turn if something > misbehaves, whatever). > > And adding this sort of information to the osdmap is overkill. This is not > something that the osds should be concerned about, but whatever tool/service > monitors the osds. > > Besides, we'd be taking a stand on how to do something completely ceph > unrelated - "how to blink your enclosure's leds". I'm guessing this will be > hardware dependent; availability of the required libraries will be distro > dependent; and people may want to implement this in totally different ways > from whatever we concoct here. > > I don't see a good argument to delegate this to ceph. > > -Joao > > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* RE: disk enclosure LEDs 2016-12-01 0:15 ` John Spray @ 2016-12-01 1:46 ` Allen Samuels 2016-12-01 8:35 ` Piotr Dałek ` (2 subsequent siblings) 3 siblings, 0 replies; 30+ messages in thread From: Allen Samuels @ 2016-12-01 1:46 UTC (permalink / raw) To: John Spray, Joao Eduardo Luis; +Cc: Sage Weil, Ceph Development > -----Original Message----- > From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel- > owner@vger.kernel.org] On Behalf Of John Spray > Sent: Wednesday, November 30, 2016 4:15 PM > To: Joao Eduardo Luis <joao@suse.de> > Cc: Sage Weil <sweil@redhat.com>; Ceph Development <ceph- > devel@vger.kernel.org> > Subject: Re: disk enclosure LEDs > > On Wed, Nov 30, 2016 at 7:37 PM, Joao Eduardo Luis <joao@suse.de> wrote: > > On 11/30/2016 04:51 PM, Sage Weil wrote: > >> > >> Since this is in a reasonably usable state, I think It's time for us > >> to figure out how we are going to do this in ceph. > >> > >> A few ideas: > >> > >> ceph osd identify osd.123 # blink for a few seconds? > >> > >> or > >> > >> ceph osd ident-led-on osd.123 # turn on ceph osd ident-led-off > >> osd.123 # turn off ceph osd fault-led-on osd.123 # turn on ceph > >> osd fault-led-off osd.123 # turn off > >> > >> This would mean persistently recording the LED state in the OSDMap. > >> And it would mean ceph-osd is the one twiddling the LEDs. But that > >> might not be the way to go in all cases. For example, if we have an > >> OSD that fails, once we confirm that we've healed (and don't need > >> that OSDs data) we'd probably want to set the fault light so that the > >> disk can be pulled safely. In that case, ceph-osd isn't running > >> (it's long-since failed), and we'd need some other agent on the node > >> to twiddle the light. Do we really want multiple things twiddling lights? > > > > > > Although this is really neat, I don't think ceph is the place to > > implement or even manage it. > > > > This should fall under a management tool's purview. > > I would agree that any persistence/policy parts don't belong in the OSD or > the mons, but the remote access part where we reach across the network > and do something with libstoragemgmt is very useful to have inside Ceph, > because it means we can have management tools that just speak librados > and don't have to have their own remote access to all the nodes in the > system. > > Put another way, I'd like it to be the case that people who want to twiddle > LEDs can write a ceph-mgr module that does that, rather than having to push > out a libstoragemgmt-enabled agent to the Ceph servers. +100 > > John > > > That doesn't mean we couldn't keep some info on ceph itself, but in > > that case it should be kept either on the mon's kv config-key or > > ceph-mgr (e.g., set of osds that actually support this, which led to > > turn if something misbehaves, whatever). > > > > And adding this sort of information to the osdmap is overkill. This is > > not something that the osds should be concerned about, but whatever > > tool/service monitors the osds. > > > > Besides, we'd be taking a stand on how to do something completely ceph > > unrelated - "how to blink your enclosure's leds". I'm guessing this > > will be hardware dependent; availability of the required libraries > > will be distro dependent; and people may want to implement this in > > totally different ways from whatever we concoct here. > > > > I don't see a good argument to delegate this to ceph. > > > > -Joao > > > > -- > > To unsubscribe from this list: send the line "unsubscribe ceph-devel" > > in the body of a message to majordomo@vger.kernel.org More > majordomo > > info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the > body of a message to majordomo@vger.kernel.org More majordomo info at > http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-01 0:15 ` John Spray 2016-12-01 1:46 ` Allen Samuels @ 2016-12-01 8:35 ` Piotr Dałek 2016-12-01 13:02 ` Joao Eduardo Luis 2016-12-02 9:23 ` Lars Marowsky-Bree 3 siblings, 0 replies; 30+ messages in thread From: Piotr Dałek @ 2016-12-01 8:35 UTC (permalink / raw) To: John Spray; +Cc: Joao Eduardo Luis, Sage Weil, Ceph Development On Thu, Dec 01, 2016 at 12:15:25AM +0000, John Spray wrote: > On Wed, Nov 30, 2016 at 7:37 PM, Joao Eduardo Luis <joao@suse.de> wrote: > > On 11/30/2016 04:51 PM, Sage Weil wrote: > >> > >> Since this is in a reasonably usable state, I think It's time for us to > >> figure out how we are going to do this in ceph. > >> > >> A few ideas: > >> > >> ceph osd identify osd.123 # blink for a few seconds? > >> > >> or > >> > >> ceph osd ident-led-on osd.123 # turn on > >> ceph osd ident-led-off osd.123 # turn off > >> ceph osd fault-led-on osd.123 # turn on > >> ceph osd fault-led-off osd.123 # turn off > >> > >> This would mean persistently recording the LED state in the OSDMap. And > >> it would mean ceph-osd is the one twiddling the LEDs. But that might not > >> be the way to go in all cases. For example, if we have an OSD that fails, > >> once we confirm that we've healed (and don't need that OSDs data) we'd > >> probably want to set the fault light so that the disk can be pulled > >> safely. In that case, ceph-osd isn't running (it's long-since failed), > >> and we'd need some other agent on the node to twiddle the light. Do we > >> really want multiple things twiddling lights? > > > > > > Although this is really neat, I don't think ceph is the place to implement > > or even manage it. > > > > This should fall under a management tool's purview. > > I would agree that any persistence/policy parts don't belong in the > OSD or the mons, but the remote access part where we reach across the > network and do something with libstoragemgmt is very useful to have > inside Ceph, because it means we can have management tools that just > speak librados and don't have to have their own remote access to all > the nodes in the system. > > Put another way, I'd like it to be the case that people who want to > twiddle LEDs can write a ceph-mgr module that does that, rather than > having to push out a libstoragemgmt-enabled agent to the Ceph servers. Major server vendors already provide tools to play with drive and/or server LEDs and many users of these machines already make use of these tools in their own setups. Combining them with Ceph would be confusing if both these tools and Ceph will try to manage lights. On the other hand, I don't believe that libstoragemgmt is reliable enough to cover enough users without bringing influx of Ceph bugs/issues that are really a libstoragemgmt faults due to incompatibilities/bugs/lack of support. -- Piotr Dałek branch@predictor.org.pl http://blog.predictor.org.pl ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-01 0:15 ` John Spray 2016-12-01 1:46 ` Allen Samuels 2016-12-01 8:35 ` Piotr Dałek @ 2016-12-01 13:02 ` Joao Eduardo Luis 2016-12-02 9:23 ` Lars Marowsky-Bree 3 siblings, 0 replies; 30+ messages in thread From: Joao Eduardo Luis @ 2016-12-01 13:02 UTC (permalink / raw) To: John Spray; +Cc: Sage Weil, Ceph Development On 12/01/2016 12:15 AM, John Spray wrote: > On Wed, Nov 30, 2016 at 7:37 PM, Joao Eduardo Luis <joao@suse.de> wrote: >> On 11/30/2016 04:51 PM, Sage Weil wrote: >>> >>> Since this is in a reasonably usable state, I think It's time for us to >>> figure out how we are going to do this in ceph. >>> >>> A few ideas: >>> >>> ceph osd identify osd.123 # blink for a few seconds? >>> >>> or >>> >>> ceph osd ident-led-on osd.123 # turn on >>> ceph osd ident-led-off osd.123 # turn off >>> ceph osd fault-led-on osd.123 # turn on >>> ceph osd fault-led-off osd.123 # turn off >>> >>> This would mean persistently recording the LED state in the OSDMap. And >>> it would mean ceph-osd is the one twiddling the LEDs. But that might not >>> be the way to go in all cases. For example, if we have an OSD that fails, >>> once we confirm that we've healed (and don't need that OSDs data) we'd >>> probably want to set the fault light so that the disk can be pulled >>> safely. In that case, ceph-osd isn't running (it's long-since failed), >>> and we'd need some other agent on the node to twiddle the light. Do we >>> really want multiple things twiddling lights? >> >> >> Although this is really neat, I don't think ceph is the place to implement >> or even manage it. >> >> This should fall under a management tool's purview. > > I would agree that any persistence/policy parts don't belong in the > OSD or the mons, but the remote access part where we reach across the > network and do something with libstoragemgmt is very useful to have > inside Ceph, because it means we can have management tools that just > speak librados and don't have to have their own remote access to all > the nodes in the system. > > Put another way, I'd like it to be the case that people who want to > twiddle LEDs can write a ceph-mgr module that does that, rather than > having to push out a libstoragemgmt-enabled agent to the Ceph servers. One thing would be to provide some *optional* package with a small daemon, or even a plugin for osds, that would handle led twiddling for users if they so wished. Another totally different thing is to tie this up to Ceph so tightly that you can't really have one without the other. That feels a lot like systemd's approach to do all things, regardless of whether you really want it doing them or not. I don't believe Ceph should be in the LED twiddling business, no only because this should be a management/monitoring tool's business, but also because (as Piotr mentioned) we'd be opening a new vector for issues that should not have anything to do with Ceph. But assuming that's not the prevailing opinion and this does go forth, at least make it pluggable enough that we don't end up depending on libstoragemgmt to build the osd, ceph-mgr or anything else. -Joao ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-01 0:15 ` John Spray ` (2 preceding siblings ...) 2016-12-01 13:02 ` Joao Eduardo Luis @ 2016-12-02 9:23 ` Lars Marowsky-Bree 2016-12-02 14:23 ` Sage Weil 3 siblings, 1 reply; 30+ messages in thread From: Lars Marowsky-Bree @ 2016-12-02 9:23 UTC (permalink / raw) To: Ceph Development On 2016-12-01T00:15:25, John Spray <jspray@redhat.com> wrote: > Put another way, I'd like it to be the case that people who want to > twiddle LEDs can write a ceph-mgr module that does that, rather than > having to push out a libstoragemgmt-enabled agent to the Ceph servers. I'm not sure I agree. I understand some of the motivation, but the key use cases where I'd want to "twiddle LEDs" involve enclosures that either don't yet have an OSD deployed (e.g., where to plug in the new disk), or where the OSD has failed (and may not even be able to start). And I don't want to have to maintain multiple paths for interacting with the enclosures. -- SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) "Experience is the name everyone gives to their mistakes." -- Oscar Wilde ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-02 9:23 ` Lars Marowsky-Bree @ 2016-12-02 14:23 ` Sage Weil 2016-12-02 14:27 ` Lars Marowsky-Bree ` (2 more replies) 0 siblings, 3 replies; 30+ messages in thread From: Sage Weil @ 2016-12-02 14:23 UTC (permalink / raw) To: Lars Marowsky-Bree; +Cc: Ceph Development On Fri, 2 Dec 2016, Lars Marowsky-Bree wrote: > On 2016-12-01T00:15:25, John Spray <jspray@redhat.com> wrote: > > > Put another way, I'd like it to be the case that people who want to > > twiddle LEDs can write a ceph-mgr module that does that, rather than > > having to push out a libstoragemgmt-enabled agent to the Ceph servers. > > I'm not sure I agree. > > I understand some of the motivation, but the key use cases where I'd > want to "twiddle LEDs" involve enclosures that either don't yet have an > OSD deployed (e.g., where to plug in the new disk), or where the OSD has > failed (and may not even be able to start). > > And I don't want to have to maintain multiple paths for interacting with > the enclosures. I agree with John that it would be great to have ceph-mgr plugins doing this sort of thing. But the OSD can't be the only path, and I also don't like the idea of multiple paths. The problem is that there needs to be something on the hosts that's doing this, and I don't want to just ignore it and hope some other layer solves it; years have gone by and nobody has done it, and I'd like to avoid a fragmented approach if we can. On the other hand, if we simply make an opinionated choice about some other per-host agent service, like we did in the original Calamari (which used salt and zeromq, IIRC), we'll probably end up offending more users than we please. Perhaps the way forward is to pick *some* external host agent and service to start with and ensure that it is integrated into ceph-mgr in a pluggable way such that we have (1) the osd:device mappings available, (2) a standard API for working with LEDs etc, and (3) a working plugin for twiddling the LEDs, but ensure that other "disk services" backends can also be used? sage ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-02 14:23 ` Sage Weil @ 2016-12-02 14:27 ` Lars Marowsky-Bree 2016-12-02 15:27 ` Bassam Tabbara 2016-12-02 16:57 ` Allen Samuels 2 siblings, 0 replies; 30+ messages in thread From: Lars Marowsky-Bree @ 2016-12-02 14:27 UTC (permalink / raw) To: Sage Weil; +Cc: Ceph Development On 2016-12-02T14:23:39, Sage Weil <sage@newdream.net> wrote: > On the other hand, if we simply make an opinionated choice about some > other per-host agent service, like we did in the original Calamari (which > used salt and zeromq, IIRC), we'll probably end up offending more users > than we please. > Perhaps the way forward is to pick *some* external host agent and service > to start with and ensure that it is integrated into ceph-mgr in a > pluggable way such that we have (1) the osd:device mappings available, (2) > a standard API for working with LEDs etc, and (3) a working plugin for > twiddling the LEDs, but ensure that other "disk services" backends can > also be used? Yes, that makes sense. Making an opinionated choice about the API the ceph-mgr plugin has and then we can patch in whatever transport we want. -- SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) "Experience is the name everyone gives to their mistakes." -- Oscar Wilde ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-02 14:23 ` Sage Weil 2016-12-02 14:27 ` Lars Marowsky-Bree @ 2016-12-02 15:27 ` Bassam Tabbara 2016-12-02 16:57 ` Allen Samuels 2 siblings, 0 replies; 30+ messages in thread From: Bassam Tabbara @ 2016-12-02 15:27 UTC (permalink / raw) To: Sage Weil; +Cc: Lars Marowsky-Bree, Ceph Development > On the other hand, if we simply make an opinionated choice about some > other per-host agent service, like we did in the original Calamari (which > used salt and zeromq, IIRC), we'll probably end up offending more users > than we please. I think it fine for Ceph to have an opinionated story here, as long as it remains optional. This would mean that we need to ensure a clean separation between “management” functions (those that cater to administrators/users and are highly opinionated) and “data management” functions (those that ensure the data is stored safely in the cluster and are not opinionated). > Perhaps the way forward is to pick *some* external host agent and service > to start with and ensure that it is integrated into ceph-mgr in a > pluggable way such that we have (1) the osd:device mappings available, (2) > a standard API for working with LEDs etc, and (3) a working plugin for > twiddling the LEDs, but ensure that other "disk services" backends can > also be used? I believe there is a need for a ceph-mgr *agent* on every host, otherwise I don’t see how one could implement some of the envisioned “management” functions for ceph-mgr — this LED example is a good example. Turning the OSDs into this agent seems to violate the clean separation I mention above. If there was a ceph-mgr-agent I would recommend moving stat collection into it which currently has gone into OSDs and MONs. Bassam ^ permalink raw reply [flat|nested] 30+ messages in thread
* RE: disk enclosure LEDs 2016-12-02 14:23 ` Sage Weil 2016-12-02 14:27 ` Lars Marowsky-Bree 2016-12-02 15:27 ` Bassam Tabbara @ 2016-12-02 16:57 ` Allen Samuels 2016-12-02 17:17 ` Lars Marowsky-Bree 2016-12-02 17:57 ` Alan Johnson 2 siblings, 2 replies; 30+ messages in thread From: Allen Samuels @ 2016-12-02 16:57 UTC (permalink / raw) To: Sage Weil, Lars Marowsky-Bree; +Cc: Ceph Development > -----Original Message----- > From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel- > owner@vger.kernel.org] On Behalf Of Sage Weil > Sent: Friday, December 02, 2016 6:24 AM > To: Lars Marowsky-Bree <lmb@suse.com> > Cc: Ceph Development <ceph-devel@vger.kernel.org> > Subject: Re: disk enclosure LEDs > > On Fri, 2 Dec 2016, Lars Marowsky-Bree wrote: > > On 2016-12-01T00:15:25, John Spray <jspray@redhat.com> wrote: > > > > > Put another way, I'd like it to be the case that people who want to > > > twiddle LEDs can write a ceph-mgr module that does that, rather than > > > having to push out a libstoragemgmt-enabled agent to the Ceph servers. > > > > I'm not sure I agree. > > > > I understand some of the motivation, but the key use cases where I'd > > want to "twiddle LEDs" involve enclosures that either don't yet have > > an OSD deployed (e.g., where to plug in the new disk), or where the > > OSD has failed (and may not even be able to start). > > > > And I don't want to have to maintain multiple paths for interacting > > with the enclosures. > > I agree with John that it would be great to have ceph-mgr plugins doing this > sort of thing. But the OSD can't be the only path, and I also don't like the idea > of multiple paths. > > The problem is that there needs to be something on the hosts that's doing > this, and I don't want to just ignore it and hope some other layer solves it; > years have gone by and nobody has done it, and I'd like to avoid a > fragmented approach if we can. > > On the other hand, if we simply make an opinionated choice about some > other per-host agent service, like we did in the original Calamari (which used > salt and zeromq, IIRC), we'll probably end up offending more users than we > please. > > Perhaps the way forward is to pick *some* external host agent and service > to start with and ensure that it is integrated into ceph-mgr in a pluggable way > such that we have (1) the osd:device mappings available, (2) a standard API > for working with LEDs etc, and (3) a working plugin for twiddling the LEDs, but > ensure that other "disk services" backends can also be used? I think it's important to separate this problem into two pieces: ceph-specific and platform-specific. The ceph-specific part of the problem is to create a single abstraction and mechanism so that upper-level tools (ceph-mgr, GUIs, workflow scripts, etc.) can manipulation the abstraction without worrying about the implementation details. I'm completely with John that ceph-mgr is the right place for the upper-layer to terminated. Ultimately, we'll have infrastructure that ties the physical state of the drives (power up/down, lights on/off, etc.) more closely to the operational state of the system -- this is an area where more standardized automation will remove a significant barrier to wide-spread deployments. The platform-specific part definitely should be pluggable/configurable/soft/manipulable, etc. It'll be quite some time (if ever) before something like libstoragemgmt becomes a reliable, universal, standard interface. We can't let that hold back the development of the upper-level infrastructure stuff. So, I'd vote for having an API termination in ceph-mgr. Have the mgr contact the destination system (the OSD is *NOT* the right path) to perform the action. Then do something like invoke a configurable shell script (something that's configurable) to perform the actual operation. > > sage > > > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-02 16:57 ` Allen Samuels @ 2016-12-02 17:17 ` Lars Marowsky-Bree 2016-12-02 17:57 ` Alan Johnson 1 sibling, 0 replies; 30+ messages in thread From: Lars Marowsky-Bree @ 2016-12-02 17:17 UTC (permalink / raw) To: Ceph Development On 2016-12-02T16:57:22, Allen Samuels <Allen.Samuels@sandisk.com> wrote: > So, I'd vote for having an API termination in ceph-mgr. Have the mgr contact the destination system (the OSD is *NOT* the right path) to perform the action. Then do something like invoke a configurable shell script (something that's configurable) to perform the actual operation. +1 ^ permalink raw reply [flat|nested] 30+ messages in thread
* RE: disk enclosure LEDs 2016-12-02 16:57 ` Allen Samuels 2016-12-02 17:17 ` Lars Marowsky-Bree @ 2016-12-02 17:57 ` Alan Johnson 2016-12-02 18:05 ` Allen Samuels 2016-12-02 18:24 ` Sage Weil 1 sibling, 2 replies; 30+ messages in thread From: Alan Johnson @ 2016-12-02 17:57 UTC (permalink / raw) To: Allen Samuels, Sage Weil, Lars Marowsky-Bree; +Cc: Ceph Development, Alex Yin As a hardware vendor we would like some sort of API to hook into - we do have a proprietary way of identifying failing devices but would rather conform to something more standard within the Ceph arena. -----Original Message----- From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel-owner@vger.kernel.org] On Behalf Of Allen Samuels Sent: Friday, December 02, 2016 11:57 AM To: Sage Weil; Lars Marowsky-Bree Cc: Ceph Development Subject: RE: disk enclosure LEDs > -----Original Message----- > From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel- > owner@vger.kernel.org] On Behalf Of Sage Weil > Sent: Friday, December 02, 2016 6:24 AM > To: Lars Marowsky-Bree <lmb@suse.com> > Cc: Ceph Development <ceph-devel@vger.kernel.org> > Subject: Re: disk enclosure LEDs > > On Fri, 2 Dec 2016, Lars Marowsky-Bree wrote: > > On 2016-12-01T00:15:25, John Spray <jspray@redhat.com> wrote: > > > > > Put another way, I'd like it to be the case that people who want > > > to twiddle LEDs can write a ceph-mgr module that does that, rather > > > than having to push out a libstoragemgmt-enabled agent to the Ceph servers. > > > > I'm not sure I agree. > > > > I understand some of the motivation, but the key use cases where I'd > > want to "twiddle LEDs" involve enclosures that either don't yet have > > an OSD deployed (e.g., where to plug in the new disk), or where the > > OSD has failed (and may not even be able to start). > > > > And I don't want to have to maintain multiple paths for interacting > > with the enclosures. > > I agree with John that it would be great to have ceph-mgr plugins > doing this sort of thing. But the OSD can't be the only path, and I > also don't like the idea of multiple paths. > > The problem is that there needs to be something on the hosts that's > doing this, and I don't want to just ignore it and hope some other > layer solves it; years have gone by and nobody has done it, and I'd > like to avoid a fragmented approach if we can. > > On the other hand, if we simply make an opinionated choice about some > other per-host agent service, like we did in the original Calamari > (which used salt and zeromq, IIRC), we'll probably end up offending > more users than we please. > > Perhaps the way forward is to pick *some* external host agent and > service to start with and ensure that it is integrated into ceph-mgr > in a pluggable way such that we have (1) the osd:device mappings > available, (2) a standard API for working with LEDs etc, and (3) a > working plugin for twiddling the LEDs, but ensure that other "disk services" backends can also be used? I think it's important to separate this problem into two pieces: ceph-specific and platform-specific. The ceph-specific part of the problem is to create a single abstraction and mechanism so that upper-level tools (ceph-mgr, GUIs, workflow scripts, etc.) can manipulation the abstraction without worrying about the implementation details. I'm completely with John that ceph-mgr is the right place for the upper-layer to terminated. Ultimately, we'll have infrastructure that ties the physical state of the drives (power up/down, lights on/off, etc.) more closely to the operational state of the system -- this is an area where more standardized automation will remove a significant barrier to wide-spread deployments. The platform-specific part definitely should be pluggable/configurable/soft/manipulable, etc. It'll be quite some time (if ever) before something like libstoragemgmt becomes a reliable, universal, standard interface. We can't let that hold back the development of the upper-level infrastructure stuff. So, I'd vote for having an API termination in ceph-mgr. Have the mgr contact the destination system (the OSD is *NOT* the right path) to perform the action. Then do something like invoke a configurable shell script (something that's configurable) to perform the actual operation. > > sage > > > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" > in the body of a message to majordomo@vger.kernel.org More majordomo > info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* RE: disk enclosure LEDs 2016-12-02 17:57 ` Alan Johnson @ 2016-12-02 18:05 ` Allen Samuels 2016-12-05 12:44 ` John Spray 2016-12-02 18:24 ` Sage Weil 1 sibling, 1 reply; 30+ messages in thread From: Allen Samuels @ 2016-12-02 18:05 UTC (permalink / raw) To: Alan Johnson, Sage Weil, Lars Marowsky-Bree; +Cc: Ceph Development, Alex Yin I agree. For the HW vendors, I think it's Ceph's job to execute some kind of command on the local node (presumably, some kind of shell command). The vendor should take over from there. I'd assume that one version of the shell command would be a simple wrapper around libstoragemgmt. So you'd have your choice of either extending libstoragemgmt, or writing a command-line utility that did your special thing (whatever it was). Allen Samuels SanDisk |a Western Digital brand 2880 Junction Avenue, San Jose, CA 95134 T: +1 408 801 7030| M: +1 408 780 6416 allen.samuels@SanDisk.com > -----Original Message----- > From: Alan Johnson [mailto:alanj@supermicro.com] > Sent: Friday, December 02, 2016 9:57 AM > To: Allen Samuels <Allen.Samuels@sandisk.com>; Sage Weil > <sage@newdream.net>; Lars Marowsky-Bree <lmb@suse.com> > Cc: Ceph Development <ceph-devel@vger.kernel.org>; Alex Yin > <alexy@supermicro.com> > Subject: RE: disk enclosure LEDs > > As a hardware vendor we would like some sort of API to hook into - we do > have a proprietary way of identifying failing devices but would rather > conform to something more standard within the Ceph arena. > > -----Original Message----- > From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel- > owner@vger.kernel.org] On Behalf Of Allen Samuels > Sent: Friday, December 02, 2016 11:57 AM > To: Sage Weil; Lars Marowsky-Bree > Cc: Ceph Development > Subject: RE: disk enclosure LEDs > > > -----Original Message----- > > From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel- > > owner@vger.kernel.org] On Behalf Of Sage Weil > > Sent: Friday, December 02, 2016 6:24 AM > > To: Lars Marowsky-Bree <lmb@suse.com> > > Cc: Ceph Development <ceph-devel@vger.kernel.org> > > Subject: Re: disk enclosure LEDs > > > > On Fri, 2 Dec 2016, Lars Marowsky-Bree wrote: > > > On 2016-12-01T00:15:25, John Spray <jspray@redhat.com> wrote: > > > > > > > Put another way, I'd like it to be the case that people who want > > > > to twiddle LEDs can write a ceph-mgr module that does that, rather > > > > than having to push out a libstoragemgmt-enabled agent to the Ceph > servers. > > > > > > I'm not sure I agree. > > > > > > I understand some of the motivation, but the key use cases where I'd > > > want to "twiddle LEDs" involve enclosures that either don't yet have > > > an OSD deployed (e.g., where to plug in the new disk), or where the > > > OSD has failed (and may not even be able to start). > > > > > > And I don't want to have to maintain multiple paths for interacting > > > with the enclosures. > > > > I agree with John that it would be great to have ceph-mgr plugins > > doing this sort of thing. But the OSD can't be the only path, and I > > also don't like the idea of multiple paths. > > > > The problem is that there needs to be something on the hosts that's > > doing this, and I don't want to just ignore it and hope some other > > layer solves it; years have gone by and nobody has done it, and I'd > > like to avoid a fragmented approach if we can. > > > > On the other hand, if we simply make an opinionated choice about some > > other per-host agent service, like we did in the original Calamari > > (which used salt and zeromq, IIRC), we'll probably end up offending > > more users than we please. > > > > Perhaps the way forward is to pick *some* external host agent and > > service to start with and ensure that it is integrated into ceph-mgr > > in a pluggable way such that we have (1) the osd:device mappings > > available, (2) a standard API for working with LEDs etc, and (3) a > > working plugin for twiddling the LEDs, but ensure that other "disk services" > backends can also be used? > > I think it's important to separate this problem into two pieces: ceph-specific > and platform-specific. > > The ceph-specific part of the problem is to create a single abstraction and > mechanism so that upper-level tools (ceph-mgr, GUIs, workflow scripts, etc.) > can manipulation the abstraction without worrying about the > implementation details. I'm completely with John that ceph-mgr is the right > place for the upper-layer to terminated. Ultimately, we'll have infrastructure > that ties the physical state of the drives (power up/down, lights on/off, etc.) > more closely to the operational state of the system -- this is an area where > more standardized automation will remove a significant barrier to wide- > spread deployments. > > The platform-specific part definitely should be > pluggable/configurable/soft/manipulable, etc. It'll be quite some time (if > ever) before something like libstoragemgmt becomes a reliable, universal, > standard interface. We can't let that hold back the development of the > upper-level infrastructure stuff. > > So, I'd vote for having an API termination in ceph-mgr. Have the mgr contact > the destination system (the OSD is *NOT* the right path) to perform the > action. Then do something like invoke a configurable shell script (something > that's configurable) to perform the actual operation. > > > > > > sage > > > > > > -- > > To unsubscribe from this list: send the line "unsubscribe ceph-devel" > > in the body of a message to majordomo@vger.kernel.org More > majordomo > > info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the > body of a message to majordomo@vger.kernel.org More majordomo info at > http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-02 18:05 ` Allen Samuels @ 2016-12-05 12:44 ` John Spray 2016-12-05 12:58 ` Lars Marowsky-Bree 0 siblings, 1 reply; 30+ messages in thread From: John Spray @ 2016-12-05 12:44 UTC (permalink / raw) To: Allen Samuels Cc: Alan Johnson, Sage Weil, Lars Marowsky-Bree, Ceph Development, Alex Yin On Fri, Dec 2, 2016 at 6:05 PM, Allen Samuels <Allen.Samuels@sandisk.com> wrote: > I agree. For the HW vendors, I think it's Ceph's job to execute some kind of command on the local node (presumably, some kind of shell command). The vendor should take over from there. Assuming that we want Ceph to act as a channel for remote execution, there are two approaches: * Put a ceph-supervisor service on all our nodes, and use that to terminate the remote commands. This daemon would also be the place for reporting per-host stats that we currently send multiple times through each OSD. * Build a SSH/salt remote execution client into ceph-mgr, and modify installation tools to store a privileged key in Ceph so that it can remote to the nodes. Both of these are possible. They are essentially agent vs. agentless approaches. One can argue either way: * "sshd already exists, why would we write our own daemon that enables remote execution?" * "we already have our own protocol and crypto, adding remote execution is simple so why would we bring in a whole separate set of keys?" I have a preference for creating an agent, because we would use it for monitoring as well as for remote execution. However, this is really only useful if somebody wants to use it: when management tools have their own agents, it's likely they won't use whatever we build into Ceph. Question to the OpenAttic folks, who afaik are the only ones on the thread actively building tools like this: if ceph-mgr modules could do arbitrary command remote execution on OSD nodes, is that what you would use for blinking LEDs? How would you wire that up to the rest of your stack? John > I'd assume that one version of the shell command would be a simple wrapper around libstoragemgmt. So you'd have your choice of either extending libstoragemgmt, or writing a command-line utility that did your special thing (whatever it was). > > > Allen Samuels > SanDisk |a Western Digital brand > 2880 Junction Avenue, San Jose, CA 95134 > T: +1 408 801 7030| M: +1 408 780 6416 > allen.samuels@SanDisk.com > > >> -----Original Message----- >> From: Alan Johnson [mailto:alanj@supermicro.com] >> Sent: Friday, December 02, 2016 9:57 AM >> To: Allen Samuels <Allen.Samuels@sandisk.com>; Sage Weil >> <sage@newdream.net>; Lars Marowsky-Bree <lmb@suse.com> >> Cc: Ceph Development <ceph-devel@vger.kernel.org>; Alex Yin >> <alexy@supermicro.com> >> Subject: RE: disk enclosure LEDs >> >> As a hardware vendor we would like some sort of API to hook into - we do >> have a proprietary way of identifying failing devices but would rather >> conform to something more standard within the Ceph arena. >> >> -----Original Message----- >> From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel- >> owner@vger.kernel.org] On Behalf Of Allen Samuels >> Sent: Friday, December 02, 2016 11:57 AM >> To: Sage Weil; Lars Marowsky-Bree >> Cc: Ceph Development >> Subject: RE: disk enclosure LEDs >> >> > -----Original Message----- >> > From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel- >> > owner@vger.kernel.org] On Behalf Of Sage Weil >> > Sent: Friday, December 02, 2016 6:24 AM >> > To: Lars Marowsky-Bree <lmb@suse.com> >> > Cc: Ceph Development <ceph-devel@vger.kernel.org> >> > Subject: Re: disk enclosure LEDs >> > >> > On Fri, 2 Dec 2016, Lars Marowsky-Bree wrote: >> > > On 2016-12-01T00:15:25, John Spray <jspray@redhat.com> wrote: >> > > >> > > > Put another way, I'd like it to be the case that people who want >> > > > to twiddle LEDs can write a ceph-mgr module that does that, rather >> > > > than having to push out a libstoragemgmt-enabled agent to the Ceph >> servers. >> > > >> > > I'm not sure I agree. >> > > >> > > I understand some of the motivation, but the key use cases where I'd >> > > want to "twiddle LEDs" involve enclosures that either don't yet have >> > > an OSD deployed (e.g., where to plug in the new disk), or where the >> > > OSD has failed (and may not even be able to start). >> > > >> > > And I don't want to have to maintain multiple paths for interacting >> > > with the enclosures. >> > >> > I agree with John that it would be great to have ceph-mgr plugins >> > doing this sort of thing. But the OSD can't be the only path, and I >> > also don't like the idea of multiple paths. >> > >> > The problem is that there needs to be something on the hosts that's >> > doing this, and I don't want to just ignore it and hope some other >> > layer solves it; years have gone by and nobody has done it, and I'd >> > like to avoid a fragmented approach if we can. >> > >> > On the other hand, if we simply make an opinionated choice about some >> > other per-host agent service, like we did in the original Calamari >> > (which used salt and zeromq, IIRC), we'll probably end up offending >> > more users than we please. >> > >> > Perhaps the way forward is to pick *some* external host agent and >> > service to start with and ensure that it is integrated into ceph-mgr >> > in a pluggable way such that we have (1) the osd:device mappings >> > available, (2) a standard API for working with LEDs etc, and (3) a >> > working plugin for twiddling the LEDs, but ensure that other "disk services" >> backends can also be used? >> >> I think it's important to separate this problem into two pieces: ceph-specific >> and platform-specific. >> >> The ceph-specific part of the problem is to create a single abstraction and >> mechanism so that upper-level tools (ceph-mgr, GUIs, workflow scripts, etc.) >> can manipulation the abstraction without worrying about the >> implementation details. I'm completely with John that ceph-mgr is the right >> place for the upper-layer to terminated. Ultimately, we'll have infrastructure >> that ties the physical state of the drives (power up/down, lights on/off, etc.) >> more closely to the operational state of the system -- this is an area where >> more standardized automation will remove a significant barrier to wide- >> spread deployments. >> >> The platform-specific part definitely should be >> pluggable/configurable/soft/manipulable, etc. It'll be quite some time (if >> ever) before something like libstoragemgmt becomes a reliable, universal, >> standard interface. We can't let that hold back the development of the >> upper-level infrastructure stuff. >> >> So, I'd vote for having an API termination in ceph-mgr. Have the mgr contact >> the destination system (the OSD is *NOT* the right path) to perform the >> action. Then do something like invoke a configurable shell script (something >> that's configurable) to perform the actual operation. >> >> >> > >> > sage >> > >> > >> > -- >> > To unsubscribe from this list: send the line "unsubscribe ceph-devel" >> > in the body of a message to majordomo@vger.kernel.org More >> majordomo >> > info at http://vger.kernel.org/majordomo-info.html >> -- >> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the >> body of a message to majordomo@vger.kernel.org More majordomo info at >> http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-05 12:44 ` John Spray @ 2016-12-05 12:58 ` Lars Marowsky-Bree 2016-12-05 13:23 ` Jeff Applewhite 2016-12-05 15:28 ` John Spray 0 siblings, 2 replies; 30+ messages in thread From: Lars Marowsky-Bree @ 2016-12-05 12:58 UTC (permalink / raw) To: Ceph Development On 2016-12-05T12:44:51, John Spray <jspray@redhat.com> wrote: > Question to the OpenAttic folks, who afaik are the only ones on the > thread actively building tools like this: if ceph-mgr modules could do > arbitrary command remote execution on OSD nodes, is that what you > would use for blinking LEDs? How would you wire that up to the rest > of your stack? So, in "our" world, we have Salt minions for remote execution everywhere. If Ceph requires an additional remote execution channel, aren't we rebuilding work that's part of both Salt, Ansible, Puppet, ...? The advantage of having a ceph remote agent is most prominent if you view ceph as an isolated distributed system. Regards, Lars -- SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) "Experience is the name everyone gives to their mistakes." -- Oscar Wilde ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-05 12:58 ` Lars Marowsky-Bree @ 2016-12-05 13:23 ` Jeff Applewhite 2016-12-05 15:28 ` John Spray 1 sibling, 0 replies; 30+ messages in thread From: Jeff Applewhite @ 2016-12-05 13:23 UTC (permalink / raw) To: Lars Marowsky-Bree; +Cc: Ceph Development In the case of Tendrl we have Ceph node agents that communicate with an etcd central store for all operations. In this particular case I think we would likely trigger the local node agent to run a local ansible playbook to execute the needed code (via etcd). So an API to consume these events from Ceph efficiently would be the enabling technology we'd be interested in. Jeff On Mon, Dec 5, 2016 at 7:58 AM, Lars Marowsky-Bree <lmb@suse.com> wrote: > On 2016-12-05T12:44:51, John Spray <jspray@redhat.com> wrote: > >> Question to the OpenAttic folks, who afaik are the only ones on the >> thread actively building tools like this: if ceph-mgr modules could do >> arbitrary command remote execution on OSD nodes, is that what you >> would use for blinking LEDs? How would you wire that up to the rest >> of your stack? > > So, in "our" world, we have Salt minions for remote execution > everywhere. > > If Ceph requires an additional remote execution channel, aren't we > rebuilding work that's part of both Salt, Ansible, Puppet, ...? > > The advantage of having a ceph remote agent is most prominent if you > view ceph as an isolated distributed system. > > > Regards, > Lars > > -- > SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) > "Experience is the name everyone gives to their mistakes." -- Oscar Wilde > > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Jeff Applewhite Principal Product Manager ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-05 12:58 ` Lars Marowsky-Bree 2016-12-05 13:23 ` Jeff Applewhite @ 2016-12-05 15:28 ` John Spray 2016-12-05 17:48 ` Bassam Tabbara 1 sibling, 1 reply; 30+ messages in thread From: John Spray @ 2016-12-05 15:28 UTC (permalink / raw) To: Lars Marowsky-Bree; +Cc: Ceph Development On Mon, Dec 5, 2016 at 12:58 PM, Lars Marowsky-Bree <lmb@suse.com> wrote: > On 2016-12-05T12:44:51, John Spray <jspray@redhat.com> wrote: > >> Question to the OpenAttic folks, who afaik are the only ones on the >> thread actively building tools like this: if ceph-mgr modules could do >> arbitrary command remote execution on OSD nodes, is that what you >> would use for blinking LEDs? How would you wire that up to the rest >> of your stack? > > So, in "our" world, we have Salt minions for remote execution > everywhere. > > If Ceph requires an additional remote execution channel, aren't we > rebuilding work that's part of both Salt, Ansible, Puppet, ...? Yes, although only a tiny part of what tools like ansible do -- and in the process, we save the effort of integrating with all of the above. IMHO it would actually be better value for money to write our own agent than to maintain and test a pluggable infrastructure that could use any of them (especially as some have different semantics), and handle newer/older versions of them, etc. John > > The advantage of having a ceph remote agent is most prominent if you > view ceph as an isolated distributed system. > > > Regards, > Lars > > -- > SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) > "Experience is the name everyone gives to their mistakes." -- Oscar Wilde > > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-05 15:28 ` John Spray @ 2016-12-05 17:48 ` Bassam Tabbara 2016-12-05 18:02 ` Allen Samuels 0 siblings, 1 reply; 30+ messages in thread From: Bassam Tabbara @ 2016-12-05 17:48 UTC (permalink / raw) To: John Spray; +Cc: Lars Marowsky-Bree, Ceph Development > Yes, although only a tiny part of what tools like ansible do -- and in > the process, we save the effort of integrating with all of the above. > IMHO it would actually be better value for money to write our own > agent than to maintain and test a pluggable infrastructure that could > use any of them (especially as some have different semantics), and > handle newer/older versions of them, etc. Calmari was using salt stack (among other things). I agree with John that Ceph should have its own simple story for management. I just hope that it remains *optional* as we’ve seen on this thread there are numerous approaches to this problem. Its also not immediately obvious that the different solutions could be layered. Should this be a topic for the next CDM? ^ permalink raw reply [flat|nested] 30+ messages in thread
* RE: disk enclosure LEDs 2016-12-05 17:48 ` Bassam Tabbara @ 2016-12-05 18:02 ` Allen Samuels 2016-12-05 18:41 ` Lars Marowsky-Bree 0 siblings, 1 reply; 30+ messages in thread From: Allen Samuels @ 2016-12-05 18:02 UTC (permalink / raw) To: Bassam Tabbara, John Spray; +Cc: Lars Marowsky-Bree, Ceph Development I'm indifferent to agent vs. agent-less. I *believe* that having a ceph-private distribution is easier/simpler/more reliable than trying to layer over some other system (ansible, salt, etc.) [i.e., I agree with John]. But this isn't a strongly held belief. I'm *metaphysically certain* that whatever distribution scheme is adopted that it not be optional. A large barrier to adoption of Ceph today is the lack of "middle-ware" that handles infrequent operational events (node addition/removal, media failure/recovery, migration, etc.). IMO, this middle-ware will have to be a standard part of Ceph, i.e., fully functional "out of the box" without site-specific twiddling (though having a mechanism to insert site-specific stuff is fine with me, it just can't be *required*). In my mind, the distribution scheme is the next step in the evolution of Ceph-mgr. It's what's missing :) > -----Original Message----- > From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel- > owner@vger.kernel.org] On Behalf Of Bassam Tabbara > Sent: Monday, December 05, 2016 9:48 AM > To: John Spray <jspray@redhat.com> > Cc: Lars Marowsky-Bree <lmb@suse.com>; Ceph Development <ceph- > devel@vger.kernel.org> > Subject: Re: disk enclosure LEDs > > > Yes, although only a tiny part of what tools like ansible do -- and in > > the process, we save the effort of integrating with all of the above. > > IMHO it would actually be better value for money to write our own > > agent than to maintain and test a pluggable infrastructure that could > > use any of them (especially as some have different semantics), and > > handle newer/older versions of them, etc. > > Calmari was using salt stack (among other things). I agree with John that > Ceph should have its own simple story for management. I just hope that it > remains *optional* as we’ve seen on this thread there are numerous > approaches to this problem. Its also not immediately obvious that the > different solutions could be layered. > > Should this be a topic for the next CDM? > > > \x04 {.n + +% lzwm b 맲 r yǩ ׯzX \x17 ܨ} Ơz &j:+v zZ+ +zf h ~ i z \x1e w > ? & )ߢ^[f ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-05 18:02 ` Allen Samuels @ 2016-12-05 18:41 ` Lars Marowsky-Bree 2016-12-05 19:28 ` John Spray 0 siblings, 1 reply; 30+ messages in thread From: Lars Marowsky-Bree @ 2016-12-05 18:41 UTC (permalink / raw) To: Ceph Development On 2016-12-05T18:02:08, Allen Samuels <Allen.Samuels@sandisk.com> wrote: > I'm indifferent to agent vs. agent-less. > > I *believe* that having a ceph-private distribution is easier/simpler/more reliable than trying to layer over some other system (ansible, salt, etc.) [i.e., I agree with John]. But this isn't a strongly held belief. > > I'm *metaphysically certain* that whatever distribution scheme is adopted that it not be optional. A large barrier to adoption of Ceph today is the lack of "middle-ware" that handles infrequent operational events (node addition/removal, media failure/recovery, migration, etc.). IMO, this middle-ware will have to be a standard part of Ceph, i.e., fully functional "out of the box" without site-specific twiddling (though having a mechanism to insert site-specific stuff is fine with me, it just can't be *required*). > > In my mind, the distribution scheme is the next step in the evolution of Ceph-mgr. It's what's missing :) I see the benefits of having a ceph-specific agent for hardware interaction. However, that then shifts the problem for bootstrapping said Ceph agent. And when you open the can of worms that is server addition/removal, etc we start hitting the question of either spinning up a distribution mechanism as well. When we want to look at container-izing Ceph in hyper-converged environments, this gets even worse. e.g., the cephalopod turns into a cephaloblob. (Sorry. I'm terrible with puns.) I need a mechanism for interacting with enclosures (to stick with the example), but I don't need it to be part of Ceph, since I need it for other parts of my infrastructure too anyway. If it's part of Ceph, I end up writing a special case for Ceph. And I need a way to handle it when Ceph itself isn't around yet; how do I blink an enclosure that receives a new disk? Ah, I pre-register a given enclosure with Ceph, before an OSD is even created. I know Ceph has many tentacles, but ... ;-) Regards, Lars -- SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) "Experience is the name everyone gives to their mistakes." -- Oscar Wilde ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-05 18:41 ` Lars Marowsky-Bree @ 2016-12-05 19:28 ` John Spray 2016-12-05 22:50 ` Allen Samuels 0 siblings, 1 reply; 30+ messages in thread From: John Spray @ 2016-12-05 19:28 UTC (permalink / raw) To: Lars Marowsky-Bree; +Cc: Ceph Development On Mon, Dec 5, 2016 at 6:41 PM, Lars Marowsky-Bree <lmb@suse.com> wrote: > On 2016-12-05T18:02:08, Allen Samuels <Allen.Samuels@sandisk.com> wrote: > >> I'm indifferent to agent vs. agent-less. >> >> I *believe* that having a ceph-private distribution is easier/simpler/more reliable than trying to layer over some other system (ansible, salt, etc.) [i.e., I agree with John]. But this isn't a strongly held belief. >> >> I'm *metaphysically certain* that whatever distribution scheme is adopted that it not be optional. A large barrier to adoption of Ceph today is the lack of "middle-ware" that handles infrequent operational events (node addition/removal, media failure/recovery, migration, etc.). IMO, this middle-ware will have to be a standard part of Ceph, i.e., fully functional "out of the box" without site-specific twiddling (though having a mechanism to insert site-specific stuff is fine with me, it just can't be *required*). >> >> In my mind, the distribution scheme is the next step in the evolution of Ceph-mgr. It's what's missing :) > > I see the benefits of having a ceph-specific agent for hardware > interaction. However, that then shifts the problem for bootstrapping > said Ceph agent. Bootstrapping would be the same as we already have for installing OSDs and MDSs. So ceph-deploy/ceph-ansible/whatever needs to be able to do the same thing for the per-host agent that it currently does for OSDs, no overall increase in complexity. > And when you open the can of worms that is server addition/removal, etc > we start hitting the question of either spinning up a distribution > mechanism as well. > > When we want to look at container-izing Ceph in hyper-converged > environments, this gets even worse. I'm imagining that in a container-per-service model, where something external has configured the OSD containers to have access to the block device that they will run on, it doesn't seem unreasonable to have the same configuration process set up the ceph agent container with access to all the OSD block devices. What are your thoughts about how this would (or wouldn't) work? > > e.g., the cephalopod turns into a cephaloblob. (Sorry. I'm terrible > with puns.) > > I need a mechanism for interacting with enclosures (to stick with the > example), but I don't need it to be part of Ceph, since I need it for > other parts of my infrastructure too anyway. > > > If it's part of Ceph, I end up writing a special case for Ceph. I think this would cease to be a problem for you if we just had a flag in Ceph to disable its own smartmontools type stuff? That way when someone was using an external tool there would be no conflict. There is some duplication of effort, but I don't think that's intrinsically problematic: I predict that we'll always have many users who do not take up any of the external tools and will benefit from the built-in Ceph bits. > And I need a way to handle it when Ceph itself isn't around yet; how do > I blink an enclosure that receives a new disk? Ah, I pre-register a > given enclosure with Ceph, before an OSD is even created. I know Ceph > has many tentacles, but ... ;-) While at runtime we shouldn't have two agents competing to manage the same device, I think it is reasonable to have a separate piece of software that does installation vs. does the ongoing monitoring. We shouldn't let the constraints over installation (especially the need to operate on cephless machines) restrict how we manage systems through their life cycles. Again, I don't think the built-in Ceph functionality is mutually exclusive with having a good external installation tool that touches some of the same functionality. John > > > Regards, > Lars > > -- > SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) > "Experience is the name everyone gives to their mistakes." -- Oscar Wilde > > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* RE: disk enclosure LEDs 2016-12-05 19:28 ` John Spray @ 2016-12-05 22:50 ` Allen Samuels 2016-12-06 0:20 ` John Spray 0 siblings, 1 reply; 30+ messages in thread From: Allen Samuels @ 2016-12-05 22:50 UTC (permalink / raw) To: John Spray, Lars Marowsky-Bree; +Cc: Ceph Development > -----Original Message----- > From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel- > owner@vger.kernel.org] On Behalf Of John Spray > Sent: Monday, December 05, 2016 11:28 AM > To: Lars Marowsky-Bree <lmb@suse.com> > Cc: Ceph Development <ceph-devel@vger.kernel.org> > Subject: Re: disk enclosure LEDs > > On Mon, Dec 5, 2016 at 6:41 PM, Lars Marowsky-Bree <lmb@suse.com> > wrote: > > On 2016-12-05T18:02:08, Allen Samuels <Allen.Samuels@sandisk.com> > wrote: > > > >> I'm indifferent to agent vs. agent-less. > >> > >> I *believe* that having a ceph-private distribution is easier/simpler/more > reliable than trying to layer over some other system (ansible, salt, etc.) [i.e., I > agree with John]. But this isn't a strongly held belief. > >> > >> I'm *metaphysically certain* that whatever distribution scheme is > adopted that it not be optional. A large barrier to adoption of Ceph today is > the lack of "middle-ware" that handles infrequent operational events (node > addition/removal, media failure/recovery, migration, etc.). IMO, this middle- > ware will have to be a standard part of Ceph, i.e., fully functional "out of the > box" without site-specific twiddling (though having a mechanism to insert > site-specific stuff is fine with me, it just can't be *required*). > >> > >> In my mind, the distribution scheme is the next step in the evolution > >> of Ceph-mgr. It's what's missing :) > > > > I see the benefits of having a ceph-specific agent for hardware > > interaction. However, that then shifts the problem for bootstrapping > > said Ceph agent. > > Bootstrapping would be the same as we already have for installing OSDs and > MDSs. So ceph-deploy/ceph-ansible/whatever needs to be able to do the > same thing for the per-host agent that it currently does for OSDs, no overall > increase in complexity. > > > And when you open the can of worms that is server addition/removal, > > etc we start hitting the question of either spinning up a distribution > > mechanism as well. > > > > When we want to look at container-izing Ceph in hyper-converged > > environments, this gets even worse. > > I'm imagining that in a container-per-service model, where something > external has configured the OSD containers to have access to the block > device that they will run on, it doesn't seem unreasonable to have the same > configuration process set up the ceph agent container with access to all the > OSD block devices. What are your thoughts about how this would (or > wouldn't) work? The current OSD design is per-drive and not-reliable. We need a piece of software, running on the target system, that's NOT per-drive and NOT not-reliable (i.e., reliable :)). We need the management system to be able to dig out of the OSD's system why it crashed -- i.e., read logs and other types of status, etc. It's possible to mutate the OSD there, but I don't think it's easy nor soon. > > > > > e.g., the cephalopod turns into a cephaloblob. (Sorry. I'm terrible > > with puns.) > > > > I need a mechanism for interacting with enclosures (to stick with the > > example), but I don't need it to be part of Ceph, since I need it for > > other parts of my infrastructure too anyway. > > > > > > If it's part of Ceph, I end up writing a special case for Ceph. > > I think this would cease to be a problem for you if we just had a flag in Ceph > to disable its own smartmontools type stuff? That way when someone was > using an external tool there would be no conflict. > > There is some duplication of effort, but I don't think that's intrinsically > problematic: I predict that we'll always have many users who do not take up > any of the external tools and will benefit from the built-in Ceph bits. > > > And I need a way to handle it when Ceph itself isn't around yet; how > > do I blink an enclosure that receives a new disk? Ah, I pre-register a > > given enclosure with Ceph, before an OSD is even created. I know Ceph > > has many tentacles, but ... ;-) > > While at runtime we shouldn't have two agents competing to manage the > same device, I think it is reasonable to have a separate piece of software that > does installation vs. does the ongoing monitoring. We shouldn't let the > constraints over installation (especially the need to operate on cephless > machines) restrict how we manage systems through their life cycles. Again, I > don't think the built-in Ceph functionality is mutually exclusive with having a > good external installation tool that touches some of the same functionality. > > John > > > > > > > > Regards, > > Lars > > > > -- > > SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, > > HRB 21284 (AG Nürnberg) "Experience is the name everyone gives to > > their mistakes." -- Oscar Wilde > > > > -- > > To unsubscribe from this list: send the line "unsubscribe ceph-devel" > > in the body of a message to majordomo@vger.kernel.org More > majordomo > > info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the > body of a message to majordomo@vger.kernel.org More majordomo info at > http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-05 22:50 ` Allen Samuels @ 2016-12-06 0:20 ` John Spray 2016-12-06 2:18 ` Allen Samuels 0 siblings, 1 reply; 30+ messages in thread From: John Spray @ 2016-12-06 0:20 UTC (permalink / raw) To: Allen Samuels; +Cc: Lars Marowsky-Bree, Ceph Development On Mon, Dec 5, 2016 at 10:50 PM, Allen Samuels <Allen.Samuels@sandisk.com> wrote: >> -----Original Message----- >> From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel- >> owner@vger.kernel.org] On Behalf Of John Spray >> Sent: Monday, December 05, 2016 11:28 AM >> To: Lars Marowsky-Bree <lmb@suse.com> >> Cc: Ceph Development <ceph-devel@vger.kernel.org> >> Subject: Re: disk enclosure LEDs >> >> On Mon, Dec 5, 2016 at 6:41 PM, Lars Marowsky-Bree <lmb@suse.com> >> wrote: >> > On 2016-12-05T18:02:08, Allen Samuels <Allen.Samuels@sandisk.com> >> wrote: >> > >> >> I'm indifferent to agent vs. agent-less. >> >> >> >> I *believe* that having a ceph-private distribution is easier/simpler/more >> reliable than trying to layer over some other system (ansible, salt, etc.) [i.e., I >> agree with John]. But this isn't a strongly held belief. >> >> >> >> I'm *metaphysically certain* that whatever distribution scheme is >> adopted that it not be optional. A large barrier to adoption of Ceph today is >> the lack of "middle-ware" that handles infrequent operational events (node >> addition/removal, media failure/recovery, migration, etc.). IMO, this middle- >> ware will have to be a standard part of Ceph, i.e., fully functional "out of the >> box" without site-specific twiddling (though having a mechanism to insert >> site-specific stuff is fine with me, it just can't be *required*). >> >> >> >> In my mind, the distribution scheme is the next step in the evolution >> >> of Ceph-mgr. It's what's missing :) >> > >> > I see the benefits of having a ceph-specific agent for hardware >> > interaction. However, that then shifts the problem for bootstrapping >> > said Ceph agent. >> >> Bootstrapping would be the same as we already have for installing OSDs and >> MDSs. So ceph-deploy/ceph-ansible/whatever needs to be able to do the >> same thing for the per-host agent that it currently does for OSDs, no overall >> increase in complexity. >> >> > And when you open the can of worms that is server addition/removal, >> > etc we start hitting the question of either spinning up a distribution >> > mechanism as well. >> > >> > When we want to look at container-izing Ceph in hyper-converged >> > environments, this gets even worse. >> >> I'm imagining that in a container-per-service model, where something >> external has configured the OSD containers to have access to the block >> device that they will run on, it doesn't seem unreasonable to have the same >> configuration process set up the ceph agent container with access to all the >> OSD block devices. What are your thoughts about how this would (or >> wouldn't) work? > > The current OSD design is per-drive and not-reliable. We need a piece of software, running on the target system, that's NOT per-drive and NOT not-reliable (i.e., reliable :)). We need the management system to be able to dig out of the OSD's system why it crashed -- i.e., read logs and other types of status, etc. It's possible to mutate the OSD there, but I don't think it's easy nor soon. I think I've lost you there -- what's the relation between what you've just said and the issue of containerisation? John >> >> > >> > e.g., the cephalopod turns into a cephaloblob. (Sorry. I'm terrible >> > with puns.) >> > >> > I need a mechanism for interacting with enclosures (to stick with the >> > example), but I don't need it to be part of Ceph, since I need it for >> > other parts of my infrastructure too anyway. >> > >> > >> > If it's part of Ceph, I end up writing a special case for Ceph. >> >> I think this would cease to be a problem for you if we just had a flag in Ceph >> to disable its own smartmontools type stuff? That way when someone was >> using an external tool there would be no conflict. >> >> There is some duplication of effort, but I don't think that's intrinsically >> problematic: I predict that we'll always have many users who do not take up >> any of the external tools and will benefit from the built-in Ceph bits. >> >> > And I need a way to handle it when Ceph itself isn't around yet; how >> > do I blink an enclosure that receives a new disk? Ah, I pre-register a >> > given enclosure with Ceph, before an OSD is even created. I know Ceph >> > has many tentacles, but ... ;-) >> >> While at runtime we shouldn't have two agents competing to manage the >> same device, I think it is reasonable to have a separate piece of software that >> does installation vs. does the ongoing monitoring. We shouldn't let the >> constraints over installation (especially the need to operate on cephless >> machines) restrict how we manage systems through their life cycles. Again, I >> don't think the built-in Ceph functionality is mutually exclusive with having a >> good external installation tool that touches some of the same functionality. >> >> John >> >> >> > >> > >> > Regards, >> > Lars >> > >> > -- >> > SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, >> > HRB 21284 (AG Nürnberg) "Experience is the name everyone gives to >> > their mistakes." -- Oscar Wilde >> > >> > -- >> > To unsubscribe from this list: send the line "unsubscribe ceph-devel" >> > in the body of a message to majordomo@vger.kernel.org More >> majordomo >> > info at http://vger.kernel.org/majordomo-info.html >> -- >> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the >> body of a message to majordomo@vger.kernel.org More majordomo info at >> http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* RE: disk enclosure LEDs 2016-12-06 0:20 ` John Spray @ 2016-12-06 2:18 ` Allen Samuels 0 siblings, 0 replies; 30+ messages in thread From: Allen Samuels @ 2016-12-06 2:18 UTC (permalink / raw) To: John Spray; +Cc: Lars Marowsky-Bree, Ceph Development > -----Original Message----- > From: John Spray [mailto:jspray@redhat.com] > Sent: Monday, December 05, 2016 4:20 PM > To: Allen Samuels <Allen.Samuels@sandisk.com> > Cc: Lars Marowsky-Bree <lmb@suse.com>; Ceph Development <ceph- > devel@vger.kernel.org> > Subject: Re: disk enclosure LEDs > > On Mon, Dec 5, 2016 at 10:50 PM, Allen Samuels > <Allen.Samuels@sandisk.com> wrote: > >> -----Original Message----- > >> From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel- > >> owner@vger.kernel.org] On Behalf Of John Spray > >> Sent: Monday, December 05, 2016 11:28 AM > >> To: Lars Marowsky-Bree <lmb@suse.com> > >> Cc: Ceph Development <ceph-devel@vger.kernel.org> > >> Subject: Re: disk enclosure LEDs > >> > >> On Mon, Dec 5, 2016 at 6:41 PM, Lars Marowsky-Bree <lmb@suse.com> > >> wrote: > >> > On 2016-12-05T18:02:08, Allen Samuels <Allen.Samuels@sandisk.com> > >> wrote: > >> > > >> >> I'm indifferent to agent vs. agent-less. > >> >> > >> >> I *believe* that having a ceph-private distribution is > >> >> easier/simpler/more > >> reliable than trying to layer over some other system (ansible, salt, > >> etc.) [i.e., I agree with John]. But this isn't a strongly held belief. > >> >> > >> >> I'm *metaphysically certain* that whatever distribution scheme is > >> adopted that it not be optional. A large barrier to adoption of Ceph > >> today is the lack of "middle-ware" that handles infrequent > >> operational events (node addition/removal, media failure/recovery, > >> migration, etc.). IMO, this middle- ware will have to be a standard > >> part of Ceph, i.e., fully functional "out of the box" without > >> site-specific twiddling (though having a mechanism to insert site-specific > stuff is fine with me, it just can't be *required*). > >> >> > >> >> In my mind, the distribution scheme is the next step in the > >> >> evolution of Ceph-mgr. It's what's missing :) > >> > > >> > I see the benefits of having a ceph-specific agent for hardware > >> > interaction. However, that then shifts the problem for > >> > bootstrapping said Ceph agent. > >> > >> Bootstrapping would be the same as we already have for installing > >> OSDs and MDSs. So ceph-deploy/ceph-ansible/whatever needs to be > able > >> to do the same thing for the per-host agent that it currently does > >> for OSDs, no overall increase in complexity. > >> > >> > And when you open the can of worms that is server addition/removal, > >> > etc we start hitting the question of either spinning up a > >> > distribution mechanism as well. > >> > > >> > When we want to look at container-izing Ceph in hyper-converged > >> > environments, this gets even worse. > >> > >> I'm imagining that in a container-per-service model, where something > >> external has configured the OSD containers to have access to the > >> block device that they will run on, it doesn't seem unreasonable to > >> have the same configuration process set up the ceph agent container > >> with access to all the OSD block devices. What are your thoughts > >> about how this would (or > >> wouldn't) work? > > > > The current OSD design is per-drive and not-reliable. We need a piece of > software, running on the target system, that's NOT per-drive and NOT not- > reliable (i.e., reliable :)). We need the management system to be able to dig > out of the OSD's system why it crashed -- i.e., read logs and other types of > status, etc. It's possible to mutate the OSD there, but I don't think it's easy > nor soon. > > I think I've lost you there -- what's the relation between what you've just > said and the issue of containerisation? Perhaps none, just that the container world tends to want to ignore box boundaries, storage management doesn't have that luxury. > > John > > >> > >> > > >> > e.g., the cephalopod turns into a cephaloblob. (Sorry. I'm > >> > terrible with puns.) > >> > > >> > I need a mechanism for interacting with enclosures (to stick with > >> > the example), but I don't need it to be part of Ceph, since I need > >> > it for other parts of my infrastructure too anyway. > >> > > >> > > >> > If it's part of Ceph, I end up writing a special case for Ceph. > >> > >> I think this would cease to be a problem for you if we just had a > >> flag in Ceph to disable its own smartmontools type stuff? That way > >> when someone was using an external tool there would be no conflict. > >> > >> There is some duplication of effort, but I don't think that's > >> intrinsically > >> problematic: I predict that we'll always have many users who do not > >> take up any of the external tools and will benefit from the built-in Ceph > bits. > >> > >> > And I need a way to handle it when Ceph itself isn't around yet; > >> > how do I blink an enclosure that receives a new disk? Ah, I > >> > pre-register a given enclosure with Ceph, before an OSD is even > >> > created. I know Ceph has many tentacles, but ... ;-) > >> > >> While at runtime we shouldn't have two agents competing to manage the > >> same device, I think it is reasonable to have a separate piece of > >> software that does installation vs. does the ongoing monitoring. We > >> shouldn't let the constraints over installation (especially the need > >> to operate on cephless > >> machines) restrict how we manage systems through their life cycles. > >> Again, I don't think the built-in Ceph functionality is mutually > >> exclusive with having a good external installation tool that touches some > of the same functionality. > >> > >> John > >> > >> > >> > > >> > > >> > Regards, > >> > Lars > >> > > >> > -- > >> > SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham > >> > Norton, HRB 21284 (AG Nürnberg) "Experience is the name everyone > >> > gives to their mistakes." -- Oscar Wilde > >> > > >> > -- > >> > To unsubscribe from this list: send the line "unsubscribe ceph-devel" > >> > in the body of a message to majordomo@vger.kernel.org More > >> majordomo > >> > info at http://vger.kernel.org/majordomo-info.html > >> -- > >> To unsubscribe from this list: send the line "unsubscribe ceph-devel" > >> in the body of a message to majordomo@vger.kernel.org More > majordomo > >> info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* RE: disk enclosure LEDs 2016-12-02 17:57 ` Alan Johnson 2016-12-02 18:05 ` Allen Samuels @ 2016-12-02 18:24 ` Sage Weil 1 sibling, 0 replies; 30+ messages in thread From: Sage Weil @ 2016-12-02 18:24 UTC (permalink / raw) To: Alan Johnson Cc: Allen Samuels, Lars Marowsky-Bree, Ceph Development, Alex Yin On Fri, 2 Dec 2016, Alan Johnson wrote: > As a hardware vendor we would like some sort of API to hook into - we do > have a proprietary way of identifying failing devices but would rather > conform to something more standard within the Ceph arena. https://libstorage.github.io/libstoragemgmt-doc/ I think this is the best place to invest your efforts! sage > > -----Original Message----- > From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel-owner@vger.kernel.org] On Behalf Of Allen Samuels > Sent: Friday, December 02, 2016 11:57 AM > To: Sage Weil; Lars Marowsky-Bree > Cc: Ceph Development > Subject: RE: disk enclosure LEDs > > > -----Original Message----- > > From: ceph-devel-owner@vger.kernel.org [mailto:ceph-devel- > > owner@vger.kernel.org] On Behalf Of Sage Weil > > Sent: Friday, December 02, 2016 6:24 AM > > To: Lars Marowsky-Bree <lmb@suse.com> > > Cc: Ceph Development <ceph-devel@vger.kernel.org> > > Subject: Re: disk enclosure LEDs > > > > On Fri, 2 Dec 2016, Lars Marowsky-Bree wrote: > > > On 2016-12-01T00:15:25, John Spray <jspray@redhat.com> wrote: > > > > > > > Put another way, I'd like it to be the case that people who want > > > > to twiddle LEDs can write a ceph-mgr module that does that, rather > > > > than having to push out a libstoragemgmt-enabled agent to the Ceph servers. > > > > > > I'm not sure I agree. > > > > > > I understand some of the motivation, but the key use cases where I'd > > > want to "twiddle LEDs" involve enclosures that either don't yet have > > > an OSD deployed (e.g., where to plug in the new disk), or where the > > > OSD has failed (and may not even be able to start). > > > > > > And I don't want to have to maintain multiple paths for interacting > > > with the enclosures. > > > > I agree with John that it would be great to have ceph-mgr plugins > > doing this sort of thing. But the OSD can't be the only path, and I > > also don't like the idea of multiple paths. > > > > The problem is that there needs to be something on the hosts that's > > doing this, and I don't want to just ignore it and hope some other > > layer solves it; years have gone by and nobody has done it, and I'd > > like to avoid a fragmented approach if we can. > > > > On the other hand, if we simply make an opinionated choice about some > > other per-host agent service, like we did in the original Calamari > > (which used salt and zeromq, IIRC), we'll probably end up offending > > more users than we please. > > > > Perhaps the way forward is to pick *some* external host agent and > > service to start with and ensure that it is integrated into ceph-mgr > > in a pluggable way such that we have (1) the osd:device mappings > > available, (2) a standard API for working with LEDs etc, and (3) a > > working plugin for twiddling the LEDs, but ensure that other "disk services" backends can also be used? > > I think it's important to separate this problem into two pieces: ceph-specific and platform-specific. > > The ceph-specific part of the problem is to create a single abstraction and mechanism so that upper-level tools (ceph-mgr, GUIs, workflow scripts, etc.) can manipulation the abstraction without worrying about the implementation details. I'm completely with John that ceph-mgr is the right place for the upper-layer to terminated. Ultimately, we'll have infrastructure that ties the physical state of the drives (power up/down, lights on/off, etc.) more closely to the operational state of the system -- this is an area where more standardized automation will remove a significant barrier to wide-spread deployments. > > The platform-specific part definitely should be pluggable/configurable/soft/manipulable, etc. It'll be quite some time (if ever) before something like libstoragemgmt becomes a reliable, universal, standard interface. We can't let that hold back the development of the upper-level infrastructure stuff. > > So, I'd vote for having an API termination in ceph-mgr. Have the mgr contact the destination system (the OSD is *NOT* the right path) to perform the action. Then do something like invoke a configurable shell script (something that's configurable) to perform the actual operation. > > > > > > sage > > > > > > -- > > To unsubscribe from this list: send the line "unsubscribe ceph-devel" > > in the body of a message to majordomo@vger.kernel.org More majordomo > > info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-11-30 16:51 disk enclosure LEDs Sage Weil 2016-11-30 18:57 ` Brett Niver 2016-11-30 19:37 ` Joao Eduardo Luis @ 2016-12-01 0:10 ` John Spray 2016-12-01 13:19 ` Lenz Grimmer 2 siblings, 1 reply; 30+ messages in thread From: John Spray @ 2016-12-01 0:10 UTC (permalink / raw) To: Sage Weil; +Cc: Ceph Development On Wed, Nov 30, 2016 at 4:51 PM, Sage Weil <sweil@redhat.com> wrote: > Hi all, > > libstoragemgmt has made progress on a generic interface for twiddling > enclosure LEDs! > >> * RHEL 7.3 or Fedora 24+ >> * sudo yum install libstoragemgmt >> * sudo lsmcli local-disk-ident-led-on --path /dev/sdX >> * sudo lsmcli local-disk-ident-led-off --path /dev/sdX >> * sudo lsmcli local-disk-fault-led-on --path /dev/sdX >> * sudo lsmcli local-disk-fault-led-off --path /dev/sdX > >> Python API document: >> >> python2 -c'import lsm; help(lsm.LocalDisk.ident_led_on)' >> python2 -c'import lsm; help(lsm.LocalDisk.ident_led_off)' >> python2 -c'import lsm; help(lsm.LocalDisk.fault_led_on)' >> python2 -c'import lsm; help(lsm.LocalDisk.fault_led_off)' >> >> C API document: >> >> Check header file `libstoragemgmt_local_disk.h` in >> `libstoragemgmt-devel` rpm package. The functions are: >> >> lsm_local_disk_ident_led_on() >> lsm_local_disk_ident_led_off() >> lsm_local_disk_fault_led_on() >> lsm_local_disk_fault_led_off() > > Since this is in a reasonably usable state, I think It's time for us to > figure out how we are going to do this in ceph. > > A few ideas: > > ceph osd identify osd.123 # blink for a few seconds? > > or > > ceph osd ident-led-on osd.123 # turn on > ceph osd ident-led-off osd.123 # turn off > ceph osd fault-led-on osd.123 # turn on > ceph osd fault-led-off osd.123 # turn off > > This would mean persistently recording the LED state in the OSDMap. And > it would mean ceph-osd is the one twiddling the LEDs. But that might not > be the way to go in all cases. For example, if we have an OSD that fails, > once we confirm that we've healed (and don't need that OSDs data) we'd > probably want to set the fault light so that the disk can be pulled > safely. In that case, ceph-osd isn't running (it's long-since failed), > and we'd need some other agent on the node to twiddle the light. Do we > really want multiple things twiddling lights? > > We also often have a N:M mapping of osds to devices (multiple devices per > OSD, multiple OSDs per device), which means a per-OSD flag might not be > the right way to think about this anyway. > > Has anyone thought this through yet? My preferences is to keep this as lightweight as possible and keeping it in `tell` commands that the OSD can pass through almost completely directly to libstoragemgmt. This could include "fault on", "fault off" and "blink"/"identify, but without putting any persistent state in there: if you stopped ceph-osd the blinking would stop (but a toggled fault light would stay on). Using tell commands would also make it straightforward to get an error back if the OSD can't identify a device to blink an LED on, instead of setting something in the OSD map and then wondering why nothing blinks. The "what block device am I?" part in the OSD (especially given many-to-one relations as you say) is probably harder than the calling into libstoragemgmt. We would probably also need all the LED commands to have a flag to optionally target the journal drive instead of the data drive. Where multiple OSDs target the same drive, I don't see that as a problem: it's reasonable to have the commands me "blink the drive you use" and not "blink a drive and thereby claim you are the only thing using it". John > > Thanks! > sage > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-01 0:10 ` John Spray @ 2016-12-01 13:19 ` Lenz Grimmer 2016-12-01 15:27 ` Jesse Williamson 0 siblings, 1 reply; 30+ messages in thread From: Lenz Grimmer @ 2016-12-01 13:19 UTC (permalink / raw) To: Ceph Development [-- Attachment #1.1: Type: text/plain, Size: 1066 bytes --] Hi, On 12/01/2016 01:10 AM, John Spray wrote: > The "what block device am I?" part in the OSD (especially given > many-to-one relations as you say) is probably harder than the calling > into libstoragemgmt. We would probably also need all the LED commands > to have a flag to optionally target the journal drive instead of the > data drive. Where multiple OSDs target the same drive, I don't see > that as a problem: it's reasonable to have the commands me "blink the > drive you use" and not "blink a drive and thereby claim you are the > only thing using it". I tend to agree to Joao's point that I don't think that the OSD should be in the business of blinking disk LEDs. Instead, I would be in favor if it could tell me which disks it actually uses, which would allow me to pass this device name to any given tool I choose for blinking the LED on that device. There was a pull request about this, but I don't think it ever got merged - http://tracker.ceph.com/issues/3120 Would it make sense to revisit this? Thanks, Lenz [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 205 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: disk enclosure LEDs 2016-12-01 13:19 ` Lenz Grimmer @ 2016-12-01 15:27 ` Jesse Williamson 0 siblings, 0 replies; 30+ messages in thread From: Jesse Williamson @ 2016-12-01 15:27 UTC (permalink / raw) To: Lenz Grimmer; +Cc: Ceph Development On Thu, 1 Dec 2016, Lenz Grimmer wrote: Hi, > Instead, I would be in favor if it could tell me which disks it actually > uses, which would allow me to pass this device name to any given tool I > choose for blinking the LED on that device. This seems like a good path to me. The suggestion Joao made of a plugin is my second choice. That itself opens up new opportunities for error, but I like that it doesn't tie another dependency into OSD. > There was a pull request about this, but I don't think it ever got > merged - http://tracker.ceph.com/issues/3120 Would exposing this through the console (if this has not been done already) enable enough to address John's concern? -Jesse ^ permalink raw reply [flat|nested] 30+ messages in thread
end of thread, other threads:[~2016-12-06 2:18 UTC | newest] Thread overview: 30+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-11-30 16:51 disk enclosure LEDs Sage Weil 2016-11-30 18:57 ` Brett Niver 2016-11-30 19:37 ` Joao Eduardo Luis 2016-12-01 0:15 ` John Spray 2016-12-01 1:46 ` Allen Samuels 2016-12-01 8:35 ` Piotr Dałek 2016-12-01 13:02 ` Joao Eduardo Luis 2016-12-02 9:23 ` Lars Marowsky-Bree 2016-12-02 14:23 ` Sage Weil 2016-12-02 14:27 ` Lars Marowsky-Bree 2016-12-02 15:27 ` Bassam Tabbara 2016-12-02 16:57 ` Allen Samuels 2016-12-02 17:17 ` Lars Marowsky-Bree 2016-12-02 17:57 ` Alan Johnson 2016-12-02 18:05 ` Allen Samuels 2016-12-05 12:44 ` John Spray 2016-12-05 12:58 ` Lars Marowsky-Bree 2016-12-05 13:23 ` Jeff Applewhite 2016-12-05 15:28 ` John Spray 2016-12-05 17:48 ` Bassam Tabbara 2016-12-05 18:02 ` Allen Samuels 2016-12-05 18:41 ` Lars Marowsky-Bree 2016-12-05 19:28 ` John Spray 2016-12-05 22:50 ` Allen Samuels 2016-12-06 0:20 ` John Spray 2016-12-06 2:18 ` Allen Samuels 2016-12-02 18:24 ` Sage Weil 2016-12-01 0:10 ` John Spray 2016-12-01 13:19 ` Lenz Grimmer 2016-12-01 15:27 ` Jesse Williamson
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.