Skip to content

ChangeLog

Thomas Leibovici edited this page Sep 30, 2020 · 18 revisions

Table of Contents

Version history

robinhood 3.1.6

Release date: September 29th, 2020

  • Port to RHEL8/CentOS8
  • Port to latest Lustre code base (2.13.52+)
  • Fix build on Lustre 2.12.4 and later
  • Check the filesystem returns consistent statfs values
  • Chglog_reader: reopen changelog in case of unexpected error
  • Chglog_reader: de-duplicate HSM STATE events
  • Policy run time stat now includes initial DB request time
  • Fix the use of archive_id parameter in lhsm

robinhood 3.1.5

Release date: March 21st, 2019

  • Lustre: compatibility with FPL and DoM (no full-featured support yet)
  • Fix and improvement of ratelimit scheduler
  • Stop retrying SQL requests on SIGTERM
  • Faster remove policies (disable sorting)

robinhood 3.1.4

Release date: September 21st, 2018

  • Web gui:
    • new access control criteria: IP address, hostname;
    • tasks: scheduled requests, and possiblity to keep result history;
    • custom graphs.
  • Performance improvements:
    • Improved rules-to-SQL conversion engine. Enable faster policy runs.
    • Auto-tune hash table sizes (changelog reader and entry processor).
    • Pipeline tuning to reduce CPU usage and improve ingestion rate.
    • Default linking to jemalloc memory allocator for better performance. Note: it is advised to start MariaDB with this allocator too, to achieve maximal performance.
    • Fix major performance bug in changelog reader (appeared in v3.1.3).
  • Configuration files: support %include directives in sub-blocks.
  • New parameter to 'common.copy': "mkdir=yes" creates target directories prior to the copy operation.
  • New action 'common.move' (move an entry from one path/name to another).
  • Command copytool 'lhsmtool_cmd': add man page.

robinhood 3.1.3

  • Policies: add matching modes "auto_update_attrs" and "auto_update_all"
  • Faster changelog reader shutdown when the process is terminated by a signal
  • Changelog optimization: drop CREATE/UNLINK and MKDIR/RMDIR changelog pairs
  • rbh-find:
    • add "-links" criterion
    • "-ost" accepts OST sets
    • add "-iname" option for case-insensitive name matching
    • support "-not" for links, size and dates
  • FS scan optimization (use openat() to walk through the filesystem instead of full paths).
  • Fix rules-to-SQL conversion

robinhood 3.1.2

  • Implement command rbh-rebind command to assign an archived entry to a newly created fid (e.g. used for undelete operation).
  • Make lhsm undelete more resilient to error cases
  • lhsm: add tunable to allow custom/smaller UUID
  • REST API:
    • add nagios plugin
    • add graph preview in console plugin
    • add new filters

robinhood 3.1

Release date: September 26th, 2017

Main changes:

  • Ingest rate optimizations: up to x10
  • New plugin type: action schedulers. These plugins make it possible to reorder policy actions, or smooth policy execution. In this release, two of such plugins are provided: `common.max_per_run` and `common.rate_limit`.
  • Policy optimizations:
    • Improved pre-filtering: convert all policy rules to SQL for better pre-filtering.
    • Configurable attribute matching before/after scheduling (pre/post_sched_match parameters).
  • FS scan: make it possible to restrict scan to several directories ('scan_only' configuration parameter).
    • Especially useful with Lustre's static DNE partitioning.
  • Pre/post policy run commands
  • Modeguard status manager
    • Enforce or clear permission bits on entries of the filesystem
  • Fixes for Lustre 2.10
    • Note: this robinhood version does not support Progressive File Layouts yet
  • REST API and web interface enhancements:
    • Plugin mechanism to add custom charts/fields/requests...
    • Finer access control (limit user views only to their stats)
    • All robinhood DB available through the REST API

robinhood 3.0

Release date (alpha1): December 16th, 2015
Release date (alpha2): March 25th, 2016
Release date (rc1): July 7th, 2016
Release date (final): September 16th, 2016

  • Policies at will:
    • Define new custom policies at will, just by writting just a few lines of configuration.
    • Schedule all imaginable actions on filesystem entries.
    • Templates are provided to implement: old entries cleanup, directory cleanup, data corruption checks (by regularly checking file's checksum), Lustre/HSM policies.
  • Fully configurable policies:
    • All policy aspects made configurable (scope, actions, action parameters, sort order...)
    • Fine-grained specification of policy actions and parameters.
  • Plugin-based architecture:
    • Missing a specific feature in Robinhood core? Implement you own plugin to manage new kind of policies, maintain specific info in robinhood DB, enable interactions with specific site ecosystem (job scheduler, system load...), ...
  • Enabling the Robinhood community:
    • Share your custom policy definitions and plugins, so that other community members can benefit from them and enrich them!
  • All Robinhood features in a single instance:
    • No more distinct and incompatible robinhood "flavors" (tmpfs, lhsm, backup...)
    • All policies can be implemented in a single robinhood instance.
  • Get a better overlook of your filesystem contents than ever!
    • New web interface
    • REST interface to query filesystem stats
    • Tag your filesystem entries based on arbitrary criteria using the new fileclass implementation.
    • Flexible reporting with "rbh-find --printf"
  • RedHat 7 integration:
    • systemctl support.
      • Per filesystem service: robinhood@<fsname>
  • New features for Lustre/HSM:
    • Undelete: recover accidentally deleted files.
    • Implement Lustre/HSM with any backend, using the generic command copytool shipped with robinhood: 'lhsmtool_cmd'.
    • UUID support for Lustre/HSM copytools.
  • Convenient:
    • Automatic DB conversion after major upgrades.
  • Even more robust & Improved code quality.

robinhood 2.5.6

Release date: July 7th, 2016

Features:

  • Lustre/HSM: multi-archive support: save archive_id in the DB and direct deferred remove requests to the right archive.
  • Allow storing real POSIX atime with config parameter "general::last_access_only_atime = yes"
  • tokuDB: implement DB compression as "listmanager::tokudb_compression" parameter
Bug fixes:
  • Init script: avoid running multiple robinhood daemons for the same filesystem.
  • Lustre: fixed segfault when a Lustre file has many stripes.
  • Lustre: fix changelog support for Lustre 2.7.
  • Init script: avoid running multiple robinhood daemons for the same filesystem.
  • web_gui: fix issues with mysql 5.7.x.

robinhood 2.5.5

Release date: June 9th, 2015

  • [lustre] Support Lustre versions up to 2.7.
  • [DB performance] Allow both batching and parallelizing DB operations when accounting is OFF. Benchmarks show a x3~x4 speedup of DB ingest rate in this case.
  • [DB performance] Reduce lock contention on table indexes (in particular STRIPE_ITEMS).
  • [acct] Avoid accounting stats inconsistency when this feature is enabled/disabled/re-enabled.
  • [policy performance] Disable ignored class re-matching by default (recheck_ignored_classes = no).
  • [policy performance] Migration: disable sort by mtime by default (lru_sort_attr = none).
  • [policy performance] Purge: allow disabling sort by atime (new 'sort' parameter).
  • [fix] Fix segfault when log rotation occurs under heavy logging.
  • [fix] When processing a RENAME changelog record, match the new path in filesystem instead of building it from DB (which caused 'incomplete path' errors).
  • [fix] Fix sendfile copy operation for backup mode.
  • [fix] Fix various requests about directories: --topdirs with --filter-path option, --toprmdir, ...
  • [fix] Fix possible duplicate insert error when updated entry attributes are only in ANNEX_INFO table (rare).
  • [fix] Some purge parameters may not be taken into account.
  • [packaging] clean permissions in distribution tarball.
  • [report performance] Improve performance of path matching when running directory reports with --filter-path option.

robinhood 2.5.4

Release date: December 9th, 2014

  • [lustre] Lustre 2.4+: detect all stripe changes and update the DB accordingly.
  • [scan] Prevent from dropping entries from DB when opendir or stat fail.
  • [DB] Optimization to batch more DB requests.
  • [DB] Allow using any MySQL engine (new config parameter listmanager::mysql::engine replaces listmanager::mysql::innodb).
  • [rbh-config] Avoid backup_db to lock the whole tables with innodb.
  • [bugfix] Improve robustness to corrupted mtimes.
  • [bugfix] Fix possible crash in db_exec_sql.
  • [bugfix] Fix possible overflow when executing a custom archive command.
  • [backup mode] Clean all non-printable characters in backend path.
  • [pkg] libattr-devel is now mandatory to build robinhood.
RELEASE NOTES:
  • "innodb = enabled/disabled": this parameter will be deprecated. It must be replaced by "engine = innodb".
  • (Lustre only) one of the field types changed in the DB. It will be automatically converted the first time robinhood 2.5.4 starts. The conversion takes about 5s per million entries.
  • Admin guides are now available online (http://robinhood.sf.net > "Online documentation") "odt" and "pdf" versions are no longer maintained.

robinhood 2.5.3

Release date: August 4th, 2014

  • custom purge_command (fix): fixed vulnerability to malicious file names.
  • changelog processing (fix): fixed errors 'Entry has incomplete path in DB' in some case of rm/create patterns.
  • migration policy (fix): don't trigger copy of files that no longer exist.
  • rbh-config (feature): new option 'reset_acct' to rebuild accounting info.
  • changelog reader (feature): new parameter 'dump_file' to dump all incoming changelog records to a file.
  • Port to Lustre 2.6.

robinhood 2.5.2

Release date: May 21st, 2014

  • rbh-du: fixed major performance regression (since v2.5.0).
  • rbh-find: fixed occasional crash.
  • HSM and backup modes: fixed a risk of removing an existing entry from the backend (in some situations of hardlink/rename+unlink).
  • backup mode: optimized sendfile()-based copy (Linux kernel >= 2.6.33).
  • logs: avoid flood of log messages in case of DB connection error.
  • alerts: added host name to alert mail title.
  • rbh-config empty_db/repair_db: also manage/fix stored procedures.
  • cosmetic: fix wrong display of purged blocks for count-based triggers.
  • cosmetic: fix migration counter display.
  • init script: check that 'ulimit -s' is reasonable.
  • fixed build dependancies on Fedora19 and Fedora20.
  • code sanity: fixed many 'coverity' warnings + a couple of minor memleaks.
  • doc: details about RPM installation locations.
  • doc: detail of 'backend' paramaters for backup mode.

robinhood 2.5.1

Release date: March 19, 2014

  • rbh-find (features): new options: -pool, -exec, -print, -nouser, -nogroup, -lsost.
  • rbh-find (optimization): automatically switch to bulk DB request mode when command argument is filesystem root (+new option -nobulk to disable it).
  • purge (enhancement): start purging data from the most used OSTs.
  • entry processing (major fix): fixed deadlock when the pipeline is full and an entry with an unknown parent is encountered.
  • logging (enhancement): new config parameters to control log header format
  • backup mode (feature): allow compressing data in archive.
  • backup mode (fix): wrong path in archive when robinhood root directory != mount point.
  • backup mode (fix): fix segfault when importing a single file with a FID-ending name.

robinhood 2.5.0

Release date: February 13, 2014

Major features and changes in this version:

  • Filesystem disaster recovery features (especially for Lustre)
  • New namespace management (new DB schema to properly handle hardlinks, rename operations...)
  • Scanning and changelog processing optimizations
  • Database optimizations (requests batching)
  • Many other changes, improvements and code cleaning...
Detailed list of changes:

rbh-diff:

  • new command to detect differences between the filesystem and the information in robinhood database.
  • option "--apply=fs" for disaster recovery purpose: restore the filesystem metadata from robinhood DB.
  • makes it possible to rebuild a Lustre MDT from scratch, or from a LVM snapshot
(see robinhood 2.5 Disaster Recovery Guide for more details).

database:

  • new namespace implementation in database with new NAMES table (Cray contribution)
    • fixes/improves hardlink support
    • fixes/improves Lustre ChangeLog hardlink/rename/unlink support
    • saves DB storage space
  • database request batching: significantly increase database ingest rate. No longer needs innodb_flush_log_at_tx_commit != 1 to speed up DB operations.
  • additional information in DB that can help for disaster recovery:
symlink info, access rights, stripe object indexes, stripe order, nlink...
  • set default commit behavior to transaction (prevent from DB inconsistencies)
  • optimized multi-table requests
  • optimization: minimized attribute set in DB update operations
(don't update attributes that didn't change)
  • Fix: deal with mysql case insensitivity for string matching
  • triggers and stored procedures versioning mechanism
  • prevent from overflows for large INSERT requests, wide stripes...
  • prevent from DB deadlocks
scanning:
  • --partial-scan option is deprecated and replaced by an optional argument to --scan (e.g. --scan=/fs/subdir).
  • better management of partial scans:
    • better detection of removed entries vs. entries moved from a directory to another.
    • partial scans can be used for initial DB population (even if the DB is initially empty).
  • dealing with dead/deactivated OSTs: don't remove entries from DB if stat() returns ESHUTDOWN.
  • garbage collection of removed entries in DB is a long operation when terminating a scan (and even more when terminating a partial scan). Added --no-gc option to skip it (recommanded for partial scans).
  • automatically enabling --no-gc if the DB is initially empty (eg. for initial scan).
  • optimization: use *at() functions (openat, fstatat) and readdir by chunk (using getdents) instead of POSIX lstat() and readdir_r().
  • optimization: use NOATIME flag to access entries as much as possible
  • optimizations of get_stripe and get_fid operations.
  • new --diff option for robinhood --scan and --readlog: output detected changes in a diff-like format.
Lustre changelogs:
  • changelog batching (Cray contribution): to speed up changelog processing, robinhood retains changelog records in memory a short time, to aggregate similar/redundant Changelog records on the same entry before updating its database.
  • support multiple changelog readers (for DNE) as multiple threads (default) or as multiple processes, possibly on different hosts, by giving a MDT index to --readlog option.
  • resilience to filesystem umount/mount.
rbh-report:
  • new option --entry-info to get all the stored information about an entry
  • option --dump-ost can now list multiple OSTs and support ranges notation (e.g. 3,5-8,12-23).
  • --dump-ost output indicates if a file has data on a given OST (could be striped on the OST but have no data on it).
rbh-find:
  • new option -crtime to filter entries on creation time.
  • output ordering closer to find output
  • added missing info in 'rbh-find -ls' output (nlink, mode, symlink info...)
robinhood-backup:
  • by default, use a built-in copy function to avoid the cost of forking copy commands.
  • rbh-backup-rebind: tool to rebind an entry in the backend if its fid changed in the filesystem for any reason (file copied to a new one to change its stripe, etc...)
  • rbh-backup-recov new features and options:
    • --list (list information about entries to be recovered)
    • --ost <ost_set></ost_set> to only recover entries for a given set of OSTs (support range notation): the basic use-case is OST disaster recovery.
    • --since <time></time> to only recover entries modified since a given date: the basic use case is after restoring an OST snapshot.
  • symlinks archiving to backend made optional (new parameter 'archive_symlinks') as they can now be restored using robinhood database information.
  • new parameter: sync_archive_data: force sync'ing data to disk to finalize the copy.
configuration:
  • can specify environment variables in config file (e.g. fs_path = $ROOT_DIR ;)
  • prevent from using a wrong config file (Cray contribution):
    • only check files in /etc/robinhood.d/<purpose></purpose>, no longer in the current directory
    • fails if to many config files are available.
documentation:
  • added man pages for robinhood daemon, rbh-report, rbh-find

robinhood 2.4.3

Release date: August 01, 2013

  • [lustre] support of Lustre 2.4
    • DNE not fully supported yet: if running multiple MDS, run 1 instance of changelog reader per MDT.
    • Detect file layout changes (new changelog record CL_LAYOUT).
  • [lustre] added statistics about changelog processing speed.
  • [policies] new parameter 'recheck_ignored_classes' to allow/avoid rematching entries from ignored classes in migration and purge policies.
  • [web] security patch to prevent from SQL injection.
  • [lustre] fix stack overflow when handling files with wide stripes.
  • [DB] better handling of ER_QUERY_INTERRUPTED MySQL error.
  • [DB] fixed DB connection leaks.
  • Backup & HSM modes:
    • [doc] added config tutorial for backup mode
    • [fix] fix segfault in import command when uid/gid can't be resolved.
    • [rbh-report] fix bad display of total volume with -u or -g.
  • Migration policy features and optimizations:
    • [feature] new parameter 'lru_sort_attr' to select LRU sort criteria for policy application. Previously based on last modification time, it can now be one of: creation, last_archive, last_mod, last_access.
    • [feature] special meaning for condition 'last_archive == 0': matches entries that have never been archived.
    • [feature] suspend migration if copy error rate exceed a threshold. This is controled by 'suspend_error_pct' and 'suspend_error_min' parameters.
    • [stats] migration stats while migration is running: added skipped and error counters.
    • [optim] avoid rechecking ignored entries at each pass
    • [optim] smoother feeding of migration workers queue
  • Code & environment:
    • [build] can specify a path to alternative lustre source tree in ./configure
    • [tests] allow specifying an alternative path to lfs command

robinhood 2.4.2

Release date: March 11, 2013

  • [general] immediate exit on ctrl+C: don't process all queued operations, just finish current.
  • [general] LSB compliance if daemon is already started.
  • [DB] validation with MariaDB (replacement for MySQL in Fedora19).
  • [config] can set default config file using RBH_CFG_DEFAULT environment variable.
  • [config] more precise message if no config file is found.
  • [rbh-find] added -not/-! option to rbh-find.
  • [lustre] fix for 16 chars pool names.
  • [bugfix] fixed memleak in rbh-find.
  • [bugfix] fixed segfault if checking scan deadline occured exactly when scan ended.
  • [logs] display bandwidth and rate stats during migration run.
  • [logs] fix: DB get operations were counted twice in stats.
  • [cosmetic] removed "connection failed" warning for one shot commands.
  • [cosmetic] fix typos in logs.
  • [devel] port to automake 1.12 (since Fedora18).

robinhood 2.4.1

Release date: January 29, 2013

  • [lustre] better file size change detection using CLOSE events from MDT ChangeLog (requires Lustre 2.2 or +)
  • [scan] optimization: using fstatat and getdents
  • [rbh-find] added -atime/-amin options
  • [logs] add'l information in logs (DB operations, HSM_rm details)
  • [logs] log to stderr if opening of the log file fails
  • [fix] scan blocked if final DB operation failed
  • [fix] avoid DB lock exhaustion for huge requests
  • [backup] manage cross device rename in backend
  • [backup] rebind an entry in backend after fid change (e.g. restripe)

robinhood 2.4.0

Release date: October 31, 2012

  • [feature] rbh-du and rbh-find: "du" and "find" clones querying robinhood's database
  • [report] new directory stats, top directories per dirent count, per avg file size
  • [report] file size profiling: global, per user, per group, per fileclass...
  • [report] sorting user/groups by size range (eg. percentage of files < 1G)
  • [webUI] "size" section in webUI to display file size profiles
  • [feature] Partial scans to update only a subset of the filesystem (also allows distributed scans)
  • [packaging] rpm name 'robinhood-tmp_fs_mgr' changed to 'robinhood-tmpfs'
  • [packaging] 'rbh-config' command moved to new RPM 'robinhood-adm'
  • [report] refurbished rbh-report output format
  • [policies] new criteria on file creation time
  • [database] use innodb by default for MySQL engine
  • [system] ability to detect "fake mtime" (mtime != actual modification time)
  • [system] improved filesystem detection, using fsname or devid as FS identifier (config driven)
  • [scan] can trigger external completion command when a scan ends
  • [misc.] can use short config name instead of full path (eg. "-f <name></name>" instead of "-f /full/path/to/name.conf")
  • [backup] directory and symlink recovery
  • [lustre] port to Lustre 2.2 and 2.3
  • [lustre] support for new Changelog record struct (lu-1331)
  • [fix] max_rm_count=0 resulted in no rm (instead of unlimited)
  • [fix] segfault in realpath() on Ubuntu
  • [fix] unsigned arythmetic issue with MySQL 5.5

robinhood 2.3.4

Release date: July 05, 2012

  • Faster and safer shutdown on SIGINT/SIGTERM
  • Can use short config name instead of full config file path
    E.g. "-f myconf" instead of "-f /etc/robinhood.d/tmp_fs/myconf.cfg"
  • Consider all non-dirs for classinfo (instead of files only)
  • Implemented max_rm_count in hsm remove policy
  • clearer messages about DB connection and retries
  • added lu543 configure option (must be enabled if this patch is integrated to your Lustre distribution)
  • Better block counting for purges
  • backup/shook modes:
    • import of existing files from backend
    • entry state set to 'archive_running' during migration
    • recovery for entries with 'release pending' or 'restore running' state on startup
      (new parameter: check_purge_status_on_startup)
    • enable DB rebuild if it is lost
    • fix: symlink recovery
    • improvements of rbhext_tool_clnt/svr (timeout, traces, ...)
    • user.shook_state xattr changed to security.shook_state
      (to avoid users to change it)
  • Fix: Don't consider 'released' entries for quota-like purge triggers
  • Fix: migrate-group did migrate user
  • Generate up-to-date template automatically at RPM installation
  • 72 new regression tests (all policies conditions and config file parameters are tested)

robinhood 2.3.3

Release date: February 09, 2012

  • [webgui] added FS name to page title and page header
  • [webgui] fix: added missing file in RPM (.htaccess)
  • [reports] new options for top-users/top-groups: --by-avgsize, --count-min, --reverse
  • [reports] Lustre changelog stats in 'rbh-report -a'
  • [policies] fix: 'tree' condition must match root entry
  • [policies] fix: migration class matching at scan time
  • [config] simpler scan parameter 'scan_interval'
  • [config] fix: don't reload config of disabled modules on SIGHUP
  • [config] fix: on SIGHUP, don't reload parameters specified on cmd line
  • [database] retry on connection failure
  • [stats] dump process stats on SIGUSR1
  • [backup] clean special chars in archive names
  • [backup] fix issues in symlink archiving
  • [lustre] specific compilation option for jira's LU-543
  • [misc] code cleaning, sanity checks, improved traces...

robinhood 2.3.2

Release date: August 23, 2011

  • [webgui] Web interface (beta)
  • [quota/alerts] Implemented quota alerts on inode count (users and groups)
  • [reporting] New option --by-count for --top-users, to sort users by entry count
  • [database] Support of InnoDB MySQL engine
  • [database] MySQL 4 compatibility fix
  • [bugfix](minor) handling DB deadlock error
  • [bugfix](cosmetic) added acct parameters to default and template outputs
  • [alerts](cosmetic) additional info in the title of quota alert e-mails
  • [backup] about backup mode (beta):
    • [bugfix](major) fixed error determining symlink status
    • [bugfix](minor) don't consider 'new' entries in deferred removal
    • [trace] display warning if mtime in FS < mtime in backend

robinhood 2.3.1

Release date: June 07, 2011

  • [bugfix](major) Fixed wrong accounting values if file owner changes
  • [bugfix](major) Fixed SQL error for widely striped files
  • [compat] Compatibility fix for MySQL servers between 5.0.0 and 5.0.32

robinhood 2.3.0

Release date: May 06, 2011

This version mainly consists of huge optimizations for accounting reports. It also provides a new mode to incrementally backup filesystem data (currently, for beta testing only).

Detailed list of changes:

  • [optim.] instant accounting reports (user/group usage, fs content summary, ...)
  • [reporting] split user usage per group (--split-user-groups option)
  • [reporting] split group usage per user (--split-user-groups option)
  • [feature] new policy criteria for Lustre FileSystems: ost_index
  • [reporting] detailed FS scan statistics in "rbh-report -a"
  • [misc.] fast and clean abort on ctrl+c (during scan, migration and purge)
  • [admin.] automatically disables features that are not defined in config file
  • [admin.] "rbh-config backup_db" helper to create a robinhood DB backup
  • [misc.] -V option displays Lustre version and release number
  • [cosmetic] changed 'watermark' parameters to 'threshold'
  • [cosmetic] changed 'notify_lw' and 'alert_hw' parameters to 'alert_low' and 'alert_high'
  • [database] alternative port or socket file can be used for MySQL connection
  • [database] limiting DB access rights for reporting command
  • [bugfix](major) fixed inconsistent pool names
  • [bugfix](minor) kill -HUP terminated the process if no trigger was defined
  • [bugfix](minor) 'unknown' status not correctly filtered in '--dump-status' report
  • [bugfix](cosmetic) added 'reload' in short help of SLES init script
  • [misc.] code cleaning, error message cleaning, removed some obsolete code
  • [feature] new robinhood flavor to track modifications in a Lustre v2 filesystem, and backup data to an external storage (current status: Alpha testing only).
    As part of this mode:
    • soft rm + command to retrieve removed files
    • disaster recovery command
    • "--migrate-file" option to archive a single file
    • pre-maintenance mode to smoothly backup the whole filesystem content before a due date.

robinhood 2.2.3

Release date: January 05, 2011

This update introduces a couple of new features:

  • [feature] periodic purge trigger
  • [feature] options for controlling trigger notifications
  • [doc] pdf documentation updated

robinhood 2.2.2

Release date: December 01, 2010

This version mainly consists in fixing two major bugs that appeared in version 2.2.0.x:

  • lot of "Duplicate key" errors, that occured with certain configurations (e.g. alert on directories, ...)
  • hang of FS scans on Lustre v2.0 filesystems
Additionally, robinhood v2.2.2 test suite has been made compatible with Hudson and Junit, to perform automatic tests nightly, with various configurations (with different filesystems, different Lustre versions, different OS, ...). The goal is to ensure each release perfectly works in all possible cases, and to save a lot of time running tests on various systems.

robinhood 2.2.1

Release date: October 22, 2010

This version includes new minor features, several bug fixes, and a significant optimization of the DB requests for scanning faster.

Features:

  • new purge commands (--purge-class and --migrate-class) to apply policies only on files of a given class
  • support of syslog (in addition to file logging)
  • additionnal summary line in reports, with total nbr entries and volume
  • added '-q' option to hide headers and footers in reports
  • support for Lustre MDT changelogs on Lustre v2.0 final
Optimization:
  • changed primary key management to reduce DB requests
   (require to run "rbh-config empty_db" after upgrading to this version).
   Scan time reduced up to 30%!

Misc:

  • new admin helper 'repair_db' in rbh-config: helps fixing tables after a MySQL server crash
  • Port to FreeBSD
It also includes the 2.2.0 patches:
  • [bugfix] unescaped SQL strings caused error for filenames with single quotes
  • [bugfix] error in init script when RBH_OPT contains several options
  • [admin] added 'reload' action to init.d script
  • [misc.] a gap in OST index list should displays a warning, not an error
  • [pkg] common spec file for both el4, el5 and el6
  • [bugfix] retrieving Lustre pool fails with error "Unsupported Lustre magic number"
  • [bugfix] wrong class matching on OST pools when scanning
  • [bugfix] handling large UNIX groups (>4k) and long lists of alt groups.

robinhood 2.2.0

Release date: August 27, 2010

New features:

Fileclasses:

  • fileclass union/intersection/negation
  • rbh-report displays last matched fileclass
  • new reporting option '--class-info' to generate fileclass summary
  • new reporting option '--filter-class' to dump entries per fileclass
Alerts:
  • alert batching: send a mail summary instead of 1 mail per matching entry
  • alert improvements: named alerts, cosmetic changes
  • notification can be sent when a high watermark is reached (for triggers)
Policies:
  • special wildcard '**' in 'path ' or 'tree' conditions matches any count of directory levels
  • quota-like purge triggers fully implemented (on group or user)
  • triggers on used inode count in filesystem
  • '--check-triggers' option to check triggers without purging files
  • Optimizations:
  • configurable fileclass periodic matching to reduce calls to filesystem
  • configurable attr/path periodic update in DB to reduce calls to filesystem
Misc.:
  • rbh-config helper now supports batch commands
  • Lustre 2.0 ready

robinhood 2.1.5

Release date: July 22, 2010

  • Fixes major bug that could result in incomplete database content after scanning.

robinhood 2.1.4

Release date: June 22, 2010

  • New recursive rmdir policy (for TMP_FS_MGR purpose).
  • Changed default value for max_pending_operations
   (unlimited value could result in excessive memory usage)
  • Removing useless fields and redundant information in database
  • rh-* commands renamed to rbh-*, to avoid conflicts and confusions with RedHat commands.
  • Check conflicting flags in configure

robinhood 2.1.3

Release date: Apr 22, 2010

  • This version now allows you to use SQLite as a database backend. Due to SQLite performance limitations, it should only be used for testing purpose or with small filesystems (<10k entries).
  • Outstanding migrations management has been improved by adding a timeout mechanism, so migration status is checked and updated regularly.
  • rh-config now supports non-empty admin password

robinhood 2.1.2

Release date: Mar 5, 2010

  • New reporting command: dump all files (--dump-all)
  • New configuration helper script: "rh-config"
  • Made RPM relocatable
  • [bugfix] wrong scan duration when using volume-based purge triggers
  • Fixed SLES portability issues
Lustre-HSM specific features:
  • New reporting command: dump files by status (--dump-status)
  • Checking previous migrations status when restarting
  • CL_TIME changelog record support (bz 19505)
  • Multi-archive support (archive_num)
  • New --sync option (immediately archive all modified files)
  • Changed --handle-events action switch to --readlog

robinhood 2.1.1

Release date: Dec 14, 2009

  • Added new report options: --dump-ost, --dump-user, --dump-group
  • Added --filter-path option to reporting tool.
  • TMP FS MGR purpose ported to Lustre 2.0-alpha5 (including changelog support).
  • documentation updates (in doc/admin_guides)
  • Each purpose has its own service and binary names, to make it possible to install and run several robinhood with differents purposes on the same machine.
  • Added '--disable-lustre' compilation switch for disabling Lustre specific features
  • Added '--disable-fid-support' compilation switch, to force addressing entries by path, not by their Lustre fid.
  • Integration of new purpose "SHERPA" (software suite for cache management)
  • Generated RPM name includes lustre version it was built for.
  • Report command displays help if is started without option.

robinhood 2.1 beta2

Release date: Nov 16, 2009

  • Extended attributes support in policy definition
  • 32 bits plateforms compatibility fixes
  • Fixed bug when using mysql4
  • Fixed minor compilation warnings
  • commands now search for config file in /etc/robinhood.d if no config file is given on command line
Lustre-HSM specific:
  • Added parameter to force changelog polling

robinhood 2.1 beta1

Release date: Oct 15, 2009

  • Added '--dry-run' option instead of "simulation_mode" parameter in config file
  • Added '--once' option, to perform an single pass of a given policy or action and exit (same as '--one-shot' option).
  • Compatibility fixes for MySQL 4 and 5
  • Fixed dependencies on lustre include files.
  • Compatibility fixes for 32 bits platforms
Lustre-HSM features:
  • Porting to the new changelog interface (handling changelog records as structures instead of text, and using CHANGELOG_FLAG_FOLLOW and CHANGELOG_FLAG_BLOCK options)
  • Adapting to changes in changelog timestamp (secs+nano instead of jiffies)
  • Use fid as primary key in database schema (for better performance)
  • Added calls to llapi_hsm_request() to trigger migration, release, removal in HSM.
  • Customizable migration hints to be passed to the copytool
  • Command line options to trigger manual migrations (by user, by OST...)
  • Deferred removal in HSM
  • Taking HSM file status into account (dirty, released, ...)
  • HSM event support
  • Changelog flag support (for UNLINK and HSM event)
  • Added '--ignore-policies' option to perform migration/purge to all eligible files without checking policy conditions.

robinhood 2.0.1

Release date: July 20, 2009

  • New policy definition semantics, using filesets
  • Multiple fileset/policy associations
  • Several changes in configuration syntax, to avoid confusions
  • Support of OST pool names (on Lustre) for fileset definition and policies
  • Optimizations of policy application
  • Preparing features for Lustre-HSM

robinhood 2.0 beta 2

Release date: March 23, 2009

  • Clean shutdown on SIGTERM or SIGINT
  • Reloading dynamic parameters on SIGHUP (including numerical values in policy definition)
  • Better resilience to MySQL server restart
  • Display warning for unknown parameters in config file
  • Cosmetic fixes in config parsing

robinhood 2.0 beta 1

Release date: March 2, 2009

  • tmp filesystem management only (no HSM support yet)

robinhood 1.0.6

Release date: February 23, 2009

  • First public (Open Source) version
  • Stable production release