dmf Command

Purpose

Implements the Network Data Administration Facility (NDAF) Admin Client executable.

Syntax

dmf verb object parameter flag

Description

The dmf command implements the NDAF CLI, which is the program name for the NDAF (Network Data Administration Facility) Admin Client executable. NDAF is an AIX® solution for centralized creation, placement, replication, ongoing management, and namespace federation of file system data across a network of machines.

The dmf command is the prefix for all CLI commands in NDAF. These commands follow a consistent structure: a common prefix, the actual name of the executable (dmf), a verb such as create or delete, the object to which the action is being applied, and any subsequent parameters (such as names). These parameters are position-dependent.

Objects

The following objects are used in conjunction with the dmf command.

Item Description
admin Represents the dmadm (data management administrator) daemon and is used to configure the admin server. One single object of this class can be created on a server running the dmadm daemon. A machine running the dmadm daemon must also be running the dms (data management server) daemon. When an admin object is created, a server object with the same name is also created.
server Represents a dms (data management server) daemon in the system. Also sets default attributes for data hosted on this server and for general server configuration.
cell Represents a cell. A cell is a unit of management and namespace, hosted by an admin server, but independent of all other cells hosted by that admin server. A cell contains its own namespace, consisting of dsets, and contains its own NDAF role-based security objects. A cell can be placed (made visible through an NFS export) on any server defined for the admin server that the cell is hosted on.
dset Represents read or write data sets that consist of NFS exported data paths, including those hosted on local and clustered file systems. This object class creates dsets and manages their attributes and their visibility in the cell (dmf mount operations).
replica Represents read-only copies of a dset, which can be distributed across multiple servers. This object class creates replicas and manages their attributes, placements, and their visibility in the cell (dmf mount operations).
role Represents a set of privileges assigned to a set of NDAF principals to delegate object management rights.
status Represents the status of the request issued by the admin server.

Verbs

The following verbs are used in conjunction with the dmf command.

Item Description
Objects creation and deletion  
create Creates a logical object.
destroy Destroys an object and all its content.
Existing objects inspection  
enumerate Lists logical objects that were created.
show Shows the attributes of an object. If used with the status object, the dmf command with the show verb lists the state of previous dmf commands requests.
clear Clears the requests history and can only be used with the status object.
Objects attributes update  
set Sets the value of a non-list attribute for an object.
add_to Adds a key/value item to a list-based attribute for an object.
remove_from Removes a key/value item from a list-based attribute for an object.
Data update and access  
update Can only be used for replica objects. Causes a replica and its clone locations to be refreshed with the content of the original source dset.
source Changes the source dset of a replica.
master Elects another replica location to become the master location. It is originally the first place were the replica was created. The master location cannot be moved.
place Can only be used for cell objects, replica objects and dset objects. For cell objects, this action makes the cell available for NFS mount on the related server. For replica objects, this action creates an additional copy location on the related server. For dset objects, this action is used with the -m flag to handle data referrals to data residing outside the NDAF framework.
unplace Can only be used for cell objects, replica objects and dset objects. For cell objects, this action makes the cell unavailable for NFS mount on the related server. For replica objects, this action removes a copy location on the related server. For dset objects, with the –m flag, this action removes the data referrals to data residing outside of the NDAF framework.
mount Can only be used with dset objects and replica objects. Let this object appear in the cell federation namespace.
unmount Can only be used with dset objects and replica objects. Hide this object in the cell federation namespace.
resolve Finds the object, dset objects or replica objects, that corresponds to a path exported within the cell.
Problem solving  
repair Unexports and re-exports the dsets of the selected server and fixes internal data representation.
validate Checks the consistency of an object in the different internal objects databases on the admin and on the object's server.
check_adm Detects and reports inconsistencies in the NDAF admin database.
check_serv Detects and reports inconsistencies in the data server database.
check_adm_serv Checks admin-data server database consistency.

Flags

Item Description
-a Identifies the admin server that a command can be sent to with an attached string parameter. The communication port can be added using a colon separator. By default, port 28000 is used.
-c Identifies the container that holds the object that this command is issued to with an attached string parameter. The container is generally a cell, but it can also be a server.
-d Launches a request that runs asynchronously. The command returns as soon as the requests are launched.
-e At server creation, specifies that the object being created refers to an external NDAF server and is not actually running the NDAF data server.
-f When used with the destroy or unplace verb, forces the command without prompting confirmation.
-m Specifies that the data of the created dset will be managed outside NDAF (typical use of this is for cluster machines).
-o With an attached string parameter, specifies the name of the object that this command is addressed to (a dset object, a replica object, or a role object).
-r Causes the CLI to print to the console the UUID (identifier) assigned to the requests generated by the admin server. This is useful for tracking request completion with the dmf show status command.
-w Specifies how long the CLI must wait for the asynchronous portion of an operation to complete before timing out (the default is 120 seconds). This flag takes a numeric parameter. The units are in seconds.
Note: When used with Kerberos principals, the name of the user running the dmf command is used as the Kerberos principal by default. If the kinit command is issued with a different principal name, the DMF_PRINCIPAL environment variable must be set to this principal name before launching the dmf command.

Detailed verbs description

Objects creation and deletion:

create

This verb takes the following syntax:

dmf create object [params]

The create verb creates a logical object. The address parameters specified with it must point at the container for the object. A variable number of parameters are required, depending on the type of object being created.

Parameters

Item Description
object Specifies the type of object created. Values include the following (other parameters depend on the object) :
  admin Requires the name to be given to the admin server as a parameter. This object parameter takes the following syntax:
dmf create admin name [-r] [-a admin_server]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
name
Specifies the name for the admin server to be created.
-r
Prints the uuid (identifier) assigned to the request.
Note: Entering dmf create admin my_admin also creates the my_admin server object.
  server Requires the name of the server, its DNS name or IP address and port. This object parameter takes the following syntax:
dmf create server name dns_target [-e] [-r] [-a admin_server]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
dns_target
Specifies the DNS name or IP address of the server. The port can be added using a colon separator.
-e
Specifies that the object is external to NDAF.
name
Specifies the name for the data server to be created.
-r
Prints the uuid (identifier) assigned to the request.
  cell Requires the name to be given to the cell. This object parameter takes the following syntax:
dmf create cell name  [-w timeout] [-r] [-a admin_server]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
name
Specifies the name for the cell to be created.
-r
Prints the uuid (identifier) assigned to the request.
-w timeout
Specifies how long the command can wait before completing.
  dset Requires the name of the dset, the hosting server, and (optionally) local path on the server. This object parameter takes the following syntax:
dmf create dset name server [path] [-r] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the container (the cell name).
name
Specifies the name for the dset to be created.
path
Specifies the local path on the server. If the path parameter is omitted, the server puts the dset in its default pool. The path of the created dset object can then be inspected using the dmf show dset command.
-r
Prints the uuid (identifier) assigned to the request.
server
Specifies the server name.
  replica Requires the name of the replica, the hosting server, and (optionally) local path on the server. This object parameter takes the following syntax:
dmf create replica name server [path] [-d | -w timeout] \
[-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the container (the cell name).
-d
Specifies that the command must be run asynchronously.
name
Specifies the name for the replica to be created.
-o object
Specifies the name of the object that this command is addressed to.
path
Specifies the local path on the server. If the path parameter is omitted, the server puts the replica in its default pool for replicas. The path of the created replica object can then be inspected using the dmf show replica command.
-r
Prints the uuid (identifier) assigned to the request.
server
Specifies the server name.
-w timeout
Specifies how long the command can wait before completing.
  role Requires the name of the role to be created. This object parameter takes the following syntax:
dmf create role name  [-r] [-a admin_server] [-c container] 
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the container (the cell name).
-r
Prints the uuid (identifier) assigned to the request.

destroy

This verb takes the following syntax:

dmf destroy object [params]

The destroy verb destroys an object and all its content. The objects that depend on that object are also destroyed. For example, if a dset is destroyed, all its content is destroyed. If a cell is destroyed, all of its dsets and replicas are destroyed. The address parameters point to the object that is to be destroyed.

Parameters

Item Description
object Specifies the type of object destroyed. Values include the following (other parameters depend on the object):

  admin This object parameter takes the following syntax:
dmf destroy admin  [-r] [-f] [-a admin_server]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-f
Forces the action without confirmation.
-r
Prints the uuid (identifier) assigned to the request.
  server This object parameter takes the following syntax:
dmf destroy server [-r] [-f] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the server name.
-f
Forces the action without confirmation.
-r
Prints the uuid (identifier) assigned to the request.
  cell This object parameter takes the following syntax:
dmf destroy cell [-r] [-f] [-a admin_server] [-c container] 
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-f
Forces the action without confirmation.
-r
Prints the uuid (identifier) assigned to the request.
  dset This object parameter takes the following syntax:
dmf destroy dset [-r] [-f] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-f
Forces the action without confirmation.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  replica This object parameter takes the following syntax:
dmf destroy replica [-r] [-f] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-f
Forces the action without confirmation.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  role This object parameter takes the following syntax:
dmf destroy role [-r] [-f] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-f
Forces the action without confirmation.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.

Existing objects inspection:

enumerate

This verb takes the following syntax:

dmf enumerate object selector [params ]

The enumerate verb obtains lists of objects within containers such as dsets within a cell. It takes a two-part parameter.

The params parameter, which is optional and can be omitted, is a filter consisting in a text match pattern using ? to match a single character and * to match multiple characters. This parameter is used to restrict the list to the objects matching the filters.

Object Selector Parameters
admin
cell
A list of cells created on that admin.
server
A list of servers depending on that admin.
This object parameter takes the following syntax:
dmf enumerate admin type [pattern] [-r] [-a admin_server]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
pattern
Optional matching text pattern. Valid values are ? and *.
-r
Prints the uuid (identifier) assigned to the request.
type
Specifies the type of objects to return. Valid values are server, cell, and admin.
server
dset
A list of dsets created on that server.
replica
A list of replicas created on that server.
This object parameter takes the following syntax:
dmf enumerate server type [pattern] [-r] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the server name.
pattern
Optional matching text pattern. Valid values are ? and *.
-r
Prints the uuid (identifier) assigned to the request.
type
Specifies the type of objects to return. Valid values are dset and replica.
cell
dset
A list of dsets that are part of that cell.
replica
A list of replicas that are part of that cell.
role
A list of roles that have been defined for that cell.
This object parameter takes the following syntax:
dmf enumerate cell type [pattern] [-r] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
pattern
Optional matching text pattern. Valid values are ? and *.
-r
Prints the uuid (identifier) assigned to the request.
type
Specifies the type of objects to return. Valid values are dset, replica, and role.
dset
server
A list of servers on which that dset has been placed.
This object parameter takes the following syntax:
dmf enumerate dset server [pattern] [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-o object
Specifies the name of the object this command is addressed to.
pattern
Optional matching text pattern. Valid values are ? and *.
-r
Prints the uuid (identifier) assigned to the request.
replica
server
A list of servers on which that replica has been placed.
This object parameter takes the following syntax:
dmf enumerate replica server [pattern] [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-o object
Specifies the name of the object this command is addressed to.
pattern
Optional matching text pattern. Valid values are ? and *.
-r
Prints the uuid (identifier) assigned to the request.

show

This verb takes the following syntax:

dmf show object [params]

The show verb shows the attributes of an object. When used with the status object, this action lists the history of requests on the admin server.

Parameters

Item Description
object Specifies the type of object destroyed. Values include the following (other parameters depend on the object):
  admin This object parameter takes the following syntax:
dmf show admin  [-r] [-a admin_server]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-r
Prints the uuid (identifier) assigned to the request.
  server This object parameter takes the following syntax:
dmf show server [-r] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the server name.
-r
Prints the uuid (identifier) assigned to the request.
  cell This object parameter takes the following syntax:
dmf show cell [-r] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-r
Prints the uuid (identifier) assigned to the request.
  dset This object parameter takes the following syntax:
dmf show dset [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-o object
Specifies the name of the object that this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  replica This object parameter takes the following syntax:
dmf show replica [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-o object
Specifies the name of the object that this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  role This object parameter takes the following syntax:
dmf show role [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-o object
Specifies the name of the object that this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  status This object parameter takes the following syntax:
dmf show status depth [-r] [-a admin_server]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
depth
Specifies how many records to return.
-r
Prints the uuid (identifier) assigned to the request.

clear

This verb takes the following syntax:

dmf clear status [-r] [-a admin_server]

where:
Item Description
-a admin_server Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-r Prints the uuid (identifier) assigned to the request.

The clear verb clears the admin requests history when used with the status object. All history activity is then lost.

Objects attributes update:

set

This verb takes the following syntax:

dmf set object key=value [params]

The set verb sets the value of a non-list attribute for an object. These are single attributes, as distinguished from the add_to verb. The parameters of the set verb are a key/value pair.

Parameters

Item Description
key Depending on the object type, the key parameter can be one of the following values:
DmMinRpcPort
(applies to server) Specifies the minimum RPC port number to be used for data transfers between servers.
DmMaxRpcPort
(applies to server) Specifies the maximum RPC port number to be used for data transfers between servers.
DmDefaultRepPath
(applies to server) Specifies the local path that incoming replicas can be placed in for a server if no path is specified.
DmDefaultDsetPath
(applies to server) Specifies the local path on a server that new dsets can be created in if no path is specified.
DmDTAPort
(applies to server) Specifies the port on a data server that can be used for initiating data transfers from another server.
DmLogLevel
(applies to server & cell) Sets the level of logging for the log files. The default is notice. Possible values include the following:
  • critical
  • error
  • warning
  • notice
  • information
DmLocsMax
(applies to cell & replica & dset) Specifies the maximum number of location referrals that can be returned to an NFS client for an object. The selected locations to return are based on the network affinity of the locations to the client.
DmCreateDs
(applies to role) If this value is set to 0, this role forbids dset creation. The default value is 1.
DmDestroyDs
(applies to role) If this value is set to 0, this role forbids dset destruction. The default value is 1.
DmModifyDs
(applies to role) If this value is set to 0, this role forbids dset modification. The default value is 1.
DmDuplicateDs
(applies to role) If this value is set to 0, this role forbids dset replication. The default value is 1.
DmCreateRole
(applies to role) If this value is set to 0, this role forbids role creation. The default value is 1.
DmDestroyRole
(applies to role) If this value is set to 0, this role forbids role destruction. The default value is 1.
DmModifyRole
(applies to role) If this value is set to 0, this role forbids role modification. The default value is 1.
key (continued)
DmOwner
(applies to dset & replica) Specifies the owner that can be set to the dset root directory. The default value is root.
DmGroup
(applies to dset & replica) Specifies the group that can be set to the dset root directory. The default value is root.
DmMode
(applies to dset & replica) Specifies the mode that can be set to the dset root directory.
object Specifies the type of object. Values include the following (other parameters depend on the object):
  server This object parameter takes the following syntax:
dmf set server key=value [-r] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the server name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are: DmMinRpcPort, DmMaxRpcPort, DmDefaultRepPath, DmDefaultDsetPath, DmDTAPort, DmLogLevel.
-r
Prints the uuid (identifier) assigned to the request.
  cell This object parameter takes the following syntax:
dmf set cell key=value [-r] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are: DmLogLevel, DmLocsMax.
-r
Prints the uuid (identifier) assigned to the request.
  dset This object parameter takes the following syntax:
dmf set dset key=value [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are: DmOwner, DmGroup, DmMode, DmLocsMax.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  replica This object parameter takes the following syntax:
dmf set replica key=value [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are: DmOwner, DmGroup, DmMode, DmLocsMax.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  role This object parameter takes the following syntax:
dmf set role key=value [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are: DmCreateDs, DmDestroyDs, DmModifyDs, DmDuplicateDs, DmCreateRole, DmDestroyRole, DmModifyRole.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.

add_to

This verb takes the following syntax:

dmf add_to object key=value [params]

The add_to verb adds a key/value item to a list-based attribute for an object. The additional parameters of the add_to verb specify which NDAF object is impacted.

Parameters

Item Description
key Depending on the object type, the key parameter can be one of the following values:
DmPrincipal
It is used to change the list of users that are the owners of this NDAF object. By default, the user that created the object is the only DmPrincipal.
DmClientDnsName
This is used for server objects. If a dset or a replica has a location on this server, this DnsName will appear in the locations list of this dset or this replica when requested through NFSv4.
DmOwningRole
It defines which roles control access rights delegation for this object.
DmTransferTable
It defines the list of protocols that can be used for data transfers between dsets and replica locations. By default, a standard copy protocol is used. The rsync protocol can also be added to the list. The protocol is negotiated during data transfers depending on the capabilities of the source and the target. The valid DmTransferTable list values are copy and rsync.
object Specifies the type of object. Values include the following (other parameters depend on the object) :
  admin This object parameter takes the following syntax:
dmf add_to admin key=value [-r] [-a admin_server]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
key=value
Specifies an attribute and the value to assign to it. Valid key is DmPrincipal.
-r
Prints the uuid (identifier) assigned to the request.
  server This object parameter takes the following syntax:
dmf add_to server key=value [-r] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the server name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are DmPrincipal, DmClientDnsName, and DmTransferTable.
-r
Prints the uuid (identifier) assigned to the request.
  cell This object parameter takes the following syntax:
dmf add_to cell key=value [-r] [-a admin_server] [-c container] ]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
key=value
Specifies an attribute and the value to assign to it. Valid key is DmPrincipal.
-r
Prints the uuid (identifier) assigned to the request.
  dset This object parameter takes the following syntax:
dmf add_to dset key=value [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are: DmPrincipal, DmOwningRole, DmTransferTable.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  replica This object parameter takes the following syntax:
dmf add_to replica key=value [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are: DmPrincipal, DmOwningRole, DmTransferTable.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  role This object parameter takes the following syntax:
dmf add_to role key=value [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are: DmPrincipal, DmOwningRole, DmServer, DmMember.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.

remove_from

This verb takes the following syntax:

dmf remove_from object key=value [params]

The remove_from verb removes a key/value item from a list-based attribute for an object. The additional parameters of the remove_from verb specify which NDAF object is impacted.

The dmf show command can be used to inspect the attributes lists.

Parameters

Item Description
key Depending on the object type, the key can be one of the following values:
DmPrincipal
It is used to change the list of users that are the owners of this NDAF object. By default, the user that created the object is the only DmPrincipal.
DmClientDnsName
This is used for server objects. If a dset or a replica has a location on this server, this DnsName will appear in the locations list of this dset or this replica when requested through NFSv4.
DmOwningRole
It defines which roles control access rights delegation for this object.
DmTransferTable
It defines the list of protocols that can be used for data transfers between dsets and replica locations. By default, a standard copy protocol is used. The rsync protocol can also be added to the list. The protocol is negotiated during data transfers depending on the capabilities of the source and the target.
object Specifies the type of object. Values include the following (other parameters depend on the object):
  admin This object parameter takes the following syntax:
dmf remove_from admin key=value [-r] [-a admin_server]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
key=value
Specifies an attribute and the value to assign to it. Valid key is DmPrincipal.
-r
Prints the uuid (identifier) assigned to the request.
  server This object parameter takes the following syntax:
dmf remove_from server key=value [-r] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the server name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are DmPrincipal, DmClientDnsName, and DmTransferTable.
-r
Prints the uuid (identifier) assigned to the request.
  cell This object parameter takes the following syntax:
dmf remove_from cell key=value [-r] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
key=value
Specifies an attribute and the value to assign to it. Valid key is DmPrincipal.
-r
Prints the uuid (identifier) assigned to the request.
  dset This object parameter takes the following syntax:
dmf remove_from dset key=value [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are: DmPrincipal, DmOwningRole, DmTransferTable.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  replica This object parameter takes the following syntax:
dmf remove_from replica key=value [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are: DmPrincipal, DmOwningRole, DmTransferTable.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  role This object parameter takes the following syntax:
dmf remove_from role key=value [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
key=value
Specifies an attribute and the value to assign to it. Valid keys are: DmPrincipal, DmOwningRole, DmServer, DmMember.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.

Data update and access:

update

This verb takes the following syntax:

dmf update replica [-d | -w timeout] [-r] [-a admin_server] [-c container] [-o object]

where:
Item Description
-a admin_server Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container Specifies the cell name.
-d Specifies that the command must be run asynchronously.
-o object Specifies the name of the object this command is addressed to.
-r Prints the uuid (identifier) assigned to the request.
-w timeout Specifies how long the command can wait before completing.

The update verb causes a replica and its clone locations to be refreshed with the content of the original source dset.

Note: The copy or the rsync protocol can be used for data transfers during the update operation. See the transformable filed in the add_to section to specify which protocol must be used.

source

This verb takes the following syntax:

dmf source replica source_dset [-r] [-a admin_server] [-c container] [-o object]

where:
Item Description
-a admin_server Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container Specifies the cell name.
-o object Specifies the name of the object this command is addressed to.
source_dset Specifies the dset that becomes the new source of the replica.
-r Prints the uuid (identifier) assigned to the request.

The source verb changes the source dset of a replica.

master

This verb takes the following syntax:

dmf master replica server [path] [-r] [-a admin_server] [-c container] [-o object]

where:
Item Description
-a admin_server Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container Specifies the cell name.
-o object Specifies the name of the object this command is addressed to.
path Specifies the path of the replica location.
-r Prints the uuid (identifier) assigned to the request.
server Specifies the server name.

The master verb elects another replica location to become the master location. Use this in case you want to change the master location of the replica. The master location is the first location updated on any update command. The other locations are updated afterwards asynchronously. The master location cannot be moved. Moreover, the master location is used to transmit data updates to the other locations. It must, therefore, be carefully selected to provide good data transfer performance.

place

This verb takes the following syntax:

The place verb places an object on a server. It can be applied to a cell, a replica, or a dset. Its parameters depend on the type of object. The action is different between a cell and a replica or dset.

For a cell, the place verb is used to make the cell visible through a server. The cell is exported under the server's nfsroot and contains referrals to mounted dsets and replicas. The parameter of the dmf place cell command is the name of the server. The root namespace of the cell is then placed on the server.

For a replica, the place verb creates a clone of the replica at the specified location on the server. If the replica is mounted in the cell, a referral to this clone location will be added to the referrals list returned to the NFS clients. The order of the referrals in this list depends on the network affinities. Every clone location of a replica is updated asynchronously upon update action requests. The dmf place replica command takes the server and optionally the local path on the server as parameters. For example:
dmf place replica my_server local_path -a my_admin -c 
my_cell -o my_replica
For a dset, the place verb is used in cluster file system environments, such as GPFS, to provide the same coherent view of the dset through different servers in the cluster. The -m flag must be specified. No NDAF management or actions are carried out on the target dset. For example:
dmf place dset my_external_server external_server_path -m 
-a my_admin -c my_cell -o my_dset

The place dset action can be used only in cluster file system environments, such as GPFS, where the coherence view of the underlying data is assumed by the system and not by NDAF.

Parameters

Item Description
cell This object parameter takes the following syntax:
dmf place cell server  [-r] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-r
Prints the uuid (identifier) assigned to the request.
server
Specifies the server name.
dset This object parameter takes the following syntax:
dmf place dset server  [path] [-d | -w timeout] [-r] [-m] [-a admin_server] 
[-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-o object
Specifies the name of the object that this command is addressed to.
-d
Specifies that the command must be run asynchronously.
-m
Specifies that the data of the created dset will be managed outside NDAF (used for cluster machines).
path
Specifies the path where the data resides.
-r
Prints the uuid (identifier) assigned to the request.
server
Specifies the server name.
-w timeout
Specifies how long the command can wait before completing.
replica This object parameter takes the following syntax:
dmf place replica server  [path] [-d | -w timeout] [-r] [-a admin_server] 
[-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-o object
Specifies the name of the object that this command is addressed to.
-d
Specifies that the command must be run asynchronously.
path
Specifies the path where the data will reside.
-r
Prints the uuid (identifier) assigned to the request.
server
Specifies the server name.
-w timeout
Specifies how long the command can wait before completing.

unplace

This verb takes the following syntax:

Both cells and replicas can be unplaced from a server. The action differs depending on whether dmf unplace is used on a cell, dset or replica.

For cell objects, unplace actions prevent NFS users from mounting the cell on that server.

dmf unplace cell server [-r] [-f] [-a admin_server] [-c container]

where:
Item Description
-a admin_server Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container Specifies the cell name.
-f Forces the action without confirmation.
-r Prints the uuid (identifier) assigned to the request.
server Specifies the server name.

The unplace cell verb removes a cell from a server. It does not remove the data from the dsets or replicas and does not unexport the path to this data on the server named in the command line. Data will remain accessible to other clients on this server. The unplace cell verb will unexport the cell through NFS on that server. It remains visible on the other servers.

For dset objects, unplace actions will remove a referral to data that resides outside NDAF.

dmf unplace dset server [path] [-r] [-f] [–m] [-a admin_server] [-c container] [–o object]

where:
Item Description
-a admin_server Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container Specifies the cell name.
-f Forces the action without confirmation.
-m Specifies that the data of the created dset will be managed outside NDAF (used for cluster machines).
-o object Specifies the name of the object this command is addressed to.
path Specifies the path where the location data resides and will be removed.
-r Prints the uuid (identifier) assigned to the request.
server Specifies the server name.
The unplace dset verb removes a referral to data that resides outside NDAF. The unplace dset verb does not remove the data from the dsets or replicas and does not unexport the path to this data on the server named in the command line. Data will remain accessible to other clients on this server.

For replicas, unplace actions will remove a location of the replica.

dmf unplace replica server [path] [-r] [-f] [-a admin_server] [-c container] [–o object]

where:
Item Description
-a admin_server Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container Specifies the cell name.
-o object Specifies the name of the object this command is addressed to.
-f Forces the action without confirmation.
path Specifies the path where the location data resides and will be removed.
-r Prints the uuid (identifier) assigned to the request.
server Specifies the server name.

For replicas, the unplace verb removes the clone location of the replica on that server. This location is unexported and its content is destroyed. The referral to this location is removed from the referrals list returned by NFS for this replica in the cell. The other locations of the replica remain the same. The first replica location (created with the create command) is called the master location of the replica. This location cannot be unplaced unless another location is elected as master location to replace the first one (see the master verb for more information).

If the replica on the server only has one location, specification of the path is not mandatory. If several paths are available, an error message will be returned.
Note:
  1. A cell cannot be unplaced from the admin.
  2. The last location of a replica cannot be unplaced. Use the destroy verb instead.

mount

This verb takes the following syntax:

dmf mount object [params]

The mount verb mounts a dset or a replica in the federation namespace and makes it visible in the cell to NFS clients. In practice, an NFSv4 referral to the dset (exported in NFSv4 at creation time) or replica is added in the cell.

Parameters

Item Description
object Specifies the type of object created. Values include the following (other parameters depend on the object) :
  dset This object parameter takes the following syntax:
dmf mount dset mount_path [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
mount_path
Specifies the mount path in the namespace.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  replica This object parameter takes the following syntax:
dmf mount replica mount_path [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
mount_path
Specifies the mount path in the namespace.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.

unmount

This verb takes the following syntax:

dmf unmount object [params]

The unmount verb removes dset replica referrals from the cell federation namespace. They will consequently no longer appear in the cell for NFS clients. Its parameter is the existing mount point of the dset.
Note: If an NFS client has already resolved a referral, it will still be able to access this referral even after unmounting. If the referral was in a replicated dset, the replicas would have to be updated before the referral is removed as a result of the unmount.

Parameters

Item Description
object Specifies the type of object created. Values include the following (other parameters depend on the object):
  dset This object parameter takes the following syntax:
dmf unmount dset mount_path [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
mount_path
Specifies the mount path in the namespace.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  replica This object parameter takes the following syntax:
dmf unmount replica mount_path [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
mount_path
Specifies the mount path in the namespace.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.

resolve

This verb takes the following syntax:

dmf resolve cell path [-r] [-a admin_server] [-c container]

where:
Item Description
-a admin_server Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container Specifies the cell name.
path Specifies the path to look up.
-r Prints the uuid (identifier) assigned to the request.

The resolve verb finds which dset or replica corresponds to a path within the cell. Its parameter is the path to look up (the given path is that of an NDAF mountpoint specified by the dmf mount command).

Problem solving:

repair

This verb takes the following syntax:

dmf repair server [-r] [-V] [-U] [-R] [-a <admin_server>] [-c <container>]

where:
Item Description
-r Prints the uuid (identifier) assigned to the request.
-V Specifies that locations will be verified (default).
-U Specifies that bad locations will be unexported.
-R Specifies that bad locations will be repaired.
-a value Specifies the DNS name or IP address of the admin server the port might be added using a colon separator.
-c value Specifies the server name.

The dmf repair command provides dset and replica recovery on a data server. It is used to either restore a corrupted file system or migrate a data server to a different system if the NDAF dset data and state data is backed up.

The -V flag is used to check the dset and replica locations that are on the selected data server. This is the default action if no flag is set.

If the -V flag reports inconsistencies, the -R flag can be used to repair internal dset and replica descriptors. It will also reexport the dset and replica locations.

In case some locations are corrupted, you can request them to be unexported before doing the repair (-R) actions. To do so, run the dmf repair command with the -U (unmount) flag. Once the unexport action is done, you can destroy, recreate, and recover the file system from a backup. Finally, use the dmf repair server command with the -R option to recover the server and reexport the dsets within the file system.

validate

This verb takes the following syntax:

dmf validate object [params]

The validate verb checks the consistency of an object on the admin and on the object's server. A query is sent to the admin server daemon, which queries its database and the database of the object's server. Any consistent content found is returned.

Parameters

Item Description
object Specifies the type of object validated. Values include the following (other parameters depend on the object):
  server This object parameter takes the following syntax:
dmf validate server [-r] [-a admin_server] [-c container]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the server name.
-r
Prints the uuid (identifier) assigned to the request.
  dset This object parameter takes the following syntax:
dmf validate dset [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  replica This object parameter takes the following syntax:
dmf validate replica [-r] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the DNS name or IP address of the admin server. The port can be added using a colon separator.
-c container
Specifies the cell name.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.
  role This object parameter takes the following syntax:
dmf validate role [-r] [-f] [-a admin_server] [-c container] [-o object]
where:
-a admin_server
Specifies the name for the data server to be created. The port can be added using a colon separator.
-c container
Specifies the cell name.
-f
Forces the action without confirmation.
-o object
Specifies the name of the object this command is addressed to.
-r
Prints the uuid (identifier) assigned to the request.

check_adm

This verb takes the following syntax:

dmf check_adm admin [-a machine]

The check_adm verb detects and reports inconsistencies in the NDAF admin database.

The tool compares each record and fills an error report each time a mismatch is encountered. As long as the client command has been executed correctly, the returned code will be 0. All other issues, such as communications problems between CLI and the admin server, will return a non-null error.
Note: The check_adm verb can not be used while other NDAF operations are running, because this can cause inaccurate report results.

check_serv

This verb takes the following syntax:

dmf check_serv server [-a machine] [-c server]

The check_serv verb detects and reports inconsistencies in the data server database.

The tool compares each record and fills an error report each time a mismatch is encountered. As long as the client command has been executed correctly, the returned code will be 0. All other issues, such as communications problems between CLI and the admin server, will return a non-null error.
Note: The check_serv verb can not be used while other NDAF operations are running, because this can cause inaccurate report results.

check_adm_serv

This verb takes the following syntax:

dmf check_adm_serv admin [-a machine] [-c server]

dmf check_adm_serv admin [-a machine]

Or

dmf check_adm_serv server [-a machine] [-c server]

The check_adm_serv verb checks admin-data server database consistency.

The tool compares each record and fills an error report each time a mismatch is encountered. As long as the client command has been executed correctly, the returned code will be 0. All other issues, such as communications problems between CLI and the admin server, will return a non-null error.
Note: The check_adm_serv verb can not be used while other NDAF operations are running, because this can cause inaccurate report results.

Exit Status

Item Description
0 The command completed successfully.
>0 An error occurred.

Examples

  1. To create an admin object and its linked data server on the host name where the dms and dmadm daemons run, enter:
    dmf create admin my_admin -a admin_host
  2. To logically create a new server in the federation (to add a server to the federation) where the new server is called server_name and its DNS name is server_dns_name:
    dmf create server server_name server_dns_name -a admin_host
    The dms daemons must run on that machine.
  3. To create a cell on the admin server, which will be the root of the namespace mounted by NFS clients, enter:
    dmf create cell my_cell -a admin_host
  4. To create a dset within the cell where the dset is called my_dset, enter:
    dmf create dset my_dset server_name server_path -a admin_host
     -c my_cell
    The dset data will reside on server_dns_name in server_path.
  5. To create a replica of the dset, enter:
    dmf create replica my_replica server_name replica_path -a admin_host
     -c my_cell -o my_dset

Location

/usr/bin/dmf

Security

Attention RBAC users and Trusted AIX users: This command can perform privileged operations. Only privileged users can run privileged operations. For more information about authorizations and privileges, see Privileged Command Database in Security. For a list of privileges and the authorizations associated with this command, see the lssecattr command or the getcmdattr subcommand.