Glusterfs rpm 설치
Centos환경에서 GlusterFS설치 및 운용
- 다운로드 : http://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.1/CentOS/
- 설치
$> 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
- gluster 데몬 실행으로 설정
/etc/rc.d/init.d/glusterd start chkconfig glusterd on \\* 관련경로 /etc/glusterfs/, /var/lib/glusterd/
- 서버에 fuse 모듈 적용 및 확인하기
modprobe fuse echo "modprobe fuse" >> /etc/rc.local dmesg | grep -i fuse
fuse init (API version 7.10) <-- 해당 내용이 없으면 fuse 모듈 적재가 안된 부분임. - Storage Pool 구성
- 1. Management 서버에서 스토리지로 연결할 서버 등록(자신은 등록하지 않아도 됨)
gluster peer probe 서버IP ef) gluster peer probe 192.168.150.19
- 1. Management 서버에서 스토리지로 연결할 서버 등록(자신은 등록하지 않아도 됨)
- 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)
- Storage pool 제거
gluster peer detach 서버IP \\ef) gluster peer detach 192.168.150.19
- Volume 구성정보
- Volume 구성방식은 Distributed(분산저장, 기본)
- 데이터가 들어오면 Brick중 한군데 서버에 저장이 됨
- Distributed 모드에서 어느 하나 Brick이 중단될 경우, 중단된 Brick이 가지고 있는 데이터는 보이지 않게 됨.
- replicated(분산저장, replication 수 만큼 파일복사)
- 데이터가 들어오면 Brick이 모두 데이터를 가지게 됨, 가장 안정적.
- stripe(단독저장) 로 구성가능
- 데이터가 들어오면 한 데이터를 Brick에 분산 저장됨
- Stripe 모드에서 어느 하나 Brick이 중단될 경우, 데이터가 깨짐
- Volume 구성방식은 Distributed(분산저장, 기본)
- 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
- 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
- volume 생성 (stripe 방식)
gluster volume create data stripe 2 transport tcp 192.168.150.18:/data 192.168.150.19:/data
-
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
- 이 경우, 등록한 노드 폴더에 들어가면, .glusterfs라는 폴더가 존재한다.
- 생성할 볼륨 활성화
gluster> volume start data
- 생성한 볼륨 접근 허가 대역 지정
gluster volume set <volume_name> auth.allow <허가IP대역> ef) gluster> volume set data auth.allow 192.168.150.*
- Volume 삭제 방법
gluster volume stop <volume_name> gluster volume delete <volume_name> \\ef) gluster volume stop data gluster volume delete data
- 생성한 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
- 자동으로 마운트시 /etc/fstab에 내용 추가
1*. 이 경우, netfs 서비스가 활성화 되어있어야 재부팅 해도 마운트를 한다.192.168.150.18:/data /mnt glusterfs defaults,_netdev 0 0
- 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
- 성능튜닝
gluster> volume set data performance.write-behind-window-size 1024MB gluster> volume set data performance.cache-size 512MB