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