xCAT Database

All of the xCAT Objects and Configuration data are stored in xCAT database. By default, xCAT uses SQLite - an OS contained simple database engine. The powerful open source database engines like MySQL, MariaDB, PostgreSQL are also supported for a large cluster.

xCAT defines about 70 tables to store different data. You can get the xCAT database definition from file /opt/xcat/lib/perl/xCAT/Schema.pm.

You can run tabdump command to get all the xCAT database tables. Or run tabdump -d <tablename> or man <tablename> to get the detail information on columns and table definitions.

$ tabdump
$ tabdump site
$ tabdump -d site
$ man site

For a complete reference, see the man page for xcatdb: man xcatdb.

The tables in xCAT:

  • site table

    Global settings for the whole cluster. This table is different from the other tables. Each entry in site table is a key=>value pair. Refer to the Global Configuration page for the major global attributes or run man site to get all global attributes.

  • policy table

    Controls who has authority to run specific xCAT operations. It is the Access Control List (ACL) in xCAT.

  • passwd table

    Contains default userids and passwords for xCAT to access cluster components. In most cases, xCAT will also set the userid/password in the relevant component (Generally for SP like bmc, fsp.) when it is being configured or installed. The default userids/passwords in passwd table for specific cluster components can be overridden by the columns in other tables, e.g. mpa , ipmi , ppchcp , etc.

  • networks table

    Contains the network definitions in the cluster.

    You can manipulate the networks through *def command against the network object.

    $ lsdef -t network
    

Manipulate xCAT Database Tables

xCAT offers 5 commands to manipulate the database tables:

  • tabdump

    Displays the header and all the rows of the specified table in CSV (comma separated values) format.

  • tabedit

    Opens the specified table in the user’s editor, allows them to edit any text, and then writes changes back to the database table. The table is flattened into a CSV (comma separated values) format file before giving it to the editor. After the editor is exited, the CSV file will be translated back into the database format.

  • tabgrep

    List table names in which an entry for the given node appears.

  • dumpxCATdb

    Dumps all the xCAT db tables to CSV files under the specified directory, often used to backup the xCAT database for xCAT reinstallation or management node migration.

  • restorexCATdb

    Restore the xCAT db tables from the CSV files under the specified directory.

Advanced Topic: How to use Regular Expression in xCAT tables: