2009-02-09 17:02:34 +03:00
|
|
|
POHMELFS usage information.
|
|
|
|
|
2009-03-27 15:04:29 +03:00
|
|
|
Mount options.
|
|
|
|
All but index, number of crypto threads and maximum IO size can changed via remount.
|
|
|
|
|
2009-02-09 17:02:34 +03:00
|
|
|
idx=%u
|
|
|
|
Each mountpoint is associated with a special index via this option.
|
|
|
|
Administrator can add or remove servers from the given index, so all mounts,
|
|
|
|
which were attached to it, are updated.
|
|
|
|
Default it is 0.
|
|
|
|
|
|
|
|
trans_scan_timeout=%u
|
|
|
|
This timeout, expressed in milliseconds, specifies time to scan transaction
|
|
|
|
trees looking for stale requests, which have to be resent, or if number of
|
|
|
|
retries exceed specified limit, dropped with error.
|
|
|
|
Default is 5 seconds.
|
|
|
|
|
|
|
|
drop_scan_timeout=%u
|
|
|
|
Internal timeout, expressed in milliseconds, which specifies how frequently
|
|
|
|
inodes marked to be dropped are freed. It also specifies how frequently
|
|
|
|
the system checks that servers have to be added or removed from current working set.
|
|
|
|
Default is 1 second.
|
|
|
|
|
|
|
|
wait_on_page_timeout=%u
|
|
|
|
Number of milliseconds to wait for reply from remote server for data reading command.
|
|
|
|
If this timeout is exceeded, reading returns an error.
|
|
|
|
Default is 5 seconds.
|
|
|
|
|
|
|
|
trans_retries=%u
|
|
|
|
This is the number of times that a transaction will be resent to a server that did
|
|
|
|
not answer for the last @trans_scan_timeout milliseconds.
|
|
|
|
When the number of resends exceeds this limit, the transaction is completed with error.
|
|
|
|
Default is 5 resends.
|
|
|
|
|
|
|
|
crypto_thread_num=%u
|
|
|
|
Number of crypto processing threads. Threads are used both for RX and TX traffic.
|
|
|
|
Default is 2, or no threads if crypto operations are not supported.
|
|
|
|
|
|
|
|
trans_max_pages=%u
|
|
|
|
Maximum number of pages in a single transaction. This parameter also controls
|
|
|
|
the number of pages, allocated for crypto processing (each crypto thread has
|
|
|
|
pool of pages, the number of which is equal to 'trans_max_pages'.
|
|
|
|
Default is 100 pages.
|
|
|
|
|
|
|
|
crypto_fail_unsupported
|
|
|
|
If specified, mount will fail if the server does not support requested crypto operations.
|
|
|
|
By default mount will disable non-matching crypto operations.
|
|
|
|
|
|
|
|
mcache_timeout=%u
|
|
|
|
Maximum number of milliseconds to wait for the mcache objects to be processed.
|
|
|
|
Mcache includes locks (given lock should be granted by server), attributes (they should be
|
|
|
|
fully received in the given timeframe).
|
|
|
|
Default is 5 seconds.
|
|
|
|
|
|
|
|
Usage examples.
|
|
|
|
|
2009-03-27 15:04:29 +03:00
|
|
|
Add server server1.net:1025 into the working set with index $idx
|
2009-02-09 17:02:34 +03:00
|
|
|
with appropriate hash algorithm and key file and cipher algorithm, mode and key file:
|
2009-03-27 15:04:29 +03:00
|
|
|
$cfg A add -a server1.net -p 1025 -i $idx -K $hash_key -k $cipher_key
|
2009-02-09 17:02:34 +03:00
|
|
|
|
|
|
|
Mount filesystem with given index $idx to /mnt mountpoint.
|
|
|
|
Client will connect to all servers specified in the working set via previous command:
|
|
|
|
mount -t pohmel -o idx=$idx q /mnt
|
|
|
|
|
2009-03-27 15:04:29 +03:00
|
|
|
Change permissions to read-only (-I 1 option, '-I 2' - write-only, 3 - rw):
|
|
|
|
$cfg A modify -a server1.net -p 1025 -i $idx -I 1
|
|
|
|
|
|
|
|
Change IO priority to 123 (node with the highest priority gets read requests).
|
|
|
|
$cfg A modify -a server1.net -p 1025 -i $idx -P 123
|
2009-02-09 17:02:34 +03:00
|
|
|
|
2009-03-27 15:04:29 +03:00
|
|
|
One can check currect status of all connections in the mountstats file:
|
|
|
|
# cat /proc/$PID/mountstats
|
|
|
|
...
|
|
|
|
device none mounted on /mnt with fstype pohmel
|
|
|
|
idx addr(:port) socket_type protocol active priority permissions
|
|
|
|
0 server1.net:1026 1 6 1 250 1
|
|
|
|
0 server2.net:1025 1 6 1 123 3
|
2009-02-09 17:02:34 +03:00
|
|
|
|
|
|
|
Server installation.
|
|
|
|
|
|
|
|
Creating a server, which listens at port 1025 and 0.0.0.0 address.
|
|
|
|
Working root directory (note, that server chroots there, so you have to have appropriate permissions)
|
|
|
|
is set to /mnt, server will negotiate hash/cipher with client, in case client requested it, there
|
|
|
|
are appropriate key files.
|
|
|
|
Number of working threads is set to 10.
|
|
|
|
|
|
|
|
# ./fserver -a 0.0.0.0 -p 1025 -r /mnt -w 10 -K hash_key -k cipher_key
|
|
|
|
|
|
|
|
-A 6 - listen on ipv6 address. Default: Disabled.
|
|
|
|
-r root - path to root directory. Default: /tmp.
|
|
|
|
-a addr - listen address. Default: 0.0.0.0.
|
|
|
|
-p port - listen port. Default: 1025.
|
|
|
|
-w workers - number of workers per connected client. Default: 1.
|
|
|
|
-K file - hash key size. Default: none.
|
|
|
|
-k file - cipher key size. Default: none.
|
|
|
|
-h - this help.
|
|
|
|
|
|
|
|
Number of worker threads specifies how many workers will be created for each client.
|
|
|
|
Bulk single-client transafers usually are better handled with smaller number (like 1-3).
|