开源对象存储Minio部署篇
简介: MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。(摘自minio中文站点https://docs.min.io/cn/ 里面有很详细的介绍)。minio部署简单易用,分布式方式部署可以水平扩容且数据分散存储在所有节点上,只要在线节点N/2数据就非常安全,这类似raid6,不同的是卷级别和对象级别,使用方式有网页端、linux端工具mc、多语言SDK。
部署示例
-
Minio按照不同系统环境下载新的包 https://docs.min.io/cn/minio-quickstart-guide
资源配置:
服务器:4台
系 统:centos7.1
先在4台机器上创建存放minio数据的目录,最好是单独的数据盘mkdir /data/minio_data
创建存放minio程序的目录mkdir /usr/local/minio
把minio程序放到部署目录
官方启动方式export MINIO_ROOT_USER=<ACCESS_KEY> export MINIO_ROOT_PASSWORD=<SECRET_KEY> minio server http://host{1...n}/export{1...m} http://host{o...z}/export{1...m}
为了方便启动可以在程序目录下创建一个start.sh脚本文件vim /usr/local/minio/start.sh
#!/bin/bash export MINIO_ACCESS_KEY=vnsjhjakjvbnsnvuj8bh #所有节点上秘钥必须一致,否则无法集群通信,访问minio时也是用这个秘钥 export MINIO_SECRET_KEY=vn85oenvs854gpwnv8s9p5hjbs9eg5wpj5 /usr/local/minio/minio server http://172.16.1.1/data/minio_data \ #minio启动方式,写上所有节点的ip地址和磁盘数据路径 http://172.16.1.2/data/minio_data \ http://172.16.1.3/data/minio_data \ http://172.16.1.4/data/minio_data
启动之后默认端口9000,浏览器可直接访问这个端口
浏览器访问输入秘钥就可以访问了
因为是做的4节点分布式部署,可以加个nginx代理到4个节点,nginx配置如下(为了数据传输安全做了https):
配置如下:ip_hash; server 172.16.1.1:9000; server 172.16.1.2:9000; server 172.16.1.3:9000; server 172.16.1.4:9000; } server { listen 80; server_name oss.a.com; return 301 https://oss.a.com/$request_uri; } server { listen 443; server_name oss.a.com; index index.html; charset utf-8; ssl on; ssl_certificate a.com.crt; ssl_certificate_key a.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE; ssl_prefer_server_ciphers on; rewrite_log on; access_log /data/logs/nginx/minio.access.log main; error_log /app/logs/nginx/minio.error.log; location ~ / { proxy_pass http://minio; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }