diff --git a/_pages/hpc.md b/_pages/hpc.md index ae5c01bbf2..aeb507f6e5 100644 --- a/_pages/hpc.md +++ b/_pages/hpc.md @@ -86,14 +86,14 @@ HPC/機械学習ワークロードを実行する際に有益なテクニカル - 構築手法 構築手法は、 **[マーケットプレース](#5-5-マーケットプレイス)** 提供の **[スタック](#5-3-スタック)** を使用する自動構築、予め用意された **[Terraform](#5-12-terraform)** スクリプトを使用する自動構築、及び **OCI** コンソールから各リソースを順次構築する手動構築に分かれ、それぞれ以下の利点・欠点があります。 - なお、ここで紹介する自動構築(スタック)に分類されるチュートリアルの多くは、 **[HPCクラスタスタック](#5-10-hpcクラスタスタック)** を活用しています。 + なお、ここで紹介する自動構築(**スタック**)に分類されるチュートリアルの多くは、 **[HPCクラスタスタック](#5-10-hpcクラスタスタック)** を活用しています。 | | 利点 | 欠点 | 備考 | | | :-----------------: | ------------------------------------------------------------- | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --- | - | 自動構築
(スタック) | ユーザの作業時間(※1)が短い
GUIによる操作(※2)が可能 | 構築手順のブラックボックス化
 ・システム構成の変更が難しい
 ・問題発生時原因究明難 | ※1)スタックメニュー選択の時間
※2) **OCI** コンソール | | - | 自動構築
(Terraform) | ユーザの作業時間(※3)が短い
CLI/GUI(※4)を選択可能 | Terraform実行環境(※5)が必要 | ※3)スタックメニュー選択の時間
or
Terraformスクリプト内変数修正
に要する時間
※4)Terraform CLI/ **OCI** コンソール
※5)Terraform CLIを選択した場合 | | - | 手動構築
( **OCI** コンソール) | 構築手順が明確
 ・システム構成の変更が容易
 ・問題発生時原因究明容易
GUIによる操作(※6)が可能 | ユーザの作業時間が長い | ※6) **OCI** コンソール操作 | | + | 自動構築
(**スタック**) | 構築作業時間(※1)が短い
GUI操作(※2)が可能 | 構築手順のブラックボックス化
 ・システム構成の変更が難しい
 ・問題発生時の原因究明が困難 | ※1)スタックメニュー選択の時間
※2) **OCI** コンソール | | + | 自動構築
(**Terraform**) | 構築作業時間(※3)が短い
CLI/GUI(※4)を選択可能 | **Terraform** 実行環境(※5)が必要 | ※3)スタックメニュー選択の時間
or
**Terraform** スクリプト内変数修正
に要する時間
※4)**Terraform** CLI/ **OCI** コンソール
※5)**Terraform** CLIを選択した場合 | | + | 手動構築
( **OCI** コンソール) | 構築手順が明確
 ・システム構成の変更が容易
 ・問題発生時原因究明容易
GUI操作(※6)が可能 | 構築作業時間が長い | ※6) **OCI** コンソール操作 | | @@ -124,9 +124,9 @@ HPC/機械学習ワークロードを実行する際に有益なテクニカル | チュートリアル名 | 構築手法 | クラスタ
管理機能 | スタティック/
オンデマンド | 計算ノードOS | | :-------------------------------------------------------------------------------------------: | :-----------------: | :----------: | :---------------: | :--------------------: | | **[HPCクラスタを構築する
(基礎インフラ手動構築編)](/ocitutorials/hpc/spinup-cluster-network/)** | 手動構築 | 無し | スタティック | **Oracle Linux** 7.9/8 | -| **[HPCクラスタを構築する
(基礎インフラ自動構築編)](/ocitutorials/hpc/spinup-hpc-cluster-withterraform/)** | 自動構築
(Terraform CLI
/スタック) | 無し | スタティック | **Oracle Linux** 7.9/8 | -| **[HPCクラスタを構築する
(スタティッククラスタ自動構築編)](/ocitutorials/hpc/spinup-hpc-cluster)** | 自動構築
(スタック) | 有り | スタティック | **Oracle Linux** 7.9/8 | -| **[HPCクラスタを構築する
(オンデマンドクラスタ自動構築編)](/ocitutorials/hpc/spinup-hpc-cluster-withautoscaling)** | 自動構築
(スタック) | 有り | オンデマンド | **Oracle Linux** 7.9/8 | +| **[HPCクラスタを構築する
(基礎インフラ自動構築編)](/ocitutorials/hpc/spinup-hpc-cluster-withterraform/)** | 自動構築
(**Terraform** CLI/**スタック**) | 無し | スタティック | **Oracle Linux** 7.9/8 | +| **[HPCクラスタを構築する
(スタティッククラスタ自動構築編)](/ocitutorials/hpc/spinup-hpc-cluster)** | 自動構築
(**スタック**) | 有り | スタティック | **Oracle Linux** 7.9/8 | +| **[HPCクラスタを構築する
(オンデマンドクラスタ自動構築編)](/ocitutorials/hpc/spinup-hpc-cluster-withautoscaling)** | 自動構築
(**スタック**) | 有り | オンデマンド | **Oracle Linux** 7.9/8 | ## 1-2. 機械学習環境 @@ -169,9 +169,9 @@ HPC/機械学習ワークロードを実行する際に有益なテクニカル ## 1-3-2. バックアップ -ファイル共有ストレージのバックアップは、チュートリアル **[ベア・メタル・インスタンスNFSサーバ向けバックアップサーバを構築する](/ocitutorials/hpc/spinup-backup-server)** に従って構築するバックアップサーバで、 **Rclone** を使用して **オブジェクト・ストレージ** にバックアップすることが可能です。 +ファイル共有ストレージのバックアップは、チュートリアル **[ベア・メタル・インスタンスNFSサーバ向けバックアップサーバを構築する](/ocitutorials/hpc/spinup-backup-server)** に従って構築するバックアップサーバで、容量単価の安価な **オブジェクト・ストレージ** や **ブロック・ボリューム** の **より低いコスト** にバックアップすることが可能です。 -バックアップを念頭に置いたファイル共有ストレージと **オブジェクト・ストレージ** 間のデータ転送手法の比較は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[オブジェクト・ストレージを使用するバックアップツールの選択方法](/ocitutorials/hpc/tech-knowhow/howto-choose-osbackuptool/)** を参照してください。 +ファイル共有ストレージのバックアップを念頭に置いたバックアップ環境構築手法の比較は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[ファイル共有ストレージ向けバックアップ環境の最適な構築手法](/ocitutorials/hpc/tech-knowhow/howto-choose-osbackuptool/)** を参照してください。 ## 1-4. チュートリアルを組み合わせた実践的HPCシステム構築 @@ -356,11 +356,10 @@ HPC/機械学習ワークロードを実行する際に有益なテクニカル ただこの動的拡張は、 **OCI** コンソールやインスタンスOSで複数のオペレーションを実施する必要があり、ノード数が多くなるクラスタ環境の計算/GPUノードでは、これらのオペレーションを効率的に実施することが求められます。 本テクニカルTipsは、HPC/GPUクラスタの多数の計算/GPUノードに対し、 **ブート・ボリューム** の動的拡張を効率的に実施する方法を解説します。 -- **[オブジェクト・ストレージを使用するバックアップツールの選択方法](/ocitutorials/hpc/tech-knowhow/howto-choose-osbackuptool/)** +- **[ファイル共有ストレージ向けバックアップ環境の最適な構築手法](/ocitutorials/hpc/tech-knowhow/howto-choose-osbackuptool/)** - HPC/GPUクラスタを運用する際必須となるファイル共有ストレージは、コストパフォーマンスを考慮すると **ベア・メタル・インスタンス** と **ブロック・ボリューム** 等のストレージサービスで構築することになりますが、このストレージをバックアップする場合そのバックアップ環境を独自に構築することになり、このバックアップを格納するストレージの有力な選択肢は、その安価な容量単価から **オブジェクト・ストレージ** が挙げられます。 - この際のバックアップツールは、POSIXファイルシステムと **オブジェクト・ストレージ** 間の差分バックアップ機能を有していることが求められ、候補となるツールがいくつか存在します。 - 本テクニカルTipsは、ファイル共有ストレージのバックアップを **オブジェクト・ストレージ** に取得することを想定し、自身のバックアップ要件に沿ったツールを選択する方法を解説します。 + HPC/GPUクラスタを運用する際必須となるファイル共有ストレージは、コストパフォーマンスを考慮すると **ベア・メタル・インスタンス** と **ブロック・ボリューム** 等のストレージサービスで構築することになりますが、そのバックアップ環境は自身で構築する必要があり、バックアップを格納するストレージはその安価な容量単価から **オブジェクト・ストレージ** や **ブロック・ボリューム** の **より低いコスト** が有力な選択肢になります。 + 本テクニカルTipsは、ファイル共有ストレージのバックアップを容量単価の安価なストレージに取得することを念頭に、自身のバックアップ要件に沿った最適なバックアップ環境構築手法を選定する方法を解説します。 ## 3-3. クラスタ管理 diff --git a/tutorials/_hpc/benchmark/topology-aware-cn-tuning.md b/tutorials/_hpc/benchmark/topology-aware-cn-tuning.md index 0bb676d870..5cccd8ee39 100644 --- a/tutorials/_hpc/benchmark/topology-aware-cn-tuning.md +++ b/tutorials/_hpc/benchmark/topology-aware-cn-tuning.md @@ -96,7 +96,7 @@ $ diff slurm.conf_org slurm.conf $ ``` -次に、以下コマンドをSlurmマネージャのopcユーザで実行し、先の **slurm.conf** の修正を反映します。ます。 +次に、以下コマンドをSlurmマネージャのopcユーザで実行し、先の **slurm.conf** の修正を反映します。 ``` $ sudo su - slurm -c "scontrol reconfigure" diff --git a/tutorials/_hpc/spinup-backup-server.md b/tutorials/_hpc/spinup-backup-server.md index 0a4ccfdfea..7e329c9cfd 100644 --- a/tutorials/_hpc/spinup-backup-server.md +++ b/tutorials/_hpc/spinup-backup-server.md @@ -1,11 +1,11 @@ --- title: "ベア・メタル・インスタンスNFSサーバ向けバックアップサーバを構築する" -excerpt: "ベア・メタル・インスタンスで構築するNFSのファイル共有ストレージを対象とする、バックアップサーバを構築してみましょう。このチュートリアルを終了すると、NFSのファイル共有ストレージに格納するファイルを安価なオブジェクト・ストレージにバックアップするバックアップサーバを構築することが出来るようになります。" +excerpt: "ベア・メタル・インスタンスで構築するNFSのファイル共有ストレージを対象とする、バックアップサーバを構築してみましょう。このチュートリアルを終了すると、NFSのファイル共有ストレージに格納するファイルを容量単価の安価なオブジェクト・ストレージやブロック・ボリュームのより低いコストにバックアップする、バックアップサーバを構築することが出来るようになります。" order: "1340" layout: single header: - teaser: "/hpc/spinup-backup-server/architecture_diagram.png" - overlay_image: "/hpc/spinup-backup-server/architecture_diagram.png" + teaser: "/hpc/spinup-backup-server/architecture_diagram_os.png" + overlay_image: "/hpc/spinup-backup-server/architecture_diagram_os.png" overlay_filter: rgba(34, 66, 55, 0.7) #link: https://community.oracle.com/tech/welcome/discussion/4474261/ --- @@ -17,62 +17,75 @@ HPC/GPUクラスタを運用する際必須となるファイル共有ストレ ※1)ベア・メタル・インスタンスNFSサーバの詳細は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[HPC/GPUクラスタ向けファイル共有ストレージの最適な構築手法](/ocitutorials/hpc/tech-knowhow/howto-configure-sharedstorage/)** を参照してください。 -このベア・メタル・インスタンスNFSサーバは、NFSのマネージドサービスである **ファイル・ストレージ** の場合は備え付けのバックアップ機能を利用できるのに対し、自身でバックアップ環境を構築する必要があります。(※2) +このベア・メタル・インスタンスNFSサーバは、NFSのマネージドサービスである **ファイル・ストレージ** の場合は備え付けのバックアップ機能を利用できるのに対し、自身でバックアップ環境を用意する必要があります。(※2) ※2)バックアップの観点でのベア・メタル・インスタンスNFSサーバと **ファイル・ストレージ** の比較は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[HPC/GPUクラスタ向けファイル共有ストレージの最適な構築手法](/ocitutorials/hpc/tech-knowhow/howto-configure-sharedstorage/)** の **[2-2 可用性による比較](/ocitutorials/hpc/tech-knowhow/howto-configure-sharedstorage/#2-2-可用性による比較)** を参照してください。 以上を踏まえて本チュートリアルは、ベア・メタル・インスタンスNFSサーバで構築するファイル共有ストレージに格納されるファイルをバックアップする、バックアップサーバの構築方法を解説します。 -ここでバックアップを格納するストレージは、通常バックアップ対象のファイルを格納するストレージ( **ブロック・ボリューム** やNVMe SSDドライブ)より容量単価の安価なものを選択する必要があるため、 **オブジェクト・ストレージ** を使用します。 -この際のバックアップツールは、 **オブジェクト・ストレージ** とPOSIXファイルシステム間のデータ転送ツールとして幅広く利用されているオープンソースの **[Rclone](https://rclone.org/)** を採用し、ベア・メタル・インスタンスNFSサーバのNFSクライアントとして構成したバックアップサーバ上でこの **Rclone** のファイル同期機能を使用し、NFSマウントしたファイルシステム領域を **オブジェクト・ストレージ** に差分バックアップします。 -**Rclone** が **オブジェクト・ストレージ** にアクセスする際は、バックアップサーバを **[インスタンス・プリンシパル](/ocitutorials/hpc/#5-15-インスタンスプリンシパル)** 認証に組み込むことでIAM認証・認可を付与します。 +ここで構築するバックアップ環境は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[ファイル共有ストレージ向けバックアップ環境の最適な構築手法](/ocitutorials/hpc/tech-knowhow/howto-choose-osbackuptool/)** の **[0. 概要](/ocitutorials/hpc/tech-knowhow/howto-choose-osbackuptool/#0-概要)** に記載のバックアップ環境 **No. 3** と **No. 4** から選択して構築することとし、採用したいバックアップ格納ストレージが **オブジェクト・ストレージ** (**No.3**)と **ブロック・ボリューム** の **より低いコスト** (**No.4**)(**ブロック・ボリューム** の **パフォーマンス・レベル** が最低のサービスで、 **ブロック・ボリューム** の中では最も容量単価が安価です。関連する **OCI** 公式ドキュメントは、 **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/Block/Concepts/blockvolumeperformance.htm)** を参照してください。以降" **BVLC** "と呼称します。)のどちらを採用するかにより決定します。 + +バックアップサーバは、ファイル共有ストレージ領域をNFSマウントし、バックアップ環境 **No.3** の場合は **[Rclone](https://rclone.org/)** を使用して **オブジェクト・ストレージ** に、バックアップ環境 **No.4** の場合は **rsync** を使用して **BVLC** 上に作成したPOSIXファイルシステムに、それぞれ差分バックアップします。 +バックアップ環境 **No.3** で、 **Rclone** の **オブジェクト・ストレージ** へのアクセスは、バックアップサーバを **[インスタンス・プリンシパル](/ocitutorials/hpc/#5-15-インスタンスプリンシパル)** 認証に組み込むことでIAM認証・認可を付与します。 またバックアップサーバに使用するシェイプは、メタデータ性能が要求される小さなファイルのバックアップやサイズの大きなファイルを **マルチパート・アップロード** する際に **Rclone** がマルチスレッドを活用してデータ転送を行う事を考慮し、コア数の十分な **[VM.Standard.E5.Flex](https://docs.oracle.com/ja-jp/iaas/Content/Compute/References/computeshapes.htm#vm-standard)** の32コア・384GBメモリを使用します。 また、本チュートリアルで使用する各ソフトウェアのバージョンを以下に示します。 - バックアップサーバOS: **Oracle Linux** 9.4(Oracle-Linux-9.4-2024.08.29-0 UEK) - **Rclone** : v1.68.1 +- **rsync** : 3.2.3(OSに予め含まれているものを使用) + +![システム構成図OS](architecture_diagram_os.png) +
バックアップ環境 No.3

-![システム構成図](architecture_diagram.png) +![システム構成図BV](architecture_diagram_bv.png) +
バックアップ環境 No.4

-**Rclone** は、このツールが持つ以下の機能を活用することで、本チュートリアルのようなPOSIXファイルシステムを **オブジェクト・ストレージ** にバックアップする際、バックアップの信頼性と性能を向上することが可能です。 +バックアップ環境 **No.3** でバックアップツールに使用する **Rclone** は、このツールが持つ以下の機能を活用することで、POSIXファイルシステムを **オブジェクト・ストレージ** にバックアップする際、バックアップの信頼性と性能を向上することが可能です。 - 差分バックアップ - マルチパート・アップロード - チェックサムによるファイル転送結果の確認 +バックアップ環境 **No.4** のバックアップ格納ストレージに使用する **ブロック・ボリューム** は、 **パフォーマンス・レベル** に容量単価が最も安価な **より低いコスト** を使用し、1 TB以上のボリュームを基本単位として15ボリュームをLinuxの論理ボリューム機能で各ボリュームにストライピングを掛けつつ1ファイルシステムに構成します。 + +![論理ボリュームディスク構成図](/ocitutorials/hpc/tech-knowhow/howto-configure-sharedstorage/lv_configuration.png) + +総容量が15 TBより大きなバックアップ格納ストレージが必要な場合は、単一 **ブロック・ボリューム** サイズを1 TBより大きくすることで、性能を維持したままその総容量を増やすことが可能です。 +例えば100 TBの総容量が必要な場合は、ボリューム・サイズを7 TBとすることで、7 TB x 15 = 105 TBの総容量を実現することが出来ます。 + また本チュートリアルは、構築したバックアップ環境でバックアップとリストアの性能をスループットとメタデータ性能の観点で検証します。 -この結果は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[オブジェクト・ストレージを使用するバックアップツールの選択方法](/ocitutorials/hpc/tech-knowhow/howto-choose-osbackuptool/)** の **[3. バックアップ・リストア性能](/ocitutorials/hpc/tech-knowhow/howto-choose-osbackuptool/#3-バックアップ・リストア性能)** を参照してください。 +この結果は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[ファイル共有ストレージ向けバックアップ環境の最適な構築手法](/ocitutorials/hpc/tech-knowhow/howto-choose-osbackuptool/)** の **[3. バックアップ・リストア性能](/ocitutorials/hpc/tech-knowhow/howto-choose-osbackuptool/#3-バックアップリストア性能)** を参照してください。 **所要時間 :** 約2時間 -**前提条件 :** バックアップサーバ環境を収容するコンパートメント(ルート・コンパートメントでもOKです)の作成と、このコンパートメントに対する必要なリソース管理権限がユーザーに付与されていること。 +**前提条件 :** バックアップ環境を収容するコンパートメント(ルート・コンパートメントでもOKです)の作成と、このコンパートメントに対する必要なリソース管理権限がユーザーに付与されていること。 **注意 :** - 本コンテンツ内の画面ショットは、現在のOCIコンソール画面と異なっている場合があります。 -- 本チュートリアルに従って取得するバックアップは、Rcloneを **オブジェクト・ストレージ** をバックエンドとして使用する際の制約から、以下の制限を受けます。 - - - シンボリックリンクをリンク先ファイルの実体としてバックアップします。 - (**Rclone** の **--copy-links** オプションによりこれを指示しています。) - - ハードリンクをリンク数分のファイルの実体としてバックアップします。 - - 空のディレクトリをバックアップすることが出来ません。 - - 特殊ファイルをバックアップすることが出来ません。 - - リストア時にファイルのオーナーユーザ・オーナーグループがroot:root(リストアコマンド実行ユーザとそのプライマリグループ)になります。 - - リストア時に全てのファイルとディレクトリのパーミッションがそれぞれ644と755になります。 - - その他のPOSIXファイルシステムとオブジェクト・ストレージの機能差からくる制限を受けます。 +- 本チュートリアルに従って取得するバックアップ環境 **No.3** のバックアップは、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[ファイル共有ストレージ向けバックアップ環境の最適な構築手法](/ocitutorials/hpc/tech-knowhow/howto-choose-osbackuptool/)** の **[2. バックアップ・リストア時の制約事項](/ocitutorials/hpc/tech-knowhow/howto-choose-osbackuptool/#2-バックアップリストア時の制約事項)** に記載の制限を受けます。 *** -# 1. 事前準備 +# 1. バックアップ環境構築 ## 1-0. 概要 -本章は、バックアップサーバ環境を構築する際に事前に実施しておく必要のある以下の手順を実施します。 - -- **[インスタンス・プリンシパル](/ocitutorials/hpc/#5-15-インスタンスプリンシパル)** 認証関連設定 -- **オブジェクト・ストレージ** バケット作成 +本章は、バックアップサーバを中心とするバックアップ環境の構築手順を、バックアップ環境 **No.3** とバックアップ環境 **No.4** の場合に分けて解説します。 なお、バックアップ対象領域をNFSでサービスするベア・メタル・インスタンスNFSサーバは、 **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の **[ブロック・ボリュームでファイル共有ストレージを構築する](/ocitutorials/hpc/spinup-nfs-server/)** や **[短期保存データ用高速ファイル共有ストレージを構築する](/ocitutorials/hpc/spinup-nfs-server-nvme/)** の手順に従い予め構築されているものとします。 -## 1-1. インスタンス・プリンシパル認証関連設定 +## 1-1. バックアップ環境No.3構築手順 + +### 1-1-0. 概要 + +バックアップ環境 **No.3** は、バックアップ格納ストレージに **オブジェクト・ストレージ** を使用し、 **Rclone** でこの領域にアクセスするため、以下のステップを経て構築を行います。 + +- **[インスタンス・プリンシパル](/ocitutorials/hpc/#5-15-インスタンスプリンシパル)** 認証関連設定 +- **バケット** 作成 +- バックアップサーバ用インスタンス作成 +- NFSクライアント設定 +- **Rclone** インストール・セットアップ + +### 1-1-1. インスタンス・プリンシパル認証関連設定 **[インスタンス・プリンシパル](/ocitutorials/hpc/#5-15-インスタンスプリンシパル)** 認証の設定は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[オンデマンドクラスタ実現のためのインスタンス・プリンシパル認証設定方法](/ocitutorials/hpc/tech-knowhow/instance-principal-auth/)** の **[1. インスタンス・プリンシパル認証設定](/ocitutorials/hpc/tech-knowhow/instance-principal-auth/#1-インスタンスプリンシパル認証設定)** の手順に従い実施します。 この際、このテクニカルTips中でクラスタ管理ノードと呼称している箇所は、バックアップサーバと読みかえて下さい。 @@ -82,36 +95,25 @@ HPC/GPUクラスタを運用する際必須となるファイル共有ストレ allow dynamic-group dynamicgroup_name to manage all-resources in compartment compartment_name ``` -## 1-2. オブジェクト・ストレージバケット作成 - -**オブジェクト・ストレージ** バケットの作成は、 **[OCIチュートリアル](https://oracle-japan.github.io/ocitutorials/)** の **[その7 - オブジェクト・ストレージを使う](https://oracle-japan.github.io/ocitutorials/beginners/object-storage/)** の **[1. コンソール画面の確認とバケットの作成](https://oracle-japan.github.io/ocitutorials/beginners/object-storage/#1-%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E7%94%BB%E9%9D%A2%E3%81%AE%E7%A2%BA%E8%AA%8D%E3%81%A8%E3%83%90%E3%82%B1%E3%83%83%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90)** の手順に従い、 **Rclone** がバックアップを格納するバケットをバックアップサーバ環境を収容する **コンパートメント** にバケット名 **rclone** で作成します。 - -*** -# 2. バックアップサーバ構築 - -## 2-0. 概要 +### 1-1-2. バケット作成 -本章は、バックアップサーバを以下のステップで構築します。 +**[OCIチュートリアル](https://oracle-japan.github.io/ocitutorials/)** の **[その7 - オブジェクト・ストレージを使う](https://oracle-japan.github.io/ocitutorials/beginners/object-storage/)** の **[1. コンソール画面の確認とバケットの作成](https://oracle-japan.github.io/ocitutorials/beginners/object-storage/#1-%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E7%94%BB%E9%9D%A2%E3%81%AE%E7%A2%BA%E8%AA%8D%E3%81%A8%E3%83%90%E3%82%B1%E3%83%83%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90)** の手順に従い、 **Rclone** がバックアップを格納する **バケット** を **rclone** で作成します。 -- インスタンス作成 -- NFSクライアント設定 -- **Rclone** インストール・セットアップ +### 1-1-3. バックアップサーバ用インスタンス作成 -## 2-1. インスタンス作成 - -**[OCIチュートリアル](https://oracle-japan.github.io/ocitutorials/)** の **[その3 - インスタンスを作成する](https://oracle-japan.github.io/ocitutorials/beginners/creating-compute-instance)** の手順に従い、以下のインスタンスをベア・メタル・インスタンスNFSサーバを収容する **コンパートメント** にNFSクライアント用のプライベートサブネットを指定して作成します。 +**[OCIチュートリアル](https://oracle-japan.github.io/ocitutorials/)** の **[その3 - インスタンスを作成する](https://oracle-japan.github.io/ocitutorials/beginners/creating-compute-instance)** の手順に従い、以下のインスタンスをNFSクライアント用のプライベートサブネットを指定して作成します。 - **イメージ** : **Oracle Linux** 9.4(Oracle-Linux-9.4-2024.08.29-0 UEK) - **シェイプ** : **VM.Standard.E5.Flex** (32コア・384GBメモリ) -## 2-2. NFSクライアント設定 +### 1-1-4. NFSクライアント設定 -**[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の以下の手順に従い、ベア・メタル・インスタンスNFSサーバのエクスポートしている領域を **/mnt/nfs** でマウントします。 +ファイル共有ストレージがブロック・ボリュームNFSサーバかDenceIO NFSサーバのどちらかに合わせて、 **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の以下の手順に従い、ベア・メタル・インスタンスNFSサーバのエクスポートしている領域をバックアップサーバの **/mnt/nfs** にマウントします。 - ブロック・ボリュームNFSサーバ: **[ブロック・ボリュームでファイル共有ストレージを構築する](/ocitutorials/hpc/spinup-nfs-server/)** の **[4. NFSクライアント設定](https://oracle-japan.github.io/ocitutorials/hpc/spinup-nfs-server/#4-nfs%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E8%A8%AD%E5%AE%9A)** - DenceIO NFSサーバ: **[短期保存データ用高速ファイル共有ストレージを構築する](/ocitutorials/hpc/spinup-nfs-server-nvme/)** の **[3-4. NFSクライアントでのファイルシステムマウント](https://oracle-japan.github.io/ocitutorials/hpc/spinup-nfs-server-nvme/#3-4-nfs%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%A7%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88)** -## 2-3. Rcloneインストール・セットアップ +### 1-1-5. Rcloneインストール・セットアップ 以下コマンドをバックアップサーバのopcユーザで実行し、 **Rclone** をインストールします。 @@ -203,7 +205,7 @@ Enter a value. namespace> object_storage_namespace ``` -次に、以下のプロンプトが表示されたら、 **[1-2. オブジェクトストレージバケット作成](#1-2-オブジェクトストレージバケット作成)** で作成した **オブジェクト・ストレージ** バケットが存在する **コンパートメント** のOCIDを入力します。 +次に、以下のプロンプトが表示されたら、 **[1-1-2. バケット作成](#1-1-2-バケット作成)** で作成した **オブジェクト・ストレージ** バケットが存在する **コンパートメント** のOCIDを入力します。 ```sh Option compartment. @@ -212,7 +214,7 @@ Enter a value. compartment> ocid1.compartment.oc1..xxxx ``` -次に、以下のプロンプトが表示されたら、 **[1-2. オブジェクトストレージバケット作成](#1-2-オブジェクトストレージバケット作成)** で作成した **オブジェクト・ストレージ** バケットが存在する **リージョン** 識別子を入力します。 +次に、以下のプロンプトが表示されたら、 **[1-1-2. バケット作成](#1-1-2-バケット作成)** で作成した **オブジェクト・ストレージ** バケットが存在する **リージョン** 識別子を入力します。 ```sh Option region. @@ -277,16 +279,84 @@ e/n/d/r/c/s/q> q $ ``` +## 1-2. バックアップ環境No.4構築手順 + +### 1-2-0. 概要 + +バックアップ環境 **No.4** は、バックアップ格納ストレージに **BVLC** を使用し、 **rsync** でこの領域にアクセスするため、以下のステップを経て構築を行います。 + +- バックアップサーバ用インスタンス作成 +- **BVLC** 作成・アタッチ +- バックアップ格納ファイルシステム作成 +- NFSクライアント設定 + +### 1-2-1. バックアップサーバ用インスタンス作成 + +**[OCIチュートリアル](https://oracle-japan.github.io/ocitutorials/)** の **[その3 - インスタンスを作成する](https://oracle-japan.github.io/ocitutorials/beginners/creating-compute-instance)** の手順に従い、以下のインスタンスをNFSクライアント用のプライベートサブネットを指定して作成します。 + +- **イメージ** : **Oracle Linux** 9.4(Oracle-Linux-9.4-2024.08.29-0 UEK) +- **シェイプ** : **VM.Standard.E5.Flex** (32コア・384GBメモリ) + +### 1-2-2. BVLC作成・アタッチ + +**[OCIチュートリアル](https://oracle-japan.github.io/ocitutorials/)** の **[その4 - ブロック・ボリュームをインスタンスにアタッチする](https://oracle-japan.github.io/ocitutorials/beginners/attaching-block-volume/)** の手順に従い、以下の **ブロック・ボリューム** を15個作成し、バックアップサーバにアタッチします。 + +- **ボリューム・サイズ(GB)** : 1000以上(総容量に合わせて調整) +- **デフォルトVPU/GB** : 0 + +### 1-2-3. バックアップ格納ファイルシステム作成 + +以下コマンドをバックアップサーバのopcユーザで実行し、15個の **ブロック・ボリューム** が **sdb** から **sdp** でアタッチされていることを確認します。 + +```sh +$ lsblk | grep ^sd | grep -v ^sda +sdb 8:16 0 1000G 0 disk +sdc 8:32 0 1000G 0 disk +sdd 8:16 0 1000G 0 disk +sde 8:32 0 1000G 0 disk +sdf 8:16 0 1000G 0 disk +sdg 8:32 0 1000G 0 disk +sdh 8:16 0 1000G 0 disk +sdi 8:32 0 1000G 0 disk +sdj 8:16 0 1000G 0 disk +sdk 8:32 0 1000G 0 disk +sdl 8:16 0 1000G 0 disk +sdm 8:32 0 1000G 0 disk +sdn 8:16 0 1000G 0 disk +sdo 8:16 0 1000G 0 disk +sdp 8:32 0 1000G 0 disk +$ +``` + +次に、以下コマンドをバックアップサーバのopcユーザで実行し、アタッチした15個の **ブロック・ボリューム** にファイルシステムを作成し、これを **/mnt/bv** にマウントします。 + +```sh +$ sudo vgcreate bv /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp +$ sudo lvcreate -y -l 100%FREE --stripes 15 --stripesize "64K" -n bv bv +$ sudo mkfs.xfs -L blockvolume /dev/bv/bv +$ echo "LABEL=blockvolume /mnt/bv/ xfs defaults,_netdev,noatime 0 0" | sudo tee -a /etc/fstab +$ sudo systemctl daemon-reload +$ sudo mkdir -p /mnt/bv +$ sudo mount /mnt/bv +``` + +### 1-2-4. NFSクライアント設定 + +ファイル共有ストレージがブロック・ボリュームNFSサーバかDenceIO NFSサーバのどちらかに合わせて、 **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の以下の手順に従い、ベア・メタル・インスタンスNFSサーバのエクスポートしている領域をバックアップサーバの **/mnt/nfs** にマウントします。 + +- ブロック・ボリュームNFSサーバ: **[ブロック・ボリュームでファイル共有ストレージを構築する](/ocitutorials/hpc/spinup-nfs-server/)** の **[4. NFSクライアント設定](https://oracle-japan.github.io/ocitutorials/hpc/spinup-nfs-server/#4-nfs%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E8%A8%AD%E5%AE%9A)** +- DenceIO NFSサーバ: **[短期保存データ用高速ファイル共有ストレージを構築する](/ocitutorials/hpc/spinup-nfs-server-nvme/)** の **[3-4. NFSクライアントでのファイルシステムマウント](https://oracle-japan.github.io/ocitutorials/hpc/spinup-nfs-server-nvme/#3-4-nfs%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%A7%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88)** + *** -# 3. バックアップ・リストア実行 +# 2. バックアップ・リストア実行 -## 3-0. 概要 +## 2-0. 概要 -本章は、構築したバックアップサーバ上でバックアップとリストアを実行する方法を解説します。 +本章は、構築したバックアップサーバ上でバックアップとリストアを実行する方法を、バックアップ環境 **No.3** とバックアップ環境 **No.4** の場合に分けて解説します。 以降では、性能検証を兼ねてバックアップとリストアを実行することを念頭に、スループットとメタデータ性能を計測するためのテストファイルを予め作成し、このファイルを対象にバックアップとリストアを実行します。 -## 3-1. テストファイル作成 +## 2-1. テストファイル作成 以下コマンドをバックアップサーバのopcユーザで実行し、テストファイルを格納するディレクトリと、リストアするファイルを格納するディレクトリを作成します。 @@ -297,17 +367,17 @@ $ sudo chown opc:opc /mnt/nfs/* $ sudo mkdir /mnt/nfs/restore ``` -次に、以下コマンドをバックアップサーバのopcユーザで実行し、 **10 GiB** のスループット検証用ファイルと、 **1,000,000** 個のメタデータ性能検証用ファイルを作成します。 +次に、以下コマンドをバックアップサーバのopcユーザで実行し、 **10 GiB** のスループット検証用ファイル1個と、 **0 B** のメタデータ性能検証用ファイル **1,000,000** 個を作成します。 ```sh $ cd /mnt/nfs/large && dd if=/dev/urandom of=./10G.bin bs=1048576 count=$((1024*10)) $ cd /mnt/nfs/small && count=1000; for i in `seq -w 1 $count`; do echo $i; mkdir $i; cd $i;for j in `seq -w 1 $count`; do fname=$j".out"; touch $fname; done; cd ..; done ``` -## 3-2. バックアップ実行 +## 2-2. バックアップ環境No.3バックアップ実行 以下コマンドをバックアップサーバのopcユーザで実行します。 -このコマンドは、バックアップサーバの **/mnt/nfs/source_dir** ディレクトリ以下を **[1-2. オブジェクトストレージバケット作成](#1-2-オブジェクトストレージバケット作成)** で作成したバケット **rclone** の **dest_dir** に差分バックアップします。初回実行時は、フルバックアップになります。 +このコマンドは、バックアップサーバの **/mnt/nfs/source_dir** ディレクトリ以下を **[1-1-2. バケット作成](#1-1-2-バケット作成)** で作成したバケット **rclone** の **dest_dir** に差分バックアップします。初回実行時は、フルバックアップになります。 ここで **source_dir** と **dest_dir** は、スループット検証の場合は何れも **large** 、メタデータ性能検証の場合は何れも **small** とします。 ```sh @@ -316,10 +386,10 @@ $ time sudo rclone --oos-upload-cutoff 16Mi --transfers 100 --oos-chunk-size 16M 出力されたtimeコマンドの時間情報から、スループットとメタデータ性能を計算し確認します。 -## 3-3. リストア実行 +## 2-3. バックアップ環境No.3リストア実行 以下コマンドをバックアップサーバのopcユーザで実行します。 -このコマンドは、 **[1-2. オブジェクトストレージバケット作成](#1-2-オブジェクトストレージバケット作成)** で作成したバケット **rclone** の **dest_dir** をバックアップサーバの **/mnt/nfs/restore/source_dir** ディレクトリ以下にリストアします。 +このコマンドは、 **[1-1-2. バケット作成](#1-1-2-バケット作成)** で作成したバケット **rclone** の **dest_dir** をバックアップサーバの **/mnt/nfs/restore/source_dir** ディレクトリ以下にリストアします。 ここで **dest_dir** と **source_dir** は、スループット検証の場合は何れも **large** 、メタデータ性能検証の場合は何れも **small** とします。 ```sh @@ -328,4 +398,26 @@ $ time sudo rclone --oos-upload-cutoff 16Mi --transfers 100 --oos-chunk-size 16M 出力されたtimeコマンドの時間情報から、スループットとメタデータ性能を計算し確認します。 +## 2-4. バックアップ環境No.4バックアップ実行 + +以下コマンドをバックアップサーバのopcユーザで実行します。 +ここで **source_dir** と **dest_dir** は、スループット検証の場合は何れも **large** 、メタデータ性能検証の場合は何れも **small** とします。 + +```sh +$ time sudo rsync -auH /mnt/nfs/source_dir /mnt/bv/dest_dir +``` + +出力されたtimeコマンドの時間情報から、スループットとメタデータ性能を計算し確認します。 + +## 2-5. バックアップ環境No.4リストア実行 + +以下コマンドをバックアップサーバのopcユーザで実行します。 +ここで **dest_dir** と **source_dir** は、スループット検証の場合は何れも **large** 、メタデータ性能検証の場合は何れも **small** とします。 + +```sh +$ time sudo rsync /mnt/bv/dest_dir /mnt/nfs/restore/source_dir +``` + +出力されたtimeコマンドの時間情報から、スループットとメタデータ性能を計算し確認します。 + これで、このチュートリアルは終了です。 \ No newline at end of file diff --git a/tutorials/_hpc/spinup-backup-server/architecture_diagram.png b/tutorials/_hpc/spinup-backup-server/architecture_diagram.png deleted file mode 100644 index f2fcca6a44..0000000000 Binary files a/tutorials/_hpc/spinup-backup-server/architecture_diagram.png and /dev/null differ diff --git a/tutorials/_hpc/spinup-backup-server/architecture_diagram_bv.png b/tutorials/_hpc/spinup-backup-server/architecture_diagram_bv.png new file mode 100644 index 0000000000..18a0c74a68 Binary files /dev/null and b/tutorials/_hpc/spinup-backup-server/architecture_diagram_bv.png differ diff --git a/tutorials/_hpc/spinup-backup-server/architecture_diagram_os.png b/tutorials/_hpc/spinup-backup-server/architecture_diagram_os.png new file mode 100644 index 0000000000..d8ba49d53e Binary files /dev/null and b/tutorials/_hpc/spinup-backup-server/architecture_diagram_os.png differ diff --git a/tutorials/_hpc/spinup-cluster-network/console_page12-1.png b/tutorials/_hpc/spinup-cluster-network/console_page12-1.png index 8fd518c9a2..f00f7a51b8 100644 Binary files a/tutorials/_hpc/spinup-cluster-network/console_page12-1.png and b/tutorials/_hpc/spinup-cluster-network/console_page12-1.png differ diff --git a/tutorials/_hpc/spinup-nfs-server-nvme.md b/tutorials/_hpc/spinup-nfs-server-nvme.md index 492376e112..be7afd92c5 100644 --- a/tutorials/_hpc/spinup-nfs-server-nvme.md +++ b/tutorials/_hpc/spinup-nfs-server-nvme.md @@ -220,7 +220,7 @@ $ 本章は、NFSサーバインスタンスでNFSサーバ環境を構築します。 -以下コマンドをNFSサーバインスタンスのopcユーザで実行し、NFSサーバを起動します。 +以下コマンドをNFSサーバインスタンスのopcユーザで実行し、NFSサーバを起動してNVMe SSDローカルディスクに作成したファイルシステムがエクスポートされていることを確認します。 ```sh $ echo "/mnt/nvme_raid 10.0.0.0/16(rw,sync,no_root_squash)" | sudo tee -a /etc/exports diff --git a/tutorials/_hpc/spinup-nfs-server.md b/tutorials/_hpc/spinup-nfs-server.md index 891c4d2060..a045fbb6ed 100644 --- a/tutorials/_hpc/spinup-nfs-server.md +++ b/tutorials/_hpc/spinup-nfs-server.md @@ -41,19 +41,20 @@ OCIは、NFSのマネージドサービスである **ファイル・ストレ 本チュートリアルで作成するブロック・ボリュームNFSサーバ構築用の **スタック** は、適用すると以下の処理を行います。 -- **仮想クラウド・ネットワーク** と関連するネットワークリソースのデプロイ(※1) -- **ブロック・ボリューム** のデプロイ -- NFSサーバ用インスタンスのデプロイ -- デプロイした **ブロック・ボリューム** をNFSサーバにアタッチ +- **仮想クラウド・ネットワーク** と関連するネットワークリソースの作成(※1) +- **ブロック・ボリューム** の作成 +- NFSサーバ用インスタンスの作成 +- 作成した **ブロック・ボリューム** をNFSサーバにアタッチ - **Terraform** プロビジョナーでNFSサーバにSSHアクセスする際に使用するSSH鍵ペア作成・配布 - **Terraform** のfileプロビジョナーでNFSサーバにNFSサーバ構成用スクリプト(※3)を配布 - **Terraform** のremote-execプロビジョナーでNFSサーバ上でNFSサーバ構成用スクリプト(※3)を実行 - 構築したNFSサーバのホスト名・IPアドレス出力 -※1)既存の **仮想クラウド・ネットワーク** を活用することも可能で、この場合はこれらが以下の条件を満たしているている必要があります。 +※1)既存の **仮想クラウド・ネットワーク** を活用することも可能で、この場合はこの **仮想クラウド・ネットワーク** が以下の条件を満たしているている必要があります。 -- NFSサーバ・NFSクライアント間接続用NFSプライベートサブネットが存在(※2) -- NFSサーバ・ **ブロック・ボリューム** 間iSCSI接続用Storageプライベートサブネットが存在(※2) +- NFSサーバ・NFSクライアント間接続用NFSプライベートサブネットが存在する(※2) +- NFSサーバ・ **ブロック・ボリューム** 間iSCSI接続用Storageプライベートサブネットが存在する(※2) +- **NATゲートウェイ** と **サービス・ゲートウェイ** が存在する - 各プライベートサブネットに **NATゲートウェイ** と **サービス・ゲートウェイ** へのルーティングを適切に設定した **ルート・テーブル** が紐づいている ※2)それぞれ独立したサブネットである必要があります。 @@ -70,7 +71,7 @@ OCIは、NFSのマネージドサービスである **ファイル・ストレ - **/mnt/bv** をworld writableでエクスポート -またこの **スタック** は、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)** 設定ファイル( **cloud-config** )を含み、 **cloud-init** がNFSサーバのデプロイ時に以下の処理を行います。 +またこの **スタック** は、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)** 設定ファイル( **cloud-config** )を含み、 **cloud-init** がNFSサーバの作成時に以下の処理を行います。 - タイムゾーンをJSTに変更 - **firewalld** 停止 @@ -132,7 +133,7 @@ allow group group_name to manage all-resources in compartment compartment_name 本章は、ブロック・ボリュームNFSサーバを構築するための **[スタック](/ocitutorials/hpc/#5-3-スタック)** を作成します。 -OCIコンソールにログインし、ブロック・ボリュームNFSサーバをデプロイするリージョンを選択後、 **開発者サービス** → **リソース・マネージャ** → **スタック** とメニューを辿ります。 +OCIコンソールにログインし、ブロック・ボリュームNFSサーバを作成するリージョンを選択後、 **開発者サービス** → **リソース・マネージャ** → **スタック** とメニューを辿ります。 次に、表示される以下画面で、**スタックの作成** ボタンをクリックします。 @@ -153,8 +154,8 @@ OCIコンソールにログインし、ブロック・ボリュームNFSサー 次に、表示される **変数の構成** 画面で、各画面フィールドに以下の情報を入力し、下部の **次** ボタンをクリックします。 - **General options** フィールド - - **Compartment :** ブロック・ボリュームNFSサーバをデプロイする **コンパートメント** - - **Availability Domain :** ブロック・ボリュームNFSサーバをデプロイする **可用性ドメイン** + - **Compartment :** ブロック・ボリュームNFSサーバを作成する **コンパートメント** + - **Availability Domain :** ブロック・ボリュームNFSサーバを作成する **可用性ドメイン** - **SSH public key :** NFSサーバにログインする際使用するSSH秘密鍵に対応する公開鍵 (公開鍵ファイルのアップロード( **SSHキー・ファイルの選択** )と公開鍵のフィールドへの貼り付け( **SSHキーの貼付け** )が選択可能) - **Use existing VCN :** 既存の **仮想クラウド・ネットワーク** を使用するかどうかを指定(デフォルト: **仮想クラウド・ネットワーク** を新規作成) @@ -194,13 +195,13 @@ OCIコンソールにログインし、ブロック・ボリュームNFSサー ![画面ショット](stack_page14.png) -表示される以下 **ログ** フィールドで、リソースのデプロイ状況を確認します。 +表示される以下 **ログ** フィールドで、リソースの作成状況を確認します。 ![画面ショット](stack_page15.png) この適用が完了するまでの所要時間は、5分程度です。 -ステータスが **成功** となれば、ブロック・ボリュームNFSサーバのデプロイが完了しており、以下のように **ログ** フィールドの最後にNFSサーバのホスト名とIPアドレスが出力されます。 +ステータスが **成功** となれば、ブロック・ボリュームNFSサーバの作成が完了しており、以下のように **ログ** フィールドの最後にNFSサーバのホスト名とIPアドレスが出力されます。 ```sh Outputs: @@ -215,7 +216,7 @@ NFS_server_instances_created = { ## 3-0. 概要 -本章は、デプロイされたブロック・ボリュームNFSサーバ環境を確認します。 +本章は、作成されたブロック・ボリュームNFSサーバ環境を確認します。 ## 3-1. NFSサーバログイン @@ -305,14 +306,14 @@ $ sudo mount /mnt/nfs 以上より、本章で実施するファイルシステムベンチマークは、以下の手順を経て行います。 -- NFSクライアント用インスタンスデプロイ +- NFSクライアント用インスタンス作成 - **OpenMPI** インストール - **IO500** インストール - ファイルシステムベンチマーク実行 -## 5-1. NFSクライアント用インスタンスデプロイ +## 5-1. NFSクライアント用インスタンス作成 -NFSクライアントとして使用する以下のインスタンスをデプロイします。 +NFSクライアントとして使用する以下のインスタンスを作成します。 - シェイプ : **VM.Standard2.24** - OS : **Oracle Linux** 8.10(Oracle-Linux-8.10-2024.08.29-0 UEK) diff --git a/tutorials/_hpc/tech-knowhow/cluster-resize.md b/tutorials/_hpc/tech-knowhow/cluster-resize.md index b7e2c98ce5..4d7ae7a1e3 100644 --- a/tutorials/_hpc/tech-knowhow/cluster-resize.md +++ b/tutorials/_hpc/tech-knowhow/cluster-resize.md @@ -8,14 +8,11 @@ header: #link: https://community.oracle.com/tech/welcome/discussion/4474261/ --- -HPC/GPUクラスタは、実行するワークロードの増減に伴い計算/GPUノードのノード数を増減する必要が生じることがあります。またハードウェア障害が発生すると、利用可能なノード数を維持するために当該ノードを別のノードに置き換える必要が生じます。 -本テクニカルTipsは、 **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** を使用するHPC/GPUクラスタで計算/GPUノードのノード数を増減する方法や置き換える方法を解説します。 - *** # 0. 概要 HPC/GPUクラスタのノード数を増減させたり既存の計算/GPUノードを置き換える場合、これらのノードが通常同一の **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** に接続されている必要があることから、 **クラスタ・ネットワーク** を使用しないインスタンスとは異なる手順が必要になります。 -そこで本テクニカルTipsでは、これらの手順を以下の3ケースに分けて解説します。 +そこで本テクニカルTipsでは、これらの手順を以下のシナリオに分けて解説します。 - ノード数を減らす - ノード数を増やす @@ -26,60 +23,56 @@ HPC/GPUクラスタのノード数を増減させたり既存の計算/GPUノー ## 1-0. 概要 -ノード数を減らす場合、終了するノードを指定する方法と終了するノードをOCIに任せる方法があります。 - -終了するノードをOCIに任せる方法は、 **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** に接続するどのノードを終了しても構わないが複数のノードを一度に減らす際に有効で、最も作成日の古いものから終了の対象として選択されます。 -これに対して終了するノードを指定する方法は、一度に終了するノードは1ノードだが終了するノードを特定する必要がある際に有効です。 - -## 1-1. 終了するノードを指定する方法 +ノード数を減らす場合、終了するノードを **OCI** に任せる方法と終了するノードを指定する方法があります。 -本章は、計算/GPUノードを減らす際、終了するノードを指定する方法を解説します。 +終了するノードを **OCI** に任せる方法は、 **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** に接続するどのノードを終了しても構わないが複数のノードを一度に減らす際に有効で、最も作成日の古いものから終了の対象として選択されます。 +これに対して終了するノードを指定する方法は、一度に終了させるノードは少数だが終了するノードを指定する必要がある際に有効です。 -1. OCIコンソールメニューから **コンピュート** → **クラスタ・ネットワーク** を選択し、表示される以下画面で、ノード数を減らす **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** をクリックします。 +## 1-1. 終了するノードをOCIに任せる方法 - ![画面ショット](console_page01.png) +OCIコンソールメニューから **コンピュート** → **クラスタ・ネットワーク** を選択し、表示される以下画面で、ノード数を減らす **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** をクリックします。 -2. 表示される以下画面の **インスタンス・プール** フィールドで、 **クラスタ・ネットワーク** の作成に伴い作成された **[インスタンス・プール](/ocitutorials/hpc/#5-8-インスタンスプール)** をクリックします。 +![画面ショット](console_page01.png) - ![画面ショット](console_page02.png) +次に、表示される以下画面で、 **編集** ボタンをクリックします。 -3. 表示される以下画面左下の **アタッチされたインスタンス** メニューをクリックします。 +![画面ショット](console_page06.png) - ![画面ショット](console_page03.png) +次に、表示される以下 **クラスタ・ネットワークの編集** サイドバーで、 **インスタンス数** フィールドに減らした後の新しいノード数を入力し **変更の保存** ボタンをクリックします。 -4. 表示される画面の以下 **アタッチされたインスタンス** フィールドで、終了するインスタンスのメニューから **インスタンスのデタッチ** メニューをクリックします。 +![画面ショット](console_page07.png) - ![画面ショット](console_page04.png) +表示される以下 **クラスタ・ネットワーク・インスタンス・プール** ウィンドウで、左上のステータスが **スケーリング中** → **完了** と遷移し、 -5. 表示される以下画面で、 **このインスタンスおよびアタッチされたブート・ボリュームを完全に終了(削除)** チェックボックスをチェックし、 **デタッチと終了** ボタンをクリックします。 +![画面ショット](console_page08.png) - ![画面ショット](console_page05.png) +同じウィンドウ下方の以下 **インスタンス・プール** フィールドで、 **インスタンス数** が新しいノード数に変わっていることを確認出来れば、作業完了です。 -6. OCIコンソールメニューから **コンピュート** → **インスタンス** とメニューを辿り、デタッチしたインスタンスが終了されれば、手順完了です。 +![画面ショット](console_page09.png) -## 1-2. 終了するノードをOCIに任せる方法 +## 1-2. 終了するノードを指定する方法 -本章は、計算/GPUノードを減らす際、終了するノードをOCIに任せる方法を解説します。 +OCIコンソールメニューから **コンピュート** → **クラスタ・ネットワーク** を選択し、表示される以下画面で、ノード数を減らす **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** をクリックします。 -1. OCIコンソールメニューから **コンピュート** → **クラスタ・ネットワーク** を選択し、表示される以下画面で、ノード数を減らす **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** をクリックします。 +![画面ショット](console_page01.png) - ![画面ショット](console_page01.png) +次に、表示される以下画面の **インスタンス・プール** フィールドで、 **クラスタ・ネットワーク** の作成に伴い作成された **[インスタンス・プール](/ocitutorials/hpc/#5-8-インスタンスプール)** をクリックします。 -2. 表示される以下画面で、 **編集** ボタンをクリックします。 +![画面ショット](console_page02.png) - ![画面ショット](console_page06.png) +次に、表示される以下画面左下の **アタッチされたインスタンス** メニューをクリックします。 -3. 表示される以下 **クラスタ・ネットワークの編集** サイドバーで、 **インスタンス数** フィールドに減らした後の新しいノード数を入力し **変更の保存** ボタンをクリックします。 +![画面ショット](console_page03.png) - ![画面ショット](console_page07.png) +次に、表示される画面の以下 **アタッチされたインスタンス** フィールドで、終了するインスタンスのメニューから **インスタンスのデタッチ** メニューをクリックします。 -4. 表示される以下 **クラスタ・ネットワーク・インスタンス・プール** ウィンドウで、左上のステータスが **スケーリング中** → **完了** と遷移したら、手順完了です。 +![画面ショット](console_page04.png) - ![画面ショット](console_page08.png) +次に、表示される以下画面で、 **このインスタンスおよびアタッチされたブート・ボリュームを完全に終了(削除)** チェックボックスをチェックし、 **デタッチと終了** ボタンをクリックします。 -5. 同じウィンドウ下方の以下 **インスタンス・プール** フィールドで、 **インスタンス数** が新しいノード数に変わっていることを確認します。 +![画面ショット](console_page05.png) - ![画面ショット](console_page09.png) +OCIコンソールメニューから **コンピュート** → **インスタンス** とメニューを辿り、デタッチしたインスタンスの終了を確認出来れば、作業完了です。 *** # 2. ノード数を増やす @@ -93,27 +86,25 @@ HPC/GPUクラスタのノード数を増減させたり既存の計算/GPUノー ## 2-1. ノード数を増やす方法 -本章は、計算/GPUノードを増やす方法を解説します。 +OCIコンソールメニューから **コンピュート** → **クラスタ・ネットワーク** を選択し、表示される以下画面で、ノード数を増やす **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** をクリックします。 -1. OCIコンソールメニューから **コンピュート** → **クラスタ・ネットワーク** を選択し、表示される以下画面で、ノード数を増やす **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** をクリックします。 +![画面ショット](console_page01.png) - ![画面ショット](console_page01.png) +次に、表示される以下画面で、 **編集** ボタンをクリックします。 -2. 表示される以下画面で、 **編集** ボタンをクリックします。 +![画面ショット](console_page06.png) - ![画面ショット](console_page06.png) +次に、表示される以下 **クラスタ・ネットワークの編集** サイドバーで、 **インスタンス数** フィールドに増やした後の新しいノード数を入力し **変更の保存** ボタンをクリックします。 -3. 表示される以下 **クラスタ・ネットワークの編集** サイドバーで、 **インスタンス数** フィールドに増やした後の新しいノード数を入力し **変更の保存** ボタンをクリックします。 +![画面ショット](console_page07.png) - ![画面ショット](console_page07.png) +表示される以下 **クラスタ・ネットワーク・インスタンス・プール** ウィンドウで、左上のステータスが **スケーリング中** → **完了** と遷移し、 -4. 表示される以下 **クラスタ・ネットワーク・インスタンス・プール** ウィンドウで、左上のステータスが **スケーリング中** → **完了** と遷移したら、手順完了です。 +![画面ショット](console_page08.png) - ![画面ショット](console_page08.png) +同じウィンドウ下方の以下 **インスタンス・プール** フィールドで、 **インスタンス数** が新しいノード数に変わっていることを確認出来れば、作業完了です。 -5. 同じウィンドウ下方の以下 **インスタンス・プール** フィールドで、 **インスタンス数** が新しいノード数に変わっていることを確認します。 - - ![画面ショット](console_page09.png) +![画面ショット](console_page09.png) *** # 3. ノードを置き換える @@ -124,26 +115,24 @@ HPC/GPUクラスタのノード数を増減させたり既存の計算/GPUノー ## 3-1. ノードを置き換える方法 -本章は、計算/GPUノードを置き換える方法を解説します。 - -1. OCIコンソールメニューから **コンピュート** → **クラスタ・ネットワーク** を選択し、表示される以下画面で、置き換えられるノードが接続する **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** をクリックします。 +OCIコンソールメニューから **コンピュート** → **クラスタ・ネットワーク** を選択し、表示される以下画面で、置き換えられるノードが接続する **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** をクリックします。 - ![画面ショット](console_page01.png) +![画面ショット](console_page01.png) -2. 表示される以下画面の **インスタンス・プール** フィールドで、 **クラスタ・ネットワーク** の作成に伴い作成された **[インスタンス・プール](/ocitutorials/hpc/#5-8-インスタンスプール)** をクリックします。 +次に、表示される以下画面の **インスタンス・プール** フィールドで、 **クラスタ・ネットワーク** の作成に伴い作成された **[インスタンス・プール](/ocitutorials/hpc/#5-8-インスタンスプール)** をクリックします。 - ![画面ショット](console_page02.png) +![画面ショット](console_page02.png) -3. 表示される以下画面左下の **アタッチされたインスタンス** メニューをクリックします。 +次に、表示される以下画面左下の **アタッチされたインスタンス** メニューをクリックします。 - ![画面ショット](console_page03.png) +![画面ショット](console_page03.png) -4. 表示される画面の以下 **アタッチされたインスタンス** フィールドで、置き換えるインスタンスのメニューから **インスタンスのデタッチ** メニューをクリックします。 +次に、表示される画面の以下 **アタッチされたインスタンス** フィールドで、置き換えるインスタンスのメニューから **インスタンスのデタッチ** メニューをクリックします。 - ![画面ショット](console_page04.png) +![画面ショット](console_page04.png) -5. 表示される以下画面で、 **このインスタンスおよびアタッチされたブート・ボリュームを完全に終了(削除)** と **プールのインスタンス構成をインスタンスのテンプレートとして使用し、インスタンスを新しいインスタンスで置き換える** チェックボックスをチェックし、 **デタッチと終了** ボタンをクリックします。 +次に、表示される以下画面で、 **このインスタンスおよびアタッチされたブート・ボリュームを完全に終了(削除)** と **プールのインスタンス構成をインスタンスのテンプレートとして使用し、インスタンスを新しいインスタンスで置き換える** チェックボックスをチェックし、 **デタッチと終了** ボタンをクリックします。 - ![画面ショット](console_page10.png) +![画面ショット](console_page10.png) -6. OCIコンソールメニューから **コンピュート** → **インスタンス** とメニューを辿り、デタッチしたインスタンスが終了し、新たなインスタンスが起動されれば、手順完了です。 \ No newline at end of file +OCIコンソールメニューから **コンピュート** → **インスタンス** とメニューを辿り、デタッチしたインスタンスが終了し、新たなインスタンスが作成されれば、作業完了です。 \ No newline at end of file diff --git a/tutorials/_hpc/tech-knowhow/howto-choose-osbackuptool.md b/tutorials/_hpc/tech-knowhow/howto-choose-osbackuptool.md index c0ce987cff..2f513abde7 100644 --- a/tutorials/_hpc/tech-knowhow/howto-choose-osbackuptool.md +++ b/tutorials/_hpc/tech-knowhow/howto-choose-osbackuptool.md @@ -1,42 +1,57 @@ --- -title: "オブジェクト・ストレージを使用するバックアップツールの選択方法" -excerpt: "HPC/GPUクラスタを運用する際必須となるファイル共有ストレージは、コストパフォーマンスを考慮するとベア・メタル・インスタンスとブロック・ボリューム等のストレージサービスで構築することになりますが、このストレージをバックアップする場合そのバックアップ環境を独自に構築することになり、このバックアップを格納するストレージの有力な選択肢は、その安価な容量単価からオブジェクト・ストレージが挙げられます。この際のバックアップツールは、POSIXファイルシステムとオブジェクト・ストレージ間の差分バックアップ機能を有していることが求められ、候補となるツールがいくつか存在します。本テクニカルTipsは、ファイル共有ストレージのバックアップをオブジェクト・ストレージに取得することを想定し、自身のバックアップ要件に沿ったツールを選択する方法を解説します。" +title: "ファイル共有ストレージ向けバックアップ環境の最適な構築手法" +excerpt: "HPC/GPUクラスタを運用する際必須となるファイル共有ストレージは、コストパフォーマンスを考慮するとベア・メタル・インスタンスとブロック・ボリューム等のストレージサービスで構築することになりますが、そのバックアップ環境は自身で構築する必要があり、バックアップを格納するストレージはその安価な容量単価からオブジェクト・ストレージやブロック・ボリュームのより低いコストが有力な選択肢になります。本テクニカルTipsは、ファイル共有ストレージのバックアップを容量単価の安価なストレージに取得することを念頭に、自身のバックアップ要件に沿った最適なバックアップ環境構築手法を選定する方法を解説します。" order: "325" layout: single header: - teaser: "/hpc/spinup-backup-server/architecture_diagram.png" - overlay_image: "/hpc/spinup-backup-server/architecture_diagram.png" + teaser: "/hpc/spinup-backup-server/architecture_diagram_bv.png" + overlay_image: "/hpc/spinup-backup-server/architecture_diagram_bv.png" overlay_filter: rgba(34, 66, 55, 0.7) #link: https://community.oracle.com/tech/welcome/discussion/4474261/ --- + *** # 0. 概要 **ベア・メタル・インスタンス** と **ブロック・ボリューム** 等のストレージサービスで構築するNFSでサービスするファイル共有ストレージは、NFSのマネージドサービスである **ファイル・ストレージ** の場合は備え付けのバックアップ機能を利用できるのに対し、自身でバックアップ環境を構築する必要があります。 -この際バックアップを格納するストレージは、通常バックアップ対象のファイルを格納するストレージより容量単価の安価なものを選択する必要があるため、 **オブジェクト・ストレージ** がその有力な候補になります。 +この際バックアップを格納するストレージは、通常バックアップ対象のファイルを格納するストレージ(**ブロック・ボリューム** の **バランス** や **Dense I/Oシェイプ** のNVMe SSDローカルディスク)より容量単価の安価なものを選択する必要があるため、 **オブジェクト・ストレージ** や **ブロック・ボリューム** の **より低いコスト** (**ブロック・ボリューム** の **パフォーマンス・レベル** が最低のサービスで、 **ブロック・ボリューム** の中では最も容量単価が安価です。関連する **OCI** 公式ドキュメントは、 **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/Block/Concepts/blockvolumeperformance.htm)** を参照してください。以降" **BVLC** "と呼称します。)が候補になります。 +またバックアップに使用するツールは、差分バックアップ機能を有することが求められ、バックアップ格納ストレージが **オブジェクト・ストレージ** の場合はこの領域へのアクセス機能を有する必要があります。 -この際バックアップを行うツールは、POSIXファイルシステムと **オブジェクト・ストレージ** 間の差分バックアップ機能が必要になり、この機能を有する代表的なものとして以下のツールが挙げられます。 +以上より本テクニカルTipsは、バックアップ格納ストレージに **オブジェクト・ストレージ** と **BVLC** 、バックアップツールに **オブジェクト・ストレージ** へのアクセス機能を有する以下ソフトウェアと **rsync** を取り上げ、 -- **[Command Line Interface(以降"OCI CLI"と呼称)](https://docs.oracle.com/en-us/iaas/Content/API/Concepts/cliconcepts.htm)** の **[oci os object sync](https://docs.oracle.com/en-us/iaas/tools/oci-cli/3.49.3/oci_cli_docs/cmdref/os/object/sync.html)** コマンド -**OCI** の操作をコマンドラインインターフェースで行うための **OCI CLI** は、POSIXファイルシステムと **オブジェクト・ストレージ** を同期させるサブコマンド **oci os object sync** を提供しており、これを利用して差分バックアップを実現します。 -- **[OCIFS](https://docs.oracle.com/en-us/iaas/oracle-linux/ocifs/index.htm)** + rsync -**OCI** が無償で提供するユーティリティの **OCIFS** は、 **オブジェクト・ストレージ** をPOSIXファイルシステムのディレクトリ階層にマウントし、POSIXのIOシステムコールを使用するアプリケーションが **オブジェクト・ストレージ** にアクセスすることを可能にします。 -**OCIFS** でマウントされた **オブジェクト・ストレージ** とファイル共有ストレージをrsyncで同期させることで、ファイル共有ストレージの **オブジェクト・ストレージ** への差分バックアップを実現します。 +- **[Command Line Interface](https://docs.oracle.com/ja-jp/iaas/Content/API/Concepts/cliconcepts.htm)** (以降" **OCI CLI** "と呼称) +**OCI** の操作をコマンドラインインターフェースで行うための **OCI CLI** は、POSIXファイルシステムと **オブジェクト・ストレージ** を同期させる機能を持ち、これを利用して差分バックアップを実現します。 +- **[OCIFS](https://docs.oracle.com/ja-jp/iaas/oracle-linux/ocifs/index.htm)** +**OCI** が無償で提供するユーティリティの **OCIFS** は、 **オブジェクト・ストレージ** をPOSIXファイルシステムのディレクトリ階層にマウントし、POSIXのIOシステムコールを使用するアプリケーションが **オブジェクト・ストレージ** にアクセスすることを可能にします。 - **[Rclone](https://rclone.org/)** -**Rclone** は、様々なクラウトストレージで利用可能なデータ転送ツールとして幅広く利用されている高機能のオープンソースソフトウェアで、 **オブジェクト・ストレージ** をバックエンドのストレージとして公式にサポートしており、ストレージ間を同期させるサブコマンド **rclone sync** を利用し、ファイル共有ストレージの **オブジェクト・ストレージ** への差分バックアップを実現します。 +**Rclone** は、様々なクラウドストレージで利用可能なデータ転送ツールとして幅広く利用されている高機能のオープンソースソフトウェアで、 **オブジェクト・ストレージ** をバックエンドのストレージとして公式にサポートし、ストレージ間を同期させる機能により差分バックアップを実現します。 -本テクニカルTipsは、ファイル共有ストレージのバックアップを **オブジェクト・ストレージ** に取得することを念頭に、まず初めにこれらのツールを検証する際の前提条件を提示し、次に以下の観点でこれらのツールを比較・検証することで、自身のバックアップ要件に沿ったツールをどのように選択すればよいかを解説します。 +これらを以下のように組み合わせた4種類のバックアップ環境を比較・検証します。 + +| No. | バックアップ
格納ストレージ | バックアップツール | バックアップ方法 | +| :-: | :---------------: | :-------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: | +| 1 | **オブジェクト・ストレージ** | **OCI CLI** | **[oci os object sync](https://docs.oracle.com/en-us/iaas/tools/oci-cli/3.49.3/oci_cli_docs/cmdref/os/object/sync.html)** コマンドで差分バックアップ | +| 2 | **オブジェクト・ストレージ** | **OCIFS** + **rsync** | **OCIFS** でマウントした **オブジェクト・ストレージ** に
**rsync** で差分バックアップ | +| 3 | **オブジェクト・ストレージ** | **Rclone** | **rclone sync** コマンドで差分バックアップ | +| 4 | **BVLC** | **rsync** | **BVLC** に作成したPOSIXファイルシステムに
**rsync** で差分バックアップ | + +以降では、まず初めにこれらのバックアップ環境の前提条件を提示し、次に以下の観点でこれらを比較・検証することで、自身のバックアップ要件に沿ったバックアップ環境をどのように選択すればよいかを解説します。 - バックアップ・リストア時の制約事項 - バックアップ・リストア性能 +- ランニングコスト *** -# 1. バックアップツール検証時前提条件 +# 1. バックアップ環境前提条件 ## 1-0. 概要 -本章は、本テクニカルTipsで比較するバックアップツールを検証する際の前提条件を、以下の観点で解説します。 +本章は、本テクニカルTipsで取り上げるバックアップ環境を検証する際の前提条件を、以下の観点で解説します。 - 検証環境 - ソフトウェアバージョン @@ -44,11 +59,15 @@ header: ## 1-1. 検証環境 -バックアップツールを検証する際に使用する環境は、ストレージに **ブロック・ボリューム** を使用しこれを **ベア・メタル・インスタンス** にアタッチする方法(以降"ブロック・ボリュームNFSサーバ”と呼称)でNFSでサービスするファイル共有ストレージをバックアップする前提で、何れも **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の **[ブロック・ボリュームでファイル共有ストレージを構築する](/ocitutorials/hpc/spinup-nfs-server/)** の手順に従い構築されたファイル共有ストレージと **[ベア・メタル・インスタンスNFSサーバ向けバックアップサーバを構築する](/ocitutorials/hpc/spinup-backup-server/)** の手順に従い構築されたバックアップ環境を使用し、ここで構築したバックアップサーバでバックアップツールを実行して検証します。 +各バックアップ環境は、ストレージに **ブロック・ボリューム** を使用しこれを **ベア・メタル・インスタンス** にアタッチする方法(以降"ブロック・ボリュームNFSサーバ”と呼称)でNFSでサービスするファイル共有ストレージをバックアップする前提で、何れも **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の **[ブロック・ボリュームでファイル共有ストレージを構築する](/ocitutorials/hpc/spinup-nfs-server/)** の手順に従い構築されたファイル共有ストレージと **[ベア・メタル・インスタンスNFSサーバ向けバックアップサーバを構築する](/ocitutorials/hpc/spinup-backup-server/)** の手順に従い構築されたバックアップ環境を使用し、ここで構築したバックアップサーバでバックアップツールを実行します。 -![システム構成図](/ocitutorials/hpc/spinup-backup-server/architecture_diagram.png) +![システム構成図OS](/ocitutorials/hpc/spinup-backup-server/architecture_diagram_os.png) +
バックアップ格納ストレージに オブジェクト・ストレージ を使用する場合

-なお、このチュートリアルで構築するバックアップ環境は、 **Rclone** のみを使用しているため、 **OCI CLI** と **OCIFS** を追加でバックアップサーバにインストールします。 +![システム構成図BV](/ocitutorials/hpc/spinup-backup-server/architecture_diagram_bv.png) +
バックアップ格納ストレージに BVLC を使用する場合

+ +なお、このチュートリアルで構築するバックアップ環境は **No. 3** と **No. 4** のため、 **No. 1** と **No. 2** のバックアップツールである **OCI CLI** と **OCIFS** を追加でバックアップサーバにインストールします。 **OCI CLI** のインストールは、以下の **OCI** 公式マニュアルに従い行います。 なお、 **OCI CLI** の実行時認証は、チュートリアルに従って構築されたバックアップサーバが **[インスタンス・プリンシパル](/ocitutorials/hpc/#5-15-インスタンスプリンシパル)** 認証の設定を完了しているため、これを使用します。 @@ -61,7 +80,7 @@ header: $ sudo dnf install -y ocifs ``` -次に、以下コマンドをバックアップサーバのopcユーザで実行し、バックアップに使用する **オブジェクト・ストレージ・バケット** を **/mnt/os** にマウントします。 +次に、以下コマンドをバックアップサーバのopcユーザで実行し、バックアップに使用する **オブジェクト・ストレージ** の **バケット** を **/mnt/os** にマウントします。 なお、 **OCIFS** の実行時認証は、チュートリアルに従って構築されたバックアップサーバが **[インスタンス・プリンシパル](/ocitutorials/hpc/#5-15-インスタンスプリンシパル)** 認証の設定を完了しているため、これを使用します。 ```sh @@ -78,12 +97,17 @@ $ sudo ocifs --auth=instance_principal --cache=/var/tmp/ocifs-cache bucket_name - **OCI CLI** : 3.48.2 - **OCIFS** : 1.1.0-2 - **Rclone** : v1.68.1 +- **rsync** : 3.2.3 ## 1-3. バックアップ・リストア時指定のオプション -### 1-3-1. OCI CLI +### 1-3-0. 概要 + +本章は、各バックアップ環境を使用してバックアップ・リストアを行う際、使用するバックアップツールに指定するオプション等をバックアップ環境毎に解説します。 -**OCI CLI** を使用するバックアップは、以下コマンドをバックアップサーバのopcユーザで実行します。 +### 1-3-1. バックアップ環境No. 1 + +**OCI CLI** を使用するバックアップ環境 **No. 1** のバックアップは、以下コマンドをバックアップサーバのopcユーザで実行します。 ```sh $ sudo oci os object sync --auth instance_principal --delete --parallel-operations-count 100 --bucket-name bucket_name --src-dir /mnt/nfs/source_dir @@ -91,7 +115,7 @@ $ sudo oci os object sync --auth instance_principal --delete --parallel-operatio なおコマンド中の **bucket_name** と **source_dir** は、自身の環境に置き換えて指定します。 -また、 **OCI CLI** を使用するリストアは、以下コマンドをバックアップサーバのopcユーザで実行します。 +また、 **OCI CLI** を使用するバックアップ環境 **No. 1** のリストアは、以下コマンドをバックアップサーバのopcユーザで実行します。 ```sh $ sudo oci os object sync --auth instance_principal --delete --parallel-operations-count 100 --bucket-name bucket_name --dest-dir /mnt/nfs/dest_dir @@ -99,30 +123,30 @@ $ sudo oci os object sync --auth instance_principal --delete --parallel-operatio なおコマンド中の **bucket_name** と **dest_dir** は、自身の環境に置き換えて指定します。 -### 1-3-2. OCIFS +### 1-3-2. バックアップ環境No. 2 -**OCIFS** を使用するバックアップは、以下コマンドをバックアップサーバのopcユーザで実行します。 +**OCIFS** と **rsync** を使用するバックアップ環境 **No. 2** のバックアップは、以下コマンドをバックアップサーバのopcユーザで実行します。 ```sh -$ sudo rsync -au /mnt/nfs/source_dir /mnt/os/ +$ sudo rsync -au /mnt/nfs/source_dir /mnt/os ``` なおコマンド中の **source_dir** は、自身の環境に置き換えて指定します。 -また、 **OCIFS** を使用するリストアは、以下コマンドをバックアップサーバのopcユーザで実行します。 +また、 **OCIFS** と **rsync** を使用するバックアップ環境 **No. 2** のリストアは、以下コマンドをバックアップサーバのopcユーザで実行します。 最初の2個のコマンドは、バックアップ時のキャッシュを無効化するためのもので、これによりリストア時に **オブジェクト・ストレージ** からデータを読み出す際の性能を計測しています。 ```sh $ sudo umount /mnt/os $ sudo ocifs --auth=instance_principal --cache=/var/tmp/ocifs-cache bucket_name /mnt/os -$ sudo rsync -au /mnt/os/source_dir restore_dir +$ sudo rsync -au /mnt/os/source_dir /mnt/nfs/restore_dir ``` なおコマンド中の **source_dir** と **restore_dir** は、自身の環境に置き換えて指定します。 -### 1-3-3. Rclone +### 1-3-3. バックアップ環境No. 3 -**Rclone** を使用するバックアップは、以下コマンドをバックアップサーバのopcユーザで実行します。 +**Rclone** を使用するバックアップ環境 **No. 3** のバックアップは、以下コマンドをバックアップサーバのopcユーザで実行します。 ```sh $ sudo rclone --oos-upload-cutoff 16Mi --transfers 100 --oos-chunk-size 16Mi --oos-upload-concurrency 128 --oos-attempt-resume-upload --oos-leave-parts-on-error --copy-links --metadata --checksum sync /mnt/nfs/source_dir rclone_conn:bucket_name/dest_dir @@ -130,107 +154,159 @@ $ sudo rclone --oos-upload-cutoff 16Mi --transfers 100 --oos-chunk-size 16Mi --o なお、コマンド中の **source_dir** 、 **rclone_conn** 、 **bucket_name** 、及び **dest_dir** は、自身の環境に置き換えて指定します。 -また、 **Rclone** を使用するリストアは、以下コマンドをバックアップサーバのopcユーザで実行します。 +また、 **Rclone** を使用するバックアップ環境 **No. 3** のリストアは、以下コマンドをバックアップサーバのopcユーザで実行します。 ```sh $ sudo rclone --oos-upload-cutoff 16Mi --transfers 100 --oos-chunk-size 16Mi --oos-upload-concurrency 128 --oos-attempt-resume-upload --oos-leave-parts-on-error --copy-links --metadata --checksum sync rclone_conn:bucket_name/dest_dir /mnt/nfs/restore/source_dir ``` -なおコマンド中の **rclone_conn** 、 **bucket_name** 、 **dest_dir** 、及び **source_dir** は、自身の環境に置き換えて指定します。 +なお、コマンド中の **rclone_conn** 、 **bucket_name** 、 **dest_dir** 、及び **source_dir** は、自身の環境に置き換えて指定します。 + +### 1-3-4. バックアップ環境No. 4 + +**BVLC** と **rsync** を使用するバックアップ環境 **No. 4** のバックアップは、以下コマンドをバックアップサーバのopcユーザで実行します。 + +```sh +$ sudo rsync -auH /mnt/nfs/source_dir /mnt/bv +``` + +なお、コマンド中の **source_dir** は、自身の環境に置き換えて指定します。 + +また、 **BVLC** と **rsync** を使用するバックアップ環境 **No. 4** のリストアは、以下コマンドをバックアップサーバのopcユーザで実行します。 + +```sh +$ sudo rsync -auH /mnt/bv/source_dir /mnt/nfs/restore_dir +``` + +なお、コマンド中の **source_dir** と **restore_dir** は、自身の環境に置き換えて指定します。 *** # 2. バックアップ・リストア時の制約事項 -本章は、本テクニカルTipsで比較・検証するバックアップツールを **[1. バックアップツール検証時前提条件](#1-バックアップツール検証時前提条件)** で示した条件で利用する際、通常バックアップに求められる機能が満たせないような制約事項について、その評価項目と各バックアップツールの対応を以下の表にまとめます。 -この制約事項の多くは、POSIXファイルシステムのメタデータをバックエンドストレージの **オブジェクト・ストレージ** がサポートしていないことに起因します。 - -| No. | 評価項目 | OCI CLI | OCIFS | Rclone | -| :-: | :--------------------: | :---------: | :-------: | :--------: | -| 1 | オーナーユーザーの保存 | ✖(※1) | △(※2) | ✖(※1) | -| 2 | オーナーグループの保存 | ✖(※1) | △(※2) | ✖(※1) | -| 3 | パーミッションの保存 | ✖(※3) | △(※4) | ✖(※3) | -| 4 | ファイル作成・更新日時の保存 | ✖(※5) | △(※6) | 〇 | -| 5 | ファイル属性変更日時の保存 | ✖(※5) | ✖(※5) | ✖(※5) | -| 6 | ディレクトリ作成・更新日時の保存 | ✖(※5) | △(※6) | ✖(※5) | -| 7 | ハードリンクの保存 | ✖(※7) | ✖(※7) | ✖(※7) | -| 8 | シンボリックリンクの保存 | ✖(※8) | ✖ | ✖(※9) | -| 9 | 空のディレクトリの保存 | 〇 | 〇 | ✖ | -| 10 | キャシュをローカルファイルシステムに持たない | 〇 | ✖(※10) | 〇 | -|11|チェックサムによる
ファイル転送結果確認機能を持つ|✖|✖|〇| +本章は、本テクニカルTipsで比較・検証する各バックアップ環境を **[1. バックアップ環境前提条件](#1-バックアップ環境前提条件)** で示した条件で利用する際、本来バックアップに求められる機能が満たせないような制約事項について、その評価項目と各バックアップ環境の対応を以下の表にまとめます。 +この制約事項の多くは、バックアップ格納ストレージに **オブジェクト・ストレージ** を使用する際、POSIXファイルシステムのメタデータが保持されないことに起因します。 + +| No. | 評価項目 | バックアップ環境
No. 1 | バックアップ環境
No. 2 | バックアップ環境
No. 3 |バックアップ環境
No. 4| +| :-: | :--------------------: | :---------: | :-------: | :--------: | :--------: | +| 1 | 所有者・所有グループの保存 | ✖(※1) | △(※2) | ✖(※1) |〇| +| 2 | パーミッションの保存 | ✖(※3) | △(※4) | ✖(※3) |〇| +| 3 | ファイル作成・更新日時の保存 | ✖(※5) | △(※6) | 〇 |〇| +| 4 | ディレクトリ作成・更新日時の保存 | ✖(※5) | △(※6) | ✖(※5) |〇| +| 5 | ハードリンクの保存 | ✖(※7) | ✖(※7) | ✖(※7) |〇(※8)| +| 6 | シンボリックリンクの保存 | ✖(※9) | ✖ | ✖(※10) |〇| +| 7 | 空のディレクトリの保存 | 〇 | 〇 | ✖ |〇| +| 8 | キャシュ用のストレージが不要 | 〇 | ✖(※11) | 〇 |〇| +|9|チェックサムによる
ファイル転送結果確認機能を持つ
(※12)|✖|✖|〇|-
(※13)| ※1)リストア実行ユーザとそのプライマリグループになります。 ※2)再マウントでマウント実行ユーザとそのプライマリグループになります。 ※3)全てのファイルとディレクトリはそれぞれ **644** と **755** でリストアされます。 -※4)再マントで全てのファイルとディレクトリはそれぞれ **644** と **755** になります。 +※4)再マウントで全てのファイルとディレクトリはそれぞれ **644** と **755** になります。 ※5)リストア時の日時になります。 ※6)再マウントでリストア時の日時になります。 ※7)リンク数分のファイルの実体としてリストアされます。 -※8)参照元ファイルの実体としてリストアされます。 -※9)参照元ファイルの実体としてリストアされます。( **--copy-links** オプション指定による挙動です。) -※10)**オブジェクト・ストレージ** にアクセス(書込み・読込みの何れも含みます。)するファイルサイズの総容量に等しいキャッシュ用途の空き容量がローカルファイルシステムに必要です。このためフルバックアップは、バックアップ対象のファイル共有ストレージの総使用量以上の空き容量をローカルファイルシステムに用意する必要があります。 **OCIFS** のキャッシュに関する詳細は、 **OCI** 公式ドキュメントの **[ここ](https://docs.oracle.com/ja-jp/iaas/oracle-linux/ocifs/index.htm#ocifs-cache-options)** を参照してください。 +※8)**-H** オプション指定による挙動です。 +※9)参照先のファイルの実体としてリストアされます。 +※10)**Rclne** の **--copy-links** オプション指定により、参照先のファイルの実体としてリストアされます。 +※11)**オブジェクト・ストレージ** にアクセス(書込み・読込みの何れも含みます。)するファイルサイズの総容量に等しい空き容量を持つストレージ領域が必要です。このためフルバックアップは、バックアップ対象のファイル共有ストレージの総使用量以上の空き容量がキャッシュ用ストレージに必要になります。 **OCIFS** のキャッシュに関する詳細は、 **OCI** 公式ドキュメントの **[ここ](https://docs.oracle.com/ja-jp/iaas/oracle-linux/ocifs/index.htm#ocifs-cache-options)** を参照してください。 +※12)転送完了後に **オブジェクト・ストレージ** が計算するチェックサムを使用して、正しくファイル転送が完了したかどうかを確認する機能です。 +※13)バックアップ格納ストレージに **オブジェクト・ストレージ** を使用しないため、該当しません。 -この結果から各バックアップツールを比較すると、以下のように考察することが出来ます。 +この結果から各バックアップ環境を比較すると、以下のように考察することが出来ます。 -1. 評価項目 **10** から、 **OCIFS** は容量単価の安価な **オブジェクト・ストレージ** をバックエンドストレージに利用するメリットを享受できない。 -2. 評価項目 **1** 、 **2** 、 **3** 、 **4** 、及び **6** から、POSIXファイルシステムのメタデータ保持に関する **OCIFS** の優位性は、バックアップサーバの再起動等で発生する再マウントによりキャシュ領域に保持しているメタデータ情報が消失するため、現実的な運用ではこれを享受することが出来ない。 -3. 評価項目 **4** から、 **Rclone** はファイル作成・更新日時を保持できる点で優位性がある。 -4. 評価項目 **11** から、 **Rclone** はバックアップの信頼性で優位性がある。 +1. 評価項目 **1** ~ **4** のメタデータ保持がバックアップ要件となる場合は、選択肢がバックアップ環境 **No. 4** に限定される。 +2. 評価項目 **8** から、バックアップ環境 **No. 2** は容量単価の安価な **オブジェクト・ストレージ** をバックエンドストレージに利用するメリットを享受できない。 +3. 評価項目 **1** ~ **4** から、POSIXファイルシステムのメタデータ保持に関するバックアップ環境 **No. 2** の優位性は、バックアップサーバの再起動等で発生する再マウントによりキャシュ領域に保持しているメタデータ情報が消失するため、現実的な運用ではこれを享受することが出来ない。 +4. 評価項目 **3** から、バックアップ環境 **No. 3** は他の **オブジェクト・ストレージ** を使用するバックアップ環境に対して優位性がある。 +5. 評価項目 **9** から、バックアップ環境 **No. 3** はバックアップの信頼性で優位性がある。 -以上より、考察 **1** でOCI CLIRcloneが現実的な選択肢となり、考察 **3** と **4** でRcloneに優位性があることになります。 +以上より、考察 **2** で OCIFSが選択肢から脱落 し、考察 **1** 、 **4** 、及び **5** で残りの選択肢からどのバックアップ環境を選定するかを判断することになります。 *** # 3. バックアップ・リストア性能 -本章は、 **[1. バックアップツール検証時前提条件](#1-バックアップツール検証時前提条件)** で示した条件に於ける各バックアップツールのバックアップ時とリストア時の性能を、以下の観点で検証します。 +本章は、 **[1. バックアップ環境前提条件](#1-バックアップ環境前提条件)** で示した条件に於ける各バックアップ環境のバックアップ時とリストア時の性能を、以下の観点で検証します。 - スループット サイズの大きなファイルをバックアップ・リストアする際の性能指標として、以下の条件でスループット(単位時間当たりの転送データ量 **MiB/s** )を計測します。 -この際、ファイルシステムキャッシュを無効化した後に計測します。(※11) +この際、ファイルシステムキャッシュをフラッシュした後に計測します。(※14) - テストファイルサイズ: 10 GiB - - テストファイル作成方法: /dev/urandomを元にddで作成(※12) + - テストファイル作成方法: /dev/urandomを元にddで作成(※15) - テストファイル数: 1 - メタデータ性能 -サイズの小さなファイルをバックアップ・リストアする際の性能指標として、以下の条件でメタデータ性能(単位時間当たりの作成ファイル数 **files/s** )を計測します。 +サイズの小さなファイルをバックアップ・リストアする際の性能指標として、以下の条件でメタデータ性能(単位時間当たりの作成ファイル数 **files/s** )を計測します。 +この際、ファイルシステムキャッシュをフラッシュした後に計測します。(※14) - テストファイルサイズ: 0 B - ディレクトリ数: 1,000 - ディレクトリ当たりファイル数: 1,000 - - 総ファイル数: 1,000,000(※13) + - 総ファイル数: 1,000,000(※16) -※11)以下のコマンドをバックアップサーバのopcユーザで実行します。 +※14)以下のコマンドをバックアップサーバのopcユーザで実行します。 ```sh $ sync && echo 3 | sudo tee /proc/sys/vm/drop_caches ``` -※12)以下のコマンドでテストファイルを作成します。 +※15)以下のコマンドでテストファイルを作成します。 ```sh $ dd if=/dev/urandom of=./10G.bin bs=1048576 count=$((1024*10)) ``` -※13)以下のコマンドでテストファイルを作成します。 +※16)以下のコマンドでテストファイルを作成します。 ```sh $ count=1000; for i in `seq -w 1 $count`; do echo $i; mkdir $i; cd $i;for j in `seq -w 1 $count`; do fname=$j".out"; touch $fname; done; cd ..; done ``` 以下の表は、以上の条件で計測したバックアップ・リストア性能です。(各データは3回計測した平均値です。) -なおこの性能値は、状況により変化するため、参考値としてご利用ください。 +なお、バックアップ格納ストレージに **オブジェクト・ストレージ** を使用するバックアップ環境の性能値は、計測時点の状況により大きく変動することがあるため、参考値としてご利用ください。 + +| No. | 評価項目 | バックアップ環境
No. 1 | バックアップ環境
No. 2 | バックアップ環境
No. 3 |バックアップ環境
No. 4 | +| :-: | :---------------: | -----------------: | -----------------: | -----------------: |-----------------: | +| 1 | バックアップ
スループット | 665 MiB/s
(※17) | 46 MiB/s | 301 MiB/s
(※17) |280 MiB/s| +| 2 | バックアップ
メタデータ性能 | 238 files/s | 3 files/s
(※18) | 2,857 files/s |7,082 files/s +| 3 | リストア
スループット | 417 MiB/s
(※17) | 4 MiB/s | 217 MiB/s
(※17) |292 MiB/s| +| 4 | リストア
メタデータ性能 | 128 files/s | 259 files/s | 1,927 files/s |236 files/s| + +※17)バックアップ環境 **No. 1** とバックアップ環境 **No. 3** のスループットの差は、ファイル転送前後のチェックサムによる転送結果確認の有無が影響していると考えられ、 **Rclone** はチェックサム確認を実施するのに対し、 **OCI CLI** はチェックサム確認の機能を有していません。 +※18)性能が悪く途中で検証を打ち切ったため、途中経過から算出した概略値です。 + +この結果から各バックアップ環境を比較すると、以下のように考察することが出来ます。 + +1. 評価項目 **2** から、バックアップ環境 **No. 2** の採用は現実的ではない。 +2. 評価項目 **1** と **3** から、バックアップ環境 **No. 1** はバックアップ環境 **No. 3** や **No. 4** に対して約2倍のスループットを示し、サイズの大きなファイルが存在するファイル共有ストレージのバックアップに於いて有利である。(この理由は、※17)を参照してください。) +3. 評価項目 **2** から、バックアップ環境 **No. 4** はバックアップ時のメタデー性能が他と比較して圧倒的に高く、サイズの小さなファイルが多数存在するファイル共有ストレージのバックアップで有利である。 +4. 評価項目 **2** と **4** から、バックアップ環境 **No. 3** は同じくバックアップ格納ストレージに **オブジェクト・ストレージ** を使用するバックアップ環境 **No. 1** に対してメタデータ性能が桁違いに高く、サイズの小さなファイルが多数存在するファイル共有ストレージのバックアップ・リストアで有利である。 + +以上より、考察 **1** で バックアップ環境 No. 2 が選択肢から脱落 し、考察 **2** ~ **4** で 残りの選択肢からどのバックアップ環境を選定するかはバックアップ対象のファイルサイズ分布で判断する のが良いと考えることが出来ます。 + +*** +# 4. ランニングコスト + +本章は、本テクニカルTipsで取り上げるバックアップ環境のランニングコストを、バックアップ格納ストレージにフォーカスして検証します。 + +ここでバックアップ環境 **No. 2** は、 **[2. バックアップ・リストア時の制約事項](#2-バックアップリストア時の制約事項)** の考察 **2.** と **[3. バックアップ・リストア性能](#3-バックアップリストア性能)** の考察 **1.** から、本章の検証の対象から除外します。 +また、バックアップ環境 **No. 1** とバックアップ環境 **No. 3** は、そのランニングコストが基本的に同額となるためこれらを纏めて取り扱います。 + +以上より、以降ではバックアップ格納ストレージに **オブジェクト・ストレージ** を使用するバックアップ環境 **No. 1** / **No. 3** と、 **BVLC** を使用するバックアップ環境 **No. 4** のランニングコストを比較します。 + +ここで **オブジェクト・ストレージ** (**標準**)案と **BVLC** 案のランニングコストは、以下の条件を仮定します。 + +- ファイル共有ストレージ総容量 : 100 TB(※19) +- ファイル共有ストレージ使用率 : 70 % -| No. | 評価項目 | OCI CLI | OCIFS | Rclone | -| :-: | :---------------: | -----------------: | -----------------: | -----------------: | -| 1 | バックアップ
スループット | 665 MiB/s
(※14) | 46 MiB/s | 301 MiB/s
(※14) | -| 2 | バックアップ
メタデータ性能 | 238 files/s | 3 files/s
(※15) | 2,857 files/s | -| 3 | リストア
スループット | 417 MiB/s
(※14) | 4 MiB/s | 217 MiB/s
(※14) | -| 4 | リストア
メタデータ性能 | 128 files/s | 259 files/s | 1,927 files/s | +※19)この仮定から **BVLC** の総容量を100 TBと仮定します。 -※14)**OCI CLI** と **Rclone** のスループットの差は、ファイル転送前後のチェックサムによる結果確認の有無が影響していると考えられ、 **Rclone** はチェックサム確認を実施するのに対し、 **OCI CLI** はチェックサム確認の機能を有していません。 -※15)性能が悪く途中で検証を打ち切ったため、途中経過から算出した概略値です。 +| | 月額定価
(2024年11月時点) | +| :------------------------: | -------------------: | +| **オブジェクト・ストレージ** (**標準**)案 | **276,675** 円 | +| **BVLC** 案 | **395,250** 円 | -この結果から各バックアップツールを比較すると、以下のように考察することが出来ます。 +この結果から各案を比較すると、以下のように考察することが出来ます。 -1. 評価項目 **2** から、 **OCIFS** をバックアップツールとして利用することは現実的ではない。 -2. 評価項目 **1** と **3** から、 **OCI CLI** は **Rclone** に対して約2倍のスループットを示し、サイズの大きなファイルが存在するファイル共有ストレージのバックアップに於いて有利である。(この理由は、※14)を参照してください。) -3. 評価項目 **2** と **4** から、 **Rclone** は **OCI CLI** に対してメタデータ性能が桁違いに高く、ファイル数が多いファイル共有ストレージのバックアップで圧倒的に有利である。 +1. **オブジェクト・ストレージ** (**標準**)案は、バックアップ対象ファイルの総容量に応じた従量課金のため、ファイル共有ストレージ総容量分が固定的に課金される **BVLC** 案に対して有利である。 +2. ファイル共有ストレージ使用率が上昇すると両者の価格差は縮まり、下降すると価格差は広がる。 +3. **オブジェクト・ストレージ** の階層に **頻度の低いアクセス** や **アーカイブ** を使用することで、 **オブジェクト・ストレージ** (**標準**)案よりランニングコストを低減できる可能性がある。(※20) -以上より、考察 **1** で OCI CLIRcloneが現実的な選択肢となり、考察 **2** と **3** でOCI CLIRcloneのどちらを選択するかはバックアップ対象のファイルサイズ分布で判断するのが良いと考えることが出来ます。 +※20)**頻度の低いアクセス** や **アーカイブ** がコスト計算上の最低保持期間を定義しているため、バックアップ対象ファイルの更新パターン・頻度により、ランニングコストの低減額は大きく異なり、コストアップとなる場合もあります。関連する **OCI** 公式ドキュメントは、 **[ここ](https://docs.public.oneportal.content.oci.oraclecloud.com/ja-jp/iaas/Content/Object/Concepts/understandingstoragetiers.htm)** を参照してください。 \ No newline at end of file diff --git a/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage.md b/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage.md index 09a7fddcfb..2d33060bfd 100644 --- a/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage.md +++ b/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage.md @@ -76,8 +76,8 @@ High Performanceタイプの **マウント・ターゲット** 詳細は、 **[ NFSサーバのインスタンスは、 **[BM.Optimized3.36](https://docs.oracle.com/ja-jp/iaas/Content/Compute/References/computeshapes.htm#bm-hpc-optimized)** を使用します。 この理由は、このシェイプが50 GbpsのTCP/IP接続用ポートを2個搭載し、それぞれをiSCSI接続の **ブロック・ボリューム** アクセス用途とNFSクライアントへのNFSサービス用途に割当ててこれらを同時に使用することで、NFSサービスに50 Gbpsの帯域をフルに使用することが可能となるためです。 -またストレージに使用する **ブロック・ボリューム** は、ボリューム・パフォーマンスにBalancedを使用します。 -このBalancedの **ブロック・ボリューム** は、ボリューム・サイズの増加とともにその性能が向上し1 TBで上限に達するため、1 TB以上のボリュームを基本単位として複数ボリュームをLinuxの論理ボリューム機能で各ボリュームにストライピングを掛けつつ1ファイルシステムに構成し、コストパフォーマンスを最大化します。 +またストレージに使用する **ブロック・ボリューム** は、 **パフォーマンス・レベル** を **バランス** で作成します。 +**パフォーマンス・レベル** が **バランス** の **ブロック・ボリューム** は、ボリューム・サイズの増加とともにその性能が向上し1 TBで上限に達するため、1 TB以上のボリュームを基本単位として複数ボリュームをLinuxの論理ボリューム機能で各ボリュームにストライピングを掛けつつ1ファイルシステムに構成し、コストパフォーマンスを最大化します。 この際、NFSファイルシステム性能としては15ボリューム程度で性能が頭打ちとなることを考慮し、ボリューム15個をストライプ数15でファイルシステムを作成します。 ![システム構成図](architecture_diagram.png) diff --git a/tutorials/_hpc/tech-knowhow/howto-connect-clusternetwork.md b/tutorials/_hpc/tech-knowhow/howto-connect-clusternetwork.md index 37bab285bc..4dc8588743 100644 --- a/tutorials/_hpc/tech-knowhow/howto-connect-clusternetwork.md +++ b/tutorials/_hpc/tech-knowhow/howto-connect-clusternetwork.md @@ -77,6 +77,9 @@ table, th, td { この際、 **クラスタ・ネットワーク** 用のネットワークインターフェースは、 **10.224.0.0/12** のIPアドレス範囲が割当てられます。 このIPアドレス範囲は、変更することが可能です。 +**OCA** プラグインは、その動作条件として **Oracle Services Network** にアクセス出来る必要があるため、インスタンスが接続するサブネットの **ルート表** と **セキュリティ・リスト** にこれを実現するための設定が必要です。 +関連する **OCI** 公式ドキュメントは、 **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/Network/Tasks/servicegateway.htm)** を参照してください。 + 以降では、以下のステップで手順を解説します。 - **OCA** プラグイン対応 **[クラスタネットワーキングイメージ](/ocitutorials/hpc/#5-13-クラスタネットワーキングイメージ)** の特定