03.10 BTRFS

Proxmox VE 8.1.3 매뉴얼을 DeepL를 이용해서 기계번역하고, 살짝 교정했습니다.
https://pve.proxmox.com/pve-docs/pve-admin-guide.html

경고: BTRFS 통합은 현재 Proxmox VE의 기술 미리보기입니다.

BTRFS는 Linux 커널에서 기본적으로 지원하는 최신 쓰기 파일 시스템으로, 데이터 및 메타데이터에 대한 체크섬을 통해 스냅샷, 내장 RAID 및 자체 복구와 같은 기능을 구현합니다. Proxmox VE 7.0부터 루트 파일 시스템에 대한 선택 사항으로 BTRFS가 도입되었습니다.

일반적인 BTRFS의 장점
  • 기존 ext4 기반 설정과 거의 동일한 기본 시스템 설정
  • 스냅샷
  • 파일 시스템 수준에서 데이터 압축
  • 쓰기 시 복제
  • RAID0, RAID1 및 RAID10
  • 데이터 손상으로부터 보호
  • 자가 복구
  • Linux 커널에서 기본적으로 지원
주의
  • RAID 레벨 5/6은 실험적이며 위험합니다.

3.10.1. root 파일 시스템으로 설치

Proxmox VE 설치 관리자를 사용하여 설치하는 경우 루트 파일 시스템으로 BTRFS를 선택할 수 있습니다. 설치 시 RAID 유형을 선택해야 합니다:

  • RAID0 : “스트라이핑”이라고도 합니다. 이러한 볼륨의 용량은 모든 디스크의 용량을 합한 값입니다. 그러나 RAID0은 중복성을 추가하지 않으므로 단일 드라이브에 장애가 발생하면 볼륨을 사용할 수 없게 됩니다.
  • RAID1 : “미러링”이라고도 합니다. 데이터가 모든 디스크에 동일하게 기록됩니다. 이 모드를 사용하려면 크기가 같은 디스크가 2개 이상 필요합니다. 결과 용량은 단일 디스크의 용량입니다.
  • RAID10 : RAID0과 RAID1의 조합입니다. 최소 4개의 디스크가 필요합니다.

설치 관리자는 디스크를 자동으로 파티션하고 /var/lib/pve/local-btrfs에 추가 하위 볼륨을 생성합니다. 이를 Proxmox VE 도구와 함께 사용하기 위해 설치 관리자는 /etc/pve/storage.cfg에 다음 구성 항목을 생성합니다:

dir: local
        path /var/lib/vz
        content iso,vztmpl,backup
        disable

btrfs: local-btrfs
        path /var/lib/pve/local-btrfs
        content iso,vztmpl,backup,images,rootdir

이렇게 하면 기본 로컬 스토리지를 명시적으로 비활성화하고 추가 하위 볼륨의 BTRFS 특정 스토리지 항목을 사용합니다.

설치 후 다음 명령은 모든 추가 하위 볼륨을 나열하며, btrfs 명령은 BTRFS 파일 시스템을 구성하고 관리하는 데 사용됩니다:

# btrfs subvolume list /
ID 256 gen 6 top level 5 path var/lib/pve/local-btrfs

3.10.2. BTRFS 관리

이 섹션에서는 일반적인 작업에 대한 몇 가지 사용 예제를 제공합니다.

BTRFS 파일 시스템 만들기

BTRFS 파일 시스템을 만들려면 mkfs.btrfs를 사용합니다. -d 및 -m 매개변수는 각각 메타데이터 및 데이터에 대한 프로필을 설정하는 데 사용됩니다. 선택 사항인 -L 매개변수를 사용하면 레이블을 설정할 수 있습니다.
일반적으로 single, raid0, raid1, raid10 모드가 지원됩니다.

My-Storage라는 레이블을 사용하여 단일 디스크 /dev/sdb에 BTRFS 파일 시스템을 만듭니다:

# mkfs.btrfs -m single -d single -L My-Storage /dev/sdb

또는 두 개의 파티션 /dev/sdb1과 /dev/sdc1에 RAID1을 생성합니다:

# mkfs.btrfs -m raid1 -d raid1 -L My-Storage /dev/sdb1 /dev/sdc1
BTRFS 파일 시스템 마운트

그런 다음 새 파일 시스템을 수동으로 마운트할 수 있습니다:

# mkdir /my-storage
# mount /dev/sdb /my-storage

다른 마운트 지점과 마찬가지로 /etc/fstab에 BTRFS를 추가하여 부팅 시 자동으로 마운트할 수도 있습니다. 블록 장치 경로를 사용하지 말고 mkfs.btrfs 명령이 출력한 UUID 값을 사용하는 것이 좋으며, 특히 BTRFS 설정에 디스크가 두 개 이상 있는 경우 더욱 그렇습니다.

예를 들어

파일 /etc/fstab

# ... other mount points left out for brevity

# using the UUID from the mkfs.btrfs output is highly recommended
UUID=e2c0c3ff-2114-4f54-b767-3a203e49f6f3 /my-storage btrfs defaults 0 0

팁: 더 이상 사용할 수 있는 UUID가 없는 경우 blkid 도구를 사용하여 블록 디바이스의 모든 속성을 나열할 수 있습니다.

그런 다음 실행하여 첫 번째 마운트를 트리거할 수 있습니다:

mount /my-storage

다음 재부팅 후 이 작업은 부팅 시 시스템에 의해 자동으로 수행됩니다.

Proxmox VE에 BTRFS 파일 시스템 추가하기

예를 들어 웹 인터페이스 또는 CLI를 사용하여 기존 BTRFS 파일 시스템을 Proxmox VE에 추가할 수 있습니다:

pvesm add btrfs my-storage --path /my-storage
하위 볼륨 만들기

하위 볼륨을 만들면 BTRFS 파일 시스템의 경로에 연결되며, 이 경로가 일반 디렉터리로 표시됩니다.

# btrfs subvolume create /some/path

이후 /some/path는 일반 디렉토리처럼 작동합니다.

하위 볼륨 삭제하기

rmdir을 통해 삭제하는 디렉터리와 달리 하위 볼륨은 btrfs 명령으로 삭제하기 위해 비워둘 필요가 없습니다.

# btrfs subvolume delete /some/path
서브볼륨의 스냅샷 만들기

BTRFS는 실제로 스냅샷과 일반 하위 볼륨을 구분하지 않으므로 스냅샷을 만드는 것은 하위 볼륨의 임의 복사본을 만드는 것으로 볼 수도 있습니다. 관례에 따라 Proxmox VE는 게스트 디스크 또는 하위 볼륨의 스냅샷을 생성할 때 읽기 전용 플래그를 사용하지만 이 플래그는 나중에 변경할 수도 있습니다.

# btrfs subvolume snapshot -r /some/path /a/new/path

이렇게 하면 /some/path에 있는 하위 볼륨의 읽기 전용 “clone”이 /a/new/path에 생성됩니다. 나중에 /some/path를 수정하면 수정하기 전에 수정된 데이터가 복사됩니다.

읽기 전용(-r) 옵션을 생략하면 두 하위 볼륨 모두 쓰기 가능합니다.

압축 사용

기본적으로 BTRFS는 데이터를 압축하지 않습니다. 압축을 사용하려면 압축 마운트 옵션을 추가하면 됩니다. 이미 쓰여진 데이터는 사후에 압축되지 않는다는 점에 유의하세요.

기본적으로 rootfs는 다음과 같이 /etc/fstab에 나열됩니다:

UUID=<uuid of your root file system> / btrfs defaults 0 1

위의 기본값에 compress=zstd, compress=lzo, compress=zlib를 다음과 같이 추가하면 됩니다:

UUID=<uuid of your root file system> / btrfs defaults,compress=zstd 0 1

이 변경 사항은 재부팅 후 적용됩니다.

공간 사용량 확인

기존 df 도구는 일부 BTRFS 설정에 대해 혼란스러운 값을 출력할 수 있습니다. 더 나은 추정치를 얻으려면 예를 들어 btrfs 파일 시스템 사용량 /PATH 명령을 사용하세요:

# btrfs fi usage /my-storage
답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like