파일 / 폴더의 Btrfs 조각 모음


9

방금 Btrfs 파일 시스템에 Ubuntu 11.10을 설치했으며 파일 조각 모음에 대한 질문을하고 싶습니다.

파일이나 전체 시스템을 조각 모음해야합니까?

조각 모음 # btrfs 파일 시스템 조각 모음 / pool1 조각 모음

Btrfs 조각 모음


아니요, btrs, ext4,3,2, ETC ... 드라이브 조각 모음을 요구하지 않습니다. 다른 파일 시스템처럼 드라이브가 손상됩니다.
Uri Herrera

그러나 NTFS와 거의 같은 곳은 없습니다.
Uri Herrera

답변:


13

실제로 Btrfs 파일 시스템을 수동으로 조각 모음 할 필요는 없습니다.

그렇습니다. Btrfs는 COW (copy-on-write)로, Ext보다 훨씬 많은 파일을 조각화한다는 것을 의미하지만, 온라인 상태 일 때 파일 시스템을 쉽게 조각 모음하는 기능을 포함하여 디자인의 여러 측면에서 해결됩니다. 이 발췌문 은 자세한 내용을 제공합니다 (강조 광산).

자동 조각 모음

COW (copy-on-write) 파일 시스템에는 많은 장점이 있지만 조각화와 같은 단점도 있습니다. Btrfs는 파일이 처음 디스크에 기록 될 때 데이터를 순차적으로 배치하지만 COW 설계는 파일에 대한 후속 수정은 이전 데이터 위에 기록하지 말고 빈 블록에 배치해야 함을 의미합니다. 조각화의 원인 (RPM 데이터베이스는이 문제의 일반적인 경우입니다). 또한 모든 파일 시스템에 공통적 인 조각화 문제가 발생합니다.

Btrfs는 이미이 문제를 해결할 대안을 제공합니다. 첫째, 명령을 사용하여 온라인 조각 모음을 지원합니다 btrfs filesystem defragment. 둘째, -o nodatacow데이터에 대한 COW를 비활성화 하는 마운트 옵션 이 있습니다. 이제 btrfs는 세 번째 옵션 인 -o autodefragmount 옵션을 추가합니다 . 이 메커니즘은 파일에 대한 임의의 작은 쓰기를 감지하고 자동 조각 모음 프로세스를 위해 큐에 넣습니다. 아직 가상화 또는 큰 데이터베이스 워크로드에는 적합하지 않지만 rpm, SQLite 또는 bdb 데이터베이스와 같은 작은 파일에는 적합합니다.

따라서 상당한로드에서 데이터베이스와 같은 IO 집약적 소프트웨어를 실행하지 않으려는 경우 autodefrag옵션을 사용 하여 파일 시스템을 마운트하는 한 모든 것이 좋습니다 .

파일 조각화를 확인하기 위해 filefrag 유틸리티를 사용할 수 있습니다 .

$ find /path -type f -exec filefrag {} + >frag.list
# Now you can use your favourite tools to sort the data

Systemd 시스템에서는 /var/log/journal/아마도 가장 조각난 것입니다. ~/.mozilla다른 브라우저 데이터베이스 도 볼 수 있습니다 .

조각 모음을 수행하려면 다음을 사용하십시오.

$ sudo btrfs fi defrag -r /path

조각 모음 상태를 확인하는 방법 ... 또는 조각 모음 상태를 확인하는 명령
One Zero

3
이 답변은 BTRFS 위키 ( btrfs gotchas)에 따라 잘못되었습니다 . btrfs 볼륨에서 systemd-journald를 실행하면 파일 조각화 문제를 쉽게 재현 할 수 있습니다. autodefrag 옵션으로 아직 테스트하지는 않았지만이 문제를 해결합니다.
Jonas Schäfer

나는 systemd, firefox 등으로 최소 18 개월 동안 btrfs를 풀 타임으로 사용하고 있습니다. 빠른 검사를 filefrag통해 저널 파일이 실제로 조각화되어 있음을 알 수 있습니다 (각 10k 범위 평균). 성능 영향. 나는 autodefrag켜져 있지 않고 활성화 할 때 다음에 다시 부팅 할 때 다시보고합니다.
Félix Saparelli

따라서 : 파일 조각화가 발생하고 autodefrag도움이되며 일상적인 시스템에서 성능 영향이 적습니다. 분명히로드가 많은 서버는 상황을 측정하고 조정해야 할 수도 있지만 다시 알파 소프트웨어이므로 피할 수 있습니다.
Félix Saparelli

find /path -type f -exec filefrag {} + >frag.listFIBMAP unsupported디렉토리 및 기타 비정규 파일의 모든 오류를 피하고 이상한 파일 이름을 손상시키지 않습니다.
Peter Cordes

0

이 주제를 위해 나는 그것을 명확히하는 것이 낫다고 생각합니다.

모든 파일 시스템! = 복구 / 관리 유틸리티

파일 시스템은 실제 하드웨어에서 데이터가 구성되는 방식에 관한 것입니다. 다른 모든 활동은 특히 GNU / 리눅스에서 만든 사람과 엄격하게 관련이없는 사람들이 수행하는 추가 소프트웨어 및 유틸리티를 사용하여 수행됩니다. 파일 시스템.

이것은 아마도 Btrfs의 경우는 아니지만 데스크탑 및 엔터프라이즈 환경이 서로 다른 등급의 실현성을 가진 다른 솔루션을 제공 할 수 있기 때문에 우리는 때때로 그것에 가깝습니다.

귀하의 질문에 대한 대답은 "아니오"이지만 일반 파일 시스템의 정상적인 동작과 관련된 "아니오"이며, 이것에 대해 찾을 수있는 모든 유틸리티는 단순히 다른 프로젝트입니다.

파일 시스템을 조각 모음해야 할 때는 파일 시스템 자체의 수명과 관련이없는 외부 소프트웨어를 모든 장단점과 함께 사용해야한다는 점을 명심하십시오.


0

btrfs 파일 시스템을 조각 모음하는 명령은 다음과 같습니다.

btrfs filesystem defragment sync -r -v -f [-czlib] / /home

0

이 답변을 바탕으로 나는 다음을 생각해 냈습니다.

sudo find / -xdev -type f -exec filefrag {} + | sed -En 's/(.+): (\w+) extent.*/\2 \1/p' | sort -nr

다음은 가장 조각난 파일을 먼저 형식으로 나열합니다.

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