MinIO 是一款基于Go语言发开的高性能、分布式的对象存储系统。客户端支持Java,Net,Python,Javacript, Golang语言。
创新互联建站专业为企业提供长安网站建设、长安做网站、长安网站设计、长安网站制作等企业网站建设、网页设计与制作、长安企业网站模板建站服务,10余年长安做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
MinIO 英文官网MinIO 中文官网注意:中文官方更新不及时,会有很多坑,请以英文官网为准。
1、Object:存储到minio的基本对象,如文件,字节流,Anything。。。。
2、Bucket:用来存储Object的逻辑空间。每个Bucket之间的数据是互相隔离的。对于客户端而言,就相当于存放文件的顶层文件夹。
3、Drlve:存储数据的磁盘,在MinIO启动时,以参数的方式传入。MinIO中所有的对象数据都会存在Drive里。
4、Set:即一组 Drive的集合,分布式部署根据集群规模自动划分一个或者多个Set,每个Set中的Drive 分布在不同位置。一个对象存储在一个Set上。
4.1、一个对象存储在一个Set上。
4.2、一个集群划分为多个Set。
4.3、一个Set包含的Drive数量是固定的,默认由系统根据集群规模自动计算得出。
4.4、一个Set中的drive 尽可能分布在不同的节点上。
5、纠删码:Minio 使用纠删码机制来保证高可靠性。
5.1、使用highwayhash来处理数据损坏(Bit Rot Protectio)。关于纠删码,简单来说就是可以通过数学计算,把丢失的数据进行还原。
5.2、纠删码是恢复丢失和算怀数据的数学算法,minio采用reed-solomincode将对象拆分成N/2数据和N/2奇偶校验块。这就意味着如果是12块盘,一个对象会被分成6个数据快、6个奇偶校验块,你可以丢失任意6块盘(不管其存放的是数据块还是奇偶校验块),你任可以从剩下的盘中的数据进行恢复。
5.2、纠删码模式,把数据分成DATA BLOCk:数据块、PARITY BLOCK:校验块。一个BLOCK 10M左右,如果一个文件小于10M,就以文件大小进行分块。如果一个文件大于10m,就以10M为一个文件单位进行分块。
1、互联网非结构化数据的存储需求
1.1 、电商网站:海量商品图片
2.1、视频网站:海量视频文件
3.1、网盘:海量文件
1、数据保护
1.1、分布式MInio采用纠删码来放反多个节点待机和位衰减 bit rot
1.2、分布式Minio至少需要4个硬盘,使用分布式Minio自动引入了纠删码功能。
2、高可用
2.1、单机Minio服务存在单点故障,相反,如果是有一个N快硬盘的分布式Minio,只要有N/2硬盘在线,你的数据就是安全的。不过你需要至少有N/2+1个硬盘来创建新的对象。
2.2、例如,一个16节点的Minio集群,每个节点16块块硬盘,计算8台服务器宕机,这个集群仍然是可读的,不过你需要9台服务器才能写入数据。
3、一致性
3.1、Minio在分布式和单机模式下,所有读写炒作都严格遵守read-after-write 一致性模型
ps:初始用户名密码:minioadmin
1、下载linux minio,wget https://dl.min.io/server/minio/release/linux-amd64/minio
2、linux部署
修改用户名密码: export MINIO_ROOT_USER=username export MINIO_ROOT_PASSWORD=password 启动: ./minio server --console-address ":9090" /mnt/data 后台启动,指定日志路径: nohup ./minio server --console-address :"9090" ./miniodata/data >./miniodata/minio.log 2>&1 & ps:接口默认地址:9000 指定console端口:9090