안녕하세요.
이번 포스팅에서는 gluster 볼륨을 생성하는 방법에 대해 알아보겠습니다.
gluster 설치는 지난 포스팅 (http://harryp.tistory.com/740) 을 참조해주세요.
1. 용어 설명
gluster를 사용하며 자주 사용하는 용어를 정리해보겠습니다.
(1) peer, 노드
gluster는 분산 파일 시스템입니다.
여러대의 노드의 파일시스템을 하나로 묶어서 사용합니다.
이 노드를 'peer' 라고 합니다.
저는 피어나 노드를 혼용해서 사용하겠습니다.
(2) 클러스터
gluster 에서는 peer 관련 명령어를 통하여 클러스터를 구성합니다.
함께 분산 파일 시스템을 구성 할 peer의 모임을 cluster라고 생각하시면 됩니다.
(3) brick
브릭은 각 노드에서 볼륨으로 사용 할 파일시스템이라고 생각하시면 됩니다.
마운트 포인트를 이용합니다.
브릭은 '노드IP:마운트포인트' 의 형태로 표시합니다. (ex - 192.168.1.11:/mnt/test)
(4) 볼륨
서비스를 제공하는 gluster 볼륨이라고 생각하시면 됩니다.
여러개의 브릭들로 구성되어 있습니다.
사용자는 기본적으로 glusterfs 파일시스템을 통해 마운트를 하며,
NFS나 SMB, CIFS 등을 통해 마운트 하여 사용할 수 있습니다.
위 용어들을 기억해놓으시면 앞으로의 내용을 보기 편하실 겁니다.
2. 피어 탐색, 클러스터 구성
피어를 탐색하여 클러스터를 구성할 수 있습니다.
여러대의 노드 중 하나의 노드에서 다음의 명령어를 사용하여 노드를 추가 할 수 있습니다.
# gluster peer probe 상대노드IP
위 명령어를 사용하시면 'peer probe: success.' 메시지가 출력되며 피어가 추가가 됩니다.
다음 명령어로 클러스터를 구성하고 있는 피어 목록을 확인할 수 있습니다.
# gluster peer status
3. 각 노드에서 브릭 생성
각 노드에서 브릭을 생성해줍니다.
아래 작업은 모든 노드에서 진행되어야 합니다.
블록 디바이스를 그대로 사용해도 되고, LVM을 생성하여 만들어 주면 됩니다.
* LVM 생성 방법은 제 이전 포스팅 (http://harryp.tistory.com/676) 을 참조해 주세요.
gluster 브릭은 XFS 파일시스템으로 마운트가 되어야 합니다.
XFS로 포맷 후 마운트를 해줍니다.
(1) XFS 포맷
다음의 명령어를 사용합니다.
# mkfs.xfs -i size=512 블록디바이스경로 (ex - mkfs.xfs -i size=512 /dev/sdb1)
(2) 마운트 디렉토리 생성 및 마운트
저는 예시로 /mnt/gluster_test 에 마운트 하도록 하겠습니다.
우선 mkdir로 마운트 디렉토리를 생성합니다.
# mkdir /mnt/gluster_test
그리고 위에서 포맷해준 블록디바이스를 마운트 디렉토리에 마운트 해줍니다.
# mount -t xfs 블록디바이스경로 /mnt/gluster_test
4. gluster 볼륨 정책 결정
볼륨을 생성하기 전에 볼륨의 분산, 복제 정책을 결정해야 합니다.
RAID 구성 할 때와 비슷합니다.
분산은 각 브릭으로 파일을 분배하여 저장하고,
복제는 하나의 파일을 복제하여 여러 브릭에 저장합니다.
분산 정책을 사용한다면, 용량이 증가하고 I/O 속도가 증가하지만, 노드에 문제가 발생하면 파일시스템에 문제가 생깁니다.
복제 정책을 사용한다면, 용량은 하나의 브릭 용량밖에 안되지만, 안정성이 증가합니다.
2개의 노드를 사용해서 볼륨을 생성 한다면 다음의 옵션이 있습니다.
- 2개의 노드를 사용한 분산 볼륨 : 볼륨의 용량은 브릭의 사이즈의 2배가 되지만, 하나의 노드에 문제가 생기면 파일시스템에 문제가 있습니다.
- 2개의 노드를 사용한 복제 볼륨 : 볼륨의 용량은 브릭 사이즈와 동일합니다. 하지만 하나의 노드에서 문제가 발생해도 파일이 유지가 됩니다.
4개의 노드를 사용한다면
- 4개의 노드로 복제
- 4개의 노드로 분산
- 2개의 노드로 분산하여 2개의 노드로 복제 (2x2 구성이라고 얘기합니다.)
이러한 옵션으로 구성 가능합니다.
사용 환경에 따라 볼륨 정책을 결정해주어야 합니다.
5. gluster 볼륨 생성
이제 gluster 명령어를 통해 gluster 볼륨을 생성해줍니다.
볼륨을 생성하는 명령어는 'gluster volume create' 입니다.
gluster volume create
Usage:
volume create <NEW-VOLNAME> [stripe <COUNT>] [replica <COUNT> [arbiter <COUNT>]] [disperse [<COUNT>]] [disperse-data <COUNT>] [redundancy <COUNT>] [transport <tcp|rdma|tcp,rdma>] <NEW-BRICK>?<vg_name>... [force]
* 여러가지 옵션이 있는데, 이번 포스팅에서는 'replica' 옵션만 사용해보겠습니다.
기본적인 명령어는
gluster volume create 볼륨이름 볼륨정책 노드1:브릭경로 노드2:브릭경로 ....
로 생성해주시면 됩니다.
분산 정책은 따로 작성 안하셔도 되고,
복제 정책은 복제 카운트를 입력해주시면 됩니다.
만약 복제 카운트를 2개로 하실거면
gluster volume create 볼륨이름 replica 2 노드1:브릭경로 노드2:브릭경로 .... force
형태로 써주시면 됩니다.
분산 볼륨으로 할거면 중간에 'replica 2' 빼주시면 됩니다.
브릭 마운트 포인트의 하위 디렉토리 없이 최상위 디렉토리를 사용한다면 마지막에 'force' 옵션을 추가하셔야 합니다.
* 복제 예시 (볼륨 명 test, 각 브릭 마운트 포인트 /mnt/gluster_test. 노드 IP 192.168.0.10X)
(1) 2노드 복제 볼륨 - gluster volume create test replica 2 192.168.0.101:/mnt/gluster_test 192.168.0.102:/mnt/gluster_test force
(2) 2노드 분산 볼륨 - gluster volume create test 192.168.0.101:/mnt/gluster_test 192.168.0.102:/mnt/gluster_test force
(3) 4노드 복제 볼륨 - gluster volume create test replica 4 192.168.0.101:/mnt/gluster_test 192.168.0.102:/mnt/gluster_test 192.168.0.103:/mnt/gluster_test 192.168.0.104:/mnt/gluster_test force
(4) 2노드 분산 볼륨 - gluster volume create test 192.168.0.101:/mnt/gluster_test 192.168.0.102:/mnt/gluster_test 192.168.0.103:/mnt/gluster_test 192.168.0.104:/mnt/gluster_test force
(5) 4노드 복제, 분산 (2x2) 볼륨 - gluster volume create test replica 2 192.168.0.101:/mnt/gluster_test 192.168.0.102:/mnt/gluster_test 192.168.0.103:/mnt/gluster_test 192.168.0.104:/mnt/gluster_test force
볼륨 생성 후 다음 명령어로 볼륨을 시작해주면 됩니다.
# gluster volume start 볼륨명
6. glusterfs 설치 및 gluster 볼륨 마운트
이제 클라이언트에서 마운트를 해주면 됩니다.
기본적으로 glusterfs 파일시스템을 사용합니다.
(1) glusterfs FUSE 설치
repository 추가 후 yum 으로 설치 가능합니다.
# yum install glusterfs-fuse
(2) glusterfs 마운트
기본적으로 파일시스템 마운트 하는 것과 유사합니다.
-t 이후에 파일시스템 타입을 glusterfs 로 입력하시면 되고,
블럭디바이스 입력하는 곳에 '노드IP:볼륨명' 형태로 입력해주시면 됩니다.
ex) # mount -t glusterfs 192.168.0.101:test /mnt/test
'Computer System > Storage' 카테고리의 다른 글
[스토리지] lio loop-back 사용하기 (tcm_loop, tcmu) (0) | 2018.03.15 |
---|---|
[스토리지] gluster 볼륨을 nfs로 마운트 하기 (glusterfs nfs mount) (0) | 2018.03.12 |
[스토리지] CentOS 7 에서 gluster 설치하기 (glusterfs 설치) (0) | 2018.03.08 |
[스토리지] GlusterFS - 레드햇 기반 분산 파일 시스템 (Gluster, 글러스터, scale-out, 스케일 아웃) (0) | 2018.03.08 |
[스토리지] vdbench - 스토리지, 파일 시스템 벤치마킹 툴 (0) | 2018.02.07 |