Thứ tư, 30/08/2017 | 00:00 GMT+7

Cách thiết lập server lưu trữ đối tượng bằng Minio trên Ubuntu 16.04

Từ các giải pháp backup dựa trên cloud đến các mạng phân phối nội dung có tính khả dụng cao (CDN), lưu trữ đối tượng đã trở thành một phần không thể thiếu trong bối cảnh công nghệ hiện đại. Và, với diện tích nhỏ, giao diện đơn giản và khả năng tương thích với nhiều dịch vụ lưu trữ cloud , server lưu trữ đối tượng Minio có rất nhiều điểm mạnh.

Minio là một server lưu trữ đối tượng open-souce lưu trữ dữ liệu phi cấu trúc như ảnh, video, hình ảnh máy ảo, containers và file log dưới dạng đối tượng. Ở chế độ phân tán, Minio cung cấp một server lưu trữ đối tượng duy nhất chứa nhiều ổ đĩa trải rộng trên nhiều server .

Minio được viết bằng Go, đi kèm với ứng dụng dòng lệnh cộng với giao diện trình duyệt và hỗ trợ dịch vụ xếp hàng đơn giản cho các mục tiêu Giao thức xếp hàng thư nâng cao (AMQP) , Elasticsearch , Redis , NATSPostgres .

Trong hướng dẫn này, bạn sẽ:

  • Cài đặt server Minio trên server DigitalOcean của bạn và cấu hình nó như một dịch vụ systemd.

  • Cài đặt certificate SSL / TLS bằng Let's Encrypt để bảo mật giao tiếp giữa server và client .

  • Truy cập giao diện trình duyệt của Minio thông qua HTTPS để sử dụng và quản trị server .

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần :

  • Một server Ubuntu 16.04 được cài đặt theo hướng dẫn cài đặt server ban đầu Ubuntu 16.04 này , bao gồm user không phải root có quyền sudo và firewall .

  • Tên domain đã đăng ký đầy đủ. Bạn có thể mua một cái trên Namecheap hoặc nhận một cái miễn phí trên Freenom .

  • Các bản ghi DNS sau được cài đặt cho server Minio của bạn. Bạn có thể làm theo hướng dẫn tên server này để biết chi tiết về cách thêm chúng.

    • Bản ghi A với tên server của bạn (ví dụ: minio-server.example.com ) trỏ đến địa chỉ IPv4 của server đối tượng của bạn.
    • Bản ghi AAAA với tên server của bạn trỏ đến địa chỉ IPv6 của server đối tượng của bạn, nếu bạn muốn server của bạn có thể truy cập được qua IPv6.
  • Cài đặt Go trên server bằng cách sử dụng hướng dẫn này để cài đặt Go trên Ubuntu 16.04 .

Bước 1 - Cài đặt và cấu hình server Minio

Bạn có thể cài đặt server Minio bằng cách biên dịch mã nguồn hoặc thông qua file binary . Trong bước này, ta sẽ cài đặt server theo cách dễ dàng nhất — thông qua file binary — và sau đó ta sẽ cấu hình mọi thứ sau đó.

Đầu tiên, đăng nhập vào server của bạn:

  • ssh sammy@your_server_ip

Nếu bạn chưa cập nhật database gói gần đây, hãy cập nhật nó ngay bây giờ:

  • sudo apt-get update

Tiếp theo, download file binary của server Minio:

  • curl -O https://dl.minio.io/server/minio/release/linux-amd64/minio

Một file có tên minio sẽ được download folder làm việc của bạn. Làm cho nó có thể thực thi:

  • sudo chmod +x minio

Bây giờ, hãy di chuyển file vào folder /usr/local/bin nơi tập lệnh khởi động systemd của Minio dự kiến sẽ tìm thấy nó:

  • sudo mv minio /usr/local/bin

Vì lý do bảo mật, ta không muốn chạy server Minio dưới dạng root . Và, vì tập lệnh systemd mà ta sẽ sử dụng trong Bước 2 tìm kiếm account user và group được gọi là minio-user , hãy tạo chúng ngay bây giờ.

  • sudo useradd -r minio-user -s /sbin/nologin

Thay đổi quyền sở hữu binary thành minio-user :

  • sudo chown minio-user:minio-user /usr/local/bin/minio

Tiếp theo, ta cần tạo một folder mà Minio sẽ lưu trữ các file . Đây sẽ là vị trí lưu trữ cho các group mà bạn sẽ tạo ở Bước 5.

  • sudo mkdir /usr/local/share/minio

Cấp quyền sở hữu folder đó cho minio-user :

  • sudo chown minio-user:minio-user /usr/local/share/minio

Thư mục /etc là vị trí phổ biến nhất cho các file cấu hình server , vì vậy ta sẽ tạo một vị trí cho Minio ở đó.

  • sudo mkdir /etc/minio

Cũng cấp quyền sở hữu folder đó cho user nhỏ :

  • sudo chown minio-user:minio-user /etc/minio

Sử dụng nano hoặc editor yêu thích của bạn để tạo file môi trường cần thiết để sửa đổi cấu hình mặc định:

  • sudo nano /etc/default/minio

Và, thêm các biến sau:

/ etc / default / minio
MINIO_VOLUMES="/usr/local/share/minio/" MINIO_OPTS="-C /etc/minio --address your-server-ip:9000" 
  • MINIO_VOLUMES : Trỏ đến folder lưu trữ mà bạn đã tạo trước đó.

  • MINIO_OPTS : Sửa đổi hoạt động của server . Lá cờ C chỉ Minio vào folder cấu hình nó nên sử dụng, trong khi cờ -Địa chỉ nói Minio địa chỉ IP và cổng để bám vào. Nếu địa chỉ IP không được chỉ định, Minio sẽ liên kết với mọi địa chỉ được cấu hình trên server , bao gồm localhost và bất kỳ địa chỉ IP nào liên quan đến Docker, vì vậy tốt nhất bạn nên chỉ định địa chỉ IP trong file này một cách rõ ràng. Cổng mặc định là 9000 , nhưng bạn có thể chọn cổng khác.

Cuối cùng, lưu file môi trường khi bạn thực hiện xong các thay đổi.

Minio hiện đã được cài đặt, vì vậy, tiếp theo, ta sẽ cấu hình server để chạy như một dịch vụ hệ thống.

Bước 2 - Cài đặt Tập lệnh khởi động Minio Systemd

Trong bước này, ta sẽ cấu hình server Minio được quản lý như một dịch vụ systemd. Trước tiên, download file mô tả dịch vụ Minio bằng lệnh sau:

  • curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service

Sau khi quá trình download hoàn tất, một file có tên minio.service sẽ nằm trong folder làm việc của bạn.

Để kiểm tra nội dung của minio.service trước khi áp dụng, hãy mở nó trong editor để xem nội dung của nó:

  • nano minio.service

Khi bạn đã hài lòng với nội dung của tập lệnh, hãy đóng editor văn bản của bạn.

Systemd yêu cầu các file đơn vị phải được lưu trữ trong folder cấu hình systemd, vì vậy hãy di chuyển minio.service đó:

  • sudo mv minio.service /etc/systemd/system

Sau đó, chạy lệnh sau để reload tất cả các đơn vị systemd:

  • sudo systemctl daemon-reload

Cuối cùng, kích hoạt Minio để bắt đầu khi server khởi động :

  • sudo systemctl enable minio

Bây giờ tập lệnh systemd đã được cài đặt và cấu hình, hãy khởi động server .

Bước 3 - Khởi động Server Minio

Trong bước này, bạn sẽ khởi động server và sửa đổi firewall để cho phép truy cập thông qua giao diện trình duyệt.

Đầu tiên, khởi động server Minio:

  • sudo systemctl start minio

Bạn có thể xác minh trạng thái của Minio, địa chỉ IP mà nó được liên kết, mức sử dụng bộ nhớ của nó và hơn thế nữa bằng lệnh:

  • sudo systemctl status minio

Bạn sẽ nhận được kết quả như sau:

Output
minio.service - Minio Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2017-04-07 00:26:10 UTC; 11min ago Docs: https://docs.minio.io Process: 25069 ExecStartPre=/bin/bash -c [ -n "${MINIO_VOLUMES}" ] || echo "Variable MINIO_VOLUMES not set in /etc/default/minio" (code=exit Main PID: 25073 (minio) Tasks: 6 Memory: 20.7M CPU: 544ms CGroup: /system.slice/minio.service └─25073 /usr/local/bin/minio server -C /etc/minio --address :9000 /usr/local/share/minio/ Apr 07 00:26:11 ashtonandgray minio[25073]: Browser Access: Apr 07 00:26:11 ashtonandgray minio[25073]: http://174.138.67.91:9000

Tiếp theo, bạn cần kích hoạt quyền truy cập thông qua firewall vào server Minio trên cổng đã cấu hình . Trong hướng dẫn này, đó là cổng 9000 .

Vì vậy, trước tiên hãy thêm luật :

  • sudo ufw allow 9000

Sau đó, khởi động lại firewall :

  • sudo systemctl restart ufw

Minio hiện đã sẵn sàng chấp nhận lưu lượng truy cập, nhưng trước khi kết nối với server , hãy bảo mật thông tin liên lạc bằng cách cài đặt certificate SSL / TLS.

Bước 4 - Bảo mật quyền truy cập vào server Minio với certificate Let's Encrypt SSL / TLS

Trong bước này, ta sẽ sử dụng ứng dụng tạo certificate dựa trên console , Concert , để tạo certificate SSL / TLS bằng cách sử dụng tổ chức phát hành certificate Let's Encrypt nguồn mở. Mặc dù có nhiều cách khác để tạo certificate Let's Encrypt, Concert đều do các nhà phát triển của Minio viết và là một phần của hướng dẫn cài đặt chính thức.

Đầu tiên, download Concert bằng lệnh:

  • go get -u github.com/minio/concert

Sau khi hoàn tất, file có tên concert sẽ nằm trong folder bin của GOPATH của bạn.

Tiếp theo, ta sẽ tạo certificate .

Lưu ý: Để tạo certificate , concert yêu cầu lưu lượng truy cập qua cổng 443 được phép thông qua firewall .

Chạy lệnh sau bằng cách sử dụng cờ --dirs để cho Concert biết folder kết quả , địa chỉ email và domain bạn muốn sử dụng:

  • sudo GOPATH/bin/concert gen --dir minio-certs sammy@example.com example.com

Đầu ra sẽ giống như sau:

Output
2017/04/09 01:21:08 Generated certificates for example.com under minio-certs will expire in 89 days.

Và, Concert sẽ tạo file private.keypublic.crt , bạn có thể xác minh bằng cách chạy ls trên folder bạn đã chỉ định.

Tiếp theo, ta sẽ sao chép hai file này vào folder certs trong folder cấu hình server của Minio, là /etc/minio cho hướng dẫn này.

  • sudo cp minio-certs/private.key /etc/minio/certs/
  • sudo cp minio-certs/public.crt /etc/minio/certs/

Bây giờ, hãy thay đổi quyền sở hữu file thành user nhỏ :

  • sudo chown minio-user:minio-user /etc/minio/certs/private.key
  • sudo chown minio-user:minio-user /etc/minio/certs/public.crt

Khởi động lại server Minio để nó nhận biết được certificate và bắt đầu sử dụng HTTPS:

  • sudo systemctl restart minio

Vì certificate Let's Encrypt được tạo chỉ có giá trị trong 90 ngày và việc gia hạn liên tục theo cách thủ công sẽ không hiệu quả, hãy bắt đầu Hòa nhạc ở chế độ server để cài đặt hệ thống tự động gia hạn certificate :

  • sudo concert server --dir minio-certs sammy@example.com example.com

Như vậy, kết nối của Minio hiện đã được bảo mật và certificate SSL / TLS sẽ tự động gia hạn cho bạn. Trong bước tiếp theo, bạn sẽ kết nối với Minio thông qua trình duyệt để sử dụng và quản trị server .

Bước 5 - Kết nối an toàn với giao diện web của Minio bằng HTTPS

Trong bước này, bạn sẽ kết nối an toàn với giao diện web Minio qua HTTPS, sau đó bạn sẽ tạo các group và tải các đối tượng vào chúng.

Truy cập giao diện web bằng cách trỏ trình duyệt của bạn tới https:// example.com : 9000 .

Tiếp theo, bạn cần tìm thông tin đăng nhập của bạn . Minio viết file cấu hình của nó đến /etc/minio folder khi bạn bắt đầu server trong Bước 3. Đó là file cấu hình, config.json , chứa accesskeysecretKey giá trị mà bạn cần phải truy cập vào server bây giờ. Đảm bảo sao chép và giữ cả hai khóa ở nơi dễ lấy và an toàn cho tương lai.

/etc/minio/config.json
{     "version": "19",     "credential": {         "accessKey": "8ngv6i97QZV959Y87Y007FP",         "secretKey": "C6hK8ytyBe3Q952bght65434JiZN08itG49jG5RX"     },     "region": "us-east-1",     ... } 

Bây giờ, đăng nhập vào giao diện chính bằng lệnh thông tin đăng nhập của bạn và nhấp vào nút tròn có mũi tên ngay bên dưới các trường nhập.

Từ đó, nhấp vào nút + màu đỏ nhạt ở dưới cùng bên phải của giao diện chính để hiển thị thêm hai nút màu vàng.

Giao diện chính của Minio

Nhấp vào nút ở giữa, màu vàng và nhập tên cho group mới của bạn trong dấu nhắc , nhấn phím ENTER để lưu câu trả lời của bạn. Thùng mới của bạn hiện đã sẵn sàng được sử dụng để lưu trữ!

Khi bạn muốn thêm các đối tượng vào group của bạn , hãy nhấp vào nút màu đỏ nhạt giống như trước đó, sau đó nhấp vào nút màu vàng trên cùng để mở dấu nhắc tải file lên.

Lưu ý: Một đối tượng trên server lưu trữ đối tượng Minio có thể có kích thước lên đến 5 TB — nhiều hơn nhiều so với một server DigitalOcean duy nhất có thể chứa — nhưng vớidịch vụ lưu trữ khối của DigitalOcean , bạn có thể mở rộng đáng kể dung lượng lưu trữ có sẵn cho server Minio độc lập của bạn .

Đến đây, bạn đã làm việc qua toàn bộ giao diện web cơ bản, nhưng ngoài việc chỉ tạo group và tải lên đối tượng, bạn còn có thể tạo thông tin đăng nhập mới, đặt ngày hết hạn trên các liên kết có thể chia sẻ của đối tượng và xóa hoàn toàn đối tượng.

Kết luận

Như vậy, bạn có server lưu trữ đối tượng của riêng mình bằng Minio mà bạn có thể kết nối an toàn từ giao diện web bằng certificate Let's Encrypt SSL / TLS. Theo tùy chọn, bạn có thể cần xem các máy khách Minio trên máy tính để bàn cho FreeBSD, Linux, Mac và Windows như một cách thay thế để sử dụng và quản trị server lưu trữ đối tượng của bạn.

Ngoài ra, nếu bạn muốn tăng dung lượng lưu trữ của cài đặt Minio vượt quá kích thước đĩa của server , bạn có thể sử dụngdịch vụ lưu trữ khối của DigitalOcean để đính kèm một dung lượng vào server của bạn, mở rộng dung lượng lưu trữ lên tới 80 TB với một phần chi phí quay tròn một server có kích thước bằng nhau.

Thông tin thêm về Minio có tại trang web tài liệu của dự án .


Tags:

Các tin liên quan

Cách chạy server MongoDB an toàn với OpenVPN và Docker trên Ubuntu 16.04
2017-03-24
Kết xuất phía server cơ bản với Vue.js và Express
2017-03-14
Cách thiết lập server VPN IKEv2 với StrongSwan trên Ubuntu 16.04
2017-02-17
Cách cấu hình firewall Linux cho Docker Swarm trên CentOS 7
2017-01-11
Cách cấu hình firewall Linux cho Docker Swarm trên Ubuntu 16.04
2017-01-09
Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP Stack) trên Debian 8
2016-12-20
Cách thiết lập xác thực Linux tập trung với FreeIPA trên CentOS 7
2016-12-15
Cách bảo vệ server của bạn chống lại lỗ hổng Linux COW bẩn
2016-10-31
Cách cấu hình TRIM định kỳ cho bộ lưu trữ SSD trên server Linux
2016-08-25
Cách bảo vệ server của bạn chống lại lỗ hổng HTTPoxy
2016-07-18