对象存储MinIO的简介与部署

news2024/11/17 13:47:32

湖蓝几何球体LinkedIn Banner.png
转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


相关文章推荐:
记录一次跨越16个月的minio版本升级与数据迁移
MinIO集群怎么接入Prometheus监控?(上)
MinIO集群怎么接入Prometheus监控?(下)

MinIO简介

MinIO 是一款高性能的对象存储,与 Amazon S3 云存储服务兼容。
自成立以来,MinIO的软件定义套件在公共云、私有云和边缘云中无缝运行,使其成为混合云和多云对象存储领域的领导者。
MinIO号称是世界上最快的对象存储服务器。在标准硬件上,对象存储的读写速度分别为183gib/s和171gib/s。对象存储可以作为主存储层,用来处理Spark、Presto、TensorFlow、H2O.ai等各种复杂工作负载以及成为Hadoop HDFS的替代品。
image.png

MinIO的特点:

1、适合存储大容量非结构化的数据,如图片,视频,日志文件;
2、一个对象文件可以任意大小,从几 KB 到最大的 5T 不等;
3、非常轻量,可以很简单的和其它的应用结合,类似于 NodeJS, Redis 或者 MySQL
4、MinIO 默认不计算 MD5 ,除非传输给客户端的时候,所以很快;
5、支持 windows;
6、有 web 页进行管理,命令行和控制台双重管理;
7、分布式集群支持动态升级;
8、如数据不调接口写入,而是直接写数据目录,集群数据可能不同步(如果rancher部署,则可考虑结合Longhorn解决)

MinIO的官网:

MinIO官方文档非常详细,但一定要看它的英文版文档(https://docs.min.io/docs/),中文版文档(http://docs.minio.org.cn/docs)比较陈旧,新版本MinIO的信息没有完全更新。
比如用mc命令删除存储桶,中文版文档写的用rm,而新版本的MinIO要用rb才能删除存储桶。
image.png

MinIO架构:

MinIO除了Server,还有Clinet。MinIO Client (mc)为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)。
mc常用命令:

alias       set, remove and list aliases in configuration file
ls          list buckets and objects
mb          make a bucket
rb          remove a bucket
cp          copy objects
mirror      synchronize object(s) to a remote site
cat         display object contents
head        display first 'n' lines of an object
pipe        stream STDIN to an object
share       generate URL for temporary access to an object
find        search for objects
sql         run sql queries on objects
stat        show object metadata
mv          move objects
tree        list buckets and objects in a tree format
du          summarize disk usage recursively
retention   set retention for object(s) and bucket(s)
legalhold   set legal hold for object(s)
diff        list differences in object name, size, and date between two buckets
rm          remove objects
version     manage bucket versioning
ilm         manage bucket lifecycle
encrypt     manage bucket encryption config
event       manage object notifications
watch       listen for object notification events
undo        undo PUT/DELETE operations
policy      manage anonymous access to buckets and objects
tag         manage tags for bucket(s) and object(s)
replicate   configure server side bucket replication
admin       manage MinIO servers
update      update mc to latest release

MinIO Admin
MinIO Client(mc)提供了“ admin”子命令来对MinIO部署执行管理任务。
常用命令:

service     restart and stop all MinIO servers
update      update all MinIO servers
info        display MinIO server information
user        manage users
group       manage groups
policy      manage policies defined in the MinIO server
config      manage MinIO server configuration
heal        heal disks, buckets and objects on MinIO server
profile     generate profile data for debugging purposes
top         provide top like statistics for MinIO
trace       show http trace for MinIO server
console     show console logs for MinIO server
prometheus  manages prometheus config
kms         perform KMS management operations
bucket      manage buckets defined in the MinIO server

MinIO部署(二进制部署)

1、二进制单节点部署(生产不建议单节点):

image.png

MinIO-Server部署:

1)创建minIO的安装目录和数据目录:

mkdir /home/minio/{app,data} -p

2)下载minIO并赋予执行权限:

cd /home/minio/app
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio

3)启动应用

MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=mypassword /home/minio/app/minio server /home/minio/data --console-address ":9001" &

启动参数说明:
MINIO_ROOT_USER:设置管理员用户,如未指定,默认为minioadmin
MINIO_ROOT_PASSWORD:设置管理员密码,如未指定,默认为minioadmin
MINIO_ROOT_USER和MINIO_ROOT_PASSWORD两个参数值就是在web控制台登录minIO时使用的账号密码。
–console-address “:9001”:指定控制台静态端口
minio有两个端口,固定端口9000是API端口;前端访问的console端口默认随机启动的一个动态端口,如果希望使用固定端口,就需要在启动时加上–console-address参数指定端口。
如果没有指定–console-address,执行启动命令后在控制台输出的日志中会有如下提示:

WARNING: Console endpoint is listening on a dynamic port (34513), please use --console-address ":PORT" to choose a static port.

image.png

查看版本号

[root@test-67 home]# ./minio -version
minio version RELEASE.2021-12-10T23-03-39Z
[root@test-67 home]#
MinIO-Client部署:
wget https://dl.min.io/client/mc/release/linux-amd64/mc 
chmod +x mc 
mv mc /usr/bin
mc alias set myminio http://10.88.99.67:9000 admin mypassowrd  #admin和password是在部署server时设置的

用mc查看目录:
image.png

2、docker方式部署单节点MinIO

MinIO-Server部署:

mkdir -p /home/minio/data   #创建本地数据目录

docker run \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio1 \
  -v /home/minio/data:/data \
  -e "MINIO_ROOT_USER=admin" \
  -e "MINIO_ROOT_PASSWORD=mypassword" \
  quay.io/minio/minio server /data --console-address ":9001"

如果离线部署,就将命令中quay.io/minio/minio换成私有镜像,如:

docker run -d --privileged --restart=unless-stopped \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio \
  -v /home/minio/data:/data \
  -e "MINIO_ROOT_USER=admin" \
  -e "MINIO_ROOT_PASSWORD=mypassword" \
  www.harbor.com/library/minio:RELEASE.2021-12-10T23-03-39Z server /data --console-address ":9001"

www.harbor.com: 私有harbor域名
library:项目名称
minio:RELEASE.2021-12-10T23-03-39Z:我自己重新打了tag的镜像

MinIO-Client部署:

docker run -it --entrypoint=/bin/sh minio/mc  #私有仓库部署也注意换镜像

部署验证

在浏览器输入http://10.88.99.67:9001 即可访问,登录用户和密码即启动命令中MINIO_ROOT_USER和MINIO_ROOT_PASSWORD的value值。
image.png
登录后,能看到当前节点数量:
image.png
这里显示的是当前资源使用状况:
image.png

MinIO的简单使用

1、创建Bucket

方法一:浏览器控制台创建:
image.png
image.png

方法二:用mc命令行创建:

mc mb /home/minio/data/test

2 文件上传

方法一:浏览器控制台上传
创建好Bucket之后,点击“Browse”按钮可以进入文件上传界面:
image.png
点击下图上传按钮即可上传文件:
image.png

方法二:客户端mc命令行上传文件:
1)将要上传的文件放到服务器,如SRE.jpg
2)执行命令上传:

mc cp SRE.jpg myminio/test

注释:因为部署mc时有设置alias:mc alias set myminio http://10.88.99.67:9000 admin mypassowrd,所以这里可以直接用myminio/test

操作截图:
image.png

对单节点,还可以直接上传文件到数据目录(不建议):

mc cp SRE.jpg /home/minio/data/test/

操作截图:
image.png

到浏览器控制台检查文件(如果是上传到的数据目录,时间可能有一定的延迟,上传完之后,需要等一下才会看到):
image.png

点击上图文件右边的“分享”按钮,可以形成该文件的分享链接(注意:这里链接中的端口是9000,不是9001了哦),并自定义链接的有效期,最长是7天:
image.png

拿到URL在浏览器就可以看到刚刚的文件:
image.png

3 文件删除

方法一:浏览器控制台删除
image.png
方法二:mc命令删除

mc rm myminio/test/SRE.jpg     #删除一个文件
mc rb myminio/test --force   #删除一个Bucket要用rb,rm删不掉Bucket,
# 注意:删除一个存储桶并递归删除里面所有的内容。由于这个操作太危险了,你必须加--force参数指定强制

image.png

4 创建和删除用户

方法一:控制台界面创建新用户
image.png

方法二:命令行用admin创建
和centos创建用户一样,可以一键创建,也可以交互式创建

[root@test-67 minio]# mc admin user add myminio/ minio67 pwd-minio67 #一键创建
Added user `minio67` successfully.
[root@test-67 minio]# 
[root@test-67 minio]# mc admin user add myminio/ 
Enter Access Key: minio67-1   #输入username
Enter Secret Key:             #输入密码
Added user `minio67-1` successfully.
[root@test-67 minio]#

创建好用户后,在控制台可以看到,并可以执行删除、编辑修改等操作:
image.png

上面两条命令只单纯创建了一个用户,没有添加任何的权限策略,加上权限策略:

mc admin policy set myminio/ writeonly user=minio67  #权限为writeonly

image.png

命令行删除用户

mc admin user remove myminio/ minio67

image.png

这就是单节点MinIO的部署和简单操作。

参考:
官网文档:https://docs.min.io/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1376387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3、vue2文件导入事件

一、vue3写法 1、html部分 <el-buttontype"info"plainicon"Upload"click"handleImport"v-hasPermi"[system:user:import]">导入</el-button><!-- 导入对话框 --><el-dialog :title"upload.title" v-…

如何使用网络测试仪构造特殊流量

为什么要仿真特殊流量 在现网中&#xff0c;网络流量时常伴随着突发&#xff0c;突发流量可能会造成网络的拥塞&#xff0c;从而产生丢包、抖动和时延&#xff0c;导致网络服务质量整体下降。面对宏观上的突发&#xff0c;通常采用在网络设备入向限速或者流量整形功能来消除突…

【Vue】引入路径正确,不影响正常运行但文件爆红

现象&#xff1a;引入路径正确但文件爆红&#xff0c;不影响运行但不美观&#xff08;按住Ctrl可以跳转到该文件&#xff0c;关闭后过段时间再打开还是爆红&#xff09; 原因 &#xff08;1&#xff09;相对路径使用了不正确的大小写 &#xff08;2&#xff09;项目不支持force…

PM50-40、PM50-45、PM50-52比例电控柱塞泵控制器

电比例轴向变量柱塞泵控制放大器技术是一种高效的液压动力传动技术。它通过将电液比例控制技术与轴向变量柱塞泵相结合&#xff0c;实现了液压泵的高精度、高效率和低噪声运行。以下是该技术的主要特点和应用&#xff1a;控制原理&#xff1a;基于双向电液比例变排量轴向柱塞泵…

ubuntu18.04.6 搭建mqtt服务器emqx 之docker方式

ubuntu18.04.6 搭建mqtt服务器emqx 之docker方式 前提docker环境已经安装好 如未安装&#xff0c;请参考博文https://blog.csdn.net/a554521655/article/details/134251763 文章目录 ubuntu18.04.6 搭建mqtt服务器emqx 之docker方式安装emqx查看是否安装并启动成功登录前端查 安…

记录一次数据中包含转义字符\引发的bug

后端返回给前端的数据是: { "bizObj": { "current": 1, "orders": [ ], "pages": 2, "records": [ { "from": "1d85b8a4bd33aaf99adc2e71ef02960e", …

Linux(Centos7)安装 jenkins(jdk11+jenkins2.375),并配置JDK,Maven,Git,GitLab

安装步骤 1. JDK11安装2. Maven安装3. git安装4. Jenkins2.375安装4.1 设置中文显示4.2 端口,用户权限修改4.3 插件下载4.4 全局工具配置4.4.1 Maven配置4.4.2 JDK配置4.4.3 Git配置 4.5 系统配置4.5.1 Gitee配置 4.6 构建测试 1. JDK11安装 #下载 yum -y install fontconfig …

2023 年最值得推荐的11个视频转换器(免费和付费)

拥有一个视频转换器供您使用意味着您可以轻松地在任何设备上播放所有视频。我们展示了适用于 Windows 的最佳视频转换器&#xff0c;这样您就不必浪费时间使用不合格的工具。 录制、编辑和分享视频是人生最大的消遣之一。有如此多的设备能够捕捉视频——而且共享它们的途径也很…

除硼滤料TRAPPSORB

吸附剂产品是Watch Water的 核心业务&#xff0c;Watch Water是最 大的创新水处理公司之一&#xff0c;公司 主营业务包括过滤和吸附剂产品. 每个 球粒直径通常在2-5毫米范围内 的&#xff0c;可用于固定床吸附污染物。不过 球粒尺寸可以根据客户的具体需求生产。 经过我们40年…

网页设计达人的首选!这6款顶级工具助你设计完美网页!

即时设计 即时设计是国内为当地设计师量身定制的完全免费的网页设计工具。是集成原型、设计、交互、交付等所有网页设计需求的一站式设计平台。内部集成了大量优秀的插件&#xff0c;包括组件、图标、字体、色板、填充等功能&#xff0c;基本涵盖了网页设计师常用的大部分工具…

【麒麟V10系统x86环境--bash: ./install:/bin/bash:解释器错误: 权限不够】

不知道那位大拿分享的这个神操作、给力呀 标题-bash: ./install&#xff1a;/bin/bash&#xff1a;解释器错误: 权限不够 执行这个命令即可&#xff1b;sudo setstatus Softmode

php实现支付宝商户转账

目录 一&#xff1a;背景介绍 一&#xff1a;准备工作 三&#xff1a;代码实现 一&#xff1a;背景介绍 最近工作中&#xff0c;要用到支付宝的商家转账功能&#xff0c;用php代码实现&#xff0c;网上找的内容&#xff0c;有些是老版本的实现&#xff0c;有些是调用sdk&am…

物联网通讯协议NB-lot和LoRa差异分析

像把大象装冰箱一样&#xff0c;物联网&#xff0c;万物互联也是要分步骤的。 一、感知层(信息获取层)&#xff0c;即利用各种传感器等设备随时随地获取物体的信息; 二、网络层(信息传输层)&#xff0c;通过各种电信网络与互联网的融合&#xff0c;将物体的信息实时准确地传递…

City Terrace Pack

“城市与露台资源包” 的主要特点:• 属于系列的一部分。• 极为逼真和现代化的城市。• 高度优化的低多边形和逼真资源。• 可用于 Oculus、GearVR、Vive、Daydream。• 可用于低端和高端移动设备。• 灵感来自于现代建筑和设计。• 36 种不同的摩天大楼和建筑物。• 其中每个…

一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库

前言 今天给大家分享一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库&#xff1a;LiteDB。本篇文章主要是介绍LiteDB和在.NET中如何使用。 LiteDB介绍 LiteDB 是一个小巧、快速和轻量级的 .NET NoSQL 嵌入式数据库。 无服务器的 NoSQL 文档存储 简单的 API&#xff0c;类似…

JAVA微信公众号开发平台源码带数据库

JAVA微信公众号开发平台源码带数据库 前台框架: easyui 后台框架: SpringMVChibernate

2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑤

单元测试 一、任务要求 题目1&#xff1a;根据下列流程图编写程序实现相应处理&#xff0c;执行j10*x-y返回文字“j1&#xff1a;”和计算值&#xff0c;执行j(x-y)*(10⁵%7)返回文字“j2&#xff1a;”和计算值&#xff0c;执行jy*log(x10)返回文字“j3&#xff1a;”和计算值…

gseaplot3修改一下clusterProfiler默认绘图函数

直接使用clusterProfiler::gseaplot2绘图会出现下边的结果&#xff0c;导致四周显示不全&#xff0c;线的粗细也没办法调整&#xff0c;因为返回的是一个aplot包中的gglist对象&#xff0c;没太多研究。 p1 <- clusterProfiler::gseaplot2(gsea_result, gsea_result$ID, pv…

设计模式-数据映射模式

设计模式专栏 模式介绍模式特点应用场景技术难点代码示例Java实现数据映射模式Python实现数据映射模式 数据映射模式在spring中的应用 模式介绍 数据映射模式是一种将对象和数据存储映射起来的数据访问方式。具体来说&#xff0c;对一个对象的操作会映射为对数据存储的操作。这…

基于JavaWeb+BS架构+SpringBoot+Vue+Hadoop的物品租赁系统的设计与实现

基于JavaWebBS架构SpringBootVueHadoop的物品租赁系统的设计与实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 目  录 I 1绪 论 1 1.1开发背景 1 1.2开发目的与意义 1 1.2.1开发目…