Trong thời đại lưu trữ đám mây và ứng dụng phân tán, nhu cầu triển khai hệ thống S3 Object Storage ngày càng quan trọng. Một trong những lựa chọn phổ biến, nhẹ và mạnh mẽ chính là MinIO – một giải pháp S3-compatible mã nguồn mở.
Trong bài viết này, mình sẽ hướng dẫn chi tiết cách triển khai cụm MinIO Distributed từ A → Z:
-
Chuẩn bị hệ thống và script cài đặt
-
Cài đặt và cấu hình MinIO Server
-
Reverse Proxy với Nginx + SSL (Let’s Encrypt)
-
Quản lý MinIO với mc (MinIO Client)
-
Tạo user và policy để tích hợp với Nextcloud hoặc ứng dụng khác
MinIO là gì?
MinIO là một hệ thống Object Storage tương thích với giao thức Amazon S3, cho phép bạn lưu trữ dữ liệu phi cấu trúc (ảnh, video, file, backup, log…).
Ưu điểm của MinIO
-
Hoàn toàn tương thích S3 API
-
Triển khai linh hoạt: chạy độc lập, cluster hoặc Kubernetes
-
Hiệu năng cao: tối ưu cho big data, AI, machine learning
-
Mã nguồn mở và dễ tích hợp
1. Chuẩn bị môi trường
Trước tiên, cập nhật hệ thống, cài đặt các gói cần thiết và chuẩn bị ổ đĩa để lưu trữ dữ liệu MinIO.
Dưới đây là script bash tự động:
Script này giúp bạn:
-
Cấu hình firewall (22, 9000, 9001)
-
Đồng bộ thời gian với Chrony
-
Mở rộng phân vùng root
-
Format & mount các ổ đĩa dữ liệu cho MinIO
2. Cài đặt MinIO Server
Sau khi chuẩn bị xong, tiến hành cài MinIO:
Tạo file systemd service cho MinIO (cluster 4 node):
Thêm file credentials:
Truy cập MinIO:
-
API (S3 endpoint):
http://IP:9000
-
Console quản trị:
http://IP:9001
3. Reverse Proxy với Nginx + SSL
Để bảo mật, dùng Nginx làm reverse proxy và cấp SSL bằng Let’s Encrypt:
Cấp chứng chỉ SSL:
Sau khi hoàn tất:
-
Console: https://s3.sysadminskills.com
4. Cài MinIO Client (mc)
5. Tạo user & policy cho ứng dụng (ví dụ Nextcloud)
# Tạo user
mc admin user add myminio nextcloud MAuySZ0aC
# Tạo policy file
cat <<EOF > nextcloud-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Resource": ["arn:aws:s3:::nextcloud-bucket"]
},
{
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject"
],
"Resource": ["arn:aws:s3:::nextcloud-bucket/*"]
}
]
}
EOF
# Apply policy
mc admin policy create myminio nextcloud-policy nextcloud-policy.json
mc admin policy attach myminio nextcloud-policy --user nextcloud
User nextcloud giờ có thể sử dụng S3 MinIO để lưu file.
Kết luận
Vậy là chúng ta đã triển khai thành công cụm MinIO Distributed với:
-
Script chuẩn bị hạ tầng
-
Cài đặt MinIO và cấu hình Cluster
-
Reverse Proxy bằng Nginx + SSL
-
Quản lý bằng MinIO Client (mc)
-
Tích hợp ứng dụng như Nextcloud
Một bình luận cho “Hướng Dẫn Triển Khai S3 MinIO Toàn Tập”