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 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 잘 모르는 상태로 해 보았습니다만,
그래도 쉽게 할 수 있었기 때문에, 기회가 있으면 사용해 보려고 생각합니다.
Reference
이 문제에 관하여(Linux 서버에서 Azure Files를 SMB 마운트하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mikanchaaan/items/dfa353c11d27b07b99b4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)