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)
AUTHOR¶
Fizians <http://www.fizians.com>
SEE ALSO¶
rozofs(7), exportd(8)
APRIL 2014 | RozoFS |