Porting OpenBSD's sysctl hw.sensors framework to FreeBSD

John Baldwin jhb at freebsd.org
Fri Jul 13 16:52:23 UTC 2007


On Friday 13 July 2007 11:48:19 am Constantine A. Murenin wrote:
> On 12/07/2007 14:04, John Baldwin wrote:
> 
> > On Thursday 12 July 2007 03:00:08 am Alexander Leidinger wrote:
> > 
> >>Quoting John Baldwin <jhb at freebsd.org> (from Wed, 11 Jul 2007 
> > 
> > 11:45:26 -0400):
> > 
> >>>On Wednesday 11 July 2007 07:49:59 am Alexander Leidinger wrote:
> >>
> >>>>On the other hand you don't want to allow an userland tool to directly
> >>>>mess around with the registers on your RAID or NIC to get some status...
> >>>
> >>>Err, that's how all the RAID utilities I've used work.  They send 
firmware
> >>>commands from userland and parse the replies in userland.  One exception 
> > 
> > I've
> > 
> >>That's sad... they should provide this functionality in the driver  
> >>instead, it would allow to use access restrictions for some parts.
> > 
> > 
> > Not really, it avoids having to duplicate a lot of work in drivers that 
can be 
> > written once in a cross-platform userland utility.  Drivers aren't really 
the 
> > place to be monitoring raid status sending pages, e-mails, etc.  It's best 
to 
> > let userland invoke sendmail, not the kernel. :)
> 
> John, I'm sorry to disappoint you, but RAID drivers in OpenBSD don't 
> implement SMTP and don't do emails, they only provide updates to the 
> sensors framework when there are some changes in the state of the drive. :)
> 
> sensorsd(8) is used to send alerts and emails based on the information 
> from the sensors framework, and user configuration.
> 
> bioctl(8) is used to configure RAID for _all drivers_. There are no 
> separate utilities for RAID configuration based on brand-name, just like 
> nowadays there are no separate utilities for configuring Ethernet 
> adapters. [0]

According to the various manpages on www.openbsd.org you cannot configure 
arrays on the OS for at least mfi(4), ciss(4), twe(4), mpi(4) (like mpt(4) in 
FreeBSD) or ami(4) (like amr(4) in FreeBSD).  You can only do monitoring via 
hw.sensors for ciss(4) and ami(4), and the example for monitoring ami(4) in 
the manpage shows that you can only get volume level data, and as a _string_ 
and that you can't get backing physical drive status to know which physical 
drive has failed and needs to be replaced:

           $ sysctl hw.sensors.ami0
           hw.sensors.ami0.drive0=online (sd0), OK
           hw.sensors.ami0.drive1=degraded (sd1), WARNING
           hw.sensors.ami0.drive2=failed (sd2), CRITICAL

-- 
John Baldwin


More information about the freebsd-arch mailing list