Technical Details

Database

The underlying PixStor Management database uses SQLite3

In PixStor Management 0.3 and earlier, the database was located at /mmfs1/.arcapix/apmgmt.db 1

As of PixStor Management 0.4, the database is located at /mmfs1/.arcapix/apmgmt/apmgmt.db

Job Engine

When a change is made via the REST API, a task is submitted to the job engine, to be executed asynchronously.

The default job engine is PixStor Schedulers. Tasks are submitted to Schedulers via its own REST API.

Run as User

Jobs, which make changes to the filesystem, are run as the user who triggered the job.

For example, if a user is authenticated as pixadmin, then the job will be run as user pixadmin.

Therefore, that user must have appropriate permissions, such as sudo permission or read/write permission for any relevant files or directories. PixStor Management (by way of PixStor) maintains a ‘sudoers’ configuration which assigns relevant permissions to users, based on their rights and roles.

Shares

NFS and Samba shares are represented in the PixStor Manamgenent object model as ‘exposers’; NFSExposer and CIFSExposer, respectively.

Note

In a multi-node cluster, PixStor Management requires that share definitions are identical across all nodes.

Pix-Managed Shares

Prior to PixStor Management 0.5 (PixStor 5.1.5.1), all share definitions were in the default share config files

  • nfs: /etc/exports

  • samba: /etc/samba/smb.conf

For PixStor Management 0.5+, shares created or edited using the REST API (or Admin UI) are ‘pix-managed’. Pix-managed shares are stored, one-per-file, in

  • nfs: /etc/exports.d

  • samba: /etc/samba/apmgmt/

the files in /etc/samba/apmgmt/ are merged into a single file, /etc/samba/apmgmt.conf, so that they can be included in the main smb.conf

Each of these pixmanaged files is named like pixmanaged.<uuid>.conf, where uuid is the id of the share in PixStor Management.

This approach is intended to work around issues with e.g. managing user permissions on config files.

Shares created by manually editing the main configs /etc/exports or /etc/samba/smb.conf are not pix-managed. However, if you edit one of these unmanaged shares via the REST API (or Admin UI), it will be converted into a pix-managed share. This means it is removed from the main config and written to a pix-managed files.

Note

If an unmanaged share is created or editted directly, PixStor Management must be re-populated to pick up the change.

PixStor is typically configured to automatically populate every 5 minutes. It can also be populate on demand, with the command

adminctl populate now

Placement Policy Rules

PixStor Manamgenent needs to create some placement policies - one per data pool (per filesystem). This is used to ensure space (fileset) data is assigned to the desired datastore (pool)

If any placement rules are missing, they can be installed with

adminctl policy install default
adminctl populate now --conditional

No default placement policy

The above command will not install placement rules for any policy which is missing a default placement rule. In that case, populate will display a warning like

Can't populate profiles for mmfs1 - [AP000000117X] Filesystem mmfs1 has no default placement policy - skipping

Check the current policy with

mmlspolicy mmfs1 -L

A default placement rule looks like

RULE 'default' SET POOL 'system'

If it’s missing, one will need to be created.

For more details, see man adminctl-providers-box


Footnotes

1

or under the equivalent primary filesystem mountpoint