2.4. GFS2를 통한 NFS 설정
GFS2 잠금 하위 시스템의 복잡성과 클러스터형 특성의 추가 복잡성으로 인해 GFS2를 통해 NFS를 설정하는 데 많은 예방 조치가 필요합니다.
GFS2 파일 시스템이 NFS를 내보낸 경우 localflocks
옵션을 사용하여 파일 시스템을 마운트해야 합니다. localflocks
옵션을 사용하면 여러 위치에서 안전하게 GFS2 파일 시스템에 액세스할 수 없으며 여러 노드에서 동시에 GFS2를 내보내는 것은 불가능합니다. 이 구성을 사용할 때 한 번에 하나의 노드에만 GFS2 파일 시스템을 마운트해야 합니다. 이 방법은 각 서버의 POSIX 잠금을 로컬로 강제 적용하는 것입니다. 비 클러스터가 서로 독립적입니다. 이는 GFS2가 클러스터 노드에서 NFS에서 POSIX 잠금을 구현하려고 하는 경우 여러 가지 문제가 있기 때문입니다. NFS 클라이언트에서 실행되는 애플리케이션의 경우, 두 클라이언트가 서로 다른 서버에서 마운트되는 경우 두 클라이언트가 동일한 잠금을 동시에 보유할 수 있으므로 데이터 손상이 발생할 수 있습니다. 모든 클라이언트가 하나의 서버에서 NFS를 마운트하면 동일한 잠금을 부여하는 별도의 서버가 독립적으로 사라집니다. localflocks
옵션을 사용하여 파일 시스템을 마운트할지 확실하지 않은 경우 옵션을 사용하지 않아야 합니다. 데이터 손실을 방지하기 위해 즉시 Red Hat 지원팀에 문의하십시오. NFS를 통해 GFS2를 내보내는 것은 일부 상황에서 기술적으로 지원되는 것은 권장되지 않습니다.
기타 모든(NFS가 아닌) GFS2 애플리케이션의 경우 localflocks
를 사용하여 파일 시스템을 마운트하지 마십시오. 그러면 GFS2에서 클러스터의 모든 노드(클러스터 전체에서) 간에 POSIX 잠금 및 flock을 관리할 수 있습니다. localflocks
를 지정하고 NFS를 사용하지 않는 경우 클러스터의 다른 노드에는 서로의 POSIX 잠금 및 flock에 대한 지식이 없으므로 클러스터형 환경에서 안전하지 않습니다.
잠금 고려 사항 외에도 GFS2 파일 시스템에서 NFS 서비스를 구성할 때 다음 사항을 고려해야 합니다.
Red Hat은 다음과 같은 특성을 가진 활성/수동 구성에서 NFSv3를 사용하여 Red Hat High Availability Add-On 구성만 지원합니다. 이 구성은 파일 시스템에 HA(고가용성)를 제공하고 실패한 노드가 한 노드에서 다른 노드로 NFS 서버가 실패할 때
fsck
명령을 실행하지 않아도 되므로 시스템 다운 타임을 줄입니다.- 백엔드 파일 시스템은 2~16개 노드 클러스터에서 실행되는 GFS2 파일 시스템입니다.
- NFSv3 서버는 한 번에 전체 클러스터 노드에서 전체 GFS2 파일 시스템을 내보내는 서비스로 정의됩니다.
- NFS 서버는 하나의 클러스터 노드에서 다른 클러스터 노드로 장애 조치(active/passive 구성)할 수 있습니다.
- NFS 서버를 제외한 GFS2 파일 시스템에 액세스할 수 없습니다. 여기에는 로컬 GFS2 파일 시스템 액세스와 Samba 또는 Clustered Samba를 통한 액세스가 모두 포함됩니다. 마운트된 클러스터 노드를 통해 로컬로 파일 시스템에 액세스하면 데이터가 손상될 수 있습니다.
- 시스템에 NFS 할당량 지원이 없습니다.
-
GFS2의 NFS 내보내기에는
fsid=
NFS 옵션이 필요합니다. - 클러스터에서 문제가 발생하는 경우(예: 클러스터가 정상 상태가 되고 펜싱이 완료되지 않음) 클러스터형 논리 볼륨과 GFS2 파일 시스템이 정지되고 클러스터가 정지될 때까지 액세스할 수 없습니다. 이 절차에서 정의된 것과 같은 간단한 장애 조치 솔루션이 시스템에 가장 적합한 솔루션인지 확인할 때는 이러한 가능성을 고려해야 합니다.