2017-02-19 13:01:03 +03:00
|
|
|
|
# udavfs3
|
|
|
|
|
Файловая система (FUSE), хранящая данные в базе данных (PostgreSQL)
|
2017-02-19 13:13:33 +03:00
|
|
|
|
|
2017-02-19 14:19:54 +03:00
|
|
|
|
База данных и пользователь с полным доступом к ней (если их ещё нет) должны быть созданы на сервере:
|
|
|
|
|
```
|
|
|
|
|
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 имеют смысл только для вновь созданной базы данных.
|
|
|
|
|
Если мы монтируем уже инициализированную файловую систему, mount_options игнорируются.
|
|
|
|
|
|
|
|
|
|
Список опций mount_options:
|
|
|
|
|
|
|
|
|
|
* fsid - уникальная (в рамках конкретного сервера) строка без пробелов. Из данной строки сформируется 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) может находиться где угодно.
|