'\" t .\" Title: mfsgoals.cfg .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: 06/17/2017 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" .TH "MFSGOALS\&.CFG" "5" "06/17/2017" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" mfsgoals.cfg \- replication goals configuration file .SH "DESCRIPTION" .sp The file \fBmfsgoals\&.cfg\fR contains definitions of the replication goals\&. .SH "SYNTAX" .sp Syntax is: .sp \fIid\fR \fIname\fR : $\fItype\fR { \fIlabel\fR \&... } \fIid\fR \fIname\fR : \fIlabel\fR \&... .sp The \fB#\fR character starts comments\&. .SH "DETAILS" .sp There are 40 replication goals, with \fIids\fR between 1 and 40, inclusive\&. Each file stored on the filesystem refers to some goal id and is replicated according to the goal currently associated with this id\&. .sp By default, goal 1 means one copy on any chunkserver, goal 2 means two copies on any two chunkservers and so on, until 5 \- which is the maximal default number of copies\&. The purpose of mfsgoals\&.cfg is to override this behavior, when desired\&. The file is a list of goal definitions, each consisting of \fIid\fR, \fIname\fR and a list of \fIlabels\fR\&. The maximal length of this list is 40 labels\&. .sp \fIid\fR indicates the goal id to be redefined\&. If some files are already assigned this goal id, their effective goal will change\&. .sp \fIname\fR is a human readable name used by the user interface tools (mfssetgoal(1), mfsgetgoal(1))\&. \fIname\fR can consist of up to 32 alphanumeric characters: a\-z, A\-Z, 0\-9, _\&. .sp \fItype\fR specifies goal type \- currently supported types are: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBstd\fR \- for each file using this goal and for each label, the system will try to maintain a copy of the file on some chunkserver with this label\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBxor\fRN \- for each file using this goal, the system will split the file into N+1 parts (N ordinary + 1 parity)\&. For reading, any N of the parts are necessary\&. If labels are specified, parts will be kept on chunkservers with these labels\&. Otherwise, default wildcard labels will be used\&. N can be in range from 2 to 9\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBec\fR(K,M) \- for each file using this goal, the system will split the file into K + M parts (K data parts and M parity)\&. For reading, any K of the parts are necessary\&. If labels are specified, parts will be kept on chunkservers with these labels\&. Otherwise, default wildcard labels will be used\&. K can be in range from 2 to 32 and M from 1 to 32\&. If the type is unspecified is is assumed to be \fBstd\fR\&. .RE .sp The list of \fIlabels\fR is a list of chunkserver labels as defined in mfschunkserver\&.cfg(5)\&. \fIlabel\fR can consist of up to 32 alphanumeric characters: a\-z, A\-Z, 0\-9, _\&. .sp One label may occur multiple times \- in such case the system will create one copy per each occurrence\&. The special label _ means "a copy on any chunkserver"\&. .sp Note that changing the definition of a goal in mfsgoals\&.cfg affects all files which currently use given goal id\&. .SH "EXAMPLES" .sp Some example goal definitions: .sp 3 3 : _ _ _ # one of the default goals (three copies anywhere) .sp 8 not_important_file : _ # only one copy .sp 11 important_file : _ _ .sp 12 local_copy_on_mars : mars _ # at least one copy in the Martian datacenter .sp 13 cached_on_ssd : ssd _ .sp 14 very_important_file : _ _ _ _ .sp 15 default_xor3 : $xor3 .sp 16 fast_read : $xor2 { ssd ssd hdd } .sp 17 xor5 : $xor5 { hdd } # at least one part on hdd .sp 18 first_ec : $ec(3,1) .sp 19 ec32_ssd : $ec(3,2) { ssd ssd ssd ssd ssd } # all parts on ssd .sp 20 ec53_mixed : $ec(5,3) { hdd ssd hdd _ _ _ _ _ } # two parts on hdd and one part on ssd .SH "SNAPSHOT FILES" .sp Snapshot shares data with the original file until the file receives modification and diverges from the snapshotted version\&. If some snapshot has different goal than its original file, any shared data are stored according to the goal with higher \fIid\fR of the two\&. .SH "COPYRIGHT" .sp Copyright 2008\-2009 Gemius SA, 2013\-2015 Skytechnology sp\&. z o\&.o\&. .sp LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3\&. .sp LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE\&. See the GNU General Public License for more details\&. .sp You should have received a copy of the GNU General Public License along with LizardFS\&. If not, see http://www\&.gnu\&.org/licenses/\&. .SH "SEE ALSO" .sp mfsmaster\&.cfg(5)