ファイルストレージ NAS (NAS) は、Alibaba Cloud が提供する分散ファイルシステムです。NAS は共有アクセスと自動スケーリングをサポートしています。NAS は高信頼性と高パフォーマンスを特長としています。このトピックでは、NAS ボリュームをエラスティックコンテナインスタンスにマウントする方法について説明します。
注意事項
NAS ファイルシステムは使用量に基づいて課金され、従量課金制、リソースプラン、ストレージ容量ユニット (SCU) 課金方式をサポートしています。NAS の課金の詳細については、課金概要 を参照してください。
NAS ファイルシステムと、NAS ファイルシステムがマウントされるエラスティックコンテナインスタンスは、同じ仮想プライベートクラウド (VPC) 内にある必要があります。
NAS は共有ストレージサービスです。NAS ファイルシステムは複数のインスタンスにマウントできます。NAS ファイルシステムが複数のインスタンスにマウントされている場合、ファイルシステム内のデータはインスタンス間で共有されます。この場合、複数のインスタンスでデータが変更されたときに、アプリケーションはインスタンス間でデータを同期できる必要があります。
NAS ファイルシステムをアンマウントする前に、マウントターゲットを削除しないでください。マウントターゲットを削除すると、オペレーティングシステムがハングする可能性があります。
準備
Alibaba Cloud ファイルストレージ NAS ファイルシステムをボリュームとしてエラスティックコンテナインスタンスにマウントする前に、NAS ファイルシステムとマウントターゲットを作成します。詳細については、ファイルシステムの作成 および マウントターゲットの管理 を参照してください。
構成の説明 (API モード)
CreateContainerGroup API オペレーションを呼び出してエラスティックコンテナインスタンスを作成するときに、ボリューム関連のパラメータを使用してボリュームを指定し、Container.VolumeMount 関連のパラメータを使用してボリュームをコンテナにマウントできます。以下の部分では、関連するパラメータについて説明します。詳細については、CreateContainerGroupを参照してください。
マウントするボリュームの指定
ボリューム関連のパラメータを使用してボリュームを指定する場合、最初にボリュームのタイプと名前を指定する必要があります。次に、Volume.N.Type パラメータの値に基づいて、他のボリューム関連のパラメータを構成する必要があります。
NAS ボリュームを指定するには、次のボリュームタイプを指定できます。
NFS ボリューム
パラメータ
タイプ
例
説明
Volume.N.Name
String
nas-demo
ボリューム N の名前。
Volume.N.Type
String
NFSVolume
値を NFSVolume に設定します。この値は NFS ボリュームを指定します。
Volume.N.NFSVolume.Server
String
3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com
Volume.N.Type パラメータを NFSVolume に設定した場合のサーバーのエンドポイント。
Alibaba Cloud ファイルストレージ NAS ファイルシステムをマウントする場合は、値を NAS ファイルシステムのマウントターゲットのドメイン名に設定します。
Volume.N.NFSVolume.Path
String
/share
NFS ボリュームへのパス。
Volume.N.NFSVolume.ReadOnly
Boolean
false
NFS ボリューム N の権限を読み取り専用にするかどうかを指定します。有効な値:
true: NFS ボリューム N の権限は読み取り専用です。
false: NFS ボリューム N の権限は読み取りと書き込みです。
デフォルト値: false。
FlexVolume プラグインを使用してマウントされるボリューム
パラメータ
タイプ
例
説明
Volume.N.Name
String
nas-demo
ボリューム N の名前。
Volume.N.Type
String
FlexVolume
値を FlexVolume に設定します。この値は、FlexVolume プラグインを使用してマウントされるボリュームを指定します。
Volume.N.FlexVolume.Driver
String
alicloud/nas
FlexVolume プラグインを使用してボリュームをマウントする場合のドライバタイプ。
alicloud/nasの値は、Alibaba Cloud ファイルストレージ NAS ファイルシステムをマウントすることを指定します。Volume.N.FlexVolume.Options
String
{"server":"3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com","path": "/share","vers":"3","options":"nolock,tcp,noresvport"}
Volume.N.Type パラメータを FlexVolume に設定した場合のオプション。各オプションは JSON 文字列のキーと値のペアです。
FlexVolume プラグインを使用して NAS ファイルシステムをボリュームとしてエラスティックコンテナインスタンスにマウントする場合、このパラメータは NAS ボリュームの構成パラメータを表します。次のパラメータを構成できます。
server: NAS ボリュームのマウントターゲットのドメイン名。
path: NAS ファイルシステムのサブディレクトリ。値はスラッシュ
/で始まる必要があります。NAS ファイルシステムの既存のサブディレクトリを入力します。指定されたサブディレクトリが存在しない場合、システムは NAS ボリュームをサブディレクトリにマウントする前に、自動的にサブディレクトリを作成します。
Extreme NAS の場合、指定されたパスは
/shareで始まる必要があります。このパラメータを設定しない場合、NAS ファイルシステムはルートディレクトリにマウントされます。
vers: NAS ファイルシステムのマウントに使用される NFS プロトコルのバージョン番号。NFS v3 を使用することをお勧めします。Extreme NAS は NFS v3 のみをサポートしています。
options: NAS ボリュームのカスタムパラメータ。このパラメータの形式は xxx,xxx,xxx です。例:
nolock,tcp,noresvport。
ボリュームのマウント
ボリュームを指定した後、VolumeMount 関連のパラメータを使用してボリュームをコンテナにマウントできます。
パラメータ | タイプ | 例 | 説明 |
Container.N.VolumeMount.N.Name | String | test-volume | コンテナ N にマウントするボリューム N の名前。この値は Volume.N.Name の値です。 |
Container.N.VolumeMount.N.MountPath | String | /usr/share | ボリューム N がマウントされるディレクトリ。 このディレクトリの下のデータは、ボリューム上のデータによって上書きされます。この値が正しいことを確認してください。 |
Container.N.VolumeMount.N.SubPath | String | /usr/sub | ボリュームのサブディレクトリ。このパラメータは、インスタンスがコンテナの異なるサブディレクトリにマウントできる同じボリュームの異なるサブディレクトリを指定します。 |
Container.N.VolumeMount.N.ReadOnly | Boolean | false | マウントディレクトリを読み取り専用にするかどうかを指定します。デフォルト値: false。 |
Container.N.VolumeMount.N.MountPropagation | String | None | ボリューム N のマウント伝播設定。マウント伝播を使用すると、1 つのコンテナにマウントされているボリュームを、同じエラスティックコンテナインスタンス内の他のコンテナ、または同じホスト上の他のエラスティックコンテナインスタンスに共有できます。有効な値:
デフォルト値: None。 |
ボリュームは init コンテナにもマウントできます。必要なパラメータは、前の表のパラメータと似ています。Container を InitContainer に変更するだけです。
構成の説明 (コンソールモード)
エラスティックコンテナインスタンスの購入ページ でエラスティックコンテナインスタンスを作成するときに、コンテナグループの構成 セクションでボリュームを指定し、コンテナの構成 セクションでボリュームをコンテナにマウントできます。
マウントするボリュームの指定
コンテナグループの作成ウィザードの基本設定ステップの コンテナグループの構成 セクションで、詳細設定 をクリックします。
ストレージ セクションで、NAS 永続性 タブをクリックし、追加 をクリックします。
NAS ボリュームのパラメータを構成します。
名前: NAS ボリュームの名前。
マウントポイント: NAS ファイルシステムのマウントターゲット。
パス: NAS ファイルシステムへのパス。
読み取り専用: NAS ファイルシステム内のデータに対する読み取りおよび書き込み権限。デフォルトでは、NAS ファイルシステムからデータを読み取り、NAS ファイルシステムに書き込むことができます。ビジネス要件に基づいて読み取り専用を選択できます。

ボリュームのマウント
コンテナグループの作成ウィザードの基本設定ステップの コンテナの構成 セクションで、コンテナを選択し、コンテナの詳細設定をクリックします。
ストレージ をオンにし、追加 をクリックします。
コンテナグループの構成セクションで指定したボリュームのみを追加できます。

複数のコンテナにボリュームをマウントする場合は、さらにコンテナを選択し、上記の手順を繰り返します。
構成例
エラスティックコンテナインスタンス A (インスタンス A) を作成し、NAS ボリュームをインスタンス A にマウントします。
次の例は、CreateContainerGroup API オペレーションを呼び出してインスタンス A を作成するときに構成する必要があるパラメータを示しています。詳細については、CreateContainerGroup を参照してください。
ContainerGroupName=test-nas-a SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** // マウントするボリュームを指定します。 Volume.1.Name=nas-demo Volume.1.Type=NFSVolume Volume.1.NFSVolume.Server=3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com Volume.1.NFSVolume.Path=/share // ボリュームをコンテナにマウントします。 Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=nas-demo Container.1.VolumeMount.1.MountPath=/data-aインスタンス A に接続し、マウントディレクトリにファイルを追加します。
詳細については、エラスティックコンテナインスタンスへの接続 を参照してください。

インスタンス A を削除します。
エラスティックコンテナインスタンス B (インスタンス B) を作成し、同じ NAS ボリュームをインスタンス B にマウントします。
ContainerGroupName=test-nas-b SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** // マウントするボリュームを指定します。 Volume.1.Name=nas-demo Volume.1.Type=FlexVolume Volume.1.FlexVolume.Driver=alicloud/nas Volume.1.FlexVolume.Options={"server":"3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com","path": "/share"} // ボリュームをコンテナにマウントします。 Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=nas-demo Container.1.VolumeMount.1.MountPath=/data-bインスタンス B に接続し、マウントディレクトリ内のファイルがインスタンス A の NAS ボリュームのマウントディレクトリ内のファイルと同じであるかどうかを確認します。
インスタンス A とインスタンス B は同じ NAS ボリュームを共有し、NAS ボリュームは永続ストレージです。インスタンス A が削除された後、インスタンス B を使用して、インスタンス A を使用して NAS ボリュームに追加したファイルを取得できます。
