

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# マウントの問題のトラブルシューティング
<a name="troubleshooting-efs-mounting"></a>

以下では、EFS ファイルシステムのマウントに関する問題のトラブルシューティングについて説明します。

## Windows インスタンスでのファイルシステムのマウントが失敗する
<a name="mount-windows-instance-fails"></a>

Microsoft Windows の Amazon EC2 インスタンスで、ファイルシステムのマウントが失敗します。

**実行するアクション**  
Amazon EFS を Windows EC2 インスタンスで使用しないでください。これはサポートされていません。

## サーバーによってアクセスが拒否されました
<a name="mount-fail-access-denied-by-server"></a>

ファイルシステムのマウントが失敗し、次のメッセージが表示されます。

```
/efs mount.nfs4: access denied by server while mounting 127.0.0.1:/
```

この問題は、ファイルシステムをマウントするためのアクセス許可が NFS クライアントにない場合に発生することがあります。

**実行するアクション**  
IAM を使用してファイルシステムをマウントする場合は、マウントコマンドで `-o iam` または -o tls オプションを必ず使用します。これにより、EFS マウントヘルパーから EFS マウントターゲットに認証情報を渡すように指示します。それでもアクセスできない場合は、ファイルシステムポリシーと ID ポリシーをチェックして、接続に DENY 句が適用されていないこと、および接続に ALLOW 句が少なくとも 1 つ適用されていることを確認します。詳細については、「[IAM を使用してファイルシステムへのアクセスを制御する](iam-access-control-nfs-efs.md)」および「[ファイルシステムポリシーの作成](create-file-system-policy.md)」を参照してください。

## 自動マウントが失敗してインスタンスがレスポンスしない
<a name="automount-fails"></a>

この問題は、ファイルシステムがインスタンスで自動的にマウントされ、`_netdev` オプションが宣言されていない場合に発生することがあります。`_netdev` が見つからない場合、EC2 インスタンスはレスポンスを停止する可能性があります。この結果は、コンピューティングインスタンスがネットワークを開始後、ネットワークファイルシステムを初期化する必要があるためです。

**実行するアクション**  
この問題が発生した場合は、 AWS サポートにお問い合わせください。

## /etc/fstab での複数の Amazon EFS ファイルシステムのマウントが失敗する
<a name="automount-fix-multiple-fs"></a>

`/etc/fstab` で 2 つ以上の Amazon EFS エントリを使用して systemd init システムを使用するインスタンスの場合、これらのエントリの一部またはすべてがマウントされないことがあります。この場合、`dmesg` 出力で以下のような 1 つ以上の行が表示されます。

```
NFS: nfs4_discover_server_trunking unhandled error -512. Exiting with error EIO
```

**実行するアクション**  
この場合、`/etc/systemd/system/mount-nfs-sequentially.service` に新しい systemd サービスファイルを作成することをお勧めします。ファイルに含めるコードは、ファイルシステムを手動でマウントするか、Amazon EFS マウントヘルパーを使用するかによって異なります。
+ ファイルシステムを手動でマウントする場合、`ExecStart` コマンドはネットワークファイルシステム (NFS4) を指している必要があります。ファイルに次のコードを含めます。

  ```
  [Unit]
  Description=Workaround for mounting NFS file systems sequentially at boot time
  After=remote-fs.target
  
  [Service]
  Type=oneshot
  ExecStart=/bin/mount -avt nfs4
  RemainAfterExit=yes
  
  [Install]
  WantedBy=multi-user.target
  ```
+ Amazon EFS マウントヘルパーを使用している場合、Transport Layer Security (TLS) を使用するためには、`ExecStart` コマンドは NFS4 ではなく EFS を指している必要があります。ファイルに次のコードを含めます。

  ```
  [Unit]
  Description=Workaround for mounting NFS file systems sequentially at boot time
  After=remote-fs.target
  
  [Service]
  Type=oneshot
  ExecStart=/bin/mount -avt efs
  RemainAfterExit=yes
  
  [Install]
  WantedBy=multi-user.target
  ```

ファイル作成後、次の 2 つのコマンドを実行します。

1. `sudo systemctl daemon-reload`

1. `sudo systemctl enable mount-nfs-sequentially.service`

次に、Amazon EC2 インスタンスを再起動します。通常 1 秒以内にオンデマンドでファイルシステムがマウントされます。

## エラーメッセージ「wrong fs type」でマウントコマンドが失敗する
<a name="mount-error-wrong-fs"></a>

マウントコマンドが失敗し、次のエラーメッセージが表示されます。

```
mount: wrong fs type, bad option, bad superblock on 10.1.25.30:/, 
missing codepage or helper program, or other error (for several filesystems 
(e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program)
In some cases useful info is found in syslog - try dmesg | tail or so.
```

**実行するアクション**  
このメッセージが表示された場合、`nfs-utils` (または Ubuntu では `nfs-common`) パッケージをインストールします。詳細については、「[NFS クライアントをインストールする](mounting-fs-install-nfsclient.md)」を参照してください。

## エラーメッセージ「incorrect mount option」でマウントコマンドが失敗する
<a name="mount-error-incorrect-mount"></a>

マウントコマンドが失敗し、次のエラーメッセージが表示されます。

```
mount.nfs: an incorrect mount option was specified
```

**実行するアクション**  
このエラーメッセージは、ほとんどの場合、ご利用の Linux ディストリビューションが Network File System バージョン 4.0 および 4.1 (NFSv4) をサポートしていないことを意味します。これが該当するかどうかを確認するには、次のコマンドを実行します。

```
$ grep CONFIG_NFS_V4_1 /boot/config*
```

前述のコマンドが `# CONFIG_NFS_V4_1 is not set` を返すなら、ご利用の Linux ディストリビューションで NFSv4.1 がサポートされていません。NFSv4.1 をサポートする Amazon Elastic Compute Cloud (Amazon EC2) の Amazon マシンイメージ (AMI) の一覧については、「[NFS サポート](mounting-fs-old.md#mounting-fs-nfs-info)」を参照してください。

## アクセスポイントでのマウントは失敗します。
<a name="mount-error-no-such-file"></a>

アクセスポイントでマウントすると、マウントコマンドが失敗し、次のエラーメッセージが表示されます。

```
mount.nfs4: mounting access_point failed, reason given by server: No such file or directory
```

**実行するアクション**  
このエラーメッセージは、指定した EFS パスが存在しないことを示します。アクセスポイントのルートディレクトリの所有権とアクセス許可を必ず指定してください。この情報がないと EFS はルートディレクトリを作成しません。詳細については、「[アクセスポイントの使用](efs-access-points.md)」を参照してください。

ルートディレクトリの所有権とアクセス許可を指定せず、ルートディレクトリがまだ存在しない場合、EFS はルートディレクトリを作成しません。この場合、アクセスポイントを使用してファイルシステムをマウントしようとすると失敗します。

## ファイルシステムを作成した後すぐにファイルシステムのマウントが失敗する
<a name="mount-fails-propegation"></a>

マウントターゲットを作成した後、ドメインネームサービス (DNS) のレコードが AWS リージョンに完全に伝達するには、最大 90 秒かかります。

**実行するアクション**  
たとえば、 CloudFormation テンプレートを使用してファイルシステムをプログラムで作成およびマウントする場合は、待機条件を実装することをお勧めします。

## ファイルシステムのマウントがハングした後、タイムアウトエラーで失敗する
<a name="mount-hangs-fails-timeout"></a>

ファイルシステムのマウントコマンドが 1、2 分間ハングし、タイムアウトエラーで失敗します。次のコードは例を示しています。

```
$ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/ mnt

[2+ minute wait here]
mount.nfs: Connection timed out
$Â 
```

**実行するアクション**

このエラーは、Amazon EC2 インスタンスまたはマウントターゲットのセキュリティグループが正しく設定されていないために発生することがあります。マウントターゲットセキュリティグループに、ポート 2049 で EC2 セキュリティグループから NFS へのアクセスを許可するインバウンドルールがあることを確認します。詳細については、「[VPC セキュリティグループを使用する](network-access.md)」を参照してください。

指定したマウントターゲットの IP アドレスが有効であることを確認します。間違った IP アドレスを指定し、その IP アドレスにマウントを拒否するものが他に何もない場合、この問題が生じることがあります。

## DNS 名を使用した NFS によるファイルシステムのマウントが失敗する
<a name="mount-fails-dns-name"></a>

次の例に示すように、ファイルシステムの DNS 名を使用して (`amazon-efs-utils` クライアントを使用せずに) NFS クライアントを使用してファイルシステムをマウントしようとすると失敗します。

```
$ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.efs.aws-region.amazonaws.com:/ mnt   
mount.nfs: Failed to resolve server file-system-id.efs.aws-region.amazonaws.com: 
  Name or service not known.   

$ 
```

**実行するアクション**

VPC 設定を確認します。カスタム VPC を使用している場合は、DNS 設定が有効であることを確認します。詳細については、「*Amazon VPC ユーザーガイド*」の「[VPC の DNS 属性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)」を参照してください。また、ファイルシステムおよびマウントターゲット DNS 名は、存在している VPC 外部から解決できません。

`mount` コマンドの DNS 名を使用してファイルシステムをマウントするには、次の作業を行う必要があります。
+ Amazon EC2 インスタンスと同じアベイラビリティーゾーンに Amazon EFS マウントターゲットがあることを確認します。
+ Amazon EC2 インスタンスと同じ VPC にマウントターゲットがあることを確認します。そうしないと、別の VPC で EFS マウントターゲットに DNS 名前解決を使用することができません。詳細については、「[別の AWS アカウント または VPC からの EFS ファイルシステムのマウント](manage-fs-access-vpc-peering.md)」を参照してください。
+ Amazon が提供する DNS サーバーを使用するように設定された Amazon VPC 内で Amazon EC2 インスタンスを接続します。詳細については、「*Amazon VPC ユーザーガイド*」の「[Amazon VPC の DHCP オプションセット](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)」を参照してください。
+ 接続する Amazon EC2 インスタンスの Amazon VPC で、DNS ホスト名が有効であることを確認します。詳細については、「*Amazon VPC ユーザーガイド*」の「[DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support)」(VPC の DNS 属性) を参照してください。

## 「nfs が応答していません」が表示されてファイルシステムのマウントが失敗する
<a name="tcp-reconnect-nfs-not-responding"></a>

`"nfs: server_name still not responding"` との Transmission Control Protocol (TCP) 再接続イベントで Amazon EFS ファイルシステムのマウントが失敗します。

**実行するアクション**

ネットワーク接続が再確立されたときに、NFS クライアントが新しい TCP ソースポートを使用することを確認するには、`noresvport` マウントオプションを使用します。これにより、ネットワーク復旧イベント後の中断のない可用性が保証されます。

## マウントターゲットのライフサイクル状態がスタックする
<a name="mount-target-lifecycle-stuck"></a>

マウントターゲットのライフサイクル状態が [**creating (作成中)**] または [**deleting (削除中)**] の状態でスタックします。

**実行するアクション**  
`CreateMountTarget` または `DeleteMountTarget` の呼び出しを再試行します。

## マウントターゲットのライフサイクルの状態にエラーが表示される
<a name="mount-target-dns-error"></a>

マウントターゲットのライフサイクルステータスが「**エラー**」と表示されます。

**実行するアクション**

 仮想プライベートクラウド (VPC) に競合するホストゾーンがある場合、Amazon EFS は新しいファイルシステムのマウントターゲットに必要なドメインネームシステム (DNS) レコードを作成できません。Amazon EFS は、カスタマー所有のホストゾーン内に新しいレコードを作成することはできません。`efs.<region>.amazonaws.com` DNS 範囲が競合するホストゾーンを維持する必要がある場合は、別の VPC にホストゾーンを作成します。VPC の DNS に関する考慮事項に関する詳細については、「[VPC の DNS 属性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)」を参照してください。

この問題を解決するには、VPC から競合している `efs.<region>.amazonaws.com` ホストを削除して、マウントターゲットを再作成してください。マウントターゲットの削除について詳細は、「[マウントターゲットの管理](accessing-fs.md)」を参照してください。

## マウントが応答しない
<a name="mount-unresponsive"></a>

Amazon EFS マウントが応答していないようにみえます。たとえば、`ls` のようなコマンドがハングします。

**実行するアクション**

別のアプリケーションが大量のデータをファイルシステムに書き込んでいる際に、このエラーが発生することがあります。オペレーションが完了するまで、書き込み中のファイルへのアクセスがブロックされている可能性があります。一般的に、書き込まれているファイルにアクセスしようとするコマンドまたはアプリケーションはハングしているように見えます。たとえば、`ls` コマンドは、書き込み中のファイルに実行された場合、ハングする場合があります。この結果は、一部の Linux ディストリビューションでは、`ls` コマンドに別名を付け、ディレクトリの内容を一覧表示するだけでなく、ファイルの属性を取得するためです。

この問題を解決するには、以下の例のように、別のアプリケーションが Amazon EFS マウントにファイルを書き込んでいること、また、それが `Uninterruptible sleep` (`D`) 状態であることを確認します。

```
$ ps aux | grep large_io.py 
root 33253 0.5 0.0 126652 5020 pts/3 D+ 18:22 0:00 python large_io.py /efs/large_file
```

このような場合には、他の書き込み操作が完了するのを待つか、回避策を実装して問題を解決できます。`ls` の例では、エイリアスの代わりに直接 `/bin/ls` コマンドを使用できます。これにより、書き込まれているファイルにハングすることなくコマンドを続行できます。一般的に、データを書き込むアプリケーションが (おそらく `fsync(2)` を使用して) 定期的にデータを強制的にフラッシュする場合、そうすることで他のアプリケーションへのファイルシステムの応答性が向上する可能性があります。ただし、この改善は、アプリケーションがデータを書き込むときのパフォーマンスを犠牲にする可能性があります。

## マウントされたクライアントは切断されます。
<a name="client-disconnected"></a>

Amazon EFS ファイルシステムにマウントされたクライアントは、さまざまな原因により切断されることがあります。NFS クライアントは、日常的な切断がアプリケーションのパフォーマンスと可用性に与える影響を最小限に抑えるため、中断した場合は自動的に再接続するように設計されています。ほとんどの場合、クライアントは数秒以内に透過的に再接続します。

ただし、古いバージョンの Linux カーネル (バージョン v5.4 以下) に含まれている NFS クライアントソフトウェアには、切断時に NFS クライアントが同じ TCP ソースポートに再接続を試みるという動作が含まれています。この動作は TCP RFC に準拠していないため、これらのクライアントが NFS サーバー (この場合は EFS ファイルシステム) への接続をすぐに再確立できなくなる可能性があります。

この問題を解決するために、Amazon EFS マウントヘルパーを使用して、EFS ファイルシステムをマウントすることを強くお勧めします。EFS マウントヘルパーは、Amazon EFS ファイルシステム用に最適化されたマウント設定を使用します。EFS クライアントおよびマウントヘルパーに関する詳細については、「[Amazon EFS クライアントの手動インストール](using-amazon-efs-utils.md)」を参照してください。

EFS マウントヘルパーを使用できない場合は、この問題を回避するために、新しい TCP ソースポートを使用して接続を再確立するよう NFS クライアントに指示する `noresvport` NFS マウントオプションの使用を強くお勧めします。詳細については、「[推奨される NFS マウント設定](mounting-fs-nfs-mount-settings.md)」を参照してください。

## 新しくマウントされたファイルシステムでの操作が「bad file handle」エラーを返します
<a name="operations-return-bad-file-handle"></a>

新しくマウントされたファイルシステムで実行された操作が `bad file handle` エラーを返します。

このエラーは、Amazon EC2 インスタンスが 1 つのファイルシステムおよび 1 つのマウントターゲットに指定された IP アドレスで接続され、そのファイルシステムとマウントターゲットが削除された場合に発生します。同じマウントターゲットの IP アドレスを持つ Amazon EC2 インスタンスに接続するために新しいファイルシステムとマウントターゲットを作成すると、この問題が発生する可能性があります。

**実行するアクション**  
このエラーは、ファイルシステムをアンマウントし、Amazon EC2 インスタンス上のファイルシステムを再マウントすることで解決できます。Amazon EFS ファイルシステムのアンマウントの詳細については、[ファイルシステムをアンマウントする](unmounting-fs.md) を参照してください。

## ファイルシステムのアンマウントが失敗する
<a name="troubleshooting-unmounting"></a>

ファイルシステムが使用中の場合、アンマウントすることはできません。

**実行するアクション**  
この問題は以下の方法で解決できます。
+ 遅延アンマウント、**umount -l** を使用します。これは、実行時にファイルシステム階層からファイルシステムを切り離し、ビジー状態でなくなるとすぐにファイルシステムへのすべてのリファレンスをクリーンアップします。
+ すべての読み取りおよび書き込み操作が終了するまで待機してから、**umount** コマンドを再実行してください。
+ **umount -f** コマンドを使用して強制的にアンマウントします。
**警告**  
強制的なアンマウントにより、ファイルシステムで現在処理中の、すべてのデータ読み込みまたは書き込み操作が中断されます。このオプションを使用する場合の詳細とガイダンスについては、[umount man page](https://man7.org/linux/man-pages/man8/umount.8.html) を参照してください。