BTRFS 시작.
■ btrfs를 사용하기 위해 패키지 설치.
[root@:~]#apt-get install btrfs-tools
■btrfs 파일 시스템 생성.(RAID0, RAID1)
예를 들어 /dev/sdb /dev/sdd /dev/sde 를 가지고 간단한 테스트.
( 본 테스트를 위한 서버중 sda는 xfs로 sdc는 시스템으로 사용중이다.)
[root@:~]# mkfs.btrfs /dev/sdb /dev/sdd /dev/sde
[단일 사용시]
[root@:~]# mkfs.btrfs -m single /dev/sdb
[멀티하드드라이브를 똑같이 사용한다면 – RAID0]
[root@:~]# mkfs.btrfs -m raid0 /dev/sdb /dev/sdd /dev/sde
[데이터는 중복되고 메타데이터는 중복되지 않기를 원한다면 – RAID0 & RAID1]
[root@:~]# mkfs.btrfs -m raid0 -d raid1 /dev/sdb /dev/sdd /dev/sde
*만약 위와 같이 명령해줄시 다음과 같은 에러 메시지를 띄우는 것은 기존의 파티셔닝 때문이니 당황하지 말고
root@osd-1:~# mkfs.btrfs -m single /dev/sdb
/dev/sdc appears to contain a partition table (dos).
Error: Use the -f option to force overwrite
옵션에 -f 를 추가하여 실행한다.
[데이터와 메터데이터가 중복되기를 원한다면 – RAID1]
[root@:~]# mkfs.btrfs -d raid1 /dev/sdb /dev/sdd /dev/sde
■ 파일시스템 정보 확인
특정 장치명으로 확인 시
[root@:~]# btrfs filesystem show /dev/sdb
[단일 장시 사용시 결과]
root@osd-1:/mnt# btrfs filesystem show /dev/sdb
Label: none uuid: dd150e79-d199-40e2-82c2-a394e9e75bc2
Total devices 1 FS bytes used 112.00KiB
devid 1 size 2.73TiB used 20.00MiB path /dev/sdb
Btrfs v3.12
btrfs를 모두 확인 시
[root@:~]# btrfs filesystem show
■ ftrfs 파일 시스템 mounting
[root@:~]# mount /dev/sdb /mnt
[root@:fstab]# pwd
/etc/fstab
[root@:fstab]# vi fstab
..
/dev/sdb /mnt/BTRFS_S btrfs defaults 0 1
..
■ 참고
일반적으로 하드디스크 장치에 대한 마운트(파일시스템)를 볼 경우 df 를 사용하여 확인한다.
btrfs로 마운트된 경로의 상세 정보를 보기위해서는 다음의 명령어를 사용한다.
[root@:~]# btrfs filesystem df /mnt/BTRFS_S
root@osd-1:/mnt# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 2.7T 1.6G 2.6T 1% /
none tmpfs 4.0K 0 4.0K 0% /sys/fs/cgroup
udev devtmpfs 7.7G 12K 7.7G 1% /dev
tmpfs tmpfs 1.6G 592K 1.6G 1% /run
none tmpfs 5.0M 0 5.0M 0% /run/lock
none tmpfs 7.7G 8.0K 7.7G 1% /run/shm
none tmpfs 100M 0 100M 0% /run/user
/dev/sdb1 xfs 2.8T 41M 2.8T 1% /var/lib/ceph/osd/ceph-0
/dev/sdc btrfs 2.8T 384K 2.8T 1% /mnt/BTRFS_S
root@osd-1:/mnt# btrfs filesystem df /mnt/BTRFS_S
Data, single: total=8.00MiB, used=256.00KiB
System, single: total=4.00MiB, used=16.00KiB
Metadata, single: total=1.01GiB, used=112.00KiB
■ Btrfs 사용 확장(이 부분은 위에서 마운트한 부분의 확장 옵션단계로 위에서 부터 따라 진행 했다면 마운트 부분을 해제 후 진행하길 바란다.)
btrfs와 압축을 함께 사용하기.
– btrfs 파일 시스템은 공간을 절약하기 위해 하드 드라이브에 압축 된 형태로 저장을 의미하는데
zlib(기본값)과 lzo를 사용하여 압축을 만들 수 있다.
lzo는 빠르고 낮은 cpu 부하를 가지며, zlib는 높은 압축 비율을 갖는다.
lzo 압축을 이용하면 처리량에 대한 성능을 항상시킬 수 있다.
* btrfs를 (비디오, 음악, 이미지등) 이미 AR 응용 프로그램 수준으로 압축 된 파일을 압축하지 않도록 주의하시기 바랍니다.
– 다음과 같이 lzo로 압축하고 btrfs 파일 시스템으로 마운트 할 수 있다.
[root@:~]# mount -o compress=lzo /dev/sdb /mnt/BTRFS_S
= zlib로 압축하여 마운트 할 경우
[root@:~]# mount -o compress=zlib /dev/sdb /mnt/BTRFS_S
( zlib는 기본값으로 생략하여 진행하여도 동일한 결과값이 나온다. ex> mount -o compress /dev/sdb /mnt/BTRFS_S )
– 이 경우 fstab의 저장 내용은 조금 다르니 주의하길 바란다.
[root@:~]# mount /dev/sdb /mnt/BTRFS_S
[root@:fstab]# pwd
/etc/fstab
..
/dev/sdb /mnt/BTRFS_S btrfs defaults,compress=lzo 0 1
..
■ Btrfs 파일 시스템이 떨어 졌을때 복구 하기.
[root@:~]# mount -o recovery /dev/sdb /mnt/BTRFS_S
■ Btrfs resizing
시스템의 리부팅이나 umounting필요 없이 온라인에서 리사이징이 가능하다.
GB = g MB=m 으로 사용
[root@:~]# btrfs filesystem resize -2g /mnt/BTRFS_S ( 기존에 가지고 있던 사이즈에러 2GB를 줄이라는 명령.)
btrfs filesystem resize +2g /mnt/BTRFS_S ( 기존에 가지고 있던 사이즈에러 2GB를 늘리라는 명령.)
btrfs filesystem resize max /mnt/BTRFS_S ( 늘릴 수 있는 최대 사이즈를 시스템에서 자동으로 잡으라는 명령.)
■ btrfs 파일시스템에 하드 드라이브 추가/제거
[추가]
예를 들어 기존에 마운트 되지 않았던 /dev/sdf를 추가 하고자 한다면,
[root@:~]# btrfs device add /dev/sde /mnt/BTRFS_S
기존에 btrfs로 묶인 것에 대해 추가한 sdf가 정상적으로 연결되었는지 확인 하고자 한다면,
[root@:~]# btrfs filesystem show /dev/sde
최초 디스크 추가시 0이외의 레이드레벨을 사용하는 경우 데이터와 메타 데이터 모두 4개의 디바이스에 걸쳐 사용이 가능하도록
파일 시스템의 balance를 실행해주어야 한다.
[root@:~]# btrfs filesystem balance /mnt/BTRFS_S
이후 재확인.
[root@:~]# btrfs filesystem show /dev/sdb
[제거]
[root@:~]# btrfs device delete /dev/sdc /mnt
[root@:~]# btrfs filesystem show /dev/sdb
하드 드라이브 제거가 실패했다면, unmount를 실행.
[root@:~]# umount /mnt/BTRFS_S
[root@:~]# umount -o degraded /dev/sdb /mnt/BTRFS_S
문제가 발생한 디스크를 제거.
하드 드라이브에 특정번호( RAID0 , RAID1)를 사용하는 경우 필요로 하는 드라이브의 최소수 이하로 할 수 없기 때문에
그대로 교체 드라이버를 추가할 수도 있다.
[root@:~]# btrfs device add /dev/sde /mnt/BTRFS_S
교체 후 다음을 진행.
[root@:~]# btrfs device delete missing /mnt/BTRFS_S
■ btrfs 파일 시스템을 사용하는 레이드의 레벨 변경.
RAID 0 –> RAID1 로 변경.
[root@:~]# btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt/BTRFS_S