gluster 구축 (vm 6대) 간략한 매뉴얼

2016. 10. 31. 19:02OS/리눅스

반응형

CentOS 6.6 6대

Ctypes-1.0.1

Glusterfs-3.3.2

사용


Gluster는 파일 동기화 프로그램 중 하나로 lsync, rsync와의 차이점은 Gluster가 훨씬 가볍다는 것과 디스크 사용량이 80%를 넘어가면 작동하지 않는 점.


yum install openssl* -y

yum install python* -y

yum install fuse fuse-devel flex bison python-devel ctype -y

yum install -y glusterfs glusterfs-fuse


mkdir /mnt/glust



tar xvzf  ctypes-1.0.1.tar.gz

cd  ctypes-1.0.1


python setup.py build

python setup.py install


이제 Gluster Source를 다운로드하고 설치


wget http://download.gluster.org/pub/gluster/glusterfs/3.3/LATEST/glusterfs-3.3.2.tar.gz

tar xvzf glusterfs-3.3.2.tar.gz

cd  glusterfs-3.3.2

./configure --enable-fusermount

make && make install

ldconfig


chkconfig glusterd on

service glusterd start


gluster peer probe xxx.xxx.xxx.xxx

(해당 서버 ip 추가)

gluster peer status

(gluster로 연결된 서버 내역 리스트)


글러스터에 새로운 볼륨 추가

gluster volume create backup2 replica 2 transport tcp 192.168.245.129:/path/ 192.168.245.130:/path/ 192.168.245.131:/raid/path/ 192.168.245.132:/raid/path/ 192.168.245.133:/path/ 192.168.245.135:/path/

(볼륨 생성)


만약 

[DIR] or a prefix of it is already part of a volume

라는 에러가 발생하면 모든 서버의 해당 디렉토리로 가서

setfattr -x trusted.glusterfs.volume-id /path/

라고 입력해 준 후 다시 생성하면 생성됨


/etc/fstab 에 내용 추가


#

# /etc/fstab

# Created by anaconda on Thu Oct 27 07:38:22 2016

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=3a1d0755-5dc6-412e-9aae-3b3c98e8e6da /                       ext4    defaults        1 1

UUID=95b187c4-04e7-4199-a327-a99c45f3dce4 /boot                   ext4    defaults        1 2

UUID=f1d7f47d-390d-4089-950e-26e2eb071087 swap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

/dev/sda2               /mnt/glust              ext4    defaults        0 0


vi 나온 후 

mount -a && mount

각서버들 마다 
mount -t glusterfs server_ip:/vol_name /mount path/
                                                   ||
mount -t glusterfs 192.168.245.129:/backup2 /mnt/glust


기존 볼륨에 새로운 brick 추가

gluster volume add-brick <volume_name> <add_server>:/<add_directory>

                                                                            || 

gluster volume add-brick backup2 192.168.245.135:/path/


brick 제거

gluster volume remove-brick backup2 server_ip:/path/ remove_server:/path/

                                                                            ||

gluster volume remove-brick backup2 192.168.245.129:/path/ 192.168.245.134:/path/


볼륨 삭제

gluster volume stop backup2


gluster volume delete backup2


setattr -x trusted.glusterfs.volume-id /path/


setattr -x trusted.gfid /path/


rm -rf /path/.glusterfs


볼륨 시작

gluster volume start backup2

볼륨 스톱
gluster volume stop backup2


만약 클라이언트 측에서

-bash: cd: glust: Transport endpoint is not connected


이러한 메세지가 출력될시에는 해당 gluster 볼륨이 종료 되어 있는 것으로 볼륨을 시작하고 접속을 하면 접속이 된다



vi /etc/fstab

/dev/sda2 /mnt/glust ext4 defaults 0 0(추가)


mount -t glusterfs 192.168.245.129:/backup2 /mnt/glust

각 서버들 마다 마운트 작업진행


[root@localhost glust]# gluster volume status(글러스터에 생성된 볼륨상태 확인)

Status of volume: backup2

Gluster process Port Online Pid

------------------------------------------------------------------------------

Brick 192.168.245.129:/raid/streaming/data 24009 Y 30966

Brick 192.168.245.130:/raid/streaming/data 24009 Y 29777

Brick 192.168.245.131:/raid/streaming/data 24009 Y 73862

Brick 192.168.245.132:/raid/streaming/data 24009 Y 5877

Brick 192.168.245.133:/raid/streaming/data 24009 Y 5863

Brick 192.168.245.134:/raid/streaming/data 24009 Y 5845

NFS Server on localhost 38467 Y 30972

Self-heal Daemon on localhost N/A Y 30978

NFS Server on 192.168.245.131 38467 Y 73868

Self-heal Daemon on 192.168.245.131 N/A Y 73874

NFS Server on 192.168.245.132 38467 Y 5883

Self-heal Daemon on 192.168.245.132 N/A Y 5889

NFS Server on 192.168.245.133 38467 Y 5869

Self-heal Daemon on 192.168.245.133 N/A Y 5875

NFS Server on 192.168.245.134 38467 Y 5851

Self-heal Daemon on 192.168.245.134 N/A Y 5857

NFS Server on 192.168.245.130 38467 Y 29783

Self-heal Daemon on 192.168.245.130 N/A Y 29789


이렇게 뜨고,


어느 한 서버에 파일을 추가했을 때 다른 서버에서도 동일한 파일이 같이 추가/삭제 되면 성공.




http://wiki.alghost.co.kr/index.php?title=GlusterFS_3.8_release_notes_%EC%A0%95%EB%A6%AC <== glusterfs release note


5-1. Distributed Volume


- 파일들이 볼륨의 brick 내에 적절히 배치되는 형태.

- 규모가 큰 저장소가 필요하나, 데이터의 중복성이 필요없거나 다른 하드웨어/소프트웨어로 중복성에 제공될 때 사용.

  note) Disk/Server에서 오류는 데이터를 잃어버릴 수 있다.


 


gluster> volume create test-volume server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 

Creation of test-volume has been successful. Please start the volume to access data. 

gluster> volume info 

Volume Name: test-volume 

Type: Distribute 

Status: Created 

Number of Bricks: 4 

Transport-type: tcp 

Bricks: 

Brick1: server1:/exp1 

Brick2: server2:/exp2 

Brick3: server3:/exp3

Brick3: server3:/exp4



5-2. Replicated Volume


- 파일들이 볼륨의 brick 내에 중복하여 저장된다.

- 높은 유용성과 높은 안정성이 필요할 때 사용

  note) replica의 갯수는 볼륨을 구성하는 brick의 숫자와 동일하여야 한다.


gluster> volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2

Creation of test-volume has been successful. Please start the volume to access data.


gluster> volume info

Volume Name: test-volume

Type: Replicate

Status: Created

Number of Bricks: 2

Transport-type: tcp

Bricks:

Brick1: server1:/exp1

Brick2: server2:/exp2






5-3. Striped Volume


- 파일들이 볼륨의 brick 내에 stripe되어 저장된다.

- 매우 큰 파일들을 동시에 접근하고자 할 경우에만 사용.

  note) stripe의 갯수는 볼륨을 구성하는 brick의 숫자와 동일하여야 한다.


gluster> volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2

Creation of test-volume has been successful. Please start the volume to access data.


gluster> volume info

Volume Name: test-volume

Type: Stripe

Status: Created

Number of Bricks: 2

Transport-type: tcp

Bricks:

Brick1: server1:/exp1

Brick2: server2:/exp2





Distributed Striped Volume


- 파일들이 볼륨의 brick 내의 2개 이상의 노드에 stripe되어 저장된다.

- 매우 큰 파일들을 동시에 접근하고자 하고, 저장소의 확장이 요구될 경우에 사용

  note) brick의 숫자는 stripe 갯수의 배수여야 한다.



gluster> volume create test-volume stripe 4 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

Creation of test-volume has been successful. Please start the volume to access data.

gluster> volume info


Volume Name: test-volume

Type: Distributed-Stripe

Status: Created

Number of Bricks: 2 x 2 = 4

Transport-type: tcp

Bricks:

Brick1: server1:/exp1

Brick2: server2:/exp2

Brick3: server3:/exp3

Brick4: server4:/exp4





Distributed Replicated Volume


- 분산된 파일들이 볼륨 내에 중복되어 저장된다.

- 저장소의 확장성과 높은 안정성이 중요할 때 사용

  note) brick의 숫자가 replica 갯수의 배수여야 한다. brick이 지정되는 순서는 복제 설정에 영향을 미치며, 각 replica 갯수만큼 연속적으로 나열된 brick이 replica set으로 구성된다.




gluster> volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

Creation of test-volume has been successful. Please start the volume to access data.


gluster> volume info

Volume Name: test-volume

Type: Distributed-Replicate

Status: Created

Number of Bricks: 2 x 2 = 4

Transport-type: tcp

Bricks:

Brick1: server1:/exp1

Brick2: server2:/exp2

Brick3: server3:/exp3

Brick4: server4:/exp4






Volume start, stop 및 기타기능


# 이 예제에서는 (server1, server2), (server3, server4)가 각각의 replica set이다.

- start VOLNAME : mount 하기 전에 볼륨을 start해야 한다.


gluster> volume start test-volume

Starting volume test-volume has been successful

gluster> volume info

Volume Name: test-volume

Type: Distributed-Replicate

Status: Started <-----------------------------

Number of Bricks: 2 x 2 = 4

Transport-type: tcp

Bricks:

Brick1: rose1:/exp1

Brick2: rose2:/exp2

Brick3: rose3:/exp3

Brick4: rose4:/exp4



반응형

'OS > 리눅스' 카테고리의 다른 글

원하는 것만 출력하는 옵션 feat. ps -ef  (0) 2016.11.10
파일 복사 TAR, SCP (secure copy)  (0) 2016.11.08
WAS란  (0) 2016.10.27
Centos7 libc설치  (0) 2016.03.17
리눅스 서버 시간맞추기  (0) 2014.03.17