什么?OSS存储你还在用FastDFS?MinIO了解一下!!!

什么是MinIO ?

根据官方定义:java

  1. MinIO 是在 Apache License v2.0 下发布的对象存储服务器。 它与 Amazon S3 云存储服务兼容。 它最适合存储非结构化数据,如照片,视频,日志文件,备份和容器/ VM 映像。 对象的大小能够从几 KB 到最大 5TB。node

  2. MinIO 服务器足够轻,能够与应用程序堆栈捆绑在一块儿,相似于 NodeJS,Redis 和 MySQL。linux

  3. 一种高性能的分布式对象存储服务器,用于大型数据基础设施。它是机器学习和其余大数 据工做负载下 Hadoop HDFS 的理想 s3 兼容替代品。git

为何须要MinIO?

  1. Minio 有良好的存储机制
  2. Minio 有很好纠删码的算法与擦除编码算法
  3. 拥有RS code 编码数据恢复原理
  4. 公司作强作大时,数据的拥有重要性,对数据治理与大数据分析作准备。
  5. 搭建本身的一套文件系统服务,对文件数据进行安全保护。
  6. 拥有本身的平台,不限于其余方限制。

MinIO 和其余OSS存储解决方案各有什么优缺点?

这里主要针对Ceph、Minio、FastDFS 热门的存储解决方案进行比较。程序员

Ceph

优势github

  • 成熟
  • 红帽继子,ceph创始人已经加入红帽
  • 国内有所谓的ceph中国社区,私人机构,不活跃,文档有滞后,并且没有更新的迹象。
  • 从git上提交者来看,中国有几家公司的程序员在提交代码,星辰天合,easystack, 腾讯、阿里基于ceph在作云存储,可是在开源社区中不活跃,阿里一位叫liupan的有参与
  • 功能强大
  • 支持数千节点
  • 支持动态增长节点,自动平衡数据分布。(TODO,须要多长时间,add node时是否能够不间断运行)
  • 可配置性强,可针对不一样场景进行调优

缺点 学习成本高,安装运维复杂。golang

Minio

优势算法

  • 学习成本低,安装运维简单,开箱即用
  • 目前minio论坛推广给力,有问必答
  • 有java客户端、js客户端
  • 数据保护:分布式Minio采用 纠删码来防范多个节点宕机和位衰减bit rot。分布式Minio至少须要4个硬盘,使用分布式Minio自动引入了纠删码功能。
  • 一致性:Minio在分布式和单机模式下,全部读写操做都严格遵照read-after-write一致性模型。

缺点docker

  • 社区不够成熟,业界参考资料较少
  • 不支持动态增长节点,minio创始人的设计理念就是动态增长节点太复杂,后续会采用其它方案来支持扩容。

FastDFS

fastdfs是阿里余庆作的一个我的项目,在一些互联网创业公司中有应用,没有官网,不活跃,6个contributors。shell

如何安装使用MinIO?

基于 Docker 容器使用

  • 稳定版
docker pull minio/minio
docker run -p 9000:9000 minio/minio server /data
  • 尝鲜版
docker pull minio/minio:edge
docker run -p 9000:9000 minio/minio:edge server /data

基于 Mac Homebrew 使用

brew install minio/stable/minio
minio server /data

下载二进制文件安装使用

操做系统 CPU架构 地址
Apple macOS 64-bit Intel https://dl.min.io/server/minio/release/darwin-amd64/minio
chmod 755 minio
./minio server /data

GNU/Linux

下载二进制文件

操做系统 CPU架构 地址
GNU/Linux 64-bit Intel https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data

微软Windows系统

下载二进制文件

操做系统 CPU架构 地址
微软Windows系统 64位 https://dl.min.io/server/minio/release/windows-amd64/minio.exe
minio.exe server D:\Photos

FreeBSD

Port

使用 pkg进行安装。

pkg install minio
sysrc minio_enable=yes
sysrc minio_disks=/home/user/Photos
service minio start

使用源码安装

采用源码安装仅供开发人员和高级用户使用,若是你尚未Golang环境, 请参考 How to install Golang.

go get -u github.com/minio/minio

使用MinIO浏览器进行验证

安装后使用浏览器访问http://127.0.0.1:9000,若是能够访问,则表示minio已经安装成功。

使用MinIO客户端 mc进行验证

mc 提供了一些UNIX经常使用命令的替代品,像ls, cat, cp, mirror, diff这些。 它支持文件系统和亚马逊S3云存储服务。 更多信息请参考 mc快速入门 - https://docs.min.io/docs/minio-client-quickstart-guide

已经存在的数据

当在单块磁盘上部署MinIO server,MinIO server容许客户端访问数据目录下已经存在的数据。好比,若是MinIO使用minio server /mnt/data启动,那么全部已经在/mnt/data目录下的数据均可以被客户端访问到。

上述描述对全部网关后端一样有效。

了解更多

本文由博客一文多发平台 OpenWrite 发布!

相关文章
相关标签/搜索