OCIでファイルストレージサービス(FSS)を実装してみた
こんにちは。Oracle Cloud Infrastructure(OCI)特集 編集部です。
今回はOCIでファイルストレージサービス(以下FSS)の実装をします。
FSSはオブジェクトストレージと違い、同時アクセスが可能なストレージとなっています。
【参考】ファイルストレージサービスとは
以下の手順で設定をします。
【作業の流れ】
前提
FSSを作成する予定のVCN内に、FSSにアクセスする為にLinuxサーバーを1台建ててください。
ファイルシステムの作成
ファイルシステムを作成すると、インスタンスからアクセス可能なマウント・ターゲットも同時に作成することができます。
マウント・ターゲットには後から複数のファイルシステムを紐づける事ができます。
※CLIの場合はファイルシステムとマウント・ターゲットを個別に作成することができます。
左上のメニューから「ファイル・ストレージ」⇒「ファイル・システム」を選択します。

「ファイルシステムの作成」を選択します。

以下の情報を入力します。
[ファイル・システム情報]
①ファイル・システム名
任意の名前を入力します。
何も入力をしない場合は、「FileSystem-YYYYMMDD-HHMM」の名前が割り振られます。
②可用性ドメイン
可用性ドメインを選択します。
[エクスポート情報]
③エクスポート・パス名
任意の名前を入力します。
何も入力をしない場合は、「/FileSystem-YYYYMMDD-HHMM」の名前が割り振られます。
[マウント・ターゲット情報]
④既存・新規マウント
ここでは「新規マウント・ターゲットの作成」を選択します。
⑤新規マウント・ターゲット名
任意の名前を入力します。
何も入力をしない場合は、「MountTarget-YYYYMMDD-HHMM」の名前が割り振られます。
⑥仮想クラウド・ネットワーク
ファイルシステムを作成するネットワークを選択します。
⑦サブネット
ファイルシステムを作成するサブネットを選択します。
①~⑦までの情報を入力した後に「作成」を選択します。



ファイルシステムが作成されました。
画面下部にあるマウント・ターゲットを選択します。

マウント・ターゲットも作成されていることを確認します。
IPアドレスの欄を確認します。VCN内のこのIPアドレスで、作成したファイルシステムがエクスポートされています。

セキュリティリストの設定
FSSにリージョン内からアクセスするためには、NFSトラフィックを許可する必要があります。
※デフォルトでは拒否設定になっています。
対象のセキュリティリストの詳細画面で、「イングレス・ルールの追加」を選択します。

以下の情報を入力します。
[イングレス・ルール1]
①ステートレス
チェックをつけずそのままにします。
②ソース・タイプ
CIDRを選択します。
③ソースCIDR
対象のVCNのCIDRを入力します。
④IPプロトコル
TCPを選択します。
⑤宛先ポート範囲
111,2048-2050を入力します。
[イングレス・ルール2]
①ステートレス
チェックをつけずそのままにします。
②ソース・タイプ
CIDRを選択します。
③ソースCIDR
対象のVCNのCIDRを入力します。
④IPプロトコル
UDPを選択します。
⑤宛先ポート範囲
111,2048を入力します。
入力が終わったら、「作成」を選択します。

ルールが追加されたことを確認します。

ファイルシステムのマウント
前提で作成されたLinuxサーバーに接続し、NFSクライアントからネットワーク越しにファイルシステムをマウントします。
まず、任意のターミナルソフトを起動し、前提で作成したLinuxサーバーにssh接続をします。
※今回はTeraTermで作業しました。



NFSクライアントを含むパッケージがインストールされているか確認します。
sudo yum list installed | grep nfs-utils
以下のような結果になれば、インストールされています。

インストールされていなければ、以下のコマンドを実行してください。
sudo yum -y install nfs-utils
ファイルシステムをマウントするマウントポイントを作成します。
名前は任意ですが、ファイルシステム名と同一にするとわかりやすいかと思います。
(今回は別々の名前で作成してしまいました…)
sudo mkdir -p /mnt/FileSystem
以下のコマンドを実行し、マウントします。
sudo mount X.X.X.X:/FileSystem20190610-0224 /mnt/FileSystem
◆コマンドの内容は以下の部分を書き換えてください。
X.X.X.X
⇒マウント・ターゲットのIPアドレス
/FileSystem20190610-0224
⇒ファイルシステムのエクスポートパス
/mnt/FileSystem
⇒作成したマウントポイント
プロンプトがエラーがなく返ってくれば、マウントが出来ています。
以下のコマンドを実行し、マウントされたことを確認します。
df -h

スナップショットの作成~復元まで
スナップショットの作成
以下のコマンドを実行し、マウントしているファイルシステム上に新しくファイルを作成します。
※任意の名前(ここではtestfileで作成しています)
cd /mnt/FileSystem
sudo touch testfile
ls

ファイルを編集し、適当な文字を入れておきます。
ここではtest20190621と入力しました。
sudo vi testfile
sudo cat testfile


snapshotというディレクトリの下に新しくディレクトリを作成します。
snapshotディレクトリ下にディレクトリを作成する=スナップショットの作成になります。
※任意の名前(ここではtestsnapshot20190621で作成しています)
sudo mkdir ./.snapshot/testsnapshot20190621
スナップショットが作成されました。
ちなみに作成したスナップショットはコンソールからも確認できます。
ファイルシステム詳細画面⇒「スナップショット」を選択します。

対象のスナップショットを選択します。


スナップショットからの復元
ここでは対象のファイルを削除した後に、先ほど作成したスナップショットからファイルを復元させます。
以下のコマンドを実行し、先ほど作成したファイルを削除します。
sudo rm testfile
以下のコマンドを実行し、ファイルが削除されたことを確認します。
ls

以下のコマンドを実行し、スナップショットの中にtestfileがあることを確認します。
ls ./.snapshot/testsnapshot20190621

以下のコマンドを実行し、対象のファイルをスナップショットから復元します。
sudo cp .snapshot/testsnapshot20190621/testfile .

ファイルが復元されたことを確認します。
ls

ファイルの中身も問題ないか確認します。
test20190621(任意の文字)と返ってくれば問題ありません。
sudo cat testfile

スナップショットの作成~復元まで簡単に作業することが出来ました。