서버 설치 · 10 min read · Dec 06, 2025

Debian 11에 GlusterFS 확장 가능한 네트워크 파일 시스템 설치하는 방법

GlusterFS 또는 Gluster 파일 시스템은 RedHat에서 개발한 무료 오픈 소스 분산 파일 시스템입니다. GlusterFS는 여러 서버로 구성된 확장 가능한 파일 시스템으로, 사용자가 GlusterFS 볼륨에 연결하고 마운트할 수 있도록 합니다.

GlusterFS는 페타바이트의 데이터를 처리할 수 있는 현대적인 파일 시스템입니다. 또한 설치 및 유지 관리가 쉽고 파일 시스템을 확장하는 것도 용이합니다.

이 튜토리얼에서는 Debian 11 서버에 GlusterFS - 분산 및 확장 가능한 네트워크 파일 시스템 -을 설치합니다. 여러 서버에 데이터를 자동으로 복제하는 GlusterFS 볼륨을 설정하고 고가용성 파일 시스템을 설정합니다. 또한 Debian 서버에 추가 디스크를 설정하기 위한 Linux 파티셔닝 도구인 ‘parted’를 사용하는 방법도 배웁니다. 마지막으로, 여러 Debian 서버 간의 GlusterFS에서 데이터 복제를 확인하고 고가용성도 확인합니다.

전제 조건

이 튜토리얼을 완료하려면 다음 요구 사항이 필요합니다:

  • 두 개 또는 세 개의 Debian 11 서버.
  • sudo/관리자 루트 권한이 있는 비루트 사용자.

이 예제에서는 다음 세 가지 Debian 11 서버를 사용합니다:

Hostname    IP Address  
--------------------------  
node1       192.168.5.50  
node2       192.168.5.56  
node3       192.168.5.57

그게 전부입니다. 이러한 요구 사항이 준비되면 GlusterFS 설치를 시작하십시오.

호스트 이름 및 FQDN 설정

첫 번째 단계는 GlusterFS에서 사용할 모든 Debian 서버의 호스트 이름 및 fqdn을 설정하는 것입니다. ‘ hostnamectl ‘ 명령을 통해 호스트 이름을 설정하고 ‘ /etc/hosts ‘ 파일을 통해 FQDN(정확한 도메인 이름)을 설정할 수 있습니다.

호스트 이름을 설정하려면 각 서버에서 다음 명령을 입력하십시오.

# node1에서 실행  
sudo hostnamectl set-hostname node1.home.lan  
  
# node2에서 실행  
sudo hostnamectl set-hostname node2.home.lan  
  
# node3에서 실행  
sudo hostnamectl set-hostname node3.home.lan

다음으로, 각 서버에서 선호하는 편집기를 사용하여 ‘ /etc/hosts ‘ 파일을 엽니다. 이 튜토리얼 전체에서 nano 편집기를 사용할 것입니다.

sudo nano /etc/hosts

파일에 다음 줄을 추가합니다. 여러 호스트 이름을 참조하는 IP 주소가 있는 경우 다음 줄로 교체하십시오.

192.168.5.50  node1.home.lan  node1  
192.168.5.56  node2.home.lan  node2  
192.168.5.57  node3.home.lan  node3

Ctrl+x를 눌러 종료하고, y를 입력하여 확인한 후 ENTER를 눌러 진행합니다.

마지막으로, 다음 명령을 실행하여 각 서버에서 fqdn을 확인합니다.

hostname -f  
cat /etc/hosts

다음과 유사한 출력을 받게 됩니다 - node1에서 fqdn은 node1.home.lan이어야 하며, node2node2.home.lan, node3node3.home.lan이어야 합니다.

setup hostname and fqdn

디스크 파티션 설정

GlusterFS 배포를 위해 특정 드라이브/디스크를 사용하는 것이 좋습니다. 이 예제에서는 각 Debian 서버에 GlusterFS 설치에 사용할 추가 디스크 ‘/dev/vdb’가 있습니다. 이 단계에서는 터미널과 ‘fdisk’ 명령을 통해 Linux 시스템에서 새 디스크를 설정하는 방법을 배웁니다.

시작하려면 다음 ‘ fdisk ‘ 명령을 실행하여 Debian 서버에서 사용 가능한 디스크 목록을 확인합니다.

sudo fdisk -l

다음과 유사한 출력을 받게 됩니다 - ‘ node1 ‘에는 운영 체제가 설치된 ‘ /dev/vda ‘와 아직 구성되지 않은 ‘ /dev/vdb ‘의 두 개의 디스크가 있습니다.

list disks

‘/dev/vdb ‘ 디스크의 파티션을 시작하려면 다음 fdisk 명령을 입력합니다. fdisk 도구의 새 프롬프트가 표시되고 ‘ /dev/vdb ‘ 디스크에 연결됩니다.

sudo fdisk /dev/vdb
  • 새 파티션을 만들려면 ‘ n ‘ 명령을 입력합니다.
  • 만들고자 하는 파티션 유형을 선택합니다. ‘ p ‘는 기본 파티션, ‘e ‘는 확장 파티션입니다. 이 예제에서는 기본 파티션을 만들 것이므로 ‘ p ‘를 입력합니다.
  • 디스크 ‘/dev/vdb ‘ 내에서 몇 개의 파티션을 만들고 싶습니까? 이 예제에서는 하나의 파티션만 만들 것이므로 ‘ 1 ‘을 입력합니다.
  • 새 파티션의 첫 번째 섹터를 선택합니다. 기본값으로 두고 ENTER를 눌러 계속합니다.
  • 마지막 섹터는 만들고자 하는 파티션의 크기를 정의하는 곳입니다. 이 예제에서는 약 5GB가 될 것이므로 ‘ +5GB ‘를 입력합니다.
  • 마지막으로 ‘w ‘를 입력하여 ‘/ dev/vdb ‘ 디스크에서 변경 사항을 확인하고 적용합니다.

출력 ‘ The partition table has been altered ‘는 변경 사항이 디스크에 적용되었음을 확인합니다.

create partition fdisk

이로써 새 파티션이 생성되었지만 여전히 사용할 수 없습니다. 새 파티션을 특정 파일 시스템 형식으로 포맷해야 하기 때문입니다. 다음 fdisk 명령을 입력하여 ‘/dev/vdb’ 디스크에 새 파티션이 생성되었는지 확인할 수 있습니다.

sudo fdiks -l

다음과 유사한 출력을 받게 됩니다 - ‘/dev/vdb ‘ 섹션에서 새 파티션 ‘ /dev/vdb1 ‘이 생성되었으며 크기는 ‘ 4.7GB ‘입니다.

list partition dev/vdb

다음으로, 새 파티션 ‘ /dev/vdb1 ‘을 포맷하기 위해 다음 명령을 실행합니다. 이 예제에서는 파티션을 ext4 파일 시스템 형식으로 포맷합니다.

sudo mkfs -t ext4 /dev/vdb1

그런 다음 다음과 유사한 출력을 받게 됩니다 - 새 파티션 ‘/dev/vda1 ‘이 ext4 파일 시스템으로 포맷되었습니다.

formating partition

자동 마운트 파티션 설정

이 단계에서는 ‘ /etc/fstab ‘ 파일을 통해 새 파티션 ‘/dev/vdb1 ‘을 자동으로 마운트하도록 설정합니다. 또한 GlusterFS에 데이터를 저장하는 데 사용될 새 디렉토리를 생성합니다.

먼저, 새 파티션 ‘ /dev/vdb1 ‘을 마운트하는 데 사용될 새 대상 디렉토리를 생성합니다.

# node1에서 실행  
mkdir -p /data/node1  
  
# node2에서 실행  
mkdir -p /data/node2  
  
# node3에서 실행  
mkdir -p /data/node3

아래 nano 편집기 명령을 사용하여 구성 파일 ‘ /etc/fstab ‘을 엽니다.

sudo nano /etc/fstab

파일에 다음 줄을 추가합니다. 이렇게 하면 새 파티션 ‘ /dev/vdb1’이 시스템 시작 시 자동으로 마운트됩니다.

# node1용  
/dev/vdb1    /data/node1    ext4    defaults    0    1  
  
# node2용  
/dev/vdb1    /data/node2    ext4    defaults    0    1  
  
# node3용  
/dev/vdb1    /data/node3    ext4    defaults    0    1

다음으로, ‘/etc/fstab’ 파일을 통해 구성한 새 파티션을 마운트하기 위해 아래 명령을 실행합니다. 오류가 없으면 준비가 완료된 것입니다.

sudo mount -a

마지막으로, 각 서버의 새로 마운트된 파티션에 ‘brick0’이라는 새 디렉토리를 생성하기 위해 아래 명령을 실행합니다.

# node1에서 실행  
mkdir -p /data/node1/brick0  
  
# node2에서 실행  
mkdir -p /data/node2/brick0  
  
# node3에서 실행  
mkdir -p /data/node3/brick0

GlusterFS 서버 설치

이 단계에서는 GlusterFS 클러스터에 사용될 Debian 서버에 GlusterFS 패키지를 설치합니다. 따라서 node1, node2, node3 서버에서 다음 명령을 실행해야 합니다.

시스템에 기본 종속성을 설치하기 위해 아래 apt 명령을 실행합니다. 프롬프트가 표시되면 y를 입력하고 ENTER를 눌러 진행합니다.

sudo apt install gnupg2 apt-transport-https software-properties-common

출력:

install dependencies

curl 명령을 통해 GlusterFS 저장소의 GPG 키를 다운로드합니다. 그런 다음 새 키를 파일 ‘ /usr/share/keyrings/glusterfs-archive-keyring.gpg ‘로 변환합니다.

curl https://download.gluster.org/pub/gluster/glusterfs/10/rsa.pub | gpg --dearmor > /usr/share/keyrings/glusterfs-archive-keyring.gpg

다음으로, 아래 명령을 실행하여 새 환경 변수를 생성하고 시스템에 GlusterFS 저장소를 추가합니다.

DEBID=$(grep 'VERSION_ID=' /etc/os-release | cut -d '=' -f 2 | tr -d '"')  
DEBVER=$(grep 'VERSION=' /etc/os-release | grep -Eo '[a-z]+')  
DEBARCH=$(dpkg --print-architecture)  
  
echo "deb [signed-by=/usr/share/keyrings/glusterfs-archive-keyring.gpg] https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/${DEBID}/${DEBARCH}/apt ${DEBVER} main" | sudo tee /etc/apt/sources.list.d/gluster.list

출력:

add repo

GPG 키와 저장소가 추가되면 아래 apt 명령을 실행하여 패키지 인덱스를 업데이트하고 새로 고칩니다.

sudo apt update

출력:

update repo

이제 다음 명령을 입력하여 GlusterFS 서버 패키지를 설치합니다. 확인을 요청받으면 y를 입력하고 ENTER를 누릅니다.

sudo apt install glusterfs-server

출력:

install glusterfs

GlusterFS가 설치된 후, 아래 systemctl 명령 유틸리티를 실행하여 GlusterFS 서비스를 시작하고 활성화합니다. 이렇게 하면 모든 서버에서 GlusterFS가 실행되고 활성화되어 시스템 시작 시 GlusterFS 서비스가 자동으로 시작됩니다.

sudo systemctl start glusterd  
sudo systemctl enable glusterd

마지막으로, 아래 systemctl 명령을 실행하여 GlusterFS 서비스를 확인하고 서비스가 실행 중이며 활성화되어 있는지 확인합니다.

sudo systemctl status glusterd

성공하면 다음과 같은 출력을 받게 됩니다 - 출력 ‘active (running)’은 GlusterFS가 실행 중임을 확인하며, 출력 ‘ …; enabled; ‘는 GlusterFS가 활성화되어 있으며 시스템 부팅 시 자동으로 시작됨을 확인합니다.

start verify glusterfs service

이 시점에서 새 디스크/파티션을 준비하고 GlusterFS 서버를 설치했습니다. 다음으로 GlusterFS 클러스터를 생성하고 초기화하는 작업을 시작합니다.

스토리지 풀 초기화

이 단계에서는 node1, node2, node3의 세 개의 Debian 서버로 GlusterFS 클러스터를 설정합니다. node1에서 GlusterFS 클러스터를 초기화하고 다른 노드인 node2node3를 클러스터에 추가합니다.

시작하기 전에 각 서버에 호스트 이름 또는 fqdn을 통해 접근할 수 있는지 확인하십시오. 각 서버에 ping 명령을 실행하여 확인할 수 있습니다.

ping node2.home.lan  
ping node3.home.lan

‘node1’ 터미널에서 아래 gluster 명령을 실행하여 클러스터 멤버 node2node3와 함께 GlusterFS 클러스터를 초기화합니다.

sudo gluster peer probe node2.home.lan  
sudo gluster peer probe node3.home.lan

출력 ‘ peer probe: success ‘는 GlusterFS 클러스터 초기화가 성공했음을 확인합니다.

initilize cluster storage pool

다음으로 ‘ node2 ‘ 터미널로 이동하여 GlusterFS 클러스터 상태를 확인하기 위해 다음 명령을 실행합니다.

sudo gluster peer status

다음과 유사한 출력을 받게 됩니다 - ‘ node2 ‘에서 GlusterFS 클러스터에 두 개의 피어인 node1node3가 연결된 상태로 표시됩니다.

status node2

이제 ‘ node3 ‘ 터미널로 이동하여 아래 명령을 실행하여 GlusterFS 클러스터 상태를 확인합니다.

sudo gluster peer status

출력 - ‘ node3 ‘에서 GlusterFS 클러스터에 두 개의 피어인 node1node2가 연결된 상태로 표시됩니다.

status node3

또한 아래 명령을 통해 GlusterFS 클러스터의 풀 목록을 확인할 수 있습니다. node1, node2, 또는 node3 서버에서 실행할 수 있습니다.

sudo gluster pool list

이로써 세 개의 Debian 서버로 GlusterFS 클러스터를 성공적으로 초기화했습니다. 다음 단계에서는 GlusterFS에서 볼륨을 생성하는 방법과 클라이언트 머신에서 GlusterFS 볼륨을 마운트하는 방법을 배웁니다.

복제 볼륨 생성

GlusterFS에서는 생성할 수 있는 여러 유형의 볼륨이 있으며, 여기에는 분산 볼륨, 복제 볼륨, 분산 복제 볼륨, 분산 볼륨 및 분산 분산 볼륨이 포함됩니다. 각 볼륨 유형에 대한 자세한 내용은 GlusterFS 공식 문서를 확인하십시오.

이 단계에서는 세 개의 서로 다른 GlusterFS 서버로 복제 유형의 새 GlusterFS 볼륨을 생성합니다. 이렇게 하면 데이터가 스토리지 풀 및 GlusterFS 클러스터 내에서 한 서버에서 다른 서버로 자동으로 복사됩니다.

아래 gluster 명령을 실행하여 GlusterFS에서 새 복제 볼륨을 생성합니다. 이 예제에서는 세 서버 node1, node2, node3 간에 복제 유형의 새 볼륨 ‘ testVolume ‘을 생성합니다.

sudo gluster volume create testVolume replica 3 node1.home.lan:/data/node1/brick0 node2.home.lan:/data/node2/brick0 node3.home.lan:/data/node3/brick0

출력 ‘ volume create: testVolume: success: … ‘는 새 볼륨 ‘ testVolume ‘이 생성되었음을 확인합니다.

다음으로, 사용하기 전에 ‘ testVolume ‘을 시작해야 하므로 다음 명령을 실행합니다.

sudo gluster volume start testVolume

출력 ‘ volume start: testVolume: success ‘는 ‘ testVolume ‘이 시작되었고 준비가 되었음을 확인합니다.

출력:

마지막으로, 아래 gluster 명령을 통해 ‘ testVolume ‘에 대한 세부 정보를 확인할 수 있습니다.

sudo gluster volume info

다음과 유사한 출력을 받게 됩니다 - ‘ testVolume ‘의 유형은 ‘ Replicated ‘, 기본 전송은 ‘ tcp ‘, 세 개의 서로 다른 서버 node1, node2, node3입니다.

출력:

verify volume

이로써 세 개의 서로 다른 서버로 GlusterFS 클러스터를 초기화하고 그 위에 복제 볼륨 ‘testVolume’을 생성했습니다. 다음 단계에서는 클라이언트 머신을 설정하고 GlusterFS 볼륨을 마운트하는 방법을 배웁니다.

클라이언트에서 GlusterFS 볼륨 마운트

이 단계에서는 클라이언트 머신에서 GlusterFS 볼륨을 마운트하는 방법을 배웁니다. 이 예제에서는 호스트 이름이 ‘ client ‘인 Ubuntu/Debian 기반 머신을 사용합니다. 이제 GlusterFS 볼륨 ‘ testVolume ‘을 클라이언트 머신에 마운트하고 ‘/etc/fstab’ 파일을 통해 자동 마운트를 설정합니다.

먼저, 다음 nano 편집기 명령을 사용하여 ‘ /etc/hosts ‘ 파일을 엽니다.

sudo nano /etc/hosts

파일에 다음 줄을 입력하고 GlusterFS 서버의 IP 주소 및 호스트 이름 세부 정보를 변경하십시오.

192.168.5.50  node1.home.lan  node1  
192.168.5.56  node2.home.lan  node2  
192.168.5.57  node3.home.lan  node3

작업이 끝나면 파일을 저장하고 편집기를 종료합니다.

다음으로, 아래 apt 명령을 실행하여 ‘glusterfs-client’ 패키지를 설치합니다. GlusterFS 볼륨을 마운트하려면 클라이언트 머신에 ‘ glusterfs-client’ 패키지를 설치해야 합니다.

sudo apt install glusterfs-client

프롬프트가 표시되면 y를 입력하고 ENTER를 눌러 진행합니다.

install glusterfs client

glusterfs-client가 설치된 후, GlusterFS 볼륨의 대상 마운트 디렉토리로 사용할 새 디렉토리 ‘/data’를 생성합니다.

mkdir /data

아래 마운트 명령을 통해 GlusterFS 볼륨 ‘ testVolume ‘을 ‘ /data’ 디렉토리에 마운트합니다.

sudo mount.glusterfs node1.home.lan:/testVolume /data

아래 df 명령을 통해 시스템에서 마운트된 디스크 목록을 확인합니다.

sudo df -h

성공하면 GlusterFS 볼륨 ‘testVolume’이 ‘/data’ 디렉토리에 마운트된 것을 볼 수 있습니다.

출력:

mount glusterfs

다음으로, ‘/ect/fstab ‘ 파일을 통해 GlusterFS 볼륨의 자동 마운트를 설정합니다.

아래 nano 편집기 명령을 사용하여 ‘/etc/fstab ‘ 파일을 엽니다.

sudo nano /etc/fstab

파일에 다음 줄을 추가합니다. 이렇게 하면 GlusterFS 볼륨 ‘ testVolume ‘이 부팅 시 자동으로 마운트됩니다.

node1.home.lan:/testVolume /data glusterfs defaults,_netdev 0 0

작업이 끝나면 파일을 저장하고 종료합니다.

이제 GlusterFS 볼륨을 마운트하기 위한 클라이언트 구성을 완료하고 ‘/etc/fstab’ 파일을 통해 GlusterFS 볼륨의 자동 마운트를 구성했습니다. 다음 단계에서는 GlusterFS 클러스터의 복제 및 고가용성을 확인합니다.

복제 및 고가용성 테스트

클라이언트 머신에서 작업 디렉토리를 ‘/data’로 이동하고 아래 명령을 사용하여 새 파일을 생성합니다. 이렇게 하면 새 파일 ‘ 1-15.md ‘가 생성됩니다.

cd /data  
touch file{1..15}.md

현재 디렉토리의 파일 목록을 가져오기 위해 ls 명령을 실행합니다.

ls

출력:

다음으로 ‘ node1 ‘ 터미널로 이동하여 ‘ /data/node1/brick0 ‘ 디렉토리로 이동합니다. 그런 다음 ls 명령을 실행하여 파일 및 디렉토리 목록을 확인합니다.

cd /data/node1/brick0  
ls

node1에서 ‘ 1-15.md ‘ 파일이 있는 것을 볼 수 있습니다.

출력:

node2 터미널로 이동하여 ‘ /data/node2/brick0 ‘ 디렉토리로 이동합니다. 그런 다음 ls 명령을 실행하여 파일 및 디렉토리 목록을 확인합니다.

cd /data/node2/brick0  
ls

node2에서 ‘ 1-15.md ‘ 파일이 있는 것을 볼 수 있습니다.

출력:

node3 터미널로 이동하여 ‘ /data/node3/brick0 ‘ 디렉토리로 이동합니다. 그런 다음 ls 명령을 실행하여 파일 및 디렉토리 목록을 확인합니다.

cd /data/node3/brick0  
ls

node3에서 ‘ 1-15.md ‘ 파일이 있는 것을 볼 수 있습니다.

출력:

이로써 클라이언트 머신에서 생성한 데이터가 GlusterFS 서버의 여러 서버에 복제되었습니다.

다음으로 GlusterFS의 고가용성을 확인하기 위해 ‘ node1 ‘을 끄거나 종료하고 클라이언트 머신이 여전히 GlusterFS 클러스터에 연결되어 있는지 확인할 수 있습니다.

node1 ‘ 터미널로 이동하여 아래 명령을 실행하여 서버를 종료합니다.

sudo poweroff

다음으로 ‘ node2 ‘ 터미널로 이동하여 아래 명령을 실행하여 GlusterFS 클러스터 상태를 확인합니다.

sudo gluster peer status

다음과 같은 출력을 받아야 합니다 - node1 상태는 ‘ Disconnected ‘입니다.

test ha

클라이언트 터미널로 이동하여 아래 명령을 실행하여 여전히 GlusterFS 클러스터에 연결되어 있는지 확인합니다.

cd /data  
ls

출력:

이로써 GlusterFS 클러스터의 고가용성이 작동하고 있습니다.

결론

이 튜토리얼에서는 세 개의 Debian 11 서버에 GlusterFS 클러스터를 설치했습니다. 또한 fdisk를 통해 Linux에서 새 디스크/파티션을 구성하고 /etc/fstab 파일을 통해 Linux 디스크/파티션의 자동 마운트를 구성했습니다. 추가로 GlusterFS에서 복제 볼륨을 생성하는 방법과 GlusterFS 볼륨을 마운트하기 위해 Debian/Ubuntu 기반 클라이언트 머신을 설정하는 방법을 배웠습니다.

이제 GlusterFS 클러스터를 활용하여 더 많은 디스크와 서버를 추가하여 네트워크에서 접근할 수 있는 고가용성 네트워크 파일 시스템을 구축할 수 있습니다. GlusterFS 관리에 대한 자세한 내용은 GlusterFS 공식 문서를 참조하십시오.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.