9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI Object StorageのバケットをLinux/Windowsのローカルにマウントする

Last updated at Posted at 2022-05-25

本ブログは、オラクル・クラウドの個人ブログの1つです。

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

検証環境

  • OS: Oracle Linux 8, Windows Server 2019 Standard

各種方法の対比

ツール 対応OS 対応リージョン ライセンス
s3fs-fuse Linux, macOS, FreeBSD 全てのリージョン オープンソース
Cloudberry Drive Windows ホーム・リージョンのみ 15日間トライアル
Rclone Linux, FreeBSD, macOS, Windows 全てのリージョン オープンソース

STEP

1. 事前準備

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

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

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

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

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

  • 一部の古いテナンシでは、ネームスペースとテナンシ名は同じですけど、そもそも別物なので、間違いようにご注意ください。
  • 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>をリージョン識別子に置き換えてください。分からない場合はこちらをご確認ください。

[opc@linux8 ~]$ s3fs MyBucket $HOME/mntmybucket -o url=https://<namespace_name>.compat.objectstorage.ap-tokyo-1.oraclecloud.com -o nomultipart -o use_path_request_style -o endpoint=ap-tokyo-1
[opc@linux8 ~]$ 

検証:
コマンド: 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 ~]$

Tips

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

3. Cloud Berry Driveの利用 (Windowsの場合)

3-1. Cloudberry Driveをインストール

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

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

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

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

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

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

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

Task Bar -> Cloudberry Drive Icon -> Options

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

以下のように必要な情報を入力し、「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

3-3. ドライブを追加

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

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

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

「はい」をクリックして変更を保存します。

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

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

検証
新しいドライブにフォルダとファイルを作成します。

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

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)を使います。
image.png

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>

WinFsp (サードパーティー・ツール)のインストール
ダウンロードURL: https://winfsp.dev/rel/
ライセンス:オーペンソース
image.png

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

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

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

注意
--vfs-cache-mode を使用しないと、ファイルを順番に書き込むことしかできません。多くのアプリケーションでマウント・ポイント上のファイルを操作したい場合、--vfs-cache-mode writes--vfs-cache-mode fullを指定してください。

C:\rclone-v1.62.2-windows-amd64>rclone mount oci:/Target_Bucket C:\OCI_Object_Storage\Target_Target_Bucket --vfs-cache-mode writes
The service rclone has been started.

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

ローカルの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>

以上です。


改訂歴
2022年5月:初版作成
2023年5月:追記: Rclone mount の利用


関連記事
オラクル・クラウドの個人ブログ一覧
OCIオブジェクト・ストレージへのファイル転送方法のまとめ

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)


Rclone マニュアル
Rclone mount

9
0
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
9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?