다음을 통해 공유


Azure HPC Cache에서 파일 쓰기 되돌림 사용자 지정

HPC Cache 사용자는 flush_file.py 유틸리티를 사용하여 요청 시 캐시가 특정 개별 파일을 백 엔드 스토리지에 쓰도록 요청할 수 있습니다. 이 유틸리티는 Linux 클라이언트 컴퓨터에 설치하고 사용하는 별도로 다운로드된 소프트웨어 패키지입니다.

이 기능은 캐시를 탑재하지 않은 시스템에서 가능한 한 빨리 캐시된 파일의 변경 내용을 사용할 수 있도록 하려는 상황을 위해 설계되었습니다.

예를 들어, Azure HPC Cache를 사용하여 클라우드에서 컴퓨팅 작업을 크기 조정하지만 데이터 세트를 온-프레미스 데이터 센터에 영구적으로 저장할 수 있습니다. Azure HPC Cache로 만들어진 변경 내용에 따라 데이터 센터에서 컴퓨팅 작업이 발생하는 경우 이 유틸리티를 사용하여 클라우드 작업에서 만들어진 출력 또는 변경 내용을 다시 온-프레미스 NAS 스토리지로 "푸시"할 수 있습니다. 이렇게 하면 온-프레미스 컴퓨팅 리소스에서 새 파일을 거의 즉시 사용할 수 있습니다.

사용자 지정 쓰기 되돌림과 플러시 중에서 선택

Azure HPC Cache에 기본 제공되는 "스토리지 대상 플러시" 옵션을 사용하여 데이터를 강제로 다시 쓸 수 있지만 이 방식은 모든 상황에 적합하지 않을 수 있습니다.

  • 수정된 모든 파일을 다시 스토리지 시스템에 쓰는 작업은 데이터 양과 온-프레미스 시스템으로 다시 연결되는 네트워크 링크의 속도에 따라 몇 분 또는 몇 시간이 걸릴 수 있습니다. 또한 작성을 완료한 파일만 선택할 수 없습니다. 여전히 수정 중인 파일이 이 계산에 포함됩니다.

  • 캐시는 플러시 프로세스 중에 해당 스토리지 대상의 일부 요청 처리를 차단할 수 있습니다. 동일한 스토리지 대상에 있는 파일을 사용하는 다른 컴퓨팅 클라이언트가 있는 경우 이로 인해 처리가 지연될 수 있습니다.

  • 이 작업을 트리거하려면 최종 사용자에게는 없을 수 있는 Azure Resource Manager에 대한 기여자 액세스 권한이 필요합니다.

예를 들어, 동일한 HPC Cache 스토리지 대상에 상주하는 데이터를 사용하는 여러 개의 병렬(겹치지 않음) 컴퓨팅 작업이 있을 수 있습니다. 하나의 작업이 완료되면 해당 작업의 출력을 캐시에서 백 엔드의 장기 스토리지에 즉시 쓰기를 원할 것입니다.

다음 세 가지 옵션이 있습니다.

  • 캐시된 파일이 캐시에서 자동으로 다시 쓰여질 때까지 기다립니다. 하지만 파일이 완전히 다시 쓰여지기까지 한 시간 이상 캐시에 있을 수 있습니다. 타이밍은 네트워크 링크 성능 및 파일 크기와 같은 다른 요인과 함께 캐시 사용 모델의 쓰기 저장 지연에 따라 다릅니다. (쓰기 저장 지연에 대해 자세히 알아보려면 캐시 사용 모델 이해를 참조하세요.)

  • 즉시 전체 스토리지 대상에 대해 캐시된 파일을 플러시합니다. 하지만 이렇게 하면 이 스토리지 대상의 데이터도 사용 중인 다른 컴퓨팅 작업이 중단됩니다.

  • 이 사용자 지정된 쓰기 되돌림 유틸리티를 사용하여 원하는 특정 파일만 쓰기 저장 위해 캐시에 특수 NFS 요청을 보냅니다. 이 시나리오는 다른 클라이언트에 대한 액세스를 방해하지 않으며 컴퓨팅 작업의 어느 지점에서나 트리거될 수 있습니다.

쓰기 저장 유틸리티 정보

쓰기 저장 유틸리티에는 캐시에서 장기 스토리지 시스템으로 기록될 개별 파일을 지정하는 데 사용할 수 있는 스크립트가 있습니다.

이 스크립트는 작성할 파일의 입력 스트림과 스토리지 대상 내보내기에 대한 캐시 네임스페이스 경로 및 HPC Cache 탑재 IP 주소를 사용합니다.

이 스크립트는 특수 인수가 사용하도록 설정된 NFSv3 "커밋" 호출을 사용합니다. Linux nfs-common 클라이언트는 이러한 인수를 적절하게 전달할 수 없으므로 flush_file.py 유틸리티는 Python 라이브러리의 NFS 클라이언트 에뮬레이터를 사용하여 HPC Cache NFS 서비스와 통신합니다. 라이브러리에는 컴퓨팅 클라이언트의 Linux 커널 기반 NFS 클라이언트에 존재할 수 있는 모든 제한 사항을 바이패스하는 데 필요한 모든 것이 포함되어 있습니다.

이 기능을 사용하려면 다음을 수행해야 합니다.

GitHub 리포지토리에서 flush_file.py 스크립트 설치 및 사용에 대해 자세히 알아봅니다.