Linux 서버에서 Azure Files를 SMB 마운트하는 방법

개요



Linux 서버에서 Azure의 스토리지 계정에 만든 Azure Files로
SMB 마운트하는 방법입니다.
의외로 간단하게 할 수 있었습니다만, 마운트하는 서버에 Azure CLI를 인스톨 할 필요가 있어, 여러 사정으로 실작업에서는 사용할 수 없었으므로 비망록. . .

관련 페이지는 이쪽↓
SMB Azure 파일 공유를 Linux에서 마운트
Linux에 Azure CLI 설치

※이번은 Azure상의 RHEL8.1의 서버로 검증했습니다.

절차



①Azure Files 만들기



Azure Portal에서 스토리지 계정에 Azure Files를 만듭니다.
  • Azure Portal에 로그인하여 스토리지 계정 화면을 엽니 다
  • 파일 공유를 클릭하여 Azure Files 만들기

  • ②Azure CLI 설치



    Azure Files를 탑재할 서버에 Azure CLI를 설치합니다.
    ※Linux 서버로부터의 마운트는 Azure CLI의 인스톨이 필수입니다.
  • 대상 서버에 로그인

  • Microsoft 리포지토리 키 가져오기
    sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
    

  • azure-cli 리포지토리 정보 만들기
    echo -e "[azure-cli]
    name=Azure CLI
    baseurl=https://packages.microsoft.com/yumrepos/azure-cli
    enabled=1
    gpgcheck=1
    gpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/azure-cli.repo
    

  • Azure CLI 설치 수행
    sudo dnf install azure-cli
    

  • ①의 Azure Files가 존재하는 구독에 로그인
    az login
    # 認証画面が開かれるため、必要な情報を入力して対象のサブスクリプションにログインしてください。
    

  • 대상 구독이 표시되는지 확인
    az account list
    
    # 異なるサブスクリプションが表示されている場合は、以下のコマンドでサブスクリプションを変更してください。
    az account set --subscription <"対象のサブスクリプションID">
    

  • ③Azure Files 마운트



    ①에서 만든 Azure Files에 ②의 서버에서 마운트합니다.

  • 대상 스토리지 계정에 연결 확인(오류가 출력되지 않는지 확인)
    resourceGroupName="<接続するAzure Files(ストレージアカウント)が存在するリソースグループ名>"
    storageAccountName="<接続するAzure Filesが存在するストレージアカウント名>"
    fileShareName="<接続するAzure Files名>"
    
    httpEndpoint=$(az storage account show --resource-group $resourceGroupName --name $storageAccountName --query "primaryEndpoints.file" | tr -d '"')
    smbPath=$(echo $httpEndpoint | cut -c7-$(expr length $httpEndpoint))
    fileHost=$(echo $smbPath | tr -d "/")
    
    nc -zvw3 $fileHost 445
    
    

  • 서버에 마운트 포인트 생성
    mntRoot="<Azure Filesをマウントするフォルダ>"
    mntPath="$mntRoot/$storageAccountName/$fileShareName"
    sudo mkdir -p $mntPath 
    
    # mntpathで指定されているパスにフォルダが作成されていることを確認する   
    

  • 연결할 스토리지 계정 정보 지정
    httpEndpoint=$(az storage account show --resource-group $resourceGroupName --name $storageAccountName --query "primaryEndpoints.file" | tr -d '"')
    smbPath=$(echo $httpEndpoint | cut -c7-$(expr length $httpEndpoint))$fileShareName
    
    storageAccountKey=$(az storage account keys list --resource-group $resourceGroupName --account-name $storageAccountName --query "[0].value" | tr -d '"')
    

  • 마운트 실행
    sudo mount -t cifs $smbPath $mntPath -o username=$storageAccountName,password=$storageAccountKey,serverino
    

  • 마운트되었는지 확인
    df -Th
    
    [root@XXXXXXXX ~] # df -Th
    Filesystem                                Type      Size  Used Avail Use% Mounted on
    devtmpfs                                  devtmpfs  3.8G     0  3.8G   0% /dev
    tmpfs                                     tmpfs     3.9G     0  3.9G   0% /dev/shm
    tmpfs                                     tmpfs     3.9G  8.7M  3.9G   1% /run
    tmpfs                                     tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
    /dev/mapper/rootvg-rootlv                 xfs       2.0G  329M  1.7G  17% /
    /dev/mapper/rootvg-usrlv                  xfs        10G  2.2G  7.9G  22% /usr
    /dev/mapper/rootvg-varlv                  xfs       8.0G  704M  7.4G   9% /var
    /dev/mapper/rootvg-homelv                 xfs      1014M   40M  975M   4% /home
    /dev/sda1                                 xfs       496M  144M  352M  30% /boot
    /dev/mapper/rootvg-tmplv                  xfs       2.0G   47M  2.0G   3% /tmp
    /dev/sda15                                vfat      495M  6.9M  488M   2% /boot/efi
    /dev/sdb1                                 ext4       16G   45M   15G   1% /mnt
    tmpfs                                     tmpfs     782M     0  782M   0% /run/user/1001
    ★//XXXXXXX.file.core.windows.net/testmedia cifs       10G     0   10G   0% /mount/XXXXX/testmedia
    # ↑ 2.で作成したマウントポイントにAzure Filesがマウントされていることを確認する
    

  • 이제 Azure Files에 마운트되었습니다.
    그 후는, 통상의 공유 파일과 같이, 스토리지 어카운트상으로부터도 서버상으로부터도 조작 가능합니다.
    시도하지는 않지만, 서버의/etc/fstab에 필요한 정보를 기재해 두면, 서버 기동시의 자동 마운트도 가능하다고 합니다.

    이상입니다.

    Linux의 조작 싫어 & Azure의 커멘드 조작은 PowerShall 밖에 기본 사용하기 때문에, CLI 잘 모르는 상태로 해 보았습니다만,
    그래도 쉽게 할 수 있었기 때문에, 기회가 있으면 사용해 보려고 생각합니다.

    좋은 웹페이지 즐겨찾기