中文文档

数据压缩

概述

MinIO 服务器支持压缩对象以减少磁盘使用。 对象在上传(PUT)到磁盘之前进行压缩,在下载(GET)发送到客户端之前进行解压缩。这使得压缩过程对客户端应用程序和服务是透明的。

根据数据类型的不同,压缩还可能提高整体吞吐量。 在生产环境中,写入吞吐量通常为每个系统可用 CPU 核心每秒500MB或更高。 解压缩的速度大约为每个 CPU 核心每秒1 GB或更高。

为了获得最佳结果,请参考MinIO的 推荐硬件配置 或者使用 MinIO SUBNET 直接与工程师合作分析压缩性能。

默认文件类型

数据压缩是一个全局选项,配置的设置适用于部署中的所有存储桶。 启用数据压缩默认会压缩以下类型的数据:

File Extensions

Media (MIME) Types

.txt

.log

.csv

.json

.tar

.xml

.bin

text/*

application/json

application/xml

binary/octet-stream

您可以通过指定所需的文件扩展名和 媒体(MIME)类型 来控制哪些对象被压缩。

Existing objects are not modified

启用、禁用或更新部署的压缩设置不会修改现有的对象。 新创建的对象将根据它们创建时生效的设置进行压缩。

排除的文件类型

有些数据无法有效压缩。 例如:视频、已压缩数据或小于 4KiB 的文件。 MinIO 不会压缩那些常见的无法压缩的文件类型,即使它们在压缩配置中被指定。

这些类型的对象永远不会被压缩:

Object Type

File Extension

Media (MIME) Type

Audio

audio/*

Video

*.mp4
*.mkv
*.mov

video/*

Image

*.jpg
*.png
*.gif

application/x-compress (LZW)

7ZIP Compressed

*.7z

BZIP2 Compressed

*.bz2

application/x-bz2

GZIP Compressed

*.gz

application/x-gzip

RAR Compressed

*.rar

LZMA Compressed

*.xz

application/x-xz

ZIP Compressed

*.zip

application/zip
application-x-zip-compressed

Smaller than 4 KiB

数据压缩和加密

MinIO 支持对压缩对象进行加密,但建议在没有进行前期风险评估的情况下不要将压缩和加密结合使用。 在为压缩对象启用加密之前,请仔细考虑您环境的安全需求。

有关结合压缩和加密的更多信息,请参阅 MinIO 上的透明数据压缩MinIO SUBNET 用户可以 登录 并与我们的工程和安全团队互动,以审查加密选项。

教程

启用数据压缩

要启用数据压缩,请使用 mc admin config set 命令将 compression 键的 enable 选项设置为 on

以下操作将启用新对象的 默认类型 的压缩:

mc admin config set ALIAS compression enable=on
  • ALIAS 替换为已配置的 MinIO 部署的 别名

现有的未压缩对象不会被修改。 要配置哪些扩展名和类型进行压缩,请参阅 配置哪些对象进行压缩

要查看当前的压缩设置:

mc admin config get ALIAS compression

禁用数据压缩

要禁用数据压缩,请使用 mc admin config setcompressionenable 选项设置为 off :

以下命令将禁用对新对象的数据压缩:

mc admin config set ALIAS compression enable=off
  • ALIAS 替换为配置的 MinIO 部署的 alias

现有的压缩对象不会被修改。

配置哪些对象进行压缩

通过在 extensionsmime_types 参数中指定所需的文件扩展名和媒体类型来配置要压缩的对象。

默认的数据压缩配置会压缩以下类型的数据:

File Extensions

Media (MIME) Types

.txt

.log

.csv

.json

.tar

.xml

.bin

text/*

application/json

application/xml

binary/octet-stream

Default excluded extensions and types are never compressed

某些对象无法高效压缩。 即使这些对象在 extensionsmime_types 参数中指定,MinIO也不会尝试压缩这些对象。 请参阅 排除的文件类型 以获取排除类型的列表。

下面的部分描述了如何为所需的文件扩展名和媒体类型配置压缩。

压缩所有可压缩对象

要压缩所有对象,除了 默认排除的类型 ,请使用 mc admin config set 命令将 compression 键下的 extensionsmime_types 选项设置为空列表:

mc admin config set ALIAS compression extensions= mime_types=
  • ALIAS 替换为配置的 MinIO 部署的 别名

按文件扩展名压缩对象

要压缩具有特定文件扩展名的对象,请使用 mc admin config set 命令在 extensions 参数中设置所需的文件扩展名。

以下命令将压缩具有 .bin.bin 扩展名的文件:

mc admin config set ALIAS compression extensions=".bin, .txt"
  • ALIAS 替换为配置的 MinIO 部署的 alias

新的文件扩展名列表将替换之前的列表。 要添加或删除一个扩展名,请重复使用带有完整压缩扩展名列表的 extensions 命令。

以下命令将 .pdf 添加到之前示例中的文件扩展名列表中:

mc admin config set ALIAS compression extensions=".bin, .txt, .pdf"
  • ALIAS 替换为配置的 MinIO 部署的 alias

按媒体类型压缩对象

要压缩特定媒体类型的对象,请使用 mc admin config set 命令来设置 compression 键下的 mime_types 选项,将其指定为所希望的类型列表。

以下示例将压缩文件类型为 application/jsonimage/bmp 的文件:

mc admin config set ALIAS compression mime_types="application/json, image/bmp"
  • ALIAS 替换为配置的 MinIO 部署的 alias

新的媒体类型列表将替换之前的列表。 要添加或删除一个类型,请重复使用 mime_types 命令,并附上要压缩的完整类型列表。

您可以使用 * 来指定单个媒体类型的所有子类型。 以下命令将所有 text 子类型添加到前一个示例中的列表中:

mc admin config set ALIAS compression mime_types="application/json, image/bmp, text/*"
  • ALIAS 替换为配置的 MinIO 部署的 alias

Join Slack 商业支持购买咨询