Btrfs와 XFS 파일 시스템 간의 비교
Linux에서 사용할 수 있는 많은 파일 시스템이 있습니다. 가장 일반적인 Linux 파일 시스템에는 Ext4, Btrfs, XFS 및 ZFS가 포함됩니다. 모든 파일 시스템에는 고유한 사용 사례, 장단점이 있습니다. 사용 가능한 다양한 옵션으로 인해 사용할 파일 시스템을 결정하는 데 어려움을 겪을 수 있습니다. 선택에 도움이 되도록 이 기사에서는 XFS와 Btrfs 파일 시스템을 비교합니다. XFS 파일 시스템을 사용할지 Btrfs 파일 시스템을 사용할지 결정하기 어려운 경우 이 문서가 도움이 될 것입니다. 시작하자!
XFS 및 Btrfs 파일 시스템 소개
XFS 파일 시스템: XFS는 고성능 64비트 저널링 파일 시스템입니다. IRIX 운영 체제용으로 1993년에 Silicon Graphics, Inc.에서 처음 개발했으며 나중에 2001년에 Linux 커널로 포팅되었습니다.
Btrfs 파일 시스템: Btrfs 또는 B-Tree 파일 시스템은 최신 CoW(기록 중 복사) 파일 시스템입니다. Ext 파일 시스템에 비해 새로운 것입니다. Btrfs는 원래 2007년 Oracle Corporation에서 Linux 운영 체제용으로 설계했습니다. 2013년 11월 Btrfs 파일 시스템은 Linux 커널에 대해 안정적이라고 선언되었습니다.
기능 비교
XFS 및 Btrfs 파일 시스템은 다양한 유형의 문제를 해결하도록 설계되었습니다. XFS 파일 시스템의 설계 목표는 Btrfs 파일 시스템과 다르지만 둘 다 파일 시스템이기 때문에 심도 있게 비교할 수 있습니다.
최대 파티션 크기: XFS 파일 시스템은 8EiB(8EiB – 1바이트)보다 작은 최대 1바이트의 파티션 크기를 지원합니다.
-
Btrfs 파일 시스템은 최대 16EiB의 파티션 크기를 지원합니다.
최대 파일 크기: XFS 파일 시스템은 최대 1바이트 및 8EiB(8EiB – 1바이트) 미만의 파일 크기를 지원합니다.
Btrfs 파일 시스템은 최대 16EiB의 파일 크기를 지원합니다.
최대 파일 이름 길이: XFS 파일 시스템은 최대 255자(255바이트) 길이의 파일 이름을 지원합니다.
Btrfs 파일 시스템은 최대 255자(255바이트) 길이의 파일 이름도 지원합니다.
디렉토리 및 파일 이름에 허용되는 문자: XFS 파일 시스템은 디렉토리에서 / 및 NULL( ) 문자를 제외한 모든 문자를 허용합니다. 디렉토리 및 파일 이름.
Btrfs 파일 시스템은 디렉토리 및 파일 이름에 / 및 NULL( ) 문자를 제외한 모든 문자를 허용합니다.
참고: XFS 또는 Btrfs 파일 시스템에서는 이름이 . 및 ..인 파일이나 디렉토리를 만들 수 없습니다.
최대 경로 길이: XFS 파일 시스템에는 파일 또는 디렉토리의 경로 길이에 대한 제한이 없습니다. 따라서 깊은 디렉터리 구조를 만들고 파일을 이러한 구조로 유지할 수 있습니다.
Btrfs 파일 시스템도 마찬가지입니다.
-
최대 파일 수: XFS 파일 시스템에서 최대 264(= 18,446,744,073,709,551,616 ~= 18경) 파일을 생성할 수 있습니다.
Btrfs 파일 시스템도 마찬가지입니다.
Inode 할당 방법: inode는 파일이나 디렉토리를 설명하는 데 사용되는 파일 시스템 데이터 구조입니다. 따라서 단일 디렉토리 또는 파일에는 하나의 inode가 필요하고 두 개의 디렉토리 또는 파일에는 두 개의 inode가 필요한 식입니다.
Ext4 파일 시스템에서 파일 시스템을 생성할 때 파일 시스템이 지원할 수 있는 inode 수를 정의합니다. 파일 시스템이 생성된 후에는 이를 변경할 수 없습니다. 작은 파일을 너무 많이 만들면 파일 시스템에 여유 디스크 공간이 남아 있을 수 있지만 여유 inode가 없으면 새 파일/디렉토리를 만들 수 없습니다. 이것은 Ext4 파일 시스템의 주요 제한 사항입니다.
Ext4 파일 시스템과 달리 XFS 파일 시스템에서는 inode 할당이 유연합니다. 따라서 파일 시스템은 필요한 만큼 많은 inode를 추가할 수 있으며 절대 inode가 부족하지 않습니다.
위의 내용은 Btrfs 파일 시스템에도 적용됩니다.
체크섬/ECC 지원: Btrfs 파일 시스템은 파일 시스템에 저장된 데이터 및 메타데이터의 crc32c 체크섬을 유지합니다. 따라서 데이터 손상의 경우 Btrfs 파일 시스템은 손상을 감지하고 손상된 파일 또는 메타데이터를 복구할 수 있습니다.
XFS 파일 시스템은 메타데이터의 CRC32 체크섬만 유지합니다. Btrfs 파일 시스템과 달리 파일 시스템에 저장된 데이터의 체크섬을 유지하지 않습니다.
저널 및 Copy-on-Write 지원: XFS 파일 시스템은 저널링 파일 시스템입니다. CoW(Copy-on-Write) 지원이 없습니다.
Btrfs 파일 시스템은 CoW(Copy-on-Write) 파일 시스템이며 저널을 지원하지 않습니다.
-
파일 시스템 스냅샷: XFS 파일 시스템은 파일 시스템의 스냅샷을 찍을 수 없습니다.
Btrfs 파일 시스템은 파일 시스템의 스냅샷을 찍을 수 있습니다. Btrfs를 사용하면 파일 시스템의 읽기 전용 스냅샷과 쓰기 가능한 스냅샷을 만들 수 있습니다.
참고: 파일 시스템 스냅샷은 중요한 기능입니다. 위험한 작업을 시도하기 전에 이 기능을 사용하여 파일 시스템의 스냅샷을 찍을 수 있습니다. 일이 계획대로 진행되지 않으면 스냅샷을 통해 시스템의 모든 것이 작동했던 이전 상태로 돌아갈 수 있습니다. 이것은 Btrfs 파일 시스템의 내장 기능입니다. Btrfs 파일 시스템의 스냅샷을 생성하기 위해 타사 도구나 소프트웨어가 필요하지 않습니다.
파일 시스템 수준 암호화: Btrfs 파일 시스템은 파일 시스템 수준 암호화를 지원하지 않습니다.
XFS 파일 시스템도 마찬가지입니다.
파일 시스템 수준 중복 제거: Btrfs 파일 시스템은 파일 시스템 수준에서 중복 제거를 지원합니다. 이 기능을 사용하기 위해 타사 도구나 소프트웨어가 필요하지 않습니다.
XFS 파일 시스템도 중복 제거를 지원하지만 XFS 파일 시스템의 중복 제거 기능은 아직 실험 단계입니다.
참고: 중복 제거는 파일 시스템에서 데이터의 중복 복사본을 제거하고 파일 시스템에서 데이터 복사본(고유 데이터) 하나만 유지하는 기술입니다. 이 기술은 디스크 공간을 절약하는 데 사용됩니다.
다중 장치 지원: Btrfs 파일 시스템은 여러 장치를 지원하며 내장형 RAID 지원을 포함합니다. Btrfs 파일 시스템에는 단일 Btrfs 파일 시스템에 여러 저장 장치 또는 파티션을 추가하기 위한 내장 논리 볼륨 관리자(LVM)가 있습니다. 단일 Btrfs 파일 시스템은 여러 디스크 및 파티션에 걸쳐 있을 수 있습니다.
XFS 파일 시스템은 여러 장치를 지원하지 않습니다. 즉, 단일 XFS 파일 시스템을 여러 디스크나 파티션에 걸쳐 확장할 수 없습니다. XFS 파일 시스템에서 여러 저장 장치와 파티션을 결합하려면 LVM 2와 같은 타사 논리 볼륨 관리자를 사용해야 합니다. RAID를 설정하려면 dm-raid 또는 mdadm과 같은 타사 도구를 사용해야 합니다.
XFS 파일 시스템은 I/O(입/출력) 작업을 병렬로 실행하도록 설계되었습니다. LVM 2 또는 다른 논리 볼륨 관리자를 사용하여 여러 장치에 걸쳐 XFS 파일 시스템을 확장하면 파일 시스템 성능이 향상됩니다.
파일 시스템 수준 압축: XFS 파일 시스템에는 내장 파일 시스템 수준 압축 지원이 포함되어 있지 않습니다.
Btrfs 파일 시스템에는 파일 시스템 수준 압축 지원이 내장되어 있습니다. 이 기능을 사용하면 단일 디렉토리, 단일 파일 또는 전체 파일 시스템을 압축하여 디스크 공간을 절약할 수 있습니다.
오프라인 파일 시스템 크기 조정 기능: 파일 시스템이 마운트되지 않은 동안에는 XFS 파일 시스템을 늘리거나(파일 시스템 크기 늘리기) 축소(파일 시스템 크기 줄이기)할 수 없습니다.
파일 시스템이 마운트되지 않은 동안 Btrfs 파일 시스템을 늘리거나(파일 시스템 크기 늘리기) 축소(파일 시스템 크기 줄이기)할 수 있습니다.
온라인 파일 시스템 크기 조정 기능: 파일 시스템이 마운트되는 동안 XFS 파일 시스템을 확장(파일 시스템 크기 증가)할 수 있지만 파일 시스템이 마운트되는 동안 XFS 파일 시스템을 축소(파일 시스템 크기 감소)할 수 없습니다.
파일 시스템이 마운트되는 동안 Btrfs 파일 시스템을 늘리거나(파일 시스템 크기 늘리기) 축소(파일 시스템 크기 줄이기)할 수 있습니다.
스파스 파일: 스파스 파일 기능은 작은 파일(블록 크기보다 작음)이 파일 시스템에 저장될 때 디스크 공간을 절약합니다. XFS 및 Btrfs 파일 시스템은 모두 스파스 파일을 지원합니다.
블록 하위 할당: Btrfs 파일 시스템은 블록 하위 할당을 지원합니다.
XFS 파일 시스템은 블록 하위 할당을 지원하지 않습니다.
참고: 파일 시스템이 파일 시스템에 큰 파일을 저장할 때 큰 파일은 블록으로 분할되고 블록은 파일 시스템에 저장됩니다. 꼬리 블록이라고 하는 파일의 마지막 블록은 전체 블록을 차지하지 않습니다. 많은 작은 파일이 저장되면 전체 블록을 차지하지 않으며 많은 디스크 공간이 낭비됩니다. 블록 하위 할당을 사용하면 테일 블록(전체 블록을 차지하지 않은 다른 파일의 마지막 블록)에 다른 파일 블록의 일부를 저장하여 디스크 공간을 절약할 수 있습니다.
테일 패킹: Btrfs 파일 시스템은 테일 패킹을 지원합니다.
XFS 파일 시스템은 테일 패킹을 지원하지 않습니다.
참고: 테일 패킹은 블록 하위 할당의 일부입니다. 앞에서 설명한 것처럼 작은 파일은 전체 파일 블록을 차지하지 않습니다. 작은 파일(예: 프로그램 소스 코드)을 파일 시스템에 효율적으로 저장하기 위해 작은 파일의 테일 블록을 사용하여 다른 작은 파일을 저장합니다. 테일 패킹은 파일 시스템 성능을 향상시키고 많은 작은 파일(예: 프로그램 소스 코드)이 저장되는 파일 시스템의 디스크 공간을 절약합니다.
범위 기반 파일 시스템: XFS 및 Btrfs 파일 시스템은 모두 범위 기반 파일 시스템입니다.
참고: 익스텐트는 파일 시스템의 파일용으로 예약된 저장 장치의 연속 영역입니다. 익스텐트 기반 파일 시스템은 연속 저장 영역에 대용량 파일을 저장합니다. 이렇게 하면 파일 시스템 성능이 향상되고 스토리지 효율성이 높아집니다.
변수 파일 블록 크기: 블록 크기는 파일 시스템이 생성되기 전에 설정됩니다. 파일 시스템이 생성되면 블록 크기를 변경할 수 없습니다.
XFS 파일 시스템은 고정 블록 크기를 지원합니다.
Btrfs 파일 시스템은 가변 블록 크기를 지원합니다. 파일 시스템은 파일 크기를 기반으로 파일 시스템에 파일을 저장하기 위해 가능한 최상의 블록 크기를 결정할 수 있습니다. 이 기능은 많은 디스크 공간을 절약할 수 있습니다.
Allocate-on-flush: XFS 및 Btrfs 파일 시스템 모두 allocate-on-flush를 지원합니다.
참고: 파일 시스템은 시스템 메모리에 약간의 버퍼 공간을 할당합니다. 디스크 쓰기 요청이 있는 경우 파일 시스템은 데이터 블록을 저장 장치에 직접 쓰지 않습니다. 대신 파일 시스템은 데이터 블록을 버퍼 메모리에 저장합니다. 버퍼 메모리가 가득 차면 파일 시스템은 보류 중인 모든 데이터 블록을 저장 장치에 한 번에 씁니다. 이렇게 하면 CPU 사용량이 줄어들고 디스크 쓰기 속도가 빨라지며 디스크 조각화가 줄어듭니다.
TRIM 지원: XFS 및 Btrfs 파일 시스템 모두 SSD 저장 장치에 매우 중요한 기능인 TRIM을 지원합니다.
참고: SSD에서 파일을 제거하면 TRIM 명령은 SSD 저장 장치에 더 이상 필요하지 않은 페이지(파일 블록)를 알립니다. SSD는 플래시 스토리지에서 불필요한 페이지(파일 블록)를 지우고 새 데이터를 저장할 페이지(파일 블록)를 준비합니다. TRIM 지원이 없으면 SSD가 새 데이터로 채워짐에 따라 SSD 쓰기 속도가 점진적으로 느려집니다.
Btrfs에 비해 XFS의 장점
XFS는 고용량 저장 장치를 위한 안정적인 64비트 저널링 파일 시스템입니다.
다음과 같은 이유로 XFS 파일 시스템을 사용할 수 있습니다.
병렬 I/O(입력/출력) 지원
XFS 파일 시스템은 병렬 I/O를 지원하며 설계로 인해 파일에 대한 다중 데이터 스트림을 제공할 수 있습니다.
큰 파티션 지원
XFS 파일 시스템은 최대 8 EiB(최대 8 EiB – 1바이트)의 파티션 크기를 지원합니다.
대용량 파일 지원
XFS 파일 시스템은 최대 8 EiB(최대 8 EiB – 1바이트)의 파일 크기를 지원합니다.
저널링 지원
저널링은 정전이나 시스템 충돌이 발생한 경우 파일 시스템의 데이터 일관성을 보장합니다. 정전이나 시스템 충돌이 발생하면 저널에 저장된 데이터가 복구되어 파일 시스템에 적용됩니다.
직접 I/O
이것은 XFS 파일 시스템의 중요한 기능입니다. 저장 장치에 대한 높은 읽기/쓰기 속도가 필요한 애플리케이션에 필수적입니다. 직접 I/O를 사용하면 저장 장치의 전체 I/O 대역폭을 활용할 수 있도록 DMA(직접 메모리 액세스)를 사용하여 저장 장치가 데이터 버퍼에 직접 액세스할 수 있습니다.
보장 속도 I/O
XFS 파일 시스템은 특정 응용 프로그램을 위해 저장 장치의 대역폭을 예약할 수 있습니다. 이 기능은 실시간 애플리케이션(예: 비디오 스트리밍)에 이상적입니다.
XFS 파일 시스템의 단점
XFS 파일 시스템에는 몇 가지 단점이 있습니다.
XFS 파일 시스템의 단점은 다음과 같습니다.
내장 LVM 지원 없음
Btrfs 파일 시스템과 비교할 때 XFS 파일 시스템에는 내장 논리 볼륨 관리자가 없습니다. 따라서 논리적 볼륨 관리를 위해 LVM 2를 사용해야 합니다.
내장 RAID 지원 없음
Btrfs 파일 시스템과 비교할 때 XFS 파일 시스템에는 RAID 지원 기능이 내장되어 있지 않습니다. 따라서 dm-raid 또는 mdadm을 사용하여 RAID를 구성해야 합니다.
스냅샷 지원 없음
XFS 파일 시스템에는 Btrfs 파일 시스템과 달리 파일 시스템 스냅샷 기능이 없습니다.
저널링을 비활성화할 수 없음
일부 다른 저널링 파일 시스템과 마찬가지로 XFS 파일 시스템의 저널링 기능을 비활성화할 수 없습니다. 저널링은 USB 플래시 드라이브에 적합하지 않습니다. USB 플래시 드라이브에서 XFS 파일 시스템을 사용하는 경우 저널링 과부하로 인해 USB 플래시 디스크의 수명이 단축됩니다.
XFS에 비해 Btrfs의 장점
Btrfs 파일 시스템은 고용량 및 고성능 스토리지 서버용으로 설계된 최신 CoW(Copy-on-Write) 파일 시스템입니다. XFS는 또한 병렬 I/O 작업이 가능한 고성능 64비트 저널링 파일 시스템입니다. XFS 파일 시스템에는 Direct I/O, Guaranteed-rate I/O 등 많은 중요한 기능이 포함되어 있습니다. 그러나 XFS 파일 시스템과 비교할 때 Btrfs 파일 시스템에는 많은 장점이 있습니다.
XFS 파일 시스템에 비해 Btrfs 파일 시스템의 장점은 다음과 같습니다.
i) 내장 파일 시스템 수준 스냅샷.
ii) 여러 장치 지원.
iii) 내장형 RAID 지원.
iv) 유연한 inode 할당.
v) 더 작은 파일 저장을 위한 최적화(스파스 파일, 블록 하위 할당, 테일 패킹, 가변 블록 크기).
vi) 내장 파일 시스템 수준의 압축 지원.
이것은 XFS 파일 시스템 대신 Btrfs 파일 시스템을 선택하게 만드는 파일 시스템 기능입니다.
결론
이 기사에서는 각 파일 시스템의 가장 중요한 기능 비교를 포함하여 Btrfs 및 XFS 파일 시스템을 비교했습니다. 이 기사는 Btrfs와 XFS 파일 시스템 사이에서 결정하는 데 도움이 될 것입니다. 고유한 필요와 선호도에 따라 가장 적합한 시스템을 선택하십시오.
참조:
XFS – 위키백과 – https://en.wikipedia.org/wiki/XFS
파일 시스템 비교 – Wikipedia – https://en.wikipedia.org/wiki/Comparison_of_file_systems
XFS – 아치위키 – https://wiki.archlinux.org/index.php/XFS