약 30TB 정도의 데이터 백업을 위해 백업 서버를 한대 구성하고 XFS로 포맷하고 데이터를 저장..
파일 개수가 약 1억개 정도 되다보니.. 데이터를 백업 하는 과정에서 계속 XFS 파티션이 깨지는 현상이 발생..
거기다 설상가상으로 서버이전이다 뭐다 해서 용량이 갑자기 10TB가 추가되어버린..
ㅠ_ㅠ 아.. 서버 재구성해야 하나.. 했는데..
이번기회에 ZFS로 가보자 하고 결정..
아래 내용은 Onenote에 정리해둔 내용을 옮겨적음..
[기본환경]
- OS : CentOS release 6.3 (Final) 64Bit
- Kernel : 2.6.32-279.19.1.el6.x86_64
[설치]
- Linux 시스템에서 ZFS를 사용하기 위해서는 Native ZFS를 이용하는 방법과 ZFS-FUSE를 이용하는 방법이 있으며, 각각의 방법에 따라 ZFS 버전이 달라질 수 있습니다.
- 먼저 ZFS 구성을 위해 기본적으로 필요한 항목들을 설치 합니다.
Shell > yum install kernel-devel zlib-devel libuuid-devel libblkid-devel libselinux-devel parted lsscsi |
Native ZFS는 Kernel 모듈 방식으로 동작 하기 때문에 위와 같이 kernel-devel을 반드시 설치해 주어야 합니다.
- ZFS패키지인 SPL과 ZFS 패키지를 다운로드 합니다.
다운로드는 http://www.zfsonlinux.org 에서 받을 수 있습니다.
Shell > wget http://archive.zfsonlinux.org/downloads/zfsonlinux/spl/spl-0.6.0-rc13.tar.gz Shell > wget http://archive.zfsonlinux.org/downloads/zfsonlinux/zfs/zfs-0.6.0-rc13.tar.gz |
- 다운로드한 각 패키지의 압축을 해제 한 후 설치를 진행 합니다.
# spl install Shell > tar xvfz spl-0.6.0-rc13.tar.gz Shell > cd spl-0.6.0-rc13 Shell > ./configure && make rpm Shell > rpm -Uvh *.x86_64.rpm Shell > cd ..
# zfs install Shell > tar xvfz zfs-0.6.0-rc13.tar.gz Shell > cd zfs-0.6.0-rc13 Shell > ./configure && make rpm Shell> rpm -Uvh *.x86_64.rpm Shell > cd .. |
- 설치된 zfs 커널 모듈을 인식시켜 줍니다.
Shell > modprobe zfs Shell > lsmod | grep -i zfs |
- ZFS Spool을 생성 합니다.
여기서 ZFS Spool을 만들때 단일 디스크를 사용할 것인지 아니면 여러 개의 단일 디스크를 소프트웨어 레이드 방식으로 구성 할 것인지를 결정 할 수 있습니다. ZFS Spool을 생성할 때에는 zpool 명령어를 사용하며, 해당 명령어에는 다양한 기능들이 포함되어 있으므로 자세한 내용은 공식 Document를 참조하시기 바랍니다.
아래에서는 단일 디스크와 2개 디스크를 미러링 하는 방법, 그리고 4개 이상의 디스크를 Raid5로 구성하는 방법을 설명 하겠습니다.
# EX : zpool [명령어] [옵션] spool # CREATE EX : zpool create [-f|-n] [-o property=value] [-m mountpoint] pool vdev
# /dev/sdb 디스크를 backup 스풀로 생성하며, compress option을 기본설정 하도록 한다. Shell > zpool create -o compress=on backup disk /dev/sdb
# /dev/sdb 디스크와 /dev/sdc 디스크를 Backup 스풀로 생성하며, Raid1 구성 및 Compress option을 설정 하도록 한다. Shell > zpool create -o compress=on backup mirror /dev/sdb /dev/sdc
# /dev/sd[b-f] 디스크(총 5개)중 4개를 Raid5 (Parity Disk 1)구성하고 나머지 1개의 디스크는 Hot Spare 구성을 한 Backup 스풀을 구성하고 /backup_spool 이라는 디렉토리에 마운트 되도록 한다. Shell > zpool create -m /backup_spool backup raidz1 /dev/sdb /dev/sdc /dev/sdd /dev/sde spare /dev/sdf |
- ZFS Spool에 ZFS 파일 시스템을 생성 합니다.
ZFS는 Spool의 공간을 이용하여 파일시스템을 생성할 수 있으며, 각각의 파일시스템은 Spool에 적용된 property Option을 상속하게 됩니다.
# EX : zfs [명령어] [옵션] # CREATE EX : zfs create [-p] [-o] filesystem
# backup 스풀의 공간을 이용하여 maildata 라는 파일시스템을 생성하고 자동 압축되지 않도록 구성 한다. Shell > zfs create -o compress=off backup/maildata
# Backup 스풀의 공간을 이용하여 mysql 라는 파일시스템을 생성하고 자동압축되지 않으며, /data/mysql로 마운트 되도록 한다. Shell > zfs create -o compress=off -o mountpoint=/data/mysql backup/mysql
# Backup 스풀의 공간을 이용하여 user 라는 파일시스템을 생성하고 자동압축되며, 500GB의 쿼터를 설정하고 /home/user 디렉토리에 마운트 되도록 한다. Shell > zfs create -o compress=on -o mountpoint=/home/user -o quota=500GB backup/user |
ZFS로 구성한 후 Compression 옵션 덕분에 실제 8TB 정도 되는 데이터는 5.6TB 정도로 압축되어 저장되었다는 후문이...
ZFS 사랑해요~!
'Linux' 카테고리의 다른 글
Centos 6.4에서 Dell OMSA 설치후 실행에 문제가 있을때 (0) | 2013.04.19 |
---|---|
Rsync를 상위 버전으로 업그레이드 한 후 /usr/local/bin/rsync: symbol lookup error: /usr/local/bin/rsync: undefined symbol: locale_charset 에러 발생시 (0) | 2012.11.27 |
Centos6 설치 후 Ethernet Device Name이 em 또는 다른 이름으로 나올때 처리 방법 (0) | 2012.05.07 |
fstab 손상으로 Read-only 부팅이 되었을때 가장 빠르게 복구 하는 방법 (0) | 2012.02.15 |
Centos 6 설치 이후 gcrypt에 대한 ldconfig 설정이 되지 않았을때 (0) | 2011.12.28 |