Scroll to navigation

EXPORT.CONF(5) User Manuals EXPORT.CONF(5)

NAME

export.conf - RozoFS export daemon configuration file

DESCRIPTION

export.conf is managed through libconfig <http://www.hyperrealm.com/libconfig/> and thus complies to the libconfig grammar.

layout


It is the default transform layout used by RozoFS for each volume.
Each file data will be transform in *forward* chunks. Any *inverse* set of them
enables to reconstruct data (read data). The *forward* generated chunks can be
spread over *safe* storages.


Valid layouts are:
- 0 (inverse = 2, forward = 3, safe = 4);
- 1 (inverse = 4, forward = 6, safe = 8);
- 2 (inverse = 8, forward = 12, safe = 16);

volumes


It is a list of volumes. Each volume is identified by its vid and may contain
a list of one or more clusters (cids). Each clusters is identified by its
unique cid number within the configuration, and may contain at least a list of
*safe* storages of the same capacity (sids).


vid: (volume identifier)
- must be an integer.
- must be unique for each volume managed by this exportd.


layout: (specific layout for this volume / optional)
- Valid layouts are 0, 1 or 2.
- Optional field (if no layout is specified for this volume, the
default layout is used instead).


cid: (cluster identifier)
- must be an integer.
- must be unique for each cluster managed by this exportd.


sid: (storage identifier)
- must be an integer (between 1 and 255).
- must be unique within a cluster.


rebalance: rebalance configuration file in case a rebalance process must be automatically and permanently launched for this volume.
- must be a full path.
- file must exist.
- file format is described in rozo_rebalance.conf manual.


georep: (whether geo-replication must occur on this volume / optional)
- must be a boolean.
- Optional field (default value is False).


host: (IP or hostname of the physical node that contains the storage)
- must be a valid IPv4 address or a valid hostname.
- must only be set in case of a volume without geo-replication.


site: (site number where the host resides in a multi site configuration)
- must be a strictly positive integer.
- must only be set in case of a volume without geo-replication.
- Optional field.


site0: (IP or hostname of the physical node that contains the storage on the main site)
- must be a valid IPv4 address or a valid hostname.
- must only be set in case of a volume with geo-replication.


site1: (IP or hostname of the physical node that contains the storage on the secondary site)
- must be a valid IPv4 address or a valid hostname.
- must only be set in case of a volume with geo-replication.

WARNING:
- Use a new cluster when scaling with storage of different capacity.
- Modifying or removing sid of storage can (will) lead to DATA LOSS !!!
- Modifying or removing cid can (will) lead to DATA LOSS !!!

filters


This section describes some IPv4 filtering rules. It is a list of filters.
Each filter has a name that enable the exports to reference it (see exports section).
A filter is a list of IPv4 subnets (IP address and mask length) with a allow
or forbid rule. Incoming IP addresses for a given export are checked against the
filter referenced by the export. The longuest prefix match subnet gives the
rule to apply to the incoming client.


filter: The name of a filter


rule: allow or forbid (default is forbid)


subnets: list of IPv4 subnets defining the filter behaviour.
A subnet contains the following parameters
ip4subnet: is an IPv4 subnet in the format <ipv4>/<len>
where <IPv4> is an IPv4 address in dot notation
and <len> is the subnet mask length from 1 to 32.
rule: is the rule to apply to this subnet within {allow, forbid}

exports


It is the list of the file systems exported by the RozoFS exportd daemon.
Each exported file system is identified by a unique integer : <eid>.
<root> is the directory path where the metadata of this file system are stored
on the export nodes. When omitted a default <root> value is used :
/srv/rozofs/exports/export_<eid>.
<name> is an administrative name of the exported file system. It must be unique
and is used for remotly mounting the file system. When no <name> is specified
in the configuration file, the <root> field is used instead.
<squota> is the number of data blocks that can be stored on a file system
before being notified. <hquota> is the number maximum of data blocks that can
be stored on a file system. <vid> is the volume where the file data for this
exported filesystem will be stored.


eid: (export identifier)
- must be an integer.
- must be unique for each exported filesystem managed by this
exportd.


root: (directory path where metadata for this filesystem will be stored)
- must be an existing directory.
- must be unique for each filesystem managed by this exportd.
- default directory is /srv/rozofs/exports/export_<eid>


name: (exported file system name)
- must be unique for each filesystem managed by this exportd.
- default name is the root field.


filter: (IPv4 filter to apply to this export)
- is optional (every IP is allowed when omitted).
- must be a string defined in the filter section.


squota: (soft quota)
- squota stands for soft quota which are non blocking quotas
i.e write operations will succeeded but exceeded quotas will
be notified in /var/run/exportd/export_[eid] monitoring file.
- when no soft quota this field may be omitted.


hquota: (hard quota)
- hquota stands for blocking quotas which are blocking quotas
i.e every attempt to write beyond hquota will fail (EDQUOT).
- when no hard quota this field may be omitted.


for squota and hquota:
- quotas are express in nb. of blocks (no suffix), Kilo, Mega,
Giga or Tera Bytes according to suffix K, M, G or T. Only the
first letter of suffix is used that is: 128G is equivalent to
128Giga which in turn can be 128GigaBytes etc...
- warning: any other suffix leads to quota express in blocks.


vid: (volume identifier used to store file data for this filesystem)
- must be an integer.
- should exist in volume list.
- several filesystem can use the same volume.


thin-provisioning: (whether accounting of allocated sectors per file must be done)
- must be a boolean.
- Optional field (default value is False).
- must only be set to True on very specific cases !

EXAMPLE

# sample /etc/rozofs/export.conf file
layout = 0; # Default layout 
volumes =   # List of volumes
(

{
# First volume using default layout
vid = 1; # Volume identifier
cids= # List of clusters of the volume
(
{
# First cluster of the volume
cid = 1; # Cluster identifier
sids = # List of storages of the cluster
(
{sid = 01; host = "storage-node-1-1";},
{sid = 02; host = "storage-node-1-2";},
{sid = 03; host = "storage-node-1-3";},
{sid = 04; host = "storage-node-1-4";}
);
},
{
# Second cluster of volume
cid = 2; # Cluster identifier
sids = # List of storages of the cluster
(
{sid = 01; host = "storage-node-2-1";},
{sid = 02; host = "storage-node-2-2";},
{sid = 03; host = "storage-node-2-3";},
{sid = 04; host = "storage-node-2-4";}
);
}
);
},
{
# 2nd volume distributed on 4 sites
vid = 2; # Volume identifier layout = 1; # Specific layout for this volume
cids= # List of clusters of the volume
(
{
# First cluster of the volume
cid = 3; # Cluster identifier
sids = # List of storages of the cluster
(
{sid = 01; host = "storage-site1-node1"; site=1;},
{sid = 02; host = "storage-site1-node2"; site=1;},
{sid = 03; host = "storage-site2-node3"; site=2;},
{sid = 04; host = "storage-site2-node4"; site=2;},
{sid = 05; host = "storage-site3-node5"; site=3;},
{sid = 06; host = "storage-site3-node6"; site=3;},
{sid = 07; host = "storage-site4-node7"; site=4;},
{sid = 08; host = "storage-site4-node8"; site=4;},
);
}
);
},
{
# 3rd volume with georeplication
vid = 3; # Volume identifier
georep = True; # Volume is geo-replicated
layout = 1; # Specific layout for this volume
cids = # List of clusters for the volume
(
{
# First cluster of this volume
cid = 4; # Cluster identifier
sids = # List of storages of the cluster
(
{sid = 01; site0 = "storage-node-3-1-0"; site1 = "storage-node-3-1-1";},
{sid = 02; site0 = "storage-node-3-2-0"; site1 = "storage-node-3-2-1";},
{sid = 03; site0 = "storage-node-3-3-0"; site1 = "storage-node-3-3-1";},
{sid = 04; site0 = "storage-node-3-4-0"; site1 = "storage-node-3-4-1";},
{sid = 05; site0 = "storage-node-3-5-0"; site1 = "storage-node-3-5-1";},
{sid = 06; site0 = "storage-node-3-6-0"; site1 = "storage-node-3-6-1";},
{sid = 07; site0 = "storage-node-3-7-0"; site1 = "storage-node-3-7-1";},
{sid = 08; site0 = "storage-node-3-8-0"; site1 = "storage-node-3-8-1";}
);
}
);
} ); filters = (
{
# Only 2 subnets are allowed
filter = "vol1",
subnets =
(
{ ip4subnet="10.10.0.0/24", rule="allow"},
{ ip4subnet="10.20.0.0/24", rule="allow"}
);
}
,{
# Only one subnet is allowed except one forbidden IP address
filter = "vol3",
subnets =
(
{ ip4subnet="192.168.0.0/24", rule="allow"},
{ ip4subnet="192.168.0.22/32", rule="forbid"}
);
} ); exports = ( # List of exported filesystem
# exported file systems on volume 1
{eid = 1; name = "foo1"; filter="vol1", squota="128G"; hquota="256G"; vid=1;},
{eid = 2; name = "foo2"; filter="vol1", squota="256G"; hquota="512G"; vid=1;},
{eid = 3; name = "foo3"; filter="vol1", vid=1;},
# exported file systems on volume 2
{eid = 4; name = "bar1"; vid=2;}
{eid = 5; name = "bar2"; vid=2;}

# exported file systems on volume 3
{eid = 6; name = "geo"; filter="vol3", vid=3;}
# ... );

FILES

/etc/rozofs/export.conf (/usr/local/etc/rozofs/export.conf)

The system wide configuration file.

AUTHOR

Fizians <http://www.fizians.com>

SEE ALSO

rozofs(7), exportd(8)

APRIL 2014 RozoFS