Minio

MinIO 的分布式部署

旧街凉风 提交于 2021-02-17 09:04:15
高可用分布式对象存储,MinIO 轻松实现。 1 前言 上一篇文章 介绍了使用对象存储工具 MinIO 搭建一个优雅、简单、功能完备的静态资源服务,可见其操作简单,功能完备。但由于是单节点部署,难免会出现单点故障,无法做到服务的高可用。MinIO 已经提供了分布式部署的解决方案,实现高可靠、高可用的资源存储,同样的操作简单,功能完备。本文将对 MinIO 的分布式部署进行描述,主要分以下几个方面: 分布式存储的可靠性 MinIO 的分布式的存储机制 分布式部署实践 2 分布式存储可靠性常用方法 分布式存储,很关键的点在于数据的可靠性,即保证数据的完整,不丢失,不损坏。只有在可靠性实现的前提下,才有了追求一致性、高可用、高性能的基础。而对于在存储领域,一般对于保证数据可靠性的方法主要有两类,一类是冗余法,一类是校验法。 2.1 冗余 冗余法最简单直接,即对存储的数据进行副本备份,当数据出现丢失,损坏,即可使用备份内容进行恢复,而副本 备份的多少,决定了数据可靠性的高低。这其中会有成本的考量,副本数据越多,数据越可靠,但需要的设备就越多,成本就越高。可靠性是允许丢失其中一份数据。当前已有很多分布式系统是采用此种方式实现,如 Hadoop 的文件系统(3个副本),Redis 的集群,MySQL 的主备模式等。 2.2 校验 校验法即通过校验码的数学计算的方式,对出现丢失

大型分布式存储方案MinIO介绍,看完你就懂了!

点点圈 提交于 2021-01-29 09:23:39
1、MinIO是什么? 官方解释:MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。 2、MinIO有哪些优势? 2.1 开发文档全面 MinIO作为一款基于Golang 编程语言开发的一款高性能的分布式式存储方案的开源项目,有十分完善的官方文档。。 官网文档地址:https://docs.min.io/cn/ 2.2 高性能 MinIO号称是目前速度最快的对象存储服务器。在标准硬件上,对象存储的读/写速度最高可以高达183 GB/s和171 GB/s。对象存储可以作为主存储层,用来处理Spark、Presto、TensorFlow、H2O.ai等各种复杂工作负载以及成为Hadoop HDFS的替代品。 MinIO用作云原生应用程序的主要存储,和传统对象存储相比,云原生应用程序需要更高的吞吐量和更低的延迟。而这些都是MinIO能够达成的性能指标。 2.3 支持全面 目前MinIO支持市面主流的开发语言并且可以通过SDK快速集成快速集成使用。 2.4 AWS

大型分布式存储方案MinIO介绍,看完你就懂了!

。_饼干妹妹 提交于 2021-01-28 05:12:31
1、MinIO是什么? 官方解释:MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。 2、MinIO有哪些优势? 2.1 开发文档全面 MinIO作为一款基于Golang 编程语言开发的一款高性能的分布式式存储方案的开源项目,有十分完善的官方文档。。 官网文档地址:https://docs.min.io/cn/ 2.2 高性能 MinIO号称是目前速度最快的对象存储服务器。在标准硬件上,对象存储的读/写速度最高可以高达183 GB/s和171 GB/s。对象存储可以作为主存储层,用来处理Spark、Presto、TensorFlow、H2O.ai等各种复杂工作负载以及成为Hadoop HDFS的替代品。 MinIO用作云原生应用程序的主要存储,和传统对象存储相比,云原生应用程序需要更高的吞吐量和更低的延迟。而这些都是MinIO能够达成的性能指标。 2.3 支持全面 目前MinIO支持市面主流的开发语言并且可以通过SDK快速集成快速集成使用。 2.4 AWS

分享一款炒鸡好用的网盘+文件服务器

拥有回忆 提交于 2021-01-22 10:06:36
点击▲关注 “ 爪哇笔记 ” 给公众号标星置顶 更多精彩 第一时间直达 前言 在之前的图床开发中撸主曾使用了分布式文件服务 FASTDFS 和阿里云的 OSS 对象存储来存储妹子图。奈何OSS太贵, FASTDFS 搭建配置又太繁琐,今天给大家推荐一款极易上手的高性能对象存储服务 MinIO 。 简介 MinIO 是高性能的对象存储,兼容 Amazon S3 接口,充分考虑开发人员的需求和体验;支持分布式存储,具备高扩展性、高可用性;部署简单但功能丰富。官方的文档也很详细。它有多种不同的部署模式(单机部署,分布式部署)。 为什么说 MinIO 简单易用,原因就在于它的启动、运行和配置都很简单。可以通过 docker 方式进行安装运行,也可以下载二进制文件,然后使用脚本运行。 安装 推荐使用 docker 一键安装: docker run -it -p 9000 : 9000 --name minio \ -d --restart=always \ -e "MINIO_ACCESS_KEY=admin" \ -e "MINIO_SECRET_KEY=admin123456" \ -v /mnt/minio/data:/data \ -v /mnt/minio/config:/root/.minio \ minio/minio server /data 注意: 密钥必须大于8位

MinIO对象存储服务

蹲街弑〆低调 提交于 2021-01-12 14:34:34
MinIO 介绍 MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。 中文官网地址: https://docs.min.io/cn/ 开源中国也收录了该软件: https://www.oschina.net/p/minio 特点 分布式Minio可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式Minio避免了单点故障。 在大数据领域,通常的设计理念都是无中心和分布式。Minio分布式模式可以帮助你搭建一个高可用的对象存储服务,你可以使用这些存储设备,而不用考虑其真实物理位置。 数据保护 分布式Minio采用 纠删码 来防范多个节点宕机和 位衰减 bit rot 。 分布式Minio至少需要4个硬盘,使用分布式Minio自动引入了纠删码功能。 高可用 单机Minio服务存在单点故障,相反,如果是一个有 m 台服务器, n 块硬盘的分布式Minio,只要有 m/2 台服务器或者 m*n /2 及更多硬盘在线

别在网上乱找代码了,这段代码突然爆了!!!

 ̄綄美尐妖づ 提交于 2020-12-24 03:22:47
作者:陈宏鸿 来源: www.cnblogs.com/aspwebchh/p/12220673.html 本人是做游戏服务器开发的,碰到一个需求,给符某些要求的玩家的发送道具奖励,奖励的数量根据离线的天数计算。 这个需求实现起来很简单,只需要在玩家上线的时候计算上次离线时间和当前时间间隔的天数,然后根据策划的算法,计算出道具种类与数量,发一封邮件给玩家就可以了。 计算两个时间间隔天数的函数没有现成的,自己又懒得写,就上谷歌搜了下,选了第一条结果,代码如下: public static int differentDays ( Date date1,Date date2 ) { Calendar cal1 = Calendar.getInstance(); cal1.setTime(date1); Calendar cal2 = Calendar.getInstance(); cal2.setTime(date2); int day1= cal1. get (Calendar.DAY_OF_YEAR); int day2 = cal2. get (Calendar.DAY_OF_YEAR); int year1 = cal1. get (Calendar.YEAR); int year2 = cal2. get (Calendar.YEAR); if (year1 != year2)

谁杀了我的进程-从残缺的日志中脑补案发现场

本秂侑毒 提交于 2020-12-10 07:09:31
谁杀了我的进程-从残缺的日志中脑补案发现场 2020年12月8日晚,现场同学联系我们,我们用到的对象存储MinIO又宕了,进程都没了,赶紧查是怎么回事。于是我和家银、至荣、忠迪又屁颠屁颠的和现场同学一起查问题。 问题描述 MinIO进程没了,大概是下午18点发现的。 排查方向 进程没了,无外乎是三种情况 MinIO自己进程宕了 操作系统把进程杀了,可以通过 dmesg 以及操作系统日志去排查 人为杀的,可以通过 history 命令查一下 问题分析 日志收集 进程如果宕了,按照上面的原因推理,应该从三方面收集日志。 MinIO日志 goroutine 6379292 [IO wait, 3 minutes]: int ernal/poll.runtime_pollWait( 0x7f3bba8ca000 , 0x72 , 0xffffffffffffffff ) runtime/netpoll.go: 203 + 0x55 int ernal/poll.(*pollDesc).wait( 0xc003c39b18 , 0x72 , 0x1000 , 0x1000 , 0xffffffffffffffff ) int ernal/poll/fd_poll_runtime.go: 87 + 0x45 int ernal/poll.(*pollDesc).waitRead(...)

分布式存储Minio集群环境搭建

断了今生、忘了曾经 提交于 2020-12-05 09:10:15
MinIO 分布式集群搭建 分布式 Minio 可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障。 Minio 分布式模式可以搭建一个高可用的对象存储服务,你可以使用这些存储设备,而不用考虑其真实物理位置。 (1)数据保护 分布式 Minio 采用纠删码(erasure code)来防范多个节点宕机和位衰减(bit rot)。 分布式 Minio 至少需要 4 个节点,使用分布式 Minio 就自动引入了纠删码功能。 纠删码是一种恢复丢失和损坏数据的数学算法, Minio 采用 Reed-Solomon code 将对象拆分成 N/2 数据和 N/2 奇偶校验块。 这就意味着如果是 12 块盘,一个对象会被分成 6 个数据块、6 个奇偶校验块,你可以丢失任意 6 块盘(不管其是存放的数据块还是奇偶校验块),你仍可以从剩下的盘中的数据进行恢复。 纠删码的工作原理和 RAID 或者复制不同,像 RAID6 可以在损失两块盘的情况下不丢数据,而 Minio 纠删码可以在丢失一半的盘的情况下,仍可以保证数据安全。 而且 Minio 纠删码是作用在对象级别,可以一次恢复一个对象,而RAID 是作用在卷级别,数据恢复时间很长。 Minio 对每个对象单独编码,存储服务一经部署,通常情况下是不需要更换硬盘或者修复

构建家用NAS过程中的碎碎念

有些话、适合烂在心里 提交于 2020-11-28 08:40:17
同步自我的博客: 构建家用NAS过程中的碎碎念 同步自我的博客: https://blog.tsingjyujing.com/other-tech/nas ​ blog.tsingjyujing.com 前言 最近存储告急,要给自己的数据找个家,所以开始琢磨NAS的事情,购买,搭建NAS的时候,阅读了很多资料,也发现了不少坑,留在这里,给大家参考。 本文可以看作一个组建自宅或者小型企业使用NAS的入门手册,很多措施或因地制宜、或需要有效利用已有的电子产品,稳定性也并非最优,因此并不适用较大规模的商业场景。 NAS是? 网络附加存储(英语:Network Attached Storage,缩写:NAS),粗略的说,就是可以网络访问的一个硬盘。如果你没有概念,可以先阅读一下Wiki: NAS 维基百科 ,如果你没法翻墙,可以阅读: NAS 百度百科 。 在我来看,NAS就是一台电脑,只是这台电脑装着比别的电脑多得多的硬盘,并且利用厂商开发的特殊软件完成一些特殊功能。对于一个工程师来说,用旧电脑(台式机,可容纳多块硬盘才行)DIY一个NAS可能更加便宜和可玩,我手头没有这样的旧电脑,也忙于其它事情不愿花几周去折腾(其实折腾过了),所以就买了一台NAS。 你是不是需要NAS? 从数据量和性质上考虑 那么你是否需要NAS呢?如果: 你有大量(我的理解是超过300G)的静态数据

使用velero去备份k8s集群

心已入冬 提交于 2020-10-29 09:11:19
先决条件: k8s>1.10,主要考虑restic的兼容性 集群内部署dns 已经安装kubectl velero安装 下载velero wget https://github.com/vmware-tanzu/velero/releases/download/v1.5.2/velero-v1.5.2-linux-amd64.tar.gz tar -zxvf velero-v1.5.2-linux-amd64.tar.gz mvmv velero-v1.5.2-linux-amd64 velero cd velero cp velero /usr/local/bin/ velero version [root@docker1 velero]# velero version Client: Version: v1.5.2 Git commit: e115e5a191b1fdb5d379b62a35916115e77124a4 Server: Version: v1.5.2 命令补全 类k8s命令补全。 source <(velero completion ) 部署velero服务 ​ 由于默认minion只暴露了clusterip,但是通过velero命令时,实际上会本地主机产生交互,所以我暴露出了velero主机的nodeport。 修改配置文件。 进入example/minio