本ブログは、オラクル・クラウドの個人ブログの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. ドライブを追加
上記のフォルダとファイルはすぐにバケットに同期されます。 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)を使います。
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/
ライセンス:オーペンソース
ダウンロードした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
を事前に作成しておく)。
ローカルの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