Compression Guide
압축 가이드
MinIO server allows streaming compression to ensure efficient disk space usage.
MinIO 서버는 스트리밍 압축을 통해 효율적인 디스크 공간 사용을 보장합니다.
Compression happens inflight, i.e objects are compressed before being written to disk(s).
압축은 진행 중에 발생합니다. 즉, 객체가 디스크에 기록되기 전에 압축됩니다.
MinIO uses klauspost/compress/s2 streaming compression due to its stability and performance.
MinIO는 안정성과 성능으로 인해 klauspost/compress/s2 스트리밍 압축을 사용합니다.
This algorithm is specifically optimized for machine generated content. Write throughput is typically at least 300MB/s per CPU core. Decompression speed is typically at least 1GB/s.
이 알고리즘은 특히 기계 생성 컨텐츠에 최적화되어 있습니다. 쓰기 처리량은 일반적으로 CPU 코어 당 최소 300MB/s입니다. 압축 해제 속도는 일반적으로 최소 1GB/s입니다.
This means that in cases where raw IO is below these numbers compression will not only reduce disk usage but also help increase system throughput.
이는 원시 IO가 이 수치보다 낮은 경우 압축이 디스크 사용량을 줄일 뿐만 아니라 시스템 처리량을 높이는 데 도움이 된다는 것을 의미합니다.
Typically enabling compression on spinning disk systems will increase speed when the content can be compressed.
일반적으로 회전하는 디스크 시스템에서 압축을 활성화하면 콘텐츠를 압축할 수 있을 때 속도가 빨라집니다.
Get Started
시작합니다
1. Prerequisites
1. 전제조건
Install MinIO - MinIO Quickstart Guide.
MinIO 설치 - MinIO 빠른 시작 가이드.
2. Run MinIO with compression
2. 압축을 통해 MinIO 실행
Compression can be enabled by updating the compress config settings for MinIO server config. Config compress settings take extensions and mime-types to be compressed.
MinIO 서버 구성에 대한 압축 구성 설정을 업데이트하여 압축을 활성화할 수 있습니다. 구성 압축 설정은 압축할 확장명과 MIME 유형을 사용합니다.
"compress": {
"enabled": true,
"extensions": [".txt",".log",".csv", ".json", ".tar"],
"mime-types": ["text/*","application/json","application/xml"]
}
Since text, log, csv, json files are highly compressible, These extensions/mime-types are included by default for compression.
텍스트, 로그, csv, json 파일은 압축률이 높기 때문에 이러한 확장자/mime 유형이 기본적으로 포함되어 압축됩니다.
Having compression enabled and no extensions or mime types will attempt to compress anything that isn't explicitly known to be already compressed content.
압축이 활성화하고 확장자나 MIME 유형이 없으면 이미 압축된 콘텐츠로 명시적으로 알려지지 않은 모든 항목을 압축하려고 시도합니다.
Settings for enabling compression on all content, except for types listed below:
아래 나열된 유형을 제외한 모든 콘텐츠에 대한 압축을 활성화하기 위한 설정:
"compress": {
"enabled": true,
"extensions": [],
"mime-types": []
}
Incompressible content will be skipped with quite low CPU usage and storage overhead, typically at several GB/s.
일반적으로 몇 GB/s의 매우 낮은 CPU 사용량과 스토리지 오버헤드로 인해 압축할 수 없는 콘텐츠는 건너뜁니다.
To update the configuration, use mc admin config get command to get the current configuration file for the minio cluster in json format, and save it locally.
구성을 업데이트하려면, mc admin config get 명령을 사용하여 minio 클러스터에 대한 현재 구성 파일을 json 형식으로 가져와 로컬에 저장합니다.
mc admin config get myminio/ > /tmp/myconfig
After updating the compression configuration in /tmp/myconfig , use mc admin config set command to update the configuration for the cluster. Restart the MinIO server to put the changes into effect.
/tmp/myconfig에서 압축 구성을 업데이트한 후 mc admin config set 명령을 사용하여 클러스터 구성을 업데이트합니다. 변경 사항을 적용하려면 MinIO 서버를 다시 시작하세요.
mc admin config set myminio < /tmp/myconfig
The compression settings may also be set through environment variables. When set, environment variables override the defined compress config settings in the server config.
압축 설정은 환경 변수를 통해 설정할 수도 있습니다. 설정되면 환경 변수는 서버 구성에 정의된 압축 구성 설정을 재정의합니다.
export MINIO_COMPRESS="true"
export MINIO_COMPRESS_EXTENSIONS=".pdf,.doc"
export MINIO_COMPRESS_MIMETYPES="application/pdf"
3. Note
3. 참고
Already compressed objects are not fit for compression since they do not have compressible patterns. Such objects do not produce efficient LZ compression which is a fitness factor for a lossless data compression. Below is a list of common files and content-types which are not suitable for compression.
이미 압축된 객체는 압축 가능한 패턴이 없으므로 압축에 적합하지 않습니다. 이러한 객체는 무손실 데이터 압축의 적합성 요소인 효율적인 LZ 압축을 생성하지 않습니다. 다음은 압축에 적합하지 않은 일반적인 파일 및 콘텐츠 유형 목록입니다.
Extensions
확장
| gz | (GZIP)
| bz2 | (BZIP2)
| rar | (WinRAR)
| zip | (ZIP)
| 7z | (7-Zip)
| xz | (LZMA)
| mp4 | (MP4)
| mkv | (MKV media)
| mov | (MOV)
Content-Types
| video/* |
| audio/* |
| application/zip |
| application/x-gzip |
| application/zip |
| application/x-bz2 |
| application/x-compress |
| application/x-xz |
All files with these extensions and mime types are excluded from compression, even if compression is enabled for all types.
이러한 확장자와 MIME 유형을 가진 모든 파일은 모든 유형에 대해 압축이 활성화된 경우에도 압축에서 제외됩니다.
MinIO does not support encryption with compression because compression and encryption together potentially enables room for side channel attacks like CRIME and BREACH MinIO does not support compression for Gateway (Azure/GCS/NAS) implementations.
MinIO는 압축과 암호화를 함께 사용하면 잠재적으로 CRIME 및 BREACH와 같은 부채널 공격에 대한 공간을 확보할 수 있으므로 압축을 통한 암호화를 지원하지 않습니다. MinIO는 게이트웨이 (Azure/GCS/NAS) 구현에 대한 압축을 지원하지 않습니다.
To test the setup
설정을 테스트하려면
To test this setup, practice put calls to the server using mc and use mc ls on the data directory to view the size of the object.
이 설정을 테스트하려면 mc를 사용하여 서버에 호출을 넣고 데이터 디렉터리에서 mc ls를 사용하여 객체의 크기를 확인하는 방법을 연습하세요.
Explore Further
더 자세히 살펴보세요
Use mc with MinIO Server
MinIO 서버와 함께 mc 사용
Use aws-cli with MinIO Server
MinIO 서버와 함께 aws-cli 사용
Use s3cmd with MinIO Server
MinIO 서버와 함께 s3cmd 사용
Use minio-go SDK with MinIO Server
MinIO 서버와 함께 minio-go SDK 사용
The MinIO documentation website
MinIO 문서 웹사이트