Skip to main content

Glusterfs rpm 설치

Centos환경에서 GlusterFS설치 및 운용

  1. 다운로드 : http://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.1/CentOS/
  2. 설치
    $> yum install -y fuse
    $> rpm -ivh glusterfs-3.3.1-1.el5.i386.rpm
    $> rpm -ivh glusterfs-fuse-3.3.1-1.el5.i386.rpm
    $> rpm -ivh glusterfs-devel-3.3.1-1.el5.i386.rpm
    $> rpm -ivh glusterfs-server-3.3.1-1.el5.i386.rpm
  3. gluster 데몬 실행으로 설정
    /etc/rc.d/init.d/glusterd start
    chkconfig glusterd on
    \\* 관련경로
    /etc/glusterfs/, /var/lib/glusterd/
  4. 서버에 fuse 모듈 적용 및 확인하기
    modprobe fuse
    echo "modprobe fuse" >> /etc/rc.local
    dmesg | grep -i fuse

    fuse init (API version 7.10) <-- 해당 내용이 없으면 fuse 모듈 적재가 안된 부분임.
  5. Storage Pool 구성
    1. 1. Management 서버에서 스토리지로 연결할 서버 등록(자신은 등록하지 않아도 됨)
      gluster peer probe 서버IP
      ef) gluster peer probe 192.168.150.19
  6. Pool 확인
    [root@localhost ]# gluster peer status
    Number of Peers: 1
    Hostname: 192.168.150.19
    Uuid: 0bb2e93b-1ab1-4420-91c0-e5bcf203586b
    State: Peer in Cluster (Connected)
  7. Storage pool 제거
    gluster peer detach 서버IP
    \\ef) gluster peer detach 192.168.150.19
  8. Volume 구성정보
    1. Volume 구성방식은 Distributed(분산저장, 기본)
      • 데이터가 들어오면 Brick중 한군데 서버에 저장이 됨
      • Distributed 모드에서 어느 하나 Brick이 중단될 경우, 중단된 Brick이 가지고 있는 데이터는 보이지 않게 됨.
    2. replicated(분산저장, replication 수 만큼 파일복사)
      • 데이터가 들어오면 Brick이 모두 데이터를 가지게 됨, 가장 안정적. 
    3. stripe(단독저장) 로 구성가능
      1. 데이터가 들어오면 한 데이터를 Brick에 분산 저장됨
      2. Stripe 모드에서 어느 하나 Brick이 중단될 경우, 데이터가 깨짐
  9. volume 생성 (Distributed 방식)
    gluster volume create 볼륨이름 vmlnx001:/data vmlnx002:/data vmlnx003:/data vmlnx004:/data
    \\ef) gluster volume create data 192.168.150.18:/data 192.168.150.19:/data
    \\\\gluster> volume status data
    Status of volume: data
    Gluster process                                         Port    Online  Pid
    \\------------------------------------------------------------------------------
    \\Brick 192.168.150.18:/data                              24011   Y       3245
    Brick 192.168.150.19:/data                              24011   Y       2481
    NFS Server on localhost                                 38467   Y       3251
    NFS Server on 192.168.150.19                            38467   Y       2487
    \\gluster> volume info data
    Volume Name: data
    Type: Distribute
    Volume ID: 556d6065-f888-4198-8782-65bc03979a0b
    Status: Started
    Number of Bricks: 3
    Transport-type: tcp
    Bricks:
    Brick1: 192.168.150.18:/data
    Brick2: 192.168.150.19:/data
    Brick3: 192.168.150.16:/data
  10. volume 생성 (Replicate 방식)
    gluster> volume create data replica 2 192.168.150.18:/data 192.168.150.19:/data
    \\생성한 volume 확인
    gluster> volume info all
    Volume Name: data
    Type: Replicate
    Volume ID: c2ecd1b8-708e-47d4-8f15-adcd1b081987
    Status: Started
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: 192.168.150.19:/data
    Brick2: 192.168.150.18:/data
  11. volume 생성 (stripe 방식)
    gluster volume create data stripe 2 transport tcp 192.168.150.18:/data 192.168.150.19:/data
  12. volume 생성시 기존에 생성된 volume일 경우, 생성이 실패 한다

    ef) gluster volume create data replica 3 192.168.150.18:/data 192.168.150.19:/data 192.168.150.16:/data
    \\/data or a prefix of it is already part of a volume
    • 이 경우, 등록한 노드 폴더에 들어가면, .glusterfs라는 폴더가 존재한다.
      root@localhost data]# ls -al
      합계 44
      drwxr-xr-x  4 root root  4096 12월  6 16:00 .
      drwxr-xr-x 24 root root  4096 12월  6 16:01 ..
      drw-------  7 root root  4096 12월  6 15:17 .glusterfs
      drwx------  2 root root 16384 12월  5 13:48 lost+found



      해결책은 해당 폴더 권한 수정 후 폴더 삭제하면 된다.
      setfattr -x trusted.glusterfs.volume-id /data/
      setfattr -x trusted.gfid /data/
      rm -rf .glusterfs

  13. 생성할 볼륨 활성화
    gluster> volume start data
  14. 생성한 볼륨 접근 허가 대역 지정
    gluster volume set <volume_name> auth.allow <허가IP대역>
    ef) gluster> volume set data  auth.allow 192.168.150.*
  15. Volume 삭제 방법
    gluster volume stop <volume_name>
    gluster volume delete <volume_name>
    \\ef)
    gluster volume stop data
    gluster volume delete data
  16. 생성한 Volume 마운트
    mount -t glusterfs <server_name>:<volume_name> <mount point>
    mount -t glusterfs 192.168.150.18:/data /test/
    \\[root@localhost ]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda2             4.9G  1.5G  3.2G  31% /
    /dev/sda5             9.6G  151M  9.0G   2% /data
    /dev/sda1              99M   12M   83M  13% /boot
    tmpfs                1014M     0 1014M   0% /dev/shm
    glusterfs#192.168.150.18:/data
                         9.6G  151M  9.0G   2% /test
  17. 자동으로 마운트시 /etc/fstab에 내용 추가
    192.168.150.18:/data    /mnt                    glusterfs defaults,_netdev      0 0
    1*. 이 경우, netfs 서비스가 활성화 되어있어야 재부팅 해도 마운트를 한다.
  18. Volume 확장
    용량 부족시 증설가능 (replicate모드는 최초 설정한 Brick만큼 추가 해 주어야 한다.)
    \\gluster volume add-brick dist_vol 172.27.0.9:/data
    ef) gluster volume add-brick data 192.168.150.16:/data
    Brick추가 후 volume 상태
    \\추가 전)
    gluster> volume status data
    Status of volume: data
    Gluster process                                         Port    Online  Pid
    ------------------------------------------------------------------------------
    Brick 192.168.150.18:/data                              24011   Y       3245
    Brick 192.168.150.19:/data                              24011   Y       2481
    NFS Server on localhost                                 38467   Y       3251
    NFS Server on 192.168.150.16                            38467   Y       4216
    NFS Server on 192.168.150.19                            38467   Y       2487
    \\추가 후)
    gluster> volume status data
    Status of volume: data
    Gluster process                                         Port    Online  Pid
    ------------------------------------------------------------------------------
    Brick 192.168.150.18:/data                              24011   Y       3245
    Brick 192.168.150.19:/data                              24011   Y       2481
    Brick 192.168.150.16:/data                              24011   Y       4384
    NFS Server on localhost                                 38467   Y       3268
    NFS Server on 192.168.150.16                            38467   Y       4390
    NFS Server on 192.168.150.19                            38467   Y       2501
  19. 성능튜닝
    gluster> volume set data performance.write-behind-window-size 1024MB
    gluster> volume set data  performance.cache-size 512MB