저는 Samsung 840 500GB SSD가 장착된 노트북을 가지고 있고 openSUSE 12.3이 설치되어 있고 btrfs를 파일 시스템으로 사용하고 있습니다.
며칠 전 처음으로 웹 브라우저에서 북마크 파일을 저장할 수 없다는 메시지를 받았습니다. 얼마 지나지 않아 컴퓨터가 불안정해지고 다시 제대로 부팅되지 않았습니다. 라이브 시스템으로 부팅하고 이전 스냅샷 중 일부(Snapper가 자동으로 촬영한)를 삭제하면 문제가 해결되어 다시 부팅할 수 있었습니다.
df, btrfs filesystem show 및 btrfs filesystem df /의 보고서에 따르면 충돌이 발생하기 전에 파일 시스템이 약 70% 가득 찼습니다.
내 생각에는 df와 btrfs 파일 시스템 df가 파일 시스템에 충분한 공간이 남아 있다는 데 동의하면 모든 것이 정상일 것입니다. btrfs 파일 시스템의 출력 표시뒤쪽에스냅샷 삭제 방법은 다음과 같습니다.
Label: none uuid: 9eeb0c9b-c419-49f1-8476-ea0f19d262b4
Total devices 1 FS bytes used 252.33GB
devid 1 size 449.61GB used 449.61GB path /dev/dm-1
사용된 FS 바이트 수는 충돌 전보다 적지만(스냅샷이 총계에 포함된 것으로 이해했기 때문에 예상됩니다), 사용된 장치 바이트(449.61GB)는 여전히 전체로 표시됩니다.
그래서 내 질문은 사용된 장치 바이트가 장치의 전체 크기에 가까울 때 문제가 있는 것으로 간주되어야 하는가입니다. 현재 안전을 유지하기 위해 균형 조정 작업을 실행하고 있지만 사용된 장치 바이트는 실제로 btrfs가 지금까지 요청한 장치 수를 나타낼 뿐이며 FS 바이트 사용량 값은 실제 측정값이라는 인상을 받았습니다. 현재 실제 얼마나 사용되었는지.
밸런싱 작업은 시간이 많이 걸리고 Samsung 840과 같은 TLC NAND 기반 SSD가 많은 마모를 받기 때문에 이는 중요하며 이는 안정성을 유지하기 위해 정기적으로 수행해야 하는 btrfs의 꽤 큰 문제입니다.
답변1
대답은 "예"입니다. 문제에 대한 공정한 설명을 제공합니다.여기
본질적으로 전체 장치는 btrfs가 더 이상 "청크"를 할당할 수 없으며 더 이상 메타데이터를 할당할 수 없는 위치에 있을 수 있음을 의미합니다.
FS 바이트 사용량 값이 낮은 경우(저의 경우) 밸런싱 작업을 통해 문제를 해결할 수 있습니다. 예를 들어:
btrfs filesystem balance start -dusage=20 /
이 명령은 20% 이하를 사용하는 모든 블록의 균형을 재조정합니다(따라서 일부 장치 공간도 회수할 수 있습니다). 숫자가 높을수록(0~100%) 더 많은 작업이 수행됩니다.
이것은 미래의 어느 시점에 백그라운드에서 처리될 수 있을 것 같지만, Linux 3.14부터는 내가 아는 한 수동으로 처리해야 합니다.