Linux で Azure Files を使用するUse Azure Files with Linux

Azure Files は、Microsoft の使いやすいクラウド ファイル システムです。Azure Files is Microsoft's easy to use cloud file system. Azure ファイル共有は、SMB カーネル クライアントを使用して Linux ディストリビューションにマウントできます。Azure file shares can be mounted in Linux distributions using the SMB kernel client. この記事では、Azure ファイル共有を mount コマンドを使用してオンデマンドでマウントするか、/etc/fstab にエントリを作成することで起動時にマウントするという 2 つの方法について説明します。This article shows two ways to mount an Azure file share: on-demand with the mount command and on-boot by creating an entry in /etc/fstab.

注意

Azure ファイル共有がホストされている Azure リージョン以外の場所 (オンプレミスや他の Azure リージョンなど) に Azure File 共有をマウントするには、OS が SMB 3.0 の暗号化機能をサポートしている必要があります。In order to mount an Azure file share outside of the Azure region it is hosted in, such as on-premises or in a different Azure region, the OS must support the encryption functionality of SMB 3.0.

Linux で cifs-utils パッケージを使用してAzure ファイル共有をマウントするための前提条件Prerequisites for mounting an Azure file share with Linux and the cifs-utils package

  • マウントのニーズに合わせて Linux ディストリビューションを選択する。Pick a Linux distribution to suit your mounting needs.
    Azure Files は、SMB 2.1 および SMB 3.0 経由のどちらかでマウントできます。Azure Files can be mounted either via SMB 2.1 and SMB 3.0. クライアントのオンプレミスから受信した接続や他の Azure リージョンでの接続の場合、Azure Files は SMB 2.1 (または、非暗号化 SMB 3.0) を拒否します。For connections coming from clients on-premises or in other Azure regions, Azure Files will reject SMB 2.1 (or SMB 3.0 without encryption). [安全な転送が必須] がストレージ アカウントで有効になっている場合、Azure Files は暗号化付き SMB 3.0 を使った接続のみを許可します。If secure transfer required is enabled for a storage account, Azure Files will only allow connections using SMB 3.0 with encryption.

    SMB 3.0 暗号化サポートは、Linux カーネル バージョン 4.11 で導入され、普及している Linux ディストリビューションのより古いカーネル バージョンにバックポートされました。SMB 3.0 encryption support was introduced in Linux kernel version 4.11 and has been backported to older kernel versions for popular Linux distributions. このドキュメントの公開時点では、Azure ギャラリーの以下のディストリビューションでは、テーブル ヘッダーで指定されたマウント オプションをサポートしています。At the time of this document's publication, the following distributions from the Azure gallery support mounting option specified in the table headers.

  • 該当のマウント機能で推奨される最低限のバージョン (SMB バージョン 2.1 と SMB バージョン 3.0)Minimum recommended versions with corresponding mount capabilities (SMB version 2.1 vs SMB version 3.0)

    SMB 2.1SMB 2.1
    (同じ Azure リージョン内の VM 上のマウント)(Mounts on VMs within same Azure region)
    SMB 3.0SMB 3.0
    (オンプレミスおよびクロスリージョンからのマウント)(Mounts from on premises and cross-region)
    Ubuntu ServerUbuntu Server 14.04+14.04+ 16.04+16.04+
    RHELRHEL 7+7+ 7.5+7.5+
    CentOSCentOS 7+7+ 7.5+7.5+
    DebianDebian 8+8+
    openSUSEopenSUSE 13.2+13.2+ 42.3 以降42.3+
    SUSE Linux Enterprise ServerSUSE Linux Enterprise Server 1212 12 SP3+12 SP3+

    お使いの Linux ディストリビューションがこの一覧にない場合は、次のコマンドを使用して Linux カーネル バージョンを参照し、チェックできます。If your Linux distribution is not listed here, you can check to see the Linux kernel version with the following command:

    uname -r
    
  • cifs-utils パッケージがインストールされている。The cifs-utils package is installed.
    cifs-utils パッケージは、選択した Linux ディストリビューションのパッケージ マネージャーを使用してインストールできます。The cifs-utils package can be installed using the package manager on the Linux distribution of your choice.

    UbuntuDebian ベースのディストリビューションでは、apt-get パッケージ マネージャーを使用します。On Ubuntu and Debian-based distributions, use the apt-get package manager:

    sudo apt-get update
    sudo apt-get install cifs-utils
    

    RHELCentOS では、yum パッケージ マネージャーを使用します。On RHEL and CentOS, use the yum package manager:

    sudo yum install cifs-utils
    

    openSUSE では、zypper パッケージ マネージャーを使用します。On openSUSE, use the zypper package manager:

    sudo zypper install cifs-utils
    

    他のディストリビューションでは、適切なパッケージ マネージャーを使用するか、ソースからコンパイルします。On other distributions, use the appropriate package manager or compile from source

  • マウントされた共有のディレクトリ/ファイルのアクセス権限を決定する: この後の例では、アクセス許可 0777を使用してすべてのユーザーに読み取り、書き込み、および実行権限を与えています。Decide on the directory/file permissions of the mounted share: In the examples below, the permission 0777 is used to give read, write, and execute permissions to all users. 必要に応じて、他の chmod 権限に置き換えることができます。You can replace it with other chmod permissions as desired.

  • ストレージ アカウント名: Azure File 共有をマウントするには、ストレージ アカウントの名前が必要です。Storage account name: To mount an Azure file share, you need the name of the storage account.

  • ストレージ アカウント キー: Azure File 共有をマウントするには、プライマリ (またはセカンダリ) ストレージ キーが必要です。Storage account key: To mount an Azure file share, you need the primary (or secondary) storage key. 現時点では、SAS キーは、マウントではサポートされていません。SAS keys are not currently supported for mounting.

  • ポート 445 が開いていることを確認する: SMB は、TCP ポート 445 経由で通信します。ファイアウォールによってクライアント コンピューターの TCP ポート 445 がブロックされないことを確認してください。Ensure port 445 is open: SMB communicates over TCP port 445 - check to see if your firewall is not blocking TCP ports 445 from client machine.

Azure ファイル共有を mount を使用してオンデマンドでマウントするMount the Azure file share on-demand with mount

  1. 使用する Linux ディストリビューション用の cifs-utils パッケージをインストールしますInstall the cifs-utils package for your Linux distribution.

  2. マウント ポイント用のフォルダーを作成します。マウント ポイント用のフォルダーはファイル システム上のどこにでも作成できますが、/mnt フォルダー下にこれを作成するのが一般的な規則です。Create a folder for the mount point: A folder for a mount point can be created anywhere on the file system, but it's common convention to create this under the /mnt folder. 例: For example:

    mkdir /mnt/MyAzureFileShare
    
  3. mount コマンドを使用して Azure ファイル共有をマウントします<storage-account-name><share-name><smb-version><storage-account-key>、および <mount-point> をお使いの環境に適した情報に置き換えることを忘れないでください。Use the mount command to mount the Azure file share: Remember to replace <storage-account-name>, <share-name>, <smb-version>, <storage-account-key>, and <mount-point> with the appropriate information for your environment. お使いの Linux ディストリビューションで暗号化付き SMB 3.0 がサポートされている場合 (詳細は「SMB クライアント要件を理解している」を参照)、<smb-version>3.0 を使用します。If your Linux distribution supports SMB 3.0 with encryption (see Understand SMB client requirements for more information), use 3.0 for <smb-version>. 暗号化付き SMB 3.0 をサポートしていない Linux ディストリビューションの場合は、<smb-version>2.1を使用します。For Linux distributions that do not support SMB 3.0 with encryption, use 2.1 for <smb-version>. Azure ファイル共有は、SMB 3.0 がある Azure リージョン (オンプレミスを含むか、または別の Azure リージョン内にある) の外部でしかマウントできないことに注意してください。Note that an Azure file share can only be mounted outside of an Azure region (including on-premises or in a different Azure region) with SMB 3.0.

    sudo mount -t cifs //<storage-account-name>.file.core.windows.net/<share-name> <mount-point> -o vers=<smb-version>,username=<storage-account-name>,password=<storage-account-key>,dir_mode=0777,file_mode=0777,serverino
    

注意

Azure ファイル共有の使用を完了したら、sudo umount <mount-point> を使用して共有を解除できます。When you are done using the Azure file share, you may use sudo umount <mount-point> to unmount the share.

/etc/fstab を使って Azure ファイル共有の永続的なマウント ポイントを作成するCreate a persistent mount point for the Azure file share with /etc/fstab

  1. 使用する Linux ディストリビューション用の cifs-utils パッケージをインストールしますInstall the cifs-utils package for your Linux distribution.

  2. マウント ポイント用のフォルダーを作成します。マウント ポイント用のフォルダーはファイル システム上のどこにでも作成できますが、/mnt フォルダー下にこれを作成するのが一般的な規則です。Create a folder for the mount point: A folder for a mount point can be created anywhere on the file system, but it's common convention to create this under the /mnt folder. これをどこに作成する場合でも、フォルダーの絶対パスをメモしてください。Wherever you create this, note the absolute path of the folder. たとえば、以下のコマンドでは、/mnt 下に新しいフォルダーを作成します (パスは絶対パスです)。For example, the following command creates a new folder under /mnt (the path is an absolute path).

    sudo mkdir /mnt/MyAzureFileShare
    
  3. 共有ファイル用のユーザー名 (ストレージ アカウント名) とパスワード (ストレージ アカウント キー) を格納する資格情報ファイルを作成します。Create a credential file to store the username (the storage account name) and password (the storage account key) for the file share. <storage-account-name><storage-account-key> をお使いの環境に適した情報に置き換えることを忘れないでください。Remember to replace <storage-account-name> and <storage-account-key> with the appropriate information for your environment.

    if [ -d "/etc/smbcredentials" ]; then
        sudo mkdir /etc/smbcredentials
    fi
    
    if [ ! -f "/etc/smbcredentials/<storage-account-name>.cred" ]; then
        sudo bash -c 'echo "username=<storage-account-name>" >> /etc/smbcredentials/<storage-account-name>.cred'
        sudo bash -c 'echo "password=<storage-account-key>" >> /etc/smbcredentials/<storage-account-name>.cred'
    fi
    
  4. 資格情報ファイルのアクセス許可を変更して、ルートのみがパスワード ファイルの読み取りと変更を実行できるようにします。Change permissions on the credential file so only root can read or modify the password file. ストレージ アカウント キーは、本質的にはストレージ アカウント キーのスーパー管理者パスワードであるため、ルートのみがアクセスできるようにファイルのアクセス許可を設定して、特権の低いユーザーがストレージ アカウント キーを取得できないようにすることが重要です。Since the storage account key is essentially a super-administrator password for the storage account, setting the permissions on the file such that only root can access is important so that lower privilege users cannot retrive the storage account key.

    sudo chmod 600 /etc/smbcredentials/<storage-account-name>.cred
    
  5. 次のコマンドを使用して、次の行を /etc/fstab に追加します。<storage-account-name><share-name><smb-version>、および <mount-point> をお使いの環境に適した情報に置き換えることを忘れないでください。Use the following command to append the following line to /etc/fstab: Remember to replace <storage-account-name>, <share-name>, <smb-version>, and <mount-point> with the appropriate information for your environment. お使いの Linux ディストリビューションで暗号化付き SMB 3.0 がサポートされている場合 (詳細は「SMB クライアント要件を理解している」を参照)、<smb-version>3.0 を使用します。If your Linux distribution supports SMB 3.0 with encryption (see Understand SMB client requirements for more information), use 3.0 for <smb-version>. 暗号化付き SMB 3.0 をサポートしていない Linux ディストリビューションの場合は、<smb-version>2.1を使用します。For Linux distributions that do not support SMB 3.0 with encryption, use 2.1 for <smb-version>. Azure ファイル共有は、SMB 3.0 がある Azure リージョン (オンプレミスを含むか、または別の Azure リージョン内にある) の外部でしかマウントできないことに注意してください。Note that an Azure file share can only be mounted outside of an Azure region (including on-premises or in a different Azure region) with SMB 3.0.

    sudo bash -c 'echo "//<storage-account-name>.file.core.windows.net/<share-name> <mount-point> cifs nofail,vers=<smb-version>,credentials=/etc/smbcredentials/<storage-account-name>.cred,dir_mode=0777,file_mode=0777,serverino" >> /etc/fstab'
    

注意

/etc/fstab を編集した後、再起動する代わりに、sudo mount -a を使用して、Azure ファイル共有をマウントできます。You can use sudo mount -a to mount the Azure file share after editing /etc/fstab instead of rebooting.

フィードバックFeedback

Linux ユーザーからのご意見をお待ちしています。Linux users, we want to hear from you!

Azure Files for Linux ユーザーのグループによって、File Storage を Linux で評価および導入するときにフィードバックを共有できるフォーラムが提供されています。The Azure Files for Linux users' group provides a forum for you to share feedback as you evaluate and adopt File storage on Linux. Azure Files Linux Users にメールを送信して、ユーザー グループに参加してください。Email Azure Files Linux Users to join the users' group.

次の手順Next steps

Azure Files の詳細については、次のリンクをご覧ください。See these links for more information about Azure Files.