2016. 10. 31. 19:02ㆍOS/리눅스
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
기존 볼륨에 새로운 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
만약 클라이언트 측에서
-bash: cd: glust: Transport endpoint is not connected
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 |