Starfish manages the entire life cycle of scientific research data from creation through archiving, analysis, publication, reuse, and disposition. Starfish allows metadata to be associated with files and directories in conventional file systems, object stores, and cloud stores. Metadata are used for advanced reporting, rules-based data administration, and for facilitating collaboration and data reuse. Starfish effectively federates multiple storage devices into a single entity with policies that automate the placement of files on the most appropriate storage device or devices. Starfish supports billions of files and petabytes of capacity.