Rclone は、クラウド ストレージ上のファイルを管理するためのコマンドライン プログラムです。これは、クラウド ベンダーの Web ストレージ インターフェイスに代わる機能豊富な手段です。S3 オブジェクト ストア、ビジネスおよび消費者向けファイル ストレージ サービス、標準転送プロトコルなど、40 を超えるクラウド ストレージ製品がrclone をサポートしています。
Rclone には、UNIX コマンドの rsync、cp、mv、mount、ls、ncdu、tree、rm、および cat に相当する強力なクラウド機能があります。Rclone の使い慣れた構文には、シェル パイプラインのサポートと--dry-run保護が含まれています。コマンドライン、スクリプト、またはAPI経由で使用されます。
ということで、Oracle Object Storage から 異なる テナントの Object Storage へデーターを Copyしてみてみます。
■ 構成
今回、Oracle Cloud Infrastracture (OCI) Oracle Database Service の バックアップファイルを異なるTenancy、Region へコピーするために Rclone を使用します。
Oracle管理のバックアップをユーザー管理の Object Storage Bucketへコピーする方法は次を参考
・参考: MV2BUCKET を使用して Oracle管理のバックアップをコピー
■ Rcloneのインストール
Rclone は Extra Packages for Enterprise Linux (EPEL) もしくは、rclone.orgからインストールすることができます。
● 方法1: EPELから RPMダウンロード
1) Rclon ダウンロード
・wget で rcloneをダウンロード
[root@oci-inst ~]# wget https://yum.oracle.com/repo/OracleLinux/OL8/developer/EPEL/x86_64/getPackage/rclone-1.57.0-1.el8.x86_64.rpm
--2023-03-04 11:31:26-- https://yum.oracle.com/repo/OracleLinux/OL8/developer/EPEL/x86_64/getPackage/rclone-1.57.0-1.el8.x86_64.rpm
Resolving yum.oracle.com (yum.oracle.com)... 23.193.53.99, 2600:140b:a800:b90::2a7d, 2600:140b:a800:b88::2a7d
Connecting to yum.oracle.com (yum.oracle.com)|23.193.53.99|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 18654968 (18M) [application/x-rpm]
Saving to: ‘rclone-1.57.0-1.el8.x86_64.rpm’
rclone-1.57.0-1.el8.x86_64.rpm 100%[================================================================>] 17.79M 12.8MB/s in 1.4s
2023-03-04 11:31:29 (12.8 MB/s) - ‘rclone-1.57.0-1.el8.x86_64.rpm’ saved [18654968/18654968]
2) Rclone インストール
[root@oci-inst ~]# rpm -ivh rclone-1.57.0-1.el8.x86_64.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:rclone-1.57.0-1.el8 ################################# [100%]
● 方法2: rclone.org からダウンロード
[root@db19c ~]# curl https://rclone.org/install.sh | sudo bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4669 100 4669 0 0 4285 0 0:00:01 0:00:01 --:--:-- 4283
Archive: rclone-current-linux-amd64.zip
creating: tmp_unzip_dir_for_rclone/rclone-v1.61.1-linux-amd64/
inflating: tmp_unzip_dir_for_rclone/rclone-v1.61.1-linux-amd64/README.html [text]
inflating: tmp_unzip_dir_for_rclone/rclone-v1.61.1-linux-amd64/rclone [binary]
inflating: tmp_unzip_dir_for_rclone/rclone-v1.61.1-linux-amd64/README.txt [text]
inflating: tmp_unzip_dir_for_rclone/rclone-v1.61.1-linux-amd64/rclone.1 [text]
inflating: tmp_unzip_dir_for_rclone/rclone-v1.61.1-linux-amd64/git-log.txt [text]
Purging old database entries in /usr/share/man...
Processing manual pages under /usr/share/man...
Purging old database entries in /usr/share/man/ja...
Processing manual pages under /usr/share/man/ja...
Purging old database entries in /usr/share/man/ru...
Processing manual pages under /usr/share/man/ru...
Purging old database entries in /usr/share/man/de...
Processing manual pages under /usr/share/man/de...
Purging old database entries in /usr/share/man/ko...
Processing manual pages under /usr/share/man/ko...
Purging old database entries in /usr/share/man/sk...
Processing manual pages under /usr/share/man/sk...
Purging old database entries in /usr/share/man/pl...
Processing manual pages under /usr/share/man/pl...
Purging old database entries in /usr/share/man/uk...
Processing manual pages under /usr/share/man/uk...
Purging old database entries in /usr/share/man/fr...
Processing manual pages under /usr/share/man/fr...
Purging old database entries in /usr/share/man/sv...
Processing manual pages under /usr/share/man/sv...
Purging old database entries in /usr/share/man/es...
Processing manual pages under /usr/share/man/es...
Purging old database entries in /usr/share/man/it...
Processing manual pages under /usr/share/man/it...
Purging old database entries in /usr/share/man/ca...
Processing manual pages under /usr/share/man/ca...
Purging old database entries in /usr/local/share/man...
Processing manual pages under /usr/local/share/man...
Updating index cache for path `/usr/local/share/man/man1'. Wait...done.
Checking for stray cats under /usr/local/share/man...
Checking for stray cats under /var/cache/man/local...
1 man subdirectory contained newer manual pages.
1 manual page was added.
0 stray cats were added.
0 old database entries were purged.
rclone v1.61.1 has successfully installed.
Now run "rclone config" for setup. Check https://rclone.org/docs/ for more details.
■ オブジェクト・ストレージの Rcloneの構成
構成の秘密キー、アクセス・キー、リージョンAPIエンドポイントおよびネームスペースを取得する必要があります。
● セキュリティ資格証明およびAPIエンドポイントの取得
最初に、秘密キーとアクセス・キーのペアを作成します。
1) OCI コンソール画面
右上にあるユーザーアイコンをクリックし、[ユーザー設定]をクリック
2) ユーザーの詳細画面
3) [秘密キーの生成]画面
秘密キーの任意の名前を設定し、[秘密キーの生成] をクリック
4) 生成されたキー画面
生成されたキーを確認
このパスワードはコピーし記録し、[閉じる]をクリック
・生成されたキー: ItzAc1mE4jrhOcdiPWJGLHysS
5) アクセスキー確認
作成した秘密キーに アクセス・キー が表示されるので、コピーし記録します
・アクセス・キー: cf2603c98906d3b8694ee35533e
● OCI Object Storage API エンドポイント確認
Object Storage APIエンドポイントは次の構文です。
(ネームスペース) と (リージョン識別子)を設定します。
https://.compat.objectstorage..oraclecloud.com
1) ネームスペース取得
ネームスペースは、コンソールから、またはコマンドライン・ツールを使用して識別できます。
コンソールから「プロファイル」メニュー(ユーザー・メニュー・アイコン)を開き、テナント: をクリックします。ネームスペースの文字列は、「オブジェクト・ストレージ設定」の下にリストされています。
もしくは、OCI CLI コマンドで確認できます
[root@oci-inst ~]# oci os ns get
{
"data": "shirok"
}
2) リージョン識別子
リージョン識別子は次のドキュメントから対象リージョン識別子を確認できます
■ Rclone設定
秘密キー、アクセス・キー、APIエンドポイントおよびリージョン識別子を設定したら、rclone構成ファイルで環境変数を設定して、rcloneを構成します。
1) rclone config file 確認
rclone config fileパスを確認
[root@oci-inst ~]# rclone config file
Configuration file doesn't exist, but rclone will use this path:
/root/.config/rclone/rclone.conf
2) config file作成
今回、2つの OCI Object Storage [oci-source] と [oci-target] を設定します。
[root@oci-inst ~]# vi /root/.config/rclone/rclone.conf
[root@oci-inst ~]# cat /root/.config/rclone/rclone.conf
[oci-source]
type = s3
env_auth = false
access_key_id = cf2603c98906d3b8694ee35533e
secret_access_key = ItzAc1mE4jrhOcdiPWJGLHysS
region = ap-tokyo-1
endpoint = https://shirok.compat.objectstorage.ap-tokyo-1.oraclecloud.com
location_constraint = ap-tokyo-1
acl = private
[oci-target]
type = s3
env_auth = false
access_key_id = bh3855r7467s7485439eg9984ar
secret_access_key = kLDkeuiDKJergioIAWEqMDIv
region = ap-osaka-1
endpoint = https://poc.compat.objectstorage.ap-osaka-1.oraclecloud.com
location_constraint = ap-osaka-1
acl = private
■ Rclone でコピー
設定した Object Storage [oci-source] から [oci-target] へファイルをコピーしてみてみます。
1) oci-source Bucketのファイル 確認
oci-source の Object Storage Buket にあるファイルを確認
[root@oci-inst ~]# rclone lsf oci-source:bucket-Backup-cdb_tokyo
db19c/
dbSys25zpcvoq/
file_chunk/
sbt_catalog/
2) rclone copy
[oci-source] の Bucket: bucket-Backup-cdb_tokyo から [oci-target]の Bucket: bucket-Backup-cdb_osakaへファイルコピーします
[root@oci-inst ~]# rclone copy oci-source:bucket-Backup-cdb_tokyo oci-target:bucket-Backup-cdb_osaka
3) rclone copy 完了確認
[oci-target]の Bucket: bucket-Backup-cdb_osakaへファイルがコピーされたことを確認
[root@oci-inst ~]# rclone lsf oci-target:test-bucket
db19c/
dbSys25zpcvoq/
file_chunk/
sbt_catalog/
■ 参考
・ Oracle Cloud
- Rcloneを使用して、データをクラウドのオブジェクト・ストレージにコピー
- Rcloneのインストール
・ rclone.org
- Rclone syncs your files to cloud storage