4
3

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 Storage Gatewayの利用方法

Last updated at Posted at 2022-08-09

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

目次

1. OCIストレージ・ゲートウェイとは
2. システムの要件
3. 事前準備
4. ストレージ・ゲートウェイのインストール
5. 管理コンソールへのログイン
6. 最初のファイル・システムの作成
7. ファイル・システムをクライアントへのマウント

1. OCIストレージ・ゲートウェイとは

ストレージ・ゲートウェイは、オンプレミス・アプリケーションをOCI (Oracle Cloud Infrastructure)に接続できるクラウド・ストレージ・ゲートウェイです。データをNFSターゲットに書き込むことができるアプリケーションでは、REST APIを取り込むためにアプリケーションを変更しなくても、OCI Object Storageにデータを書き込むことができます。

ストレージ・ゲートウェイを理解する良い方法は、他のファイル転送ツールと比較することです。Oracleは、オブジェクト・ストレージにアクセスするツールをいくつか提供しています。要件に応じて適当なツールを選んでください。

ファイル転送ツールの比較

OCI Console OCI CLI OCI Storage Gateway
オフィシャル・サポート
料金 無料 無料 無料
利用方式 ブラウザ利用(GUI) コマンド・ライン マウント
OS 制限なし Linux/Windows/MacOS Oracle Linux 7およびUEKリリース4以降
インストールと設定 不要 必要※1 必要
認証方法 ユーザ・パスワード APIキー APIキー
プロトコル HTTPS HTTPS NFSv4, HTTPS
利用場面 ・汎用
・手動転送
・フォルダ丸ごと転送
・バッチ処理に向き
・大量ファイルの転送に向き
・ファイル同期処理
利点 クイックスタートに最適 ・コマンドラインユーザーに優しい
・比較的軽量
・巨大なファイルを転送する時、パフォーマンスが有利
・管理コンソール付き
最新バージョン
(2022年8月)
サポート対象ブラウザーについては、Doc ID 2697934.1をご参照。 3.13 1.4

※1、Cloud Shellにインストールと設定済なので、直接に利用可能。

注意

  • Windows OSはサポート対象外。
  • 汎用のNASサーバではなく、データ転送の目的として使ってください。

2. システムの要件

2-1. ハードウェア・ソフトウェアの推奨事項および要件

分類 項目 内容
ハードウェア CPU 2つのデュアルコアCPU以上、4コアCPUを推奨
メモリ メモリーの最小要件:
ストレージ・ゲートウェイのどのファイル・システムでも16 GBが必須。
ファイル数が5000万個までのファイル・システムでは32 GB。
ファイル数が1億個までのファイル・システムでは64 GB。
ストレージ 推奨されるローカル・ストレージのディスク・サイズは600 GB(※1)です(ファイル・システム・キャッシュに500GB、メタデータ・ストレージに80GB、ログ・ストレージに20GBを含みます)。
ソフトウェア OS Oracle Linux 7およびUEKリリース4以降 (※2)
Docker Docker 1.12.6以上 (自動インストール)

※1. 上記のストレージサイズ (600 GB) は推奨値です。それより小さい場合、ストレージ・ゲートウェイが機能しないという意味ではありません。

※2. OCIドキュメントによると、現時点(2022年8月) Oracle Linux 7 のみがサポートされています。Oracle Linux 8 を使用している場合、Dockerのインストール時にリポジトリ接続の問題が発生する可能性があります。そのため、現時点では Oracle Linux 7 を使用し、Oracle Linux 8 のサポートを待つことをお勧めします。

2-2. 検証環境

私が利用している検証環境の構成は、以下となります。

分類 項目 内容
インスタンス OS Oracle Linux 7.9 (OCI Compute VM)
シェイプ VM.Standard.E4.Flex (2 OCPU, 32 GB)
ブロック・ボリューム サイズ 合計: 1024 GB
(1つのパーティション、3つの論理ボリューム)
/ocisg/cache - 834 GB
/ocisg/metadata - 150 GB
/ocisg/log - 40 GB
パフォーマンス・レベル Balanced
アタッチメントの種類 ISCSI
ストレージ・ゲートウェイ バージョン 1.4

3. 事前準備

Storage Gateway 管理コンソール (STEP-6)で新しいファイルシステムを作成する場合、次の情報を準備する必要があります。

Object Storage API エンドポイント - STEP 3-1
コンパートメント OCID - STEP 3-2
テナンシ OCID - STEP3-3
ユーザ OCID - STEP3-3
公開キーの Finger Print - STEP3-3
秘密キー - STEP3-3

3-1. Object Storage API エンドポイント

東京リージョンの場合、エンドポイントは https://objectstorage.ap-tokyo-1.oraclecloud.comとなります。
他のリージョンについては、このリストを確認してください。 (違いはリージョンキーです。)

3-2. コンパートメントOCIDの取得

以下のように、転送先のバケットが存在するコンパートメントのOCIDを取得してください。
OCI Menu -> Identity & Security -> Compartments -> Compartmentを指定 -> "Copy"をクリック

3-3. API署名キーの生成

OCIコンソールまたはローカル端末 (Linux/Mac/Windows) で様々な方法で作成できます。
OCIコンソールでを作成するのをお勧めします。理由は、他の情報と一緒に取得できるからです。

アイデンティティ・ドメイン・ユーザーの場合:
Identity ->My profile -> API keys -> "Add API key"ボタンをクリック

「Generate API key pair」はデフォルトでチェックされています。「Download private key」ボタンを押して安全な場所に保存した後、「Add」ボタンを押します。

そうして、以下のような「構成ファイルのレビュー」画面が表示されます。 この検証では、特に構成ファイルを作成する必要はありません。 必要なのは、「User OCID」、「Tenancy OCID」、「Finger Print」などの数行です。 コピーを押して、これらの情報を安全に保管してください。

3-4. ブロック・ボリュームの作成とアタッチ

この例では 1TB のブロック・ボリュームを使用しています (600 GB 以上を推奨)。

作成後、ターゲット・インスタンスにアタッチします。 接続タイプは、「iSCSI」または「準仮想化」のいずれかを選択できます。 「iSCSI」タイプを選択した場合は、iSCSI コマンドを実行する必要があります (「準仮想化」よりオーバーヘッドが少ないです)。

iSCSIコマンドを実行すると、デバイス情報は次のようになります。

4. ストレージ・ゲートウェイのインストール

ブロック・ボリュームが新しく作成された場合、使用する前にディスクのパーティショニングは必要です。この例では、 partedコマンドを使用します。partedコマンドの詳細は、このドキュメントをご参照ください。

4-1. ディスクのパーティショニング

開始するコマンド: sudo parted /dev/sdb (/dev/sdb をデバイス名に変更する。)
parted 内のコマンド:
新しいディスクラベルを作成する: mklabel gpt
パーティションを作成する: mkpart primary 0% 100%
フラグを設定する: toggle 1 lvm (これは必須ではなく、スキップできる。)

「p」は表示(print)を意味し、「q」は終了(quit)を意味します。

[opc@linux7 ~]$ sudo parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) toggle 1 lvm
(parted) p
Model: ORACLE BlockVolume (scsi)
Disk /dev/sdb: 1100GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  1100GB  1100GB               primary  lvm
(parted) q

パーティショニング後、デバイス情報は次のようになります。

4-2. 論理ボリュームの作成

コマンド:
物理ボリュームを作成する: sudo pvcreate <device>
ボリューム・グループを作成する: sudo vgcreate <volume_group_name> <device>
論理ボリュームを作成する: sudo lvcreate -l 100%FREE -n <logical_volume_name> <volume_group_name>

キャッシュ、メタデータ、ログを個別に保存するため、3つの論理ボリュームを作成します。それらのサイズは、それぞれ500G、80G、および20Gとなります。

パラメータ-Lでストレージ・サイズを指定して、ログとメタデータ用の論理ボリュームを作成します。 最後の1つ (キャッシュ) については、100%FREEで指定したほうが良いと思います。(残りのサイズを計算する必要はありません。)

[opc@linux7 ~]$ sudo pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[opc@linux7 ~]$ sudo vgcreate vg01 /dev/sdb1
  Volume group "vg01" successfully created
[opc@linux7 ~]$ sudo lvcreate -L 40G -n lvlog vg01
  Logical volume "lvlog" created.
[opc@linux7 ~]$ sudo lvcreate -L 150G -n lvmetadata vg01
  Logical volume "lvmetadata" created.
[opc@linux7 ~]$ sudo lvcreate -l 100%FREE -n lvcache vg01
  Logical volume "lvcache" created.
[opc@linux7 ~]$

作成後のデバイス情報は次のようです。

4-3. XFSファイルシステムの作成

コマンド形式:
sudo mkfs.xfs /dev/<volume_group_name>/<logical_volume_name>

例:
sudo mkfs.xfs /dev/vg01/lvcache
sudo mkfs.xfs /dev/vg01/lvmetadata
sudo mkfs.xfs /dev/vg01/lvlog

コマンドの出力を省略します。

4-4. 論理ボリュームのマウント

マウントポイントの作成:

[opc@linux7 ~]$ sudo mkdir /ocisg
[opc@linux7 ~]$ sudo mkdir /ocisg/cache  /ocisg/metadata  /ocisg/log
[opc@linux7 ~]$ sudo chown -R opc:opc /ocisg

論理ボリュームのマウント:
コマンド: sudo mount /dev/<volume_group_name>/<logical_volume_name> <directory_path>

[opc@linux7 ~]$ sudo mount /dev/vg01/lvcache /ocisg/cache
[opc@linux7 ~]$ sudo mount /dev/vg01/lvmetadata /ocisg/metadata
[opc@linux7 ~]$ sudo mount /dev/vg01/lvlog /ocisg/log
[opc@linux7 ~]$

df -hコマンドで結果を確認すると、上記の3つのファイルシステムがマウントされていることが分かります。

4-5. インストール・ファイルのダウンロードと解凍

ここからインストール・ファイル (TAR アーカイブ) をダウンロードします。
圧縮ファイルocisg-1.4.tar.gzのサイズは 1.1 GB です。
image.png
ダウンロード後、ストレージサーバーに転送します。 この例では、SFTP 経由で OCI Compute に転送し、/home/opc/sgw (事前に sgwフォルダーを作成しておく) の下に保存します。

TARファイルを解凍します。

[opc@linux7 sgw]$ pwd
/home/opc/sgw
[opc@linux7 sgw]$ ll
total 1108796
-rw-rw-r--. 1 opc opc 1135403104 Jul 20 04:07 ocisg-1.4.tar.gz
[opc@linux7 sgw]$ tar xvzf ocisg-1.4.tar.gz
ocisg-1.4/
ocisg-1.4/helper-install-ocisg.sh
ocisg-1.4/ocisg:1.4.tar
ocisg-1.4/ocisg-install.sh
ocisg-1.4/connect-fs.sh
ocisg-1.4/ocisg-control.sh
ocisg-1.4/health-check.sh
ocisg-1.4/support-bundle.sh
ocisg-1.4/test-bandwidth.sh
ocisg-1.4/ocisg-config.sh
ocisg-1.4/ocisg
ocisg-1.4/OCISG_README.txt
[opc@linux7 sgw]$

4-6. インストールを開始する

ocisg-install.shを実行して、ストレージ・ゲートウェイをインストールします。
コマンド: sudo ./ocisg-install.sh

[opc@linux7 sgw]$ cd ocisg-1.4
[opc@linux7 ocisg-1.4]$ pwd
/home/opc/sgw/ocisg-1.4
[opc@linux7 ocisg-1.4]$ sudo ./ocisg-install.sh

Dockerをインストールするかどうかと聞かれたら、「y」と入力して続行します。
Oracle Linux 8 を利用している場合、dockerをインストールしようとすると、リポジトリ接続の問題が発生する可能性があります。 回避策がありますが、Oracle Linux 8 のサポートを待つことをお勧めします。

[opc@linux7 ocisg-1.4]$ sudo ./ocisg-install.sh
Docker does not appear to be installed. Do you want to install docker engine with yum? [y/N] y

NFSを有効にするかどうかと聞かれたら、「y」と入力して続行します。

Setting the devicemapper storage driver ...
NFS server does not appear to be enabled. Do you want to enable NFS? [y/N] y

インストール場所を入力するか、「Enter」と入力して続行します。

Enter the install location press enter for default (/opt/ocisg/) :

キャッシュ、メタデータ及びログのパスを入力します。

Enter the path for OCISG file system cache : /ocisg/cache
Enter the path for OCISG metadata storage : /ocisg/metadata
Enter the path for OCISG log storage : /ocisg/log

キャッシュ、メタデータ、およびログを同じボリュームに保存しようとすると、次のような警告が表示されます。 「y」を入力して、インストールを続行できます。 (それらを別々のボリュームに保存することをお勧めします。)

================================================================================
WARNING:
Cache, Metadata, and log storage are on the SAME volume.
It is recommended to have a SEPARATE volume for log storage.
Recommended MINIMUM space for log storage is 20 GB.
================================================================================
Would you like to proceed anyway ('Y' to proceed, 'N' to stop installation) (y/N) ?

インストールが完了すると、次のメッセージが表示されます。

Management Console: https://linux7:32770
If you have already configured an OCISG FileSystem via the Management Console,
you can access the NFS share using the following port.

NFS Port: 32771

Example: mount -t nfs -o vers=4,port=32771 linux7:/<OCISG FileSystem name> /local_mount_point
[opc@linux7 ocisg-1.4]$

ご覧の通り、管理コンソールのURLとマウント・コマンドが表示されます。 上記情報は、コマンドsudo ocisg infoで取得できるため、メモしなくても構いません。

5. 管理コンソールへのログイン

5-1. イングレス・ルールの編集

管理コンソールにログインする前に、OCIセキュリティ・リスト (またはNSG) を編集して、TCP ポート (443、32770、32771)のインバウンド・トラフィックを許可する必要があります。
image.png

5-2. 初回ログイン

Webブラウザーを開き、管理コンソールのURLを入力します。
URL: https://<host_name_or_IP_address>:32770/

ストレージ・ゲートウェイは自己署名証明書を使用するため、以下のような警告メッセージが表示される場合があります。URLが正しいことを確認してから続行してください。

初回ログイン時にパスワードの新規設定が必要です。
image.png
新しいパスワードを再入力し、「ログイン」を押して続行します。
image.png

ログイン後、次の管理コンソールが表示されます。 ストレージ・サイズが推奨値より小さい場合、「システム・ステータス」に黄色い警告メッセージが表示されます。
image.png

6. 最初のファイル・システムの作成

ここまで、ファイル・システムはまだ作成されていません。 新規作成をしましょう。
STEP-3の準備が整っていることを確報した上、「ファイル・システムの作成」ボタンをクリックして開始してください。

「ファイル・システム名」はバケット名となります。 バケットが存在しない場合は自動作成されます。

各項目に用意しておいた内容を入力します。「秘密鍵のパスフレーズ」を持っていない場合はスキップします。入力後、「保存」をクリックします。

「接続」ボタンをクリックします。

これで接続が作成されました。 (約1分間)

OCI コンソールから結果を確認すると、新しいバケットが作成されました。

7. ファイル・システムをクライアントへのマウント

ストレージ・ゲートウェイの各ファイル・システムでは、ディレクトリがOCI Object Storageバケットにマップされます。ストレージ・ゲートウェイとNFSクライアントの間の接続を確立するには、ストレージ・ゲートウェイ・ファイル・システムをNFSクライアントにマウントする必要があります。

7-1. NFSクライアントにファイル・システムをマウントする

マウント用コマンドは、ストレージ・ゲートウェイのインストールが完了した時点表示されます。このコマンドは、 管理コンソールから、またはsudo ocisg infoコマンドでも確認できます。

[opc@linux7 ~]$ sudo mkdir /sg-bucket1
[opc@linux7 ~]$ sudo mount -t nfs -o vers=4,port=32771 10.0.2.21:/SG-Bucket1 /sg-bucket1
[opc@linux7 ~]$

df -hコマンドで結果を確認します。

7-2. 簡単なテスト

SGのインストール・ファイルをクライアント側からオブジェクト・ストレージのバケットにコピーするという簡単なテストを行います。

[opc@linux7 ~]$ sudo chown opc:opc /sg-bucket1
[opc@linux7 ~]$ cp -p /home/opc/sgw/ocisg-1.4.tar.gz /sg-bucket1
[opc@linux7 ~]$

開始時点:

転送が完了すると。 「Pending Uploads (保留中のアップロード)」は「0」になります。詳細については、ストリーミング・ログを確認できます。
image.png

OCIコンソールから確認すると、ファイルが正常にアップロードされたことが分かります。
image.png

サマリ
お疲れ様です!ここまで「ストレージ・ゲートウェイ」のインストールと設定作業は完了で、対象データのバックアップが開始できます。

「ストレージ・ゲートウェイ」以外、サード・パーティーの転送ツールもありますので、詳細は以下の関連記事をご参照ください。

以上


2024年3月追記
Storage Gatewayは、2024/2/28よりEnd of Lifeになることがアナウンスされました。代替案は、OCI-CLIか、Rcloneなどをご利用ください。アナウンスの詳細は、こちらを参照ください。


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

参考資料
ストレージ・ゲートウェイのインストール
ストレージ・ゲートウェイ管理コンソールへのログイン
最初のファイル・システムの作成
ファイル・システムの管理
Storage Gateway FAQ
Partitioning Disks with parted

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?