Linux は SMB プロトコルとの互換性が限られています。異なるオペレーティングシステム間でデータを共有する必要がある場合にのみ、Linux クライアントに SMB ファイルシステムをマウントすることを推奨します。このトピックでは、読み書き操作のために Linux Elastic Compute Service (ECS) インスタンスに SMB ファイルシステムをマウントする方法について説明します。
前提条件
-
SMB ファイルシステムと同じリージョンに Linux ECS インスタンスが用意されていること。詳細については、「ECS インスタンスの作成」をご参照ください。
重要-
Linux クライアントの場合、NFS ファイルシステムをマウントすることを推奨します。Linux は SMB プロトコルとの互換性が限られているため、異なるオペレーティングシステム間でデータを共有する必要がある場合にのみ、Linux クライアントに SMB ファイルシステムをマウントしてください。
-
一部の古いバージョンの Linux の SMB クライアントには、特定のシナリオで不具合があります。Alibaba Cloud が公式にサポートしていない Linux オペレーティングシステムのバージョンを使用する場合、SMB ファイルシステムの信頼性は保証できません。
このトピックは、以下の公式サポート対象の 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-default 以降
SUSE Linux
SUSE Linux Enterprise Server 12 SP2 64 ビット: 4.4.74-92.35-default 以降
CoreOS
CoreOS 2079.4.0 64 ビット: 4.19.43-coreos 以降
-
-
SMB ファイルシステムが作成されていること。詳細については、「汎用型 NAS ファイルシステムの作成」をご参照ください。
-
マウントターゲットが作成されていること。詳細については、「マウントターゲットの作成」をご参照ください。
-
ネットワーク接続が確立されていること。
-
Linux ECS インスタンスと SMB ファイルシステムが同じ VPC 内にあることを確認してください。
-
ファイルシステムに関連付けられているセキュリティグループをチェックして、Linux ECS インスタンスが SMB ファイルシステムにアクセスできることを確認してください。
-
TCP ポート 445 が開いていることを確認してください。SMB ファイルシステムは TCP ポート 445 を介して通信します。
ポート 445 が開いていない場合は、ターゲット ECS インスタンスのセキュリティグループに、ポート 445 へのアクセスを許可するセキュリティグループルールを追加してください。詳細については、「セキュリティグループルールの追加」をご参照ください。
-
CIFS クライアントのインストール
Linux クライアントに SMB ファイルシステムをマウントする前に、CIFS クライアントをインストールする必要があります。これは、各 Linux サーバーで一度だけ実行する必要がある設定です。
-
Linux ECS インスタンスに接続します。詳細については、「接続方法」をご参照ください。
-
CIFS クライアントをインストールします。
Ubuntu および Debian
apt-get パッケージ管理ツールを使用します。
sudo apt-get update sudo apt-get install cifs-utilsRHEL、CentOS、および Alibaba Cloud Linux
yum パッケージマネージャーを使用します。
sudo yum install cifs-utilsOpenSUSE および SLES12-SP2
zypper ツールを使用します。
sudo zypper install cifs-utilsCoreOS
以下の方法でクライアントをインストールします。
-
SELinux を設定します。
sed -i 's/SELINUXTYPE=mcs/SELINUXTYPE=targeted/' /etc/selinux/config -
CoreOS 上で CIFS クライアントツールを手動でコンパイルします。
これらの手順に従って Fedora コンテナを起動し、CIFS クライアントツールをコンパイルできます。または、CoreOS 用の Alibaba Cloud 公式 CIFS ツールキットをダウンロードし、 /tmp/ または /bin ディレクトリにコピーすることもできます。
-
CoreOS 上で、Fedora コンテナを起動して cifs-utils をコンパイルします。
docker run -t -i -v /tmp:/cifs fedora /bin/bash -
Docker 環境で、以下のコマンドを順番に実行します。
yum groupinstall -y "Development Tools" "Development Libraries"yum install -y bzip2curl 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.tarcd cifs-utils-6.9; ./configure && makecp mount.cifs /cifs/exit
-
-
SMB ファイルシステムのマウント
Linux では、NAS の SMB ファイルシステムを手動または自動でマウントできます。手動マウントは一時的なもので、サーバーが再起動するたびに繰り返す必要があります。自動マウントは永続的で、再起動後に繰り返す必要はありません。再起動後もマウントが維持されるように、ファイルシステムを手動でのマウントに成功した後で、自動マウントを設定することを推奨します。
手動マウント
NAS の SMB ファイルシステムを Linux ECS インスタンスにマウントするには、ファイルシステムのマウントターゲットアドレスを使用する必要があります。
-
Linux ECS インスタンスに接続します。詳細については、「接続方法」をご参照ください。
-
次のコマンドを実行してファイルシステムをマウントします。
sudo mount -t cifs //file-system-id.region.nas.aliyuncs.com/myshare /mnt -o vers=3.0,guest,uid=0,gid=0,dir_mode=0755,file_mode=0755,mfsymlinks,cache=strict,rsize=1048576,wsize=1048576コマンドの構文は次のとおりです:
sudo mount -t cifs //<mount-target-address>/myshare <mount-directory> -o <mount-options>パラメーター
説明
ファイルシステムタイプ
Linux オペレーティングシステムに SMB ファイルシステムをマウントする場合、
-t cifsパラメーターを指定する必要があります。マウントターゲットアドレス
ファイルシステムのマウントターゲットを作成するときに自動的に生成されるマウントターゲットアドレスです。 プレースホルダーを実際の値に置き換えます。 マウントターゲットアドレスを取得するには、NAS コンソールにログインし、ターゲットファイルシステムの ID をクリックし、マウント使用をクリックしてから、マウントポイントのアドレス 列の
アイコンにカーソルを合わせます。myshare
SMB ファイルシステムの共有ディレクトリの名前です。この名前は変更できません。
マウントディレクトリ
ファイルシステムをマウントするローカルディレクトリです。 例: /mnt/sharepath。
マウントオプション
-oパラメーターを追加して、必須のマウントオプションを指定します:-
vers:SMB プロトコルのバージョン。バージョン 2.1 以降がサポートされています。セキュリティとパフォーマンスを向上させるために、
vers=3.0を指定することを推奨します。 -
guest:パスワードを必要としないゲストアクセスを有効にします。このオプションは、NTLM 認証を使用するクライアントに必須です。
-
rsize:各読み取りリクエストの最大データサイズ (バイト単位) です。1048576 (1 MB) に設定することを推奨します。
-
wsize:各書き込みリクエストの最大データサイズ (バイト単位) です。1048576 (1 MB) に設定することを推奨します。
-oパラメーターを追加して、オプションのマウントオプションを指定します:-
uid:ファイルシステムがマウントされた後のファイル所有者のユーザー ID です。このオプションが指定されていない場合、デフォルト値は 0 です。
-
gid:ファイルシステムがマウントされた後のファイル所有者のグループ ID です。このオプションが指定されていない場合、デフォルト値は 0 です。
-
dir_mode:ディレクトリのアクセス許可です。値は 0 で始まる必要があります。 例: 0755 または 0644。このオプションが指定されていない場合、デフォルト値は 0755 です。
-
file_mode:通常ファイルのアクセス許可です。値は 0 で始まる必要があります。 例: 0755 または 0644。このオプションが指定されていない場合、デフォルト値は 0755 です。
-
mfsymlinks:シンボリックリンクのサポートを有効にします。
-
cache:
-
cache=strict:SMB ファイルシステムのクライアント側のキャッシュを有効にします。cache オプションが指定されていない場合、これがデフォルト設定です。
-
cache=none:SMB ファイルシステムのクライアント側のキャッシュを無効にします。
-
-
atime|relatime:ファイルのアクセス時刻の更新が業務上、重要でない場合は、atime オプションを使用しないでください。デフォルトでは、ファイルシステムは relatime オプションでマウントされます。
説明-
権限のある管理者は、SMB ファイルシステムを完全に制御できます。
-
mount | grep cifsコマンドを実行して、マウントターゲット情報を照会できます。 -
サポートされていない Linux ディストリビューションを使用する場合、カーネルバージョン 3.10.0-514 以降を使用することを強く推奨します。Linux カーネルのバージョンが 3.7 以前の場合は、マウントオプションで
cache=strictパラメーターを設定する必要があります。uname -aコマンドを実行して、現在のカーネルバージョンを確認できます。
-
-
mount -lコマンドを実行して、マウント結果を確認します。出力が次のようであれば、マウントは成功です。
debugfs on /sys/kernel/debug type debugfs (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime) mqueue on /dev/mqueue type mqueue (rw,relatime) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=800928k,mode=700) //xxx-cn-hangzhou.nas.aliuncs.com/mushare on /mnt type cifs (rw,relatime,vers=3.0,sec=none,cache=strict,domain=,uid=0,noforceuid,gid=0,noforcegid,addr=xxx,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)マウントが成功したら、
df -hコマンドを実行して、現在のファイルシステムの容量情報を表示できます。マウントが失敗した場合は、問題をトラブルシューティングしてください。詳細については、「Linux での SMB マウント失敗のトラブルシューティング」をご参照ください。
-
ファイルシステムがマウントされた後、Linux ECS インスタンスからアクセスして、読み取りまたは書き込み操作を実行できます。
NAS SMB ファイルシステムは、通常のディレクトリとしてアクセスして使用できます。 例:
[root@ixxxx ~]# mkdir /mnt/dir1 [root@ixxxx ~]# mkdir /mnt/dir2 [root@ixxxx ~]# touch /mnt/file1 [root@ixxxx ~]# echo 'some file content' > /mnt/file2 [root@ixxxx ~]# ls /mnt dir1 dir2 file1 file2 tmp
(オプション) 自動マウント
Linux ECS インスタンスの /etc/fstab ファイルを設定して、インスタンスの再起動時に SMB ファイルシステムを自動的にマウントできます。
自動マウントを設定する前に、手動でのマウントが成功したことを確認してください。これにより、ECS インスタンスの起動失敗を防ぐことができます。
-
/etc/fstab 設定ファイルを開き、自動マウント設定を追加します。
-
<file-system-id.region.nas.aliyuncs.com> を NAS ファイルシステムの実際のマウントターゲットアドレス (例:
237*******-*****.cn-hangzhou.nas.aliyuncs.com) に置き換えます。 -
</mnt> をローカルマウントディレクトリ (例:
/mnt) に置き換えます。
//file-system-id.region.nas.aliyuncs.com/myshare /mnt cifs vers=3.0,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 インスタンスを再起動すると、サービスが中断されます。この操作はオフピーク時に実行することを推奨します。
-
自動マウントが成功したことを確認してください。
説明ECS インスタンスの再起動後 1 分以内に
df -hコマンドを実行し、NAS ファイルシステムがマウントされていることを確認してください。
ユースケース
さまざまなユースケースに合わせて異なるマウントオプションを設定することで、最適なファイルシステムパフォーマンスを実現できます。以下のセクションでは、一般的なユースケースと推奨されるマウントオプションの設定について説明します。
Linux の共有アクセス
マルチユーザーのホームディレクトリ
Web サーバーの共有アクセス
Windows と Linux の共有アクセス
アクセス制御
Alibaba Cloud NAS の SMB ファイルシステムは、Active Directory (AD) ドメインに基づくユーザー認証とファイルシステムレベルのアクセス許可制御をサポートしています。ドメインユーザーとして SMB ファイルシステムにアクセスすることで、ファイルおよびディレクトリレベルのアクセス制御を実装できます。
AD システムに基づくユーザー認証とファイルシステムレベルのアクセス制御を実装する方法の詳細については、「SMB マウントターゲットの AD ドメインへの参加」および「AD ドメインユーザーとして Linux クライアントで SMB ファイルシステムをマウントして使用する」をご参照ください。
関連ドキュメント
-
SMB ファイルシステム内のデータをバックアップする場合は、「汎用型 NAS ファイルシステムのバックアップ」をご参照ください。
-
ごみ箱を有効にすることもできます。汎用型 NAS ファイルシステムから誤ってファイルを削除した場合、ごみ箱を使用してこれらのファイルとそのメタデータ (UID、GID、ACL など) を復元できます。詳細については、「ごみ箱」をご参照ください。
-
ローカルサーバーまたはオンプレミスデータセンターから SMB ファイルシステムをマウントしてアクセスする場合は、「オンプレミスデータセンターからのファイルシステムへのアクセス」をご参照ください。
-
VPC、リージョン、またはアカウントをまたいでファイルシステムをマウントする必要がある場合は、Cloud Enterprise Network (CEN) を使用できます。詳細については、「CEN を使用した同一リージョン内の VPC 間での NAS ファイルシステムのマウント」または「CEN を使用したアカウントおよびリージョン間での NAS ファイルシステムのマウント」をご参照ください。