存储—对象存储_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
posted @ 2024-07-15 19:45  辰令  阅读(15)  评论(0编辑  收藏  举报