6. Virtualization

Virtualization in iRODS

Plugin Interfaces

Composable Resources


One of the "Pillars" of iRODS


An abstraction layer that allows for reach into various services with no change to the client


Functionality provided via plugin interfaces

  • Authentication
  • Database
  • Network
  • API
  • Microservice
  • Resource

Composable Resources

Uses a well known Tree Metaphor - Branches and Leaves

Two types of nodes:

  •     Coordinating (branch) - pure decision making
  •     Storage (leaf) - instance managing the hardware

By convention Coordinating nodes do not

have storage (this is not enforced)

Coordinating Resources

Compound - provide POSIX interface to alternative storage

Load Balanced - use gathered load values to determine choices

Passthru - weight then delegate operations to  a child resource

Random - randomly choose a child for a write operation

Replication - ensure all data objects are consistent across children

Round Robin - delegate writes to each child in series

Storage Resources


    Unix File System - generic file system storage

    Ceph-RADOS - Ceph object storage

    HPSS - access to IBM High Performance Storage System


Cached (Archive)

    S3 - archive resource for Amazon S3

    WOS - DDN Web Object Scalar

    Universal MSS - script based access to generic archive storage

Voting within a Hierarchy

Given an operation: Open, Write or Create

  1. Coordinating Nodes delegate to children
  2. Leaf nodes Vote based on individual criteria
  3. Coordinating nodes weight or decide on children's votes
  4. Resource hierarchy is determined at each node, depth first


Example: Unix File System

  • 1.0 for local server connection
  • 0.5 for up-to-date replica
  • 0.25 for dirty replica
  • 0.0 for no existing replica

Building a Resource Hierarchy

Command Line Example

UGM2015-Training - Virtualization

By jason coposky

UGM2015-Training - Virtualization

Presentation associated with the iRODS User's Group Training

  • 1,121
Loading comments...

More from jason coposky