OpenSDS- An Industry Wide Collaboration For SDS Management

Lawrence Lai – Huawei

Rakesh Jain – IBM 1 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. State of Storage Management - Fragmented

Framework CLOUD ENTERPRISE • How to connect storage to a framework? • How to provision storage for multiple frameworks? IT Integration Plug-in Plug-in Plug-in Plug-in Plug-in Plug-in Plug-in Controller • Which controller to use for the framework? Flocker Cinder Manila OceanStor • Is my storage supported by the controller? RexRay libStorage Ceph Cinder Manila Swift CoprHD 10+ drivers RexRay ViPR Ceph 60+Cinder drivers 10+Manila drivers Swift DJ OceanStorDJothers • Does it allow 3rd-party /IT integration? RexRay libStorage Ceph 60+ drivers 10+ drivers Swift CoprHD 60+ drivers 10+ drivers DJ Storage • Is there a storage driver for the controller? • Will I be able to leverage enterprise storage features? Local Storage SAN NAS AFA Scale-Out Cloud • Can I use commodity hardware?

2 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Storage Pains

Enterprise Customers Want a common solution to manage storage needs for both internal and external customers How about a single SDS controller to connect to all frameworks and storage backends?

Developers Want a consistent method of consuming storage easily How about a standard API that abstracts storage complexity?

Vendors Want to enable their storage everywhere How about standardization of storage controls that works with all frameworks?

3 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Overview

OpenSDS is an open source community working to address storage integration challenges, particularly in scale-out cloud native environments with heterogeneous storage platforms.

Cross-Community Collaboration

4 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Mission and Goals

The OpenSDS project promotes the use of simplified storage interfaces using a scalable storage controller architecture with open standard APIs, with the objective of providing application-oriented storage services.

To develop the open source core Code components and API’s needed for building an SDS solution

Community To grow a community building value for end users and extends to other open-source communities Goals To collaborate among vendors, users, Collaborate and standards bodies to solve real- world storage management problems

To get broad industry acceptance amongst Acceptance users and vendors with the implementation and adoption of OpenSDS

5 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Timeline

Project Proposal Dell-EMC Joins New Members! Sep 2016 Dec 2016 Jun 2017 •Dell-EMC, •Hitachi, Huawei, •CloudNativeCon Huawei, Hitachi, Fujitsu, Western Berlin Intel •Linux Digital, OSU, •IBM Foundation Vodafone •NTT Project Proposal •Yahoo Japan First Contact Project Launched Prototype Demo Mar 2016 Nov 2016 Apr 2017

6 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Key Value Propositions-For End-users

Cloud Transformation Optimized Utilization No Vendor Lock-in

End-users can transform their Virtualization of on-demand storage Common integration and existing storage into a platform for resources, improving storage standardized API’s keep storage cloud native workloads resource utilization ecosystem open

7 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Key Value Propositions – For Developers

• Standard API offers a consistent method of consuming storage • Abstraction of storage complexity enables developers to focus on their application design • Develop once, run everywhere becomes a reality with a common storage control platform • Accelerate application development without worrying about storage infrastructure

8 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Key Value Propositions – For Vendors

• Unified SDS standards and development of open SDS solutions • Efficient industry-wide collaboration and development • Leverage OpenSDS ecosystem to build new solutions and businesses quickly • Win-Win-Win for customers, partners, and company engineering and business • Accelerate cloud transition leveraging the OpenSDS community • Interoperability with OpenSDS solutions with standardization • Reduce development cycle and improve efficiency so vendors can focus on real innovation instead of doing plumbing work

9 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. OpenSDS Project Framework

OpenSDS Plug-ins Dashboard

Cloud Native Computing Foundation - CSI Monitoring Microsoft Azure OpenStack Others GCE AWS Azure HEC Cloud Stack Metering Docker Kubernetes Mesos Foundry EXTENSIONS& TOOLS Performance COMPUTE INTEGRATION CLOUD INTEGRATION Logging OpenSDS Controller Backup OPENSDS API DR Block File Object Services Services Services Migration

SOUTHBOUND DRIVERS AND PROTOCOLS Tiering Native Drivers Cinder Manila libStorage Swordfish Others Forecast

DATA PLANE COMPONENTS Analytics

Local Storage SAN NAS NVMeF Others Others

10 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Technical Introduction

11 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Controller Project - The Universal Storage Controller

A universal storage controller with scalable architecture and open standard APIs

OpenSDS Controller Open Standard API Discovery, Pooling Provisioning, Lifecycle Open API for block, file, and object services OPENSDS API Block File Object Services Services Services Policy-Based Orchestration SOUTHBOUND DRIVERS AND PROTOCOLS Policy-based controls for provisioning, Native Cinder Manila libStorage Swordfish Others lifecycle management and more Drivers

Wide Storage Support Comes with support for wide range of Cinder, and Manila storage drivers Local HDD/SSD AFA SAN NAS Cloud Enterprise Class Enabler OpenSDS API’s and policies enable the use of enterprise-class storage features

12 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Plug-ins Project – Compute Framework Plug-Ins

A group of plug-ins enabling seamless integration with common compute and application frameworks

Common Standard Plug-in Use a single common plug-in for a framework to access OpenSDS storage services CLOUD ENTERPRISE

Seamless Integration Plug-in Plug-in Plug-in Plug-in Plug-in Plug-in Plug-in Plug-in Plug-ins enable each framework to leverage OpenSDS storage services seamlessly OpenSDS Controller Discovery, Pooling Provisioning, Lifecycle Simplify Storage Abstract the underlying storage complexities away from the compute and application frameworks

13 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Design Goals

Cloud Universal Storage Control Orchestrator Single control plane for storage management

Abstract Storage Management Host Discover – Available storage resources and their capabilities Aggregate – Physical resources gathered into pools Virtualize – Applications remain ignorant of storage physicality Anonymize – Vendor neutral Runtime OpenSDS OpenSDS OpenSDS Cloud Native Deployment and Scaling Plugin Host Vendor-specific code confined to a single process Host Rules Support distributed and/or centralized server deployment model Implicitly HA and scalable Pool Pool Rules-based Centralized Controls Simple rules map logical storage requests into physical storage requests

14 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Design Requirements

Cluster-level View of Storage Federate/aggregate multiple disparate storage systems in to a seamless whole Client and Target (Vendor) agnostic

Whole Storage Life-cycle Management Full life-cycle management of storage (creation, access, destruction)

Universal Client Code No vendor code in client

Zero Client Configuration

Common API For all compute and orchestration clients Expose and abstract enterprise storage functionalities

15 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. OpenSDS Design

CLOUD ENTERPRISE Common Interface Universal OpenSDS plug-ins for different frameworks. Open API for integration Plug-in Plug-in Plug-in Plug-in Plug-in Plug-in Plug-in IT Integration

Policy-Based Controls API Pooling of storage resources with policy-based CONTROLLER controls for provisioning, data protection, lifecycle management and more Discovery, Pooling, Lifecycle, Data Protection

OpenStack OpenSDS Other Wide Storage Support drivers native drivers Comes with support for range of Cinder and Manila storage drivers. Extensible for new storage Local Storage SAN NAS NVMf Scale-Out Cloud Enterprise Class OpenSDS API’s and policies support x86 HW and enable the use of enterprise-class storage features

16 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Advance Storage Controls

Applications Advance API’s OpenSDS provides API’s to drive policies for lifecycle, tiering, QoS, data protection etc. OpenSDS Controller

Block File Object

Tiering Caching QoS Lifecycle

Snapshot Mirror Backup Clone Replication

Migration Sharing Groups Dedup Compress Encrypt Quota

High-end storage Converged storage All-Flash storage Distributed storage 17 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Tenant Concept

• Storage Profile: A storage service profile created Storage Profile by the Admin – maps to one or more Virtual Pools - Name {profile name} - Tier0

• Service Catalog: A list of Storage Profiles available Service Catalog for storage provisioning requests Storage Profile - Name {profile name} request storage • Storage Request: A storage provisioning request - Tier0 by a Tenant based on a Storage Profile OpenSDS Storage Profile - Name {profile name} - Tier1 • Admin: Person that manages Storage Pools, create vol creates Storage Profiles create profile

• Tenant: Storage consumer that requests for storage Admin through Storage Profile requests eg. End-user, Pool Pool Pool manage application, K8S pod etc. pool

18 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. OpenSDS Concept Federation Region 1 Region 2 • Region: Each region has its own OpenSDS controller OpenSDS OpenSDS Controller Controller • Zone: Each region can be segmented into zones for fault isolation Zone 101 2 Virtual Pool 1 • Storage resources can be grouped Storage 1 Physical Pool: Physical Physical into physical storage pools eg. RAID group(s). Pool 1 Pool 2 Storage 2 Physical pool may span across nodes eg. Ceph pool Physical Pool 2

• Virtual Pool: Physical pools of similar characteristics Zone 201 Zone 102 Storage 1 can be grouped together into a Virtual Pool across Physical Physical Storage 1 Pool 1 Pool 2 different Zones in a Region (future) Physical Physical Pool 1 Pool 2 Zone 202 Storage 1 • Storage Group: a group of provisioned Zone 103 Physical Physical Pool 1 Pool 2 volumes/shares that allow operations such as Storage 1 Physical Physical snapshots to be performed together. Groups may be Pool 1 Pool 2 mapped to K8S pods, labels or services

19 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. 19 Storage Profile and Request • Profile Name • Regions {list of regions storage can be provisioned from} • Protocols {list of data transfer protocols} • Profile Policies (configured by administrator) • Access Control {list of tenants that can use this profile} • Max Request Size {max volume/share … size} • Security {data encryption options etc.} • Protection {data protection policy for this profile) • Replication {data replication policy for this profile) • Lifecycle (after detach) { retain | delete | erase } • Sharing { none | read write | read only } {list of tenants to share with} • Sharing {read-write, read-only} • Optimization {thin | compression | dedupe} • Custom • Request Options: • Throughput • IOPS

20 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. OpenSDS Architecture Blocks

Cloud Orchestrator (OpenStack, K8S, Mesos, Swarm, etc.)

OpenSDS Plugin

OpenSDS API OpenSDS Controller Orchestration (Lifecycle, Tiering, Data Protection)

Selector Policy Engine Metrics Executor

OpenSDS Hub

OpenSDS Native Other Drivers

21 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. OpenSDS for Cloud Native

Cloud-Native Storage Integration with Kubernetes, Docker, and Mesos • enables dynamic storage provisioning • responds to container events eg. support for container migration to another host

Policy-Based Storage Controls Built-in policies for lifecycle management, data protection, data security, and orchestrated controls for cloud-native apps

Cloud-Native Deployment Connect to all storage backends supported by Cinder and Manila drivers

Built-in Support For OpenStack Storage Connect to all storage backends supported by Cinder and Manila drivers

Storage Discovery and Pooling Support discovery of storage backends and aggregation of storage resources into a seamless whole

22 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. OpenSDS for OpenStack

Policy-Based Storage Controls Built-in policies for lifecycle management, data protection, data security, and orchestrated controls for cloud-native apps

Orchestrate Storage Add orchestration to Cinder/Manila by automating operations such as snapshots, backups and lifecycle management

Leverage Enterprise Storage Features Advanced OpenSDS API’s enables enterprise storage features to be fully utilized by OpenStack

23 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Yahoo! Japan Introduction • Yahoo! JAPAN is one of the largest internet company in Japan • Our 100+ services earn 62billion PV per month

24 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Yahoo! Japan: Infrastructure -1

• 6+ DCs (1DC in the US) • 100,000+ Servers • 50PB+ Storage

25 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Yahoo! Japan: Infrastructure -2

• 50+ OpenStack Clusters 50,000+ instances

• Next-gen Private Cloud Clusters Kubernetes, Cloud Foundry...

26 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Yahoo! Japan: Storage Complexity

Traditional Systems

Cinder Swift NFS HDFS Persistent Storage Manila

27 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Yahoo! Japan: Why We Join OpenSDS • We need open, fair and long-term software project • Reduce complexity • Improve convenience

28 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. OpenSDS Demo • Scenario:Data Analysis • Requirement:Large Capacity  Device Type:IBM XIV  Disk Type:SATA  Data Protection:NA

• Scenario:OLTP • Profile:High Availability & High Performance  Device Type:Huawei Dorado V3  Disk Type:Dual-port NVMe SSD  Data Protection:Active-Active DR cluster

29 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. For more information

Email: [email protected] Web: www.opensds.io Github: https://github.com/opensds

30 2017 Storage Developer Conference. © OpenSDS All Rights Reserved. Thank you!

31 2017 Storage Developer Conference. © OpenSDS All Rights Reserved.