Re: MegaCLI port is ports-only -- how would you deploy it?

From: Dan Mahoney <freebsd_at_gushi.org>
Date: Mon, 08 Aug 2022 20:10:10 UTC

> On Aug 8, 2022, at 15:57, Doug Ambrisko <ambrisko@ambrisko.com> wrote:
> 
> On Thu, Aug 04, 2022 at 05:22:29PM +0300, Ruslan Makhmatkhanov wrote:
> |    03.08.2022, 02:07, "Dan Mahoney" <freebsd@gushi.org>:
> |      Hey there all,
> |      At the dayjob we have a fleet of Dell Poweredge servers that can use
> |      either mptsas or mrsas -- if you use mptsas, you use mptutil (in
> |      base) to check the state of the card.
> |      If you use mrsas, you need megacli, which is only in ports, and the
> |      port hasn't translated to pkg probably because of license
> |      restrictions. ( _LICENSE_RESTRICTED = delete-package
> |      delete-distfiles), but the license listed is just "megacli".
> |      * We want to deploy a cron job to periodically check the raid status
> |      (we're writing a wrapper, also having it check mfiutil, zpool, etc).
> |      * We do not want to install and manage a whole ports tree on every
> |      machine in our fleet, just to install a raid utlity.
> |      Option A:
> |      Make a local package somehow.
> |      The port just downloads a static binary, there's nothing to build
> |      here, but we want to do this the "right" way. Is there some way to
> |      have pkg deploy a single local package for this that will, for
> |      example, report the right package ownership, without moving every
> |      other package to our poudriere install (we're just using base
> |      packages, we keep poudriere around for testing in case we need to
> |      hot-patch something).
> |      For what it's worth, we use puppet for config management, so pushing
> |      out the static binary is not the worst answer, but it also feels
> |      "dirty".
> |      Option B:
> |      Figure out how to fix the license. I have no idea what this would
> |      involve.
> |      Option C:
> |      Also, apparently MegaCLI is no longer maintained (replaced by
> |      StorCLI), but there's no port for StorCLI, and...there are multiple
> |      raid-card specific versions? Jeez.
> |      Feels even more dirty.
> |      [1]https://support.siliconmechanics.com/portal/en/kb/articles/storcl
> |      i-for-freebsd-and-other-operating-systems
> |      Ideas welcome?
> |      -Dan Mahoney
> 
> Although the path to get to StorCli goes through various cards the
> latest greatest seem to work on all earlier cards.  It works on
> HBAs and not just RAID cards.  At work I did a Linux/FreeBSD
> POC for FW management and found the FreeBSD version could flash the HBA
> and drive FW.  I've moved to StorCli from MegaCli.  I would suggest
> we drop the MegaCli port and move to StorCli.
> 
> I have code to make mfiutil into mrsasutil and added the MFI ioctl
> handler to mrsas.  I'm not sure how much value that has.  I don't
> deal with supporting FreeBSD and RAID much anymore.  If interested
> I could send patches.

This feels like it should be in base, regardless.  Just *something* to query the raid status and health, even if it doesn't ring all the bells of StorCLI.

Right now, you can do this with the older mfi, but not the newer mrsas, which performs better in some cases, which leaves an admin with a dilemma: better reliability, or better manageability.

I also feel like this could be added to a minor release (i.e. a 12.3 --> 12.4 or a 13.0 --> 13.1), but obviously that decision is above me.

-Dan