What is ViPR?
Table of Contents
This article applies to EMC ViPR 2.0.
ViPR enables data center administrators to manage heterogeneous storage environments, including EMC, non-EMC, and commodity storage. ViPR not only virtualizes storage, but it also decouples the control path from the data path. The ViPR Controller manages the control path.
ViPR's ability to abstract the control path allows storage management to operate at the virtual layer. This enables you to combine several physical storage pools into a ViPR virtual pool, or add several physical storage arrays into a virtual array.
The ViPR Controller does not sit in the data path for file and block stores. This ensures applications can access storage and all its underlying value and data services embedded in the storage arrays without performance degradation.
After the ViPR Controller is deployed by a data center administrator, ViPR Services can be deployed and layered over both traditional and new storage at cloud scale. The data path is managed by three ViPR Services: Object, HDFS, and Block Services. The ViPR Services enable administrators and developers to shift away from array-specific services to better manage mixed workloads and Big Data applications in heterogeneous environments. ViPR enables you to surface mixed data access methods (NFS access and access via Amazon S3, OpenStack Swift, and EMC Atmos APIs) for the same data so that your applications can access this data as files or objects.
ViPR enables software-defined data centers by providing the following features:
- Storage automation capabilities for multi-vendor block and file storage environments (control plane, or ViPR Controller)
- Object data management and analytic capabilities through the ViPR Object and HDFS Services that create a unified pool (bucket) of data across file shares and commodity servers (data path)
- Scalable, dynamic, commodity-based block storage through the ViPR Block Service (data path). The Block Service powered by EMC ScaleIO exposes the disks of up to thousands of hosts (any kind) as block storage that ViPR users can use for provisioning.
- Management of multiple data centers in different locations with single sign-on data access from any data center
- Data replication between geographically-dispersed data centers to protect against data center failures with active-active functionality
- Integration with VMware and Microsoft compute stacks to enable higher levels of compute and network orchestration
- Comprehensive and customizable platform reporting capabilities that include capacity metering, chargeback, and performance monitoring through the included ViPR SolutionPack
- A comprehensive REST Application Programming Interface (API) that allows developers to write applications without regard to the underlying hardware and software. The REST API for the Object Service supports the Amazon Simple Storage Service (S3), OpenStack Swift, and EMC Atmos storage APIs.
- A web-based User Interface (UI) that provides the ability to configure and monitor ViPR, as well as perform self-service storage provisioning tasks through an intuitive Service Catalog.
- A Command Line Interface (CLI) that provides an interface for developers and data center administrators to manage storage resources.
Deployment of the Controller vApp enables you to set up one storage control point for one or more physical data centers. One ViPR Controller controls all the storage resources within the virtual data center.
The Controller takes over the storage control plane to simplify and automate the management of block and file storage. It allows users to operate at the level of ViPR virtual abstractions. ViPR System Administrators define the policies for storage consumption in the ViPR software and provide services to their end users.
ViPR aggregates and pools physical storage systems and pools into virtual arrays and virtual pools in a manner similar to VMware vCenter. Policy and management functions are applied in the aggregate, simplifying the process.
The ViPR Controller enables you to:
- discover physical block and file storage, SAN, and hosts so that ViPR can control the provisioning and connectivity of these physical assets.
- define policies through the ViPR abstractions of virtual pools and virtual arrays so that ViPR can abstract and pool storage resources based on storage attributes.
- automate storage tasks and deliver storage through a self-service catalog in the ViPR UI to enable self-service storage provisioning.
- centralize management and file/block provisioning operations across physical and virtual environments.
- access and replicate data across multiple ViPR virtual data centers in different locations with minimal storage overhead costs to read/write performance in each data center location.
When a System Administrator adds storage systems to ViPR, ViPR discovers the arrays' physical ports and storage pools and brings them under ViPR management. ViPR uses the physical pools and ports on the storage systems to make the storage devices visible to the hosts.
ViPR natively discovers and manages the block and file storage systems listed in the following table.
Array support through OpenStack via the ViPR Third-Party Block Storage Provider enables ViPR to discover any third-party block array that an OpenStack block storage (Cinder) driver supports. To view a list of block storage systems that OpenStack Cinder drivers support, click here.
ViPR Services support the storage, manipulation, and analysis of object data on a massive scale in both array and Commodity environments. Block storage on Commodity hosts is also supported. Services are critical enablers for Cloud and Big Data applications.
ViPR currently supports the following Services:
- Object Service
- Enables you to store, access, and manipulate unstructured data as objects on file-based storage systems, such as EMC VNX, Isilon, and NetApp, without having to rewrite existing file-based applications. Applications can access a set of objects as files, directly on the underlying file storage system, with native file system performance. This provides in-place access to the object data for file-based applications. The Object Service is compatible with EMC Atmos, Amazon S3, and OpenStack Swift APIs. The Object Service is a software layer that works transparently with different hardware platforms.
- HDFS Service
- Provides Hadoop Distributed File System (HDFS) support, which enables existing file-based storage to be leveraged to build robust, scalable data processing environments based on the Hadoop framework. The HDFS Service enables organizations to analyze existing data on file arrays without moving it to a separate repository. With the HDFS Service, you can use the ViPR virtualized storage environment as a Big Data repository against which you can run Hadoop analytic applications.
- Block Service
- Creates a server-based SAN from local application server storage to deliver elastic and scalable block storage. The Block Service, powered by ScaleIO, is an alternative to traditional SAN infrastructure. It combines hard disk drives (HDDS), solid-state drives (SSDs), and Peripheral Component Interconnect Express (PCIe) flash cards to create a virtual pool of block storage with different performance tiers. The Block Service scales to thousands of Commodity nodes and automatically redistributes block storage to optimize performance and capacity usage.
ViPR Services enable you to perform the following tasks:
- Ingest data from existing file systems, store the data as objects, and enable the ViPR Object and HDFS Services to use the object data. The object data can be accessed as files using file access mode or the HDFS Service. In both cases, the directory structure of the ingested data is preserved.
- Use the Object and HDFS Services to access and manipulate the same data. Object containers created using the object APIs can be made available as HDFS storage. This means that data brought into ViPR as objects, or created in ViPR as objects, can be used as the target for Hadoop map and reduce jobs, but remain available for update by the Object and HDFS services.
- Use existing Hadoop infrastructure with ViPR-managed data by referencing ViPR HDFS as the data source.
- Provide elastic, scalable, Commodity-based block storage through the Block Service. The Block Service exposes the disks on any type of host and uses the disks to create ViPR block virtual pools, which can be used for storage provisioning. Consequently, any application, file system, database, operating system, or virtualization platform can be provisioned with block storage from hundreds or thousands of Commodity nodes that are presented in ViPR as a single ScaleIO array.