本ブログは、オラクル・クラウドの個人ブログの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 です。
ダウンロード後、ストレージサーバーに転送します。 この例では、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)のインバウンド・トラフィックを許可する必要があります。
5-2. 初回ログイン
Webブラウザーを開き、管理コンソールのURLを入力します。
URL: https://<host_name_or_IP_address>:32770/
ストレージ・ゲートウェイは自己署名証明書を使用するため、以下のような警告メッセージが表示される場合があります。URLが正しいことを確認してから続行してください。
初回ログイン時にパスワードの新規設定が必要です。
新しいパスワードを再入力し、「ログイン」を押して続行します。
ログイン後、次の管理コンソールが表示されます。 ストレージ・サイズが推奨値より小さい場合、「システム・ステータス」に黄色い警告メッセージが表示されます。
6. 最初のファイル・システムの作成
ここまで、ファイル・システムはまだ作成されていません。 新規作成をしましょう。
STEP-3の準備が整っていることを確報した上、「ファイル・システムの作成」ボタンをクリックして開始してください。
「ファイル・システム名」はバケット名となります。 バケットが存在しない場合は自動作成されます。
各項目に用意しておいた内容を入力します。「秘密鍵のパスフレーズ」を持っていない場合はスキップします。入力後、「保存」をクリックします。
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 ~]$
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」になります。詳細については、ストリーミング・ログを確認できます。
OCIコンソールから確認すると、ファイルが正常にアップロードされたことが分かります。
サマリ
お疲れ様です!ここまで「ストレージ・ゲートウェイ」のインストールと設定作業は完了で、対象データのバックアップが開始できます。
「ストレージ・ゲートウェイ」以外、サード・パーティーの転送ツールもありますので、詳細は以下の関連記事をご参照ください。
以上
2024年3月追記
Storage Gatewayは、2024/2/28よりEnd of Lifeになることがアナウンスされました。代替案は、OCI-CLIか、Rcloneなどをご利用ください。アナウンスの詳細は、こちらを参照ください。
関連記事
オラクル・クラウドの個人ブログ一覧
OCIオブジェクト・ストレージへのファイル転送方法のまとめ
参考資料
ストレージ・ゲートウェイのインストール
ストレージ・ゲートウェイ管理コンソールへのログイン
最初のファイル・システムの作成
ファイル・システムの管理
Storage Gateway FAQ
Partitioning Disks with parted