Robinhood Policy Engine: Difference between revisions
KenRawlings (talk | contribs) (Adding mailing lists) |
No edit summary |
||
| Line 1: | Line 1: | ||
=== Introduction === | === Introduction === | ||
The Robinhood Policy Engine is an open-source tool that assists in the management of large file systems. It keeps an updated copy of the file system metadata in a MySQL database which allows the querying of metadata from the database rather than from the file system directly, saving time and resources. | The Robinhood Policy Engine is an open-source tool that assists in the management of large file systems. It keeps an updated copy of the file system metadata in a MySQL database which allows the querying of metadata from the database rather than from the file system directly, saving time and resources. | ||
* [https://github.com/cea-hpc/robinhood/ Robinhood Github] | * [https://github.com/cea-hpc/robinhood/ Robinhood Github] | ||
* [https://github.com/cea-hpc/robinhood/wiki Robinhood Wiki] | * [https://github.com/cea-hpc/robinhood/wiki Robinhood Wiki] | ||
* [https://github.com/cea-hpc/robinhood/wiki/Documentation Online Documentation] | |||
* Mailing Lists | * Mailing Lists | ||
** [https://lists.sourceforge.net/lists/listinfo/robinhood-news robinhood-news]: announcement of new releases. | ** [https://lists.sourceforge.net/lists/listinfo/robinhood-news robinhood-news]: announcement of new releases. | ||
** [https://lists.sourceforge.net/lists/listinfo/robinhood-support robinhood-support]: user discussions and support. | ** [https://lists.sourceforge.net/lists/listinfo/robinhood-support robinhood-support]: user discussions and support. | ||
** [https://lists.sourceforge.net/lists/listinfo/robinhood-devel robinhood-devel]: design and coding discussions. | ** [https://lists.sourceforge.net/lists/listinfo/robinhood-devel robinhood-devel]: design and coding discussions. | ||
=== Overview === | |||
Robinhood Policy Engine is a versatile tool for managing the contents of large file systems. Originally developed at [https://www-hpc.cea.fr/ CEA] for HPC environments, it is designed to perform all its tasks in parallel, making it particularly well-suited for filesystems with millions of entries and petabytes of data. | |||
Robinhood maintains a replica of filesystem metadata in a MySQL/MariaDB database. This database can be queried at will, enabling administrators to get an overall view of filesystem contents without the overhead of directly scanning the filesystem. It provides enhanced ''find'' and ''du'' clones ('''rbh-find''' and '''rbh-du''') that query the database instead of the filesystem, offering significantly faster results. | |||
'''Main features:''' | |||
* '''Policy Engine:''' Schedule actions on filesystem entries according to admin-defined criteria, based on entry attributes (age, size, path, owner, Lustre-specific attributes, etc.). | |||
* '''User/group usage accounting:''' Including file size profiling and top consumers reporting. | |||
* '''Fast ''find'' and ''du'' clones:''' '''rbh-find''' and '''rbh-du''' query the metadata database instead of the filesystem for near-instant results. | |||
* '''Customizable alerts:''' Trigger notifications on filesystem entries meeting specified conditions. | |||
* '''Lustre-aware:''' Aware of Lustre OSTs, pools, and projects; can list/purge files per OST or pool and read MDT changelogs for near-real-time database updates. | |||
* '''Lustre/HSM integration:''' Schedule archive, release, and remove actions through Lustre's Hierarchical Storage Management framework. | |||
* '''Web GUI:''' Provides a graphical overview of filesystem contents and usage. | |||
Robinhood supports any POSIX filesystem, but implements advanced features specifically for [https://www.lustre.org/ Lustre] filesystems. It is distributed under the [http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html CeCILL-C] license (LGPL-compatible). | |||
=== Example: Using Robinhood to Archive Lustre Files with HSM === | |||
A common use case for Robinhood is managing Lustre/HSM (Hierarchical Storage Management) to automatically archive files from Lustre to a backend storage system (e.g., tape or object storage). Below is a short example of how this works. | |||
First, include the built-in Lustre/HSM policy definitions in your Robinhood configuration file: | |||
<nowiki>%include "includes/lhsm.inc"</nowiki> | |||
This defines three policies: '''lhsm_archive''', '''lhsm_release''', and '''lhsm_remove'''. Then define an archive policy to copy files to the backend after they have been stable for one hour: | |||
<nowiki> | |||
lhsm_archive_rules { | |||
# Don't archive empty files or temp files | |||
ignore { size == 0 } | |||
ignore { name == "*.tmp" or name == "*.log" } | |||
rule default { | |||
condition { last_mod > 1h } | |||
} | |||
} | |||
lhsm_archive_trigger { | |||
trigger_on = scheduled; | |||
check_interval = 15min; | |||
} | |||
</nowiki> | |||
To archive all eligible files immediately from the command line: | |||
robinhood --run=lhsm_archive --target=all | |||
To release archived files when an OST reaches 95% capacity (freeing space back to 93%): | |||
<nowiki> | |||
lhsm_release_trigger { | |||
trigger_on = ost_usage; | |||
high_threshold_pct = 95%; | |||
low_threshold_pct = 93%; | |||
check_interval = 5min; | |||
} | |||
</nowiki> | |||
You can then check HSM status across the filesystem using: | |||
rbh-report --status-info lhsm | |||
For a full tutorial, see [https://github.com/cea-hpc/robinhood/wiki/v3_lhsm_tuto Lustre/HSM with Robinhood v3 Tutorial]. | |||
== Papers == | == Papers == | ||
* [ | * [https://arxiv.org/pdf/1505.01448.pdf Taking back control of HPC file systems with Robinhood Policy Engine] — Thomas Leibovici (CEA), International Workshop on the Lustre Ecosystem, 2015. ([http://lustre.ornl.gov/ecosystem-2015/documents/LustreEco2015-Leibovici.pdf Presentation slides]) | ||
* [https://cug.org/proceedings/cug2014_proceedings/includes/files/pap157.pdf Using Robinhood to Purge Data from Lustre File Systems ( | * [https://cug.org/proceedings/cug2014_proceedings/includes/files/pap157.pdf Using Robinhood to Purge Data from Lustre File Systems] — Tina M. Declerck (LBNL), Cray User Group, 2014. | ||
== Presentations == | == Presentations == | ||
=== Robinhood User Group (RUG) Events === | |||
* [https://github.com/cea-hpc/robinhood/wiki/RUG2017#agenda--slide-decks Robinhood User Group 2017] — October 3, 2017, Paris ([http://robinhood.sourceforge.net/rug17/rug17.tgz Download all slides]) | |||
** [http://robinhood.sourceforge.net/rug17/RUG17-ThomasLeibovici-ProjectUpdate.pdf Project Update] (Thomas Leibovici, CEA) | |||
** [http://robinhood.sourceforge.net/rug17/RUG17-Cray-CorySpitz-FastScanning.pdf Fast Lustre file system scanning] (Cory Spitz, Cray) | |||
** [http://robinhood.sourceforge.net/rug17/RUG17-Seagate-RobinhoodOptimizations.pdf Improving Robinhood performance for large scale deployments] (Nathan Rutman, Cray) | |||
** [http://robinhood.sourceforge.net/rug17/RUG17-GSI-SiteStatus.pdf Site status: GSI] (Gabriele Iannetti, GSI) | |||
** [http://robinhood.sourceforge.net/rug17/RUG17-UnivCambridge-SiteStatus.pdf Site status: University of Cambridge] (Matthew Raso-Barnett, University of Cambridge) | |||
* [https://github.com/cea-hpc/robinhood/wiki/RUG2016#agenda--slide-decks Robinhood User Group 2016] — September 19, 2016, Paris ([http://robinhood.sourceforge.net/rug16/rug16.tgz Download all slides]) | |||
** [http://robinhood.sourceforge.net/rug16/RUG16_project_update.pdf Project Update] (Thomas Leibovici, CEA) | |||
** [http://robinhood.sourceforge.net/rug16/RUG16_DKRZ.pdf Experience with Robinhood 2.5.5 on Lustre with DNE] (Carsten Beyer, DKRZ) | |||
** [http://robinhood.sourceforge.net/rug16/RUG16_checker.pdf Robinhood v3 new use case: integrity check] (Dominique Martinet, CEA) | |||
** [http://robinhood.sourceforge.net/rug16/RUG16_Cray_DTacchella.pdf Add HSM to existing Lustre FS] (Davide Tacchella, Cray) | |||
** [http://robinhood.sourceforge.net/rug16/RUG16_rbh3_lhsm.pdf Focus: Lustre/HSM and Robinhood v3] (Henri Doreau, CEA) | |||
** [http://robinhood.sourceforge.net/rug16/RUG16_Stanford_Sherlock.pdf Using Robinhood v3 for Lustre/Cloud storage seamless integration] (Stephane Thiell, Stanford) | |||
** [http://robinhood.sourceforge.net/rug16/RUG16-Dilger_Lustre-HSM.pdf Lustre/HSM proposals] (Andreas Dilger) | |||
* [https://github.com/cea-hpc/robinhood/wiki/RUG2015#agenda Robinhood User Group 2015] — September 21, 2015, Paris | |||
** [http://robinhood.sourceforge.net/rug15/rug_rbh_project.pdf Project status] (Thomas Leibovici, CEA) | |||
** [http://robinhood.sourceforge.net/rug15/Robinhood_and_Lustre-HSM_a_return_of_experience.pdf Robinhood and Lustre-HSM: a return of experience] (Bruno Faccini, Intel) | |||
** [http://robinhood.sourceforge.net/rug15/CSCS_Site_Status.pdf CSCS site status] (Carmelo Ponti, CSCS) | |||
** [http://robinhood.sourceforge.net/rug15/s+c_robinhood_technical_computing.pdf RobinHood in Technical Computing Environments] (Daniel Kobras, Science+Computing) | |||
** [http://robinhood.sourceforge.net/rug15/rug_robinhood_v3.pdf Robinhood v3] (Thomas Leibovici, CEA) | |||
** [http://robinhood.sourceforge.net/rug15/Atos-RUG2015-210915-V3.0_robinhood_benchmarks.pdf Benchmarking Robinhood ingest rate on various architectures] (Bruno Travouillon, Atos) | |||
** [http://robinhood.sourceforge.net/rug15/rbh_roadmap.pdf Short-term and mid-term roadmap for Robinhood] (Henri Doreau, CEA) | |||
=== Conference Presentations === | |||
* [http://cdn.opensfs.org/wp-content/uploads/2017/06/Thur9.5-FaberColin-28LUG2920Seagate20Robinhood20Optimizations2028629.pdf Improving overall Robinhood performance for use on large scale deployments] — Colin Faber (Seagate), LUG 2016 | |||
* Robinhood v3 and Beyond (LAD 2015) | |||
** [https://www.youtube.com/watch?v=W1H4lzUold4 Video] | |||
** [http://www.eofs.eu/_media/events/lad15/18_thomas_leibovici_lad_rbh_v3.pdf Slides] | |||
* Data Life Cycle Monitoring using RobinHood at Scale (LAD 2015) | |||
** [https://www.youtube.com/watch?v=W4-YGQlq9QI Video] | |||
** [http://www.eofs.eu/fileadmin/lad2015/slides/17_Gabriele_Paciucci_LAD15-RBH-04.pdf Slides] | |||
* ROBINHOOD Policy Engine (LUG 2013) | * ROBINHOOD Policy Engine (LUG 2013) | ||
** [https://www.youtube.com/watch?v=b9qyeDyTF64 Video] | ** [https://www.youtube.com/watch?v=b9qyeDyTF64 Video] | ||
** [http://cdn.opensfs.org/wp-content/uploads/2013/04/lug13-robinhood.pdf Slides] | ** [http://cdn.opensfs.org/wp-content/uploads/2013/04/lug13-robinhood.pdf Slides] | ||
* [http://docplayer.net/6659180-Lustre-usage-monitoring-what-the-are-users-doing-with-my-filesystem.html What the &#%@ are users doing with my filesystem?] — Kilian Cavalotti (CEA), LAD 2013 | |||
[[Category:Monitoring]] | [[Category:Monitoring]] | ||
[[Category:Tools]] | [[Category:Tools]] | ||
Revision as of 13:08, 26 May 2026
Introduction
The Robinhood Policy Engine is an open-source tool that assists in the management of large file systems. It keeps an updated copy of the file system metadata in a MySQL database which allows the querying of metadata from the database rather than from the file system directly, saving time and resources.
- Robinhood Github
- Robinhood Wiki
- Online Documentation
- Mailing Lists
- robinhood-news: announcement of new releases.
- robinhood-support: user discussions and support.
- robinhood-devel: design and coding discussions.
Overview
Robinhood Policy Engine is a versatile tool for managing the contents of large file systems. Originally developed at CEA for HPC environments, it is designed to perform all its tasks in parallel, making it particularly well-suited for filesystems with millions of entries and petabytes of data.
Robinhood maintains a replica of filesystem metadata in a MySQL/MariaDB database. This database can be queried at will, enabling administrators to get an overall view of filesystem contents without the overhead of directly scanning the filesystem. It provides enhanced find and du clones (rbh-find and rbh-du) that query the database instead of the filesystem, offering significantly faster results.
Main features:
- Policy Engine: Schedule actions on filesystem entries according to admin-defined criteria, based on entry attributes (age, size, path, owner, Lustre-specific attributes, etc.).
- User/group usage accounting: Including file size profiling and top consumers reporting.
- Fast find and du clones: rbh-find and rbh-du query the metadata database instead of the filesystem for near-instant results.
- Customizable alerts: Trigger notifications on filesystem entries meeting specified conditions.
- Lustre-aware: Aware of Lustre OSTs, pools, and projects; can list/purge files per OST or pool and read MDT changelogs for near-real-time database updates.
- Lustre/HSM integration: Schedule archive, release, and remove actions through Lustre's Hierarchical Storage Management framework.
- Web GUI: Provides a graphical overview of filesystem contents and usage.
Robinhood supports any POSIX filesystem, but implements advanced features specifically for Lustre filesystems. It is distributed under the CeCILL-C license (LGPL-compatible).
Example: Using Robinhood to Archive Lustre Files with HSM
A common use case for Robinhood is managing Lustre/HSM (Hierarchical Storage Management) to automatically archive files from Lustre to a backend storage system (e.g., tape or object storage). Below is a short example of how this works.
First, include the built-in Lustre/HSM policy definitions in your Robinhood configuration file:
%include "includes/lhsm.inc"
This defines three policies: lhsm_archive, lhsm_release, and lhsm_remove. Then define an archive policy to copy files to the backend after they have been stable for one hour:
lhsm_archive_rules {
# Don't archive empty files or temp files
ignore { size == 0 }
ignore { name == "*.tmp" or name == "*.log" }
rule default {
condition { last_mod > 1h }
}
}
lhsm_archive_trigger {
trigger_on = scheduled;
check_interval = 15min;
}
To archive all eligible files immediately from the command line:
robinhood --run=lhsm_archive --target=all
To release archived files when an OST reaches 95% capacity (freeing space back to 93%):
lhsm_release_trigger {
trigger_on = ost_usage;
high_threshold_pct = 95%;
low_threshold_pct = 93%;
check_interval = 5min;
}
You can then check HSM status across the filesystem using:
rbh-report --status-info lhsm
For a full tutorial, see Lustre/HSM with Robinhood v3 Tutorial.
Papers
- Taking back control of HPC file systems with Robinhood Policy Engine — Thomas Leibovici (CEA), International Workshop on the Lustre Ecosystem, 2015. (Presentation slides)
- Using Robinhood to Purge Data from Lustre File Systems — Tina M. Declerck (LBNL), Cray User Group, 2014.
Presentations
Robinhood User Group (RUG) Events
- Robinhood User Group 2017 — October 3, 2017, Paris (Download all slides)
- Project Update (Thomas Leibovici, CEA)
- Fast Lustre file system scanning (Cory Spitz, Cray)
- Improving Robinhood performance for large scale deployments (Nathan Rutman, Cray)
- Site status: GSI (Gabriele Iannetti, GSI)
- Site status: University of Cambridge (Matthew Raso-Barnett, University of Cambridge)
- Robinhood User Group 2016 — September 19, 2016, Paris (Download all slides)
- Project Update (Thomas Leibovici, CEA)
- Experience with Robinhood 2.5.5 on Lustre with DNE (Carsten Beyer, DKRZ)
- Robinhood v3 new use case: integrity check (Dominique Martinet, CEA)
- Add HSM to existing Lustre FS (Davide Tacchella, Cray)
- Focus: Lustre/HSM and Robinhood v3 (Henri Doreau, CEA)
- Using Robinhood v3 for Lustre/Cloud storage seamless integration (Stephane Thiell, Stanford)
- Lustre/HSM proposals (Andreas Dilger)
- Robinhood User Group 2015 — September 21, 2015, Paris
- Project status (Thomas Leibovici, CEA)
- Robinhood and Lustre-HSM: a return of experience (Bruno Faccini, Intel)
- CSCS site status (Carmelo Ponti, CSCS)
- RobinHood in Technical Computing Environments (Daniel Kobras, Science+Computing)
- Robinhood v3 (Thomas Leibovici, CEA)
- Benchmarking Robinhood ingest rate on various architectures (Bruno Travouillon, Atos)
- Short-term and mid-term roadmap for Robinhood (Henri Doreau, CEA)
Conference Presentations
- Improving overall Robinhood performance for use on large scale deployments — Colin Faber (Seagate), LUG 2016
- Robinhood v3 and Beyond (LAD 2015)
- Data Life Cycle Monitoring using RobinHood at Scale (LAD 2015)
- ROBINHOOD Policy Engine (LUG 2013)
- What the &#%@ are users doing with my filesystem? — Kilian Cavalotti (CEA), LAD 2013