L-Store Commands

L-Store Depot:

create_resource.dev  <RID> </dev>

This command takes a block device, and formats it into a L-Store storage resource.
<RID> should be a globally unique identifier (consecutive integers, UUID, etc.)
</dev> is the physical block device to format (/dev/sdc, etc.)

mount_resource </dev>

This command mounts a single resource to the OS.
</dev> is the physical block device to mount

mount_all_resources

This mounts *all* resources visible on the machine.

umount_resource <RID>

Unmount the given RID from the OS.

umount_all_resources

Unmount all resources from the OS.

merge_config

Each RID has its own configuration file for tweaking various parameters.  “merge_config” will use that to create the master config file for the ibp_server daemon.  This command must be run prior to starting up ibp_server.

ibp_server [-r] -d /path/to/ibp.conf

This command starts up the ibp_server daemon with the resources listed in the ibp.conf file
The “-d” option, followed by a path (usually /depot/ibp.conf) tells the ibp_server which config file to load.
The “-r” option will force the server to rebuild.  This is normally only used when the server has crashed or otherwise not shut down cleanly.

ikill

This command shuts down the running ibp_server daemon.

ibp_attach_rid [-r] host port RID [timeout]

This command will attach a single RID to a running ibp_server.  This is normally used when adding or replacing RIDS on an operation system.
The “-r” option will rebuild the RID if it was not shut down cleanly.
“host” is the hostname of the depot running the ibp_server
“port” is the TCP port the ibp_server is running on (usually 6714)
“RID” is the Resource ID for the RID you want to attach.

ibp_detach_rid host port RID delay_before_umount [timeout]

This command will detach a single RID from a running ibp_server.  This is normally used for maintenance purposes.
“host” is the hostname of the depot running the ibp_server
“port” is the TCP port the ibp_server is running on (usually 6714)
“RID” is the Resource ID for the RID you want to attach.

L-Store Client:

Note:  Most lio_* commands share the following common options:

LIO_COMMON_OPTIONS

-d level – Set the debug level (0-20). Defaults to 0
-no-auto-lfs – Disable auto-conversion of LFS mount paths to lio
-c config – Configuration file
-lc user@config – Use the user and config section specified for making the default LIO
-np N – Number of simultaneous operations. Default is 100.
-i N – Print information messages of level N or greater. No header is printed
-it N – Print information messages of level N or greater. Thread ID header is used
-if N – Print information messages of level N or greater. Full header is used

LIO_PATH_OPTIONS:

[-rp regex_path | -gp glob_path] [-ro regex_objext | -go glob_object] [path_1 … path_N]
-rp regex_path – Regex of path to scan
-gp glob_path – Glob of path to scan
-ro regex_obj – Regex for final object selection.
-go glob_obj – Glob for final object selection.
path1 .. pathN – Glob of paths to target

Instructions for lio_* commands will omit these shared options for the sake of brevity.

NOTE: It’s imperative that the user@host:/path…, @:/path…, etc be used since this signifies where the files come from.  If no ‘@:’ is used the path is assumed to reside on the local disk.

lio_cp

Usage:  lio_cp LIO_COMMON_OPTIONS [-rd recurse_depth] [-ln] [-b bufsize_mb] src_path1 .. src_pathN dest_path

-ln – Follow links. Otherwise they are ignored
-rd recurse_depth – Max recursion depth on directories. Defaults to 10000
-b bufsize_mb – Buffer size to use in MBytes for *each* transfer (Default=20MB)
src_path* – Source path glob to copy
dest_path – Destination file or directory

lio_du

Usage:  lio_du LIO_COMMON_OPTIONS [-rd recurse_depth] [-ns] [-h|-hi] [-s] [-ln] LIO_PATH_OPTIONS

-rd recurse_depth – Max recursion depth on directories. Defaults to 10000
-ns – Don’t sort the output
-h – Print using base 1000
-hi – Print using base 1024
-s – Print directory summaries only
-ln – Follow links. Otherwise they are ignored

lio_find

Usage:  lio_find LIO_COMMON_OPTIONS [-rd recurse_depth] [-t object_types] [-nopre] LIO_PATH_OPTIONS

-rd recurse_depth – Max recursion depth on directories. Defaults to 10000
-t object_types – Types of objects to list bitwise OR of 1=Files, 2=Directories, 4=symlink, 8=hardlink. Default is 1.
-nopre – Don’t print the scan common prefix

lio_fsck

Usage:  lio_fsck LIO_COMMON_OPTIONS [-o parent|manual|delete|user valid_user] [-ex parent|manual|delete] [-s manual|repair] path_1 .. path_N

-o – How to handle missing system.owner issues. Default is manual.
parent – Make the object owner the same as the parent directory.
manual – Do nothing. Leave the owner as missing.
delete – Remove the object
user valid_user – Make the provided user the object owner.
-ex – How to handle missing exnode issues. Default is manual.
parent – Create an empty exnode using the parent exnode.
manual – Do nothing. Leave the exnode as missing or blank.
delete – Remove the object
-s – How to handle missing exnode size. Default is repair.
manual – Do nothing. Leave the size missing.
repair – If the exnode existst load it and determine the size.
path – Path prefix to use

lio_fuse

Usage: lio_fuse mount_point [FUSE_OPTIONS] [–lio LIO_COMMON_OPTIONS]

FUSE_OPTIONS:
-h –help print this help
-ho print FUSE mount options help
-V –version print FUSE version
-d -o debug enable debug output (implies -f)
-s disable multi-threaded operation
-f foreground operation
(REQUIRED unless ‘-c /absolute/path/lio.cfg’ is specified and all included files are absolute paths) -o OPT[,OPT…] mount options
(for possible values of OPT see ‘man mount.fuse’ or see ‘lio_fuse -ho’)

lio_get

Usage: lio_get LIO_COMMON_OPTIONS [-b bufsize] src_file1 .. src_file_N

-b bufsize – Buffer size to use in MBytes (Default=20MB)
src_file – Source file

lio_getattr

TL;DW

lio_inspect

Usage: lio_inspect LIO_COMMON_OPTIONS [-rd recurse_depth] [-b bufsize_mb] [-f] [-s] [-r] [-q extra_query] [-bl key value] [-p] -o inspect_opt LIO_PATH_OPTIONS

-rd recurse_depth – Max recursion depth on directories. Defaults to 10000
-b bufsize_mb – Buffer size to use in MBytes for *each* inspect (Default=20MB)
-s – Report soft errors, like a missing RID in the config file but the allocation is good. The default is to ignore these type of errors.
-r – Use reconstruction for all repairs. Even for data placement issues. Not always successful. Try without option in those cases. Even for data placement issues. Could fail
-q extra_query – Extra RS query for data placement. AND-ed with default query
-bl key value – Blacklist the given key/value combination. Multiple -bl options can be provided. For a RID use: rid_key rid Hostname: host hostname
-f – Forces data replacement even if it would result in data loss
-p – Print the resulting query string
-o inspect_opt – Inspection option. One of the following: inspect_quick_check, inspect_scan_check, inspect_full_check, inspect_quick_repair, inspect_scan_repair, inspect_full_repair, inspect_soft_errors, inspect_hard_errors, inspect_migrate

lio_ln

Usage: lio_ln LIO_COMMON_OPTIONS [-s] [-f] source_file linked_dest_file

-s – Make symbolic links instead of hard links
-f – Force the link creation even if source doesn’t exist. Only used for symlinks

lio_ls

Usage: lio_ls LIO_COMMON_OPTIONS [-rd recurse_depth] [-ns] LIO_PATH_OPTIONS

-rd recurse_depth – Max recursion depth on directories. Defaults to 0
-t object_types – Types of objects to list bitwise OR of 1=Files, 2=Directories, 4=symlink, 8=hardlink. Default is 63.
-ns – Don’t sort the output
-rp regex_path – Regex of path to scan
-gp glob_path – Glob of path to scan
-ro regex_object – Regex for final object selection.
-go glob_object – Glob for final object selection.

lio_mkdir

Usage:  lio_mkdir LIO_COMMON_OPTIONS [-ex exnode.ex3] dir1 dir22 …

-ex exnode.ex3 – Optional exnode to use. Defaults to parent dir.
dir* – New directories to create

lio_mv

Usage:  lio_mv LIO_COMMON_OPTIONS [-ln] src_path1 .. src_pathN dest_path

-ln – Follow links. Otherwise they are ignored
src_path* – Source path glob to move
dest_path – Destination directory of file

lio_put

Usage: lio_put LIO_COMMON_OPTIONS [-b bufsize] dest_file

-b bufsize – Buffer size to use in MBytes (Default=20MB)
dest_file – Destination file

lio_rm

Usage:  lio_rm LIO_COMMON_OPTIONS [-rd recurse_depth] [-t object_types] LIO_PATH_OPTIONS

-rd recurse_depth – Max recursion depth on directories. Defaults to 0.
-t object_types – Types of objects to list bitwise OR of 1=Files, 2=Directories, 4=symlink, 8=hardlink. Default is 63.

lio_rmdir

Usage:  lio_rmdir LIO_COMMON_OPTIONS LIO_PATH_OPTIONS

lio_setattr

Usage: lio_setattr LIO_COMMON_OPTIONS [-rd recurse_depth] [-t object_types] -as key=value | -ar key | -af key=vfilename | -al key=obj_path/dkey LIO_PATH_OPTIONS

-rd recurse_depth – Max recursion depth on directories. Defaults to 10000
-t object_types – Types of objects to list bitwise OR of 1=Files, 2=Directories, 4=symlink, 8=hardlink. Default is 1.
-delim c – Key/value delimeter characters. Defauls is =.
-as key=value – Breaks up the literal string into the key/value pair and stores it.
-ar key – Remove the key.
-af key=vfilename – Similar to -as but the valure is loaded from the given vfilename.
-al key=sobj_path/skey – Symlink the key to another objects (sobj_path) key(skey).

NOTE: Multiple -as/-ar/-af/-al clauses are allowed

lio_signature

Usage: lio_signature LIO_COMMON_OPTIONS file

file – File to examine

lio_touch

Usage: lio_touch LIO_COMMON_OPTIONS [-ex exnode.ex3] file1 file2 …

-ex exnode.ex3 – Optional exnode to use. Defaults to parent dir.
file* – New files to create

lio_warm

Usage: lio_warm LIO_COMMON_OPTIONS [-rd recurse_depth] [-dt time] LIO_PATH_OPTIONS

-rd recurse_depth – Max recursion depth on directories. Defaults to 10000
-dt time – Duration time in sec. Default is 86400 sec