Btrfs 설치 및 마운트 하기

관련 포스트

쉽고 빠르게


우선 우리는 btrfs 파일 시스템을 사용 할 거다. 그럼 우선 설치를 해야한다.

$ sudo apt-get install btrfs-tools


알아서 패키지를 설치하는동안 간단히 설명.

Zfs말고 btrfs를 선택한 이유는 훨신 더 유연하다는 점이 한몫 했다. 가지고있는 하드가 5~6개 뿐인 나로서는 하드6개가 모여야만 레이드-5를 묶을수있는 zfs보다는 최소 3개로도 가능한 btrfs가 더 적합했다. 또 하드 용량이 모두 같아야 인식한다는 단점, 안정성은 높지만 램을 너무많이 먹는다는점 등등 의 이유로 선택했다.

이제 레이드를 묶어보자.

$ sudo mkfs.btrfs -m raid5 -d raid5 /dev/sda /dev/sdb /dev/sdc … …


커맨드에서 -m는 메타데이터를, -d는 데이터를 의미한다. 만약 데이터만 RAID-5로 묶으려면 -m옵션을 빼주면 된다.
마운트 되어있는 하드들 (sda, sdb, …)들을 모두 써주면 끝.
아, 이때 OS가 설치된 하드는 같이묶지 말자! 피곤해진다.

잘 묶였나 확인해보자.
btrfs는 그냥 df -Th같은 커맨드로는 확인 할 수 없다.

$ sudo btrfs fi show


해보면 잘 묶였는지 알 수 있다.


마운트


레이드로 하드들을 묶었으니 묶은 하드를 마운트해서 사용하기만 하면 된다.

$ sudo mount /dev/sda /mnt


나는 /mnt라는 경로에 마운트했다. 개인 취향이나 알아서 마운트하면 된다.

마운트 정보는 서버가 리부팅 될 때 마다 초기화 되기때문에 매번 직접 마운트할게 아니라면 다음과정도 해주자.

$ sudo vim /etc/fstab
이 라인을 추가해 주자 -> /dev/sda /mnt btrfs 0 1


마운트가 됬으면 레이드 묶기는 성공이다. 잘 묶였는지 확인해 보자.

$ sudo btrfs fi show usage /mnt


이 커맨드를 치면 파일시스템의 정보가 뜨는데 처음에 여기서 멘붕이왔다.

원래 btrfs로 RAID-5로 묶으면 페리티 정보도 저장해야 하기때문에 용량이 그대로 나오지 않는다. 가용 용량은 여기서 확인이 가능하다.
용량이 더 적게나와야 하는데 왜 전체용량이 다 잡히지..? 잘못 묶은건가? 생각했다.
결론부터 말하자면 잘 묶은거니 걱정할 필요 없다.

보통의 파일시스템들은 레이드를 묶을떄 하드를 포맷한 뒤 묶는다. 포맷하는 방법중 하나인 제로-필(모든 섹터를 0으로 채우는 것)을 사용하는데 하드의 볼륨에 따라 시간이 어마어마하게 오래걸린다. 하지만 btrfs라는 파일 시스템은 똑똑해서 레이드를 묶을때 하드 전체를 포맷하는게 아니라 사용할 부분부분만 포맷해서 레이드로 묶어두는 식이다.

그래서 파일시스템 설치하고 레이드묶는 과정이 커맨드 몇개로 끝나는것.
여기에 데이터를 넣어보면 차이를 느낄수있다.



Btrfs는 기본적으로 CoW (Copy on Write)를 지원한다. cow란 파일을 수정했을 때 파일 전체를 새로 저장하는게 아닌 수정된 부분만을 체크해두는 방식이다.

장점으로는 파일을 수정하다 실수로 삭제해 버렸다 하더라도 1초만에 롤백이 가능하다. 하지만 수정이 잦은파일은 체크된 부분이 너무 많아져 느려지는 부작용이 있으므로 용도에따라 꺼 두는걸 추천한다.