Compute Engine 클라이언트에 파일 공유 마운트

이 페이지에서는 Compute Engine 가상 머신(VM) 인스턴스에 Filestore 파일 공유를 마운트하는 방법을 보여줍니다. 대신 Google Kubernetes Engine 클러스터에서 Filestore 인스턴스에 액세스하려는 경우 Google Kubernetes Engine 클러스터에서 파일 공유에 액세스를 참조하세요.

클라이언트 VM은 Filestore 인스턴스와 동일한 Google Cloud 프로젝트 및 VPC 네트워크에 있어야 합니다. 온프레미스 터미널 또는 VM과 같은 원격 클라이언트에 파일 공유를 마운트하는 방법을 알아보려면 원격 네트워크의 클라이언트에 파일 공유 마운트를 참조하세요.

시작하기 전에

Filestore에 사용할 수 있도록 네트워크 방화벽이 올바르게 구성되었는지 확인합니다. 자세한 내용은 방화벽 규칙 구성을 참조하세요.

Compute Engine VM 인스턴스에 파일 공유 마운트

다음 절차 중 하나에 따라 Compute Engine VM에 Filestore 파일 공유를 마운트합니다.

Linux: mount

Linux 클라이언트 VM에 파일 공유를 수동으로 마운트하려면 다음 안내를 따르세요.

  1. Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 클라이언트로 사용하려는 Linux VM을 찾은 후 SSH를 클릭하여 해당 VM에서 터미널을 엽니다.

  3. 선택사항: 여러 네트워크 인터페이스가 포함된 클라이언트 VM에 보조 네트워크를 통해 파일 공유를 마운트합니다.

    세부정보

    클라이언트 VM에 여러 네트워크 인터페이스가 포함되고, 보조 네트워크 즉, nic0 이외의 인터페이스를 통해 파일 공유를 마운트하려는 경우, 파일 공유가 올바른 네트워크 인터페이스를 통해 마운트되는지 확인하기 위해 클라이언트 VM의 라우팅 정책을 구성해야 합니다. 이렇게 하려면 클라이언트 VM에서 다음 명령어를 실행하세요.

    sudo ip route \
        add filestore-reserved-address-range \
        via default-gateway-of-nic-to-filestore
    

    각 항목의 의미는 다음과 같습니다.

    • filestore-reserved-address-range는 Filestore 인스턴스에 사용하기 위해 예약된 주소 범위입니다.
    • default-gateway-of-nic-to-filestore는 Filestore 인스턴스와 공유되고, VPC 네트워크에 연결된 NIC의 기본 게이트웨이 IP 주소입니다.

    여러 NIC가 포함된 Compute Engine 인스턴스 사용에 대한 자세한 내용은 정책 라우팅 구성을 참조하세요.

  4. NFS 설치:

    Debian/Ubuntu

    다음 명령어를 사용하여 Debian 또는 Ubuntu에 NFS를 설치합니다.

    sudo apt-get -y update &&
    sudo apt-get install nfs-common

    RHEL/CentOS

    다음 명령어를 사용하여 Red Hat Enterprise Linux 또는 CentOS에 NFS를 설치합니다.

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    다음 명령어를 사용하여 SUSE에 NFS를 설치합니다.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. Filestore 파일 공유에 매핑할 로컬 디렉터리를 만듭니다.

    sudo mkdir -p mount-point-directory
    

    여기서 mount-point-directory는 만들려는 디렉터리입니다(예: /mnt/filedir).

  6. mount 명령어를 사용하여 Filestore 인스턴스에서 파일 공유를 마운트합니다. 모든 NFS 마운트 옵션을 사용할 수 있습니다. 성능을 극대화하려면 기본 NFS mount 옵션을 사용하는 것이 좋습니다.

    기본 NFS mount 옵션

    기본 옵션 설명
    hard NFS 클라이언트는 NFS 요청을 무제한으로 시도합니다.
    timeo=600 NFS 클라이언트는 600데시초(60초) 간격으로 NFS 요청을 다시 시도합니다.
    retrans=3 NFS 클라이언트는 NFS 요청을 3회 시도한 후 추가 복구 작업을 수행합니다.
    rsize=1048576 NFS 클라이언트는 NFS 서버로부터 READ 요청당 최대 1,048,576바이트를 수신할 수 있습니다.
    wsize=1048576 NFS 클라이언트는 NFS 서버로부터 WRITE 요청당 최대 1,048,576바이트를 수신할 수 있습니다.
    resvport NFS 클라이언트는 이 마운트 지점에 대해 NFS 서버와 통신할 때 권한이 있는 소스 포트를 사용합니다.
    async NFS 클라이언트는 특정 조건이 충족될 때까지 NFS 서버에 대한 애플리케이션 쓰기 전송을 지연합니다.
    주의: sync 옵션을 사용하면 성능이 크게 저하됩니다.

    마운트 지연 시간 감소를 위해서는 -o tcp 옵션을 지정해야 합니다.

    mount 명령어를 실행합니다.

    sudo mount ip-address:/file-share mount-point-directory
    

    각 항목의 의미는 다음과 같습니다.

    • ip-address는 Filestore 인스턴스의 IP 주소입니다.
    • file-share는 인스턴스의 파일 공유 이름입니다.
    • mount-point-directory는 Filestore 파일 공유를 매핑할 경로입니다.

    다음 소스에서 인스턴스의 IP 주소 및 파일 공유 이름을 확인할 수 있습니다.

    예를 들어 Filestore 인스턴스의 IP 주소가 10.0.1.2이고 파일 공유 이름이 share1이라면 다음 명령어로 파일 공유를 로컬 마운트 지점 디렉터리 /mnt/render에 마운트합니다.

    sudo mount 10.0.1.2:/share1 /mnt/render
    
  7. 선택사항: 루트 사용자가 아닌 다른 사용자가 쓰기를 수행할 수 있도록 chmod를 실행하여 마운트 디렉터리에 대한 권한을 설정합니다. 다음 명령어를 실행하여 디렉터리 권한을 설정합니다.

    sudo chmod permissions mount-point-directory
    

    각 항목의 의미는 다음과 같습니다.

    • permissions는 부여할 권한 집합입니다. 예를 들어 chmod go+rw는 그룹 내에서 디렉터리를 소유하는 사용자와 다른 모든 사용자가 디렉터리를 읽고 쓸 수 있게 해줍니다. 권한 설정에 대한 자세한 내용은 파일 공유의 액세스 구성을 참조하세요.
    • mount-point-directory는 Filestore 파일 공유가 마운트된 디렉터리의 경로입니다.
  8. 선택사항: Filestore 파일 공유가 마운트되었는지 확인합니다.

    df -h --type=nfs
    

    출력에 다음과 비슷한 항목이 포함되어야 합니다.

    Filesystem        Size    Used  Avail  Use%  Mounted on
    10.0.1.2:/share1  1018G   76M   966G   1%    /mnt/render
    10.0.2.2:/vol3    1018G   76M   966G   1%    /mnt/filestore3
  9. 마운트된 Firestore 파일 공유에 사용하려는 애플리케이션에 NFS 파일 잠금이 필요하고, 이 클라이언트 VM 인스턴스가 설정 변경이 없는 기본 VPC 네트워크 이외의 다른 네트워크를 사용하는 경우, 방화벽 구성을 쉽게 하기 위해 인스턴스에 2개 포트를 설정해야 할 수 있습니다. VPC 네트워크에 대한 방화벽 규칙을 구성해야 하는지 여부를 확인하는 방법은 방화벽 규칙 구성을 참조하세요. 포트 설정에 대한 자세한 내용은 NFS 포트 설정을 참조하세요.

Linux: /etc/fstab

클라이언트의 /etc/fstab 파일을 수정하여 부팅 중 클라이언트 VM에 파일 공유가 자동으로 마운트되도록 할 수 있습니다.

  1. Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 클라이언트로 사용하려는 Linux VM을 찾은 후 SSH를 클릭하여 해당 VM에서 터미널을 엽니다.

  3. 선택사항: 여러 네트워크 인터페이스가 포함된 클라이언트 VM에 보조 네트워크를 통해 파일 공유를 마운트합니다.

    세부정보

    클라이언트 VM에 여러 네트워크 인터페이스가 포함되고, 보조 네트워크 즉, nic0 이외의 인터페이스를 통해 파일 공유를 마운트하려는 경우, 파일 공유가 올바른 네트워크 인터페이스를 통해 마운트되는지 확인하기 위해 클라이언트 VM의 라우팅 정책을 구성해야 합니다. 이렇게 하려면 다음 파일을 수정하세요.

    • /etc/default/instance_configs.cfg에서 NetworkInterfacessetup 플래그를 false로 설정합니다.
      [NetworkInterfaces]
      dhclient_script = /sbin/google-dhclient-script
      dhcp_command =
      ip_forwarding = true
         setup = false
      
    • /etc/network/interfaces에서 다음 줄을 추가합니다.

      auto eth1
      iface eth1 inet dhcp
          up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
      

    각 항목의 의미는 다음과 같습니다.

    • filestore-reserved-address-range는 Filestore 인스턴스에 사용하기 위해 예약된 주소 범위입니다.
    • default-gateway-of-nic-to-filestore는 Filestore 인스턴스와 공유되고, VPC 네트워크에 연결된 NIC의 기본 게이트웨이 IP 주소입니다.

    여러 NIC가 포함된 Compute Engine 인스턴스 사용에 대한 자세한 내용은 정책 라우팅 구성을 참조하세요.

  4. NFS 설치:

    Debian/Ubuntu

    다음 명령어를 사용하여 Debian 또는 Ubuntu에 NFS를 설치합니다.

    sudo apt-get -y update &&
    sudo apt-get install nfs-common

    RHEL/CentOS

    다음 명령어를 사용하여 Red Hat Enterprise Linux 또는 CentOS에 NFS를 설치합니다.

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    다음 명령어를 사용하여 SUSE에 NFS를 설치합니다.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. Filestore 파일 공유에 매핑할 로컬 디렉터리를 만듭니다.

    sudo mkdir -p mount-point-directory
    

    여기서 mount-point-directory는 만들려는 디렉터리입니다(예: /mnt/filedir).

  6. /etc/fstab 파일을 엽니다.

    sudo vim /etc/fstab
    
  7. /etc/fstab 파일에 다음 줄을 추가합니다.

    ip-address:/file-share mount-point-directory nfs defaults,_netdev 0 0
    

    각 항목의 의미는 다음과 같습니다.

    • ip-address는 Filestore 인스턴스의 IP 주소입니다.
    • file-share는 인스턴스의 파일 공유 이름입니다.
    • mount-point-directory는 Filestore 파일 공유를 매핑할 경로입니다.

    : /etc/fstab에서 다음 줄은 기본 마운트 옵션을 사용하여 IP 주소가 10.0.0.2인 Filestore 인스턴스의 파일 공유 vol1을 마운트 지점 디렉터리 /mnt에 마운트합니다.

    10.0.0.2:/vol1 /mnt nfs defaults,_netdev 0 0
    
  8. /etc/fstab에서 모든 것을 마운트합니다.

    sudo mount -a
    

    이제 클라이언트 VM이 부팅될 때마다 파일 공유가 자동으로 마운트됩니다.

Linux: autofs

액세스될 때만 파일 공유를 자동으로 마운트하고, 사용 중이 아닐 때는 마운트되지 않도록 autofs를 구성할 수 있습니다. 파일 공유를 /etc/fstab에 정적으로 마운트하는 것과 비교해서 이 방법은 클라이언트가 여러 마운트 지점에 매핑해야 하는 상황에서 클라이언트 VM 소스를 절약하는 데 도움이 됩니다.

클라이언트 VM에 NFSautofs 설치

  1. Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 클라이언트로 사용하려는 Linux VM을 찾은 후 SSH를 클릭하여 해당 VM에서 터미널을 엽니다.

  3. 선택사항: 여러 네트워크 인터페이스가 포함된 클라이언트 VM에 보조 네트워크를 통해 파일 공유를 마운트합니다.

    세부정보

    클라이언트 VM에 여러 네트워크 인터페이스가 포함되고, 보조 네트워크 즉, nic0 이외의 인터페이스를 통해 파일 공유를 마운트하려는 경우, 파일 공유가 올바른 네트워크 인터페이스를 통해 마운트되는지 확인하기 위해 클라이언트 VM의 라우팅 정책을 구성해야 합니다. 이렇게 하려면 다음 파일을 수정하세요.

    • /etc/default/instance_configs.cfg에서 NetworkInterfacessetup 플래그를 false로 설정합니다.
      [NetworkInterfaces]
      dhclient_script = /sbin/google-dhclient-script
      dhcp_command =
      ip_forwarding = true
         setup = false
      
    • /etc/network/interfaces에서 다음 줄을 추가합니다.

      auto eth1
      iface eth1 inet dhcp
          up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
      

    각 항목의 의미는 다음과 같습니다.

    • filestore-reserved-address-range는 Filestore 인스턴스에 사용하기 위해 예약된 주소 범위입니다.
    • default-gateway-of-nic-to-filestore는 Filestore 인스턴스와 공유되고, VPC 네트워크에 연결된 NIC의 기본 게이트웨이 IP 주소입니다.

    여러 NIC가 포함된 Compute Engine 인스턴스 사용에 대한 자세한 내용은 정책 라우팅 구성을 참조하세요.

  4. 다음 명령어를 실행하여 NFS를 설치합니다.

    Debian/Ubuntu

    다음 명령어를 사용하여 Debian 또는 Ubuntu에 NFS를 설치합니다.

    sudo apt-get -y update &&
    sudo apt-get install nfs-common

    RHEL/CentOS

    다음 명령어를 사용하여 Red Hat Enterprise Linux 또는 CentOS에 NFS를 설치합니다.

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    다음 명령어를 사용하여 SUSE에 NFS를 설치합니다.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. 클라이언트 VM의 터미널 창에서 autofs를 설치합니다.

    Debian/Ubuntu

    sudo apt-get install autofs
    

    RHEL/CentOS

    sudo yum install autofs
    

    SUSE

    sudo zypper -n install autofs
    

클라이언트 VM에 파일 공유를 동적으로 마운트하도록 autofs 구성

  1. autofs 사용 설정:

    sudo systemctl enable --now autofs
    
  2. Filestore 파일 공유에 매핑할 로컬 디렉터리를 만듭니다.

    sudo mkdir -p mount-point-directory
    

    여기서 mount-point-directory는 만들려는 디렉터리입니다. 하위 디렉터리는 포함하지 않아야 합니다. 이 가이드에서는 /nfs가 마운트 지점 디렉터리로 사용됩니다.

  3. /etc/auto.master 파일을 엽니다.

    sudo vim /etc/auto.master
    
  4. /etc/auto.master 파일에 다음 줄을 추가합니다.

    /nfs /etc/auto.nfs --timeout seconds
    

    여기서 seconds는 마운트 제한 시간까지 남은 기간(초)입니다. 기본값은 300입니다. 이 값을 0으로 설정하면 autofs에 의한 마운트 해제가 사용 중지됩니다.

  5. /etc/auto.nfs라는 파일을 만듭니다.

    sudo vim /etc/auto.nfs
    
  6. /etc/auto.nfs 파일에 다음 줄을 추가합니다.

    mount-point-subdir options ip-address:/file-share
    

    각 항목의 의미는 다음과 같습니다.

    • mount-point-subdir은 Firestore 파일 공유를 매핑하려는 /nfs의 하위 디렉터리입니다. 이 하위 디렉터리는 동적으로 생성되며, 클라이언트 VM에 존재하지 않습니다.
    • options는 NFS 마운트 옵션입니다. 자동 마운트의 경우 마운트 및 마운트 해제 시 지연 시간 감소를 위해 -o tcp를 지정하는 것이 좋습니다.
    • ip-address는 Filestore 인스턴스의 IP 주소입니다.
    • file-share는 인스턴스의 파일 공유 이름입니다.

    : /etc/auto.nfs의 다음 줄은 IP 주소가 10.0.0.2인 Filestore 인스턴스의 파일 공유 vol1read/write 액세스 권한이 부여된 동적으로 생성된 하위 디렉터리 file-shares에 마운트합니다.

    file-shares -rw 10.0.0.2:/vol1
    

구성 테스트

  1. 파일 공유가 현재 마운트되어 있으면 이를 마운트 해제해야 합니다.

    sudo umount mount-point-directory
    

    여기서 mount-point-directory는 Filestore 파일 공유가 매핑되는 경로입니다.

    시스템 부팅 시 파일 공유를 마운트하는 /etc/fstab 항목이 있으면 이를 삭제해야 합니다.

  2. autofs 새로고침:

    sudo service autofs reload
    
  3. 구성이 작동하는지 확인합니다.

    ls mount-point-directory/mount-point-subdir
    

    각 항목의 의미는 다음과 같습니다.

    • mount-point-directory/etc/auto.master 파일에 표시된 마운트 지점 디렉터리입니다.
    • mount-point-subdir/etc/auto.nfs 파일에 표시된 마운트 지점 하위 디렉터리입니다.

    이 예시의 명령어는 다음과 같습니다.

    ls /nfs/file-shares
    

    자동 마운트가 올바르게 구성되었으면 시스템이 먼저 파일 공유를 마운트한 후 ls 명령어의 결과를 반환합니다. 파일 공유는 /etc/auto.master 파일에 지정된 timeout 값으로 정의되는 일정 기간 비활성 상태가 지난 후 자동으로 마운트 해제됩니다.

Windows

Windows VM에 연결

  1. Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 클라이언트로 사용할 Windows VM을 찾은 후 RDP를 클릭하여 해당 VM에 대한 원격 데스크톱 연결을 엽니다. 자세한 내용은 Windows 인스턴스에 연결을 참조하세요.

Windows VM에 NFS 설치

  1. Windows VM에서 PowerShell을 관리자로 엽니다.
  2. PowerShell에서 NFS 클라이언트를 설치합니다.

    Install-WindowsFeature -Name NFS-Client
    
  3. 표시되는 메시지에 따라 Windows VM 인스턴스를 다시 시작한 다음 새 원격 데스크톱 연결을 엽니다.

NFS 클라이언트에 사용되는 사용자 ID 구성

  1. PowerShell에서 다음 명령어를 실행하여 2개의 새 레지스트리 항목 AnonymousUidAnonymousGid를 만듭니다.

    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" `
        -Name "AnonymousUid" -Value "0" -PropertyType DWORD
    
    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" `
        -Name "AnonymousGid" -Value "0" -PropertyType DWORD
    
  2. NFS 클라이언트 서비스를 다시 시작합니다.

    nfsadmin client stop
    
    nfsadmin client start
    

파일 공유를 Windows VM에 매핑

  1. PowerShell을 종료합니다.

    exit
    
  2. Command Prompt에서 파일 공유를 하나의 드라이브 문자에 매핑합니다.

    mount filestore-ip:/file-share-name drive-letter:
    

    각 항목의 의미는 다음과 같습니다.

    • filestore-ip는 Filestore 인스턴스의 IP 주소입니다.
    • file-share-name은 Filestore 인스턴스의 파일 공유 이름입니다.
    • drive-letter은 매핑에 지정하려는 드라이브의 문자입니다.

    예시

    다음 명령어는 IP 주소가 10.0.0.2인 Filestore 인스턴스에서 파일 공유 vol1을 클라이언트 Windows VM에 있는 드라이브 z:에 매핑합니다.

    mount 10.0.0.2:/vol1 z:
    

파일 공유에 하위 디렉터리 만들기 및 마운트

파일 공유가 클라이언트 VM에 마운트된 다음에는 파일 공유에 이후 클라이언트가 전체 파일 공유를 마운트하는 대신 직접 마운트할 수 있는 하위 디렉터리를 만들 수 있습니다.

  1. 마운트된 파일 공유에 하위 디렉터리를 만들려면 다음을 실행합니다.

    sudo mkdir -p mount-point-directory/file-share-sub-dir
    

    각 항목의 의미는 다음과 같습니다.

    • mount-point-directory는 파일 공유를 매핑할 경로입니다.
    • file-share-sub-dir은 파일 공유에서 만들려는 하위 디렉터리의 경로입니다.

    이 명령어는 클라이언트 VM 및 파일 공유 모두에 하위 디렉터리를 만듭니다. 예를 들어 클라이언트 VM에서 파일 공유 10.0.0.2:/vol1/mnt 디렉터리에 마운트한 경우, sudo mkdir -p /mnt/nfs 명령어는 파일 공유에 10.0.0.2:/vol1/nfs를 만들고 클라이언트 VM에 /mnt/nfs를 만듭니다.

  2. 선택사항: 파일 공유가 현재 마운트된 클라이언트 VM의 디렉터리에 파일 공유 하위 디렉터리를 마운트하려면 파일 공유를 먼저 마운트 해제해야 합니다.

    sudo umount mount-point-directory
    

    여기서 mount-point-directory는 파일 공유가 현재 매핑된 디렉터리입니다.

  3. 하위 디렉터리를 마운트합니다.

    sudo mount ip-address:/file-share/file-share-sub-dir mount-point-directory
    

    각 항목의 의미는 다음과 같습니다.

    • ip-address는 Filestore 인스턴스의 IP 주소입니다.
    • file-share는 인스턴스의 파일 공유 이름입니다.
    • file-share-sub-dir은 마운트할 파일 공유의 하위 디렉터리 경로입니다.
    • mount-point-directory는 Filestore 파일 공유를 매핑할 경로입니다.

    예시: 다음 명령어를 실행합니다.

    sudo mount 10.0.0.2:/vol1/nfs /mnt/nfs
    
    • 10.0.0.2는 Filestore 인스턴스의 IP 주소입니다.
    • vol1은 파일 공유의 이름입니다.
    • nfs는 파일 공유 하위 디렉터리입니다.
    • /mnt/nfs는 파일 공유 하위 디렉터리 nfs가 매핑된 클라이언트 VM의 디렉터리입니다.

다음 단계