すべてのプロダクト
Search
ドキュメントセンター

File Storage NAS:SMB ファイルシステムをマウントする

最終更新日:Sep 29, 2024

Linuxは、Server Message Block (SMB) プロトコルとの互換性が高くありません。 したがって、オペレーティングシステム間でデータを共有する場合にのみ、Linux Elastic Compute Service (ECS) インスタンスにSMBファイルシステムをマウントすることをお勧めします。 このトピックでは、Linux ECSインスタンスにSMBファイルシステムをマウントし、ファイルシステムで読み取りおよび書き込み操作を実行する方法について説明します。

前提条件

  • Linux ECSインスタンスは、SMBファイルシステムを作成するリージョンで使用できます。 詳細については、「作成方法」をご参照ください。

    重要
    • Network File System (NFS) ファイルシステムをLinux ECSインスタンスにマウントすることを推奨します。 LinuxはSMBプロトコルとの互換性が高くありません。 したがって、オペレーティングシステム間でデータを共有する場合にのみ、Linux ECSインスタンスにSMBファイルシステムをマウントすることをお勧めします。

    • このリストにないバージョンのLinuxを使用すると、SMBクライアントでエラーが発生する可能性があります。 サポートされていないバージョンを使用する場合、Alibaba CloudはSMBファイルシステムの信頼性を保証しません。

    次のLinuxディストリビューションのいずれかがECSインスタンスで実行されます。 特に指定がない限り、このトピックは次のLinuxディストリビューションにのみ適用されます。

    オペレーティングシステム

    バージョン

    CentOS

    CentOS 7.6 64ビット: 3.10.0-957.21.3.el7.x86_64以降

    Alibaba Cloud Linux

    • Alibaba Cloud Linux 2.1903 64ビット: 4.19.43-13.2.al7.x86_64以降

    • Alibaba Cloud Linux 3.2104 64ビット: 5.10.23-4.al8.x86_64以降

    Debian

    Debian 9.10 64ビット: 4.9.0-9-amd64以降

    Ubuntu

    Ubuntu 18.04 64ビット: 4.15.0-52-generic以降

    openSUSE

    openSUSE 42.3 64ビット: 4.4.90-28-デフォルトおよびそれ以降

    SUSE Linux

    SUSE Linux Enterprise Server 12 SP2 64ビット: 4.4.74-92.35-デフォルトおよびそれ以降

    CoreOS

    CoreOS 2079.4.0 64ビット: 4.19.43-coreos以降

  • SMB ファイルシステムが作成されます。 詳細については、「NASコンソールでの汎用NASファイルシステムの作成」をご参照ください。

  • マウントターゲットが作成されます。 詳細については、「マウントターゲットの作成」をご参照ください。

  • ネットワークが利用可能です。

    • Linux ECSインスタンスとSMBファイルシステムは、同じ仮想プライベートクラウド (VPC) に存在します。

    • Linux ECSインスタンスのIPアドレスはSMBファイルシステムのホワイトリストにあり、ECSインスタンスはSMBファイルシステムにアクセスできます。

    • ECSインスタンスがSMBファイルシステムにアクセスするためにTCPポート445が有効になっています。

      ポート445が無効になっている場合、そのポートのECSインスタンスのセキュリティグループにルールを追加する必要があります。 詳細については、「セキュリティグループルールの追加」をご参照ください。

CIFSクライアントのインストール

Linux ECSインスタンスにSMBファイルシステムをマウントする前に、Common Internet file system (CIFS) クライアントをインストールする必要があります。 Linux ECSインスタンスを設定した後、次にインスタンスにファイルシステムをマウントするときに、Linux ECSインスタンスを設定する必要がなくなります。

  1. Linux ECSインスタンスに接続します。 詳細については、「接続方法」をご参照ください。

  2. CIFSクライアントをインストールします。

    UbuntuとDebian

    apt-getパッケージマネージャーを使用してCIFSクライアントをインストールします。

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

    Red Hat Enterprise Linux (RHEL) 、CentOS、Alibaba Cloud Linux

    Yellowdog Updater, Modified (YUM) パッケージマネージャを使用してCIFSクライアントをインストールします。

    sudo yum install cifs-utils

    openSUSEとSLES12-SP2

    Zypperパッケージマネージャーを使用してCIFSクライアントをインストールします。

    sudo zypper install cifs-utils

    CoreOS

    次の手順を実行して、CIFSクライアントをインストールします。

    1. セキュリティ強化Linux (SELinux) を設定します。

      sed -i 's/SELINUXTYPE=mcs/SELINUXTYPE=targeted/' /etc/selinux/config
    2. CoreOS ECSインスタンスでCIFSクライアントパッケージをコンパイルします。

      Fedoraコンテナを作成し、CIFSクライアントパッケージをコンパイルするには、次の手順を実行します。 Alibaba CloudがCoreOS用に提供するCIFSクライアントパッケージをダウンロードし、そのパッケージを /tmp/ または /binディレクトリにコピーすることもできます。

      1. Fedoraコンテナを作成し、cifs-utilsパッケージをコンパイルします。

        docker run -t -i -v /tmp:/cifs fedora /bin/bash
      2. Docker環境で次のコマンドを順番に実行します。

        1. yum groupinstall -y "Development Tools" "Development Libraries"
        2. yum install -y bzip2
        3. curl https://download.samba.org/pub/linux-cifs/cifs-utils/cifs-utils-6.9.tar.bz2 --output cifs-utils-6.9.tar.bz2;
        4. bunzip2 cifs-utils-6.9.tar.bz2 && tar xvf cifs-utils-6.9.tar
        5. cd cifs-utils-6.9; ./configure && make
        6. cp mount.cifs /cifs/
        7. exit

SMBファイルシステムのマウント

SMBファイルシステムは、Linux ECSインスタンスに手動または自動でマウントできます。 手動取り付けは一時的な取り付けに適しています。 ECSインスタンスにNASファイルシステムを手動でマウントする場合、ECSインスタンスが起動または再起動されるたびにファイルシステムを再マウントする必要があります。 自動取り付けは永続的な取り付けに適しています。 NASファイルシステムの自動マウントを有効にした場合、ECSインスタンスが起動または再起動されるたびにファイルシステムを再マウントする必要はありません。 ECSインスタンスの再起動後にマウント情報が失われるのを防ぐため、ファイルシステムを手動でマウントした後、NASファイルシステムの自動マウントを有効にすることを推奨します。

手動でファイルシステムをマウント

SMBファイルシステムをLinux ECSインスタンスにマウントするには、SMBファイルシステムのマウントターゲットを使用する必要があります。

  1. Linux ECSインスタンスに接続します。 詳細については、「接続方法」をご参照ください。

  2. 次のコマンドを実行して、ファイルシステムをマウントします。

    sudo mount -t cifs //file-system-id.region.nas.aliyuncs.com/myshare /mnt -o vers=2.1,guest,uid=0,gid=0,dir_mode=0755,file_mode=0755,mfsymlinks,cache=strict,rsize=1048576,wsize=1048576

    コマンド構文: sudo mount -t cifs // <マウント対象のドメイン名>/myshare <マウントディレクトリ> -o <マウントオプション>

    パラメーター

    説明

    ファイルシステムの種類

    Linux ECSインスタンスにSMBファイルシステムをマウントするには、-t cifsパラメーターを指定する必要があります。

    マウント対象のドメイン名

    マウントターゲットのドメイン名は、マウントターゲットの作成時に自動的に生成されます。 ドメイン名を実際の値に置き換えます。 マウントターゲットのドメイン名を取得するには、次の手順を実行します。NASコンソールにログインします。 [ファイルシステムリスト] ページで、ファイルシステムIDをクリックします。 マウント使用 タブをクリックします。 次に、マウントポイントのアドレス列のアイコンの上に挂载点ポインターを移動します。

    myshare

    SMBファイルシステムの共有ディレクトリの名前。 このパラメーターを指定した後は、名前を変更できません。

    マウントディレクトリ

    SMBファイルシステムがマウントされているディレクトリのパス。 たとえば、/mnt/sharepathを指定できます。

    マウントオプション

    mountコマンドに -oパラメーターを追加して、必要なマウントオプションを指定します。

    • vers: SMBプロトコルのバージョン。 オプションに2.1以降を指定します。

    • guest: ファイルシステムのマウントに使用するID。 New Technology LAN Manager (NTLM) プロトコルに基づいて認証されたゲストIDを使用する必要があります。

    • rsize: SMBクライアントがSMBファイルシステムから読み取ることができるデータパケットの最大サイズ。 ほとんどの場合、このオプションを1048576 (1 MB) に設定します。

    • wsize: SMBクライアントがSMBファイルシステムに書き込むことができるデータパケットの最大サイズ。 ほとんどの場合、このオプションを1048576 (1 MB) に設定します。

    -oパラメーターを追加してマウントオプションを指定します。

    • uid: マウントが成功した後にファイルシステム内のファイルが属するユーザー。 uid の規定値は 0 です。

    • gid: マウントが成功した後にファイルシステム内のファイルが属するユーザーグループ。 gid の規定値は 0 です。

    • dir_mode: 指定されたディレクトリでユーザーに付与する読み取り、書き込み、および実行権限。 値は0で始まる必要があります。たとえば、0755と0644です。 dir_mode の規定値は 0755 です。

    • file_mode: ファイルに対してユーザーに付与する読み取り、書き込み、および実行権限。 値は0で始まる必要があります。たとえば、0755と0644です。 file_mode の規定値は 0755 です。

    • mfsymlinks: シンボルリンクをサポートするかどうかを指定します。

    • キャッシュ:

      • このオプションをstrictに設定すると、SMBクライアントのキャッシュが有効になります。 キャッシュのデフォルト値はstrictです。

      • このオプションをnoneに設定すると、SMBクライアントのキャッシュは無効になります。

    • atime | relatime: ファイルアクセス時間がビジネスに影響しない場合は、このオプションをatimeに設定しないことを推奨します。 このオプションのデフォルト値はrelatimeです。

    説明
    • Linux ECSインスタンスの許可された管理者は、SMBファイルシステムを完全に制御できます。

    • マウントターゲットの詳細を表示する場合は、mount | grep cifsコマンドを実行します。

    • カーネルバージョンが3.10.0 514以降のLinuxディストリビューションを使用することを推奨します。 カーネルバージョンが3.7以前のLinuxディストリビューションを使用している場合は、cacheオプションをstrictに設定します。 uname -aコマンドを実行して、カーネルのバージョンを表示できます。

  3. mount -lコマンドを実行して、マウント結果を表示します。

    次の例のようなコマンド出力が表示されると、ファイルシステムがマウントされます。

    回显信息

    ファイルシステムがマウントされたら、df -hコマンドを実行してファイルシステムの容量を表示できます。

    ファイルシステムのマウントに失敗した場合は、問題のトラブルシューティングを行います。 詳細については、「LinuxでのSMBファイルシステムのマウントの失敗のトラブルシューティング」をご参照ください。

  4. ファイルシステムからデータを読み取り、ファイルシステムにデータを書き込みます。

    通常のディレクトリにアクセスするのと同じ方法で、SMBファイルシステムにアクセスできます。 以下の図は一例です。

    访问NAS

(オプション) ファイルシステムの自動マウント

Linux ECSインスタンスの /etc/fstabファイルを設定して、ECSインスタンスの再起動時にSMBファイルシステムを自動的にマウントできます。

説明

自動マウントを有効にする前に、上記の手動マウントが成功したことを確認してください。 これにより、ECSインスタンスの起動失敗が防止されます。

  1. /etc/fstab設定ファイルを開きます。

    //<Domain name of the mount target>/myshare /mnt cifs vers=3,guest,uid=0,gid=0,dir_mode=0755,file_mode=0755,mfsymlinks,cache=strict,rsize=1048576,wsize=1048576 0 0

    詳細については、「マウントパラメーター」をご参照ください。 次の表に、前の表に含まれていないパラメーターを示します。

    パラメーター

    説明

    0 (wsize後の最初の値)

    dumpコマンドを実行してファイルシステムをバックアップするかどうかを指定します。 ゼロ以外の値は、ファイルシステムがバックアップされていることを示します。 NASファイルシステムの場合、デフォルト値は0です。

    0 (wsizeの後の2番目の値)

    起動時にfsckコマンドがファイルシステムをチェックする順序。 NASファイルシステムの場合、デフォルト値は0です。これは、起動時にfsckコマンドが実行されていないことを示します。

  2. rebootコマンドを実行し、ECSインスタンスを再起動します。

    重要

    ECSインスタンスを再起動すると、サービスが中断されます。 オフピーク時に操作を実行することを推奨します。

  3. 自動マウントが有効になっていることを確認します。

    説明

    df -hコマンドを実行して、ECSの再起動後1分以内にマウントされたNASファイルシステムを確認できます。

シナリオ

ファイルシステムの最適なパフォーマンスを確保するために、特定のシナリオに基づいてマウントオプションを指定できます。 このセクションでは、シナリオと各シナリオに適したマウントオプションを示します。

複数の Linux ECS インスタンスからファイルシステムへの共有アクセス

複数のLinux ECSインスタンスがファイルシステムへのアクセスを共有し、アクセス制御は必要ありません。 このシナリオでは、各ECSインスタンスの許可された管理者を使用して、ECSインスタンスにファイルシステムをマウントできます。 次のコマンドの例を示します。

 mount -t cifs //file-system-id.region.nas.aliyuncs.com/myshare /mnt/sharepath -o vers=2.1,guest,mfsymlinks

パラメーター:

  • file-system-id.region.nas.aliyuncs.com: マウントターゲットのドメイン名。 ドメイン名を実際の値に置き換えます。 マウントターゲットのドメイン名を取得するには、次の手順を実行します。NASコンソールにログインします。 [ファイルシステムリスト] ページで、ファイルシステムIDをクリックします。 マウント使用 タブをクリックします。 次に、マウントポイントのアドレス列のアイコンの上に挂载点ポインターを移動します。

  • /mnt/sharepath: ファイルシステムがマウントされているディレクトリのパス。 実際のパスに置き換えます。

複数のLinux ECSインスタンスからホームディレクトリへの共有アクセス

複数のLinux ECSインスタンスがホームディレクトリへのアクセスを共有するため、ホームディレクトリへのアクセスを制御する必要があります。 mountコマンドでuid、gid、dir_mode、およびfile_modeオプションを設定して、権限を管理できます。

Web サーバーとして機能する複数の Linux ECS インスタンスからファイルシステムへの共有アクセス

Apache HTTP Server などの Web サーバーアプリケーションを複数の Linux ECS インスタンスにインストールし、SMB ファイルシステムを共有ファイルストレージとして使用できます。

説明
  • SMBファイルシステムは、共有アクセス、水平スケーラビリティ、および高可用性を提供します。 ユーザーがSMBファイルシステム内の小さなファイルにアクセスすると、SMBファイルシステムのパフォーマンスが低下する可能性があります。 これは、SMBファイルシステムのメカニズムがローカルディスクのメカニズムと異なるために発生します。 このシナリオでは、最適なパフォーマンスを確保するために、共有ファイルをSMBファイルシステムに保存し、その他のファイルをローカルディスクに保存することをお勧めします。

  • ほとんどの場合、webサーバーアプリケーションのワークロードは大きくなります。 アプリケーションの高速化機能を有効にして、重いワークロードを処理できます。 この機能を有効にするには、 NASテクニカルサポートに連絡してください。

Windows ECSインスタンスとLinux ECSインスタンスの両方からファイルシステムへの共有アクセス

Windows ECSインスタンスとLinux ECSインスタンスは、SMBファイルシステムへのアクセスを共有します。 このシナリオでは、Linux ECSインスタンスにファイルシステムをマウントするときに、cacheオプションをstrictに設定するか、このオプションのデフォルト値を使用する必要があります。

アクセス制御

異なるユーザーに異なる権限を付与するために、NASではユーザーを認証し、Active Directory (AD) ドメインに基づいてSMBファイルシステムへのアクセスを制御できます。 SMBファイルシステムのマウントターゲットがADドメインに参加すると、ADユーザーはSMBファイルシステムにアクセスできます。 その後、ADドメインに基づいてSMBファイルシステム内のファイルおよびディレクトリへのアクセスを制御できます。

詳細については、「SMBファイルシステムのマウントターゲットをADドメインに参加させる」および「SMBファイルシステムをADドメインユーザーとしてLinuxクライアントにマウントして使用する」をご参照ください。

関連ドキュメント