|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| debian/ | H | 10-Aug-2021 | - | 3,691 | 2,697 |
| freebsd/ | H | 10-Aug-2021 | - | 724 | 473 |
| m4/ | H | 10-Aug-2021 | - | 9,393 | 8,488 |
| macosx/ | H | 10-Aug-2021 | - | 36 | 27 |
| mfschunkserver/ | H | 10-Aug-2021 | - | 15,729 | 13,484 |
| mfsclient/ | H | 10-Aug-2021 | - | 37,306 | 31,815 |
| mfscommon/ | H | 10-Aug-2021 | - | 14,459 | 10,658 |
| mfsdata/ | H | 10-Aug-2021 | - | 1,168 | 967 |
| mfsmanpages/ | H | 10-Aug-2021 | - | 4,738 | 4,461 |
| mfsmaster/ | H | 10-Aug-2021 | - | 43,526 | 38,129 |
| mfsmetalogger/ | H | 10-Aug-2021 | - | 2,160 | 1,877 |
| mfsmetatools/ | H | 10-Aug-2021 | - | 3,290 | 3,008 |
| mfsnetdump/ | H | 10-Aug-2021 | - | 1,701 | 1,524 |
| mfsscripts/ | H | 03-May-2022 | - | 9,789 | 9,221 |
| mfssupervisor/ | H | 10-Aug-2021 | - | 486 | 415 |
| mfstests/ | H | 10-Aug-2021 | - | 1,969 | 1,608 |
| rpm/ | H | 10-Aug-2021 | - | 913 | 663 |
| systemd/ | H | 10-Aug-2021 | - | 702 | 611 |
| COPYING | H A D | 10-Aug-2021 | 14.6 KiB | 98 | 49 |
| INSTALL | H A D | 10-Aug-2021 | 9.2 KiB | 235 | 177 |
| Makefile.am | H A D | 10-Aug-2021 | 2.1 KiB | 84 | 68 |
| Makefile.in | H A D | 10-Aug-2021 | 28.6 KiB | 908 | 807 |
| NEWS | H A D | 10-Aug-2021 | 79.2 KiB | 1,764 | 1,275 |
| README | H A D | 10-Aug-2021 | 8.8 KiB | 244 | 188 |
| README.md | H A D | 10-Aug-2021 | 8.7 KiB | 190 | 145 |
| aclocal.m4 | H A D | 10-Aug-2021 | 53.1 KiB | 1,479 | 1,340 |
| ar-lib | H A D | 10-Aug-2021 | 5.7 KiB | 271 | 210 |
| compile | H A D | 10-Aug-2021 | 7.2 KiB | 349 | 259 |
| config.guess | H A D | 10-Aug-2021 | 41.9 KiB | 1,421 | 1,229 |
| config.h.in | H A D | 10-Aug-2021 | 16.3 KiB | 614 | 424 |
| config.sub | H A D | 10-Aug-2021 | 34.8 KiB | 1,791 | 1,653 |
| configure | H A D | 03-May-2022 | 580.9 KiB | 20,360 | 17,127 |
| configure.ac | H A D | 10-Aug-2021 | 26.8 KiB | 771 | 682 |
| debian_sysv_to_systemd.sh | H A D | 10-Aug-2021 | 729 | 18 | 11 |
| depcomp | H A D | 10-Aug-2021 | 23 KiB | 792 | 502 |
| freebsd_build.sh | H A D | 10-Aug-2021 | 188 | 5 | 2 |
| install-sh | H A D | 10-Aug-2021 | 12.9 KiB | 508 | 340 |
| linux_build.sh | H A D | 10-Aug-2021 | 341 | 9 | 6 |
| ltmain.sh | H A D | 10-Aug-2021 | 316.6 KiB | 11,150 | 7,980 |
| macosx_build.sh | H A D | 10-Aug-2021 | 84 | 5 | 2 |
| missing | H A D | 10-Aug-2021 | 6.7 KiB | 216 | 143 |
| sanitize_build.sh | H A D | 10-Aug-2021 | 698 | 11 | 4 |
| test-driver | H A D | 10-Aug-2021 | 4.2 KiB | 140 | 84 |
README
1MooseFS - A Petabyte Distributed File System
2
3MooseFS is a Petabyte Open Source Network Distributed File System. It is easy
4to deploy and maintain, highly reliable, fault tolerant, highly performing,
5easily scalable and POSIX compliant.
6
7MooseFS spreads data over a number of commodity servers, which are visible
8to the user as one resource. For standard file operations MooseFS acts
9like ordinary Unix-like file system:
10
11 * A hierarchical structure – directory tree
12 * Stores POSIX file attributes – permissions, last access and modification
13 times, etc.
14 * Supports ACLs
15 * Supports POSIX and BSD file locks – including support for distributed
16 file locking
17 * Supports special files – block and character devices, pipes and sockets
18 * Supports symbolic links – file names pointing to target files,
19 not necessarily on MooseFS
20 * Supports hard links – different names of files which refer to the same
21 data on MooseFS
22
23
24Distinctive MooseFS features:
25=============================
26
27 * High reliability – files are stored in several copies on separate servers.
28 The number of copies is a configurable parameter, even per each file
29 * No Single Point of Failure – all hardware and software components may be
30 redundant
31 * Parallel data operations – many clients can access many files concurrently
32 * Capacity can be dynamically expanded by simply adding new servers/disks
33 on the fly
34 * Retired hardware may be removed on the fly
35 * Deleted files are retained for a configurable period of time (a file system
36 level "trash bin")
37 * Coherent, "atomic" snapshots of files, even while the files are being
38 written/accessed
39 * Access to the file system can be limited based on IP address and/or password
40 (similarly as in NFS)
41 * Data tiering – supports different storage policies for different
42 files/directories in Storage Classes mechanism
43 * Per-directory, "project" quotas – configurable per RAW space, usable space,
44 number of inodes with hard and soft quotas support
45 * Apart from file system storage, MooseFS also provides block storage (mfsbdev)
46 * Efficient, pure C implementation
47 * Ethernet support
48
49
50Supported platforms
51===================
52
53MooseFS can be installed on any POSIX compliant operating system including
54various Linux distributions, FreeBSD and macOS:
55
56 * Ubuntu
57 * Debian
58 * RHEL / CentOS
59 * OpenSUSE
60 * FreeBSD
61 * macOS
62 * Raspbian – Raspberry Pi 3
63
64MooseFS Linux Client uses FUSE (https://github.com/libfuse/libfuse).
65MooseFS macOS Client uses FUSE for macOS (https://github.com/osxfuse/osxfuse).
66
67There is a separate MooseFS Client for Microsoft Windows available,
68built on top of Dokany (https://github.com/dokan-dev/dokany).
69
70
71Getting started
72===============
73
74You can install MooseFS using your favorite package manager on one
75of the following platforms using officially supported repositories
76(https://moosefs.com/download):
77
78 * Ubuntu 16 / 18 / 20
79 * Debian 8 / 9 / 10
80 * RHEL / CentOS 7 / 8
81 * FreeBSD 11 / 12
82 * macOS 10.11+
83 * Raspbian 8 / 9 – Raspberry Pi 3
84
85Packages for Ubuntu 14 and CentOS 6 are also available, but no longer supported.
86
87Minimal set of packages, which are needed to run MooseFS:
88 * moosefs-master – MooseFS Master Server for metadata servers,
89 * moosefs-chunkserver – MooseFS Chunkserver for data storage servers,
90 * moosefs-client – MooseFS Client – client side package to mount
91 the filesystem.
92
93
94Source code
95-----------
96
97Feel free to download the source code from our GitHub code repository!
98
99Install the following dependencies before building MooseFS from sources:
100 * Debian/Ubuntu: sudo apt install build-essential libpcap-dev zlib1g-dev libfuse3-dev pkg-config
101 (if you don't have FUSE v. 3 in your system, use:
102 sudo apt install build-essential libpcap-dev zlib1g-dev libfuse-dev pkg-config)
103 * CentOS/RHEL: sudo yum install gcc gcc-c++ make libpcap-devel zlib-devel fuse3-devel pkgconfig
104 (if you don't have FUSE v. 3 in your system, use:
105 sudo yum install gcc make libpcap-devel zlib-devel fuse-devel pkgconfig)
106
107Recommended packages:
108 * Debian/Ubuntu: sudo apt install fuse3
109 (if you don't have FUSE v. 3 in your system, use: sudo apt install fuse)
110 * CentOS/RHEL: sudo yum install fuse3
111 (if you don't have FUSE v. 3 in your system, use: sudo yum install fuse)
112
113Building MooseFS on Linux can be easily done by running ./linux_build.sh.
114Similarly, use ./freebsd_build.sh in order to build MooseFS on FreeBSD
115and respectively ./macosx_build.sh on macOS. Remember that these scripts
116do not install binaries (i.e. do not run make install) at the end. Run this
117command manually.
118
119Minimal setup
120-------------
121
122Just three steps to have MooseFS up and running:
123
1241. Install at least one Master Server
125
126 1. Install moosefs-master package
127 2. Prepare default config (as root):
128 cd /etc/mfs
129 cp mfsmaster.cfg.sample mfsmaster.cfg
130 cp mfsexports.cfg.sample mfsexports.cfg
131 3. Prepare the metadata file (as root):
132 cd /var/lib/mfs
133 cp metadata.mfs.empty metadata.mfs
134 chown mfs:mfs metadata.mfs
135 rm metadata.mfs.empty
136 4. Run Master Server (as root): mfsmaster start
137 5. Make this machine visible under 'mfsmaster' name, e.g. by adding
138 a DNS entry (recommended) or by adding it in /etc/hosts on all servers
139 that run any of MooseFS components
140
141
1422. Install at least two Chunkservers
143
144 1. Install moosefs-chunkserver package
145 2. Prepare default config (as root):
146 cd /etc/mfs
147 cp mfschunkserver.cfg.sample mfschunkserver.cfg
148 cp mfshdd.cfg.sample mfshdd.cfg
149 3. At the end of mfshdd.cfg file make one or more entries containing paths
150 to HDDs / partitions designated for storing chunks, e.g.:
151 /mnt/chunks1
152 /mnt/chunks2
153 /mnt/chunks3
154 It is recommended to use XFS as an underlying filesystem
155 for disks designated to store chunks.
156 4. Change the ownership and permissions to mfs:mfs to above
157 mentioned locations:
158 chown mfs:mfs /mnt/chunks1 /mnt/chunks2 /mnt/chunks3
159 chmod 770 /mnt/chunks1 /mnt/chunks2 /mnt/chunks3
160 5. Start the Chunkserver: mfschunkserver start
161
162 Repeat the steps above for second (third, ...) Chunkserver.
163 More than two Chunkservers are strongly recommended.
164
165
1663. Client side: mount MooseFS filesystem
167
168 1. Install moosefs-client package
169 2. Mount MooseFS (as root):
170 mkdir /mnt/mfs
171 mount -t moosefs mfsmaster: /mnt/mfs
172 or:
173 mfsmount -H mfsmaster /mnt/mfs
174 3. You can also add an /etc/fstab entry to mount MooseFS during
175 the system boot:
176 mfsmaster: /mnt/mfs moosefs defaults,mfsdelayedinit 0 0
177
178 There are more configuration parameters available but most
179 of them may stay with defaults. We do our best to keep MooseFS easy
180 to deploy and maintain.
181
182 MooseFS, for testing purposes, can even be installed on a single machine!
183
184
185Additional tools
186----------------
187
188Setting up moosefs-cli or moosefs-cgi with moosefs-cgiserv is also
189recommended – it gives you a possibility to monitor the cluster online:
190 1. Install moosefs-cli moosefs-cgi moosefs-cgiserv packages
191 (they are typically set up on the Master Server)
192 2. Run MooseFS CGI Server (as root): mfscgiserv start
193 3. Open http://mfsmaster:9425 in your web browser
194
195It is also strongly recommended to set up at least one Metalogger on a different
196machine than Master Server (e.g. on one of Chunkservers). Metalogger constantly
197synchronizes and backups the metadata:
198 1. Install moosefs-metalogger package
199 2. Prepare default config (as root):
200 cd /etc/mfs
201 cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
202 3. Run Metalogger (as root): mfsmetalogger start
203
204Refer to installation guides (https://moosefs.com/support/#documentation)
205for more details.
206
207
208Some facts
209==========
210
211 * Date of the first public release: 2008-05-30
212 * The project web site: https://moosefs.com
213 * Installation and using MooseFS: https://moosefs.com/support
214 * (Old) Sourceforge project site: http://sourceforge.net/projects/moosefs
215
216
217Contact us
218==========
219
220 * Reporting bugs: GitHub issue (https://github.com/moosefs/moosefs/issues)
221 or support@moosefs.pro
222 * General: contact@moosefs.pro
223
224
225Copyright
226=========
227
228Copyright (c) 2008-2021 Jakub Kruszona-Zawadzki, Core Technology Sp. z o.o.
229
230This file is part of MooseFS.
231
232MooseFS is free software; you can redistribute it and/or modify it under
233the terms of the GNU General Public License as published by the Free Software
234Foundation, version 2 (only).
235
236MooseFS is distributed in the hope that it will be useful, but WITHOUT ANY
237WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
238FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
239
240You should have received a copy of the GNU General Public License along with
241MooseFS; if not, write to the Free Software Foundation, Inc., 51 Franklin St,
242Fifth Floor, Boston, MA 02111-1301, USA or visit
243http://www.gnu.org/licenses/gpl-2.0.html.
244
README.md
1<img align="right" alt="MooseFS logo" src="https://moosefs.com/Content/Images/moosefs.png" />
2
3# MooseFS – A Petabyte Distributed File System
4MooseFS is a Petabyte Open Source Network Distributed File System. It is easy to deploy and maintain, highly reliable, fault tolerant, highly performing, easily scalable and POSIX compliant.
5
6MooseFS spreads data over a number of commodity servers, which are visible to the user as one resource. For standard file operations MooseFS acts like ordinary Unix-like file system:
7
8* A hierarchical structure – **directory tree**
9* Stores **POSIX file attributes** – permissions, last access and modification times, etc.
10* Supports **ACLs**
11* Supports POSIX and BSD **file locks** – including support for **distributed file locking**
12* Supports **special files** – block and character devices, pipes and sockets
13* Supports **symbolic links** – file names pointing to target files, not necessarily on MooseFS
14* Supports **hard links** – different names of files which refer to the same data on MooseFS
15
16Distinctive MooseFS features:
17
18* **High reliability** – files are stored in several copies on separate servers. The number of copies is a configurable parameter, even per each file
19* **No Single Point of Failure** – all hardware and software components may be redundant
20* **Parallel** data operations – many clients can access many files concurrently
21* Capacity can be **dynamically expanded** by simply adding new servers/disks on the fly
22* Retired hardware **may be removed on the fly**
23* Deleted files are retained for a configurable period of time (a **file system level "trash bin"**)
24* **Coherent, "atomic" snapshots** of files, even while the files are being written/accessed
25* **Access to the file system can be limited** based on IP address and/or password (similarly as in NFS)
26* **Data tiering** – supports different storage policies for different files/directories in Storage Classes mechanism
27* Per-directory, **"project" quotas** – configurable per RAW space, usable space, number of inodes with hard and soft quotas support
28* Apart from file system storage, MooseFS also provides **block storage** (`mfsbdev`)
29* Efficient, **pure C** implementation
30* **Ethernet** support
31
32## Supported platforms
33MooseFS can be installed on any POSIX compliant operating system including various Linux distributions, FreeBSD and macOS:
34
35* Ubuntu
36* Debian
37* RHEL / CentOS
38* OpenSUSE
39* FreeBSD
40* macOS
41* Raspbian – Raspberry Pi 3
42
43MooseFS Linux Client uses [FUSE](https://github.com/libfuse/libfuse). MooseFS macOS Client uses [FUSE for macOS](https://github.com/osxfuse/osxfuse).
44
45There is a separate MooseFS Client for Microsoft Windows available, built on top of [Dokany](https://github.com/dokan-dev/dokany).
46
47## Getting started
48You can install MooseFS using your favourite package manager on one of the following platforms using [officially supported repositories](https://moosefs.com/download):
49
50* Ubuntu 16 / 18 / 20
51* Debian 8 / 9 / 10
52* RHEL / CentOS 7 / 8
53* FreeBSD 11 / 12
54* macOS 10.11+
55* Raspbian 8 / 9 – Raspberry Pi 3
56
57Packages for Ubuntu 14 and CentOS 6 are also available, but no longer supported.
58
59Minimal set of packages, which are needed to run MooseFS:
60
61* `moosefs-master` MooseFS Master Server for metadata servers,
62* `moosefs-chunkserver` MooseFS Chunkserver for data storage servers,
63* `moosefs-client` MooseFS Client – client side package to mount the filesystem.
64
65### Source code
66Feel free to download the source code from our GitHub code repository!
67
68Install the following dependencies before building MooseFS from sources:
69
70* Debian/Ubuntu: `sudo apt install build-essential libpcap-dev zlib1g-dev libfuse3-dev pkg-config`
71(if you don't have FUSE v. 3 in your system, use `sudo apt install build-essential libpcap-dev zlib1g-dev libfuse-dev pkg-config`)
72* CentOS/RHEL: `sudo yum install gcc make libpcap-devel zlib-devel fuse3-devel pkgconfig`
73(if you don't have FUSE v. 3 in your system, use `sudo yum install gcc make libpcap-devel zlib-devel fuse-devel pkgconfig`)
74
75Recommended packages:
76
77* Debian/Ubuntu: `sudo apt install fuse3`
78(if you don't have FUSE v. 3 in your system, use `sudo apt install fuse`)
79* CentOS/RHEL: `sudo yum install fuse3`
80(if you don't have FUSE v. 3 in your system, use `sudo yum install fuse`)
81
82Building MooseFS on Linux can be easily done by running `./linux_build.sh`. Similarly, use `./freebsd_build.sh` in order to build MooseFS on FreeBSD and respectively `./macosx_build.sh` on macOS. Remember that these scripts do not install binaries (i.e. do not run `make install`) at the end. Run this command manually.
83
84### Minimal setup
85Just three steps to have MooseFS up and running:
86
87#### 1. Install at least one Master Server
881. Install `moosefs-master` package
892. Prepare default config (as `root`):
90```
91cd /etc/mfs
92cp mfsmaster.cfg.sample mfsmaster.cfg
93cp mfsexports.cfg.sample mfsexports.cfg
94```
953. Prepare the metadata file (as `root`):
96```
97cd /var/lib/mfs
98cp metadata.mfs.empty metadata.mfs
99chown mfs:mfs metadata.mfs
100rm metadata.mfs.empty
101```
1024. Run Master Server (as `root`): `mfsmaster start`
1035. Make this machine visible under `mfsmaster` name, e.g. by adding a DNS entry (recommended) or by adding it in `/etc/hosts` on **all** servers that run any of MooseFS components.
104
105#### 2. Install at least two Chunkservers
1061. Install `moosefs-chunkserver` package
1072. Prepare default config (as `root`):
108```
109cd /etc/mfs
110cp mfschunkserver.cfg.sample mfschunkserver.cfg
111cp mfshdd.cfg.sample mfshdd.cfg
112```
1133. At the end of `mfshdd.cfg` file make one or more entries containing paths to HDDs / partitions designated for storing chunks, e.g.:
114```
115/mnt/chunks1
116/mnt/chunks2
117/mnt/chunks3
118```
119It is recommended to use XFS as an underlying filesystem for disks designated to store chunks. More than two Chunkservers are **strongly** recommended.
120
1214. Change the ownership and permissions to `mfs:mfs` to above mentioned locations:
122```
123chown mfs:mfs /mnt/chunks1 /mnt/chunks2 /mnt/chunks3
124chmod 770 /mnt/chunks1 /mnt/chunks2 /mnt/chunks3
125```
1265. Start the Chunkserver: `mfschunkserver start`
127
128Repeat steps above for second (third, ...) Chunkserver.
129
130#### 3. Client side: mount MooseFS filesystem
1311. Install `moosefs-client` package
1322. Mount MooseFS (as `root`):
133```
134mkdir /mnt/mfs
135mount -t moosefs mfsmaster: /mnt/mfs
136```
137or: `mfsmount -H mfsmaster /mnt/mfs` if the above method is not supported by your system
138
1393. You can also add an `/etc/fstab` entry to mount MooseFS during the system boot:
140```
141mfsmaster: /mnt/mfs moosefs defaults,mfsdelayedinit 0 0
142```
143
144There are more configuration parameters available but most of them may stay with defaults. We do our best to keep MooseFS easy to deploy and maintain.
145
146MooseFS, for testing purposes, can even be installed on a single machine!
147
148#### Additional tools
149Setting up `moosefs-cli` or `moosefs-cgi` with `moosefs-cgiserv` is also recommended – it gives you a possibility to monitor the cluster online:
150
1511. Install `moosefs-cli moosefs-cgi moosefs-cgiserv` packages (they are typically set up on the Master Server)
1522. Run MooseFS CGI Server (as `root`): `mfscgiserv start`
1533. Open http://mfsmaster:9425 in your web browser
154
155It is also **strongly** recommended to set up at least one Metalogger on a different machine than Master Server (e.g. on one of Chunkservers). Metalogger constantly synchronizes and backups the metadata:
156
1571. Install `moosefs-metalogger` package
1582. Prepare default config (as `root`):
159```
160cd /etc/mfs
161cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
162```
1633. Run Metalogger (as `root`): `mfsmetalogger start`
164
165
166
167Refer to [installation guides](https://moosefs.com/support/#documentation) for more details.
168
169## Some facts
170* Date of the first public release: 2008-05-30
171* The project web site: https://moosefs.com
172* Installation and using MooseFS: https://moosefs.com/support
173* (Old) Sourceforge project site: http://sourceforge.net/projects/moosefs
174
175## Contact us
176* Reporting bugs: [GitHub issue](https://github.com/moosefs/moosefs/issues) or [support@moosefs.pro](mailto:support@moosefs.pro)
177* General: [contact@moosefs.pro](mailto:contact@moosefs.pro)
178
179
180## Copyright
181Copyright (c) 2008-2021 Jakub Kruszona-Zawadzki, Core Technology Sp. z o.o.
182
183This file is part of MooseFS.
184
185MooseFS 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 2 (only).
186
187MooseFS 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.
188
189You should have received a copy of the GNU General Public License along with MooseFS; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA or visit http://www.gnu.org/licenses/gpl-2.0.html.
190