欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-05 08:57:48
...

什么是MinIO ?

根据官方定义:

  1. MinIO 是在 Apache License v2.0 下发布的对象存储服务器。 它与 Amazon S3 云存储服务兼容。 它最适合存储非结构化数据,如照片,视频,日志文件,备份和容器/ VM 映像。 对象的大小可以从几 KB 到最大 5TB。
  1. MinIO 服务器足够轻,可以与应用程序堆栈捆绑在一起,类似于 NodeJS,Redis 和 MySQL。
  2. 一种高性能的分布式对象存储服务器,用于大型数据基础设施。它是机器学习和其他大数 据工作负载下 Hadoop HDFS 的理想 s3 兼容替代品。

为什么需要MinIO?

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

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

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

Ceph

优点

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

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

Minio

优点

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

缺点

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

    FastDFS

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

如何安装使用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已经安装成功。

什么?OSS存储你还在用FastDFS?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目录下的数据都可以被客户端访问到。

上述描述对所有网关后端同样有效。

了解更多

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

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