.\" Process this file with
.\" groff -man -Tascii export.conf.5
.\"
.TH EXPORT.CONF 5 "APRIL 2014" RozoFS "User Manuals"
.SH NAME
export.conf \- RozoFS export daemon configuration file
.SH DESCRIPTION
.B export.conf
is managed through
.B libconfig
and thus complies to the
.B libconfig
grammar.
.SS 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);
.SS 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.
.B 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 !!!
.SS 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
.B exports
section).
A filter is a list of IPv4 subnets (IP address and mask length) with a
.B allow
or
.B 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 /
where is an IPv4 address in dot notation
and is the subnet mask length from 1 to 32.
rule: is the rule to apply to this subnet within {allow, forbid}
.SS 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 : .
is the directory path where the metadata of this file system are stored
on the export nodes. When omitted a default value is used :
/srv/rozofs/exports/export_.
is an administrative name of the exported file system. It must be unique
and is used for remotly mounting the file system. When no is specified
in the configuration file, the field is used instead.
is the number of data blocks that can be stored on a file system
before being notified. is the number maximum of data blocks that can
be stored on a file system. 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_
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 !
.SH EXAMPLE
.PP
.nf
.ta +3i
# 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;}
# ...
);
.SH FILES
.I /etc/rozofs/export.conf (/usr/local/etc/rozofs/export.conf)
.RS
The system wide configuration file.
.\".SH ENVIRONMENT
.\".SH DIAGNOSTICS
.\".SH BUGS
.SH AUTHOR
Fizians
.SH "SEE ALSO"
.BR rozofs (7),
.BR exportd (8)