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インスタンスを設定する必要がなくなります。
Linux ECSインスタンスに接続します。 詳細については、「接続方法」をご参照ください。
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クライアントをインストールします。
セキュリティ強化Linux (SELinux) を設定します。
sed -i 's/SELINUXTYPE=mcs/SELINUXTYPE=targeted/' /etc/selinux/config
CoreOS ECSインスタンスでCIFSクライアントパッケージをコンパイルします。
Fedoraコンテナを作成し、CIFSクライアントパッケージをコンパイルするには、次の手順を実行します。 Alibaba CloudがCoreOS用に提供するCIFSクライアントパッケージをダウンロードし、そのパッケージを /tmp/ または /binディレクトリにコピーすることもできます。
Fedoraコンテナを作成し、cifs-utilsパッケージをコンパイルします。
docker run -t -i -v /tmp:/cifs fedora /bin/bash
Docker環境で次のコマンドを順番に実行します。
yum groupinstall -y "Development Tools" "Development Libraries"
yum install -y bzip2
curl https://download.samba.org/pub/linux-cifs/cifs-utils/cifs-utils-6.9.tar.bz2 --output cifs-utils-6.9.tar.bz2;
bunzip2 cifs-utils-6.9.tar.bz2 && tar xvf cifs-utils-6.9.tar
cd cifs-utils-6.9; ./configure && make
cp mount.cifs /cifs/
exit
SMBファイルシステムのマウント
SMBファイルシステムは、Linux ECSインスタンスに手動または自動でマウントできます。 手動取り付けは一時的な取り付けに適しています。 ECSインスタンスにNASファイルシステムを手動でマウントする場合、ECSインスタンスが起動または再起動されるたびにファイルシステムを再マウントする必要があります。 自動取り付けは永続的な取り付けに適しています。 NASファイルシステムの自動マウントを有効にした場合、ECSインスタンスが起動または再起動されるたびにファイルシステムを再マウントする必要はありません。 ECSインスタンスの再起動後にマウント情報が失われるのを防ぐため、ファイルシステムを手動でマウントした後、NASファイルシステムの自動マウントを有効にすることを推奨します。
手動でファイルシステムをマウント
SMBファイルシステムをLinux ECSインスタンスにマウントするには、SMBファイルシステムのマウントターゲットを使用する必要があります。
Linux ECSインスタンスに接続します。 詳細については、「接続方法」をご参照ください。
次のコマンドを実行して、ファイルシステムをマウントします。
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
コマンドを実行して、カーネルのバージョンを表示できます。
mount -l
コマンドを実行して、マウント結果を表示します。次の例のようなコマンド出力が表示されると、ファイルシステムがマウントされます。
ファイルシステムがマウントされたら、
df -h
コマンドを実行してファイルシステムの容量を表示できます。ファイルシステムのマウントに失敗した場合は、問題のトラブルシューティングを行います。 詳細については、「LinuxでのSMBファイルシステムのマウントの失敗のトラブルシューティング」をご参照ください。
ファイルシステムからデータを読み取り、ファイルシステムにデータを書き込みます。
通常のディレクトリにアクセスするのと同じ方法で、SMBファイルシステムにアクセスできます。 以下の図は一例です。
(オプション) ファイルシステムの自動マウント
Linux ECSインスタンスの /etc/fstab
ファイルを設定して、ECSインスタンスの再起動時にSMBファイルシステムを自動的にマウントできます。
自動マウントを有効にする前に、上記の手動マウントが成功したことを確認してください。 これにより、ECSインスタンスの起動失敗が防止されます。
/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コマンドが実行されていないことを示します。
reboot
コマンドを実行し、ECSインスタンスを再起動します。重要ECSインスタンスを再起動すると、サービスが中断されます。 オフピーク時に操作を実行することを推奨します。
自動マウントが有効になっていることを確認します。
説明df -h
コマンドを実行して、ECSの再起動後1分以内にマウントされたNASファイルシステムを確認できます。
シナリオ
ファイルシステムの最適なパフォーマンスを確保するために、特定のシナリオに基づいてマウントオプションを指定できます。 このセクションでは、シナリオと各シナリオに適したマウントオプションを示します。
複数の Linux ECS インスタンスからファイルシステムへの共有アクセス
複数のLinux ECSインスタンスからホームディレクトリへの共有アクセス
Web サーバーとして機能する複数の Linux ECS インスタンスからファイルシステムへの共有アクセス
Windows ECSインスタンスとLinux ECSインスタンスの両方からファイルシステムへの共有アクセス
アクセス制御
異なるユーザーに異なる権限を付与するために、NASではユーザーを認証し、Active Directory (AD) ドメインに基づいてSMBファイルシステムへのアクセスを制御できます。 SMBファイルシステムのマウントターゲットがADドメインに参加すると、ADユーザーはSMBファイルシステムにアクセスできます。 その後、ADドメインに基づいてSMBファイルシステム内のファイルおよびディレクトリへのアクセスを制御できます。
詳細については、「SMBファイルシステムのマウントターゲットをADドメインに参加させる」および「SMBファイルシステムをADドメインユーザーとしてLinuxクライアントにマウントして使用する」をご参照ください。
関連ドキュメント
SMBファイルシステムでデータをバックアップする方法の詳細については、「汎用NASファイルシステムからのファイルのバックアップ」をご参照ください。
ごみ箱機能を有効にすることもできます。 汎用NASファイルシステムから誤ってファイルを削除した場合は、ごみ箱機能を使用して、これらのファイルと、ユーザー識別子 (UID) 、グループ識別子 (GID) 、アクセス制御リスト (ACL) などのメタデータを復元できます。 詳細については、「ごみ箱」をご参照ください。
オンプレミスサーバーまたは自己管理型データセンターにSMBファイルシステムをマウントしてアクセスする方法の詳細については、「データセンターからファイルシステムにアクセスする」をご参照ください。
同じリージョンのVPC間、または異なるアカウントとリージョン間でファイルシステムをマウントするには、Cloud Enterprise Network (CEN) を使用します。 詳細については、「CENを使用して同じリージョンのVPC間でNASファイルシステムをマウントする」または「CENを使用してアカウントとリージョン間でNASファイルシステムをマウントする」をご参照ください。