はじめに
Oracle Cloud Infrastructure(OCI)のFile Storage Service(FSS)は、複数のコンピュートインスタンスから同時にアクセスできる、フルマネージドのファイルストレージサービスです。
NFSプロトコルを通じてLinuxサーバーや各種ワークロードから透過的に利用することができます。
本記事における対象読者は下記の通りです:
- OCI FSSを初めて利用する方
- LinuxサーバからOCI FSSをマウントを試みてエラーが発生した方
- Amazon EFSからOCI FSSへの移行を検討している方
OCI FSSとAmazon EFSでは、対応するNFSプロトコルのバージョンが異なります。
この違いを事前に把握しておかないと、マウント時にエラーが発生し原因の特定に時間がかかってしまいます。
本記事では、FSSのNFSプロトコル対応状況と実際の接続コマンドをまとめています。
OCI FSSとは?
FSSとは、Virtual Cloud Network(VCN)内に作成するNFSファイルシステムです。
主な特徴を以下に示します。
- 使用量に応じた従量課金で、固定課金は無し
- VCN内のセキュリティリストやNetwork Security Group(NSG)でアクセス制御
- NFSv3をサポート
同一VCN(または接続されたVCN)上のコンピュートインスタンス等からFSSのマウントターゲットのIPアドレスに対してNFSマウントを行うことで、FSSを利用できます。
OCI FSSの対応NFSバージョン
OCI FSSとAmazon EFSは、それぞれ対応するNFSバージョンが異なります。
| NFSバージョン | OCI FSS | Amazon EFS | 主な特徴 |
| v3 | ✅対応 | ❌非対応 | 後方互換性・ステートレス |
| v4.0 | ❌非対応 | ✅対応 | v3のステートフル版 |
| v4.1 | ❌非対応 | ✅対応 | セキュリティが強化された事実上の標準 |
LinuxからOCI FSSにマウントする方法
事前準備:ufs-utilsのインストール(基本不要)
# Oracle Linux / RHEL / CentOS root@server:~# dnf install -y nfs-utils # Ubuntu / Debian root@server:~# apt-get install -y nfs-common
マウント
# マウント用ディレクトリの作成 root@server:~# mkdir -p /mnt/fss # マウント root@server:~# mount -t nfs -o vers=3 (OCI FSSのマウントターゲットIP):/ /mnt/fss # マウント確認 root@server:~# df | grep "/mnt/fss" (OCI FSSのマウントターゲットIP):/ 9007199254740992 6002688 9007199248738304 1% /mnt/fss
永続的にマウントする場合は、/etc/fstabに以下のように追記してください。
(OCI FSSのマウントターゲットIP):/ /mnt/fss nfs defaults,vers=3 0 0
NFSv4.0・NFSv4.1でマウントしようとした場合(エラー例)
# NFSv4.0でマウント (NG) root@server:~# mount -t nfs -o vers=4 (OCI FSSのマウントターゲットIP):/ /mnt/fss mount.nfs: Protocol not supported for (OCI FSSのマウントターゲットIP):/ on /mnt/fss # NFSv4.1でマウント (NG) root@server:~# mount -t nfs -o vers=4.1 (OCI FSSのマウントターゲットIP):/ /mnt/fss mount.nfs: Protocol not supported for (OCI FSSのマウントターゲットIP):/ on /mnt/fss
OCI FSSとAmazon EFS間でファイルを移行する際や、マルチクラウド構成で両サービスを利用する際は上記制約から、
アプリケーションが特定NFSバージョン固有の機能(ロック機構・認証方式など)に依存していないか事前に確認することが必要です。
まとめ
OCI FSSは信頼性の高いマネージドファイルストレージですが、Amazon EFSと対応するNFSプロトコルが異なります。
OCI FSSへの接続でエラーが出た場合は、まずNFSバージョンの指定を確認してみてください。
マウントコマンドでのバージョン指定を正しく行うことが、トラブルを防ぐための第一歩です。