首页 > 其他分享 >存储—对象存储_Minio

存储—对象存储_Minio

时间:2024-07-15 19:52:01浏览次数:20  
标签:存储 Minio mc 对象 minio MinIO

Minio

Minio 是 GlusterFS
  采用 Golang 实现,客户端支持 Java,Python,Javacript, Golang 语言
  docker pull minio/minio
  MinIO使用键值对(Key-Value)的数据模型,适用于非结构化数据

Minio安装

1.下载镜像:  docker pull minio/minio
2.构建容器
 docker run -d  \
   --name minio \
   -p 9000:9000 \
   -p 9001:9001 \
   --restart=always \
   -v /opt/minio/data:/data \
   -v /opt/minio/config:/root/.minio \
   -e "MINIO_ROOT_USER=myminioadmin" \
   -e "MINIO_ROOT_PASSWORD=myminioadmin" \
   minio/minio:RELEASE.2022-01-04T07-41-07Z \
   server /data \
   --console-address ":9001"
Console和API两个服务的端口。在需要在启动命令中映射两个端口,然后指定哪个端口做哪项服务
    一个用来存放配置,一个用来存储上传文件的目录
端口映射,前一个是服务器的端口, API 通过API进行访问
          后一个是客户端 console-address  WebUI
		  
   启动MinIO服务器的命令如下:
       ./minio server ./data		  

使用

 MinIO 控制台
    http://<你的IP地址>:9001
 Minio命令行工具:Minio官方提供的命令行工具,可以在终端中直接进行Minio管理操作,
     如列出存储桶、上传文件等。该工具对于快速测试和部署非常有用	
	 MinIO服务器 (minio) 和 MinIO命令行界面 CLI (mc) 
  命令行 mc 
 Minio Python SDK:Minio官方提供的Python SDK,基于Python的requests库构建,提供了类似Java SDK的功能,方便Python开发者使用。
	  
###访问
   MinIO支持两种访问方式

核心概念

  MinIO部署由一组存储和计算资源组成,运行一个或多个 minio server 节点
        minio server 命令用于启动 MinIO 服务器进程
		
   MinIO使用 Prometheus 数据模型 发布集群和节点指标
  日志记录 MinIO将所有 minio server 操作发布到系统控制台。 MinIO还支持将服务器日志和审核日志发布到HTTP Webhook
	
 应用-逻辑概念
   MinIO 对象存储使用 buckets 来组织对象 
         MinIO 使用 / 作为分隔符自动从完整对象路径推断出中间前缀	   
		 
分段上传		 

权限控制策略

1.Identity
 用户和用户组
   权限控制策略,允许管理员和开发者精确地管理
   不同用户或用户组对存储桶及其中对象的访问权限
   Identity--Users-Groups——OpenID以及LDAP
     Minio提供了几种预定义的IAM(Identity and Access Management)策略
    策略以JSON格式编写,
	  包含一组声明(Statements),每个声明定义了哪些主体(Principal)、
	  在什么条件下(Condition)、对哪些资源(Resource)拥有何种权限(Action
2.Buckets
  可以为每个存储桶设置独立的访问策略,控制谁可以访问存储桶以及他们可以进行哪些操作。Bucket策略通过JSON文档定义
    retention:保留是指在一段时间内防止对象删除的规则。为了设置桶保留策略,必须启用版本控制
	quota:配额用于限制桶内的数据量
	Access Poilcy:一共有三个值,private,public,custom。私有代表需要通过验签且生成的url只有7天有效期
	Encyption: 就是配置是否加密。
3.Policies
       readonly writeonly  readwrite  diagnostics consoleAdmin		   
    策略中常见的元素包括Action(允许的操作)、Effect(允许或拒绝)、Resource(目标资源)、Principal(执行者)
	
4.外部身份
     OpenID Connect (OIDC) 兼容的 IDentity Provider (IDP)(例如 Okta、KeyCloak、Dex、Google 或 Facebook)对用户身份进行外部管理	

监控Monitoring

管理部署的Minio
 通过查看指标仪表板、服务器或
         审计日志、跟踪历史、S3事件或驱动器健康, 监控部署的Minio活动和健康状况。
 通过添加或管理一个 通知目标 来配置警报

1.日志和指标
   metrics 指标
   logs   日志
   audit  审计
   trace  追踪 部分提供了 HTTP 跟踪功能
   watch 监控部分显示了所选存储桶上发生的 S3 事件。 这一部分提供了与 mc watch 类似的功能
   Tiering 分成(对象生命周期管理) 部分提供了一个用于添加和管理 远程层 的界面,以支持生命周期管理转换规则。
      	   MinIO的分层支持将对象从部署移动到远程存储,但不支持自动将它们恢复到部署
		    对于对象过渡, MinIO 自动将对象移动到配置好的远程存储层。 
			对于对象到期, MinIO 会自动删除该对象
2.event Notifications 
     MinIO 存储通知允许管理员将通知发送到 支持特定对象或存储桶事件的外部服		
	 minio支持桶事件通知机制
	  Event事件 部分提供了一个界面,用于查看、添加或删除 事件通知 目标
	  
3.Site Replocation 站点复制 部分提供了一个界面,用于添加和管理部署的 站点复制 配置

 encryption  加密

 Configuration 部分提供了一个界面,用于查看和检索部署中所有 MinIO 服务器 配置设置

概念

 IDP  IDentity Provider		  
 Active Directory或LDAP (AD/LDAP)服务进行用户身份的外部管理。
  配置外部身份提供程序(IDP)启用单点登录(SSO)工作流,其中应用程序之前根据外部IDP进行身份验证accessing Minlo。M	  
   OpenID Connect (OIDC) 兼容的 IDentity Provider (IDP)(例如 Okta、KeyCloak、Dex、Google 或 Facebook)对用户身份进行外部管理

 Daily Health report and Live Error logs
 Profile: cpu men block  mutex goroutines

命令行使用

 Minio 服务

    # 举例:mc config host add minio2022 http://127.0.0.1:9000 IUKxxxfcc 5D0YvqFb6o5QIoasfdfdf --api s3v4
       mc config host add 服务器名称 endpoint地址 accesskey secretkey KEY

 mc.exe config host add myminio http://127.0.0.1:9000 ACCESS_KEY SECRET_KEY

  myminio是你给起的连接名
    ACCESS_KEY SECRET_KEY是在上面浏览器中下载的credentials.json文件中的密钥
	
  mc ls 服务器名称
    mc ls myminio

实际使用中问题

1.默认情况下,MinIO 自带一套帐号管理体系,不需要任何配置,但缺点是一旦服务重启则帐号信息丢失。
  为了持久化存储帐号数据,需要配合 Etcd 服务。

2.元数据与数据一起存放在磁盘上:数据部分纠删分片以后存储在磁盘上,元数据以明文形式存放在元数据文件里(xl.json)
   MinIO对象存储系统 无 元数据数据库,所有的操作都是对象级别的粒度的

3.简单部署方式和纠删码部署方式


4.每个磁盘上,MinIO会创建一个`.minio.sys`文件夹,用于存储元数据和状态信息。当然,你也可以通过配置文件来指定数据存储的路
    .minio.sys/config/config.json
   
  客户端--   ~/.mc文件夹下

参考

 https://www.minio.org.cn/docs/minio/linux/administration/minio-console.html
 https://www.minio.org.cn/docs/minio/linux/reference/minio-mc.html
 https://minio.org.cn/docs/minio/kubernetes/upstream/administration/console/managing-deployment.html	 
 Minio控制台详细教程 https://blog.csdn.net/qq_45374325/article/details/129350475
 https://minio.org.cn/docs/minio/linux/reference/minio-mc.html

标签:存储,Minio,mc,对象,minio,MinIO
From: https://www.cnblogs.com/ytwang/p/18302786

相关文章

  • 数据库和对象存储_DuckDB 访问 Minio
    使用DuckDB访问Minio以对象存储为中心的世界的数据库数据库一直是基于SAN的块存储和基于NAS的文件存储的主要工作负载,OLAP数据库领域将在未来几年内转向对象存储优先的定位在DuckDB实例的生命周期内存储在内存中。持久密码以未加密的二进制格式存储在~/.duc......
  • JuiceFS、Ceph 和 MinIO 结合使用
    1.流程图将JuiceFS、Ceph和MinIO结合使用,可以充分利用Ceph的分布式存储能力、JuiceFS的高性能文件系统特性,以及MinIO提供的对象存储接口。以下是一个方案,介绍如何配置和部署JuiceFS使用Ceph作为其底层存储,并通过MinIO提供对象存储接口。2.前提条件部署......
  • 基于EF Core存储的Serilog持久化服务
    前言Serilog是.NET上的一个原生结构化高性能日志库,这个库能实现一些比内置库更高度的定制。日志持久化是其中一个非常重要的功能,生产环境通常很难挂接调试器或者某些bug的触发条件很奇怪。为了在脱离调试环境的情况下尽可能保留更多线索来辅助解决生产问题,持久化的日志就显得很......
  • Java中的类与对象详解
    Java中的类与对象详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来详细了解Java中的类与对象,这是Java编程的基础。通过丰富的代码示例,我们将深入探讨类的定义、对象的创建与使用、构造方法、方法重载、继承、多态等内容。1.类的定义类是对......
  • 12、Oracle中的其它数据库对象
    最近项目要用到Oracle,奈何之前没有使用过,所以在B站上面找了一个学习视频,用于记录学习过程以及自己的思考。视频链接:【尚硅谷】Oracle数据库全套教程,oracle从安装到实战应用如果有侵权,请联系删除,谢谢。学习目标:创建、维护和使用序列创建和维护索引创建同义词1、......
  • 图——图的类型定义及存储结构
    在上篇文章我们学习了图的定义和基本术语,大家可以通过下面的链接学习:图的定义及基本术语这篇文章我们就来系统的学习一下图的类型定义和存储结构。案例引入:六度空间理论:你和任何一个陌生人之间所间隔的人不会超过6个,也就是说,最多通过6个中间人你就能够认识任何一个陌生人......
  • [深入理解Java虚拟机]HotSpot虚拟机对象
    对象的创建Java是一门面向对象的编程语言,Java程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象通常(例外:复制、反序列化)仅仅是一个new关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个过程呢?当Java虚拟机遇......
  • JavaScript 的对象和方法
    对象对象是JavaScript数据类型的一种,之前已经学习了数值类型、字符串类型、布尔类型、undefined。对象数据类型可以被理解成是一种数据集合。它由属性和方法两部分构成。语法声明一个对象类型的变量与之前声明一个数值或字符串类型的变量没有本质上的区别。<!DOCTYP......
  • 使用JSONObject构建与解析json对象(简易版)
    构建json实例化一个JSONObject对象,而后调用其put()方法,将数据写入。put()方法的第一个参数为key值,必须为String类型,第二个参数为value,可以为boolean、double、int、long、Object、Map以及Collection等。当然,double以及int等类型只是在Java中,写入到json中时,统一都会以Number类......
  • MySQL存储引擎的选择:深入解析与策略
    MySQL数据库管理系统之所以强大,部分原因在于它提供了多种存储引擎,每种引擎都针对特定的应用场景进行了优化。尽管MySQL支持多种存储引擎,但其中最常用且值得深入探讨的无疑是MyISAM、InnoDB以及MEMORY(HEAP)这三种。每种存储引擎都有其独特的优缺点,合理选择能够显著提升数据库的性......