Deploy MinIO on Azure Cobalt 100
Introduction
Overview of Azure Cobalt 100 and MinIO
Create an Azure Cobalt 100 virtual machine
Open MinIO ports in the Azure Network Security Group
Install and configure MinIO on Azure Cobalt 100
Benchmark MinIO storage performance on Azure Cobalt 100
Use MinIO for AI/ML Dataset and Model Storage
Next Steps
Deploy MinIO on Azure Cobalt 100
Introduction
Overview of Azure Cobalt 100 and MinIO
Create an Azure Cobalt 100 virtual machine
Open MinIO ports in the Azure Network Security Group
Install and configure MinIO on Azure Cobalt 100
Benchmark MinIO storage performance on Azure Cobalt 100
Use MinIO for AI/ML Dataset and Model Storage
Next Steps
Benchmark MinIO throughput on Azure Cobalt 100
In this section, you evaluate MinIO’s performance and validate its compatibility with the Amazon S3 API.
Generate test data
Create a 1 GB dataset using random data to simulate a large object storage workload.
mkdir dataset
dd if=/dev/urandom of=dataset/file1.bin bs=100M count=10
The output is similar to:
10+0 records in
10+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 2.46018 s, 426 MB/s
Benchmark upload throughput
Measure the time required to upload the dataset.
time mc cp --recursive dataset local/ml-datasets/
The output is similar to:
...r/dataset/file1.bin: 1000.00 MiB / 1000.00 MiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 108.90 MiB/s 9s
real 0m9.277s
user 0m0.812s
sys 0m0.353s
Benchmark download throughput
Measure the time required to retrieve the dataset.
time mc cp --recursive local/ml-datasets dataset-download
The output is similar to:
...l-datasets/test.txt: 1000.00 MiB / 1000.00 MiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 1.50 GiB/s 0s
real 0m0.739s
user 0m0.058s
sys 0m0.494s
Performance summary on Azure Cobalt 100
Running on a D4ps_v6 Cobalt 100 instance, MinIO achieved ~108 MiB/s upload throughput and ~1.50 GiB/s download throughput for 1 GB transfers. Upload time was approximately 9 seconds and download completed in under one second.
The asymmetry between upload and download speeds is typical for object storage on local disk. The high download throughput is well suited to inference workloads and analytics pipelines that read large datasets repeatedly.
Validate S3 compatibility using Python
MinIO implements the Amazon S3 API, which means any application or SDK written for S3 can connect to MinIO without modification. You can verify this using the boto3 Python SDK.
Create a virtual environment
Ubuntu 24.04 restricts global pip installs, so you need a virtual environment to install boto3. Create and activate one with:
python3 -m venv minio-env
source minio-env/bin/activate
Install boto3
pip install boto3
Create a test script
Create a Python script that connects to MinIO using the boto3 S3 client and lists your buckets. The script reads the password from the MINIO_ROOT_PASSWORD environment variable. Run the command below to create the file directly without using a text editor:
cat << 'EOF' > s3_test.py
import boto3
import os
s3 = boto3.client(
's3',
endpoint_url='http://localhost:9000',
aws_access_key_id='admin',
aws_secret_access_key=os.environ['MINIO_ROOT_PASSWORD']
)
response = s3.list_buckets()
print("Buckets:")
for bucket in response['Buckets']:
print(f" {bucket['Name']} (created {bucket['CreationDate'].strftime('%Y-%m-%d')})")
EOF
Run the script
python s3_test.py
The output is similar to:
Buckets:
ml-datasets (created 2026-03-24)
A successful response confirms MinIO accepts S3 API requests and returns bucket metadata in the same format as AWS S3.
When you’re done, deactivate the virtual environment:
deactivate
What you’ve learned and what’s next
In this section, you learned how to:
- Benchmark MinIO for high-throughput workloads
- Measure upload and download performance
- Interpret performance metrics
- Validate S3 compatibility using Python
In the next section, you will:
- Use MinIO in a real AI/ML workflow
- Store datasets and model artifacts
- Simulate production data pipelines