数据压缩
概述
MinIO 服务器支持压缩对象以减少磁盘使用。 对象在上传(PUT)到磁盘之前进行压缩,在下载(GET)发送到客户端之前进行解压缩。这使得压缩过程对客户端应用程序和服务是透明的。
根据数据类型的不同,压缩还可能提高整体吞吐量。 在生产环境中,写入吞吐量通常为每个系统可用 CPU 核心每秒500MB或更高。 解压缩的速度大约为每个 CPU 核心每秒1 GB或更高。
为了获得最佳结果,请参考MinIO的 推荐硬件配置 或者使用 MinIO SUBNET 直接与工程师合作分析压缩性能。
默认文件类型
数据压缩是一个全局选项,配置的设置适用于部署中的所有存储桶。 启用数据压缩默认会压缩以下类型的数据:
File Extensions |
Media (MIME) Types |
---|---|
|
|
您可以通过指定所需的文件扩展名和 媒体(MIME)类型 来控制哪些对象被压缩。
Existing objects are not modified
启用、禁用或更新部署的压缩设置不会修改现有的对象。 新创建的对象将根据它们创建时生效的设置进行压缩。
排除的文件类型
有些数据无法有效压缩。 例如:视频、已压缩数据或小于 4KiB 的文件。 MinIO 不会压缩那些常见的无法压缩的文件类型,即使它们在压缩配置中被指定。
这些类型的对象永远不会被压缩:
Object Type |
File Extension |
Media (MIME) Type |
---|---|---|
Audio |
|
|
Video |
*.mp4 *.mkv *.mov |
|
Image |
*.jpg *.png *.gif |
|
7ZIP Compressed |
|
|
BZIP2 Compressed |
|
|
GZIP Compressed |
|
|
RAR Compressed |
|
|
LZMA Compressed |
|
|
ZIP Compressed |
|
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 set
将 compression
键 enable
选项设置为 off
:
以下命令将禁用对新对象的数据压缩:
mc admin config set ALIAS compression enable=off
将
ALIAS
替换为配置的 MinIO 部署的alias
。
现有的压缩对象不会被修改。
配置哪些对象进行压缩
通过在 extensions
或 mime_types
参数中指定所需的文件扩展名和媒体类型来配置要压缩的对象。
默认的数据压缩配置会压缩以下类型的数据:
File Extensions |
Media (MIME) Types |
---|---|
|
|
Default excluded extensions and types are never compressed
某些对象无法高效压缩。
即使这些对象在 extensions
或 mime_types
参数中指定,MinIO也不会尝试压缩这些对象。
请参阅 排除的文件类型 以获取排除类型的列表。
下面的部分描述了如何为所需的文件扩展名和媒体类型配置压缩。
压缩所有可压缩对象
要压缩所有对象,除了 默认排除的类型 ,请使用 mc admin config set
命令将 compression
键下的 extensions
和 mime_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/json
和 image/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
。