LoginSignup
2
1

Oracle Cloud: File Storage Service のファイルシステムを Windows, Linux と Autonomous Database へ NFSマウントしてみてみた

Last updated at Posted at 2023-08-01

Oracle Cloud Infrastructure File Storage Service (FSS) では、永続的でスケーラブルな分散型のエンタープライズ規模のネットワーク・ファイル・システムを提供します。
仮想クラウド・ネットワーク(VCN)のベア・メタル、仮想マシン, コンテナ・インスタンス からファイル・ストレージ・サービスのファイル・システムに接続できます。
また、VCNピアリング、FastConnect およびインターネット・プロトコル・セキュリティ(IPSec)の仮想プライベート・ネットワーク(VPN)を使用して、VCNの外部からファイル・システムにアクセスすることもできます。

ということで、今回は、Windows Server 2022, Oracle Linux, Autonomous Database(ADB) からファイル・ストレージ・サービスのファイル・システムに接続してみてみます。

■ 構成

構成図.jpg

■ VCNのセキュリティリストの設定

FSSを配置するSubnetもしくは、FSSにアタッチするNetwork Security Groups(NSG)へ NFS通信に必要な 次の TCP と UDP のステートフル・イングレスとステートフル・エグレスの通信を許可します。

 TCPポート: 111, 2048, 2049, 2050
 UDPポート: 111, 2048

■ File Storage Serviceの作成

File Storage Service (FSS) を次の値で作成し、これら値を使用して各システムでマウントします。

項目
IPアドレス 10.0.0.170
ホスト名 fss01
FQDN fss01.publicsubnet01.vcn10000.oraclevcn.com
エクスポート・パス /FileSystem

1) FSS作成
00_FSS01.jpeg

2) FSS作成完了
00_FSS01.jpg

■ Windowsインスタンスからのファイル・システムのマウントする

Windows Server 2012 R2以降のバージョンのユーザーは、マウント・ターゲットのIPアドレスとファイル・システムのエクスポート・パスを使用して、使用可能な任意のドライブ文字にファイル・システムをマウントできます。

⚫︎ NFSクライアント設定

ファイル・システムのマウント元のインスタンス上にWindows NFSクライアントをインストールする必要があります。

1) 管理者として Windows PowerShellを起動

01-Windows-Powershell起動01.jpg

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows   

PS C:\Windows\system32> Start-Process powershell -Verb runAs

2) NFS-Client インストール

Windows PowerShellで、次のように入力

PS C:\Windows\system32> Install-WindowsFeature -Name NFS-Client      

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             NoChangeNeeded {}

3) NFSクライアントを設定

管理者用PowerShellで、次のように入力してNFSクライアントを取得

PS C:\Windows\system32> Set-ItemProperty HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default -Name AnonymousUid -Value 0
PS C:\Windows\system32> Set-ItemProperty HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default -Name AnonymousGid -Value 0
PS C:\Windows\system32> Stop-Service -Name NfsClnt
PS C:\Windows\system32> Restart-Service -Name NfsRdr
PS C:\Windows\system32> Start-Service -Name NfsClnt

01-Windows-Powershell起動02.jpg

⚫︎ ファイル・システムのマウント

1) Windowsコマンドライン(CMD)起動

標準のWindowsコマンドライン(CMD)ウィンドウで、次を入力してファイル・システムをマウントします。
02-Windows-CMD起動01.jpg

2) ファイル・システムのマウント

mount -o sec=sys 10.x.x.x:/FileSystem X:

・ 10.x.x.x: を、マウント・ターゲットに割り当てられたローカル・サブネットIPアドレスに置き換えます。
・ FileSystem を、ファイル・システムをマウント・ターゲットに関連付ける際に指定したエクスポート・パスに置き換えます。
・ Xを、ファイル・システムのマップ先として使用可能なドライブのドライブ文字に置き換えます。

エクスポートでKerberos認証を使用する場合は、IPアドレスのかわりにマウント・ターゲットの完全修飾ドメイン名(FQDN)を使用します。

02-Windows-CMD起動02.jpg

3) マウント確認

エクスプローラーを開き Xドライブにファイルシステムがマウントされていることを確認
03_WIndows-マウント確認.jpg

⚫︎ ファイル書き込みテスト

  1. FSSをマウントしたXドライブに移動
    X: コマンドで Xドライブに移動
C:\Users\opc>X:
  1. windows.txt 作成
    echoコマンドでファイル作成う
X:\>echo > windows.txt
  1. windows.txt 作成確認
    dirコマンドでファイル確認
X:\>dir
 Volume in drive X has no label.
 Volume Serial Number is 071D-8F2E

 Directory of X:\

08/01/2023  02:47 PM    <DIR>          .
08/01/2023  02:47 PM    <DIR>          ..
08/01/2023  02:48 PM    <DIR>          .snapshot
08/01/2023  02:47 PM                13 windows.txt
               1 File(s)             15 bytes
               3 Dir(s)  9,223,372,036,854,763,520 bytes free

04_ファイル作成テスト01.jpg

■ Linux, Red HatまたはCentOSからファイル・システムをマウントする

⚫︎ nfs-utils インストール

[opc@oracle-linux ~]$ sudo yum install nfs-utils
Loaded plugins: langpacks, ulninfo
・・・
Dependencies Resolved
	
	===========================================================================================================================================================================================
	 Package                                   Arch                                   Version                                                 Repository                                  Size
	===========================================================================================================================================================================================
	Updating:
	 nfs-utils                                 x86_64                                 1:1.3.0-0.68.0.1.el7.2                                  ol7_latest                                 413 k
	
	Transaction Summary
	===========================================================================================================================================================================================
	Upgrade  1 Package
	
	Total download size: 413 k
	Is this ok [y/d/N]: y
	Downloading packages:
	Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
	nfs-utils-1.3.0-0.68.0.1.el7.2.x86_64.rpm                                                                                                                           | 413 kB  00:00:00
	Running transaction check
	Running transaction test
	Transaction test succeeded
	Running transaction
	  Updating   : 1:nfs-utils-1.3.0-0.68.0.1.el7.2.x86_64                                                                                                                                 1/2
	  Cleanup    : 1:nfs-utils-1.3.0-0.65.0.1.el7.x86_64                                                                                                                                   2/2
	  Verifying  : 1:nfs-utils-1.3.0-0.68.0.1.el7.2.x86_64                                                                                                                                 1/2
	  Verifying  : 1:nfs-utils-1.3.0-0.65.0.1.el7.x86_64                                                                                                                                   2/2
	
	Updated:
	  nfs-utils.x86_64 1:1.3.0-0.68.0.1.el7.2
	
	Complete!

⚫︎ マウント

次のマウント・オプションの組合せは File Storage Service でサポートされていません:
 ・soft ファイル・システムが読取り/書込みマウント・オプション(-o rw)でマウントされている場合。この組合せによって、データが破損する可能性があります。

次のマウント・オプションは、File Storage Service で使用することはお薦めしません:
 ・soft オプションは、ファイル・システムが読取り専用マウント・オプション(-o ro)でマウントされており、timeoが300秒未満で指定されている場合。この組合せによって、I/Oのエラー・レスポンスが多数発生する可能性があります。
 ・rsize または wsize オプションは、パフォーマンスの問題が発生します。

1) マウント・ポイント作成

[opc@oracle-linux ~]$ sudo mkdir -p /mnt/FileSystem

2) マウント

[opc@oracle-linux ~]$ sudo mount -o nosuid,resvport,sec=sys 10.0.0.170:/FileSystem /mnt/FileSystem

⚫︎ マウント確認

1) ファイル・システムを表示

[opc@oracle-linux ~]$ df -T | grep nfs
	10.0.0.170:/FileSystem nfs      9007199254740992        0 9007199254740992   0% /mnt/FileSystem

2) 書き込みテスト

[opc@oracle-linux ~]$ sudo touch /mnt/FileSystem/test.txt

3) 書き込み確認

[opc@oracle-linux ~]$ ls -l /mnt/FileSystem/
	-rw-r--r--. 1 root root 0 Aug  1 09:54 /mnt/FileSystem/test.txt

■ Autonomous Database からファイル・システムをマウントする

⚫︎ ファイルシステムをADBに接続

DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM プロシージャを使用して、 FileSystem という名前のファイル システムをADB のFSS_DIRディレクトリにアタッチ。
このプロシージャを呼び出す前にディレクトリ オブジェクトが存在している必要があるため、最初にディレクトリ オブジェクトを作成することに注意してください。

1) ディレクトリ オブジェクト作成

SQL> CREATE DIRECTORY FSS_DIR AS 'FSS';

	Directory created.

2) ディレクトリ オブジェクト作成確認

SQL> col OWNER format a10
SQL> col DIRECTORY_NAME format a30
SQL> col DIRECTORY_PATH format a120
SQL> select * from DBA_DIRECTORIES where DIRECTORY_NAME = 'FSS_DIR';

	OWNER	   DIRECTORY_NAME		  DIRECTORY_PATH													   ORIGIN_CON_ID
	---------- ------------------------------ ------------------------------------------------------------------------------------------------------------------------ -------------
	SYS	   FSS_DIR			  /u03/dbfs/01D16905700631618000A03DF/data/FSS										     194

3) FileSystem を FSS_DIRディレクトリにアタッチ

SQL> BEGIN
	DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM(
	file_system_name      => 'FileSystem',
	file_system_location  => 'fss01.publicsubnet01.vcn10000.oraclevcn.com:/FileSystem',
	directory_name        => 'FSS_DIR',
	description           => 'Mounting a NFS'
	);
END;
/


PL/SQL procedure successfully completed.

4) ファイル システムを確認

DBA_CLOUD_FILE_SYSTEMS をクエリして、接続されているファイル システムを確認できることを確認します。

SQL> col file_system_name format a10
SQL> col file_system_location format a80
SQL> col directory_path format a80
SQL> SELECT 
  	file_system_name, 
  	file_system_location,
  	directory_path
FROM dba_cloud_file_systems;


	FILE_SYSTE FILE_SYSTEM_LOCATION 							    DIRECTORY_PATH
	---------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
	FILESYSTEM fss01.publicsubnet01.vcn10000.oraclevcn.com:/FileSystem			    /u03/dbfs/01D16905700631618000A03DF/data/FSS/

⚫︎ ファイル作成テスト

UTL_FILE 経由でファイルを作成して書き込みます
adb_test.csvというファイルを作成し、そこに書き込みます。

1) adb_test.csvファイルを作成

SQL> DECLARE
  l_file         UTL_FILE.file_type;
  l_location     VARCHAR2(100) := 'FSS_DIR';
  l_filename     VARCHAR2(100) := 'adb_test.csv';
BEGIN
  -- Open file.
  l_file := UTL_FILE.fopen(l_location, l_filename, 'w');
   
  UTL_FILE.PUT(l_file, 'Catalog, Indirect, 12');
 
  -- Close the file.
  UTL_FILE.fclose(l_file);
END;
/

	PL/SQL procedure successfully completed.

2) adb_test.csvファイルを作成確認

DBMS_CLOUD.LIST_FILES を介してこの接続されたファイル システム内のファイルを一覧表示し、作成したばかりのファイルの内容を読み取ります。

SQL> SELECT object_name FROM DBMS_CLOUD.LIST_FILES('FSS_DIR');

	OBJECT_NAME
	--------------------------------------------------------------------------------
	adb_test.csv

■ 参考

File Storage: ファイル・システムのマウント
Linux、Red HatまたはCentOSからファイル・システムをマウントするには
Windowsインスタンスからのファイル・システムのマウント
How to Attach a File System to your Autonomous Database

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1