1장. GFS2 파일 시스템 배포 계획
Red Hat Global File System 2(GFS2) 파일 시스템은 공유 이름 공간을 제공하고 공통 블록 장치를 공유하는 여러 노드 간에 일관성을 관리하는 64비트 대칭 클러스터 파일 시스템입니다. GFS2 파일 시스템은 로컬 파일 시스템에 최대한 가까운 기능 세트를 제공하는 동시에 노드 간에 전체 클러스터 일관성을 적용하는 데 사용됩니다. 이를 위해 노드는 파일 시스템 리소스에 클러스터 전체 잠금 체계를 사용합니다. 이 잠금 체계는 TCP/IP와 같은 통신 프로토콜을 사용하여 잠금 정보를 교환합니다.
예를 들어, Linux 파일 시스템 API는 GFS2의 클러스터형 특성을 완전히 투명하게 허용하지 않습니다. 예를 들어, GFS2에서 POSIX 잠금을 사용하는 프로그램은 클러스터의 다른 노드에서 GETLK
함수를 사용하지 않아야 합니다. 그러나 대부분의 경우 GFS2 파일 시스템의 기능은 로컬 파일 시스템의 기능과 동일합니다.
RHEL(Red Hat Enterprise Linux) 복구 스토리지 애드온은 GFS2를 제공하며, 이 애드온은 RHEL High Availability Add-On을 통해 GFS2에 필요한 클러스터 관리를 제공합니다.
gfs2.ko
커널 모듈은 GFS2 파일 시스템을 구현하고 GFS2 클러스터 노드에 로드됩니다.
GFS2에서 최상의 성능을 얻으려면 기본 설계에서 제공하는 성능 고려 사항을 고려해야 합니다. 로컬 파일 시스템과 마찬가지로, GFS2는 자주 사용되는 데이터의 로컬 캐싱으로 성능을 개선하기 위해 페이지 캐시를 사용합니다. 클러스터의 노드 전체에서 일관성을 유지하기 위해 glock 상태 시스템에서 캐시 제어를 제공합니다.
Red Hat High Availability Add-On의 배포가 고객의 요구 사항을 충족하고 지원을 받을 수 있는지 확인하십시오. 인증 Red Hat 담당자에게 문의하여 배포 전에 구성을 확인하십시오.
1.1. 확인할 주요 GFS2 매개 변수
GFS2 파일 시스템을 설치하고 구성하기 전에 계획해야 하는 여러 가지 주요 GFS2 매개 변수가 있습니다.
- GFS2 노드
- 클러스터에서 GFS2 파일 시스템을 마운트할 노드를 결정합니다.
- 파일 시스템 수
- 처음에 생성할 GFS2 파일 시스템 수를 결정합니다. 나중에 더 많은 파일 시스템을 추가할 수 있습니다.
- 파일 시스템 이름
-
각 GFS2 파일 시스템에는 고유한 이름이 있어야 합니다. 이 이름은 일반적으로 LVM 논리 볼륨 이름과 같으며, GFS2 파일 시스템이 마운트될 때 DLM 잠금 테이블 이름으로 사용됩니다. 예를 들어 이 가이드에서는 일부 예제 프로시저에서 파일 시스템 이름
mydata1
및mydata2
를 사용합니다. - 저널
-
GFS2 파일 시스템의 저널 수를 결정합니다. GFS2에는 파일 시스템을 마운트해야 하는 클러스터의 각 노드에 대해 저널이 1개 있어야 합니다. 예를 들어 16노드 클러스터가 있지만 두 노드에서 파일 시스템만 마운트해야 하는 경우 저널 두 개만 있으면 됩니다. 추가 서버가 파일 시스템을 마운트할 때
gfs2_jadd
유틸리티를 사용하여 나중에 저널을 동적으로 추가할 수 있습니다. - 스토리지 장치 및 파티션
-
파일 시스템에서 논리 볼륨(
lvmlockd
을 사용하여 )을 생성하는 데 사용할 스토리지 장치 및 파티션을 결정합니다. - 시간 프로토콜
GFS2 노드의 클럭이 동기화되었는지 확인합니다. Precision Time Protocol(PTP)을 사용하거나 구성에 필요한 경우 Red Hat Enterprise Linux 배포판과 함께 제공되는 NTP(Network Time Protocol) 소프트웨어를 사용하는 것이 좋습니다.
불필요한 inode 타임 스탬프 업데이트를 방지하려면 GFS2 노드의 시스템 클럭은 서로 몇 분 내에 있어야 합니다. 불필요한 inode 타임 스탬프 업데이트는 클러스터 성능에 심각한 영향을 미칩니다.
여러 생성 및 삭제 작업이 동일한 디렉토리에 있는 두 개 이상의 노드에서 동시에 실행되는 경우 GFS2의 성능 문제가 발생할 수 있습니다. 이로 인해 시스템에서 성능 문제가 발생하는 경우 노드의 파일 생성 및 삭제를 가능한 한 해당 노드와 관련된 디렉토리로 로컬화해야 합니다.