# # Builds out a default storage node # a storage node is a device that contains # a storage endpoint for account, container, and object # on the same mount point # # === Parameters: # # [*mnt_base_dir*] # (optional) The directory where the flat files that store the file system # to be loop back mounted are actually mounted at. # Defaults to '/srv/node', base directory where disks are mounted to # # [*zone*] # (required) Zone is the number of the zone this device is in. # The zone parameter must be an integer. # # [*weight*] # (optional) Weight is a float weight that determines how many partitions are # put on the device relative to the rest of the devices in the cluster (a good # starting point is 100.0xTB on the drive). # Add each device that will be initially in the cluster. # Defaults to 1. # # [*owner*] # (optional) Owner (uid) of rsync server. # Defaults to 'swift'. # # [*group*] # (optional) Group (gid) of rsync server. # Defaults to 'swift'. # # [*max_connections*] # (optional) maximum number of simultaneous connections allowed. # Defaults to 25. # # [*storage_local_net_ip*] # (optional) The IP address of the storage server. # Defaults to '127.0.0.1'. # # ==== DEPRECATED PARAMETERS # # [*manage_ring*] # This parameter is deprecated and does nothing. # define swift::storage::node( $mnt_base_dir, $zone, $weight = 1, $owner = 'swift', $group = 'swift', $max_connections = 25, $storage_local_net_ip = '127.0.0.1', # DEPRECATED PARAMETERS $manage_ring = true ) { include ::swift::deps validate_re($zone, '^\d+$', 'The zone parameter must be an integer') Swift::Storage::Server { storage_local_net_ip => $storage_local_net_ip, devices => $mnt_base_dir, max_connections => $max_connections, owner => $owner, group => $group, } swift::storage::server { "60${name}0": type => 'object', config_file_path => 'object-server.conf', } ring_object_device { "${storage_local_net_ip}:60${name}0/${name}": zone => $zone, weight => $weight, } swift::storage::server { "60${name}1": type => 'container', config_file_path => 'container-server.conf', } ring_container_device { "${storage_local_net_ip}:60${name}1/${name}": zone => $zone, weight => $weight, } swift::storage::server { "60${name}2": type => 'account', config_file_path => 'account-server.conf', } ring_account_device { "${storage_local_net_ip}:60${name}2/${name}": zone => $zone, weight => $weight, } }