Evgeniy Polyakov | b8523c4 | 2009-02-09 17:02:34 +0300 | [diff] [blame] | 1 | POHMELFS usage information. |
| 2 | |
Evgeniy Polyakov | e0ca873 | 2009-03-27 15:04:29 +0300 | [diff] [blame] | 3 | Mount options. |
| 4 | All but index, number of crypto threads and maximum IO size can changed via remount. |
| 5 | |
Evgeniy Polyakov | b8523c4 | 2009-02-09 17:02:34 +0300 | [diff] [blame] | 6 | idx=%u |
| 7 | Each mountpoint is associated with a special index via this option. |
| 8 | Administrator can add or remove servers from the given index, so all mounts, |
| 9 | which were attached to it, are updated. |
| 10 | Default it is 0. |
| 11 | |
| 12 | trans_scan_timeout=%u |
| 13 | This timeout, expressed in milliseconds, specifies time to scan transaction |
| 14 | trees looking for stale requests, which have to be resent, or if number of |
| 15 | retries exceed specified limit, dropped with error. |
| 16 | Default is 5 seconds. |
| 17 | |
| 18 | drop_scan_timeout=%u |
| 19 | Internal timeout, expressed in milliseconds, which specifies how frequently |
| 20 | inodes marked to be dropped are freed. It also specifies how frequently |
| 21 | the system checks that servers have to be added or removed from current working set. |
| 22 | Default is 1 second. |
| 23 | |
| 24 | wait_on_page_timeout=%u |
| 25 | Number of milliseconds to wait for reply from remote server for data reading command. |
| 26 | If this timeout is exceeded, reading returns an error. |
| 27 | Default is 5 seconds. |
| 28 | |
| 29 | trans_retries=%u |
| 30 | This is the number of times that a transaction will be resent to a server that did |
| 31 | not answer for the last @trans_scan_timeout milliseconds. |
| 32 | When the number of resends exceeds this limit, the transaction is completed with error. |
| 33 | Default is 5 resends. |
| 34 | |
| 35 | crypto_thread_num=%u |
| 36 | Number of crypto processing threads. Threads are used both for RX and TX traffic. |
| 37 | Default is 2, or no threads if crypto operations are not supported. |
| 38 | |
| 39 | trans_max_pages=%u |
| 40 | Maximum number of pages in a single transaction. This parameter also controls |
| 41 | the number of pages, allocated for crypto processing (each crypto thread has |
| 42 | pool of pages, the number of which is equal to 'trans_max_pages'. |
| 43 | Default is 100 pages. |
| 44 | |
| 45 | crypto_fail_unsupported |
| 46 | If specified, mount will fail if the server does not support requested crypto operations. |
| 47 | By default mount will disable non-matching crypto operations. |
| 48 | |
| 49 | mcache_timeout=%u |
| 50 | Maximum number of milliseconds to wait for the mcache objects to be processed. |
| 51 | Mcache includes locks (given lock should be granted by server), attributes (they should be |
| 52 | fully received in the given timeframe). |
| 53 | Default is 5 seconds. |
| 54 | |
| 55 | Usage examples. |
| 56 | |
Evgeniy Polyakov | e0ca873 | 2009-03-27 15:04:29 +0300 | [diff] [blame] | 57 | Add server server1.net:1025 into the working set with index $idx |
Evgeniy Polyakov | b8523c4 | 2009-02-09 17:02:34 +0300 | [diff] [blame] | 58 | with appropriate hash algorithm and key file and cipher algorithm, mode and key file: |
Evgeniy Polyakov | e0ca873 | 2009-03-27 15:04:29 +0300 | [diff] [blame] | 59 | $cfg A add -a server1.net -p 1025 -i $idx -K $hash_key -k $cipher_key |
Evgeniy Polyakov | b8523c4 | 2009-02-09 17:02:34 +0300 | [diff] [blame] | 60 | |
| 61 | Mount filesystem with given index $idx to /mnt mountpoint. |
| 62 | Client will connect to all servers specified in the working set via previous command: |
| 63 | mount -t pohmel -o idx=$idx q /mnt |
| 64 | |
Evgeniy Polyakov | e0ca873 | 2009-03-27 15:04:29 +0300 | [diff] [blame] | 65 | Change permissions to read-only (-I 1 option, '-I 2' - write-only, 3 - rw): |
| 66 | $cfg A modify -a server1.net -p 1025 -i $idx -I 1 |
Evgeniy Polyakov | b8523c4 | 2009-02-09 17:02:34 +0300 | [diff] [blame] | 67 | |
Evgeniy Polyakov | e0ca873 | 2009-03-27 15:04:29 +0300 | [diff] [blame] | 68 | Change IO priority to 123 (node with the highest priority gets read requests). |
| 69 | $cfg A modify -a server1.net -p 1025 -i $idx -P 123 |
| 70 | |
| 71 | One can check currect status of all connections in the mountstats file: |
| 72 | # cat /proc/$PID/mountstats |
| 73 | ... |
| 74 | device none mounted on /mnt with fstype pohmel |
| 75 | idx addr(:port) socket_type protocol active priority permissions |
| 76 | 0 server1.net:1026 1 6 1 250 1 |
| 77 | 0 server2.net:1025 1 6 1 123 3 |
Evgeniy Polyakov | b8523c4 | 2009-02-09 17:02:34 +0300 | [diff] [blame] | 78 | |
| 79 | Server installation. |
| 80 | |
| 81 | Creating a server, which listens at port 1025 and 0.0.0.0 address. |
| 82 | Working root directory (note, that server chroots there, so you have to have appropriate permissions) |
| 83 | is set to /mnt, server will negotiate hash/cipher with client, in case client requested it, there |
| 84 | are appropriate key files. |
| 85 | Number of working threads is set to 10. |
| 86 | |
| 87 | # ./fserver -a 0.0.0.0 -p 1025 -r /mnt -w 10 -K hash_key -k cipher_key |
| 88 | |
| 89 | -A 6 - listen on ipv6 address. Default: Disabled. |
| 90 | -r root - path to root directory. Default: /tmp. |
| 91 | -a addr - listen address. Default: 0.0.0.0. |
| 92 | -p port - listen port. Default: 1025. |
| 93 | -w workers - number of workers per connected client. Default: 1. |
| 94 | -K file - hash key size. Default: none. |
| 95 | -k file - cipher key size. Default: none. |
| 96 | -h - this help. |
| 97 | |
| 98 | Number of worker threads specifies how many workers will be created for each client. |
| 99 | Bulk single-client transafers usually are better handled with smaller number (like 1-3). |