summaryrefslogtreecommitdiff
path: root/pgfuse.1
blob: cda57200c2cf33d16037400bba4615299de0d5af (plain)
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
.TH PgFuse "1" "06/11/2015" "PGFUSE" "User Commands"
.SH NAME
PgFuse \- FUSE-based file system with a PostgreSQL storage backend
.SH SYNOPSIS
.SS mounting
\fBpgfuse <PostgreSQL connection string> <mountpoint> \fP [options]
.SS unmounting
\fBfusermount -u <mountpoint>
.SH OPTIONS
.SS "general options"
.TP
\fB-h\fR  \fB\-\-help\fR
print help
.TP
\fB-V\fR  \fB\-\-version\fR
print version
.TP
\fB-v\fR  \fB\-\-verbose\fR
print verbose information into syslog (use with care!)
.TP
\fB\-f\fR
FUSE foreground option - do not run as daemon.
.TP
\fB\-s\fR
FUSE singlethreaded option (disables multi-threaded operation)
.SS "Postgresql connection string"
.TP
PostgreSQL connection string can be any valid connection string as
documented in the documentation of \fBlibpq\fR in function
\fBPQconnectdb\fR.
.TP
All PostgresSQL connection parameters must be given in the form
\fB<option_name>=<option_value>\fR, separated by spaces. So if
you want to specify more than one parameter, you must quote the
whole connection string.
.TP 
Here some of the most important parameters you can set:
.TP
\fBhost\fR
The host running the PostgreSQL database. If ommitted communication
is done via Unix domain sockets. 
.TP
\fBport\fR
TCP-port of the PostgreSQL postmaster, default is 5432
.TP
\fBdbname\fR
The PostgreSQL database to connect to. If not specified the name
of the current Unix user is taken.
.TP
\fBuser\fR
The PostgreSQL user to connect as. If not specified the name
of the current Unix user is taken.
.TP
For more options have a look at the documentation of \fBlibpq\fR
in function \fBPQconnectdb\fR.
.TP
\fBExample\fR: "host=foo.lan dbname=test user=test"
.TP
\fBNote\fR: When adding a permanent mount point to \fB/etc/fstab\fR
you have to escape the spaces with \fB\\040\fR, for example:
.TP
pgfuse#host=localhost\\040dbname=testdb\\040user=testuser /mnt/pgfuse fuse defaults 0 0
.SS "Fuse and PgFuse options"
Options are the normal FUSE options plus the special PgFuse options:
.TP
\fB-o\fR ro (default="")
The default is to mount the filesystem read-writable. This can be
overruled to allow only read operations.
.TP
\fB-o\fR noatime (default=false)
The default is to keep track of access times on reads. This can be
switched off with noatime.
.TP
\fB-o\fR blocksize=<bytes> (default=4096)
Store blocks of size <blocksize>. Do not change this while having
data in your filesystem, otherwise you can't access it anymore!
This is useful for special cases and performance testing.
.SS "FUSE/Mount options"
For a list of possible mount and FUSE options consult the manpage
of \fBmount\fR and the README file of the \fBfuse\fR source package.
.SH DESCRIPTION
PgFuse is a FUSE filesystem which stores inodes and data into a
PostgreSQL database.
.SH INSTALLATION
Before using PgFuse you must create a database user and a database
where to store the files to. Populate the initial schema with:
.TP
\fBpsql < /usr/share/pgfuse-xxxx/schema.sql\fR
.SH BUGS
.TP
- no hard-links
.TP
- no mknod support
.TP
- no access right checks
.TP
- no support for extended attributes and ACLs
.TP
- tested on Linux only currently
.TP
- no self-containment properties in respect to the database
.SH AUTHOR
PgFuse has been written by Andreas Baumann <mail@andreasbaumann.cc>