1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
|
Драйвер для объединения нескольких точек монтирования в одну.
Использование
~~~~~~~~~~~~~
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 и выше.
|