100 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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).
 |