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

멀티 호스트된 데이터

가용성이 높은 전역 파일 시스템의 디스크 세트는 멀티 호스트되기 때문에 물리적 호스트가 충돌할 경우 충돌에서 살아남은 호스트 중 하나가 이 디스크를 액세스할 수 있습니다. 가용성이 높은 응용 프로그램이 되려면 해당 데이터의 가용성이 높아야 하므로 해당 데이터가 전역 HA 파일 시스템에 상주해야 합니다.

독립 항목으로 만들어진 디스크 그룹에 전역 파일 시스템이 마운트됩니다. 사용자는 일부 디스크 그룹을 마운트된 전역 파일 시스템으로 사용하고 다른 일부는 HA Oracle 같은 데이터 서비스와 함께 사용할 원시 장치로 사용하도록 선택할 수 있습니다.

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

최악의 경우 응용 프로그램의 소스 코드를 수정하여 실제 데이터 위치를 나타내는 일부 기법을 제공해야 합니다. 추가 명령줄 스위치를 구현하여 이렇게 할 수 있습니다.

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

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

때로 응용 프로그램에서는 하드 연결된 경로 이름을 덮어쓰기 위한 다른 기법이 없는 하드 연결된 해당 데이터 파일의 경로 이름을 사용합니다. 응용 프로그램 코드의 수정을 방지하기 위해 때로 심볼릭 링크를 사용할 수 있습니다.

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

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

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

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