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
Posted by 옥탑방람보
,