• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

debian/H14-Jul-2010-359217

mnt/H14-Jul-2010-

src/H03-May-2022-2,5401,911

tests/H14-Jul-2010-445302

COPYINGH A D14-Jul-2010710 1612

ChangeLogH A D14-Jul-20101.8 KiB8866

LICENSEH A D14-Jul-201034.3 KiB675553

MakefileH A D03-May-20224.9 KiB199138

READMEH A D14-Jul-20104.2 KiB171129

README.ru.UTF-8H A D14-Jul-20106.6 KiB156121

mhddfs.1H A D14-Jul-20102.6 KiB9276

mhddfs.specH A D14-Jul-20103.7 KiB11542

README

1
2The driver combines a several mount points into the single one.
3
4Using
5~~~~~
6mhddfs /path/to/dir1,/path/to/dir2[,/path/to/dir3] /path/to/mount
7fusermount -u /path/to/mount
8
9with an "-o option" you can specify some additional options:
10
11-o logfile=/path/to/file.log
12	specify a file that will contain debug information.
13
14-o loglevel=x
15  0 - debug messages
16  1 - info messages
17  2 - standart (default) messages
18
19-o mlimit=size[m|k|g]
20
21        a free space size threshold
22	If a drive has the free space  less  than  the	threshold
23	specifed  then	another  drive	will  be  choosen   while
24	creating a new file.  If all the drives have  free  space
25        less than the threshold specified then a drive containing
26        most free space will be choosen.
27
28Default value is 25%, minimum value is 100M.
29This option accepts suffixes:
30[mM] - megabytes
31[gG] - gigabytes
32[kK] - kilobytes
33[%]  - percent
34
35If mlimit is equal 100% or contain a number which is more than the
36largest of mount directories, mhddfs will try to allocate files
37regularly.
38
39For an information about the additional  options  see  output  of
40'mhddfs -h'.
41
42It's necessary to get installed fuse-utils,  libfuse  for  driver
43working.
44
45Working
46~~~~~~~
47
48Consider we have two hard drives with the content below:
49
50/hdd1             /hdd2
51|                 |
52+-- /dir1         +-- /dir1
53|   |             |   |
54|   +- file2      |   +- file4
55|                 |   +- file2
56+-- file1         |
57|                 +-- file5
58+-- /dir2         |
59    |             +-- /dir3
60    +- file3          |
61                      +- file6
62
63mounting this tree with the command:
64
65mhddfs /hdd1,/hdd2 /hdd_common
66
67into the specified file system point we will see a combined tree.
68
69In the united tree we can see all the directories and files. Note
70file2 of 2nd hdd is not visible (because 1st hdd  has  the  file2
71already).
72
73/hdd_common
74|
75+-- /dir1
76|   |
77|   +-- file2  -> /hdd1/dir1/file2
78|   +-- file4
79|
80|-- /dir2
81|   |
82|   + file3
83|
84+-- /dir3
85|   |
86|   +-- file6
87|
88+-- file1
89+-- file5
90
91
92While writing files they are written to a 1st hdd until  the  hdd
93has the free space (see mlimit option), then they are written  on
94a 2nd hdd, then to 3rd etc.
95
96df will show a total statistics of all filesystems like there  is
97a big one hdd.
98
99If an overflow arises while writing  to  the  hdd1  then  a  file
100content already written will be transferred to a  hdd  containing
101enough of free space for a file.  The transferring  is	processed
102on-the-fly,  fully  transparent  for  the  application	that   is
103writing.   So  this  behaviour	simulates  a  big  file   system.
104
105WARNING: The filesystems are combined must provide a  possibility
106to get their parameters correctly (e.g.   size	of  free  space).
107Otherwise the writing failure can  occur  (but	data  consistency
108will be ok anyway).  For example it is a bad idea  to  combine	a
109several sshfs systems together.
110
111File system's functions
112~~~~~~~~~~~~~~~~~~~~~~~
113
114Most of the functions are supported.
115
116Some are not (and it seems will not be supported):
117- hardlinks (no reason use a hard links in a file system working
118  on a many nodes)
119
120Not implemented yet:
121- extended file attributes (xattr).
122
123Functions are supported:
124- get/set attributes of file system objects;
125- get/set file system information (total size, size of
126  free space is calculated as summary size of file systems);
127- read/remove/create directories;
128- read/remove/create/write files;
129- symbolic links;
130- device files, sockets and fifo;
131- file locks;
132
133Install
134~~~~~~~
135
136It's neccessary for install to have:
1371. FUSE header files
1382. GCC
1393. libc6 header files
140
141Run 'make' in the source directory produces mhddfs binary.
142
143Put the binary into /usr/bin or /usr/local/bin and now you
144can use it.
145
146Please read FUSE documentation for a further conception.
147
148
149GET IT
150~~~~~~
151
152Last version of the mhddfs drivers you can get at
153http://mhddfs.uvw.ru/downloads.
154SVN version is located at: http://svn.uvw.ru/mhddfs/trunk
155To checkout SVN files run:
156
157svn co http://svn.uvw.ru/mhddfs/trunk mhddfs
158
159
160BUGS
161~~~~
162Please use Debian-BTS as the bugtracking system.   Feel  free  to
163submit a bug information to  the  Debian  bugtracker  for  mhddfs
164project. See the additional information here:
165http://www.debian.org/Bugs
166
167COPYRIGHT
168~~~~~~~~~
169Distributed under GPLv3 and higher
170Copyright (C) 2008 Dmitry E. Oboukhov
171

README.ru.UTF-8

1Драйвер для объединения нескольких точек монтирования в одну.
2
3Использование
4~~~~~~~~~~~~~
5
6mhddfs /path/to/dir1,/path/to/dir2[,/path/to/dir3] /path/to/mount
7fusermount -u /path/to/mount
8
9используя опцию -o можно задать некоторые дополнительные опции:
10
11-o logfile=/path/to/file.log
12  - имя файла куда будет сохраняться отладочная информация
13  о процессе работы.
14
15-o loglevel=x
16  - уровень сообщений в log-файл
17  0 - debug messages
18  1 - info messages
19  2 - standart (default) messages
20
21-o mlimit=size[m|k|g]
22  - пороговый размер свободного места.
23  если на диске места меньше чем это значение, то для создания нового
24  файла будет выбран другой диск. Если на всех дисках свободного места
25  меньше чем это значение, то будет выбран диск на котором самое большое
26  количество свободного места.
27  Значение по умолчанию - 4G, минимальное значение - 100M.
28  Данная опция понимает суффиксы
29  [mM] - мегабайты
30  [gG] - гигабайты
31  [kK] - килобайты
32
33информацию о дополнительных опциях смотри в помощи 'mhddfs -h'
34
35для работы необходимо иметь установленные fuse-utils, libfuse
36
37Работа
38~~~~~~
39
40Допустим у нас есть два hdd со следующим содержимым.
41
42/hdd1             /hdd2
43|                 |
44+-- /dir1         +-- /dir1
45|   |             |   |
46|   +- file2      |   +- file4
47|                 |   +- file2
48+-- file1         |
49|                 +-- file5
50+-- /dir2         |
51    |             +-- /dir3
52    +- file3          |
53                      +- file6
54
55
56смонтировав это дерево командой
57
58mhddfs /hdd1,/hdd2 /hdd_common
59
60в определенную точку файловой системы мы будем видеть
61объединенное дерево.
62
63в суммарном дереве мы увидим все каталоги и файлы.
64Обратите внимание что file2 со второго винчестера
65виден не будет (так как уже есть такой файл на
66первом винчестере):
67
68/hdd_common
69|
70+-- /dir1
71|   |
72|   +-- file2  -> /hdd1/dir1/file2
73|   +-- file4
74|
75|-- /dir2
76|   |
77|   + file3
78|
79+-- /dir3
80|   |
81|   +-- file6
82|
83+-- file1
84+-- file5
85
86
87При записи файлов в файловую систему файлы пишутся на первый hdd до
88тех пор пока там есть место (см опцию mlimit), затем они пишутся на
89второй hdd, третий итп.
90
91df покажет суммарную статистику по всем файлсистемам как будто это
92один большой винчестер.
93
94если при записи файла на hdd1 получится переполнение винчестера, то
95уже записанное содержимое будет перенесено на винчестер на котором
96достаточно места для данного файла. Перенос осуществляется прозрачно
97для записывающего приложения, этим достигается иммитация файловой
98системы большого размера.
99
100ЗАМЕЧАНИЕ: объединяемые файловые системы должны обеспечивать корректное
101определение своих параметров (размеров доступного пространства итп). иначе
102функциональность записи будет нарушена (однако это не будет опасно для
103данных). например не стоит объединять воедино несколько sshfs систем.
104
105Функциональность файловой системы
106~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
107
108Поддерживается большинство функций.
109Не поддерживается (и видимо не будет поддерживаться):
110  * жесткие ссылки (hardlinks)
111    в файловой системе работающей на многих узлах жесткие
112    ссылки не имеют смысла.
113Пока не реализованы:
114  * Расширенные атрибуты файлов (xattr).
115
116Поддерживаются функции:
117  * Получение/установка атрибутов об объектах файловой системы;
118  * Получение информации о файловой системе (общий объем, объем
119  свободного места вычисляются как сумма объемов составляющих
120  файловых систем);
121  * Чтение/удаление/создание каталогов;
122  * Чтение/удаление/создание/запись файлов;
123  * Символьные ссылки (symlinks);
124  * Файлы устройств, сокеты и fifo;
125  * Блокировки файлов.
126
127Установка
128~~~~~~~~~
129
130Для сборки необходимо иметь
1311. заголовочные файлы FUSE
1322. компилятор gcc
1333. заголовочные файлы libc6
134
135введите в каталоге с исходными текстами команду make
136и будет собран модуль mhddfs.
137
138Поместите его в /usr/bin или /usr/local/bin и можете пользоваться.
139
140Для более подробного понимания работы читайте документацию на FUSE.
141
142Получение
143~~~~~~~~~
144Последнюю версию драйвера mhddfs Вы можете получить на
145страничке http://mhddfs.uvw.ru. SVN-версия находится по
146адресу: http://svn.uvw.ru/mhddfs/trunk.
147Для получения файлов из svn введите команду:
148
149svn co http://svn.uvw.ru/mhddfs/trunk mhddfs
150
151COPYRIGHT
152~~~~~~~~~
153
154Copyright (C) 2008, Dmitry E. Oboukhov <dimka@avanto.org>
155распространяется под лицензией GPLv3 и выше.
156