ganesha_conf(8)

NAME
ganesha_conf - Ganesha configuration editor

SYNOPSIS
ganesha_conf set <block-description> [--key1 value1 [--key2 value2]...]
ganesha_conf del <block-description> [--key1 [--key2 ]...]

DESCRIPTION

The set command adds or changes the given key value parameters in the block. It also creates the block if the block corresponding to the given block description (see section BLOCK DESCRIPTION below) is not present in the configuration.

The del command deletes given keys from the ganesha configuration block described by the block description. It will delete the block itself if no keys are provided.

BLOCK DESCRIPTION:

Block description is a list of block names and possibly some key value parameters that uniquely identify a ganesha configuration block.

NFS Ganesha configuration file contains a list of blocks. Each block starts with a block name followed by a left brace, then a list of key = value; entries. The block may optionally have sub blocks (note the recursive definition!). Finally, the block ends with a right brace. (Note that key = value; entries can come after a sub block as well, but we don't allow this with ganesha_conf editor! All key value entries should come before any sub blocks.) An example of a ganesha configuration block:

nfs_core_param {
    Nb_Worker = 256;
    Clustered = TRUE;
    NFS_Protocols = 3,4;
}

Since there should be only one nfs_core_param block, we just need the name of the block to uniquely identify it. So "nfs_core_param" would be its block description!

An example of a ganesha configuration block with a couple sub blocks:

log {
    default_log_level = EVENT;
    format {
        date_format = ISO-8601;
        time_format = ISO-8601;
        thread_name = TRUE;
    }
    components {
        all = EVENT;
    }
}

Ganesha configuration should have only one log block as well, so "log" would identify the log block. To identify format sub block inside the log block, "log format" would be the block description for the above format sub block. Similarly "log components" would be the block description for the above components sub block.

An export block is special in that there can be many export blocks, one for each export. A client block is also special. There can be many client blocks and they are always sub blocks inside export blocks. export_id key value uniquely identifies an export block. clients key value uniquely identifies a client block inside a given export block.

Here are couple export blocks with couple client blocks in them:

export {
    export_id = 1;
    path = /fs1/export1;
    pseudo = /fs1/export1;
    manage_gids = true;
    client {
        clients = 192.168.122.31;
        access_type = RW;
    }
    client {
        clients = *;
        access_type = RO;
    }
}
export {
    export_id = 2;
    path = /fs1/export2;
    pseudo = /fs1/export2;
    manage_gids = true;
    client {
        clients = 192.168.122.31;
        access_type = RW;
    }
    client {
        clients = 192.168.122.32;
        access_type = RO;
    }
}

To identify the correct export block, we need to supply its export_id. For example "export export_id 2" identifies the second export block above. export blocks can be uniquely identified by pseudo or path keys in some environments. One could specify "export path /fs1/export2" to identify the second export block as well. Similarly, a client block needs additional clients key value to identify the correct client block. For example, "export export_id 2 client clients 192.168.122.31" identifies the first client block in the second export block above!

EXAMPLES:
1. To change number of ganesha worker threads:

ganesha_conf set nfs_core_param --nb_wroker 256

2. To change the date and time format of ganesha log messages:

ganesha_conf set log format --date_format ISO-8601 --time_format ISO-8601

3. Create an export and allow client with IP address 192.168.122.31 to be able to do read write and all other clients to do read only:

ganesha_conf set export path /fs1/export2 --export_id 2 --pseudo /fs1/export2 --manage_gids true
ganesha_conf set export path /fs1/export2 client clients 192.168.122.31 --access_type RW
ganesha_conf set export path /fs1/export2 client clients 192.168.122.32 --access_type RO

NOTES:
ganesha_conf by default uses /etc/ganesha/ganesha.conf file as the configuration file. If your environment uses a different file (or set of files), you can use CONFFILE environment variable to override the default configuration file. For example, "CONFFILE=/etc/ganesha/ganesha.main.conf ganesha_conf set nfs_core_param --nb_wroker 256" will use /etc/ganesha/ganesha.main.conf file for changing the worker threads.

ganesha_conf can't handle comments within a block at this point.

Neither block descriptions nor key value parameters are verified to be valid ganesha configuration blocks or parameter values currently.