LessFS: избавление от дублей, сжатие и шифрование файлов в Linux
Представьте себе высокопроизводительную файловую систему для Linux, позволяющую в режиме реального времени находить повторяющиеся данные и более эффективно организовывать их хранение, высвобождая свободное место на диске. Добавьте сюда сжатие и шифрование на лету и получите Lessfs.
[TOC Шифрование]
Что такое файловая система LessFS
Lessfs поддерживает сжатие LZO, QuickLZ, BZip и работает в пользовательском пространстве FUSE, что означает отсутствие необходимости модифицировать ядро операционной системы. Распространяется lessfs под свободной лицензией GPLv3.
Как сжать и зашифровать файлы на диске
Возможно, lessfs и все необходимые зависимости уже имеются в пакетном репозитории вашего дистрибутива. Мы рассмотрим установку из исходников. Нам потребуется установить следующие программы: mhash, tokyocabinet и fuse.
Берем исходный код mhash на sourceforge.net/projects/mhash/files/ и выполняем команды:
$ tar xvzf mhash-0.9.9.9.tar.gz
$ cd mhash-0.9.9.9/
$ ./configure
$ make
$ sudo make install
Теперь по ссылке fallabs.com/tokyocabinet/tokyocabinet-1.4.47.tar.gz скачиваем NoSQL-базу данных Tokyo Cabinet. Установка по стандартной схеме:
$ ./configure
$ make
$ sudo make install
Единственным нюансом является необходимость указания опции --enable-off64 для команды configure в том случае, если вы используете 32-битную ОС.
Теперь можно перейти к установке и настройке самой файловой системы lessfs. Скачиваем (sourceforge.net/projects/lessfs/files/lessfs/) самую последнюю версию. Выполняем configure, make и sudo make install. Затем скопируем файл настроек в /etc:
$ sudo cp etc/lessfs.cfg /etc/
Создадим директории, необходимые для работы lessfs. Пути можно отредактировать в файле настроек /etc/lessfs.cfg. По-умолчанию, для хранения файлов будет использована директория /data/dta, для метаданных /data/mta:
$ sudo mkdir -p /data/{dta,mta}
Инициализируем базу данных lessfs и запустим файловую систему с точкой монтирования /mnt:
$ sudo mklessfs -c /etc/lessfs.cfg
$ sudo lessfs /etc/lessfs.cfg /mnt
Запущенная ФС использует под хранение все доступное место того диска, где была расположена директория /data:
$ df -t fuse.lessfs
Filesystem 1K-blocks Used Available Use% Mounted on
lessfs 5871080 3031812 2541028 55% /mnt
$ df -t ext4
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 5871080 3031812 2541028 55% /
Области применения LessFS
Lessfs может с успехом применяться для резервного копирования, на FTP- и почтовых серверах, при виртуализации, в устройствах хранения данных (NAS) и т.д.
Комментарии
w-495
2 сентября, 2011 - 00:21
А можно как-то указать, чтобы оно само все поняло?
И есть глупый вопрос:
Чем мне грозит использование диска с системой?
Упадет скорость или все на свете?
pomodor
2 сентября, 2011 - 00:42
Можно и не указывать, но тогда: "On 32-bit systems, you need to append --enable-off64 to the configure command. Failure to use --enable-off64 limits the databases to a 2GB file size". Это уж зависит от того как нравится и что предполагается хранить.
Имеется ввиду что будет, если всю систему (за исключением /boot) поставить на lessfs? Ну, думаю геморроя и других веселых развлечений надолго хватит. :) Если речь о размещении lessfs на одном диске или разделе с ОС, то ничем не грозит. Во-первых, для современных многоядерных процессоров накладные расходы на хэширование, компрессию и шифрование будут почти незаметны. Во-вторых, основное предназначение lessfs — файлопомойки, а для них трафик не очень интенсивный.
w-495
2 сентября, 2011 - 00:59
Спасибо. Я про второе имел ввиду. Как я понимаю, она ставится по верх существующей нормальной ФС. И в блоки диска, методы записи на цилиндры и прочее оно не лезит. Верно?
pomodor
2 сентября, 2011 - 01:13
Совершенно не лазит. Это же FUSE! Эдакая виртуальная ФС в пространстве юзера, а не ядра. Через FUSE можно, например, прикрутить хранение файлов в MySQL и для юзера это будет прозрачно. :)
w-495
2 сентября, 2011 - 00:31
senorpomodor, пожалуйста, ставьте больше тегов у технических постов. Их так можно будет потом быстрее найти.
pomodor
2 сентября, 2011 - 00:44
А есть ли в этом смысл? Удобнее искать через поиск, нежели в тегах ковыряться. Но если теги кем-то востребованы, то буду добавлять, хорошим людям хороших тегов не жалко. :)
w-495
2 сентября, 2011 - 00:56
У меня возникает желание иногда почитать что-то леденящее душу будоражащее сердце, и я блуждаю по тегам. Мне кажется (но не уверен), обилие тегов, может благотворно повлиять на идексацию, и привлечет на сайт больше технарей.
Поиск хорош, когда знаешь что ищешь.) В противном случае, бумажные книги оказываются в выигрыше.
pomodor
2 сентября, 2011 - 01:06
Вот как раз-таки пауков теги пугают. Их вообще советуют закрывать в robots.txt. Дубли все ж как-никак...
Но раз кем-то из пользователей это востребовано, то буду проставлять, без проблем!
w-495
2 сентября, 2011 - 01:52
Как сказали ребята, из организации-имя-которой-не-произносят-вслух, robots.txt лучше вообще удалять.
pomodor
2 сентября, 2011 - 02:00
Ну, содержимое /javascript, /css, /rollover_graphics, /redirects и /scripts все же закрыто от индексации. Или я что-то не понял в примере?
А robots.txt действительно можно не использовать. Можно в метатегах прописать опцию NOINDEX для нужных страниц. Только вот зачем?
w-495
3 сентября, 2011 - 01:35
NOINDEX гугловые роботы не переваривают, как я понимаю
В примере содержимое redirects было проиндексировано.
pomodor
3 сентября, 2011 - 02:22
Очень даже переваривают. Только не в виде тега, а в виде конструкции <meta name="robots" content="noindex"> в head.
Да, redirects не заметил. Странно.
w-495
2 сентября, 2011 - 01:54
Кстати, циклические симлинки, пожалуй, единственный действенный способ избежать индексации.
Про теги, Вам спасибо.
pomodor
2 сентября, 2011 - 02:04
Варварский метод. :) А можно еще через FUSE сделать страницы с бесконечной вложенностью. Пауку должно сорвать крышу. :)
pomodor
2 сентября, 2011 - 02:05
Но с игнорированием robots.txt никогда не сталкивался. Бывало, что юзеры писали кривой robots.txt и потом удивлялись, но со стороны Гугла и Яндекса нарушений никогда не было. Да, паук все равно заберет страницу, но в выдаче она не появится.
w-495
3 сентября, 2011 - 01:39
Гарантий нет, что не появится. Я не говорил, что его проигнорируют. Просто по этим ссылкам перейдут, причем умышленно. Были стычки уже с гуглом. Стандартный ответ их представителя мол, сами дураки --- плохо составили robots.txt. А когда мордой тыкали в RFC --- мол, ну ошиблись мы, ну робот глупый работал не правильно.
Чингачгук
27 августа, 2012 - 10:35
Огромное спасибо! С некотторыми отклонения от вашего алгоритма установил сие чудо на openmediavault. Да здравствует дедупликация!!!
Комментировать