Configuration files for IBM Spectrum Scale for object storage

Use the following information to manage options in configuration files that are used for IBM Spectrum Scale™ for object storage including the unified file and object access feature. These configuration files are located in the /etc/swift directory.

For information on changing an option in a configuration file, see Changing options in configuration files.

object-server-sof.conf

  • Contains identity management modes for unified file and object access (id_mgmt)

  • Contains AD domain name (ad_domain) if AD is configured

Table 1. Configurable options for [DEFAULT] in object-server-sof.conf
Configuration option = Default value Description
id_mgmt = local_mode

Defines the object server behavior while assigning user or group ownership to newly created objects, when those are accessed using the file interface. The allowed values are local_mode and unified_mode

With local_mode, the new objects are owned by the swift user. In unified_mode, the identity of the user making the PUT request is fetched from the configured directory server.

ad_domain When using Active Directory (AD), defines the AD domain from which the user identity should be fetched when object server is operating in the unified_mode identity management mode.
Note: When you clean up object authentication, you must manually remove this entry. For more information, see Configuring authentication and setting identity management modes for unified file and object access.
tempfile_prefix = .ibmtmp_ The prefix to be used for the temporary file being created when a file being uploaded.
disable_fallocate = true Overrides the default swift fallocate behavior, and relies on the GPFS™ fallocate features, excludes 'fast fail' checks.
disk_chunk_size = 65536 The size of chunks to read/write to disk (needs be equal to the file system block size).
network_chunk_size = 65536 The size of chunks to read/write over the network (needs be equal to the file system block size).
log_statsd_host = localhost If not set, the StatsD feature is disabled.
log_statsd_port = 8125 The port number for the StatsD server.
log_statsd_default_sample_rate = 1.0 Defines the probability of sending a sample for any given event or timing measurement.
log_statsd_sample_rate_factor = 1.0 Not recommended to set this to a value less than 1.0. If the frequency of logging is too high, tune the log_statsd_default_sample_rate instead.
log_statsd_metric_prefix = The prefix that is added to every metric sent to the StatsD server.
retain_acl = yes Specifies whether or not to copy the ACL from an existing object. Allowed values are yes or no.
retain_winattr = yes Specifies whether or not to copy the Windows attributes from an existing object. Allowed values are yes or no.
retain_xattr = yes Specifies whether or not to copy the extended attributes for the user namespace from an existing object. Allowed values are yes or no.
retain_owner = yes Specifies whether or not to copy the UID/GID owners from an existing object. Allowed values are yes or no.
Note: Files with the .ibmtmp prefix or the one configured in the object-server-sof.conf configuration file are not objectized.

When you set the retain_* options to yes, the following attributes are retained:

  • The extended attributes in the user namespace except for the user.swift.metadata key which contains swift metadata and it is expected to be new.
  • Windows attributes

When you set the retain_* options to yes, the following attributes are not retained:

  • Extended attributes in system, security, and trusted namespaces.
    Note: These attributes are not retained in an object's copy object operation also.

Retaining ACLs, Windows attributes, file extended attributes, and ownership, when an object is PUT over an existing object in unified file and object access enabled containers depends on your specific use case and your discretion. For example, if you are using object and file access to refer to the same data content in such a way that the object protocol might completely replace the data content in such that it might be completely new content from the file interface as well, then you might choose to not retain the existing file ACL and extended attributes. For such a use case, you might change the default values to not to retain the file ACLs, extended attributes, and ownership.

Note: If you are unsure about whether to retain these attributes or not, you might want to use the default values of retaining ACLs, Windows attributes, file extended attributes, and ownership. The default values in this case are more aligned with the expected behavior in a multiprotocol setup.

spectrum-scale-object.conf

  • Contains cluster or fileset configuration information

  • Unique to a site

Table 2. Configurable options for [capabilities] in spectrum-scale-object.conf
Configuration option = Default value Description
file-access-enabled = false The state for the file-access capability. It can be either true or false.
multi-region-enabled = true The state for the multi-region capability. This option cannot be changed.
s3-enabled = true The state for the s3 capability. This option cannot be changed.

spectrum-scale-objectizer.conf

  • Contains the ibmobjectizer service configuration information

Table 3. Configuration options for [DEFAULT] in spectrum-scale-objectizer.conf
Configuration option = Default value Description
objectization_tmp_dir The temporary directory to be used by ibmobjectizer. This must be a path on any GPFS file system. The default value is autofilled with the path of the base file system for object.
objectization_threads = 24 The maximum number of threads that ibmobjectizer will spawn on a node.
batch_size = 100 The maximum number of files that ibmobjectizer will process in a thread.
objectization_interval = 1800 The time interval, in seconds, between the completion of an objectization cycle and the beginning of the next objectization cycle.
conection_timeout = 25 The connection time out for an account, container, or object server request from ibmobjectizer,
response_timeout = 25 The response time out for an account, container, object server request from ibmobjectizer
qos_iops_target = 0 The value assigned to ibmobjectizer to limit its resource usage. Value is given in IOPS unit. For example- 100, 400, 0.

0 means infinite.

Table 4. Configuration options for [IBMOBJECTIZER-LOGGER] in spectrum-scale-objectizer.conf
Configuration option = Default value Description
log_level = INFO The logging level. Allowed value is one of the following: INFO, DEBUG, WARN, ERROR

object-server.conf file

  • Used to set swift timeout values on the lock_path calls to handle GPFS delays better

Table 5. Configuration options for object-server.conf
Configuration option = Default value Description
partition_lock_timeout = 10 The time-out value while the object server tries to acquire a lock on the partition path during object create. update, and delete processes. The default value is 10.
Start of change

/etc/sysconfig/memcached file

  • Used to improve the performance of the internal lookups in the framework

Table 6. Configuration options for /etc/sysconfig/memcached
Configuration option = Default value Description
MAXCONN = 4096 The value is set to 4096 unless the current value is higher than 4096.
CACHESIZE = 2048 The value is set to 2048 unless the current value is higher than 2048.
End of change
Start of change

proxy-server.conf file

  • Used to improve the performance of the internal lookups in the framework

Table 7. Configuration options for proxy-server.conf
Configuration option = Default value Description
memcache_max_connections = 8 The default value is set to 8.
memcache_servers This parameter is dynamically set to the nodes that are running the object protocol for memcache to work in a clustered environment.
End of change

Changing options in configuration files

You can use the mmobj config change command to change the values of the options in the configuration files. For example:

  • Change the value of an option in the [DEFAULT] section of the object-server-sof.conf file as follows:
    mmobj config change --ccrfile object-server-sof.conf --section DEFAULT 
    --property OPTIONNAME --value NEWVALUE
  • Change the value of an option in the [IBMOBJECTIZER-LOGGER] section of the spectrum-scale-objectizer.conf file as follows:
    mmobj config change --ccrfile spectrum-scale-objectizer.conf --section IBMOBJECTIZER-LOGGER 
    --property OPTIONNAME --value NEWVALUE
Note: Only some options are configurable. If an option cannot be changed, it is mentioned in the respective option description.
Attention: When a configuration file is changed using these commands, it takes several seconds for the changes to be synced across the whole cluster depending on the size of the cluster. Therefore, when executing multiple commands to change configuration files, you must plan for an adequate time interval between the execution of these commands.