웹사이트 검색

GlusterFS(파일 시스템) 소개 및 RHEL/CentOS 및 Fedora에 설치


우리는 데이터가 예측할 수 없는 방식으로 증가하고 있는 세상에 살고 있으며, 이 데이터가 정형이든 비정형이든 효율적인 방식으로 저장해야 합니다. 분산 컴퓨팅 시스템은 중앙 집중식 컴퓨팅 시스템에 비해 다양한 이점을 제공합니다. 여기서 데이터는 여러 노드를 서버로 사용하여 분산 방식으로 저장됩니다.

분산 파일 시스템에서는 메타데이터 서버의 개념이 더 이상 필요하지 않습니다. 분산 파일 시스템에서는 서로 다른 서버에 분리된 모든 파일에 대한 공통 관점을 제공합니다. 이러한 스토리지 서버의 파일/디렉터리는 일반적인 방법으로 액세스됩니다.

예를 들어, 파일/디렉토리에 대한 권한은 일반적인 시스템 권한 모델(예: 소유자, 그룹 및 기타)에서와 같이 설정할 수 있습니다. 파일 시스템에 대한 액세스는 기본적으로 특정 프로토콜이 동일하게 작동하도록 설계된 방식에 따라 다릅니다.

GlusterFS란 무엇입니까?

GlusterFS는 사용자 공간, 즉 File System in User Space(FUSE)에서 사용되도록 정의된 분산 파일 시스템입니다. 자체 유연성 기능을 설명하는 소프트웨어 기반 파일 시스템입니다.

계층적 모델에서 GlusterFS의 위치를 개략적으로 나타내는 다음 그림을 살펴보십시오. 기본적으로 GlusterFS는 TCP 프로토콜을 사용합니다.

GlusterFS의 장점

  1. 혁신 – 메타데이터를 제거하고 성능을 획기적으로 향상시켜 데이터와 개체를 통합하는 데 도움이 됩니다.
  2. 탄력성 – 데이터 크기 증가 및 감소에 맞춰 조정됩니다.
  3. 선형적으로 확장 – 페타바이트 이상까지 사용할 수 있습니다.
  4. 단순성 – 관리가 쉽고 사용자 공간에서 실행되는 동안 커널로부터 독립적입니다.

다른 분산 파일 시스템 중에서 Gluster가 뛰어난 이유는 무엇입니까?

  1. 판매 가능 – 메타데이터 서버가 없어 더 빠른 파일 시스템을 제공합니다.
  2. 저렴한 – 상용 하드웨어에 배포됩니다.
  3. 유연성 – 앞서 말했듯이 GlusterFS는 소프트웨어 전용 파일 시스템입니다. 여기서 데이터는 ext4, xfs 등과 같은 기본 파일 시스템에 저장됩니다.
  4. 오픈소스 – 현재 GlusterFS는 Red Hat Storage의 일부로 수십억 달러 규모의 오픈소스 회사인 Red Hat Inc에서 유지관리하고 있습니다.

GlusterFS의 스토리지 개념

  1. 브릭 – 브릭은 기본적으로 신뢰할 수 있는 스토리지 풀 간에 공유되는 모든 디렉터리입니다.
  2. 신뢰할 수 있는 저장소 풀 – 설계된 프로토콜을 기반으로 하는 공유 파일/디렉토리 모음입니다.
  3. 블록 스토리지 – 데이터가 블록 형태로 시스템 간에 이동되는 장치입니다.
  4. 클러스터 – Red Hat Storage에서 클러스터와 신뢰할 수 있는 스토리지 풀은 모두 정의된 프로토콜을 기반으로 하는 스토리지 서버 협업의 동일한 의미를 전달합니다.
  5. 분산 파일 시스템 – 사용자가 파일의 실제 위치를 모르더라도 파일에 액세스할 수 있는 여러 노드에 데이터가 분산되어 있는 파일 시스템입니다. 사용자는 원격 액세스의 느낌을 경험하지 않습니다.
  6. FUSE – 사용자가 커널 코드를 사용하지 않고 커널 위에 파일 시스템을 생성할 수 있게 해주는 로드 가능한 커널 모듈입니다.
  7. glusterd – glusterd는 서버가 활성 상태일 때마다 전체 시간 동안 실행되는 파일 시스템의 백본인 GlusterFS 관리 데몬입니다.
  8. POSIX – POSIX(Portable Operating System Interface)는 API(Application Programmable Interface) 형식의 Unix 변형 간 호환성에 대한 솔루션으로 IEEE에서 정의한 표준 제품군입니다.
  9. RAID – RAID(Redundant Array of Independent Disks)는 중복성을 통해 향상된 저장소 안정성을 제공하는 기술입니다.
  10. 하위 볼륨 – 최소한 한 명의 번역가가 처리한 후의 브릭입니다.
  11. 번역기 – 번역기는 마운트 지점에서 사용자가 시작한 기본 작업을 수행하는 코드 조각입니다. 하나 이상의 하위 볼륨을 연결합니다.
  12. 볼륨 – 볼륨은 브릭의 논리적 컬렉션입니다. 모든 작업은 사용자가 생성한 다양한 유형의 볼륨을 기반으로 합니다.
다양한 유형의 볼륨

다양한 유형의 볼륨 표현과 이러한 기본 볼륨 유형 간의 조합도 아래와 같이 허용됩니다.

분산 복제 볼륨

분산 복제 볼륨의 표현.

RHEL/CentOS 및 Fedora에 GlusterFS 설치

이 기사에서는 스토리지의 고가용성을 위해 처음으로 GlusterFS를 설치하고 구성합니다. 이를 위해 우리는 두 대의 서버를 사용하여 볼륨을 생성하고 그들 사이에 데이터를 복제합니다.

단계:1 노드가 2개 이상 있어야 합니다.

  1. 두 노드에 CentOS 6.5(또는 기타 OS)를 설치합니다.
  2. "server1" 및 "server2"라는 호스트 이름을 설정합니다.
  3. 작동 중인 네트워크 연결.
  4. "/data/brick"이라는 이름의 두 노드에 있는 스토리지 디스크.

2단계: EPEL 및 GlusterFS 리포지토리 활성화

두 서버 모두에 GlusterFS를 설치하기 전에 외부 종속성을 충족하기 위해 EPELGlusterFS 저장소를 활성화해야 합니다. 다음 링크를 사용하여 두 시스템 모두에 epel 저장소를 설치하고 활성화하십시오.

  1. RHEL/CentOS에서 EPEL 리포지토리를 활성화하는 방법

다음으로 두 서버 모두에서 GlusterFs 저장소를 활성화해야 합니다.

wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo

3단계: GlusterFS 설치

두 서버 모두에 소프트웨어를 설치합니다.

yum install glusterfs-server

GlusterFS 관리 데몬을 시작합니다.

service glusterd start

이제 데몬의 상태를 확인해보세요.

service glusterd status
샘플 출력
service glusterd start
  service glusterd status
  glusterd.service - LSB: glusterfs server
   	  Loaded: loaded (/etc/rc.d/init.d/glusterd)
  	  Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago
  	 Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS)
  	  CGroup: name=systemd:/system/glusterd.service
  		  ├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid
  		  ├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost...
  		  └ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...

4단계: SELinux 및 iptables 구성

'/etc/sysconfig/selinux'를 열고 두 서버 모두에서 SELinux를 "허용 " 또는 "비활성화 " 모드로 변경합니다. 파일을 저장하고 닫습니다.

This file controls the state of SELinux on the system.
SELINUX= can take one of these three values:
    enforcing - SELinux security policy is enforced.
    permissive - SELinux prints warnings instead of enforcing.
    disabled - No SELinux policy is loaded.
SELINUX=disabled
SELINUXTYPE= can take one of these two values:
    targeted - Targeted processes are protected,
    mls - Multi Level Security protection.
SELINUXTYPE=targeted

그런 다음 두 노드 모두에서 iptables를 플러시하거나 iptables를 통해 다른 노드에 대한 액세스를 허용해야 합니다.

iptables -F

5단계: 신뢰할 수 있는 풀 구성

'Server1'에서 다음 명령을 실행합니다.

gluster peer probe server2

'Server2'에서 다음 명령을 실행합니다.

gluster peer probe server1

참고: 이 풀이 연결되면 신뢰할 수 있는 사용자만 이 풀에서 새 서버를 검색할 수 있습니다.

6단계: GlusterFS 볼륨 설정

server1server2 모두에 있습니다.

mkdir /data/brick/gv0

단일 서버에서 볼륨을 생성하고 볼륨을 시작합니다. 여기서는 'Server1'을 선택했습니다.

gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0
gluster volume start gv0

다음으로 볼륨 상태를 확인합니다.

gluster volume info

참고: 내부 볼륨이 시작되지 않으면 오류 메시지가 '/var/log/glusterfs' 아래에 기록됩니다. 두 서버 모두.

7단계: GlusterFS 볼륨 확인

'/mnt' 아래의 디렉터리에 볼륨을 마운트합니다.

mount -t glusterfs server1:/gv0 /mnt

이제 마운트 지점에서 파일 시스템의 단일 보기로 파일을 생성하고 편집할 수 있습니다.

GlusterFS의 특징

  1. 자가 복구 – 복제된 볼륨의 브릭 중 하나가 다운되고 사용자가 다른 브릭 내의 파일을 수정하는 경우 다음 브릭이 작동되자마자 자동 자가 복구 데몬이 작동합니다. 다운타임 동안 발생한 트랜잭션은 그에 따라 동기화됩니다.
  2. 재조정 – 이전에 많은 양의 데이터가 있던 기존 볼륨에 새 브릭을 추가하는 경우 재조정 작업을 수행하여 새로 추가된 브릭을 포함한 모든 브릭에 데이터를 배포할 수 있습니다.
  3. 지역 복제 – 재해 복구를 위한 데이터 백업을 제공합니다. 여기에 마스터 및 슬레이브 볼륨의 개념이 있습니다. 따라서 마스터가 다운되면 슬레이브를 통해 전체 데이터에 액세스할 수 있습니다. 이 기능은 지리적으로 분리된 서버 간에 데이터를 동기화하는 데 사용됩니다. 지역 복제 세션을 초기화하려면 일련의 Gluster 명령이 필요합니다.

다음은 지역 복제 모듈을 보여주는 다음 화면입니다.

참조 링크

GlusterFS 홈페이지

지금은 그게 다입니다!. 향후 기사에서 자가 치유, 재조정, 지역 복제 등과 같은 기능에 대한 자세한 설명을 계속 업데이트해 보세요.