7장. GFS2 파일 시스템의 문제 진단 및 수정
다음 절차에서는 일반적인 일부 GFS2 문제를 설명하고 해결 방법에 대한 정보를 제공합니다.
7.1. 노드에서 GFS2 파일 시스템을 사용할 수 없음( GFS2 인출 기능)
GFS2 인출 기능은 보안 취약점이 있는 하드웨어 또는 커널 소프트웨어로 인한 파일 시스템의 파일 시스템 손상을 방지할 수 있는 GFS2 파일 시스템의 데이터 무결성 기능입니다. 지정된 클러스터 노드에서 GFS2 파일 시스템을 사용하는 동안 GFS2 커널 모듈이 불일치를 감지하면 파일 시스템에서 인출하여 마운트 해제 및 다시 마운트할 때까지 해당 노드에서 사용할 수 없게 됩니다(또는 문제가 재부팅됨을 감지하는 시스템이 재부팅됨). 마운트된 다른 모든 GFS2 파일 시스템은 해당 노드에서 완전히 작동하는 상태로 유지됩니다. ( GFS2 인출 기능은 커널 패닉보다 덜 심각하여 노드를 펜싱할 수 있습니다.)
GFS2 인출을 유발할 수 있는 불일치의 주요 범주는 다음과 같습니다.
- inode 일관성 오류
- 리소스 그룹 일관성 오류
- journal consistency 오류
- 매직 수 메타데이터 일관성 오류
- 메타데이터 유형 일관성 오류
GFS2 인출으로 인한 불일치의 예로는 파일의 inode에 대한 잘못된 블록 수가 있습니다. GFS2가 파일을 삭제하면 해당 파일에서 참조하는 모든 데이터 및 메타데이터 블록이 체계적으로 제거됩니다. 완료되면 inode의 블록 수를 확인합니다. inode 블록 수가 파일에 사용된 실제 블록과 일치하지 않기 때문에 블록 수가 1이 아닌 경우(즉, 파일 시스템 불일치를 나타내는) 파일 시스템 불일치를 나타내는 경우 블록 수가 파일에 사용된 실제 블록과 일치하지 않기 때문입니다. 대부분의 경우 이 문제는 결함이 있는 하드웨어(주요 메모리, 마더보드, HBA, 디스크 드라이브, 케이블 등)로 인해 발생할 수 있습니다. 커널 버그로 인한 것일 수도 있습니다(다른 커널 모듈에서 실수로 GFS2 메모리를 덮어쓰거나, 실제 파일 시스템 손상( GFS2 버그에 의해 사용됨)이 발생할 수 있습니다.
대부분의 경우 인출된 GFS2 파일 시스템에서 복구하는 가장 좋은 방법은 노드를 재부팅하거나 펜싱하는 것입니다. 제거된 GFS2 파일 시스템으로 서비스를 클러스터의 다른 노드로 재배치할 수 있습니다. 서비스가 재배치된 후 노드를 재부팅하거나 이 명령을 사용하여 펜싱을 강제 수행할 수 있습니다.
pcs stonith fence node
umount
및 mount
명령을 사용하여 파일 시스템을 수동으로 마운트 해제하고 다시 마운트하지 마십시오. pcs
명령을 사용해야 합니다. 그러지 않으면 Pacemaker에서 파일 시스템 서비스가 사라졌고 노드를 펜싱합니다.
인출으로 인한 일관성 문제로 인해 시스템이 중단될 수 있으므로 파일 시스템 서비스를 중지하지 못할 수 있습니다.
다시 마운트한 후에도 문제가 지속되면 파일 시스템 서비스를 중지하여 클러스터의 모든 노드에서 파일 시스템을 마운트 해제한 다음 다음 절차를 통해 서비스를 다시 시작하기 전에 fsck.gfs2
명령을 사용하여 파일 시스템 검사를 수행해야 합니다.
- 영향을 받는 노드를 재부팅합니다.
Pacemaker에서 복제되지 않은 파일 시스템 서비스를 비활성화하여 클러스터의 모든 노드에서 파일 시스템을 마운트 해제합니다.
# pcs resource disable --wait=100 mydata_fs
클러스터 한 노드에서
fsck.gfs2
명령을 파일 시스템 장치에서 실행하여 파일 시스템 손상을 확인하고 복구합니다.# fsck.gfs2 -y /dev/vg_mydata/mydata > /tmp/fsck.out
파일 시스템 서비스를 다시 활성화하여 모든 노드에서 GFS2 파일 시스템을 다시 마운트합니다.
# pcs resource enable --wait=100 mydata_fs
파일 시스템 서비스에 지정된 -o errors=panic
옵션으로 파일 시스템을 마운트하여 GFS2 인출 기능을 재정의할 수 있습니다.
# pcs resource update mydata_fs “options=noatime,errors=panic”
이 옵션을 지정하면 일반적으로 오류가 발생하면 시스템이 대신 커널 패닉을 강제로 제거하도록 합니다. 이렇게 하면 노드 통신이 중지되어 노드가 펜싱됩니다. 이는 모니터링 또는 개입없이 오랜 기간 동안 자동으로 남아 있는 클러스터에 특히 유용합니다.
내부적으로, 모든 추가 파일 시스템 작업에서 I/O 오류가 발생하도록 잠금 프로토콜을 분리하여 GFS2 인출 기능이 작동합니다. 결과적으로 인출이 발생하면 시스템 로그에 보고된 장치 매퍼 장치의 여러 I/O 오류를 확인하는 것이 일반적입니다.