自己搭建个对象存储服务难不难?
今天小编就在欢快的编码,来了一个刚毕业的小嫩青,虚心求教到 对象存储服务到底有啥用?
说起这个对象存储服务,那家伙,那场面,那可是锣鼓喧天、鞭炮齐鸣
打住,打住,其实小编对于对象存储服务的理解是,为了提供数据、文件、图片、视频这一系列对象类型的的有效储存,通俗的讲,就有点类似平时用的网盘,只不过对于公司来说,往往都是一个专业的拥有巨大空间的存储产品。
尤其是过了千禧年之后,网络的普及让数据呈现爆炸式的增长。
同时,在互联网行业中,非结构化数据的占比开始逐渐增加,所谓的非机构化数据,就是指图像、音频、视频这样的数据,无法用二维表结构进行逻辑表达的数据。
然后各家公司都逐渐开始摸索对于对象存储服务的研究。
时间一转眼来到了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 | 为临时访问对象生成URL |
find | 搜索对象 |
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更新至最新版本 |
MinIO还有很多深奥的操作,等着小伙伴们一起发掘,不多说啦,小编要去帮小嫩青装版本去了~要一起研究使用的小伙伴,赶紧一起:
点击下方卡片,关注公众号“TJ君”
回复“对象存储”,获取仓库地址
往期推荐
大家好,我是TJ
一个励志推荐10000款开源项目与工具的程序员
欢迎关注我,了解多好玩、有趣的科技资讯