So much of what we do at MinIO is about craftsmanship. We believe deeply that the right outcome is attained by using the right tool for the job. It is why, over the past year, we worked so diligently to expand the places and workloads for which MinIO object storage is the right tool. We worked equally hard at expanding the tools to adopt, deploy and operate MinIO. This post outlines the different options you have to create, manage and scale your MinIO instances and when it might be appropriate to use them.
Our tools enable anyone - regardless of skill set - to leverage the power of MinIO object storage. Use the MinIO Client from the command line if that’s where you’re comfortable. Script and automate to your heart’s content. Or, point-and-click to use the MinIO Console and MinIO Operator Console to manage your MinIO deployments, objects and buckets. The choice is yours.
This post is not designed to be prescriptive - rather it is one perspective. Our community continues to amaze us in their creativity and ingenuity and we have no interest in limiting that in any way. In other words, if it works for you it works for us!
The MinIO Client (mc)
For many years, the alpha and omega of MinIO was the MinIO CLI (mc). Powerful yet simple, it is prized by the portion of our community that lives on the command line. They love mc for its speed, low overhead and scriptability. The tool runs just about anywhere to provide a convenient cloud-native way to manage MinIO deployments and to work with objects and buckets. MinIO and mc are integral components of DevOps toolchains where they provide consistent S3 functionality across environments.
While mc is filled with useful commands, here are a few that are particularly powerful:
- mc admin info: The admin sub-command is used to perform administrative tasks on MinIO deployments. The info command displays server information about your MinIO deployment such as uptime, software version, disk space utilized, number of buckets and objects, and the number of drives that are online. Adding the --json flag will return a complete and granular listing of cluster status. See the MinIO Admin Complete Guide for more information.
- mc admin speedtest: The speedtest command conducts a quick performance assessment of your MinIO cluster. Tests automatically increase GET and PUT load to pinpoint maximum aggregate throughput. See Introducing Speedtest for MinIO for more information.
- mc admin trace: The trace command displays server http traces for one MinIO server or your entire cluster. Trace is an http request method that echos input back to the user. This is very helpful for debugging and troubleshooting as you see the detailed contents of each request and response without having to parse pcaps or configure a proxy. See MinIO Admin Complete Guide for more information.
- mc find: The find command searches for objects that match a given set of parameters and lists them. This is a really useful command for working with objects stored in MinIO. You can search by name, data, age, and size. Search can take place across everything stored in MinIO or be limited to specific buckets. For the ultimate in functionality, the find command can also watch for newly created files matching search criteria. The mc find --exec command is used to spawn an external process based on search results. Many sysadmins find the ability to copy, move or delete objects automatically to be indispensable. See MinIO Client Complete Guide for more information.
- mc mirror: The mirror command synchronizes data between different sources such as local file systems, NFS, S3 and MinIO object storage. Use the mirror command for a one-time transfer of files between storage across a network (you would use bucket replication in cases where real-time synchronization is needed). Objects can be filtered by name and age. You can also specify whether mirrored traffic is encrypted or not. See MinIO Client Complete Guide for more information.
In addition, MinIO includes a number of graphical user interfaces (GUI) to make object storage deployment, configuration, management and support easier. Now everyone in the data-driven enterprise has the ability to interact with data in the way that best suits their process. The good news is that MinIO is the same - granularly manageable, performant and elastically scalable - regardless of your chosen interface.
MinIO Console is a browser-based GUI that provides the same deep management functionality of the `mc` command line tool and the S3-compatible API. IT administrators will feel at home within the streamlined, intuitive interface that puts every MinIO feature at their fingertips.
The first screen you’ll see is a Prometheus-driven dashboard that provides an overview of system health. Admins can quickly assess the status of all MinIO instances, using time windows to visualize current and past performance metrics about server pools, servers, drives, buckets, objects, S3 API requests, errors, network traffic and storage used.
From there, drill down to management functions for creating and configuring buckets. Users and groups can be added manually or via built-in integrations to OpenID-compatible identity providers or ActiveDirectory/LDAP. IAM policies can be quickly applied to users and groups using check boxes and drop down menus.
Quickly and easily create and manage service accounts and IAM policies. MinIO Console displays each IAM policy intuitively, clearly indicating the active IAM policy statements and the resources they regulate.
Auditors and other compliance types can drill-down into buckets and objects to review policies and dig into logs. MinIO logs every operation, and, when configured to use logsearch, enables auditors to query and filter logs by time window as well as search for specific bucket, object, API name, user agent, request ID, and response status.
Rounding out MinIO Console’s functionality is a set of tools that enable you to watch buckets, generate thorough diagnostic reports, heal storage and more. One time-saving tool is Speedtest, an automated performance test of your MinIO cluster. Speedtest runs a distributed test that measures GET and PUT throughput, assuring you that the cluster is performing optimally or flagging potential problems before they degrade performance.
MinIO Kubernetes Operator
Turning to Kubernetes, we’ve seen remarkably rapid adoption of the MinIO Operator - more than 60% of our customers run MinIO in a container and half of those are orchestrated using Kubernetes. MinIO is purpose-built to take advantage of the Kubernetes architecture to simplify infrastructure management by providing a way to manage object storage within the Kubernetes toolset.
Use the kubectl minio plugin or the operator to deploy and manage multi-tenant object storage as a service. Script and automate using the plugin or use the Operator Console to create, deploy and manage object storage anywhere Kubernetes runs - including VMware Tanzu, Red Hat OpenShift and clouds like Microsoft Azure Kubernetes Service.
Running MinIO on Kubernetes lets Kubernetes handle storage orchestration. MinIO Operator lets you hand off infrastructure tasks like provisioning, volume placement and storage allocation and let Kubernetes automatically take care of them. It could not be easier to create a tenant - name it, select a namespace and a storage class and let Kubernetes and MinIO spin it up for you. Take configuration deeper by toggling on Advanced Mode to assign Identity Provider, TLS Certificates, Encryption or specific resources for the tenant.
MinIO Object Browser
We started with the object browser as our first GUI. Over time much of that functionality has migrated into MinIO Console, but for simple deployments, the object browser offers a simple solution. We love simplicity so we just had to include a point-and-click tool to create buckets, upload objects and browse the contents of their MinIO instances. Just fire up a browser, point it at a MinIO tenant and log in with the appropriate credentials to start browsing, or search for, objects and buckets.
You can upload and download files and folders using the object browser. A very useful feature for collaborating is to create and share a temporary link to a file for up to 7 days.
SUBNET combines an unprecedented and powerful group of advanced object storage management and troubleshooting tools and makes them available within MinIO. SUBNET combines a commercial license with a unique support model that delivers 24/7/365 direct-to-engineer support through a MinIO-built portal that blends the best of Slack and Zendesk.
Only SUBNET customers have direct access to MinIO engineers from any browser. Customers collaborate with the same engineers who wrote the software to assess, optimize and secure their MinIO clusters. Many view this secure communication channel as indispensable in production environments as they can share logs and certified software binaries and receive immediate feedback.
The mission-critical DevOps-centric world thrives on real-time communications, and SUBNET makes MinIO engineering expertise available in an instant. Create a new issue and tag members of your team and ours to collaborate. These searchable conversations are saved forever for reference.
SUBNET Health displays the status of key components while automatically running dozens of checks on your MinIO instance to verify that it is running at its best. A complete catalogue of hardware and software is tracked over time to ensure consistency and flag discrepancies using easy-to-interpret color-coded indicators of priority. Quickly identify and remediate performance or integration issues before they can affect service.
Your Go-To GUI
It’s a lot easier to deploy and manage object storage using streamlined and responsive tools. MinIO lets you choose the best tool for the task at hand. We provide the same deep functionality in browser-based graphical tools as we do via the command line - so everyone can put the fastest and most scalable object storage solution to work for them.