6. Virtualization

Virtualization in iRODS

Plugin Interfaces

Composable Resources

Virtualization

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

Non-Cached

    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

Made with Slides.com