udavfs3/README.md

47 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# udavfs3
Файловая система (FUSE), хранящая данные в базе данных (PostgreSQL).
Приложение работает на python3.
Зависит от модуля `llfuse`.
В одной базе данных может храниться неограниченное количество изолированных дург от друга файловых систем.
База данных и пользователь с полным доступом к ней (если их ещё нет) должны быть созданы на сервере:
```
su - postrges
createuser -S -E -P fs_user
createdb -E UTF-8 -O fs_user fs_db
```
Скрипт необходимо скопировать в папку исполняемых файлов (например, /usr/local/bin) и сделать исполняемым:
```
cp udavfs3 /usr/local/bin/
chmod +x /usr/local/bin/udavfs3
```
Вручную монтируем следующей командой:
`udavfs3 "host=srv_hostname dbname=fs_db user=fs_user password=fs_user_password" /mount/point/path [-o mount_options]`
mount_options (кроме fsname) имеют смысл только для несуществующей в базе ФС. fsname - обязателен, т.к. выбирает
конкретную файловую систему из базы.
Если мы монтируем уже созданную файловую систему, mount_options игнорируются.
Список опций mount_options:
* fsname - уникальная (в рамках конкретного сервера) строка без пробелов. Из данной строки сформируется sha1-хэш, который и будет
уникальным идентификатором ФС для операционной системы.
* blocksize - размер блока ФС в байтах. Обычно используется 4096 (4 КБ).
* fssize - размер файловой системы. Можно использовать окончание еденицы измерения (k,m,g,t). Минимальный размер - 4 МБ.
Обратите внимание, что максимальный размер неограничен, но постарайтесь не выйти за пределы свободного места
папки с базой данных сервера PostgreSQL. Или продумайте возможность последующего увеличения размера свободного
места в этой папке до её полного заполнения.
Если мы хотим, чтобы система монтировала нашу ФС при старте, то добавляем в /etc/fstab следующую строку:
`udavfs3#"host=srv_hostname dbname=fs_db user=fs_user password=fs_user_password" /mount/point/path fuse _netdev 0 0`
Чтобы ФС была доступна всем пользователям надо установить 'user_allow_other' в /etc/fuse.conf
Сервер с базой данных (PostgreSQL) может находиться где угодно.