RAS Daemon (rasdaemon) monitors Linux kernel trace events related to Reliability, Availability, and Serviceability (RAS) errors.
Although it is a general-purpose tool, its primary goal is to improve the availability of systems used in data centers, including - but not limited to - high-performance computing (HPC), server farms, and cloud service environments.
It reports decoded events through syslog or journald, makes them available to consumer applications and supports recording them in SQL databases and reporting them through ABRT.
Its database support is provided through a modular framework that currently supports SQLite, MySQL, MariaDB, and PostgreSQL.
The primary source repository and issue tracker is currently at https://github.com/mchehab/rasdaemon/.
Its source code is mirrored at:
RAS Daemon has two types of CI tests, automated via Github Actions:
rasdaemon Actions, with tests several unit tests for both
rasdaemonandras-mc-ctltools.rasdaemon-ci functional tests, which runs rasdaemon on a QEMU engine, using some mechanisms supported by QEMU to trigger events on it. The functional tests are handled in separate. CI tests usually runs on source code changes and are daily updated.
Such tests are executed on two separate QEMU VMs. The status indicators below shows green if both VMs executed fine at the latest run:
VM health
Architecture
Status
Functional tests (experimental)
x86_64
aarch64
- NOTE:
Please note that functional tests create virtual machines configured to receive non-fatal errors and report them to rasdaemon. These tests use the latest stable versions of the Linux kernel and QEMU.
By their nature, failures in these tests may be false positives, which are far more common than regressions in QEMU, the Linux kernel, or rasdaemon. Before reporting a regression, check the rasdaemon-ci logs. If the problem is in the toolset, open an issue against the affected tool rather than rasdaemon.
The results from its latest run are automatically updated in this panel:
| Test type | Scope | PASS | FAIL |
|---|---|---|---|
| Functional tests (experimental) | Features | ||
| Kernel | |||
| RAS Daemon | |||
| Unit tests | rasdaemon | ||
| ras-mc-ctl |
rasdaemon requires Meson 0.60 or newer, Ninja, a C compiler, libtraceevent, Python, and libpci. Database backends and unit tests have additional optional dependencies described in the building and installation guide.
Configure and build with:
$ make
Install from the configured build directory with:
$ sudo make install
rasdaemon requires root permission to access Linux Kernel tracing nodes and other error events.
Run it in the foreground with --foreground or -f:
$ sudo rasdaemon -f
To record events on a database (by default SQLite3), add add --record or -r:
$ sudo rasdaemon -f -r
To see a summary of rasdaemon found errors (when --record is used):
$ sudo ras-mc-ctl db --errors
The backend defaults to SQLite. See the database guide for configuring SQLite,
MySQL/MariaDB, or PostgreSQL. Use rasdaemon --help to list the options
compiled into the installed binary.
See https://mchehab.github.io/rasdaemon/