返回介绍

PART Ⅰ : 容器云OPENSHIFT

PART Ⅱ:容器云 KUBERNETES

PART Ⅲ:持续集成与持续部署

PART Ⅴ:日志/监控/告警

PART Ⅵ:基础

PART Ⅶ:数据存储、处理

PART VIII:CODE

PART X:HACKINTOSH

PART XI:安全

Minio

发布于 2024-06-08 21:16:45 字数 49427 浏览 0 评论 0 收藏 0

MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。兼容与 Amazon S3 云存储服务的 API。

中文文档:http://minio.org.cn/

  • MinIO 部署开始使用默认的 root 凭据 minioadmin:minioadmin

Docker

mkdir -p ~/minio/data

docker run \
   -p 9000:9000 \
   -p 9090:9090 \
   --name minio \
   -v ~/minio/data:/data \
   -e "MINIO_ACCESS_KEY=*****" \
   -e "MINIO_SECRET_KEY=*****" \
   quay.io/minio/minio server /data --console-address ":9090"

Brew

brew install minio/stable/minio
minio server /data

Unix

wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data

Windows

http://dl.minio.org.cn/server/minio/release/windows-amd64/minio.exe
minio.exe server D:\

命令文档:https://min.io/docs/minio/linux/reference/minio-mc.html

1、mc命令安装

Linux

curl https://dl.min.io/client/mc/release/linux-amd64/mc \
--create-dirs \
-o $HOME/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

MacOS

brew install minio/stable/mc

WIndows

https://dl.min.io/client/mc/release/windows-amd64/mc.exe

Docker

docker run -it --rm minio/mc --version

mc命令shell自动补全

wget https://raw.githubusercontent.com/minio/mc/master/autocomplete/bash_autocomplete -O /etc/bash_completion.d/mc
source /etc/bash_completion.d/mc

2、实例管理

# 添加minio实例配置
mc config host add synology-minio http://127.0.0.1:9000 用户名 密码
# 查看已配置的minio实例实例配置
mc config host list
# 删除minio实例实例配置
mc config host remove synology-minio
# 获取实例信息
mc admin info synology-minio

3、用户管理

# 列出所有用户
mc admin user list synology-minio
# 添加新用户
mc admin user add synology-minio 用户名 密码
# 禁用用户
mc admin user disable synology-minio 用户名
# 启用用户
mc admin user enable synology-minio 用户名
# 显示用户信息
mc admin user info synology-minio 用户名

4、用户组管理

# 列出所有组
mc admin group list synology-minio

# 获取组信息
mc admin group info synology-minio 用户组

# 将用户添加到组中。如果组不存在,则会创建该组。
mc admin group add synology-minio 用户组 用户1 用户2

# 删除组中用户
mc admin group remove synology-minio 用户组 用户1 用户2

# 删除组
mc admin group remove synology-minio 用户组

# 启用组
mc admin group enable synology-minio 用户组

# 禁用组
mc admin group disable synology-minio 用户组

5、Bucket管理

# 创建Bucket
mc mb synology-minio/juicefs

# 列出Bucket
mc ls synology-minio

# 删除没有文件的bucket
mc rb synology-minio/juicefs

# 删除有文件的bucket
mc rb synology-minio/juicefs --force

6、策略管理

命令格式:
  mc admin policy 子命令
子命令:
  add      添加新策略
  remove   删除策略
  list     列出所有策略
  info     显示策略信息
  set      在用户或组上设置策略
# 列出所有策略
mc admin policy list synology-minio

# 显示策略的信息
mc admin policy info synology-minio writeonly

# 创建策略
mc admin policy add synology-minio listbucketsonly ./listbucketsonly.json

# 删除策略
mc admin policy remove synology-minio listbucketsonly

# 在用户或组上设置策略
mc admin policy set synology-minio listbucketsonly user=用户
mc admin policy set synology-minio listbucketsonly group=用户组
{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "s3:myListBuckets"
         ],
         "Resource": [
            "arn:aws:s3:::*"
         ]
      }
   ]
}

策略模板

{
   "Version" : "2012-10-17",
   "Statement" : [
      {
         "Effect" : "Allow",
         "Action" : [ "s3:<ActionName>", ... ],
         "Resource" : "arn:aws:s3:::*",
         "Condition" : { ... }
      },
      {
         "Effect" : "Deny",
         "Action" : [ "s3:<ActionName>", ... ],
         "Resource" : "arn:aws:s3:::*",
         "Condition" : { ... }
      }
   ]
}

7、文件管理

# 列出Bucket中的文件
mc ls synology-minio/<Bucket名字>

# 查看Bucket中的文件内容
mc cat synology-minio/<Bucket名字>/文件路径

# 删除文件
mc rm synology-minio/<Bucket名字>/文件路径

# 删除目录
mc rm synology-minio/<Bucket名字>/目录路径 --recursive --force
# --force       参数指定强制删除
# --recursive   递归删除

# 上传一个文件到bucket中
mc cp ./testfile synology-minio/<Bucket名字>/文件路径

# 使用pipe管道直接上传stdout内容到Bucket文件中
ls -al | mc pipe synology-minio/juicefs/aaa/test.txt

# 上传一个目录到bucket中
mc cp ./testdir synology-minio/<Bucket名字>/目录路径 --recursive

8、查找文件与对象

find命令通过指定参数查找文件,它只列出满足条件的数据。

用法:
  mc find PATH [参数]
参数:
  --help, -h                       显示帮助。
  --exec value                     为每个匹配对象生成一个外部进程(请参阅FORMAT)
  --name value                     查找匹配通配符模式的对象。
  ...
mc find synology-minio/test1/ --name "*.jpg"

# 持续从test1存储桶中查找所有jpeg图像,并复制到test2存储桶中
mc find synology-minio/test1/ --name "*.jpg" --watch --exec "mc cp {} synology-minio/test2/"

9、共享文件下载

share download命令生成不需要access key和secret key即可下载的URL,过期参数设置成最大有效期(不大于7天),过期之后权限自动回收。

用法:
    mc share download [参数] TARGET [TARGET...]
参数:
 --help, -h               显示帮助。
   --recursive, -r          递归共享所有对象。
   --expire, -E "168h"      设置过期时限,NN[h|m|s]。
mc share download --expire 4h synology-minio/<Bucket名字>/文件路径

# 列出先前共享的有下载权限的URL。
mc share list download
# 列出先前共享的有上传权限的URL。
mc share list upload

10、显示目录差异

diff命令计算两个目录之间的差异。它只列出缺少的或者大小不同的内容。

不比较内容,所以名称相同,大小相同但内容不同的对象没有被检测到。可以在不同站点或者大量数据的情况下快速比较。

用法:
  mc diff [FLAGS] 路径1 路径2
# 路径既可以是本地路径,又可以是minio bucket路径
# 比较一个本地文件夹和一个远程对象存储服务*
mc diff localdir synology-minio/juicefs
# localdir/notes.txt and https://play.min.io/mybucket/notes.txt - only in first.

11、共享文件上传

share upload命令生成不需要access key和secret key即可上传的URL。过期参数设置成最大有效期(不大于7天),过期之后权限自动回收。 Content-type参数限制只允许上传指定类型的文件。

用法:
   mc share upload [FLAGS] TARGET [TARGET...]
参数:
  --help, -h                   显示帮助。
  --recursive, -r              递归共享所有对象。
  --expire, -E "168h"          设置过期时限,NN[h|m|s].
mc share upload synology-minio/juicefs/aaa/test1.txt
# Expire: 7 days 0 hours 0 minutes 0 seconds
# Share: curl http://127.0.0.1:9000/test/ -F AWSAccessKeyId=**** -F signature=*** -F bucket=test -F policy=****= -F key=aa/test1.txt -F file=@待上传的文件

# 使用共享上传URL上传本地文件内容
echo "hahahhahhahah" > test.hh
curl http://127.0.0.1:9000/test/ -F AWSAccessKeyId=**** -F signature=*** -F bucket=test -F policy=****= -F key=aa/test1.txt -F file=@test.hh

12、显示服务端的http跟踪

mc admin trace synology-minio

# 2022-10-21T14:37:34.601 [0 ] s3.GetBucketLocation                0s           ↑ 0 B ↓ 0 B
# 2022-10-21T14:37:34.614 [0 ] s3.ListObjectsV2                    0s           ↑ 0 B ↓ 0 B

13、监听文件和对象存储事件

watch命令提供了一种方便监听对象存储和文件系统上不同类型事件的方式。

用法:
  mc watch [参数] 0
参数:
  --events value                   过滤不同类型的事件,默认是所有类型的事件 (默认: "put,delete,get")
  --prefix value                   基于前缀过滤事件。
  --suffix value                   基于后缀过滤事件。
  --recursive                      递归方式监听事件。
  --help, -h                       显示帮助。
mc watch synology-minio

# [2022-10-21T07:02:46.369Z]    7 B s3:ObjectCreated:Put http://127.0.0.1:9000/test/aaa/test1.txt

14、Prometheus监控

MinIO中的Prometheus端点默认需要身份验证。Prometheus支持使用承载令牌方法对Prometheus抓取请求进行身份验证

# 生成带有验证Token的Prometheus刮取minio监控数据的配置,将配置添加到Prometheus配置文件即可
mc admin prometheus generate synology-minio

#   - job_name: minio-job
#    bearer_token: ******
#    metrics_path: /minio/v2/metrics/cluster
#    scheme: http
#    static_configs:
#    - targets: ['127.0.0.1:9000']
指标含义
disk_storage_used磁盘使用的磁盘空间。
disk_storage_available磁盘上剩余的可用磁盘空间。
disk_storage_total磁盘上的总磁盘空间。
minio_disks_offline当前MinIO实例中的脱机磁盘总数。
minio_disks_total当前MinIO实例中的磁盘总数。
s3_requests_total当前MinIO实例中s3请求的总数。
s3_errors_total当前MinIO实例中s3请求中的错误总数。
s3_requests_current当前MinIO实例中活动s3请求的总数。
internode_rx_bytes_total当前MinIO服务器实例接收到的节点间字节总数。
internode_tx_bytes_total当前MinIO服务器实例发送到其他节点的字节总数。
s3_rx_bytes_total当前MinIO服务器实例接收的s3字节总数。
s3_tx_bytes_total当前MinIO服务器实例发送的s3字节总数。
minio_version_info具有提交ID的当前MinIO版本。
s3_ttfb_seconds保存请求的延迟信息的直方图。
cache_data_served:cache_data_served从缓存提供的总字节数。
cache_hits_total:cache_hits_total缓存命中总数。
cache_misses_total:cache_misses_total缓存未命中总数。
gateway__requests向云后端发出的请求总数。此度量标准具有method标识GET,HEAD,PUT和POST请求的标签。
gateway__bytes_sent发送到云后端的总字节数(在PUT和POST请求中)。
gateway__bytes_received从云后端接收的字节总数(在GET和HEAD请求中)。
self_heal_time_since_last_activity自上一次自我修复相关活动以来经过的时间。
self_heal_objects_scanned在当前运行中由自愈线程扫描的对象数。重新开始自我修复运行时,它将重置。这用扫描的对象类型标记。
self_heal_objects_healed当前运行中通过自愈线程修复的对象数。重新开始自我修复运行时,它将重置。这用扫描的对象类型标记。
self_heal_objects_heal_failed当前运行中自愈失败的对象数。重新开始自我修复运行时,它将重置。这被标记为磁盘状态及其端点。

1、升级

  • MinIO 服务器支持滚动升级,即可以在分布式集群中一次更新一个 MinIO 实例。
  • 允许在不停机的情况下进行升级。
  • 升级可以通过用最新版本替换二进制文件并以滚动方式重新启动所有服务器来手动完成
  • 建议从客户端使用 mc admin update。 将同时更新集群中的所有节点并重新启动
  • 某些版本可能不允许滚动升级,这总是在发行说明中提到,通常建议在升级前阅读发行说明
  • mc admin update 仅在运行 MinIO 的用户对二进制文件所在的父目录具有写访问权限时才有效,例如,如果当前二进制文件位于 /usr/local/bin/minio,则需要写入访问/usr/local/bin
  • mc admin update 同时更新和重启所有服务器,应用程序会在升级后重试并继续各自的操作。
  • mc admin update 在 kubernetes/container 环境中被禁用,容器环境提供自己的机制来推出更新。
  • 在联合设置的情况下,mc admin update 应该单独针对每个集群运行。在所有集群成功更新之前,避免将 mc 更新为任何新版本。
  • 如果使用 kes 作为 MinIO 的 KMS,只需替换二进制文件并重新启动 kes 有关 kes 的更多信息可以在 here 中找到
  • 如果将 Vault 作为 KMS 与 MinIO 一起使用,请确保遵循Vault升级过程:https://www.vaultproject.io/docs/upgrading/index.html
  • 如果将 etcd 与 MinIO 用于联合,请确保遵循etcd升级过程:https://github.com/etcd-io/etcd/blob/master/Documentation/upgrades/upgrading-etcd.md

2、重启

mc admin service restart synology-minio

存储桶(Bucket)如果发生改变,比如上传对象和删除对象,可以使用存储桶事件通知机制进行监控,并通过以下方式发布出去:

参考:http://docs.minio.org.cn/docs/master/minio-bucket-notification-guide

1、使用Redis存储事件通知

①配置Redis SQS

mc admin config set synology-minio notify_redis \
  address="127.0.0.1:6379" \
  password="redis密码" \
  key="event在redis中的key名" \
  format="namespace" \
  queue_dir="" \
  queue_limit=0 \
  comment="<string>"
参数类型描述
formatstring(必须) 是 namespace 还是 access
如果是namespace格式的话,则存储到Redis的key的类型是一个hash。对于每一个条目,对应一个存储桶里的对象,其key都被设为"存储桶名称/对象名称",value都是一个有关这个MinIO对象的JSON格式的事件数据。如果对象更新或者删除,hash中对象的条目也会相应的更新或者删除。;
如果是access格式的话,则是一个list。list中又有两个元素,第一个元素是时间戳的字符串,第二个元素是一个含有在这个存储桶上进行操作的事件数据的JSON对象。在这种格式下,list中的元素不会更新或者删除。
addressstring(必须) Redis服务地址,比如: localhost:6379。无法选择DB,默认使用Redis的0 Database
passwordstring(可选) Redis服务密码
keystring(必须) 事件要存储到redis key的名称

②重启Minio

mc admin service restart synology-minio

③查看SQS的资源标识ARN

mc admin info --json synology-minio | jq .info.sqsARN
# 会输出类似于arn:minio:sqs::_:redis的信息

④查看Bucket设置的SQS

mc event list synology-minio/juicefs

⑤查看Bucket设置的SQS信息

mc admin config get synology-minio/ notify_redis

⑥在Bucket上配置SQS规则

mc event add synology-minio/juicefs arn:minio:sqs::_:redis
# arn:minio:sqs::_:redis   s3:ObjectCreated:*,s3:ObjectRemoved:*,s3:ObjectAccessed:*   Filter:

mc event add synology-minio/juicefs arn:minio:sqs::_:redis --suffix=".txt"
# arn:minio:sqs::_:redis   s3:ObjectCreated:*,s3:ObjectRemoved:*,s3:ObjectAccessed:*   Filter: suffix=".txt"

mc event add synology-minio/juicefs arn:minio:sqs::_:redis --event delete
# arn:minio:sqs::_:redis   s3:ObjectRemoved:*   Filter:

--events 过滤不同类型的事件,默认是所有类型的事件 (默认: "put,delete,get")

--prefix 基于前缀过滤事件。

--suffix 基于后缀过滤事件。

--ignore-existing, -p 如果事件已经存在则忽略

⑦删除Bucket上设置的SQS规则

mc event remove synology-minio/juicefs arn:minio:sqs::_:redis
mc event remove synology-minio/juicefs arn:minio:sqs::_:redis --suffix=".txt"

⑧重置Redis SQS

mc admin config reset synology-minio/ notify_redis
# 重启Minio
mc admin service restart synology-minio

⑨event时间样本

Key名:minio-events

Key类型:hash

{
  "Records": [
    {
      "eventVersion": "2.0",
      "eventSource": "minio:s3",
      "awsRegion": "",
      "eventTime": "2022-10-21T10:02:37.163Z",
      "eventName": "s3:ObjectCreated:Put",
      "userIdentity": {
        "principalId": "curiouser"
      },
      "requestParameters": {
        "principalId": "curiouser",
        "region": "",
        "sourceIPAddress": "10.8.0.9"
      },
      "responseElements": {
        "content-length": "0",
        "x-amz-request-id": "27200D52709D8C10",
        "x-minio-deployment-id": "5b27aw9c3-5ab2-4377-bebe-2a321143bdeb",
        "x-minio-origin-endpoint": "http://1237.0.0.1:9000"
      },
      "s3": {
        "s3SchemaVersion": "1.0",
        "configurationId": "Config",
        "bucket": {
          "name": "juicefs",
          "ownerIdentity": {
            "principalId": "curiouser"
          },
          "arn": "arn:aws:s3:::juicefs"
        },
        "object": {
          "key": "aaa%2F5.txt",
          "size": 331,
          "eTag": "9b6a60f5b7707b436a33afb280fd6d8a",
          "contentType": "text/x-c",
          "userMetadata": {
            "content-type": "text/x-c"
          },
          "sequencer": "17200D5D74683FBA"
        }
      },
      "source": {
        "host": "10.8.0.9",
        "port": "",
        "userAgent": "MinIO (darwin; amd64) minio-go/v7.0.27 mc/RELEASE.2022-06-26T18-51-48Z"
      }
    }
  ]
}

mc support perf 是一个易用的测试工具,它会先运行PUTS,然后运行GETS,通过增量的方式测试得到最大吞吐量。而warp则是一个完整的工具链,提供了很独立的测试项,能够测试GET;PUT;DELETE等都可以测试得到。同时通过cs的结构设计,更符合真实的使用场景,得到最贴近应用的性能结果,有利于性能分析。

1、mc support perf

mc support perf可以测试Minio的 S3 API(读/写)、网络 IO 和存储(驱动器读/写)性能

命令格式:mc [全局参数] support 性能测试对象 参数 minio实例别名

测试性能对象:

  • Drive:测试驱动器的速度

    mc [全局参数] support perf drive \

                [--concurrent <value>指定每个服务器要测试的并发请求数。默认32个]         \
                [--verbose, -v]        \
                [--filesize <value>指定要读取或写入每个驱动器的数据的总大小。默认1GiB,单位KiB, MiB,GiB]           \
                [--blocksize <value>指定读/写块大小。默认4MiB,单位KiB, MiB,GiB]          \
                [--serial,对驱动器逐个运行性能测试。]             \
                minio实例别名
    
  • object:测试对象的读写速度

    mc [全局参数] support perf object \

                [--duration <value> 指定性能测试运行的持续时间。默认10s,单位s、m]           \
                [--size]               \
                [--concurrent <value>指定每个服务器要测试的并发请求数。默认32个]         \
                [--verbose, -v]        \
                minio实例别名
    
mc support perf object synology-minio
#        THROUGHPUT    IOPS
# PUT    77 MiB/s      1 objs/s
# GET    6.4 MiB/s     0 objs/s
# Speedtest: MinIO 2022-10-08T20:11:00Z, 1 servers, 1 drives, 64 MiB objects, 9 threads

mc support perf drive synology-minio
# NODE                     PATH              READ         WRITE
# http://127.0.0.1:9000    /volume2/minio    109 MiB/s    138 MiB/s
# Driveperf: ✔

2、warp

wrap是minio项目下的一个开源测试工具。wrap会上传一定随机数据到oss对象存储服务器上,统计过程消耗时间得出整个oss性能分析。

GitHub:https://github.com/minio/warp

①下载安装

②命令参数

命令格式

warp [全局参数] 子命令 [子命令参数]
子命令含义
mixedbenchmark mixed objects
getbenchmark get objects
putbenchmark put objects
deletebenchmark delete objects
listbenchmark list objects
statbenchmark stat objects (get file info)
selectbenchmark select objects
versionedbenchmark mixed versioned objects
retentionbenchmark PutObjectRetention
multipartbenchmark multipart object
analyzeanalyze existing benchmark data
cmpcompare existing benchmark data
mergemerge existing benchmark data
clientrun warp in client mode, accepting connections to run benchmarks
参数含义
--no-colordisable color theme
--debugenable debug output
--insecuredisable TLS certificate verification
--autocompletioninstall auto-completion for your shell
--host valuehost. Multiple hosts can be specified as a comma separated list. (默认: "127.0.0.1:9000") [$WARP_HOST]
--access-key valueSpecify access key [$WARP_ACCESS_KEY]
--secret-key valueSpecify secret key [$WARP_SECRET_KEY]
--tlsUse TLS (HTTPS) for transport [$WARP_TLS]
--region valueSpecify a custom region [$WARP_REGION]
--encryptencrypt/decrypt objects (using server-side encryption with random keys)
--bucket valueBucket to use for benchmark data. ALL DATA WILL BE DELETED IN BUCKET! (默认: "warp-benchmark-bucket")
--host-select valueHost selection algorithm. Can be "weighed" or "roundrobin" (默认: "weighed")
--concurrent valueRun this many concurrent operations (默认: 20)
--noprefixDo not use separate prefix for each thread
--prefix valueUse a custom prefix for each thread
--disable-multipartdisable multipart uploads
--md5Add MD5 sum to uploads
--storage-class valueSpecify custom storage class, for instance 'STANDARD' or 'REDUCED_REDUNDANCY'.
--objects valueNumber of objects to upload. (默认: 2500)
--obj.size valueSize of each generated object. Can be a number or 10KiB/MiB/GiB. All sizes are base 2 binary. (默认: "10MiB")
--get-distrib valueThe amount of GET operations. (默认: 45)
--stat-distrib valueThe amount of STAT operations. (默认: 30)
--put-distrib valueThe amount of PUT operations. (默认: 15)
--delete-distrib valueThe amount of DELETE operations. Must be at least the same as PUT. (默认: 10)
--obj.generator valueUse specific data generator (默认: "random")
--obj.randsizeRandomize size of objects so they will be up to the specified size
--benchdata valueOutput benchmark+profile data to this file. By 默认 unique filename is generated.
--serverprof valueRun MinIO server profiling during benchmark; possible values are 'cpu', 'mem', 'block', 'mutex' and 'trace'.
--duration valueDuration to run the benchmark. Use 's' and 'm' to specify seconds and minutes. (默认: 5m0s)
--autotermAuto terminate when benchmark is considered stable.
--autoterm.dur valueMinimum duration where output must have been stable to allow automatic termination. (默认: 10s)
--autoterm.pct valueThe percentage the last 6/25 time blocks must be within current speed to auto terminate. (默认: 7.5)
--noclearDo not clear bucket before or after running benchmarks. Use when running multiple clients.
--syncstart valueSpecify a benchmark start time. Time format is 'hh:mm' where hours are specified in 24h format, server TZ.
--warp-client valueConnect to warp clients and run benchmarks there.
--analyze.dur valueSplit analysis into durations of this length. Can be '1s', '5s', '1m', etc.
--analyze.out valueOutput aggregated data as to file
--analyze.op valueOnly output for this op. Can be GET/PUT/DELETE, etc.
--analyze.host valueOnly output for this host.
--analyze.skip valueAdditional duration to skip when analyzing data. (默认: 0s)
--analyze.vDisplay additional analysis data.
--serve valueWhen running benchmarks open a webserver to fetch results remotely, eg: localhost:7762
--help, -hshow help

③测试实例

# 1千个测试对象,每个对象文件2kb(2048byte)
warp mixed  \
  --host=192.168.1.7:9000 \
  --objects=1000 \
  --obj.seze=2048 \
  --access-key=**** \
  --secret-key=**** \
  --autoterm

④分析测试结果数据

warp analyze --analyze.op=GET --analyze.v warp-mixed-2022-10-25[174035]-RQ0u.csv.zst

# 138 operations loaded... Done!
# ---------------------------------------
# Operation: GET (59). Ran 5m59s. Concurrency: 20.
# Requests considered: 43:
#  * Avg: 1m11.796s, 50%: 1m11.55s, 90%: 1m44.48s, 99%: 1m50.607s, Fastest: 29.335s, Slowest: 1m50.607s
#  * TTFB: Avg: 1.89s, Best: 22ms, 25th: 299ms, Median: 1.451s, 75th: 3s, 90th: 4.824s, 99th: 7.65s, Worst: 7.65s
#  * First Access: Avg: 1m18.361s, 50%: 1m25.648s, 90%: 1m45.163s, 99%: 2m0.957s, Fastest: 31.606s, Slowest: 2m0.957s
#  * First Access TTFB: Avg: 1.957s, Best: 22ms, 25th: 299ms, Median: 1.451s, 75th: 3.417s, 90th: 4.824s, 99th: 7.65s, Worst: 7.65s
#  * Last Access: Avg: 1m7.275s, 50%: 1m4.377s, 90%: 1m43.378s, 99%: 2m0.957s, Fastest: 31.606s, Slowest: 2m0.957s
#  * Last Access TTFB: Avg: 2.87s, Best: 85ms, 25th: 1.466s, Median: 3.107s, 75th: 4.008s, 90th: 6.056s, 99th: 7.65s, Worst: 7.65s

#  Throughput:
#  * Average: 1.68 MiB/s, 0.17 obj/s

# Throughput, split into 271 x 1s:
#  * Fastest: 1922.0KiB/s, 0.19 obj/s (1s, starting 17:42:48 CST)
#  * 50% Median: 1854.0KiB/s, 0.18 obj/s (1s, starting 17:42:28 CST)
#  * Slowest: 930.9KiB/s, 0.09 obj/s (1s, starting 17:44:16 CST)

1、同步备份MySQL物理文件

# 创建Bucket
mc mb synology-minio/mysql-backups

mc mirror --overwrite --watch /usr/local/var/mysql56 synology-minio/mysql-backups/20221024-15
  • BucketAPI

    • BucketACL (可以用 bucket policies)

    • BucketCORS (所有HTTP方法的所有存储桶都默认启用CORS)

    • BucketLifecycle (Minio纠删码不需要)

    • BucketReplication (可以用 mc mirror)

    • BucketVersions, BucketVersioning (可以用 s3git)

    • BucketWebsite (可以用 caddy or nginx)

    • BucketAnalytics, BucketMetrics, BucketLogging (可以用 bucket notification APIs)

    • BucketRequestPayment

    • BucketTagging

  • Object API

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文