Implementation Guide for MinIO Storage-as-a-Service

Implementation Guide

Service Provider Data Center

Implementation Guide for MinIO* Storage-as-a-Service

Learn how to deploy a storage-as-a-service (STaaS) solution based on MinIO* with Intel? technology to create a scalable, S3 object store that features high performance, strict consistency and enterprise security

This implementation guide provides key learnings and configuration insights to integrate technologies with optimal business value.

If you are responsible for...

? Technology decisions: You will learn how to implement a storage-as-a-service (STaaS) solution using MinIO*. You'll also find tips for optimizing performance with Intel? technologies and best practices for deploying MinIO.

Introduction

MinIO* is a self-contained, distributed object storage server that is optimized for Intel? technology. MinIO provides a compelling storage-as-a-service (StaaS) object storage platform when combined with Intel's broad selection of products and technologies, such as Intel? Non-Volatile Memory express* (NVMe*)-based Solid State Drives (SSDs), Intel? Ethernet products and Intel? Xeon? Scalable processors, augmented by Intel? Advanced Vector Extensions 512 (Intel? AVX-512) single instruction multiple data (SIMD) instructions for x86 architecture. Collaborative open source developer communities are also available for MinIO.

An object storage solution should handle a broad spectrum of use cases including big data, artificial intelligence (AI), machine learning and application data. Unlike other object storage solutions that are built for archival use cases only, the MinIO platform is designed to deliver the high-performance object storage that is required by modern big data applications.

MinIO includes enterprise features such as:

? Hyperscale architecture to enable multi-data center expansion through federation

? High performance to serve large volumes of data needed by cloud-native applications

? Ease of use with non-disruptive upgrades, no tuning knobs and simple support

? High availability to serve data and survive multiple disk and node failures

? Enhanced security by encrypting each object with a unique key

Use the information in this implementation guide to deploy MinIO object storage and unleash the power of STaaS.

Solution Overview

MinIO consists of a server, optional client and optional software development kits (SDKs):

? MinIO Server. A 100 percent open source Amazon S3*-compatible object storage server that provides both high performance and strict consistency. Enterprisegrade encryption is used to help secure objects, and high-performance erasure

Implementation Guide | Implementation Guide for MinIO* Storage-as-a-Service

2

Table of Contents

Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . 1

Solution Overview. . . . . . . . . . . . . . . . . . . . 1

Intel? Technologies . . . . . . . . . . . . . . . . . . . 2

System Requirements. . . . . . . . . . . . . . . . . 3 Software Requirements. . . . . . . . . . . . . . . . 3 Hardware Requirements. . . . . . . . . . . . . . . 3

Installation and Configuration. . . . . . . . . 4 Step 1 - Download and Install the Linux OS of Choice. . . . . . . . . . . . . . . . . 4 Step 2 - Configure the Network. . . . . . . . 5 Step 3 - Configure the Hosts. . . . . . . . . . . 6 Step 4 - Download the MinIO Executables . . . . . . . . . . . . . . . . . . . . . . . . . 7 Step 5 - Start the MinIO Cluster. . . . . . . . 8 Step 6 - Test the MinIO Cluster. . . . . . . . . 8

Accessing and Managing the MinIO Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

MinIO Client (MC). . . . . . . . . . . . . . . . . . . . . . 8 AWS Command-Line Interface (CLI). . . . 8 S3cmd CLI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 MinIO Go Client SDK for Amazon S3-Compatible Cloud Storage. . . . . . . . . 9

Operating MinIO. . . . . . . . . . . . . . . . . . . . . . 9 Parity and Erasure Coding . . . . . . . . . . . . . 9 Dealing with Hardware Failures. . . . . . . . 9 Healing Objects. . . . . . . . . . . . . . . . . . . . . . . . 9 Updating MinIO. . . . . . . . . . . . . . . . . . . . . . . . 9 Checking MinIO Cluster Status. . . . . . . 10 Monitoring MinIO Using Prometheus*. . . . . . . . . . . . . . . . . . . . . . . . . 10

Support for MinIO . . . . . . . . . . . . . . . . . . . 10 MinIO Slack* Channel. . . . . . . . . . . . . . . . 10 MinIO SUBNET. . . . . . . . . . . . . . . . . . . . . . . 10

Scaling MinIO Clusters with Federation. . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Automating MinIO Deployments Using Kubernetes*. . . . . . . . . . . . . . . . . . . 11

MinIO Best Practices. . . . . . . . . . . . . . . . . 11 Cluster Sizing. . . . . . . . . . . . . . . . . . . . . . . . 11 Performance and Networking. . . . . . . . 12

Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

References . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Appendix A: Linux Kernel Tuning Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . 13

Solutions Proven by Your Peers . . . . . . 14

code algorithms are used to provide data durability. With MinIO data protection, a cluster can lose up to half of its servers, and half of its drives, and continue to serve data. User and application authentication are provided via tight integration with industry-standard identity providers.

? MinIO Client. Called MC, the MinIO Client is a modern and cloud-native alternative to the familiar UNIX* commands like ls, cat, cp, mirror, diff, find and mv. The MinIO Client commands work with both object servers and file systems. Among the most powerful features of the MinIO Client is a tool for mirroring objects between S3-compatible object servers.

? MinIO SDKs. The MinIO Client SDKs provide simple APIs for accessing any Amazon S3-compatible object storage. MinIO repositories on GitHub* offer SDKs for popular development languages such as Golang*, JavaScript*, .Net*, Python* and Java*.

The use cases for MinIO span a wide variety of workloads and applications (see Figure 1).

Data Analytics

Spark* Flink 1.0* Presto*

Hive*

Data Ingestion

Kafka* MQTT* AMQP* Fluentd*

AI & ML

TensorFlow* H2O.ai* PyTorch*

Database

Elasticsearch* PostgreSQL*

MySQL*

MinIO*

Figure 1. MinIO* object storage provides the high performance required by modern big data applications.

Intel? Technologies

Several Intel? technologies, both hardware and software, provide the performance and reliability foundation of a MinIO-based solution. See the "References" section for links.

? Data durability and performance boost. MinIO protects the integrity and durability of objects with erasure coding and uses hash checksums to protect against bitrot. These performance-critical algorithms have been accelerated using the SIMD instructions on Intel? architecture using Intel? Advanced Vector Extensions 2 (Intel? AVX2) and Intel AVX-512. Offloading these calculations has a positive impact on system performance.

? Enhanced storage performance. Intel? Serial AT Attachment (SATA)-based, Intel NVMe-based and Intel? OptaneTM SSDs provide performance, stability, efficiency and low power consumption. Intel NVMe-based SSDs provide a fast storage layer which MinIO in turn translates into fast throughput for S3 object PUTs and GETs.

? Linear scaling with Intel? processors. The Intel Xeon processor Scalable family provides a wide range of performance options. High-end Intel? processors deliver energy efficiency and high performance for intensive STaaS workloads. An alternative is to choose a lower-performance option for less demanding STaaS workloads such as archive storage workloads.

Implementation Guide | Implementation Guide for MinIO* Storage-as-a-Service

? Increased server bandwidth. Intel? Ethernet Network Adapters provide flexible bandwidth options. They are available with 10, 25 and 40 Gigabit Ethernet (GbE) ports to support whatever network infrastructure may be deployed in your data center. The MinIO Server works fastest with high-speed, low-latency networking connections between servers in a cluster and between a MinIO cluster and its clients.

System Requirements

Software Requirements ? MinIO software. As of the publication date, the current version of MinIO is RELEASE.2019-04-04T18-

31-46Z. ? Compatible OS. MinIO will work effectively with any Linux* distribution. Intel recommends that you

deploy MinIO on one of the three major Linux distributions: CentOS*/Red Hat Enterprise Linux* (RHEL*), SUSE*, or Ubuntu*.

Hardware Requirements MinIO was designed to run on industry-standard hardware. The notes in Table 1 provide guidance for selecting components.

Table 1. Server Configuration

Component Range of Options

Notes

CPU Memory Data Storage

Network Cluster Size

2x Intel? Xeon? Scalable processors

96 GB

?S ATA-based solid state drives (SSDs)

? NVMe*-based SSDs ?Intel? OptaneTM Data

Center SSDs

10/25/40/50/100 GbE network interface cards (NICs)

4 to 32 nodes

Erasure coding will take advantage of Intel? Advanced Vector Extensions 512 (Intel? AVX-512).

MinIO does not require a large amount of server memory. 96 GB is a "balanced" memory configuration for both 1st and 2nd Generation Intel Xeon Scalable processors.

MinIO can use all the drives in a server. A common high-performance deployment choice is a 2U 24-drive chassis with SATA- or NVMe-based SSDs. For archive workloads, a 4U 45-drive chassis with high-density SATA-based SSDs works well. The use of faster drives allows MinIO to provide more throughput.

The use of faster networks allows MinIO to provide higher levels of throughput. Bonding multiple networks together both creates a high-availability configuration and makes additional throughput possible.

The minimum cluster size is 4 nodes. The maximum cluster size is 32 nodes. Multiple MinIO clusters can be federated to create larger clusters.

GbE = Gigabit Ethernet NVMe = Non-Volatile Memory express SATA = Serial AT Attachment

3

Implementation Guide | Implementation Guide for MinIO* Storage-as-a-Service

4

Installation and Configuration

There are six steps to deploying a MinIO cluster: 1. Download and install the Linux OS 2. Configure the network 3. Configure the hosts 4. Download the MinIO executables 5. Start the MinIO cluster 6. Test the MinIO cluster

Step 1: Download and Install the Linux OS of Choice MinIO requires only the "basic server" option from the distribution. Often IT organizations have determined best practices for Linux OS provisioning and system hardening and these recommendations should be followed. Intel recommends that several utilities be added to the "basic server" bundle to manage Intel? devices. Additional services and libraries are also needed to support the health of the MinIO cluster. The following subsections provide information about the recommended additional services and libraries, utilities, Intel? tools and drivers and firmware.

Additional Services and Libraries The following services and libraries should be present to support the MinIO cluster: ? Network time protocol (NTP) time server configured to synchronize time between all MinIO servers ? Domain Name Service (DNS) ? Secure Shell (SSH) libraries ? Secure Sockets Layer (SSL) libraries

Recommended Utilities The following utilities are useful for managing hardware: ? numactl ? pci-utils (lspci) ? nvme-cli ? sdparm ? hdparm ? sysstat (perf, dstat) ? git ? python ? screen ? tree ? ipmitool ? wget ? curl ? vim-enhanced (or emacs) ? collectd ? parted The Yellowdog Updater, Modified (YUM) tool can be used to install the above 16 utilities, as shown here:

yum install numactl pci-utils nvme-cli sdparm hdparm systat git python screen

tree ipmitool wget vim-enhanced curl collectd parted -y

Implementation Guide | Implementation Guide for MinIO* Storage-as-a-Service

5

Intel? Tools The Intel? SSD Data Center Tool (Intel? SSD DCT) provides manageability and configuration functionality for Intel? SSDs with Peripheral Component Interconnect Express* (PCIe*) and SATA interfaces. This tool is used to upgrade firmware on SSD controllers and to apply advanced settings. This tool is separate from the nvme-cli utility, which is used only for managing NVMe-based devices and does not support updating drive firmware. The Intel SSD DCT can be downloaded from the following link: download/28594/Intel-SSD-Data-Center-Tool-Intel-SSD-DCT-

Drivers and Firmware Ensure that the following drivers and firmware are at their most current levels: ? BIOS. Follow the instructions provided by the server vendor. ? Intel SSD. Follow the instructions in the Intel SSD DCT Guide ? Intel? NIC. Download the latest driver and firmware packages. Note: 10/25/40 GbE NICs use the same

i40e driver package. Intel NIC drivers are available at the following link: Intel-Network-Adapter-Driver-for-PCIe-40-Gigabit-Ethernet-Network-Connections-Under-Linux?product=95260 Intel firmware is available at the following link:

Step 2 - Configure the Network Open Port 9000 By default, MinIO uses port 9000 to listen for incoming connections. If there is a need to employ a different port number, then this can be selected when the MinIO server is started. Ensure that the port is open on the firewall on each host. Find the active zones:

firewall-cmd --zone= --add-port=9000/tcp --permanent

Configure firewall:

firewall-cmd --zone= --add-port=9000/tcp --permanent

Reload firewall:

firewall-cmd --reload

Choosing Hostnames It is best to name the hosts with a logical sequence of hostnames. This is done to make starting and managing the MinIO cluster simple. For example, Table 2 shows a naming convention for N number of nodes.

Table 2. Hostname Examples

Node 1

minio1.

Node 2

minio2.

...

...

Node N

minioN.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related searches