enospc 오류로 인해 btrfs 균형 조정에 실패했습니다.

enospc 오류로 인해 btrfs 균형 조정에 실패했습니다.

[이 곳이 잘못된 것 같아서 stackoverflow에서 가져왔습니다.]

현재 ZFS를 실행하는 NAS를 대체할 수 있는 방법으로 btrfs를 테스트하고 있습니다. 각각 20GB의 장치 4개를 만들고 balance -dconvert=raid5이 옵션을 사용하여 btrfs 파일 시스템을 만들었습니다. 그런 다음 FS를 5GB 파일(현재는 9개)로 채우기 시작했습니다. ddfrom 을 사용하여 이러한 파일을 생성한 후 잠시 후 오류가 발생 dev/zero했습니다 . 시스템 로그에 다음 오류가 표시됩니다 .balance btrfs balance starterror during balancing '.' - No space left on devicebtrfs: 4 enospc errors during balance

저울을 다시 실행하면 -dusage=0예상대로 성공적으로 완료되지만 필터 없이는 작동하지 않습니다 balance -dusage=90. balance나는 왜 이것에 그렇게 관심을 두는 걸까요? 데이터 손상이 발생하지 않는지 확인하기 위해 raid5 btrfs 볼륨에서 하드 드라이브를 제거하면 어떤 일이 발생하는지 테스트했습니다. 하드 드라이브를 제거한 후 다른 하드 드라이브를 추가하고 고장난 하드 드라이브를 제거하고 싶습니다. enospc 오류로 인해 프로세스도 실패했습니다.

추가 정보는 다음과 같습니다.

(FS의 마운트 지점은 /mnt/raid/)

linux:/mnt/raid # btrfs filesystem show
Label: 'test_raid5'  uuid: 8b137115-974e-4f91-a243-ec6239c34761
    Total devices 4 FS bytes used 45.06GiB
    devid    4 size 20.00GiB used 16.03GiB path /dev/sde
    devid    3 size 20.00GiB used 17.00GiB path /dev/sdd
    devid    2 size 20.00GiB used 17.00GiB path /dev/sdc
    devid    1 size 20.00GiB used 16.04GiB path /dev/sdb

Label: none  uuid: 69c33622-1c80-4dc3-9c01-24c27def730c
    Total devices 1 FS bytes used 1.04GiB
    devid    1 size 18.92GiB used 3.04GiB path /dev/sda2

linux:/mnt/raid # btrfs filesystem df /mnt/raid/
Data, RAID5: total=48.00GiB, used=45.01GiB
System, RAID1: total=32.00MiB, used=12.00KiB
System: total=4.00MiB, used=0.00
Metadata, RAID1: total=1.00GiB, used=53.69MiB


linux:/mnt/raid # btrfs version
Btrfs v0.20-rc1+20130701


linux:/mnt/raid # uname -a
Linux linux 3.11.6-4-default #1 SMP Wed Oct 30 18:04:56 UTC 2013 (e6d4a27) x86_64 x86_64 x86_64 GNU/Linux


linux:/mnt/raid # cat /etc/os-release
NAME=openSUSE
VERSION="13.1 (Bottle)"
VERSION_ID="13.1"
PRETTY_NAME="openSUSE 13.1 (Bottle) (x86_64)"
ID=opensuse
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:opensuse:13.1"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://opensuse.org/"
ID_LIKE="suse"

btrfs 볼륨의 균형을 재조정하기 위해 여기에 더 많은 공간을 추가해야 한다는 것을 믿을 수 없습니다. 이것에 대한 생각이 있나요?

답변1

나는 "NAS"에 대해 zfs 대신 btrfs 경로를 선택하기로 결정했습니다. 나는 이전에 두 가지를 모두 테스트해 본 적이 있으며 ZFS에 대한 문서가 훨씬 더 낫다는 것을 알았고 명령줄 인터페이스에 정말 매력을 느꼈습니다. 그래서 저에게는 ZFS가 "더 나은" 선택이었습니다.

하지만 충격적인 문제가 있습니다. RAID-5에 ZFS용 2TB HDD 3개가 있고 이를 4x TB HDD로 늘리려는 경우 쉽지 않습니다. ZFS 풀을 3HDD로 설정하고 새 HDD를 추가하려면 HDD 3개를 더 추가해야 합니다(총 6x 2TB). 6개의 HDD가 있고 FS를 늘리려면 6개를 더 추가해야 합니다. 제가 가진 문제는 제 NAS 케이스가 4개 이상의 디스크를 수용할 수 없고 4개의 HDD를 감당할 수 없다는 것입니다. 이와 관련하여 Btrfs는 더 유연합니다.

하지만 막상 시작해보니 RAID-5/6 지원이 정말 형편없더군요. 나도 당신처럼 몇 가지 테스트를 했는데 결국 파일 시스템이 손상되었습니다. RAID-1에서 동일한 테스트를 수행했는데 문제 없습니다! 그래서 RAID-1에서 Btrfs를 사용하기로 결정했고 Ubuntu LTS를 사용하는 대신 항상 최신 Ubuntu 버전을 사용하여 최신 커널과 btrfs-tools 패키지를 얻습니다(Ubuntu 15.04를 사용하고 있으며 15.10으로 전환할 준비가 되어 있습니다). Ubuntu 16.04가 출시되면 (테스트 후) 결국 RAID-5로 이동하여 계속 사용할 수 있습니다. 최근 커널 변경 로그에서 RAID-5/6의 코드 기반이 더 성숙해진 것을 확인했습니다.

그래서 귀하의 질문입니다. 특히 RAID-5나 6에서 Btrfs를 사용해보고 싶다면,최신 Linux 배포판을 사용하세요.(예: Arch Linux, 최신 Ubuntu, Fedora 등) 다른 배포판의 안정성이 부족할 수 있지만 Btrfs의 경우 훨씬 더 안정적일 수 있습니다.

"사용 사례"에 대한 참고 사항: Btrfs 파일 시스템은 여기에 넣은 파일 크기에 비해 상당히 작습니다. 실제 시나리오를 잘 반영하지 못할 수도 있습니다. 큰 파일(비디오)과 작은 파일(사진, 문서)을 생성하고 파일 시스템을 80%까지 채워야 합니다. 이를 테스트하는 좋은 방법은 파일 시스템에 많은 파일을 넣은 다음 벤치마크 자체가 아니라 벤치마크로 인해 발생하는 스트레스에 대해 파일 시스템 벤치마크를 실행하는 것입니다. 당신은 그것을 사용할 수 있습니다포로닉스 테스트 스위트이를 위해(예 phoronix-test-suite benchmark pts/disk: ).

관련 정보