Solaris OS용 Sun Cluster 데이터 서비스 개발 안내서

멀티호스트된 데이터

가용성이 높은 클러스터 파일 시스템의 장치는 멀티호스트되기 때문에 물리적 호스트가 충돌할 경우 충돌에서 살아남은 호스트 중 하나가 이 장치를 액세스할 수 있습니다. 가용성이 높은 응용 프로그램을 만들려면 해당 데이터의 가용성이 높아야 하므로 응용 프로그램 데이터가 여러 클러스터 노드에서 액세스할 수 있는 파일 시스템에 있어야 합니다. Sun Cluster에서 지원하는 가용성이 높은 파일 시스템의 예에는 전역 HA 파일 시스템, FFS(Failover File System) 및 Oracle Real Application Clusters을 사용하는 환경의 경우 QFS 공유 파일 시스템이 포함됩니다.

클러스터 파일 시스템은 독립 항목으로 만들어진 장치 그룹에 마운트됩니다. 개발자는 일부 장치 그룹을 마운트된 클러스터 파일 시스템으로 사용하고 다른 일부는 HA Oracle 소프트웨어 같은 데이터 서비스용 원시 장치로 사용하도록 선택할 수 있습니다.

응용 프로그램에는 명령줄 스위치나 데이터 파일의 위치를 가리키는 구성 파일이 있을 수 있습니다. 응용 프로그램에서 하드 연결된 경로 이름을 사용하는 경우 응용 프로그램 코드를 변경하지 않고 클러스터 파일 시스템의 파일을 가리키는 심볼릭 링크로 경로 이름을 변경할 수 있습니다. 심볼릭 링크 사용에 대한 자세한 내용은 멀티 호스트된 데이터 배치에 심볼릭 링크 사용을 참조하십시오.

최악의 경우 응용 프로그램의 소스 코드를 수정하여 실제 데이터 위치를 가리키는 기법을 제공해야 합니다. 추가 명령줄 인자를 생성하여 이 기법을 구현할 수 있습니다.

Sun Cluster 소프트웨어는 볼륨 관리자에 구성된 UNIX UFS 파일 시스템 및 HA 원시 장치의 사용을 지원합니다. Sun Cluster 소프트웨어 설치 및 구성 시 클러스터 관리자는 UFS 파일 시스템에 사용할 디스크 자원과 원시 장치에 사용할 디스크 자원을 지정해야 합니다. 일반적으로 데이터베이스 서버와 멀티미디어 서버에서만 원시 장치를 사용합니다.

멀티 호스트된 데이터 배치에 심볼릭 링크 사용

때로는 하드 연결된 경로 이름을 대체할 기법 없이 응용 프로그램 데이터 파일의 경로 이름이 하드 연결되는 경우가 있습니다. 응용 프로그램 코드의 수정을 방지하기 위해 때로 심볼릭 링크를 사용할 수 있습니다.

예를 들어, 응용 프로그램에서 하드 연결된 경로 이름/etc/mydatafile을 사용하여 데이터 파일의 이름을 지정하는 것으로 가정합시다. 개발자는 논리 호스트 파일 시스템 중 하나에 있는 파일을 가리키는 값을 가지는 심볼릭 링크로 파일 경로를 변경할 수 있습니다. 예를 들어, 경로를 /global/phys-schost-2/mydatafile에 대한 심볼릭 링크로 만들 수 있습니다.

응용 프로그램이나 관리 절차 중 하나에서 해당 내용뿐만 아니라 데이터 파일 이름을 수정할 경우 이 심볼릭 링크 사용에 문제가 생길 수 있습니다. 예를 들어, 응용 프로그램에서 먼저 새로운 임시 파일 /etc/mydatafile.new를 만들어 업데이트를 수행한다고 가정합니다. 그런 다음 rename() 시스템 호출이나 mv 명령을 사용하여 임시 파일이 실제 파일 이름을 갖도록 이름을 변경합니다. 데이터 서비스는 임시 파일을 만든 다음 이름을 실제 파일 이름으로 변경하여 데이터 파일 내용이 항상 올바로 구성되도록 보장합니다.

유감스럽게도 rename() 작업을 수행하면 심볼릭 링크가 완전히 삭제됩니다. 이제 /etc/mydatafile 이름은 정규 파일이며 클러스터의 클러스터 파일 시스템이 아니라 /etc 디렉토리와 동일한 파일 시스템에 있습니다. /etc 파일 시스템은 각 호스트에서 개인 파일 시스템이기 때문에 페일오버 또는 스위치오버 후에는 해당 데이터를 사용할 수 없습니다.

이 상황에서 발생할 수 있는 문제는 기존 응용 프로그램이 심볼릭 링크를 인식하지 못하여 심볼릭 링크를 처리하도록 작성되지 않았다는 것입니다. 심볼릭 링크를 사용하여 데이터 액세스를 논리 호스트의 파일 시스템으로 재지정하려면 응용 프로그램 구현에서 심볼릭 링크를 제거하지 않는 방식으로 작동해야 합니다. 따라서 심볼릭 링크는 클러스터의 파일 시스템에 데이터를 배치하는 문제에 대한 완벽한 해결책이 아닙니다.