Constructor for horizontally scalable storages.
Active "Work In Progress" - we already validated the concept and are working on a prototype. Goals:
- First OST prototype
- libRawStor extensive logic
- QEMU VM successful start and operation
- FIO backend implemented
(Some terms are borrowed from Lustre; an attentive reader may notice some similarities):
- **T (example - OST) - Target (shard)
- **S (example - OSS) - Server (node) with shards of this role
Components (roles):
- Object storage target (OST)
- directly responsible for storing data (parts of objects)
- per disk/partition
- does not handle redundancy
- Metadata storage target (MDT)
- stores mapping "part of object->OST"
- in the case of block storage, it is largely static, used mainly for initial allocation
- Management server (MGS) (optional)
- entry point with basic information about SDS (lists of MDS/OSS and so on)
- Client library
- a library implementing a basic client for SDS
- higher-level "facades" should be built on top of it, such as the QEMU driver, S3 gateway, and so on
- what distinguishes rawstor from other solutions is that the responsibility for redundancy and data preparation lies expicitly on the client
- if service operations in SDS (such as recovering redundancy when a server/disk fails) are needed, such logic should be based on the client library with one difference being that it can be run in another mode closer to the data
- first and initial example of OST server implementation
- first and initial example of client library implementation
- see
rawstorbranch
- see
rawstorbranch
