はじめに

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(または接続された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バージョンの指定を確認してみてください。
マウントコマンドでのバージョン指定を正しく行うことが、トラブルを防ぐための第一歩です。