Драйвер для объединения нескольких точек монтирования в одну.

Использование
~~~~~~~~~~~~~

mhddfs /path/to/dir1,/path/to/dir2[,/path/to/dir3] /path/to/mount
fusermount -u /path/to/mount

используя опцию -o можно задать некоторые дополнительные опции:

-o logfile=/path/to/file.log
  - имя файла куда будет сохраняться отладочная информация
  о процессе работы.

-o loglevel=x
  - уровень сообщений в log-файл
  0 - debug messages
  1 - info messages
  2 - standart (default) messages

-o mlimit=size[m|k|g]
  - пороговый размер свободного места.
  если на диске места меньше чем это значение, то для создания нового
  файла будет выбран другой диск. Если на всех дисках свободного места
  меньше чем это значение, то будет выбран диск на котором самое большое
  количество свободного места.
  Значение по умолчанию - 4G, минимальное значение - 100M.
  Данная опция понимает суффиксы
  [mM] - мегабайты
  [gG] - гигабайты
  [kK] - килобайты

информацию о дополнительных опциях смотри в помощи 'mhddfs -h'

для работы необходимо иметь установленные fuse-utils, libfuse

Работа
~~~~~~

Допустим у нас есть два hdd со следующим содержимым.

/hdd1             /hdd2
|                 |
+-- /dir1         +-- /dir1
|   |             |   |
|   +- file2      |   +- file4
|                 |   +- file2
+-- file1         |
|                 +-- file5
+-- /dir2         |
    |             +-- /dir3
    +- file3          |
                      +- file6


смонтировав это дерево командой

mhddfs /hdd1,/hdd2 /hdd_common

в определенную точку файловой системы мы будем видеть 
объединенное дерево.

в суммарном дереве мы увидим все каталоги и файлы. 
Обратите внимание что file2 со второго винчестера
виден не будет (так как уже есть такой файл на
первом винчестере):

/hdd_common
|
+-- /dir1
|   |
|   +-- file2  -> /hdd1/dir1/file2
|   +-- file4
|
|-- /dir2
|   |
|   + file3
|
+-- /dir3
|   |
|   +-- file6
|
+-- file1
+-- file5


При записи файлов в файловую систему файлы пишутся на первый hdd до
тех пор пока там есть место (см опцию mlimit), затем они пишутся на
второй hdd, третий итп.

df покажет суммарную статистику по всем файлсистемам как будто это
один большой винчестер.

если при записи файла на hdd1 получится переполнение винчестера, то
уже записанное содержимое будет перенесено на винчестер на котором
достаточно места для данного файла. Перенос осуществляется прозрачно
для записывающего приложения, этим достигается иммитация файловой
системы большого размера.

ЗАМЕЧАНИЕ: объединяемые файловые системы должны обеспечивать корректное
определение своих параметров (размеров доступного пространства итп). иначе
функциональность записи будет нарушена (однако это не будет опасно для
данных). например не стоит объединять воедино несколько sshfs систем.

Функциональность файловой системы
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Поддерживается большинство функций. 

Поддерживаются функции:
  * Получение/установка атрибутов об объектах файловой системы;
  * Получение информации о файловой системе (общий объем, объем 
  свободного места вычисляются как сумма объемов составляющих
  файловых систем);
  * Чтение/удаление/создание каталогов;
  * Чтение/удаление/создание/запись файлов;
  * Символьные ссылки (symlinks);
  * Файлы устройств, сокеты и fifo;
  * Блокировки файлов;
  * частичная поддержка жёстких ссылок: работает создание, не работает
    перемещение файлов на другой диск если ссылок больше одной;
  * Расширенные атрибуты файлов (xattr);

Установка
~~~~~~~~~

Для сборки необходимо иметь 
1. заголовочные файлы FUSE
2. компилятор gcc
3. заголовочные файлы libc6

введите в каталоге с исходными текстами команду make
и будет собран модуль mhddfs.

Поместите его в /usr/bin или /usr/local/bin и можете пользоваться.

Для более подробного понимания работы читайте документацию на FUSE.

Получение
~~~~~~~~~
Последнюю версию драйвера mhddfs Вы можете получить на 
страничке http://mhddfs.uvw.ru. SVN-версия находится по 
адресу: http://svn.uvw.ru/mhddfs/trunk.
Для получения файлов из svn введите команду:

svn co http://svn.uvw.ru/mhddfs/trunk mhddfs

COPYRIGHT
~~~~~~~~~

Copyright (C) 2008, Dmitry E. Oboukhov <dimka@avanto.org>
распространяется под лицензией GPLv3 и выше.
