Nếu bạn đang tìm kiếm một giải pháp lưu trữ đối tượng tương thích với giao thức S3, MinIO là nền tảng lý tưởng dành cho bạn. Đây là phần mềm máy chủ mã nguồn mở, phát triển bằng ngôn ngữ lập trình Go, nổi bật với khả năng mở rộng linh hoạt và hiệu suất cao. MinIO hỗ trợ đa nền tảng thông qua các client chính thức và cung cấp giao diện quản trị web trực quan để bạn dễ dàng quản lý dữ liệu, đối tượng và người dùng.
DataOnline sẽ được hướng dẫn chi tiết cách cài đặt và cấu hình MinIO trên một máy chủ Rocky Linux, phù hợp để triển khai trong môi trường hạ tầng đám mây hiện đại hoặc hệ thống nội bộ doanh nghiệp.
Yêu cầu
- Triển khai một máy chủ Rocky Linux 8.
- Gắn Block Storage vào máy chủ của bạn và tạo điểm mount là /mnt/data.
- Tạo một người dùng không phải root có quyền sudo.
- Cập nhật hệ thống của máy chủ.
- Tạo một bản ghi DNS kiểu “A” (ví dụ: minio.example.com) trỏ về địa chỉ IP của máy chủ. Bản ghi này sẽ được dùng để truy cập giao diện web.
1. Cấu hình tường lửa
Bước đầu tiên là mở các cổng 9000 và 9001, cổng cần thiết cho máy chủ MinIO. Bạn cũng cần mở các cổng HTTP và HTTPS để truy cập SSL.
Sử dụng các lệnh sau để mở các cổng cần thiết trong firewall:
$ sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent $ sudo firewall-cmd --zone=public --add-port=9001/tcp --permanent
Kích hoạt truy cập HTTP và HTTPS:
$ sudo firewall-cmd --zone=public --add-service=http --permanent $ sudo firewall-cmd --zone=public --add-service=https --permanent
Tải lại tường lửa để áp dụng thay đổi:
$ sudo firewall-cmd --reload
2. Cài đặt MinIO
MinIO được phân phối dưới dạng file nhị phân, được viết bằng ngôn ngữ GO. Tải file này từ trang web chính thức:
$ wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio
Thay đổi quyền truy cập của file để có thể thực thi:
$ sudo chmod +x /usr/local/bin/minio
Cấu hình quyền SELinux cho file:
$ sudo restorecon -v /usr/local/bin/minio
Xác minh cài đặt bằng cách in thông tin phiên bản:
$ minio --version minio version RELEASE.2022-04-16T04-26-02Z
3. Cấu hình MinIO
Tạo một người dùng để chạy máy chủ MinIO:
$ sudo useradd -r minio-user -s /sbin/nologin
Thay đổi quyền sở hữu của file MinIO:
$ sudo chown minio-user:minio-user /usr/local/bin/minio
Tạo thư mục lưu trữ file cấu hình của MinIO:
$ sudo mkdir /etc/minio
Thay đổi quyền sở hữu của thư mục cấu hình:
$ sudo chown minio-user:minio-user /etc/minio
Gán quyền sở hữu cho thư mục mount:
$ sudo chown minio-user:minio-user /mnt/data
Tạo file môi trường mặc định và mở nó để chỉnh sửa:
$ sudo nano /etc/default/minio/
Dán vào file các dòng sau:
MINIO_VOLUMES="/mnt/data" MINIO_OPTS="-C /etc/minio --address :9000 --console-address :9001" MINIO_ROOT_USER="minio" MINIO_ROOT_PASSWORD="ChooseAStrongPassword"
Lưu file bằng cách nhấn Ctrl+X
, sau đó nhấn Y
.
4. Thiết lập dịch vụ MinIO
Tải file unit cho dịch vụ từ kho GitHub của MinIO:
$ wget https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service -O /etc/systemd/system/minio.service
Cấu hình SELinux để cho phép dịch vụ chạy:
sudo restorecon -v /etc/systemd/system/minio.service
Tải lại daemon của systemd:
$ sudo systemctl daemon-reload
Kích hoạt dịch vụ MinIO:
$ sudo systemctl enable minio
5. Khởi động máy chủ MinIO
Bắt đầu chạy máy chủ MinIO:
$ sudo systemctl start minio
Kiểm tra trạng thái của máy chủ:
$ sudo systemctl status minio
Mở trình duyệt và truy cập URL http://your_server_ip:9001
để truy cập giao diện điều khiển của MinIO.
6. Cài đặt và cấu hình Certbot
Công cụ Certbot sử dụng API của Let’s Encrypt để yêu cầu cấp chứng chỉ SSL. Nó yêu cầu kho EPEL để cài đặt.
Cài đặt kho EPEL:
$ sudo dnf install epel-release
Cài đặt Certbot:
$ sudo dnf install certbot
Yêu cầu cấp chứng chỉ SSL cho MinIO ở chế độ standalone:
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --preferred-challenges http -m name@example.com -d minio.example.com
Sau khi chứng chỉ được cấp, chúng sẽ có sẵn tại thư mục /etc/letsencrypt/live/minio.example.com
.
Sao chép các file chứng chỉ vào thư mục /etc/minio/certs
:
$ sudo cp /etc/letsencrypt/live/minio.example.com/privkey.pem /etc/minio/certs/private.key $ sudo cp /etc/letsencrypt/live/minio.example.com/fullchain.pem /etc/minio/certs/public.crt
Thay đổi quyền sở hữu các file chứng chỉ:
$ sudo chown minio-user:minio-user /etc/minio/certs/private.key $ sudo chown minio-user:minio-user /etc/minio/certs/public.crt
Mở file cấu hình mặc định của MinIO:
$ sudo nano /etc/default/minio
Thêm dòng sau ở cuối file:
MINIO_SERVER_URL="https://minio.example.com:9000"
Lưu file bằng cách nhấn Ctrl+X, sau đó Y.
Khởi động lại máy chủ MinIO để áp dụng thay đổi:
$ sudo systemctl restart minio
Tạo file /etc/minio/certcopy.sh để sao chép các chứng chỉ sau mỗi lần gia hạn và mở file để chỉnh sửa:
$ sudo nano /etc/minio/certcopy.sh
Dán đoạn mã sau vào file:
#!/bin/sh cp -f /etc/letsencrypt/live/minio.example.com/privkey.pem /etc/minio/certs/private.key cp -f /etc/letsencrypt/live/minio.example.com/fullchain.pem /etc/minio/certs/public.crt
Lưu file bằng cách nhấn Ctrl+X
, sau đó Y
.
Đặt quyền thực thi cho file:
$ sudo chmod +x /etc/minio/certcopy.sh
Mở file /etc/letsencrypt/renewal/minio.example.com.conf
để chỉnh sửa:
$ sudo nano /etc/letsencrypt/renewal/minio.example.com.conf
Thêm dòng sau vào cuối file:
post_hook = /etc/minio/certcopy.sh
Lưu file bằng cách nhấn Ctrl+X, sau đó Y.
Tùy chọn post_hook
sẽ chạy script certcopy.sh
sau mỗi lần gia hạn chứng chỉ, giúp bạn không phải sao chép chứng chỉ thủ công.
7. Truy Cập MinIO
Bạn có thể truy cập MinIO bằng cách mở URL https://minio.example.com:9001
trên trình duyệt.
Nhập tên người dùng root và mật khẩu đã được thiết lập ở bước cấu hình để đăng nhập.
Từ đó, bạn có thể bắt đầu sử dụng MinIO để tạo buckets và lưu trữ dữ liệu. Bạn có thể sử dụng chính MinIO Client hoặc bất kỳ công cụ tương thích S3 nào để truy cập và quản lý dữ liệu đã tải lên.
Kết luận
Bạn đã hoàn tất việc cài đặt và cấu hình MinIO trên máy chủ Rocky Linux 8 một cách thành công. Giờ đây, bạn có thể triển khai một hệ thống lưu trữ đối tượng tương thích S3 với khả năng mở rộng linh hoạt, bảo mật cao và hiệu năng tối ưu. MinIO là giải pháp lý tưởng cho các doanh nghiệp cần lưu trữ dữ liệu lớn, truy cập nhanh và tích hợp dễ dàng với các ứng dụng hiện đại, từ nền tảng cloud-native đến hệ thống hybrid.