| POHMELFS usage information. | |
| Mount options. | |
| All but index, number of crypto threads and maximum IO size can changed via remount. | |
| 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. | |
| Add server server1.net:1025 into the working set with index $idx | |
| with appropriate hash algorithm and key file and cipher algorithm, mode and key file: | |
| $cfg A add -a server1.net -p 1025 -i $idx -K $hash_key -k $cipher_key | |
| 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 | |
| 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 | |
| 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 | |
| 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). |