glusterfs 3.3 설치 및 구성
1. 다운로드
2. 설치
$> ./configure
<모듈이 사전 설치 되지 않아 에러발생시>
$> yum install python-cytpes.x86_64 #configure: error: python does not have ctypes support
$> yum install flex.x86_64 #configure: error: Flex or lex required to build glusterfs.
$> yum install bison #configure: error: GNU Bison required to build glusterfs.
$> yum install openssl #configure: error: OpenSSL crypto library is required to build glusterfs
$> make
$> make install
$> glusterfs --version
$> chkconfig glusterd on
<cluster>
* cluster에서 ./configure, make, make install 과정을 각 노드에 로그인해서 수행해야함.
3. Storage pool 구성
$> gluster peer probe slave-0-0 # 노드 하나씩 추가
$> gluster peer status # 구가된 peer 상태 확인
* peer 삭제
$> gluster peer detach slave-0-0
<cluster>
* peer 모두 등록 후 rocks run host "hostname; ls -al /var/lib/glusterd/peers/ | wc -l" 를 통해 모든 노드에 peer가 잘 등록되었는지 확인
* 만약 일부 노드에서 peer가 다 등록되어 있지 않다면, /etc/hosts 파일에 각 노드들 도메인이름, IP 넣어 주면 자동 등록됨
4. 볼륨 생성
$> gluster volume create <volume_name> server1:/dir server2:/dir ...
예 $> gluster volume create gv10 slave-0-0:/disk1 slave-0-0:/disk2 slave-0-1:/disk1 slave-0-1:/disk1
$> gluster volume start <volume_name>
* 볼륨 삭제
$> gluster volume stop <volume_name>
$> gluster volume delete <volume_name>
* "operation failed 에러 발생시" /etc/init.d/glusterd restart
* delete 후에도 info 에서 리스트 나타날 경우" 다시 해당 gluster volume start 한 후 stop, delete 한다.
* delete 가 안될 경우 모든 서버에서 정보가 삭제되었는지 확인한다. 한군데라도 정보가 있으면, 볼륨 정보가 다시 생성된다. (gfs는 따로 마스터가 없는 특징)
* 특정 다른 서버에 접속하여 볼륨을 삭제 하는 방법도 있다.
* 참고: volume 정보 저장 디렉토리 /var/lib/glusterd/vols/
* 볼륨상태 확인
$> gluster volume info <volume_name>
$> gluster volume status
$> gluster volume list
* 볼륨생성시 아래와 같은 에러 발생시
GlusterFS: {path} or a prefix of it is already part of a volume
setfattr -x trusted.glusterfs.volume-id /disk1
setfattr -x trusted.gfid /disk1
rm -rf /disk1/.glusterfs
<cluster>
rocks run host "setfattr -x trusted.glusterfs.volume-id /disk1"
rocks run host "setfattr -x trusted.gfid /disk1"
rocks run host "rm -rf /disk1/.glusterfs"
* gluster volume create gv10 replica 3 과 같이 replica 설정시에는 brick의 수가 replica 수의 배수만큼 있어야 한다.
* 볼륨 생성후 조금 시간 후 (약 10초?) 다른 명령어 주길 권함
* 볼륨 구성은 되나, 마운트가 되지 않을 때
--> network 상에서 latency time이 길어지게 되면, / 밑에 core 파일을 생성하고 에러가 발생한다.
--> gfs로 구성시에는 network interface에 대한 고민을 해야한다. rdma
--> 특히 볼륨구성후 nfs를 사용할때에는 대표되는 서버를 설정하게 되는데, 이 때에 특히 대표되는 서버로부터의 network load balancing을 생각하여 network 구성이 되어 있어야 performance가 나올 수 있다.
* 경험상 모두 1G로 구성된 상황에서 40개 서버, 240개 brick 으로 replica 3 을 주어 115T 까지 구성되었음 (performance는 안나옴)
* 마운트 가 되지 않을 때에는 / 밑에 core 파일이 생성되었는지 확인 (많은 브릭수)
* 마운트 되는 서버의 디렉토리가 brick 에 포함되어 있어야 함. 이렇게 해야 비교적 많은 brick 가지고 glusterfs 구성해서 마운트 할때 에러나지 않음.
<cluster>
* 모든 노드에서 볼륨 정보가 잘 공유되었는지 확인하려면 rocks run host "hostname; ls -la /var/lib/glusterd/vols/gv | wc -l" 로 확인
5. 마운트
$> mount -t glusterfs <ip_address>:/<volume_name> /gfsshare/
glusterfs 를 구성하기 위해서는 인프라 설계부터 glusterfs 를 위한 방식으로 구성되어야 performance가 날 수 있다. 즉, 하나의 서버의 로칼 디스크는 raid5 등으로 묶어 서버를 하나의 brick 으로 사용할 수 있게 한다. 그리고 구성해야하는 사이즈가 100T 이상일 경우에는 bonding 방법이나 10G 등과 같이 network bandwidth를 충분히 잡아 줘야 구성도 되고 속도도 나온다. glusterfs에서는 10G 구성이 가능하게 모듈을 지원한다. 결국 이 방법도 사이즈를 크게 하려면 돈이 많이 든다는 이야기이다. 결국 hadoop을 다시 써야 한다는 말인가..ㅋ
'TA > Common' 카테고리의 다른 글
grep 사용시 or 사용 방법 (0) | 2013.02.04 |
---|---|
umount: device is busy (0) | 2013.02.04 |
ssh 접속시 환영메시지 생성하는 방법 (0) | 2013.02.04 |
설치된 OS 버전 확인 (0) | 2013.02.04 |
disk 추가 후, partition, format (0) | 2013.02.04 |