ZFS : 압축 알고리즘 변경 후 기존 파일을 다시 압축


14

2011 년에을 사용하여 생성 된 풀이 있으며, lzjb compression몇 년 후에 업그레이드를 통해 압축을으로 설정할 수있게되었습니다 lz4. 배열의 콘텐츠 중 공간의 20 % 이상이 2013 년 이전에 생성 된 것으로 추정됩니다. 이는 여전히을 사용하여 압축되었음을 의미합니다 lzjb.

이 문제를 해결하고 (일부) 공간을 되 찾을 수있는 몇 가지 옵션을 생각할 수 있습니다.

  1. 새 풀로 백업 및 복원 임시 사본을 보유하기에 충분한 중복 스토리지가 없기 때문에 실제로는 실용적이지 않습니다. 또한 복원에는 몇 시간 동안 풀이 오프라인 상태 여야합니다.

  2. 타임 스탬프가 2013보다 오래된 파일을 다시 복사하는 스크립트를 작성하십시오. 특히 공백이나 다른 특수 문자에 질식하여 원래 이름을 엉망으로 만드는 경우 잠재적으로 위험합니다.

ZFS가 현재 압축 알고리즘을 사용하여 레거시 블록을 다시 압축 할 수있는 방법이 있습니까? 스크럽과 비슷하지만 압축을 치유합니다.

관련 질문 : 각 유형의 압축 알고리즘의 사용법을 볼 수있는 방법이 있습니까? zdb는 개별 압축으로 분류하지 않고 전체 압축 통계 만 표시합니다.


2
당신이 유일하게 두 가지 옵션을 지명했다고 확신합니다. 이 기능이 존재하지 않는 이유와이 기능을 전혀 원하지 않는 문제 에 대해서는 이슈 3013 의 토론을 참조하십시오 .
Michael Hampton

2
lz4는 lzjb보다 압축 시 최대 10 % 더 우수합니다. 데이터의 20 %를 10 % 더 압축 할 수 있으면 최대 2 % 더 많은 여유 공간이 확보됩니다. 그만한 가치가 있습니까?
파이프

1
복사를 위해 쉘 스크립트를 작성하는 경우 스크립트 export LC_ALL=C의 시작 부분에 추가 하면 파일 이름의 모든 비 ASCII 특수 문자는 그대로 유지됩니다. 공백과 대시를 그대로 유지하는 것은 더 까다 롭습니다. 큰 따옴표를 사용하십시오 ( --예 :) cp -- "$SOURCE" "$TARGET".
pts

4
@pipe Space는 (매우) 작은 장점이지만 압축 해제 속도에 더 관심이 있습니다. FreeBSD zpool-features 맨 페이지 : "일반적으로 lz4 압축은 압축 가능 데이터에서 약 50 % 더 빠르며 압축 불가능한 데이터에서 lzjb보다 200 % 빠릅니다. 또한 압축 해제시 약 80 % 더 빠르며 압축 비율은 약 10 % 더 좋습니다. "
rowan194

@pts 나는 기본적인 쉘 프로그래밍 규칙 (변수 주위에 큰 따옴표 또는 사용 --) " trickier"를 따르지 않을 것 입니다. 예를 들어 SQL 삽입을 피하는 것만 큼 중요합니다.
glglgl

답변:


14

데이터 (전체 또는 부분)를 다시 복사하거나 zfs에서 새 풀 또는 ZFS 파일 시스템으로 데이터를 보내거나 받아야합니다.

다른 옵션은 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.