| 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). |