How should I configure my NFS cluster service to avoid stale NFS filehandles in RHEL 5 or 6?
문제
- How should I configure my NFS cluster to avoid stale NFS filehandles?
(stale NFS file handle을 방지하기 위해 NFS cluster를 어떻게 설정해야 하나요?) - When I failover a clustered NFS service, clients get stale file handles and/or permission errors
(클러스터로 구성된 NFS 서비스가 failover될 때, 클라이언트들은 stale file handle 그리고/또는 permission errors가 발생합니다.)
환경
- Red Hat Enterprise Linux (RHEL) 5 or 6 with the High Availability Add On
- A clustered NFS service in
/etc/cluster/cluster.conf
해결
¶There are several potential resolutions to this problem.
(이 문제에 대해 잠재적인 해결책이 몇가지 있습니다.)¶Ensure the proper Parent-child Relationship is established between IP and nfsclient resources in the cluster service.
(클러스터 서비스에서 nfsclient 자원과 IP 사이에 적절한 부모-자식 관계인지 확인하세요)¶Ensure the fs or clusterfs resource within the service has a value specified for the
fsid
attribute. For example:
(서비스 안에서 fs 또는 clusterfs이 fsid 속성에 대해 지정된 값이 있는지 확인하세요)
<fs device="/dev/myvg/mylv" force_unmount="0" fsid="1234" fstype="ext3" mountpoint="/mnt/nfs1" name="nfs1-fs" options="rw">
<nfsexport name="nfs1-export"
<nfsclient name="nfs1-client-world" options="rw,sync" target="*"/>
- If the nfsexport/nfsclient resources are not a child of an fs/clusterfs resource, then set the fsid directly on the nfsclient resource.
<nfsexport name="nfs1-export"
<nfsclient name="nfs1-client-world" options="rw,sync" target="*" fsid="1234"/>
¶Note: The above examples are just snippets of services. Additional resources may be required.
¶Ensure that multiple services are not sharing the same IP.
근본 원인
¶All cluster nodes should be using a consistent filesystem ID when generating filehandles. If the block device major and minor numbers are consistent across all machines, then this will generally not be a problem. If they are not consistent, then one should use the
fsid=
option for the exports to ensure that this number does not change during failover. An example of its usage in the/etc/exports
file is:모든 클러스터 노드들은 파일핸들을 생성하기 위해 일관된 파일시스템 ID가 사용되어야 합니다. 만일 모든 시스템들에서
블록 디바이스의 major/minor 번호가 일치한다면, 일반적으로 문제가 되지 않을 것입니다.
만일 그것들이 일치하지 않는다면, failover 동안에 이 번호가 변경되지 않도록 하기 위해
exports에 대해 fsid= 옵션을 사용해야 합니다. /etc/exports 파일에서 그 사용법의 예는 다음과 같습니다.
¶/usr/share/icons *(async,rw,fsid=X)
¶Where X is any 32 bit number that can be used but must be unique among all the exported filesystems. When the export is managed by rgmanager (as in the above examples) instead of
/etc/exports
, thefsid
attribute can be specified in the resource.
X는 사용될 수 있는 32bit 숫자이지만, 모든 export된 파일시스템들 사이에 유일해야 한다.¶The
fsid
is used to identify the filesystem on the NFS-server side, and is passed on to the NFS-clients during mounting. With Red Hat Enterprise Linux 6 and above, thefsid
is based on the UUID of the exported filesystem (if available), instead of the major:minor of the device containing the filesystem. Therefore there is not a requirement to set thefsid
on RHEL6 NFS-servers where the exported filesystem has a UUID set (this can be checked with/sbin/blkid
).
fsid는 NFS-server 편에서 파일시스템을 식별하기 위해 사용되며, 마운트 하는 중에 NFS-clients에게 전송된다. RHEL 6 또는 이상에서는,
fsid는 파일시스템을 포함하는 디바이스의 major:minor 대신에, (가능한 경우) export된 파일시스템의 UUID를 기반으로 한다.
그러므로, export된 파일시스템이 UUID set을 가진 RHEL6 NFS-servers 에서는 fsid를 설정할 필요가 없다.
(/sbin/blkid로 확인할 수 있음)¶The other linked articles above provide additional details on the root causes of their respective problems.
'OS > Linux' 카테고리의 다른 글
[RHEL] How PAM Works (0) | 2014.06.24 |
---|---|
[RHEL] Tuning Red Hat Enterprise Linux for Oracle and Oracle RAC performance (0) | 2014.06.09 |
[RHEL] Very Large Memory and HugePages (0) | 2014.06.05 |
[RHEL] 리눅스에서 Thread 보는 방법 (0) | 2014.05.28 |
[RHEL] top 명령 사용 팁 (0) | 2014.05.13 |
[RHEL] /etc/exports 설정 파일 (0) | 2014.05.07 |
[RHEL] How can I increase "hugepagesize" from its default value? (0) | 2014.04.24 |
Linux서버 VCS HA 환경에서 Heartbeat NIC 교체한 경우 작업 방법 (0) | 2014.04.17 |
[OS] Introduction to Syslog Protocol (0) | 2014.04.17 |
[RHEL] Configuring Huge Pages in Red Hat Enterprise Linux 4 or 5 (0) | 2014.04.04 |