glusterfs 설치 및 설정
테스트 환경
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy
시스템 역할 및 현황
역할 | 호스트명 | 아이피 | 브릭 | 비고 |
서버 노드 | kube-node1 | 192.168.0.61 | /gfsvolume/gv0 | |
서버 노드 | kube-node2 | 192.168.0.62 | /gfsvolume/gv0 | |
서버 노드 | kube-node3 | 192.168.0.63 | /gfsvolume/gv0 | |
클라이언트 | kube-control1 | 192.168.0.51 | /mnt/gfsvol |
** 노드를 hosts 파일(/etc/hosts)에 등록 또는 네임서버(DNS)에 등록
구성(Architecture)
로컬 패키지 인덱스 업데이트(APT 패키지 인덱스 업데이트)
apt update
glusterfs 서버 설치
glusterfs-server 패키지 설치
apt install -y glusterfs-server
glusterfsd(glusterfs) 버전 정보 확인
glusterfsd --version
$ glusterfsd --version
glusterfs 10.1
Repository revision: git://git.gluster.org/glusterfs.git
Copyright (c) 2006-2016 Red Hat, Inc. <https://www.gluster.org/>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
It is licensed to you under your choice of the GNU Lesser
General Public License, version 3 or any later version (LGPLv3
or later), or the GNU General Public License, version 2 (GPLv2),
in all cases as published by the Free Software Foundation.
gluster --version
glusterfs(glusterd) 시작하고 활성화하여 시스템 부팅 시 실행
systemctl --now enable glusterd
$ systemctl --now enable glusterd
Created symlink /etc/systemd/system/multi-user.target.wants/glusterd.service → /lib/systemd/system/glusterd.service.
glusterfs(glusterd) 상태 확인
systemctl status glusterd
$ systemctl status glusterd
● glusterd.service - GlusterFS, a clustered file-system server
Loaded: loaded (/lib/systemd/system/glusterd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-12-01 22:19:01 KST; 15s ago
Docs: man:glusterd(8)
Process: 5058 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 5059 (glusterd)
Tasks: 9 (limit: 4575)
Memory: 7.0M
CPU: 1.951s
CGroup: /system.slice/glusterd.service
└─5059 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO
Dec 01 22:18:59 kube-node1 systemd[1]: Starting GlusterFS, a clustered file-system server...
Dec 01 22:19:01 kube-node1 systemd[1]: Started GlusterFS, a clustered file-system server.
glusterfs 서버 구성
방화벽 설정
- 방화벽 끄기
systemctl disable ufw
systemctl stop ufw
glusterfs 신뢰할 수 있는 풀 구성(trusted storage pool)
- glusterfs 스토리지 풀(storage pool) 확인
gluster peer status
$ gluster peer status
Number of Peers: 0
node1(kube-node1)에서 스토리지 풀 구성
gluster peer probe kube-node2
$ gluster peer probe kube-node2
peer probe: success
gluster peer probe kube-node3
$ gluster peer probe kube-node3
peer probe: success
스토리지 풀 상태 확인
gluster peer status
$ gluster peer status
Number of Peers: 2
Hostname: kube-node2
Uuid: 4d9df9a9-c67f-4420-a1ac-35c5bd204839
State: Peer in Cluster (Connected)
Hostname: kube-node3
Uuid: 3709e86b-ef0c-4e00-96dd-1e44abbd675c
State: Peer in Cluster (Connected)
스토리지 풀 목록 확인
gluster pool list
$ gluster pool list
UUID Hostname State
4d9df9a9-c67f-4420-a1ac-35c5bd204839 kube-node2 Connected
3709e86b-ef0c-4e00-96dd-1e44abbd675c kube-node3 Connected
ceaefa19-5c2b-4fc9-9000-add8d8761213 localhost Connected
glusterfs 분산 볼륨 설정
브릭 디렉터리(brick directory) 생성
mkdir -pv /gfsvolume/gv0
$ mkdir -pv /gfsvolume/gv0
mkdir: created directory '/gfsvolume'
mkdir: created directory '/gfsvolume/gv0'
df -h -TP /gfsvolume
$ df -h -TP /gfsvolume
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg0-lv--0 ext4 48G 15G 31G 32% /
스토리지 볼륨 생성
- 분산 볼륨(distributed volume) : gluster volume create gfs_vol transport tcp
gluster volume create gfs_vol transport tcp kube-node1:/gfsvolume/gv0 kube-node2:/gfsvolume/gv0 kube-node3:/gfsvolume/gv0 force
$ gluster volume create gfs_vol transport tcp kube-node1:/gfsvolume/gv0 kube-node2:/gfsvolume/gv0 kube-node3:/gfsvolume/gv0 force
volume create: gfs_vol: success: please start the volume to access data
- 복제 볼륨(replicate volume) : gluster volume create gfs_vol replica 3
gluster volume create gfs_vol replica 3 kube-node1:/gfsvolume/gv0 kube-node2:/gfsvolume/gv0 kube-node3:/gfsvolume/gv0 force
gfs_vol 볼륨 정보 확인
- Type: Distribute
- Status: Created
gluster volume info
$ gluster volume info
Volume Name: gfs_vol
Type: Distribute
Volume ID: 66de0bf4-b9c4-4242-b612-33294f56fac2
Status: Created
Snapshot Count: 0
Number of Bricks: 3
Transport-type: tcp
Bricks:
Brick1: kube-node1:/gfsvolume/gv0
Brick2: kube-node2:/gfsvolume/gv0
Brick3: kube-node3:/gfsvolume/gv0
Options Reconfigured:
storage.fips-mode-rchecksum: on
transport.address-family: inet
nfs.disable: on
gfs_vol 볼륨 상태 확인
gluster volume status
$ gluster volume status
Volume gfs_vol is not started
gfs_vol 시작
gluster volume start gfs_vol
$ gluster volume start gfs_vol
volume start: gfs_vol: success
gfs_vol 볼륨 정보 확인
- Type: Distribute
- Status: Started
gluster volume info gfs_vol
$ gluster volume info gfs_vol
Volume Name: gfs_vol
Type: Distribute
Volume ID: 66de0bf4-b9c4-4242-b612-33294f56fac2
Status: Started
Snapshot Count: 0
Number of Bricks: 3
Transport-type: tcp
Bricks:
Brick1: kube-node1:/gfsvolume/gv0
Brick2: kube-node2:/gfsvolume/gv0
Brick3: kube-node3:/gfsvolume/gv0
Options Reconfigured:
storage.fips-mode-rchecksum: on
transport.address-family: inet
nfs.disable: on
gfs_vol 볼륨 상태 확인
gluster volume status
볼륨 프로파일링
각 노드의 성능에 대한 자세한 정보를 보기 위해 볼륨을 프로파일링한다
gluster volume profile gfs_vol start
$ gluster volume profile gfs_vol start
Starting volume profile on gfs_vol has been successful
gluster volume profile gfs_vol info
gluster 사용법
$ gluster --help
peer help - display help for peer commands
volume help - display help for volume commands
volume bitrot help - display help for volume bitrot commands
volume quota help - display help for volume quota commands
snapshot help - display help for snapshot commands
global help - list global commands
glusterfs 클라이언트 설치
apt update
apt install -y glusterfs-client
마운트 포인트 생성(디렉터리 생성)
mkdir -pv /mnt/gfsvol
분산 볼륨(distributed volume) 마운트
mount -t glusterfs kube-node1:/gfs_vol /mnt/gfsvol/
마운트된 파일시스템(filesystem) 확인
df -h -TP /mnt/gfsvol
$ df -h -TP /mnt/gfsvol
Filesystem Type Size Used Avail Use% Mounted on
kube-node1:/gfs_vol fuse.glusterfs 144G 42G 97G 31% /mnt/gfsvol
시스템 부팅 시 볼륨 자동 마운트(/etc/fstab 등록)
kube-node1:/gfs_vol /mnt/gfsvol glusterfs defaults,_netdev 0 0
fstab(/etc/fstab) 편집
참고URL
- GlusterFS 구축하기 https://scbyun.com/482
- Gluster Docs : https://docs.gluster.org/en/main/Install-Guide/Install/
'리눅스' 카테고리의 다른 글
[리눅스] killall 명령어 (0) | 2022.12.03 |
---|---|
[리눅스] iTop(itsm) 설치하기 (0) | 2022.12.02 |
[linux] ubuntu LTS(Long Term Support) releases cycle (0) | 2022.12.01 |
[리눅스] ping check 스크립트 (0) | 2022.12.01 |
[리눅스] 웹서버 리다이렉트(redirect) 설정 (0) | 2022.11.30 |