今天小编就在欢快的编码,来了一个刚毕业的小嫩青,虚心求教到 对象存储服务到底有啥用?
说起这个对象存储服务,那家伙,那场面,那可是锣鼓喧天、鞭炮齐鸣
打住,打住,其实小编对于对象存储服务的理解是,为了提供数据、文件、图片、视频这一系列对象类型的的有效储存,通俗的讲,就有点类似平时用的网盘,只不过对于公司来说,往往都是一个专业的拥有巨大空间的存储产品。
尤其是过了千禧年之后,网络的普及让数据呈现爆炸式的增长。
同时,在互联网行业中,非结构化数据的占比开始逐渐增加,所谓的非机构化数据,就是指图像、音频、视频这样的数据,无法用二维表结构进行逻辑表达的数据。
然后各家公司都逐渐开始摸索对于对象存储服务的研究。
时间一转眼来到了2006年,美国Amazon公司发布了AWS S3(Simple Storage Service)服务,将对象存储作为一项云存储服务,引入云计算领域,一下子将对象存储服务推向了全世界,时至今日,AWS S3都是最流行的对象存储服务,事实上,AWS S3几乎可以说是对象存储服务行业的标杆。
随着云技术的发展,越来越多的云厂商开始开展自己的对象存储服务,像阿里云的OSS、华为云的OBS、腾讯云的COS、百度的BOS、网易的NOS,这年头谁要是没个自己的对象存储服务,都不好意思出门打招呼说自己是个互联网巨头~
就在小编还在滔滔不绝的跟小嫩青讲着对象存储服务的前世今生、未来趋势时,她弱弱的问了一句,那有没有什么自己可以搭建的对象存储服务,让我试一试?
敢情套了半天近乎,原来是要小编做苦力啊,不过小编一向是个对于新(女)人(生)乐(无)于(法)助(拒)人(绝)的前辈,于是赶紧拿出这款私藏很久的开源高性能对象存储服务,MinIO,跟小嫩青和大家一起分享下~
MinIO,是一款基于Go语言的,使用Apache License v2.0开源协议,与AWS S3可完美兼容的高性能对象存储服务,既可以自己直接作为对象存储服务使用,也可以和其他一些主流服务组件配合工作。
MinIO,提供不同的部署方式,对于一些初学者和初期的项目,可以直接使用相对简答的单机部署。
除了单机部署,MinIO还提供分布式部署这一概念,分布式部署额外提供了一些单机部署不具备的功能,像是版本控制、对象锁定、纠删代码等。
export MINIO_ROOT_USER=<ACCESS_KEY>export MINIO_ROOT_PASSWORD=<SECRET_KEY>minio server http://host{1...n}/export{1...m}
安装服务的方式也有很多种,可以下载源码使用IDEA导入配置后运行,也可以使用Docker安装MinIO镜像。
以Docker为例:
单机部署,先下载相关镜像,然后直接安装,命令如下:
mac和linux版
docker run -p 9000:9000 -p 9001:9001 --name minio1 -v /mnt/data:/data -e "MINIO_ROOT_USER=minioadmin" -e "MINIO_ROOT_PASSWORD=minioadmin" quay.io/minio/minio server /data --console-address ":9001"
windows版
docker run -p 9000:9000 -p 9001:9001 --name minio1 -v D:data:/data -e "MINIO_ROOT_USER=minioadmin" -e "MINIO_ROOT_PASSWORD=minioadmin" quay.io/minio/minio server /data --console-address ":9001"
分布式部署,linxu和mac版
docker run -p 9000:9000 -p 9001:9001 --name minio1 -e "MINIO_ROOT_USER=minioadmin" -e "MINIO_ROOT_PASSWORD=minioadmin" -v /mnt/data:/data quay.io/minio/minio server /data --console-address ":9001"
windows版
docker run -p 9000:9000 -p 9001:9001 --name minio1 -e "MINIO_ROOT_USER=minioadmin" -e "MINIO_ROOT_PASSWORD=minioadmin" -v D:data:/data quay.io/minio/minio server /data --console-address ":9001"
一旦安装运行成功后就可访问MinIO Console的管理界面了。
默认的账户密码是,minioadmin:minioadmin
我们可以使用MinIO Console来测试部署情况,也可以用MinIO Console创建存储桶、上传对象和浏览服务器内容。
MinIO还提供了一套UNIX命令的替代品,方便用户操作:
命令作用alias在配置文件中设置、删除和列出别名ls列出存储桶和对象mb做个存储桶rb移除存储桶cp复制对象mirror将对象同步到远程站点cat显示对象内容head显示对象的前“n”行pipe流STDIN到一个对象share为临时访问对象生成URLfind搜索对象sql对对象运行sql查询stat显示对象元数据mv移动对象tree以树格式列出存储桶和对象du递归地所以磁盘使用情况retention设置对象的保留期legalhold设置对象的合法保留diff列出两个存储桶之间对象名称、大小和日期的差异rm移除对象encrypt管理bucket加密配置event管理对象通知watch侦听对象通知事件undo撤消放置/删除操作policy管理对存储桶和对象的匿名访问tag管理存储桶和对象的标记ilm管理存储桶生命周期version管理bucket版本控制replicate配置服务器端bucket复制admin管理小型服务器update将mc更新至最新版本