본문 바로가기

OS & network/linux

btrfs on oracle linux

몇주전에 강연 요청등으로 오라클 엔터프라이즈 리눅스의 핵심 기능을 학습 하던 중에 몇년전에 듣게 되었던 btrfs 파일시스템에 대해서 관심을 갖게 되었고 이를 테스트 해 보게 되었습니다.


btrfs 는 오라클에서 만든 파일시스템으로 솔라리스의 zfs 와 동일한 COW (Copy On Write )를 제공하는 파일시스템으로 zfs 의 가장 큰 장점중에 스냅샷이나 서브 볼륨, 확장성 등에서 매우 유사한 파일시스템입니다.


이에 대한 특징을 간략하게 알아 보면


- 익스텐트 기반의 파일 시스템

- 최대 파일 크기 16엑사바이트 (공식 문서에는 16EiB 로 표기)

- 동작 아이노드 할당

- 압축

- RAID 0 , RAID 1 등의 볼륨지원

- 체크섬 

- 스냅샷 (읽기전용 , 읽기쓰기 )

- 서브볼륨 생성



오라클 엔터프라이즈 리눅스 6.3 에서는 지원은 되나 기본 패키지가 제공이 안되므로 yum 을 이용하거나 , rpm 을 이용하여 패키지를 설치해야 합니다.

제가 테스트한 버전은 6.3과 6.4 입니다.


http://public-yum.oracle.com/repo/OracleLinux/OL6/4/base/x86_64/


#rpm -ivh  btrfs-progs-0.20-0.2.git91d9eec.0.1.el6.x86_64.rpm


설치가 완료되면 사용준비가 완료 되었습니다.


다수의 디스크를 이용하여 테스트해야 하므로 버추얼박스 와 같은 가상머신에서 사용해 보기를 권장합니다.



[oracle@oraclelinux6 ~]$ sudo fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xe6629fd3.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').


Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)

p
Partition number (1-4): 1
First cylinder (1-522, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-522, default 522): 522

Command (m for help): p

Disk /dev/sdb: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe6629fd3

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         522     4192933+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[oracle@oraclelinux6 ~]$ sudo mkfs.btrfs /dev/sdb1
WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

fs created label (null) on /dev/sdb1
	nodesize 4096 leafsize 4096 sectorsize 4096 size 4.00GB
Btrfs Btrfs v0.19

[oracle@oraclelinux6 ~]$ sudo mkdir -v /storage
mkdir: created directory `/storage' 


파일시스템을 생성 후  mkfs.btrfs 명령을 이용하여 파일시스템을 생성합니다.


이후 부터는 첨부된 파일을 이용하여 단계별로 실습할 수 있습니다.




Oracle Linux Btrfs Hands On Labs.pdf