Linux は SMB プロトコルとの互換性が限られています。異なるオペレーティングシステム間でデータを共有する必要がある場合にのみ、Linux クライアントに SMB ファイルシステムをマウントすることを推奨します。このトピックでは、読み取りおよび書き込み操作のために Linux ECS インスタンスに SMB ファイルシステムをマウントする方法について説明します。
前提条件
-
SMB ファイルシステムと同じリージョンで Linux ECS インスタンスが利用可能であること。詳細については、「ECS インスタンスの作成」をご参照ください。
重要-
Linux クライアントの場合、NFS ファイルシステムのマウントを推奨します。Linux は SMB プロトコルとの互換性が限られているため、異なるオペレーティングシステム間でデータを共有する必要がある場合にのみ、Linux クライアントに SMB ファイルシステムをマウントしてください。
-
一部の古い Linux バージョンの SMB クライアントには、特定のシナリオで不具合があります。公式にサポートされていない Linux オペレーティングシステムのバージョンを使用する場合、Alibaba Cloud は 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 プロトコルのバージョン。SMB 3.0 を使用することを推奨します。バージョン 2.1 以降がサポートされています。
-
guest: パスワードを必要としないゲストアクセスを有効にします。このオプションは、NTLM 認証を使用するクライアントに必要です。
-
rsize: 各読み取りリクエストのデータの最大サイズ (バイト単位)。1048576 (1 MB) に設定することを推奨します。
-
wsize: 各書き込みリクエストのデータの最大サイズ (バイト単位)。1048576 (1 MB) に設定することを推奨します。
任意のマウントオプションを指定するには、
-oパラメーターを追加します:-
uid: ファイルシステムのマウント後のファイル所有者のユーザーID。このオプションを指定しない場合、デフォルト値は 0 です。
-
gid: ファイルシステムのマウント後のファイル所有者のグループID。このオプションを指定しない場合、デフォルト値は 0 です。
-
dir_mode: ディレクトリの権限。値は 0755 や 0644 のように 0 で始まる必要があります。このオプションを指定しない場合、デフォルト値は 0755 です。
-
file_mode: 通常ファイルの権限。値は 0755 や 0644 のように 0 で始まる必要があります。このオプションを指定しない場合、デフォルト値は 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 conent' > /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 の後の最初の値)
0 以外の値は、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ドメインへの参加」および「LinuxクライアントでADドメインユーザーとしてSMBファイルシステムをマウントして使用する」をご参照ください。
関連ドキュメント
-
SMB ファイルシステム内のデータをバックアップする場合は、「汎用 NAS ファイルシステムのバックアップ」をご参照ください。
-
ごみ箱を有効にすることもできます。汎用 NAS ファイルシステムから誤ってファイルを削除した場合、ごみ箱を使用してこれらのファイルとそのメタデータ (UID、GID、ACL など) を復元できます。詳細については、「ごみ箱」をご参照ください。
-
ローカルサーバーまたはオンプレミスデータセンターから SMB ファイルシステムをマウントしてアクセスする場合は、「オンプレミスデータセンターからのファイルシステムへのアクセス」をご参照ください。
-
VPC、リージョン、またはアカウントをまたいでファイルシステムをマウントする必要がある場合は、Cloud Enterprise Network (CEN) を使用できます。詳細については、「CEN を使用した同一リージョン内の VPC 間での NAS ファイルシステムのマウント」または「CEN を使用したアカウントおよびリージョン間での NAS ファイルシステムのマウント」をご参照ください。