참고:

Oracle Cloud Infrastructure에 NFS 캐시 배포

소개

여러 클라우드 기반 컴퓨팅 인스턴스가 온프레미스 NFS 스토리지에 액세스해야 하는 경우 클라우드에 NFS 캐시를 배포할 수 있습니다. NFS 성능 데이터는 NFS 클라이언트가 요청할 때 클라우드에 캐시됩니다. NFS 클라이언트 노드는 동시 기록 캐싱을 사용하여 NFS 원본 파일 서버에 직접 데이터를 기록합니다.

NFS 성능은 네트워크 대기 시간에 매우 민감합니다. 비교적 짧은 네트워크 대기 시간도 읽기 및 쓰기 모두에 대해 NFS 성능을 크게 저하시킬 수 있습니다. 온프레미스 NFS 스토리지를 사용하는 경우 클라우드에 NFS 캐시를 배포하면 특히 "대중 읽기" 워크로드에 상당한 성능 이점을 얻을 수 있습니다.

목표

OCI(Oracle Cloud Infrastructure)에 NFS 캐싱 솔루션을 배포합니다.

필요 조건

NFS 캐시가 설치될 전용 또는 공용 서브넷으로 VCN(가상 클라우드 네트워크)이 구성되어 있어야 합니다. OCI 서브넷은 온프레미스 NFS 서버에 대한 연결이 있어야 하며, TCP 포트 2049는 서브넷 보안 목록에서 열려 있어야 합니다. 온프레미스 NFS 서버와 클라우드의 NFS 캐시 서버 간에 VPN 터널 또는 OCI Fast Connect를 설정하는 것이 좋습니다.

참고: 이 자습서는 NFS4 버전을 참조합니다. 이전 NFS 버전의 경우 서브넷 보안 목록에서 추가 포트를 열어야 할 수 있습니다.

구조

NFS 캐시는 다양한 아키텍처로 배포할 수 있습니다. 이 예에서는 다음 아키텍처를 사용합니다.

Image1

HA(고가용성)의 경우 2개 이상의 백엔드 NFS 캐시 서버가 있는 네트워크 로드 밸런서를 설치하고 네트워크 로드 밸런서 리스너에서 TCP/2049 포트를 구성할 수 있습니다.

Image2

작업 1: FS-Cache 서버 설치 및 구성

  1. OCI에 NFS 캐시를 배치하려면 E4 중 하나를 사용하여 Oracle Linux 컴퓨트 인스턴스를 프로비전합니다. DenseIO.Flex 구성.

    Image3

    : 이러한 고밀도 I/O 구성에는 NVMe 로컬 디스크 수가 다릅니다. NVMe 저장소는 NFS 데이터 캐싱에 사용됩니다. 저장 요구 사항에 따라 구성을 선택합니다.

  2. VCN 및 서브넷을 선택하고 공용 SSH 키를 추가합니다.

  3. 고급 옵션을 열고 cloud-init 스크립트를 추가합니다. install.sh

    Image4

    이 스크립트는 다음을 수행합니다.

    1. 사용 가능한 NVMe 디스크에서 RAID-0을 구성합니다.
    2. RAID-0 장치에 파일 시스템을 만들고 마운트합니다.
    3. cachefiled 패키지를 설치하고 cachefiled 서비스를 시작합니다.
    4. NFS 서버 사용
    5. SELinux 및 Linux 방화벽을 구성합니다.

작업 2: NFS 공유 만들기 및 내보내기

  1. NFS 마운트 지점에 대한 디렉토리를 만들고 -fsc 옵션을 사용하여 FS 캐시 VM에 NFS 서버 공유를 마운트합니다. 예를 들면 다음과 같습니다.

    sudo mount <NFS-server-IP>:<NFS-share> <FS-Cache-mount-point> -o fsc
    
    where:  <NFS-server-IP> is the IP of the origin NFS server
    	<NFS-share> is the path of NFS share directory from the origin NFS server
    	<FS-Cache-mount-point> is the mount point on FS-Cache server
    
  2. /etc/exports 파일을 편집하여 로컬 마운트 지점을 내보냅니다.

    sudo echo "<FS-Cache-mount-point> *(rw,wdelay,no_root_squash,no_subtree_check,fsid=10,sec=sys,rw,secure,no_root_squash,no_all_squash)" > /etc/exports
    
  3. <FS-Cache-mount-point>를 마운트 지점의 실제 경로로 바꿉니다. exportfs 명령을 실행합니다.

    sudo exportfs -a
    
  4. cachfilesd 서비스가 실행 중인지 확인합니다.

    sudo systemctl status cachefilesd
    

    Image5

작업 3: NFS 클라이언트에서 NFS 공유 마운트

FS 캐시 서버에서 NFS 클라이언트로 내보낸 마운트 디렉토리입니다. 예를 들어 NFS 클라이언트에서 다음 명령을 실행할 수 있습니다.

sudo mount <FS-Cache-IP>:<FS-Cache-mount-point> <local-mount-point>

where:  <FS-Cache-server-IP> is the IP of FS-Cache server
	<FS-Cache-mount-point> is the path exported from FS-Cache server
	<local-mount-point> is the mount point on NFS client  

아직 FS 캐시 서버에 캐시되지 않은 파일을 읽을 때 액세스 시간이 길어집니다. 그러나 파일이 캐시된 경우 읽기 시간은 동일한 LAN의 NFS 서버에 액세스하는 것과 비슷합니다. 많은 NFS 클라이언트가 NFS 공유에서 동일한 컨텐츠를 읽을 때 차이점이 더욱 분명해집니다.

승인

작성자 - Michael Prestin(Master Principal Cloud Architect)

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer를 방문하십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.