Lưu trữ đối tượng là lưu trữ và truy xuất các khối dữ liệu và siêu dữ liệu phi cấu trúc bằng API HTTP. Thay vì lưu trữ tệp theo cách thông thường bằng cách chia chúng thành các khối để lưu trữ trên đĩa bằng hệ thống tệp, chúng tôi xử lý toàn bộ đối tượng được lưu trữ qua mạng. Các đối tượng này có thể là hình ảnh, video, nhật ký, tệp HTML, bản sao lưu, hình ảnh chứa hoặc bất kỳ khối byte độc lập nào. Chúng không có cấu trúc vì chúng không tuân theo bất kỳ lược đồ hoặc định dạng cụ thể nào.
Minio là máy chủ lưu trữ đối tượng tương thích với Amazon S3, tự lưu trữ, mã nguồn mở phổ biến. Minio được viết bằng Go, đi kèm với các máy khách độc lập với hệ điều hành và giao diện trình duyệt. Trong hướng dẫn này, bạn sẽ cài đặt máy chủ Minio trên máy chủ Ubuntu 20.04, bảo vệ máy chủ này bằng chứng chỉ SSL từ Let's Encrypt và truy cập máy chủ này bằng ứng dụng dòng lệnh.
Làm cho tệp có thể thực thi.
Di chuyển tệp nhị phân đến thư mục /usr/local/bin.
Xác minh cài đặt.
Cài đặt ứng dụng parted để tạo và sửa đổi các phân vùng đĩa.
Chạy các lệnh sau để gắn đĩa thứ cấp vào thư mục /data.
Cờ -s đặt shell cho tài khoản người dùng thành /sbin/nologin, không cho phép người dùng đăng nhập.
Thay đổi quyền sở hữu tệp nhị phân Minio.
Cấp quyền sở hữu thư mục /data cho minio-user.
Bước tiếp theo là tạo tệp cấu hình cho Minio. Tạo một thư mục để lưu trữ tệp cấu hình.
Cấp quyền sở hữu thư mục cho người dùng minio-user.
Tạo tệp môi trường để lưu trữ cấu hình mặc định. Tệp này sẽ được lưu trữ trong thư mục /etc/default.
Dán mã sau với các biến môi trường để xác định Minio.
Hãy kiểm tra tất cả các biến và chức năng của chúng.
Mở tệp bằng trình soạn thảo Nano.
Bạn sẽ tìm thấy mã sau.
Dịch vụ này khởi động Minio bằng người dùng minio-user mà chúng tôi đã tạo trước đó. Dịch vụ này sử dụng /etc/default/minio làm tệp môi trường mà chúng tôi đã định cấu hình ở bước 3. Sau khi hài lòng, hãy đóng tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Di chuyển tệp dịch vụ đến thư mục /etc/systemd/system.
Tải lại daemon dịch vụ.
Kích hoạt Dịch vụ Minio.
Xác minh trạng thái.
Cho phép các cổng 9000 và 9001 sử dụng Tường lửa đơn giản (UFW).
Bật tường lửa.
Mở URL http://your_server_ip:9001 trong trình duyệt và bạn sẽ thấy màn hình sau.
Cài đặt trình cài đặt Snap.
Đảm bảo rằng phiên bản Snapd của bạn đã được cập nhật.
Cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo lệnh Certbot chạy bằng cách tạo liên kết tượng trưng đến thư mục /usr/bin.
Tạo chứng chỉ SSL.
Lệnh trên sẽ tải xuống chứng chỉ vào thư mục /etc/letsencrypt/live/minio.example.com trên máy chủ của bạn.
Sao chép các tệp privkey.pem và fullchain.pem vào certs thư mục trong thư mục cấu hình của Minio.
Thay đổi quyền sở hữu của các chứng chỉ đã sao chép.
Cho phép các cổng HTTP và HTTPS đi qua tường lửa.
Mở tệp cấu hình Minio.
Thêm dòng sau vào cuối.
Mặc dù bảng điều khiển được truy cập qua cổng 9001, nhưng URL máy chủ SSL sử dụng cổng 9000 để truy cập API Minio.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại Minio Server.
Bạn có thể truy cập bảng điều khiển Minio qua URL https://minio.example.com:9001 trong trình duyệt của bạn.
Nhấp vào nút Tạo Xô để tạo xô đầu tiên của bạn.
Vì chúng ta đang cài đặt Minio trên một máy chủ/đĩa duy nhất nên một số tính năng bị vô hiệu hóa. Nhập tên xô và nhấp vào nút Tạo Xô để tiếp tục. Bạn sẽ nhận được màn hình sau khi hoàn tất.
Để tải tệp lên, hãy nhấp vào nút Duyệt và trang sau sẽ xuất hiện.
Nhấp vào nút Tải tệp lên và chọn Tải tệp lên một lần nữa để mở Trình duyệt tệp trên PC của bạn. Bạn có thể chọn nhiều tệp cùng lúc để tải lên.
Nhấp vào nút thùng rác để xóa hàng đợi tải lên sau khi hoàn tất.
Vậy là xong. Bạn đã tạo thùng đầu tiên và tải lên một số tệp. Tiếp theo, chúng ta sẽ kết nối với máy chủ bằng máy khách, truy cập thùng này và quản lý nó.
Tải xuống tệp nhị phân Minio chính thức.
Làm cho tệp nhị phân có thể thực thi.
Di chuyển tệp nhị phân đến thư mục /usr/local/bin.
Xác minh cài đặt.
Đặt bí danh cho máy chủ Minio của bạn để bạn có thể truy cập bằng tên dễ nhận dạng. Thay thế minio và miniostorage bằng tên người dùng và mật khẩu bạn đã chọn cho máy chủ.
Máy khách Minio lưu trữ tất cả các cấu hình trong thư mục /home/user/.mc.
Lấy thông tin máy chủ Minio. Chúng tôi sử dụng lệnh phụ admin cho việc này.
Để liệt kê tất cả các thùng trong máy chủ Minio của bạn, hãy sử dụng lệnh sau.
Để liệt kê tất cả các đối tượng/tệp trong một thùng nhất định, hãy sử dụng lệnh sau.
Bạn có thể tạo một thùng mới bằng lệnh sau.
Chúng ta hãy tạo một tệp mới để sao chép vào thùng này.
Để sao chép tệp vào thùng mới tạo, hãy sử dụng lệnh sau lệnh.
Liệt kê tệp vừa sao chép.
Bạn có thể kiểm tra tất cả các lệnh bằng cách sử dụng đối số --help.
Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
Minio là máy chủ lưu trữ đối tượng tương thích với Amazon S3, tự lưu trữ, mã nguồn mở phổ biến. Minio được viết bằng Go, đi kèm với các máy khách độc lập với hệ điều hành và giao diện trình duyệt. Trong hướng dẫn này, bạn sẽ cài đặt máy chủ Minio trên máy chủ Ubuntu 20.04, bảo vệ máy chủ này bằng chứng chỉ SSL từ Let's Encrypt và truy cập máy chủ này bằng ứng dụng dòng lệnh.
Điều kiện tiên quyết
- Máy chủ Ubuntu 20.04 với người dùng không phải root có quyền sudo.
- Tên miền đã đăng ký đầy đủ, minio.example.com.
- Máy Ubuntu 20.04 hoạt động như máy khách.
-
Hệ thống đã được cập nhật.
Mã:$ sudo apt update
-
Một số gói mà hệ thống của bạn cần.
Mã:$ sudo apt install wget curl nano ufw software-properties-common apt-transport-https ca-certificates -y
Bước 1 - Cài đặt Minio Server
Minio, được viết bằng Go, được cung cấp dưới dạng tệp nhị phân đơn giản. Tải xuống tệp nhị phân từ trang web chính thức của Minio.
Mã:
$ wget https://dl.min.io/server/minio/release/linux-amd64/minio
Mã:
$ chmod +x minio
Mã:
$ sudo mv minio /usr/local/bin
Mã:
$ minio --versionminio version RELEASE.2022-01-28T02-28-16Z
Bước 2 - Chuẩn bị Đĩa lưu trữ đối tượng
Chúng ta cần chuẩn bị một thiết bị khối chuyên dụng để lưu trữ đối tượng. Đường dẫn lưu trữ có thể nằm trên ổ đĩa của bạn hoặc trên ổ đĩa thứ hai được kết nối với máy chủ của bạn. Đối với hướng dẫn này, chúng tôi sử dụng một đĩa thứ cấp.
Mã:
$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 50G 0 disk??sda1 8:1 0 50G 0 part /sdb 8:16 0 50G 0 disk
Mã:
$ sudo apt install parted
Mã:
$ sudo parted -s -a optimal -- /dev/sdb mklabel gpt$ sudo parted -s -a optimal -- /dev/sdb mkpart primary 0% 100%$ sudo parted -s -- /dev/sdb align-check optimal 1$ sudo mkfs.ext4 /dev/sdb1$ echo "/dev/sdb1 /data ext4 defaults 0 0" | sudo tee -a /etc/fstab$ sudo mkdir /data$ sudo mount -a
Bước 3 - Cấu hình Minio
Không bao giờ nên chạy máy chủ Minio dưới dạng root để tránh mọi thiệt hại. Do đó, chúng ta sẽ tạo một người dùng và nhóm có tên là minio-user.
Mã:
$ sudo useradd -r minio-user -s /sbin/nologin
Thay đổi quyền sở hữu tệp nhị phân Minio.
Mã:
$ sudo chown minio-user:minio-user /usr/local/bin/minio
Mã:
$ sudo chown minio-user:minio-user /data -R
Mã:
$ sudo mkdir /etc/minio
Mã:
$ sudo chown minio-user:minio-user /etc/minio
Mã:
$ sudo nano /etc/default/minio
Mã:
MINIO_ROOT_USER="minio"MINIO_VOLUMES="/data"MINIO_OPTS="-C /etc/minio --address your_server_ip:9000 --console-address :9001"MINIO_ROOT_PASSWORD="miniostorage"
- MINIO_ROOT_USER: thiết lập khóa truy cập/người dùng để truy cập giao diện người dùng Minio. Khóa này phải có độ dài tối thiểu là 3 ký tự.
- MINIO_VOLUMES: chỉ định thư mục lưu trữ cho dữ liệu.
- MINIO_OPTS: thiết lập nhiều tùy chọn khác nhau cho máy chủ Minio. Cờ -C chỉ định thư mục cấu hình được tạo trước đó. Cờ --address chỉ định địa chỉ IP và cổng để liên kết. Nếu bạn không chỉ định địa chỉ IP, Minio sẽ liên kết với mọi địa chỉ IP trên máy chủ, bao gồm cả localhost hoặc bất kỳ địa chỉ IP nào liên quan đến Docker. Cổng mặc định là 9000. Cờ --console-address đặt cổng 9001 cho bảng điều khiển web của Minio.
- MINIO_ROOT_PASSWORD: đặt khóa riêng/mật khẩu để truy cập giao diện Minio. Độ dài tối thiểu phải là 8 ký tự. Chọn một khóa bí mật mạnh và phức tạp.
Bước 4 - Cài đặt dịch vụ Minio
Tải xuống tệp dịch vụ Minio từ kho lưu trữ Github chính thức.
Mã:
$ curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service
Mã:
$ nano minio.service
Mã:
[Unit]Description=MinIODocumentation=https://docs.min.ioWants=network-online.targetAfter=network-online.targetAssertFileIsExecutable=/usr/local/bin/minio[Service]WorkingDirectory=/usr/local/User=minio-userGroup=minio-userProtectProc=invisibleEnvironmentFile=/etc/default/minioExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Biến MINIO_VOLUMES không được đặt trong /etc/default/minio\"; exit 1; fi"ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES# Cho phép systemd khởi động lại dịch vụ này luônRestart=always# Chỉ định số lượng mô tả tệp tối đa có thể được mở bởi quy trình nàyLimitNOFILE=1048576# Chỉ định số luồng tối đa mà quy trình này có thể tạoTasksMax=infinity# Vô hiệu hóa logic thời gian chờ và đợi cho đến khi quy trình dừngTimeoutStopSec=infinitySendSIGKILL=no[Cài đặt]WantedBy=multi-user.target# Được xây dựng cho ${project.name}-${project.version} (${project.name})
Di chuyển tệp dịch vụ đến thư mục /etc/systemd/system.
Mã:
$ sudo mv minio.service /etc/systemd/system
Mã:
$ sudo systemctl daemon-reload
Mã:
$ sudo systemctl enable minioĐã tạo liên kết tượng trưng từ /etc/systemd/system/multi-user.target.wants/minio.service đến /etc/systemd/system/minio.service.
Bước 5 - Khởi động Máy chủ Minio
Khởi động Máy chủ Minio.
Mã:
$ sudo systemctl start minio
Mã:
$ sudo systemctl status minio? minio.service - MinIO Đã tải: đã tải (/etc/systemd/system/minio.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Tue 2022-02-01 13:30:44 UTC; 5 giây trước Tài liệu: https://docs.min.io Quy trình: 26068 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Biến MINIO_VOLUMES không được đặt trong /etc/default/minio"; exi> PID chính: 26076 (minio) Nhiệm vụ: 6 Bộ nhớ: 55,3M CGroup: /system.slice/minio.service ??26076 /usr/local/bin/minio server -C /etc/minio --address 209.208.26.129:9000 --console-address :9001 /data
Mã:
$ sudo ufw allow 9000$ sudo ufw allow 9001
Mã:
$ sudo ufw enable
Bước 6 - Bảo mật Minio bằng SSL
Chúng ta sẽ sử dụng Let's Encrypt để bảo mật Minio. Để có chứng chỉ SSL miễn phí, chúng ta cần tải xuống công cụ Certbot. Chúng ta sẽ sử dụng trình cài đặt gói Snapd cho mục đích đó.Cài đặt trình cài đặt Snap.
Mã:
$ sudo apt install snapd
Mã:
$ sudo snap install core$ sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d minio.example.com
Sao chép các tệp privkey.pem và fullchain.pem vào certs thư mục trong thư mục cấu hình của Minio.
Mã:
$ 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
Mã:
$ sudo chown minio-user:minio-user /etc/minio/certs/private.key$ sudo chown minio-user:minio-user /etc/minio/certs/public.crt
Mã:
$ sudo ufw allow 80$ sudo ufw allow 443
Mã:
$ sudo nano /etc/default/minio
Mã:
MINIO_SERVER_URL="https://minio.example.com:9000"
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại Minio Server.
Mã:
$ sudo systemctl restart minio
Bước 7 - Kết nối với Minio và Thiết lập Xô
Đăng nhập vào Bảng điều khiển Minio bằng tên người dùng và mật khẩu đã thiết lập trước đó để truy cập Bảng điều khiển Minio.Nhấp vào nút Tạo Xô để tạo xô đầu tiên của bạn.
Vì chúng ta đang cài đặt Minio trên một máy chủ/đĩa duy nhất nên một số tính năng bị vô hiệu hóa. Nhập tên xô và nhấp vào nút Tạo Xô để tiếp tục. Bạn sẽ nhận được màn hình sau khi hoàn tất.
Để tải tệp lên, hãy nhấp vào nút Duyệt và trang sau sẽ xuất hiện.
Nhấp vào nút Tải tệp lên và chọn Tải tệp lên một lần nữa để mở Trình duyệt tệp trên PC của bạn. Bạn có thể chọn nhiều tệp cùng lúc để tải lên.
Nhấp vào nút thùng rác để xóa hàng đợi tải lên sau khi hoàn tất.
Vậy là xong. Bạn đã tạo thùng đầu tiên và tải lên một số tệp. Tiếp theo, chúng ta sẽ kết nối với máy chủ bằng máy khách, truy cập thùng này và quản lý nó.
Bước 8 - Cài đặt Minio Client và truy cập Tệp
Chúng ta sẽ cài đặt Minio's Command-line client trên một máy khác chạy Ubuntu 20.04 cho mục đích của chúng ta. Bạn cũng có thể tải xuống máy khách Desktop từ trang tải xuống chính thức của Minio.Tải xuống tệp nhị phân Minio chính thức.
Mã:
$ wget https://dl.min.io/client/mc/release/linux-amd64/mc
Mã:
$ chmod +x mc
Mã:
$ sudo mv mc /usr/local/bin
Mã:
$ mc --versionmc version RELEASE.2022-02-02T02-03-24Z
Mã:
$ mc alias set howtoforge https://minio.example.com:9000 minio miniostoragemc: Cấu hình được ghi vào `/home//.mc/config.json`. Vui lòng cập nhật thông tin xác thực truy cập của bạn.mc: Đã tạo thành công `/home//.mc/share`.mc: Đã khởi tạo tệp chia sẻ tải lên `/home//.mc/share/uploads.json`.mc: Đã khởi tạo tệp chia sẻ tải xuống `/home//.mc/share/downloads.json`.Đã thêm `howtoforge` thành công.
Lấy thông tin máy chủ Minio. Chúng tôi sử dụng lệnh phụ admin cho việc này.
Mã:
$ mc admin info howtoforge? minio.example.com:9000 Thời gian hoạt động: 2 phút Phiên bản: 2022-01-28T02:28:16Z Mạng: 1/1 OKĐã sử dụng 9,6 MiB, 1 Thùng, 5 Đối tượng
Mã:
$ mc ls howtoforge[2022-02-01 16:59:46 UTC] 0B howtoforge/
Mã:
$ mc ls howtoforge/howtoforge[2022-02-02 05:32:28 UTC] 2,9 MiB STANDARD IMG_20160717_184947_HDR.jpg[2022-02-02 05:32:00 UTC] 2,2 MiB STANDARD IMG_20160903_220639_HDR.jpg[2022-02-02 05:28:25 UTC] 2,4 MiB STANDARD IMG_20161006_213936_HDR.jpg[2022-02-02 05:28:07 UTC] 2,2 MiB STANDARD IMG_20161015_194409_HDR.jpg[2022-02-02 03:33:28 UTC] 25 KiB STANDARD quarantine.jpg
Mã:
$ mc mb howtoforge/bucket2Bucket created successfully `howtoforge/bucket2`.
Mã:
$ touch test.txt
Mã:
$ mc cp test.txt howtoforge/bucket2/home/nspeaks/test.txt: 0 B / ? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????
Mã:
$ mc ls howtoforge/bucket2[2022-02-02 07:06:44 UTC] 0B STANDARD test.txt
Mã:
$ mc --helpTÊN: mc - MinIO Client cho lưu trữ đám mây và hệ thống tệp.SỬ DỤNG: mc [CỜ] LỆNH [CỜ LỆNH | -h] [CÁC ĐỐI SỐ...]CÁC LỆNH: alias set, remove và list alias trong file cấu hình ls list buckets and objects mb make a bucket rb remove a bucket cp copy objects mirror synchronize object(s) to a remote site cat display object contents head display first 'n' lines of an object pipe stream STDIN to an object share generate URL for temporary access to an object find search for objects sql run sql queries on objects stat show object metadata mv move objects tree list buckets and objects in a tree format du summary disk usage recursively set retention for object(s) legalhold manage legal hold for object(s) diff list differences in object name(s) version manage bucket versioning ilm manage bucket lifecycle encrypt manage bucket encryption config event manage object notifications watch listen for object notification events undo undo PUT/DELETE operations anonymous manage anonymous access to buckets and objects tag manage tags for bucket and object(s) replicate configure server side replication admin manage MinIO servers update update mc to latest release support Hỗ trợ liên quan lệnhCỜ TOÀN CẦU: --autocompletion cài đặt chức năng tự động hoàn thành cho shell của bạn --config-dir giá trị, -C giá trị đường dẫn đến thư mục cấu hình (mặc định: "/home//.mc") --quiet, -q vô hiệu hóa hiển thị thanh tiến trình --no-color vô hiệu hóa chủ đề màu --json bật đầu ra định dạng dòng JSON --debug bật đầu ra gỡ lỗi --insecure vô hiệu hóa xác minh chứng chỉ SSL --help, -h hiển thị trợ giúp --version, -v in phiên bảnMẸO: Sử dụng 'mc --autocompletion' để bật chức năng tự động hoàn thành shellPHIÊN BẢN: RELEASE.2022-02-02T02-03-24Z
Kết luận
Đây là kết thúc hướng dẫn của chúng tôi, trong đó bạn đã cài đặt máy chủ lưu trữ đối tượng Minio trên máy chủ chạy Ubuntu 20.04. Có thể truy cập thông qua bảng điều khiển web được bảo vệ bằng chứng chỉ SSL Let's Encrypt. Bạn cũng đã cài đặt ứng dụng dòng lệnh Minio trên một máy Ubuntu khác để quản lý và truy cập máy chủ Minio.Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.