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
- Coordinating Nodes delegate to children
- Leaf nodes Vote based on individual criteria
- Coordinating nodes weight or decide on children's votes
- 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,429