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

  • 既存の Azure ストレージ アカウントおよびファイル共有:この記事で説明している操作を完了するには、ストレージ アカウントとファイル共有を用意する必要があります。An existing Azure storage account and file share: In order to complete this article, you need to have a storage account and file share. まだ作成していない場合は、当該のクイックスタートを参照してください:ファイル共有の作成 - CLIIf you haven't already created one, see one of our quickstarts on the subject: Create file shares - CLI.

  • ストレージ アカウント名とキー この記事で説明している操作を完了するには、ストレージ アカウント名とキーが必要です。Your storage account name and key You will need the storage account name and key in order to complete this article. CLI のクイック スタートを使用して既に作成している場合は、それらを使用できます。それ以外の場合は、上記のリンクに示した CLI クイック スタートを参照して、ストレージ アカウント キーを取得する方法について学習してください。If you created one using the CLI quickstart you should already have them, otherwise, consult the CLI quickstart that was linked earlier, in order to learn how to retrieve your storage account key.

  • マウントのニーズに合わせて 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 リージョンでの接続については、SMB 3.0 が必要です。Azure Files は SMB 2.1 (または、暗号化を使用しない SMB 3.0) を拒否します。For connections coming from clients on-premises or in other Azure regions, you must use SMB 3.0; Azure Files will reject SMB 2.1 (or SMB 3.0 without encryption). 同じ Azure リージョン内の VM から Azure ファイル共有にアクセスしようとしている場合は、Azure ファイル共有をホストしているストレージ アカウントで [安全な転送が必須] が無効にされている場合に限って、SMB 2.1 を使用してファイル共有にアクセスできます。If you're accessing the Azure file share from a VM within the same Azure region, you may access your file share using SMB 2.1, if and only if, secure transfer required is disabled for the storage account hosting the Azure file share. Microsoft では常に、安全な転送を必須として、暗号化した SMB 3.0 のみを使用することをお勧めしています。We always recommend requiring secure transfer and using only 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.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, though this will mean potentially restricting access. 他のアクセス許可を使用する場合は、選択したローカルのユーザーとグループへのアクセスを保持するために、uid と gid の使用も検討する必要があります。If you do use other permissions, you should consider also using uid and gid in order to retain access for local users and groups of your choice.

注意

dir_mode と file_mode を使用してディレクトリとファイルのアクセス許可を明示的に割り当てない場合、それらは既定値の 0755 になります。If you do not explicitly assign directory and file permission with dir_mode and file_mode, they will default to 0755.

  • ポート 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. マウント ポイントのフォルダーを作成します。マウント ポイント用のフォルダーはファイル システム上の任意の場所に作成できますが、一般的な方法ではこれを新しいフォルダーの下に作成します。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 a new folder. たとえば、次のコマンドは新しいディレクトリを作成し、 <storage_account_name><file_share_name> を環境の適切な情報に置き換えます。For example, the following command creates a new directory, replace <storage_account_name> and <file_share_name> with the appropriate information for your environment:

    mkdir -p <storage_account_name>/<file_share_name>
    
  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 リージョン内にある) の外部でしかマウントできません。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. 必要な場合は、マウントされた共有のディレクトリとファイルのアクセス許可を変更できますが、それはアクセスを制限することを意味します。If you like, you can change the directory and file permissions of your mounted share but, this would mean restricting access.

    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. マウント ポイントのフォルダーを作成します。マウント ポイント用のフォルダーはファイル システム上の任意の場所に作成できますが、一般的な方法ではこれを新しいフォルダーの下に作成します。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 a new folder. これをどこに作成する場合でも、フォルダーの絶対パスをメモしてください。Wherever you create this, note the absolute path of the folder. たとえば、次のコマンドは新しいディレクトリを作成し、 <storage_account_name><file_share_name> を環境の適切な情報に置き換えます。For example, the following command creates a new directory, replace <storage_account_name> and <file_share_name> with the appropriate information for your environment.

    sudo mkdir -p <storage_account_name>/<file_share_name>
    
  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> を環境の適切な情報に置き換えます。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=7wRbLU5ea4mgc<DRIVE LETTER>PIpUCNcuG9gk2W4S2tv7p0cTm62wXTK<DRIVE LETTER>CgJlBJPKYc4VMnwhyQd<DRIVE LETTER>UT<DRIVE LETTER>yR5/RtEHyT/EHtg2Q==" >> /etc/smbcredentials/<STORAGE ACCOUNT NAME>.cred'
    fi
    
  4. 資格情報ファイルのアクセス許可を変更して、ルートのみがパスワード ファイルの読み取りと変更を実行できるようにします。 ストレージ アカウント キーは、本質的にはストレージ アカウント キーのスーパー管理者パスワードであるため、ルートのみがアクセスできるようにファイルのアクセス許可を設定して、特権の低いユーザーがストレージ アカウント キーを取得できないようにすることが重要です。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 retrieve 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 リージョン内にある) の外部でしかマウントできません。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/<FILE SHARE NAME> /mount/<STORAGE ACCOUNT NAME>/<FILE SHARE NAME> cifs nofail,vers=3.0,credentials=/etc/smbcredentials/<STORAGE ACCOUNT NAME>.cred,dir_mode=0777,file_mode=0777,serverino" >> /etc/fstab'
    
    sudo mount /mount/<STORAGE ACCOUNT NAME>/<FILE SHARE NAME>
    

注意

/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: