OCI Object StorageをLinux/Windowsにマウントする方法

OCI General

初めに

OCI Object Storageのバケットをローカルのファイル・システムにマウントするのは可能です。マウント後、ローカルのフォルダとファイルのように、バケットとオブジェクトを使用できます。今回は、LinuxとWindows両方にマウントする方法を紹介したいと思います。
Mount OCI Object Storage

検証環境

  • OS: Oracle Linux 8
  • Windows Server 2019 Standard

各種方法の対比

ツール対応OS対応リージョンライセンス製品HP
s3fs-fuseLinux, macOS, FreeBSD全てOpen Sourceリンク
CloudBerry DriveWindowsホームリージョン
のみ
15日間 Trialリンク
Rclone mountLinux, FreeBSD, macOS, Windows全てOpen Sourceリンク

1. 事前準備

1-1. クレデンシャルの生成

プロファイル・アイコン(右上) → 自分のプロファイル → 顧客秘密キー → 秘密キーの生成
二度と表示しないので、生成された秘密キー(Secret key)をメモしておいてください。
Generate secret key

マウスを「アクセス・キー」(Access Key)に移動し、キーをコピーします。
Copy access key

1-2 ネームスペースの確認

プロファイル・アイコン(右上) → テナンシ
Check object storage namespace

  • 一部の古いテナンシでは、ネームスペースとテナンシ名は同じですけど、そもそも別物なので、間違いようにご注意ください。
  • OCI CLIを利用する場合、oci os ns getで簡単に取得できます。

2. s3fsの利用 (Oracle Linuxの場合)

2-1. s3fs-fuseのインストール

コマンド:sudo yum install s3fs-fuse --enablerepo ol8_developer_EPEL

[opc@linux8 ~]$ sudo yum install s3fs-fuse --enablerepo ol8_developer_EPEL
Last metadata expiration check: 0:00:41 ago on Sun 15 May 2022 05:40:13 PM CST.
Dependencies resolved.
=================================================================================================================================
 Package                     Architecture           Version                             Repository                          Size
=================================================================================================================================
Installing:
 s3fs-fuse                   x86_64                 1.91-1.el8                          ol8_developer_EPEL                 273 k
Installing dependencies:
 fuse                        x86_64                 2.9.7-12.0.4.el8                    ol8_baseos_latest                   84 k
 fuse-common                 x86_64                 3.2.1-12.0.4.el8                    ol8_baseos_latest                   22 k

Transaction Summary
=================================================================================================================================
Install  3 Packages

Total download size: 379 k
Installed size: 856 k
Is this ok [y/N]: y
......
Installed:
  fuse-2.9.7-12.0.4.el8.x86_64            fuse-common-3.2.1-12.0.4.el8.x86_64            s3fs-fuse-1.91-1.el8.x86_64

Complete!
[opc@linux8 ~]$
s3fs-fuseをインストールするために、Oracle EPEL レポジトリを有効する必要があります。そうしないと、次のようなエラーが発生します。
[opc@linux8 ~]$ sudo yum install s3fs-fuse
Last metadata expiration check: 3:10:03 ago on Sun 15 May 2022 02:11:38 PM CST.
No match for argument: s3fs-fuse
Error: Unable to find a match: s3fs-fuse
[opc@linux8 ~]$

2-2. クレデンシャルの設定

パスワード・ファイルを作成
パスとファイル名: ${HOME}/.passwd-s3fs
コマンド:

echo [ACCESS_KEY]:[SECRET_KEY] > ${HOME}/.passwd-s3fs
chmod 600 ${HOME}/.passwd-s3fs

アクセス・キー(ACCESS_KEY)と秘密キー(SECRET_KEY)の真ん中に、半角のコロンで結合されます。

2-3. バケットをマウント

マウント・ポイントを作成:

[opc@linux8 ~]$ mkdir $HOME/mntmybucket
[opc@linux8 ~]$

バケットをマウント:

s3fs <bucket_Name> <mount_point> -o url=https://<namespace_name>.compat.objectstorage.<region>.oraclecloud.com -o nomultipart -o use_path_request_style -o endpoint=<region>

<namespace_name>をネームスペースに置き換えてください (STEP 1-2で確認)。
<region>をリージョン識別子に置き換えてください。分からない場合はこちらをご確認ください。

検証:
コマンド: df -h <mount_point> or df -h <mount_dir>

[opc@linux8 ~]$ df -h mntmybucket
Filesystem Size Used Avail Use% Mounted on
s3fs 16E 0 16E 0% /home/opc/mntmybucket
[opc@linux8 ~]$

バケットをアンマウント:
コマンド: fusermount -u <mount_point>

[opc@linux8 ~]$ fusermount -u mntmybucket
[opc@linux8 ~]$
  • s3fsのコマンドに、-o allow_other -o umask=000 を付けると、他ユーザーでも使えるようになる。読込と書込権限の設定は、umaskで制御できる。
  • /etc/fstab を編集すれば、サーバが再起動されても自動にマウントできる。

3. CloudBerry Driveの利用 (Windowsの場合)

3-1. CloudBerry Driveのインストール

ダウンロードURL: https://www.msp360.com/drive.aspx
インストール・ファイルを実行して開始します。
CloudBerry setup wizard

「インストール」ボタンをクリックして続行します。
Confirm to install CloudBerry

インストール後に再起動する必要があります。
Restart after install

「完了」をクリックして、「Cloudberry Drive」を実行します。
Complete setup wizard

メールアドレスを入力し、「試用開始」をクリックします。
Start trial

インストール後にPCを再起動します。

3-2. ストレージ・アカウントを追加

Task Bar → Cloudberry Drive Icon → Options
Click options

「追加」ボタンをクリックして、ストレージ・アカウントを追加します。
Click add button

以下のように必要な情報を入力し、「Test Connection」をクリックします。
Storage Provider: S3 Compatible
Display Name: 好きな名前を付ける
Service Point: <namespace_name>.compat.objectstorage.<region>.oraclecloud.com
Access Key & Secret Key: STEP 1-1で生成されたもの
Signature version: 4
Add storage account

3-3. ドライブを追加

「追加」ボタンをクリックして、ドライブを追加します。
Click button to add drive

3ドットのボタンをクリックしてパスを選択します。
Click button to browse folder

リストからバケットを選択し、OKをクリックして戻ります。
Specify folder

「はい」をクリックして変更を保存します。
Click yes to save change

OKをクリックして完了します。
Click OK to complete

ファイル・エクスプローラーから新しいドライブを確認します。
Confirm new drive

検証
新しいドライブにフォルダとファイルを作成します。
To create new folder and file

上記のフォルダとファイルはすぐにバケットに同期されます。 OCIコンソールから結果を確認できます。
New file is synced to OCI bucket

4. Rclone mountの利用

追記日: 2023/05/05

Rclone は、クラウド・ストレージ上のファイルを管理するコマンドライン・プログラムです。rclone mountを使用すると、Linux、FreeBSD、macOS、および Windows で、Rclone のクラウド・ストレージ・システムを FUSE を使用してファイル・システムとしてマウントできます。

これから、Windowsを例にして利用方法を紹介します。

4-1. Rcloneのインストール

Rclone のダウンロード
ダウンロードURL: https://rclone.org/downloads/
この例では、Windows版 (Intel/AMD - 64 Bit)を使います。
Download Rclone

Rclone のインストール
Zipファイルを解凍した後、rclone configを実行し、OCIへの接続をセットアップします。

C:\rclone-v1.62.2-windows-amd64>dir
 Volume in drive C is Windows
 Volume Serial Number is 3271-DFFD

 Directory of C:\rclone-v1.62.2-windows-amd64

05/04/2023  08:55 AM    <DIR>          .
05/04/2023  08:55 AM    <DIR>          ..
05/04/2023  08:55 AM             1,456 git-log.txt
05/04/2023  08:55 AM         2,008,600 rclone.1
05/04/2023  08:55 AM        49,853,952 rclone.exe
05/04/2023  08:55 AM         2,158,094 README.html
05/04/2023  08:55 AM         1,777,393 README.txt
               5 File(s)     55,799,495 bytes
               2 Dir(s)  23,793,926,144 bytes free

C:\rclone-v1.62.2-windows-amd64>rclone config
2023/05/04 08:56:19 NOTICE: Config file "C:\\Users\\opc\\AppData\\Roaming\\rclone\\rclone.conf" not found - using defaults
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q>


※、セットアップの詳細は、こちらをご参照ください。

セットアップ後、OCIへ接続を確認します(Target_Bucketは既存のバケット)。

C:\rclone-v1.62.2-windows-amd64>rclone lsd oci:
          -1 2023-05-05 09:12:12        -1 Target_Bucket

C:\rclone-v1.62.2-windows-amd64>

4-2. WinFspのインストール (Windowsの場合)

Windowsでrcloneを使用する場合は、WinFSP(サードパーティー・ツール)をインストールする必要があります。

以下はrcloneのドキュメントからの抜粋です。
Installing Rclone on Windows

WinFspの製品ページ:http://www.secfs.net/winfsp/
ダウンロードURL: https://winfsp.dev/rel/
ライセンス:オーペンソース
Download WinFsp

ダウンロードしたMSIファイルをダブルクリックして、ウィザードに従ってインストールしてください。
Run WinFsp setup wizard

4-3. バケットをマウント

コマンド例:
rclone mount oci:/Target_Bucket C:\OCI_Object_Storage\Target_Bucket --vfs-cache-mode writes

C:\rclone-v1.62.2-windows-amd64>rclone mount oci:/Target_Bucket C:\OCI_Object_Storage\Target_Bucket --vfs-cache-mode writes
The service rclone has been started.
--vfs-cache-modeを使用しないと、ファイルを順番に書き込むことしかできません。
多くのアプリケーションでマウント・ポイント上のファイルを操作したい場合、--vfs-cache-mode writes--vfs-cache-mode full を指定してください。

マウント後、次のようにバケットと同じ名前のフォルダが作成されした (親のフォルダOCI_Object_Storageを事前に作成しておく)。
Confirm mount result

ローカルのTarget_Bucketフォルダにファイルをコピーすると、OCIバケットに反映されます。

アンマウント
上記のコマンドプロンプトに、CTRL+Cで抜けると、アンマウントできます。

C:\rclone-v1.62.2-windows-amd64>rclone mount oci:/Target_Bucket C:\OCI_Object_Storage\Target_Bucket --vfs-cache-mode writes
The service rclone has been started.
The service rclone has been stopped.
2023/05/05 09:58:40 ERROR : C:\OCI_Object_Storage\Target_Bucket: Unmounted rclone mount

C:\rclone-v1.62.2-windows-amd64>

追記 - オブジェクトストレージの専用エンドポイント

上記の例に利用しているオブジェクトストレージのURLパスは、現時点サポートされていますが、新の専用エンドポイントに切り替えることを推奨します。変更理由について、ドキュメントの記載をご参照ください。

APIタイプ現在のURL新しいURL
S3-compatible$namespace.compat.objectstorage.$region.oraclecloud.com$namespace.compat.objectstorage.$region.oci.customer-oci.com

以上

改訂歴
2022年5月:初版作成
2023年5月:追記: Rclone mount の利用
2025年2月:追記: オブジェクトストレージの専用エンドポイト


MOS(My Oracle Support) ドキュメント
OCI File Storage Services (FSS) - How to Mount an Object Storage Bucket as Filesystem in Oracle Linux 8 and Above Using s3fs Fuse (Doc ID 2963975.1)

Oracle Cloud Infrastructure - How to Mount an ObjectStorage Bucket as Filesystem in Oracle Linux 7 (Doc ID 2577407.1)

OCIドキュメント
オブジェクト・ストレージの専用エンドポイント

Rclone マニュアル
Rclone mount

タイトルとURLをコピーしました