,

BTRFS의 주요한 특징

인터넷에서 검색해서 얻을수 있는 특징은 저는 중요하지 않다고 생각합니다.
구조 같은 정보들이 있던데, 내가 BTRFS 개발자도 아니고, BTRFS 사용 중 버그가 발생하면 버그를 찾아서 수정하여 commit할 것도 아닌걸요.
중요한건 내 시스템에 어떤 결과를 가져올 것인가? 아니겠습니까.

제가 생각했을 때 큰 특징은 이 두가지입니다.

1. 리눅스 재단에서 "현재" 개발하는 filesystem

리눅스 커널 버전 5.19, 6.1, 6.3에서 계속 기능의 추가와 성능의 향상이 이루어졌습니다.
심지어 이번에 출시 될 kernel 6.3에서는 특정 환경에서는 10배에 가까운 성능이 나온다고 하더군요.
리눅스용 zfs에서는 업데이트로 인한 성능 향상을 바라기는 어렵죠.

‘btrfs vs zfs performance’라고 검색해보면 5.19 이전 커널의 btrfs와 zfs의 비교가 많습니다.
생각해보면 곧 출시될 6.3에서의 btrfs와 zfs의 성능은 과연 어떨까요

또 커널 6.5 6.7 되면 또 얼마나 달라질까요?
저는 BTRFS가 굉장히 기대가 됩니다.

그러면 Btrfs를 사용하는 배포판들을 볼까요?
Btrfs를 사용한다는 점을 강조하는 배포판은 SUSE와 Oracle Linux입니다.
특히 우리가 눈여겨 봐야 할 OS는 SUSE입니다.

부트로더에서 btrfs Snapshot으로 부팅

리눅스들은 부트로더로 GRUB을 사용하는 편인데, SUSEGRUB 부트로더에서는 read only이기는 하지만, 무려 스냅샷으로 부팅하는 것을 지원합니다.
이것은 GRUB에서 설정하는 만큼 RHEL이나 ubuntu에서도 충분히 구현 가능하다고 생각합니다.

하지만 이 것은 단연코 SUSE만 가능합니다.
패키지나 OS를 업데이트하거나 Yast 설정을 건드릴 때마다 자동으로 스냅샷이 찍힙니다.
심지어 스냅샷 설명에 어떤 작업을 해서 찍혔는지까지 나오죠.
각 스냅샷마다 방화벽 설정 변경 같은 코멘트들이 달려 있습니다.

부팅이 안되거나, 부팅 이후 문제가 발생하면 부트로더에서 특정 패키지 설치 전, 또는 설정을 변경하기 전으로 부팅할 수 있죠.

Btrfs 단점

1. SUSE만 btrfs의 혜택을 누릴수 있습니다.

물론 Btrfs라는 파일 시스템 자체는 모든 리눅스에서 가능하죠.
그러나 다른 배포판에서는 ZFS를 쓰는게 낫습니다.

ubuntuRHEL에 BTRFS를 사용하면 스냅샷이 자동으로 찍힐까요?
스냅샷으로 부팅이 가능한가요?
GUI 파티션 도구로 BTRFS의 서브 볼륨을 쉽게 제어할 수 있나요?

위에서 설명드린 대부분의 btrfs의 장점들이 대부분의 배포판에서 작동하지 않고,
위에서 설명드린 대부분의 btrfs의 장점들이 zfs를 사용하면 대부분의 배포판에서 작동합니다.

결국 BTRFS = SUSE 입니다.
ubuntu, RHEL을 사용한다면 ZFS >>>>>> Btrfs 공식이 성립되버리기 때문입니다.

그렇다면 BTRFS를 사용하기 위해서 SUSE를 사용해야 할텐데, Btrfs를 사용하려면 SUSE의 단점이 상속된다고 봐야 할까요?
SUSE는 아시아권에서는 사용자가 많지 않아서 단점이 많습니다.
하지만 SUSE의 단점이 곧 btrfs의 단점이 되지는 않습니다.

가상화를 사용하면 HOST의 OS는 크게 문제되지 않기 때문이죠.

저는 라즈베리파이 같은 저사양 모델에서도 zfs 위에 alma linux를 설치하고, 가상머신을 설치해서 또 almalinux를 설치하여 운영합니다.
zfs로 가상머신 디스크만 스냅샷을 찍고, 롤백하고, 복제하기 위해서 그렇게 운영하고 있습니다.

아마 스냅샷 기능이 좋은 zfs나 btrfs를 사용하시게 되면 대부분 이렇게 운영하시게 될거예요.
머신이 고장이 나더라도 host의 zfs로 가서 롤백 해버리면 되니까요.

그러면 HOST로 SUSE를 놓고, 가상머신 안에 almalinux를 넣고 쓰면 되겠네?
맞습니다.
그러면 btrfs 스냅샷과 qcow2 스냅샷 등을 이용해서 굉장히 안정적으로 운영할 수 있겠죠.

그러면서 비인기라는 이유로 별로 없는 패키지도 보완 가능합니다.

그럼에도 저는 결국 zfs를 선택했습니다.

SUSE는 headless가 어렵습니다.

분명히 host os와 가상머신 os를 다르게 사용하면 상호 보완 가능하다더니,
SUSE의 단점 때문에 zfs를 선택했다고 말하네요.

저는 위에서 가상머신 쓰는 이유는 zfs나 btrfs의 스냅샷을 이용해서 가상머신을 롤백하기 위함이라고 말했죠.
만약에 가상머신이 부팅이 안된다면 어떻게 하시겠습니까?
HOST에 접근해서 스냅샷을 제어해야하지 않을까요?
롤백이던, 마운트를 해서 복사를 하던 뭘 하던 HOST에 접속해야 합니다.
ssh나 웹콘솔이 되겠죠.

RHEL은 cockpit zfs 패키지도 있고, webmin zfs 패키지도 있습니다.
웹으로도 접근해서 마운트, 복원, 롤백, 스냅샷 등을 할수 있어요.

그런데 SUSE는 모바일로만 접근 가능한 상황에서는 ssh로 제어하는 방법 밖에 없습니다.

YAST. 정말 좋습니다.
그러나 웹 콘솔이 없죠.
webYaST라고 SUSE 12에서 되던것이 지금은 없어졌습니다.
또한 cockpit도 공식적으로 미지원해서 OBS(openSUSE build system으로 OBS에 소스를 올리면 OBS가 빌드/배포해주는 도구입니다)를 통해서 해야 하는데..
ARM용은 없더군요.ㅠㅠ

Yast에서 쉽게 VNC 원격을 설정할 수 있습니다.
또한 noVNC를 통해서 웹으로 원격제어를 할수 있다고 합니다.
근데 아이폰 키패드에는 컨트롤 버튼이 없어요.
ctrl+C를 누를 방법이 없습니다.
VNC 화면을 터치해도 키패드는 올라오지도 않습니다.

결국 VNC 원격은 데스크탑이 필수입니다.
가상머신이 고장이 나서 부팅이 안되면, 폰에서는 할 수 있는게 없다는 얘깁니다.

ARM 레포지토리 지원이 빈약합니다.

ubuntu처럼 ARM 레포는 ports에 있습니다.
제가 탈ubuntu한 이유 중 하나인데, SUSE도 이렇게 구현되어있더라구요.

btrfs와 linux kernel - SUSE mirror list

SUSE 공식 홈페이지에 있는 미러 리스트입니다.
ARM 기기에 Tumbleweed를 설치하려고 합니다.
Asia에서 사용할 수 있는 미러가 몇개있을까요?

1개입니다.
7번째 열이 Tumbleweed이고, 여기에 http, https, ftp 등등이 있는데, port라고 적힌 미러만이 ARM에서 가능한 미러죠.
ubuntu도 그렇습니다.
port 미러만 ARM에서 가능합니다.

여담: port 미러가 뭐길래..

메인이 아닌 아키텍쳐용 미러라고 생각하면 됩니다.
arm, ppc64 같은 주요하지 않은 아키텍처용 미러로, 도메인부터 다릅니다.

저는 라즈베리파이와 애플실리콘 맥을 사용하기 시작하면서 RHEL 계열로 이사왔습니다.

위에 suse의 mirror list 스크린샷은 구글에 suse mirror list라고 검색해서 나온 링크입니다.
구글에 ubuntu mirror list라고 검색해보세요.
카카오로 미러 바꾸는 글 따위가 나옵니다.
그리고 그거 적용하면 apt 고장납니다.
심지어 원래 주소에 #으로 주석처리하고 카카오 미러를 추가하는게 아니라, sed로 변환해버려서 복원도 불가능한, 영구 불능이 되버립니다.

되돌리기 위해 인터넷에서 우분투 기본 repo url 가져와도 작동하지 않아요.
x86과는 도메인부터가 다르니까요.

그러던 차에 만난 RHEL은 신세계였습니다.
dnf 데이터베이스는 깨져도 두 단어 입력해서 쉽게 복구할수 있고
(아마 apt도 가능은 할 것 같은데, 3년 전엔 구글링으로는 안나오더라구요.)
모든 RHEL 미러는 ARM을 지원했습니다.

소스를 받아서 빌드할 것이 아니라면 미러는 분명히 OS 선택의 기준이 된다고 생각합니다.

그리고 메인으로 관리해주는 RHEL
port로 취급하는 ubuntuSUSE는 분명히 arm 사용할 때 매우 큰 단점입니다.

정리

B-Tree Filesystem은 분명히 기대가 되는 파일 시스템입니다.

linux 커널이 지원하는 파일 시스템 중에는 가장 성능과 데이터 무결성 입장에서 가장 뛰어난 파일 시스템이라고 생각합니다.
그래서 결국 모든 배포판이 btrfs를 기본으로 사용하게 될겁니다.
그 때가 되면 btrfs를 쓸수 있을 것 같습니다.

그 때는 btrfs의 스냅샷을 찍고, 롤백하고, 마운트 할 수 있는 cockpit 패키지가 나오지 않을까요?
그 때는 dnf install할 때마다 스냅샷이 찍히지 않을까요?
(아니면 Ubuntu나 SUSE가 aarch64 미러를 메인 미러에 올려주는게 빠를수도 있구요.)
그 때는 부트로더에서 btrfs 마운트해서 chroot하여 제어할 수 있지 않을까요?
그 때는 부트로더에서 롤백하고, 부트로더에서 스냅샷 생성하고, 부트로더에서..

……?? 그 때가 되면?

네. 지금은 zfs를 쓰시죠.
지금 나열한 이것들은 현재 zfs에서 되는 기능들입니다.

조만간 zfs용 부트로더에 대해 소개해드리겠습니다.

답글 남기기

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


Ads Blocker Image Powered by Code Help Pro

광고 차단 감지됨!

닫기를 누르면 이용하실 수 있지만, 광고 차단은 해제해주시면 좋겠습니다.
Powered By
100% Free SEO Tools - Tool Kits PRO