From 9049da77d2a10f394544e16f5cf0ca2be399d12c Mon Sep 17 00:00:00 2001 From: tmiyashi_jp Date: Tue, 10 Sep 2024 16:12:05 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=81=E3=83=A5=E3=83=BC=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=82=A2=E3=83=AB=EF=BC=9AOCI=20HPC=E3=83=81=E3=83=A5=E3=83=BC?= =?UTF-8?q?=E3=83=88=E3=83=AA=E3=82=A2=E3=83=AB=E9=9B=86=E3=80=81OCI=20HPC?= =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=ABTips=E9=9B=86=20?= =?UTF-8?q?=E3=82=AB=E3=83=86=E3=82=B4=E3=83=AA=EF=BC=9AOCI=20HPC=E3=83=9D?= =?UTF-8?q?=E3=83=BC=E3=82=BF=E3=83=AB=20=E6=9B=B4=E6=96=B0=E5=86=85?= =?UTF-8?q?=E5=AE=B9=EF=BC=9A"=E7=9F=AD=E6=9C=9F=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E3=83=87=E3=83=BC=E3=82=BF=E7=94=A8=E9=AB=98=E9=80=9F=E3=83=95?= =?UTF-8?q?=E3=82=A1=E3=82=A4=E3=83=AB=E5=85=B1=E6=9C=89=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=83=AC=E3=83=BC=E3=82=B8=E3=82=92=E6=A7=8B=E7=AF=89=E3=81=99?= =?UTF-8?q?=E3=82=8B"=E6=96=B0=E8=A6=8F=E8=BF=BD=E5=8A=A0=E3=80=81"?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=83=BB=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=83=AC=E3=83=BC=E3=82=B8=E3=81=A7=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E5=85=B1=E6=9C=89=E3=82=B9=E3=83=88=E3=83=AC=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=82=92=E6=A7=8B=E7=AF=89=E3=81=99=E3=82=8B"?= =?UTF-8?q?=E6=96=B0=E8=A6=8F=E8=BF=BD=E5=8A=A0=E3=80=81"HPC/GPU=E3=82=AF?= =?UTF-8?q?=E3=83=A9=E3=82=B9=E3=82=BF=E5=90=91=E3=81=91=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E5=85=B1=E6=9C=89=E3=82=B9=E3=83=88=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=82=B8=E3=81=AE=E6=9C=80=E9=81=A9=E3=81=AA=E6=A7=8B?= =?UTF-8?q?=E7=AF=89=E6=89=8B=E6=B3=95"=E3=81=ABDenceIO=20NFS=E3=82=B5?= =?UTF-8?q?=E3=83=BC=E3=83=90=E8=BF=BD=E5=8A=A0=E3=80=81=E3=81=93=E3=82=8C?= =?UTF-8?q?=E3=82=89=E3=81=AB=E4=BC=B4=E3=81=86=E4=BF=AE=E6=AD=A3=E5=8F=8A?= =?UTF-8?q?=E3=81=B3=E8=AA=A4=E8=A8=98=E8=A8=82=E6=AD=A3=E3=83=BB=E8=BB=BD?= =?UTF-8?q?=E5=BE=AE=E3=81=AA=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _pages/hpc.md | 25 +- tutorials/_hpc/benchmark/openfoam-tuning.md | 57 ++-- tutorials/_hpc/spinup-nfs-server-fss.md | 119 ++++++++ .../architecture_diagram.png | Bin 0 -> 26609 bytes tutorials/_hpc/spinup-nfs-server-nvme.md | 265 ++++++++++++++++++ .../architecture_diagram.png | Bin 0 -> 30440 bytes tutorials/_hpc/spinup-nfs-server.md | 13 +- .../architecture_diagram.png | Bin 32110 -> 33867 bytes .../howto-configure-sharedstorage.md | 187 +++++++++--- .../architecture_diagram.png | Bin 29544 -> 36465 bytes .../architecture_diagram_nvme.png | Bin 0 -> 30456 bytes .../raid_configuration.png | Bin 0 -> 17007 bytes .../_hpc/tech-knowhow/install-openfoam.md | 2 +- .../_hpc/tech-knowhow/site-to-site-vpn.md | 6 +- .../site-to-site-vpn/connection_type.png | Bin 36236 -> 36259 bytes 15 files changed, 581 insertions(+), 93 deletions(-) create mode 100644 tutorials/_hpc/spinup-nfs-server-fss.md create mode 100644 tutorials/_hpc/spinup-nfs-server-fss/architecture_diagram.png create mode 100644 tutorials/_hpc/spinup-nfs-server-nvme.md create mode 100644 tutorials/_hpc/spinup-nfs-server-nvme/architecture_diagram.png create mode 100644 tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage/architecture_diagram_nvme.png create mode 100644 tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage/raid_configuration.png diff --git a/_pages/hpc.md b/_pages/hpc.md index 59e37d820e..7047b7dacb 100644 --- a/_pages/hpc.md +++ b/_pages/hpc.md @@ -142,9 +142,16 @@ HPC/機械学習ワークロードを実行する際に有益なテクニカル ## 1-3. ファイル共有ストレージ -本章は、HPCクラスタやGPUクラスタから利用するファイル共有ストレージを構築するチュートリアルを集めています。 +本章は、HPC/GPUクラスタから利用するファイル共有ストレージを構築するチュートリアルを集めています。自身の要件に合わせてチュートリアルを選んだら、そのチュートリアル名をクリックします。 -現時点は、 **[マーケットプレース](#5-5-マーケットプレイス)** から無料で利用可能な **[スタック](#5-3-スタック)** を利用して **ブロック・ボリューム** とベアメタルインスタンスからNFSでファイル共有ストレージを自動構築するチュートリアル **[ブロック・ボリュームでNFSサーバを構築する](/ocitutorials/hpc/spinup-nfs-server/)** を利用することが可能です。 +| チュートリアル名 | 保存対象データ | **IOR** ターゲット性能 | サービス可用性 | データ可用性 |構築の
難易度 | 最大容量|ストレージ
に使用する
OCIサービス | ヘッドノード
に使用する
OCIサービス | ファイル共有
プロトコル | +| :-------------------------------------------------------------------------: | :-----: | :------------------------------: | :--------------: | :---------------------: | :-------------------: |:-------------------: |:------------------: | :---------: |:---------: | +| **[ファイル・ストレージ
でファイル共有ストレージ
を構築する](/ocitutorials/hpc/spinup-nfs-server-fss/)** | 長期保存データ | 1 GiB/s(Read)
0.8 GiB/s(Write)
(※7) | HA構成
のヘッドノード | **ファイル・システム** 内
データ複製 |低 |8EB | **ファイル・システム** | **マウント・ターゲット** | NFS v3 | +| **[ブロック・ボリューム
でNFSサーバを構築する](/ocitutorials/hpc/spinup-nfs-server/)** | 中期保存データ | 5 GiB/s(Read)
4 GiB/s(Write) | ヘッドノード障害
でサービス停止 | **ブロック・ボリューム** 内
データ複製 |高|1PB| **ブロック・ボリューム** | **BM.Optimized3.36** | NFS v3/v4 | +| **[短期保存データ用
高速ファイル共有ストレージ
を構築する](/ocitutorials/hpc/spinup-nfs-server-nvme/)** | 短期保存データ | 10 GiB/s(Read)
8 GiB/s(Write) | ヘッドノード障害
でサービス停止 |ヘッドノードの
NVMe SSD
ローカルディスク
のRAID10 |中|38TB| ヘッドノードの
NVMe SSD
ローカルディスク |**BM.DenseIO.E5.128** | NFS v3/v4 | + +※7)以下で公開されているIOサイズ1 MiBでのスループットを記載しており、 **IOR** で計測した性能ではありません。 +**[https://docs.oracle.com/en-us/iaas/Content/Resources/Assets/whitepapers/file-storage-performance-guide.pdf](https://docs.oracle.com/en-us/iaas/Content/Resources/Assets/whitepapers/file-storage-performance-guide.pdf)** ## 1-4. チュートリアルを組み合わせた実践的HPCシステム構築 @@ -157,13 +164,13 @@ HPC/機械学習ワークロードを実行する際に有益なテクニカル 下表は、各チュートリアルで構築するシステム仕様を示します。 -| No. | 構築手法 | クラスタ管理機能 | スタティック/オンデマンド | コンテナランタイム(※8) | +| No. | 構築手法 | クラスタ管理機能 | スタティック/オンデマンド | コンテナランタイム(※9) | | :-: | :--: | :------: | :--------------------: | :-----------: | -| 1 | 手動 | 無し(※7) | スタティック | **Docker CE** | +| 1 | 手動 | 無し(※8) | スタティック | **Docker CE** | | 2 | 自動 | 有り | スタティック
or
オンデマンド | **Enroot** | -※7)ファイル共有ストレージは、 **ブロック・ボリューム** NFSサーバが提供します。 -※8)GPUクラスタが対象です。 +※8)ファイル共有ストレージは、 **ブロック・ボリューム** NFSサーバが提供します。 +※9)GPUクラスタが対象です。 *** # 2. OCI HPCパフォーマンス関連情報 @@ -316,10 +323,10 @@ HPC/機械学習ワークロードを実行する際に有益なテクニカル 高速スクラッチ領域として利用することを想定したNVMe SSDローカルディスクを内蔵するHPCクラスタ向けベアメタルシェイプ **[BM.Optimized3.36](https://docs.oracle.com/ja-jp/iaas/Content/Compute/References/computeshapes.htm#bm-hpc-optimized)** やGPUクラスタ向けベアメタルシェイプ **[BM.GPU4.8/BM.GPU.A100-v2.8/BM.GPU.H100.8](https://docs.oracle.com/ja-jp/iaas/Content/Compute/References/computeshapes.htm#bm-gpu)** は、NVMe SSDローカルディスクをOSのファイルシステムとして利用するための設定をユーザ自身が行う必要があります。 本テクニカルTipsは、このファイルシステム作成方法を解説します。 -- **[コストパフォーマンスの良いファイル共有ストレージ構築方法](/ocitutorials/hpc/tech-knowhow/howto-configure-sharedstorage/)** +- **[HPC/GPUクラスタ向けファイル共有ストレージの最適な構築手法](/ocitutorials/hpc/tech-knowhow/howto-configure-sharedstorage/)** - HPC/GPUクラスタを運用する際必須となるファイル共有ストレージは、NFSでこれを構築することが一般的ですが、この際の選択肢として、NFSのマネージドサービスである **ファイル・ストレージ** を使用する方法と、 **ブロック・ボリューム** とベアメタルインスタンスを組み合わせたNFSサーバを構築する方法があります。 - 本テクニカルTipsは、コストパフォーマンス等を考慮してどちらの方法を選択すればよいか、 **ブロック・ボリューム** とベアメタルインスタンスを組み合わせたNFSサーバを構築する場合どのように **ブロック・ボリューム** とベアメタルインスタンスを構成すればよいか、解説します。 + HPC/GPUクラスタを運用する際必須となるファイル共有ストレージは、NFSでこれを構築することが一般的ですが、この際の選択肢は、NFSのマネージドサービスである **ファイル・ストレージ** を使用する方法と、高帯域のネットワークポートを持つベア・メタル・インスタンスとストレージサービスを組合せてNFSサーバを自身で構築する方法があります。 + 本テクニカルTipsは、コストパフォーマンス、可用性、構築・運用のしやすさ等を考慮し、最適なファイル共有ストレージ構築手法を解説します。 - **[ブロック・ボリュームを使用するNFSサーバのインスタンス障害からの復旧方法](/ocitutorials/hpc/tech-knowhow/bv-sharedstorage-recovery/)** diff --git a/tutorials/_hpc/benchmark/openfoam-tuning.md b/tutorials/_hpc/benchmark/openfoam-tuning.md index 7adf5d709b..dea21d30ec 100644 --- a/tutorials/_hpc/benchmark/openfoam-tuning.md +++ b/tutorials/_hpc/benchmark/openfoam-tuning.md @@ -15,7 +15,7 @@ header: 1. メモリ帯域の有効利用を考慮した最適なノード内並列実行方法 2. スケーラビリティーを考慮した最適なノード間並列実行方法 -3. NVMe SSDローカルディスクをストレージ領域に活用するノード間並列実行方法 +3. NVMe SSDローカルディスクをストレージ領域に活用する方法 本パフォーマンス関連Tipsの性能計測は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[OpenFOAMインストール・利用方法](/ocitutorials/hpc/tech-knowhow/install-openfoam/)** に従って構築された **OpenFOAM** を使用し、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[Slurmによるリソース管理・ジョブ管理システム構築方法](/ocitutorials/hpc/tech-knowhow/setup-slurm-cluster/)** に従って構築された **[Slurm](https://slurm.schedmd.com/)** 環境でバッチジョブとして計測しています。 @@ -35,15 +35,14 @@ header: ![プロセスバインディング](process_binding.png) -本Tipsは、以下の環境・条件で **OpenFOAM** のCFD解析フローの総所要時間(所要コスト)を計測しています。 +本Tipsは、以下の環境・条件で **OpenFOAM** のCFD解析フローの総所要時間(計算ノードの総所要コスト)を計測しています。 - シェイプ : **BM.Optimized3.36** - BIOS設定 : **SMT** 無効化、 **NPS1** or **NPS2** (※1) - OS : **Oracle Linux** 8.9ベースのHPC **[クラスタネットワーキングイメージ](/ocitutorials/hpc/#5-13-クラスタネットワーキングイメージ)** (※2) - **OpenFOAM** : v2312 - MPI : **[OpenMPI](https://www.open-mpi.org/)** 5.0.3 -- 解析対象モデル : **OpenFOAM HPC Benchmark Suite** の **HPC_Motorbike** の **Small** モデル -( **hpc/incompressible/simpleFoam/HPC_motorbike/Small/v1912/HPC_motorbike/Small/v1912** ) +- 解析対象モデル : **[OpenFOAM HPC Benchmark Suite](https://develop.openfoam.com/committees/hpc)** の **[HPC_Motorbike](https://develop.openfoam.com/committees/hpc/-/tree/develop/incompressible/simpleFoam/HPC_motorbike)** の **[Small](https://develop.openfoam.com/committees/hpc/-/tree/develop/incompressible/simpleFoam/HPC_motorbike/Small/v1912)** モデル - 計算結果の出力頻度( **writeInterval** ) : 1,000タイムステップ(デフォルト) ※1)NPSの設定方法は、 **[OCI HPCパフォーマンス関連情報](/ocitutorials/hpc/#2-oci-hpcパフォーマンス関連情報)** の **[パフォーマンスに関連するベアメタルインスタンスのBIOS設定方法](/ocitutorials/hpc/benchmark/bios-setting/)** を参照してください。 @@ -51,8 +50,8 @@ header: この結果、以下のことが判明しています。 -- **NPS2** が **NPS1** に対して **1.8 %** 総所要時間が短い(MPIプロセス数36の場合) -- MPIプロセス数36の場合(計算ノードに搭載する全てのコアを使用する)が総所要時間が最も短い +- **NPS2** が **NPS1** に対して **1.8 %** 総所要時間(計算ノードの総所要コスト)が短い(安価) +- MPIプロセス数36の場合(計算ノードに搭載する全てのコアを使用する)が総所要時間(計算ノードの総所要コスト)が最も短い(安価) ## 1-1. 実行方法 @@ -60,7 +59,7 @@ header: この方法は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[OpenFOAMインストール・利用方法](/ocitutorials/hpc/tech-knowhow/install-openfoam/)** の **[4. CFD解析フロー実行](/ocitutorials/hpc/tech-knowhow/install-openfoam//#4-cfd解析フロー実行)** を参照し、ここで解説しているチュートリアル付属のオートバイ走行時乱流シミュレーションモデルのバッチ実行の方法を参考に、 **OpenFOAM HPC Benchmark Suite** の **HPC_Motorbike** の **Small** モデルにこれを適用します。 -この際 **NPS2** の場合は、 **slurm.conf** ファイルの **NodeName=DEFAULT** で始まる行を以下のように修正します。 +この際 **NPS2** の場合は、 **Slurm** の設定ファイル **slurm.conf** の **NodeName=DEFAULT** で始まる行を以下のように修正します。 ```sh NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerCore=1 RealMemory=500000 TmpDisk=10000 State=UNKNOWN @@ -85,15 +84,15 @@ NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerC ## 1-2. 実行結果とその考察 **NPS** とMPIプロセス数をパラメータとして実行した結果を以下に示します。 -なお各計測値は、5回の計測結果の平均値です。 +なお各値は、5回の計測値の平均値です。 ![実行結果](graph_02.png) -この結果から、 **NPS** に着目すると以下のことがわかります。 +この結果から、 **NPS** に着目すると、以下のことがわかります。 - 全てのMPIプロセス数で **NPS2** が **NPS1** より高速 - MPIプロセス数が増えるに従い **NPS2** と **NPS1** の差は縮小する -- 最も性能の良いMPIプロセス数36の場合で **NPS2** は **NPS1** より総所要時間が **1.8 %** 短い +- 最も性能の良いMPIプロセス数36の場合で **NPS2** は **NPS1** より総所要時間(計算ノードの総所要コスト)が **1.8 %** 短い(安価) 以上より、本テストケースでは **NPS2** が有利であると結論付けることが出来るため、次に **NPS2** のMPIプロセス数によるスケーラビリティーに着目します。 @@ -109,7 +108,7 @@ NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerC 以上より、本テストケースをノード内並列実行する際コストパフォーマンスを最大化する実行方法は、 **NPS2** と **MPIプロセス数36** の組み合わせである、と判断できます。 *** -# 2. ノード間並列スケーラビリティーを考慮した最適な実行方法 +# 2. スケーラビリティーを考慮した最適なノード間並列実行方法 ## 2-0. 概要 @@ -121,7 +120,7 @@ NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerC ![プロセスバインディング](process_binding2.png) -本Tipsは、以下の環境・条件で **OpenFOAM** のCFD解析フローの総所要時間(所要コスト)を計測しています。 +本Tipsは、以下の環境・条件で **OpenFOAM** のCFD解析フローの総所要時間(計算ノードの総所要コスト)を計測しています。 - シェイプ : **BM.Optimized3.36** - BIOS設定 : **SMT** 無効化、 **NPS2** (※3) @@ -129,8 +128,7 @@ NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerC - OS : **Oracle Linux** 8.9ベースのHPC **[クラスタネットワーキングイメージ](/ocitutorials/hpc/#5-13-クラスタネットワーキングイメージ)** (※4) - **OpenFOAM** : v2312 - MPI : **[OpenMPI](https://www.open-mpi.org/)** 5.0.3 -- 解析対象モデル : **OpenFOAM HPC Benchmark Suite** の **HPC_Motorbike** の **Small** モデル -( **hpc/incompressible/simpleFoam/HPC_motorbike/Small/v1912/HPC_motorbike/Small/v1912** ) +- 解析対象モデル : **[OpenFOAM HPC Benchmark Suite](https://develop.openfoam.com/committees/hpc)** の **[HPC_Motorbike](https://develop.openfoam.com/committees/hpc/-/tree/develop/incompressible/simpleFoam/HPC_motorbike)** の **[Small](https://develop.openfoam.com/committees/hpc/-/tree/develop/incompressible/simpleFoam/HPC_motorbike/Small/v1912)** モデル - 計算結果の出力頻度( **writeInterval** ) : 1,000タイムステップ(デフォルト) ※3)NPSの設定方法は、 **[OCI HPCパフォーマンス関連情報](/ocitutorials/hpc/#2-oci-hpcパフォーマンス関連情報)** の **[パフォーマンスに関連するベアメタルインスタンスのBIOS設定方法](/ocitutorials/hpc/benchmark/bios-setting/)** を参照してください。 @@ -146,7 +144,7 @@ NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerC この方法は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[OpenFOAMインストール・利用方法](/ocitutorials/hpc/tech-knowhow/install-openfoam/)** の **[4. CFD解析フロー実行](/ocitutorials/hpc/tech-knowhow/install-openfoam//#4-cfd解析フロー実行)** を参照し、ここで解説しているチュートリアル付属のオートバイ走行時乱流シミュレーションモデルのバッチ実行の方法を参考に、 **OpenFOAM HPC Benchmark Suite** の **HPC_Motorbike** の **Small** モデルにこれを適用します。 -この際、 **slurm.conf** ファイルの **NodeName=DEFAULT** で始まる行を以下のように修正します。 +この際、 **Slurm** の設定ファイル **slurm.conf** の **NodeName=DEFAULT** で始まる行を以下のように修正します。 ```sh NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerCore=1 RealMemory=500000 TmpDisk=10000 State=UNKNOWN @@ -171,15 +169,15 @@ NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerC ## 2-2. 実行結果とその考察 ノード当たりのMPIプロセス数とノード数をパラメータとして実行した結果を以下に示します。 -なお各計測値は、5回の計測結果の平均値です。 +なお各値は、5回の計測値の平均値です。 ![実行結果](graph_04.png) -この結果から、ノード当たりのMPIプロセス数に着目すると以下のことがわかります。 +この結果から、ノード当たりのMPIプロセス数に着目すると、以下のことがわかります。 - 4ノードまではMPIプロセス数36が高速で8ノードはMPIプロセス数32が高速 - ノード数が増えるに従いMPIプロセス数36と32の差が縮小する傾向を示し8ノードで逆転する -- 最も性能の良いノード数8の場合でMPIプロセス数32が36より総所要時間が **1.3 %** 短い +- 最も性能の良いノード数8の場合でMPIプロセス数32が36より総所要時間(計算ノードの総所要コスト)が **1.3 %** 短い(安価) 以上より、8ノードでの差が1%程度であることから、本テストケースの8ノードまでの実行であれば総合的にノード当たりのMPIプロセス数36が有利であると結論付け、次にノード当たりのMPIプロセス数36のノード数によるスケーラビリティーに着目します。 @@ -227,16 +225,16 @@ NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerC また **ステップ 7.** の同期は、各MPIプロセスが解析結果を格納する **processorxx** ディレクトリとその配下のファイルを除外し、ポスト処理に必要なファイルだけを同期することで、所要時間の短縮を図ります。 -共有ストレージを使用する実行方法は、 **ステップ 1.** ・ **ステップ 3.** ・ **ステップ 6.** ・ **ステップ 7.** に時間を消費しませんが、NVMe SSDローカルディスクを使用する実行方法が共有ストレージを使用する実行方法に対して **ステップ 2.** ・ **ステップ 4.** ・ **ステップ 5.** で所要時間を短縮することが出来るため、トータルの実行時間はNVMe SSDローカルディスクを使用する実行方法が短くなります。 +共有ストレージを使用する実行方法は、 **ステップ 1.** ・ **ステップ 3.** ・ **ステップ 6.** ・ **ステップ 7.** に時間を消費しませんが、NVMe SSDローカルディスクを使用する実行方法が共有ストレージを使用する実行方法に対して **ステップ 2.** ・ **ステップ 4.** ・ **ステップ 5.** で所要時間を短縮するため、トータルの所要時間はNVMe SSDローカルディスクを使用する実行方法が短くなります。 -また、 **[1. メモリ帯域の有効利用を考慮した最適なノード内並列実行方法](#1-メモリ帯域の有効利用を考慮した最適なノード内並列実行方法)** と **[2. ノード間並列スケーラビリティーを考慮した最適な実行方法](#2-ノード間並列スケーラビリティーを考慮した最適な実行方法)** の結果と最もストレージ領域に負荷のかかる条件を選定するという観点から、以下の条件で計測します。 +また、 **[1. メモリ帯域の有効利用を考慮した最適なノード内並列実行方法](#1-メモリ帯域の有効利用を考慮した最適なノード内並列実行方法)** と **[2. スケーラビリティーを考慮した最適なノード間並列実行方法](#2-スケーラビリティーを考慮した最適なノード間並列実行方法)** の結果と、最もストレージ領域に負荷のかかる条件を選定するという観点から、以下の条件で計測します。 - **NPS** : **NPS2** - ノード当たりのMPIプロセス数 : 36 - MPIプロセスのノード内バインディング : NUMAノード単位サイクリック - ノード数 : 8 -本Tipsは、以下の環境・条件で **OpenFOAM** を実行し、CFD解析フローの所要時間(所要コスト)を計測しています。 +本Tipsは、以下の環境・条件で **OpenFOAM** を実行し、CFD解析フローの総所要時間(計算ノードの総所要コスト)を計測しています。 - シェイプ : **BM.Optimized3.36** - BIOS設定 : **SMT** 無効化、 **NPS2** (※5) @@ -245,8 +243,7 @@ NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerC - OS : **Oracle Linux** 8.9ベースのHPC **[クラスタネットワーキングイメージ](/ocitutorials/hpc/#5-13-クラスタネットワーキングイメージ)** (※6) - **OpenFOAM** : v2312 - MPI : **[OpenMPI](https://www.open-mpi.org/)** 5.0.3 -- 解析対象モデル : **OpenFOAM HPC Benchmark Suite** の **HPC_Motorbike** の **Small** モデル -( **hpc/incompressible/simpleFoam/HPC_motorbike/Small/v1912/HPC_motorbike/Small/v1912** ) +- 解析対象モデル : **[OpenFOAM HPC Benchmark Suite](https://develop.openfoam.com/committees/hpc)** の **[HPC_Motorbike](https://develop.openfoam.com/committees/hpc/-/tree/develop/incompressible/simpleFoam/HPC_motorbike)** の **[Small](https://develop.openfoam.com/committees/hpc/-/tree/develop/incompressible/simpleFoam/HPC_motorbike/Small/v1912)** モデル - 計算結果の出力頻度( **writeInterval** ) : 10タイムステップ(デフォルト値:1,000タイムステップ) ※5)NPSの設定方法は、 **[OCI HPCパフォーマンス関連情報](/ocitutorials/hpc/#2-oci-hpcパフォーマンス関連情報)** の **[パフォーマンスに関連するベアメタルインスタンスのBIOS設定方法](/ocitutorials/hpc/benchmark/bios-setting/)** を参照してください。 @@ -254,7 +251,7 @@ NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerC この結果、以下のことが判明しています。 -- NVMe SSDローカルディスクは共有ストレージに対して所要時間(所要コスト)が **26.2 %** 短い(安価) +- NVMe SSDローカルディスクは共有ストレージに対して総所要時間(計算ノードの総所要コスト)が **26.2 %** 短い(安価) ## 3-1. 実行方法 @@ -265,7 +262,7 @@ NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerC この際、 **OpenFOAM** の設定ファイル **system/controlDict** の **writeInterval** を **10** に変更します。 この値がデフォルト値 **1,000** のままの場合、計算結果を出力しないため、NVMe SSDローカルディスクの効果を得ることが出来ません。 -また、 **Slurm** の設定ファイル **slurm.conf** ファイルの **NodeName=DEFAULT** で始まる行を以下のように修正します。 +また、 **Slurm** の設定ファイル **slurm.conf** の **NodeName=DEFAULT** で始まる行を以下のように修正します。 ```sh NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerCore=1 RealMemory=500000 TmpDisk=10000 State=UNKNOWN @@ -277,12 +274,12 @@ NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerC | :-: | :-: | :---------------: | :---------------: | | 288 | 8 | 36 | verbose,rank_ldom | -また、 **[2.0. 概要](#2-0-概要)** に記載の7ステップにかかる時間を個別に取得出来るようにした上で、結果の妥当性を確認するために各テストケースをそれぞれ5回計測します。 +また、 **[3.0. 概要](#3-0-概要)** に記載の7ステップにかかる時間を個別に取得出来るようにした上で、結果の妥当性を確認するために各テストケースをそれぞれ5回計測します。 ## 3-2. 実行結果とその考察 共有ストレージを使用した場合とNVMe SSDローカルディスクを使用した場合の結果を以下に示します。 -なお各計測値は、5回の計測結果の平均値です。 +なお各値は、5回の計測値の平均値です。 ![実行結果](graph_01.png) @@ -294,4 +291,8 @@ NodeName=DEFAULT CPUs=36 Boards=1 SocketsPerBoard=4 CoresPerSocket=9 ThreadsPerC - 総所要時間(計算ノードの総所要コスト)が **26.2 %** 短い(安価) 以上より、NVMe SSDローカルディスクを使用するために実行方法をひと手間掛けることで、CFD解析フローのコストを大幅に削減可能であることがわかります。 -またこのコスト削減は、高並列実行のケースや計算結果の出力頻度が高いケースでより大きな効果を得ることが出来ます。 \ No newline at end of file +またこのコスト削減は、本計測条件と比較して以下の条件に当てはまる場合、より大きな効果を得ることが出来ます。 + +- 解析対象モデルが大規模 +- 高並列実行 +- 計算結果の出力頻度が高い \ No newline at end of file diff --git a/tutorials/_hpc/spinup-nfs-server-fss.md b/tutorials/_hpc/spinup-nfs-server-fss.md new file mode 100644 index 0000000000..9a848d070c --- /dev/null +++ b/tutorials/_hpc/spinup-nfs-server-fss.md @@ -0,0 +1,119 @@ +--- +title: "ファイル・ストレージでファイル共有ストレージを構築する" +excerpt: "ファイル・ストレージでファイル共有ストレージを構築してみましょう。このチュートリアルを終了すると、HPC/GPUクラスタから利用することが可能な高可用性ファイル共有ストレージを、OCIのマネージドNFSサービスであるファイル・ストレージを使用してOCIコンソールから構築することが出来るようになります。" +order: "1310" +layout: single +header: + teaser: "/hpc/spinup-nfs-server-fss/architecture_diagram.png" + overlay_image: "/hpc/spinup-nfs-server-fss/architecture_diagram.png" + overlay_filter: rgba(34, 66, 55, 0.7) +#link: https://community.oracle.com/tech/welcome/discussion/4474261/ +--- + +*** +# 0. 概要 + +**ファイル・ストレージ** は、以下の特徴から高い可用性が要求されるHPC/GPUクラスタ向けのファイル共有ストレージとして最適な、マネージドNFSサービスです。 + +- ヘッドノードの **マウント・ターゲット** がHA構成となっていて高いサービス可用性を提供 +- ストレージの **ファイル・システム** 内のデータが複製されていて高いデータ可用性を提供 +- OCIコンソールからGUIでデプロイできるのため構築難易度が低い + +OCIは、ブロックボリュームサービスである **ブロック・ボリューム** も提供しており、ベア・メタル・インスタンスと組み合わせることで **ファイル・ストレージ** よりもコストパフォーマンスの高いファイル共有ストレージを構築することが出来ますが、構築手順は圧倒的に **ファイル・ストレージ** が簡単です。 +**ファイル・ストレージ** とブロック・ボリュームNFSサーバの比較詳細は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[コストパフォーマンスの良いファイル共有ストレージ構築方法](/ocitutorials/hpc/tech-knowhow/howto-configure-sharedstorage/)** を参照してください。 + +以上を踏まえて本チュートリアルは、 **ファイル・ストレージ** を使用するファイル共有ストレージを構築、ファイル共有クライアントとなる計算/GPUノードからこの領域をマウントするまでの手順を解説します。 + +![システム構成図](architecture_diagram.png) + +**所要時間 :** 約30分 + +**前提条件 :** ファイル共有ストレージを収容するコンパートメント(ルート・コンパートメントでもOKです)の作成と、このコンパートメントに対する必要なリソース管理権限がユーザーに付与されていること。 + +**注意 :** 本コンテンツ内の画面ショットは、現在のOCIコンソール画面と異なっている場合があります。 + +*** +# 1. 事前作業 + +## 1-0. 概要 + +本章は、 **ファイル・ストレージ** と計算/GPUノードをTCP接続する **仮想クラウド・ネットワーク** と、通常インターネットから直接アクセス出来ないプライベートサブネットに接続する計算/GPUノードにログインする際の踏み台となるBastionノードを予め用意します。 + +## 1-1. 仮想クラウド・ネットワーク作成 + +本章は、 **ファイル・ストレージ** と計算/GPUノードをTCP接続する **仮想クラウド・ネットワーク** を作成します。 + **仮想クラウド・ネットワーク** の作成は、 **[OCIチュートリアル](https://oracle-japan.github.io/ocitutorials/)** の **[その2 - クラウドに仮想ネットワーク(VCN)を作る](https://oracle-japan.github.io/ocitutorials/beginners/creating-vcn)** の手順通りに実行し、以下のリソースを作成します。 + +- **仮想クラウド・ネットワーク** +- パブリックサブネット +- プライベートサブネット +- **インターネット・ゲートウェイ** (パブリックサブネットにアタッチ) +- **NATゲートウェイ** (プライベートサブネットにアタッチ) +- **サービス・ゲートウェイ** (プライベートサブネットにアタッチ) +- **ルート表** x 2(パブリックサブネットとプライベートサブネットにアタッチ) +- **セキュリティリスト** x 2(パブリックサブネットとプライベートサブネットにアタッチ) + +この **仮想クラウド・ネットワーク** は、 **セキュリティリスト** で以下のアクセス制限が掛けられています。 + +- インターネットからのアクセス:パブリックサブネットに接続されるインスタンスの22番ポート(SSH)に限定 +- インターネットへのアクセス:インターネット上の任意のIPアドレス・ポートに制限なくアクセス可能 + +## 1-2. Bastionノード作成 + +本章は、計算/GPUノードにログインする際の踏み台となるBastinノードを作成します。 +Bastionノードの作成は、 **[OCIチュートリアル](https://oracle-japan.github.io/ocitutorials/)** の **[その3 - インスタンスを作成する](https://oracle-japan.github.io/ocitutorials/beginners/creating-compute-instance)** の手順を参考に、自身の要件に沿ったインスタンスを先の手順で **仮想クラウド・ネットワーク** を作成した **コンパートメント** とパブリックサブネットを指定して作成します。 +本チュートリアルは、以下属性のインスタンスをBastionノードとして作成します。 + +- **イメージ** : **Oracle Linux** 8.9ベースのHPC **[クラスタネットワーキングイメージ](/ocitutorials/hpc/#5-13-クラスタネットワーキングイメージ)** (※1) +- **シェイプ** : **VM.Optimized3.Flex** (任意のコア数・メモリ容量) +- **SSHキーの追加** : Bastionノードにログインする際使用するSSH秘密鍵に対応する公開鍵 + +※1)**[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[クラスタネットワーキングイメージの選び方](/ocitutorials/hpc/tech-knowhow/osimage-for-cluster/)** の **[1. クラスタネットワーキングイメージ一覧](/ocitutorials/hpc/tech-knowhow/osimage-for-cluster/#1-クラスタネットワーキングイメージ一覧)** のイメージ **No.1** です。 + +次に、このBastionノード上でSSHの鍵ペアを作成します。このSSH鍵は、Bastionノードから計算/GPUノードにログインする際に使用します。 +先のチュートリアル **インスタンスを作成する** に記載のインスタンスへの接続方法に従い、BastionノードにopcユーザでSSHログインして以下コマンドでSSH鍵ペアを作成、作成された公開鍵を後の計算/GPUノード用インスタンス作成手順で指定します。 + +```sh +$ ssh-keygen +Generating public/private rsa key pair. +Enter file in which to save the key (/home/opc/.ssh/id_rsa): +Enter passphrase (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /home/opc/.ssh/id_rsa. +Your public key has been saved in /home/opc/.ssh/id_rsa.pub. +The key fingerprint is: +SHA256:2EvR7FXtEYAsDknJG1oREie1kv2r1PN3OYrYCP/Xlyg opc@bast +The keys randomart image is: ++---[RSA 2048]----+ +| +=*= . ..oo.| +| *B.+ o . ..| +| ooo* + . ..| +| ..+.+ . .| +| . S.. | +| .... | +| o.+ o o| +| . + *E.+ *.| +| . +.=+.o o| ++----[SHA256]-----+ +$ cat .ssh/id_rsa.pub +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0TDo4QJPbXNRq/c5wrc+rGU/dLZdUziHPIQ7t/Wn+00rztZa/3eujw1DQvMsoUrJ+MHjE89fzZCkBS2t4KucqDfDqcrPuaKF3+LPBkgW0NdvytBcBP2J9zk15/O9tIVvsX8WBi8jgPGxnQMo4mQuwfvMh1zUF5dmvX3gXU3p+lH5akZa8sy/y16lupge7soN01cQLyZfsnH3BA7TKFyHxTe4MOSHnbv0r+6Cvyy7Url0RxCHpQhApA68KBIbfvhRHFg2WNtgggtVGWk+PGmTK7DTtYNaiwSfZkuqFdEQM1T6ofkELDruB5D1HgDi3z+mnWYlHMNHZU5GREH66acGJ opc@bast +$ +``` + +次に、以降作成する計算/GPUノードの名前解決をインスタンス名で行うため、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[計算ノードの効果的な名前解決方法](/ocitutorials/hpc/tech-knowhow/compute-name-resolution/)** の手順を実施します。 + +*** +# 2. HPC/GPUノード作成 + +本章は、ファイル共有ストレージのファイル共有クライアントとなるHPC/GPUノードを作成します。 + +この構築手順は、 **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の **[HPCクラスタ](/ocitutorials/hpc/#1-1-hpcクラスタ)** カテゴリや **[機械学習環境](/ocitutorials/hpc/#1-2-機械学習環境)** カテゴリの各チュートリアルを参照してください。 + +*** +# 3. ファイル共有ストレージ環境構築 + +本章は、 **ファイル・ストレージ** を利用し、ファイル共有ストレージ環境を構築します。 + +この構築手順は、 **[OCIチュートリアル](https://oracle-japan.github.io/ocitutorials/)** の **[その6 - ファイルストレージサービス(FSS)で共有ネットワークボリュームを利用する](https://oracle-japan.github.io/ocitutorials/beginners/using-file-storage/)** を参照してください。 + +これで、このチュートリアルは終了です。 \ No newline at end of file diff --git a/tutorials/_hpc/spinup-nfs-server-fss/architecture_diagram.png b/tutorials/_hpc/spinup-nfs-server-fss/architecture_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..c951740ac145be2ebebb9b94cf11ff05a8664286 GIT binary patch literal 26609 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 Pz_)xf4Kzxx*o6NdBL!e{ literal 0 HcmV?d00001 diff --git a/tutorials/_hpc/spinup-nfs-server-nvme.md b/tutorials/_hpc/spinup-nfs-server-nvme.md new file mode 100644 index 0000000000..8977de1752 --- /dev/null +++ b/tutorials/_hpc/spinup-nfs-server-nvme.md @@ -0,0 +1,265 @@ +--- +title: "短期保存データ用高速ファイル共有ストレージを構築する" +excerpt: "短期保存データを対象とする高速ファイル共有ストレージを構築してみましょう。このチュートリアルを終了すると、NVMe SSDローカルディスクを搭載するベアメタルインスタンスBM.DenseIO.E5.128を使用する、短期保存データ用高速ファイル共有ストレージを構築することが出来るようになります。" +order: "1333" +layout: single +header: + teaser: "/hpc/spinup-nfs-server-nvme/architecture_diagram.png" + overlay_image: "/hpc/spinup-nfs-server-nvme/architecture_diagram.png" + overlay_filter: rgba(34, 66, 55, 0.7) +#link: https://community.oracle.com/tech/welcome/discussion/4474261/ +--- + +*** +# 0. 概要 + +**[BM.DenseIO.E5.128](https://docs.oracle.com/ja-jp/iaas/Content/Compute/References/computeshapes.htm#bm-dense)** は、6.8 TBのNVMe SSDを12台ローカル接続し、ストレージに高いスループットとIOPSを要求する様々なワークロード用途に最適なベア・メタル・シェイプです。 + +また **BM.DenseIO.E5.128** は、100 GbpsのTCP/IP接続用ポートを1個搭載し、NVMe SSDローカルディスクに構築するストレージ領域を外部にサービスする際、100 Gbpsの帯域を全てクライアントへのサービスに割当てることで、ストレージとのアクセスにiSCSI接続によるネットワーク帯域を消費する **ブロック・ボリューム** を使用する場合と比較し、高速なストレージサービスサーバとして利用することが出来ます。 + +これに対して **BM.DenseIO.E5.128** のNVMe SSDローカルディスクを使用するストレージサービスは、 **ブロック・ボリューム** を使用する場合と比較し、以下の点を考慮する必要があります。 + +1. NVMe SSDローカルディスク上のデータ保護を自身で行う必要がある +2. ベア・メタル・インスタンスの故障でNVMe SSDローカルディスク上のデータを消失するリスクがある +3. データ格納容量が最大で38 TB程度(RAID10でファイルシステムを構成した場合)に限定され拡張出来ない + +本チュートリアルは、これらの考慮点に対して以下のアプローチを取り、 + +1. ソフトウェアRAIDによるRAID10で最低限の可用性を確保 +2. NVMe SSDローカルディスク上のデータを定期的に他の長期保存ストレージにバックアップ(保存するデータを短期保存データに限定) +3. **2.** のアプローチでバックアップの後データを削除して空き容量を確保 + +以下構成の短期保存データ用高速ファイル共有ストレージを構築します。 + +- NFSサーバ + - シェイプ : **BM.DenseIO.E5.128** + - OS : **Oracle Linux** 8.10(Oracle-Linux-8.10-2024.07.31-0) +- ソフトウェアRAID・NFS : OS付属のものを利用 +- RAID構成 + - RAIDレベル : RAID10 + - Placement : f2 + - Stripe width : 6 + - Chunk size / Stripe unit : 8 MB +- ファイルシステム容量 : 38 TB +- 起動nfsdスレッド数 : 128 + +![システム構成図](architecture_diagram.png) + +本チュートリアルで構築する短期保存データ用高速ファイル共有ストレージは、以下の条件でファイルシステムベンチマークを実行し、 + +- ベンチマークツール : **[IO500](https://io500.org/)** ISC20に含まれる **IOR** と **mdtest** +- NFSクライアント + - シェイプ : **VM.Standard2.24** + - OS : **Oracle Linux** 8.10(Oracle-Linux-8.10-2024.07.31-0) + - ノード数 : 8 +- **IOR** / **mdtest** 実行時MPIプロセス数 : 128(ノード当たり16) + +以下の性能が出ています。 + +| | Result (※1) | +| :-----------: | ----------: | +| IOR write | 8,967 MiB/s | +| IOR read | 7,526 MiB/s | +| mdtest create | 83,406 | +| mdtest stat | 255,682 | +| mdtest delete | 70,499 | + +※1)3回実行した平均値です。 + +**所要時間 :** 約1時間 + +**前提条件 :** ファイル共有ストレージを収容するコンパートメント(ルート・コンパートメントでもOKです)の作成と、このコンパートメントに対する必要なリソース管理権限がユーザーに付与されていること。 + +**注意 :** 本コンテンツ内の画面ショットは、現在のOCIコンソール画面と異なっている場合があります。 + +*** +# 1. 事前作業 + +## 1-0. 概要 + +本章は、NFSサーバと計算/GPUノードをTCP接続する **仮想クラウド・ネットワーク** と、通常インターネットから直接アクセス出来ないプライベートサブネットに接続するNFSサーバと計算/GPUノードにログインする際の踏み台となるBastionノードを予め用意します。 + +## 1-1. 仮想クラウド・ネットワーク作成 + +本章は、NFSサーバと計算/GPUノードを接続する **仮想クラウド・ネットワーク** を作成します。 + +**仮想クラウド・ネットワーク** の作成は、 **[OCIチュートリアル](https://oracle-japan.github.io/ocitutorials/)** の **[その2 - クラウドに仮想ネットワーク(VCN)を作る](https://oracle-japan.github.io/ocitutorials/beginners/creating-vcn)** の手順通りに実行し、以下のリソースを作成します。 + +- **仮想クラウド・ネットワーク** (10.0.0.0/16) +- パブリックサブネット +- プライベートサブネット +- **インターネット・ゲートウェイ** (パブリックサブネットにアタッチ) +- **NATゲートウェイ** (プライベートサブネットにアタッチ) +- **サービス・ゲートウェイ** (プライベートサブネットにアタッチ) +- **ルート表** x 2(パブリックサブネットとプライベートサブネットにアタッチ) +- **セキュリティリスト** x 2(パブリックサブネットとプライベートサブネットにアタッチ) + +この **仮想クラウド・ネットワーク** は、 **セキュリティリスト** で以下のアクセス制限が掛けられています。 + +- インターネットからのアクセス:パブリックサブネットに接続されるインスタンスの22番ポート(SSH)に限定 +- インターネットへのアクセス:インターネット上の任意のIPアドレス・ポートに制限なくアクセス可能 + +## 1-2. Bastionノード作成 + +本章は、NFSサーバにログインする際の踏み台となるBastinノードを作成します。 + +Bastionノードの作成は、 **[OCIチュートリアル](https://oracle-japan.github.io/ocitutorials/)** の **[その3 - インスタンスを作成する](https://oracle-japan.github.io/ocitutorials/beginners/creating-compute-instance)** の手順を参考に、自身の要件に沿ったインスタンスを先の手順で **仮想クラウド・ネットワーク** を作成した **コンパートメント** とパブリックサブネットを指定して作成します。 +本チュートリアルは、以下属性のインスタンスをBastionノードとして作成します。 + +- **イメージ** : **Oracle Linux** 8.10 +- **シェイプ** : **VM.Optimized3.Flex** (任意のコア数・メモリ容量) +- **SSHキーの追加** : Bastionノードにログインする際使用するSSH秘密鍵に対応する公開鍵 + +次に、このBastionノード上でSSHの鍵ペアを作成します。このSSH鍵は、BastionノードからNFSサーバにログインする際に使用します。 +先のチュートリアル **インスタンスを作成する** に記載のインスタンスへの接続方法に従い、BastionノードにopcユーザでSSHログインして以下コマンドでSSH鍵ペアを作成、作成された公開鍵を後のNFSサーバ用インスタンス作成手順で指定します。 + +```sh +$ ssh-keygen +Generating public/private rsa key pair. +Enter file in which to save the key (/home/opc/.ssh/id_rsa): +Enter passphrase (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /home/opc/.ssh/id_rsa. +Your public key has been saved in /home/opc/.ssh/id_rsa.pub. +The key fingerprint is: +SHA256:2EvR7FXtEYAsDknJG1oREie1kv2r1PN3OYrYCP/Xlyg opc@bast +The keys randomart image is: ++---[RSA 2048]----+ +| +=*= . ..oo.| +| *B.+ o . ..| +| ooo* + . ..| +| ..+.+ . .| +| . S.. | +| .... | +| o.+ o o| +| . + *E.+ *.| +| . +.=+.o o| ++----[SHA256]-----+ +$ cat .ssh/id_rsa.pub +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0TDo4QJPbXNRq/c5wrc+rGU/dLZdUziHPIQ7t/Wn+00rztZa/3eujw1DQvMsoUrJ+MHjE89fzZCkBS2t4KucqDfDqcrPuaKF3+LPBkgW0NdvytBcBP2J9zk15/O9tIVvsX8WBi8jgPGxnQMo4mQuwfvMh1zUF5dmvX3gXU3p+lH5akZa8sy/y16lupge7soN01cQLyZfsnH3BA7TKFyHxTe4MOSHnbv0r+6Cvyy7Url0RxCHpQhApA68KBIbfvhRHFg2WNtgggtVGWk+PGmTK7DTtYNaiwSfZkuqFdEQM1T6ofkELDruB5D1HgDi3z+mnWYlHMNHZU5GREH66acGJ opc@bast +$ +``` + +次に、以降作成するNFSサーバの名前解決をインスタンス名で行うため、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[計算ノードの効果的な名前解決方法](/ocitutorials/hpc/tech-knowhow/compute-name-resolution/)** の手順を実施します。 + +*** +# 2. 計算/GPUノード作成 + +本章は、短期保存データ用高速ファイル共有ストレージのNFSクライアントとなる計算/GPUノードを作成します。 + +この構築手順は、 **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の **[HPCクラスタ](/ocitutorials/hpc/#1-1-hpcクラスタ)** カテゴリや **[機械学習環境](/ocitutorials/hpc/#1-2-機械学習環境)** カテゴリの各チュートリアルを参照してください。 + +*** +# 3. 短期保存データ用高速ファイル共有ストレージ環境構築 + +## 3-0. 概要 + +本章は、短期保存データ用高速ファイル共有ストレージ環境を構築します。 + +この構築は、以下の手順を経て行います。 + +- NFSサーバインスタンス作成 +- NVMe SSDローカルディスク領域ファイルシステム作成 +- NFSサーバ環境構築 +- NFSクライアントでのファイルシステムマウント + +## 3-1. NFSサーバインスタンス作成 + +本章は、NFSサーバインスタンスを作成します。 + +NFSサーバインスタンスの作成は、 **[OCIチュートリアル](https://oracle-japan.github.io/ocitutorials/)** の **[その3 - インスタンスを作成する](https://oracle-japan.github.io/ocitutorials/beginners/creating-compute-instance)** の手順を参考に、以下属性のインスタンスを先の手順で **仮想クラウド・ネットワーク** を作成した **コンパートメント** とプライベートサブネットを指定して作成します。 + +- **名前** : インスタンスの名前(イニシャルホスト名)(本チュートリアルでは **nfs-srv**) +- **イメージ** : **Oracle Linux** 8.10 +- **シェイプ** : **BM.DenseIO.E5.128** +- **SSHキーの追加** : **[1-2. Bastionノード作成](#1-2-bastionノード作成)** で作成したSSH鍵公開鍵 + +NFSサーバインスタンスが **実行中** となったら、先に作成したBastionノードからopcユーザでSSHログインします。 + +次に、以下コマンドをopcユーザで実行し、12台のNVMe SSDローカルディスクが接続されていることを確認します。 + +```sh +$ lsblk | grep ^nvme | sort -k 1.5,1.6 -n +nvme0n1 259:7 0 6.2T 0 disk +nvme1n1 259:2 0 6.2T 0 disk +nvme2n1 259:4 0 6.2T 0 disk +nvme3n1 259:6 0 6.2T 0 disk +nvme4n1 259:3 0 6.2T 0 disk +nvme5n1 259:1 0 6.2T 0 disk +nvme6n1 259:10 0 6.2T 0 disk +nvme7n1 259:11 0 6.2T 0 disk +nvme8n1 259:9 0 6.2T 0 disk +nvme9n1 259:0 0 6.2T 0 disk +nvme10n1 259:5 0 6.2T 0 disk +nvme11n1 259:8 0 6.2T 0 disk +$ +``` + +## 3-2. NVMe SSDローカルディスク領域ファイルシステム作成 + +本章は、NFSサーバインスタンスでNVMe SSDローカルディスクにファイルシステムを作成します。 + +以下コマンドをopcユーザで実行し、NVMe SSDローカルディスクにRAID10のファイルシステムを作成しこれを **/mnt/nvme_raid** にマウントします。 + +```sh +$ sudo mdadm --create /dev/md0 --raid-devices=12 --level=10 --chunk=8M --layout=f2 --assume-clean /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 /dev/nvme4n1 /dev/nvme5n1 /dev/nvme6n1 /dev/nvme7n1 /dev/nvme8n1 /dev/nvme9n1 /dev/nvme10n1 /dev/nvme11n1 +$ sudo pvcreate /dev/md0 +$ sudo vgcreate nvme /dev/md0 +$ sudo lvcreate -y -l 100%FREE -n nvme_raid nvme +$ sudo mkfs.xfs -d su=8m,sw=6 -L nvme_raid /dev/nvme/nvme_raid +$ echo "LABEL=nvme_raid /mnt/nvme_raid/ xfs defaults,noatime 0 0" | sudo tee -a /etc/fstab +$ sudo systemctl daemon-reload +$ sudo mkdir -p /mnt/nvme_raid +$ sudo mount /mnt/nvme_raid +``` + +次に、以下コマンドをopcユーザで実行し、マウントしたファイルシステムを確認します。 + +```sh +$ df -h /mnt/nvme_raid +Filesystem Size Used Avail Use% Mounted on +/dev/mapper/nvme-nvme_raid 38T 266G 37T 1% /mnt/nvme_raid +$ +``` + +## 3-3. NFSサーバ環境構築 + +本章は、NFSサーバインスタンスでNFSサーバ環境を構築します。 + +以下コマンドをNFSサーバインスタンスのopcユーザで実行し、NFSサーバを起動します。 + +```sh +$ echo "/mnt/nvme_raid 10.0.0.0/16(rw,sync,no_root_squash)" | sudo tee -a /etc/exports +/mnt/nvme_raid 10.0.0.0/16(rw,sync,no_root_squash) +$ sudo sed -i 's/# threads=8/threads=128/g' /etc/nfs.conf +$ sudo systemctl enable --now nfs-server rpcbind +Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service. +$ sudo exportfs +/mnt/nvme_raid 10.0.0.0/16 +$ +``` + +## 3-4. NFSクライアントでのファイルシステムマウント + +本章は、短期保存データ用高速ファイル共有ストレージのNFSクライアントとなる計算/GPUノードで、当該領域をNFSマウントします。 + +以下コマンドを計算/GPUノードのopcユーザで実行し、短期保存データ用高速ファイル共有ストレージ領域をNFSマウントします。 + +```sh +$ echo "nfs-srv:/mnt/nvme_raid /mnt/nvme_raid nfs vers=3,defaults,noatime,nodiratime,bg,timeo=100,ac,actimeo=120,nocto,rsize=1048576,wsize=1048576,nolock,local_lock=none,proto=tcp,sec=sys,_netdev 0 0" | sudo tee -a /etc/fstab +$ sudo systemctl daemon-reload +$ sudo mkdir -p /mnt/nvme_raid +$ sudo mount /mnt/nvme_raid +``` + +次に、以下コマンドを計算/GPUノードのopcユーザで実行し、マウントしたファイルシステムを確認します。 + +```sh +$ df -h /mnt/nvme_raid +Filesystem Size Used Avail Use% Mounted on +/dev/mapper/nvme-nvme_raid 38T 266G 37T 1% /mnt/nvme_raid +$ +``` + +これで、このチュートリアルは終了です。 + diff --git a/tutorials/_hpc/spinup-nfs-server-nvme/architecture_diagram.png b/tutorials/_hpc/spinup-nfs-server-nvme/architecture_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..d08ce70a294124e6c0057f3d7487fc5275beaffd GIT binary patch literal 30440 zcmYhi1z42P);3H_OLsE^($Xy*!$?VY4I!Ps}S9rlNp@Nr8!gfPe#0lzoGMfE12^fLMf%1pJR<#dH|(52D)} z1!;t;394P-1&XzlvJ?VBO+40}87lA^!&ynJZ#N*Ynaxr^6yJ8&|iF#%k`@UF%$k<=_S2*IKgM}8>Xxe^n(d7Su~B*|Nq;Q zlBDEF?JXM`zvB)_t=HLgd{iAf{@lu3LdD-D>%o&Spgh1%Z6sado%{&=&0R3Hg>Jrg zL_EjEjmoR~zlTgJ7SAYr_V+rTHt1*3T?h8%xgy|TW1~pq5e61cs|N96_l2VQjC35g zpYFA@Y!Fpc|LqL)vHK&~l4>~p-?xdbr5AFy7rWv+YlX0^cNZJ*dqU!WjKTl+0fevq zd#hJ>z-dvaH@*^oUbXjY^rDH+Uquzt{`b5a^jW?vmHav^#Biye zprD|hSxZH(3o@Pq*lB>Lz8;&Ql1=w}a)H%kBO3Y|&bY;v;7}S22PA zUG-^nOx#tr7;x$Yg96}Q)~5$-(K&8=QhoYEN+bL1Xk@w9VdTw|3jQ_`d@!=^?`;<( zL^98AFOE1OBrpGWg)v-`@l)4w5@bsl)c(g|AMtdW)oc{mx5%k2UACzQSw~Rz@-UOh zSmQ`0JLDmJ(VYDDB|QJz0!#MzkDmvduXYIPQIxQ$#cRAPPuyJKFz2J;fD)eDc^mD} zTAfCGS-WD@&sGo>I`$Djy#_)!&!((t8($%#h;QorRt~zrlprOAbk4d_>2uPyvIGsv z6myw$j>9u0b>ZaUW>MD8&dz`UabLarBGkl6_b`9vgsBiD?(= z=4uD(n=FyQ6tHm6Kfw__2a&hhv2{%T_;Gzd(;fC|-MVdp@7LRfL*4|e-LRJ?J0hUk zx*WkLCF@n+0mOQ$`6!pNg<{S=g3P8XFt2Y+V(BjwQZmx1j?XcEgWHAHJON84@Lk@+L)3?ZP>6T%v9`1>`M;Dr0DO<2!`1nigO|BhI8KDp1 z;dC|gyQ+Lmx^2I(>DGNYxEy4;cWwcz%#-@Vr`!$CeEm-&gH4^C@qFwLZ*Yq^^HZ@e z!|0{^oPulLl}>rA`kY^?c~0%TWFHwRDDfTX%eM!RmMm72)#JhIS*Ui#4-^|m?#tZ7 z9Z1>@(ITdk=Hq>k!sACy?eZtkvVf4}g8`ibIkN}!wD zKr!EGQThDj@%W60n;ArfY5QsWea+GfRSm`V)5Es=9WWx9H(#u1f8K!HMf?j*_==yl z-JA-1j1UhQ8QJ}?)p|j`Rn?F4FAs*h-!68AYw2&HTHHA-l1K7^(;fE#+xImL&PbnLV70sPp?O*Df@`nM!Ff_IRWbiMwys6uIV&?(fZH{ZjhdD4wK|hiqqLYb$Pq& z|Gn+I7(3wZL?=ss01*7PA_Yy{W=6oF`26kVKz29wob=$M~-A`fVWco;^8`b8msEqva6~l$(Qwi{^CZ3_2ZssyAvRc z$suCvWp;OBiqCw8b~&BKod?8uZTnZ`J2KIEdT5*%x%)A6KcSo$+#_ zke9`%UOIBO4ySh#@I{jU`jurxk$Vq#pQTvXldPgzQ^(JrfG<;Os0omj@Hek9lCifm4#hh6bTmz2EEFs_!Y=k@m~ z+K3`fi~9OiGjXtp{*z0ws;Y-OY^k(tw3(PVk6J&dtn9Vu;bC6Z0WE%od=W@Hrx2`> zD1dS}89tto>e7HyT19dQW7}R#IFLiHk*Qs1*b3hfEvPxw7u7|y{U9K_OurP~e2nKI zQ!Vp;1^C@Y6!e}kqpCFM>q{3DRxF(G3gcbzH11?lcBDJ1opR2g+q~zoN#|izGB2E# zKcfMX2H8W7c3VWudgtEGR0;4~l62Xq56bTybuRr3^w=JciB)~?L}{6et=nbXT&`oi zQV0!e1OGK_{c|1$Jxma{R$(fyRBkRonyfvzZtCKiDYDx5}K+EV^ulkB$voe=vii-tQ8r&;zQSlmI4we5S6R z*+4!>S(?N=KpFwO3*||YQNM=Q=}=&q=d=hjj?B`UlW|=D(9a7A1E-Au(*COG;ciGR zu5Xz18Z)0g0$bvwsX>>=8rP)R3Xb{o{b4xv^lrWGyEoNkMe!n|a6gZw`rI0efhOSb za#muSC+%CorvH#*Wq~;ciF~D9n0Js_>U&vHO>!;TKD!>ATx8;93=-huS@w)w*S|HZ zG&D-P^{=fKbi=9m<{@d=8XNz?s&IF*m}Zr&6VCF8GW_oZ_@fNcdKLI|Auxm}G~_!@pcy;{0$^-Huej=+#Em8qv(9!wVq6A2r{%m7-%jnoH_V=MV8*W$Bc_PGZ-E zr%}a#7h^P`Sh9?#*KkBs@x4Ndrb_e57mSU+2+^J&oBz8{WT@+@*DUmVqf1V!ik^yP z<|y+A4ufe`ad4+3ungMX{;vPauwKA!W59a8zL7cvKI{52Fc^NWeZngYOacbJ7z#}{ z7TnO!13#3Jc&*PmVBu5$?!T{1KE9~wj9BR`+>^WK$q$hLz#G{DItRUAqFP#--k*;= ze%=Sd%1#~M!m9`O)T+viePrHyWF5-0@4|O_-+Xey`F}@YKZm<8 zFv-s7$-an2x2$PBLbX>PYfdg^zeaO#!v}>r$x6*d8&Zr7kUar5=ST|v!VY-z8OzewjSc;} z3VbtRQw~!DIW)8HBnb2D9CS}VEg(Yf?`WlTKZR}OU{4BLTxMJ;NL{zABnP#y5 z^uoMftwdMG@S5IpK={E)u(_1soD{4D3j7r0d89@y7+$yoqUqP#lzREh6Js7a8`LvL zd}qBmhNisXJ>l`s5`1sr|MrAp_&tQaGZw$j+G4Ne+r;Ed{ z>2j@lm_nU&)T4E=KFutPI`1U>XPY_X-2yhKEk~%JBQOgoxEG7W=919Io7>K8c-!#{Z&I{~M~9mo#>#S+8l`Yjd5mi_N4-j+Hk>(%tLELl3Dpkd zCHTcW!0yqXAM>CpNa?;4Dc;^5@HI=l>VP5EVwKUDcp3jwg6S&*Exnm@El}Khh$HSbH>tlYQhh?jYP=luM6KAE_Gj zVd(a9cS-*gYyp7$e=I;-NeQ0z@@bJbPq=OhvC31?AiRdB75p>V7_ji%l273mRUy6U zT|Q0W=g7!1LvcpbWO&impW2E1xxDGTnrXjiG?ksXJKcW( z*+AZ~EhLGNq^W5WeZoXA@VJMiX(jGk*{^aqD=RO_>isTPAV=s$caq%zLy{8yIb2<| z9yy5Xok$i57AMO5rXv2?`kFUzdMPN6&mf+KdmLBso3Z(dg$eWIhtur8s+nRO+Ar`; z-Kve~?TPNY@Ks#7+t_3DbEzZt6h3zcbzd8@FY{Im;e*CQdY{}O5*#*sGC7%`E8pmL zHz1m_wiPkKtyyqc8G@d@ceq@ge+iAYdl9gv%S^0-z&;XSejBsD1|omtI-Mg{A?X5< zSA`D`=e1DG_p&ljV45f5?lby{%0?R6Z)&baIizS11OEHDMJ&p*|GJCcU_zni(lIU* zKCXSx^J9~^bD}MhVmZ)7IDMaaPhSpbV>ryJk7VjoAN+v1sIM(JY0JU)DqruwZ#_e) zmXuqKvAPl!-7ck#l5cN=$8P(ejEG`kSfC;`8J`2{VPuPn^PdMT2Pe@jg&x62NBJz) zf0SoC<$?8uJx>{aoIuAN)Ri%+gM|DI2p<}REXA)!aWxl$lN02=A~lbs!e*|)&wSP? z6c9Nq9+N0DLCAm~F+k9*s{mIfuBoN|@>j-;EziNGzhhUaB6)U191`+Gr%WJ&EEqmw zhx4qNl{ur8PSh7(!W7KPd$02?DvbzY7}E(7?38a9Hp?v&4SUK?C;U)T3aAu0`9wASIB-3_rYUd>#c-0OE#i6Itd{raEy!PUfQnWKdugSrCHvK2G#p>O?VYAfpTJQ~ zwFdVZ9Cg-^Im6kB8S@Eu&ex4nyhnE3DU7zhX|9IDI;;;8zkX?2pAF}wo=&1PCYWl@ zWeKW$Sq<{Fe7MVnB<+Z5;{_Qv%V!Ar6%0B1C&O?O6T=KS(Cs(p%_Y(148Jy7mExOn zNPb_^H;Qzik^O;4Lb>BlEM_%2_c zYvV@|rxSd~M26PtV+5;|RjYTMpz1{GGj|0&k9NQB+-=gAY zf;K6Q8~i@re#JgFuC+y2rkgYj4!)_+BS|Q6!H|1@;+CkFo@++w$y%}gX56CAn~^j6 zgp_7=U`wqXw8Ra?))Srs+Ztif%nJ?+c!^9e{_rofOmCM|gA zi4|1bH8Lo^@j1yMhER?d`}|eoj)Uj3Abx{#Vt(ERKPw*U)`bTZ;ZQIzMw9BGnU$!i z$pK`R{)50sf|@Kto?bmV;41XWkjV>>DCXIt@Vt!x!OMjj8lY1EY~q7CNDsGWQ19EX z2ksxl0$xI-TbRW3SH1Di0TkL8I^n!CNmflf&(^O~4Y-u%hGR>oAPz>JJVycOC9uma zO}l+H5ghfNG`26SlYQ++z6ZZiOL>f1K2H%oqYZ?4|~#%T0o ztv77LP6xdVv>C0?q(kybm-%sJOZg0ayHF8g^-20)mZYz3bhHW=d+l}T4AqY{cO}Yq z^?C8q@fXsna$_Elix+4O8f2se1m9axCT`xqEA_tn!C}kn>&X$IzkKb{n&dwvQ`tlY z0e(#12Qd9{u=k3P=FnU8VzKLsw9#c}0`Q$^;X-A; zlaZ7S9J_$^bM$zG-Jp`Hs%jneArL^z1}io++I}-Ud-B$RoxGjlnTz-6Y<$dW-*sO2 zdr>vWEZ82Jq_h9vnImZY29G)&Z!%f(-@@aWyPNsaIisE9Sd(#M=t?{SZlm$FeZB}RKPp&juKyS})204s`={whLv8u0^pPC|MG=_l*={xBWL z-=z!$`ITTtK6t)W~Y5WXgsu^tA@$n^(%xVf*ohhgjMfj-As} z#u}dtl3}Fvay_g!D6hVdoJl2Fn9RTE4~|AN7khW0OJA8Uubjs7YeMwc?{>HN`e4zm zpE&u?>UHO{hKC&m2_+AOcp4)kBWevZtN++S{AAsiLK+$Af-F<5`Q-P80h$rqR;jOX zK;+<>WpSpGWX)fRa2PxO*ucX3c?qHFj(X;S;OLzEe2eJLpM=ihCdP0Vxtop)nW{Q*<&E$_;xULIp@R`rC z`}b_uiJro8?v$a-2{P7Nc^U=n=l?%QyIVstzr>$ZDf?*VS<1j$&V)!7SdUe|; zaVNu$F78@$U<1S+X;i(5upFZv6@hdD8^_!n)y6-U0<8hMQSgKP6V8J{>+~kfV)Pwn zML1~WqFJ2mm6EH20|)GE=JSKQ=gEraPk&u)Z|@e}clH1HE4^avlHA}IeXZnzJeHts z63i@|T}^{1cspz)XUbz($Hf2A**dlLcW%Ckz9BC_RMK-uRLuc;_4rD|d%5@7zUki= zBfM7Q?_WP0SWAeKiwWi4?|yz@Az7H7W+0(8`)}%DtbNP<%3&1Yu?-@2QZ64{WB=6$ z<@9ec5{Ar-=~oV-gF*lRWS^68$U!*$ymZ{$&Sy(C*jQOb+I+XNQ+@3H=nNI#aCx8a zJJd(}CBuA}77`g1USWqBICT(58`PMG>H3BK2mH6%v2k$LK{o(FEf(q`dj2@%!Wq4( zQSqZE4apj>mG(N>R$n#V`8Ur3)N9hS-G|9Y1FeQaH|GaS0N1v$N} z?PDDb75E49O>~Z_fL@=f>I6XUlrBOzjNuZuQ}M>=(P3DmgL3fL|9X>yZSW>2LI4s! zg&Zygr9bh_t~oj4;;2&BB3~1e7XQ>=Qd@=+6wGUN244Kr+mJ*?m<|eA(-dZaQ&9~- zdAtrA7C6ItnI--}0H>Mq30nIjVm~)G_lb}dN2AEFGhzjdPg;!Dmht#ZyW{^I!QqNj z%bZH46H=0fABKCjM01;cgdu2E>36c$!dJZVJO*+}m%mXF2fQ+$g>tg7{k{7w5h(06 zUuocZf4MLu2lsx8mgC`>K&`hZ|L@Rqu@-H1I;?<^H}NcbTIA+2LZQNl`5hHXcz8k< zOeSzQW+`uci(YLwaxWLeamUYN)~znF$}ZjD&tSYZ&FZX6BXnyq7s6wIH+ixP%|mpl zzm7`XiVwWo{CPXyFVFxq5rQQ*$ z1)@HcIMl-3$9?Fvm}W8R55fmzuoGt5#8f_)_^nN@`D@7A`BGW zBpCn4u6CQA?9X|;Kit-_F`v?M7i@})dRo~;YUt?@KRWOK^IZ)xUThj@0qYbDxX}7>=z#bUzjzu$*2i7hZ-@QI~Yt{eT4t*s*KupW~) zCKqJmOMjfwu|*3@IXq1u#djZJclM{BzwhoEeTcKPBFmr$w-grsDlN_qW>rn&u>`!4 z%z(@Gcp4a*5<@L|)d}ogXk0bmjF3GMEF9qO>A5NRJcYv`e6uY0Gu4J`MpBdsJmx1F zPJK#hR(Z;o;BsT_27t1D;xvb96+wSO((!&#r@)90Fb@*OU!@669sG(3sx|EiURu&$ zzZtD`@JPQ{VsbAsP^HGsOFj5I(^hZH1M*&ObokPFyVv(z!mkfU@UDmUu1B!*G?rTQ zT|&PPiqhT9X8a@I8TvdHj6OJe>gX(Zhbhqd^Krrr_s-!pIFm~Q(WINjuY4|cxGe@J zzXeR?$w^0jNRtSBwXr!EoAJ^N$xt!XhCz=ES}VXst}Nw$n*Wj7Fx@#gLeo+iUP!a4 zVO&~NB{0Fhl|ppWSpy2OGk@)C@io0i^qA;p-SFhh3~#{Qjmq0jyQc8 zU_^M8dV6~t6@|G@HWjdKbJ%m4)VNy8QsrB=`j}ke#5}U3T6#lN4?13IC~s)Ej1^p! zBmrFkRO{|6wMz^swM!EWB|N{gHIx9mgpF^ixU(C@frc?~|}B>|~$)yu0=I5uUtzPz&9{=w2ml0xqR zr-z5s$BqzOT|Nm*I1s-)1ni%XLdiAKxY zD_{P|xi^2tqHS?29K=2Fv;fd9_%#6-z5BT?kf^weTf5D$N%^4&IjgZ4${7uNV_+}_ z7dyMSzRp(_b6ja&>(>qT=XTlXM=|W-RD@4aCQyj23kKvLFw&-pc(AHK0LCgVF8(ae zV?%-Mi*R2U$0eCAn4GTpq(?-!eV_KYh1RnEgG&l}A>)Ygz^90lFuV7(12?Cexgxzf zHb;)-ewzxMjExCeQ@1kc)mPYf=ym$9JG?8*I#OR(aYdrpPpf*#g8rPW_o-PT2b_e^ zR)gYS?zC)>;zGh-MyqvKm~;hP9V~iyctn$M^yZC?j-EJ~0sy7^fy^W4T&Z@}G}E&> z_D#t0^0Hhcd+EVP>%FrhE#rIHgd@0BJ~noyPysfyq}!U+sqU3r0nrJox=YbZZW^Za zzBUjJ4o+RNLO`Bq^h4EHf_d2xz461O@rOA-F$^qvG8qD5#5O0Le(6fS5Gi1;GFu8WvTo`c~ob{{Y}ogyAfa? zvr9`~(WB@ViqQBtY81Xs`C1-Lael|YvsoIxNbJolCu_)gE_zOQ`%5G~>i`L)l zlZOCiI@+||xMLthVGRh;8q?{yQin_YUHrDO;`&Yex*2+wE$*8$dUI`p{iW+cwO_kpF|{ARrH=-AX!A*5!S7<`9svGJb@oFF@od$xpL$0Lh-AU}CgsMpt^2IJNi zIf7{45fnZG=FdRjwyea{+KA9=2-=^oWMgCN3#Oo;=nu|UcHIW&KgSFT%0rhZTN4%Z zK7*}?hRvF?Q~Xr%>y<~LU{}K4`~pJu0nY-29rCgGhkoHZzueI>ntbRzkXKe4Ay}|T zz=m9D#C(XHJ>f(@3>KI0Xf?Yth!3cF_)enE=T!lJ-Ni(kWCF+jaUc8h1}8HP@K{XB zaFg>$>um3B&w$^a)e&F(ezBRCCNc{HKnAdcs%+=Hugxx-!ACDd-@e?)3q|gP^3Z7w zI(-^+qwkT7Cl`sOBZzsHZOAsDn{)^VAHk_Y$*gtTy>BAbpXN` z?}m~8Q1Mz}gX%tw9oWDw_vZMXQT%L=BxL^2o_rC1SfaaGu?&gmi2nr9a)i?GsxZv& zj)7Iw;3S})C~j`+2{rGQ8>LtjJd0)DL39QzTaHm24FiKV(;lRCl-CC!@--8z&?KS@ z0JwHiyY7As(FXb%tlO`){{bB4eRS6imhB!R?H@(SFJsurUQnKS1f`fRotv12q`Kb&?_WcBcM&pc4O70H2Bd#2!^&6F|!^gqzkDi>sg|Bh&?)1 z4GU;=5Sy|UZFmb1Hh}$TuIA28T9ni}2ZtWv9UcmuEj@U)7th~2H5}P31bfc_<)mk5 zX#K(dNTPdeCVwz5KJ{yzwRQb%3rxnENbCBO(Zy2x;m<{}L~OQ;O%n#g0N|#R$;2(V zvc_~JxvH8s<3y{CqDi@MHA47-n!r0_S7T?#4iPKt2mgox=ES0+BKzYSQ|Hy5CTSsc zOCXQ|vTMvIM#KU1YqZ7R6;Sby!uI3pj2gd0ys)b%S-K9r_EtXM{)%}liX;c@v};_(l_+LJ&{jd!ye@_FN!j1uKa2&ko-QOVkw$t`2k*scC+wCn^&NKV0AECnlAk3{| zCz7J0^)sf|a@V^Z%<0G%PAs;wGBQk3I%@W|;N!hY!&<=qoVv2S9NoznsubL{b=vB7 zKz&hC?cw?@T=fPn*6e*g*MHw;js)AC?uo)YJ;aC!pU`m_a@OiRWfV?tRhvvIuc#nW zNsj0QrQ#;itTy;u?g7jxo<`hfB2!p8wk{^eJWSHSfU?o2pb9aRedGrEsU`J5gig{h z?+qS#l@M`~OZ=e?j6@;^y=9|@OarKG@Hj}gx!aEYNGD)aUh-k?=x8QmQcj;G=wRk} z#yWC?fesA{Zq$=qMd}t`Akj>WNC+MtW{_@?qRR`ySBDsP1>6G|wmp$$u$7$sDfp4$ z`@8kf=o(P|CVceT@dcZ4xaYbxU4>Z%KAVaqYz4|lq5sibJB0gpH)1OJ$$;dy_330X zj31U=+1+zXOPE@5ORpDmz~t!GWaKqgi2MtU2+kv}(rm|59$ed^iAk^vT!2ML_+A~r zJj2d|NVgk-XVN){kw;)+{tmt+vPMj76Vp zZ~x<-^pLZ+8Q{LvGq@0$RJLl)1s#O!{u5;VY}n6e@nD_lVUo=iLVFgN{@aRBlD=Up3|3~DOGlRx{607o z{TGQg{uJEu{ub!ay?G$Q5gD5QZ5{`ZZzTUPa~YYw3cb2eLd4#dRCb&-7_wc8HiC@{ z8A^*vbE?beB@LC{UFwz`KpzbnUkjna#l+DD4)83-KX|5ng%+(F$*n-=T??^fzP{O1 zLCbB?R(lWB+L#3mPV`e!g~%lvg0@q5Ikg^DYi`gkSyc8-zLv&o#d#uW~~y{6|ypYl9lq#__2eRp$;PyU-Y z4ut%+TuM#N5U0$gm%^pDqhP#&W80r4jNl{I0wJ@CJ=+GpN@VgDKDj4#Er`;jImM=B z`YR=~4BK|F1H`T_RFCSjb_s&oA-t&BcZ6|SSi5wBArl|W2SM9fLemPVjxComc%joL zz!}2XazyOUOwiXBMLSxcM7MZT01C0qqpOZp46*;i!bo7JCSTu-2&NwaiohWKD);lj zk;$kQQ-kRxb~BQNV2Yy_aQ}E3kbT+6vLJR(oKlzf)VpC+xB!#uvh`{kdD=rqbD&lH zV~y1&veNL~%HUpZX<`XwtSo!e4Ac;UmhL@UG&P5u7OP1&^-w~RL3n0bs{IKz$_zw} zfSkT?~d&S5l%W}Au4;6!DkR|qvQ@cAKfdVl)b7U8wvIA{j5muWQEV1@N$f!ZK z$Q)1x>Avr1&;;oZp1Fkf{_!)49&!9uU(@F%C+RZr8DJ2!dDE+M2SOrkKnpb7$fAVk zF@cT@)TiQ_Ylx&QG9v-pP+MDj>zvVOYmx=4kzYL%Q?WjR-AY*#p`?+!&iWgGNFC0- zz*0{Qd)6zoB_l6||JNEuqwDQO=+jq57Vq_2x3I3x?cjS2qv!;i8pI0Id<)pqN0-e( zj3FXYVfRtjH_CP^jZ(#Xp}tk5KEA#~G30~~Nma4n#jP?Al7K@L4YKSHo{Pp6@}9z& zSr#9cmX=VlNYJf8KC%fZXFxRYgm=PF5u>xM!fM}_tA7| z8p;VwE`Xw$dCZ}=*s6U6*GKHVky8RL+F?>uZUU2c&=CH08|>*WIrb%P1Zk=5&gc+eCaD zKNZD@BX}OIj9WSs2)prc;z&t2(`jIH{;>Oy*Ox7P&e~CeT-hV%ZEHQ17b6-NFeo3o zlslA{OFbJ5jdzi=o5jTuFl^PVm*M&?kLA2Ojk=UeoWnolS_(AK^4swUV5*7gS_9p% zCX%LRTo5w6p*FS6S17c<$hILXI-30i$|RrJ*N%SzbEr>#4Cn?HJ>fmfiI00% zs~RG02fR+gtzn;1QBWw#I^E=T^cJq=$)B!ed+#w(U*`&LkfDTEm5tW(`tWtg;7Po+ zRj?oaUXvEJX!4^0XJl1ryxw9FuLd}%=?7DwpLXOG>z}1?n5QC8JFAzWe50ON`oa_4 zLGfzoxPcn(-|!$Q6Jn$AgWeVR?CwD_WpJPD;dlGt6Wo?}usUSieq3(x+O&66#>h)9 zjpcX0PE1Ukot@!(Q-=kCKD@jVLL@r?`<*Ko!}s_0wr2vb;Lie;nN+jc zukCMujNp1ZEc`SwCHsD9nV2!4W@$8vm~GqgaVzX~E_~eQAWQmM3j}IuYx7-cb^!+* zwl+0+o^A{PW*JT|%@|Yz;vGjf@9?II24pj-jvJV%BL#fT@CE8&jiMsYdkT)iHuJ(~ zd|o4P@QnsRn0PmQygv@eca=qPzmeO2ZsAh1gn2<$#-3UILLR}`@s2FOWYM2Uqt*q$B zaC>^^!05B9;ga_+0+Ak;4Ei_`% z`&n05mgGeZ4-c?7g7e_)LE#YcBFY+=%yiBupAtFhR+(gYMtZs$fj+LBEXjZjnq7p} z+=Xs%!@y|#+FlFLjtYzqq$$|Ge4U_q=qo+5xfHT52Mjuum6es2;;SUwe1~$Dyiej_ zDdB&*xQ3V{hv?LSMFDt|C1e)7NL|shF%V53FllAa`+nkUrZD0C+bwB)nScYdl&~)J z8$kpJ3BC2nF`^wV1OLPdFjm84Q_pOf!mrKe-pP6fM{gYlG~pQi;j^PNX%#QCr6`OO zAYI`39Fh@(_s(U%YFhg({zzwNMK*zcgF`=PNZ(9Z4oM*2QFcoplc{7`80_3$0V&?z zyZtpJKvGgb#A1__CI5I<1eh>`XbT@7-}vY&UVgQ9D9_~VfKh;bp(5H3XzKzvs^Z_` z-W)rtMe=10`~>Il5Fp9Vul6e##>2I=EbKrR-t3DK&HHTqGURJ`u z6J8^a#GnGlrgPm{01EUA&6H6jdwY9yhfjg%k&=*pILLw};WvI-r#T+b;bFwUtv zXEDqxs}BSEo%s2+w6uCL-b;hYLyP!o22Hte_ymjVzDThpe}eGT06`g0SpkgP8n`cp z2mCvk_8DX9UA+j)J63iv*?DER9f=BOhsk^BT>Vp+P83tc#Vdoi1o zpg)j5)~#{Q4tMz1di~+yjWAQ9?q%~?ENx^vK~Y{_-l`3|qp>bLUuIXywY~c>1PC}~ zGD13C9oa|Vnymb4bce+Pj^drJ%aP2ShDRNldp{o@G@MNyO{r^dZ&iEbrOBIVGbK=b zjfQ?WWsSBQt;HT)Rww#QSg*#kwVV%CFLe1HFG88Qj5<$x*8@Y^c6GPy(l#K}(*QG~V?o)>c-Qtdm0v{mk7e6L4xev4ZFP7O`(g(`6aj__0} zxnf1*W<7n|s>%LzoQKSWk%$c2S|`9A8a>73s>X1q1PVH=lNzX(aTc8~J`B6s{?;-2 zX6GaJ<#6a!ytYlkE735OI?o|uCef(jp0ewD@rYeqJ~P(yu0`4F(M%2QGva5DqgZ^odfa512jb_p}aq}{;3+LJP- zF^Q{NUc{{h>nNp4!Av4>t1}w8V>fp;S|PR9;m9zKohS!hf?sexKED0a^V zMLAchnS+_e?QQY?-K%EN)_t=X%!jQXM~lxIHQ>NpQ|1-D#p zkt*N+#m&W8oa+excb?&8TF1sli#B@7pT2l{jfY~lS6N+6HE-rN1O4s;wg#_<8$Yiq z{=1+4U&8^vmS>!dPPCfq>203HdacmcBQ+{qz0rnq8GX0=@1au}qYE6-381wcBcD?< z#k9W|D}MuFY_zu4fUG;^7riOy6?u{ri?R8B?{VLxSeg<|X{AwCfOrWgG z!4<#}H3@Ec$XXWgeE6h79fSG&SP4C0da=$LC|r0$UE=>-)TADO3LDe+lAlH>NC*Rc zG)S2oTa4y5(?pN=XuEq7qy-Sa@ju5(8lx3(-nk0Qs@Y-&Y&)`Ee9B`v^usY3Wl$ItH>6hDpf0Xl{nkz2|XvGiR+Ztd0N(}UJIOvY| z0XX2Rm~%`c_ySdXR`%flAZ1tkox{U0&}Q-eujdW%KzLl1F7mdFqKRYII4ct0K;@9l zt|Gxl>^4=fA?vGHT@1JB{p}?{A4%f4{kVi5szF28cOQ*`LPF@`{Xnu5wAQwyM5dAEwf|35+MiF-N=#hPq4W|w!KGGPEM-c6jWAn z{ACz@JKypK5yDd)RTXL&MffzEkk&jY@hN@9HMMLAirZ{dZPs1~igw0cTQ^D!0=KwJ zDUb(N0R>-<=OCcF6Noh4P^Vp2O2g$0u=8L3j(w&jzOCT?2XOX;Os~}fhr{q&K~B3q z$*X^cZK^@3BKr$pXayZJGoNgNAO$u!TI*?|cKNB8?yri5#td+rFpU>t?QA?iVNtb}ad~c#aQd6w<^${8D~4VQrlK?MB7ZQ}97IBj$X= zcjWW~Fw38ldN=nazypY*+3GAB+TFCsSHVk|*qQE)pQgWm_gXOW#9&_X0~!UruNJMt z2*m+6%VQB`_~**=_|JXu7iDkh+Yf;zptBVA79bV;aCH2jA{0YA{)yY-Y-^zL~F}wZ~6Qbgii?i;H@|A7kTHAa{W4^{N0wiV3c?yNRMNTfgkrp^p`l%^!?}YQ>)01QO*qa3kVNuPd zOe4iy?uX*{W5ATcrq$1yCS% zKdwcf6PM}Pwf6{6vZNAycMyz<<>TWcJDeO8gvb*f9_i2MTjw&MMH)&f*qY*h<< z3urxf8ii|y^6c#ImseJXyTbAUEudP=Ps2$v#t^1SXjNHR@XIf{HNgyNlq0J|6iO?%^H1X=oetj~&UIeR zavFXX@}{^d`yK6D7t6~&^8dQ}?s%%>xBbk>$d-|Lj*&ehA)Ag+$tL5FnNcCL>^+Xv zAS9{mQ%<%*IFyi)y%Sj}E6VRa>id0u&+|vGigP~WJ@5B*U)Oct^_dFF3ZS~}(`7Ag zc=+=E{#l0|pN!GJ>FW!myW`D3;hYNgH$9c1uDSzC51<`dqAd3!`=c*m^pf)jAuHea zYljx)llM#_^NxI-Dsu#~20gqp5e@?BPy&UGOi#MEw^s^MyZ8d_hM%RLu|_J!S0+Yq z(FjFSWf0lEt(<$q{=8lHmd@!o>Z4{D6iZ{)@?VyA3fg|**~Qaf90HuBK@-Cp9L87v z%$!8!weo(Ivel!d@EH8`K4&|Y`WoSDAy=`Cp#C99R~MUaIXF1nzI|Iui>$VruZ8V- zXYQYkp%nEV2T+!h{tkZ*6E-d2tkdj=@vI-J{ju=Sih;Y~H?q287>NqtL`+c0E!EG# z$qiC^5@r=|To_(H+1sxx>dsM@U<;n7`*{L7)$V%BAA?6(?kFq7?XKs+gzdV)3OyGNH#fhrzU5(U z7$ZY`c=M?&1S6e;u5<+3hN$}RweYe1hNAqGUci#+y?*fz5 z;K`XY(*m?B?G8Z3~qGb z9q>mwbgkf0a%ztQ3mca$%z%*Z*EhGyim(fmZQLMA(o1cri%1(7hpaIS9}5+Qmjwj{ z5V6+RbIK!jQ*R{-$tcMBtK4$+5)xy{rK;lL%(d0qO3k@O`y!xzXC)wYnkI7&L)H|0 zMoco~El}D)Q?Wnsf;*VFw$4uH+td^fS?u88U}K{ST6t`pxc`@#=jev=%gH}IU)VaZ zWYc@3C~UI+m``2*EcDrp+eTS1IgzN3?^>=&CuQ?7QRqmUNAw6^Oleu&$>BB=q;cv_$(y5nAtX-w_vxevH_? zrrK59e&_J5fB_J2`}QtQgJv;5d*X^$0JRw=IDgNl{FiNtqUTv5>0_|z95y{+{z8)n zyo<}fX>sMUZn;d8`d1x=(`i z`A}J?VXk*ULpS9{Wo={&#_H_1$w}nq3E?$hHxW9-tCmiXR)F=df|84qQ*($VKoMjd zy!Xipfe4y!0TjzY6cuQSn2IeGMDbdEs`oAl@)<&#bqImb5HmkMkt6tvHtxpJ0waqb z7@b5c5HbHNevNH0!yGj!IdL}hkulr2qbymf!NTm={3q*$?fm*6dN~Xks@O~^1Cmzi@mtCQ(h0gz2r9P|Suz?s zf;8bTO%z1%m}MoYRiskz1?$FmoVob?EGiX4U0`(O>BF8861nipj+t}zMmo0=hy8El zGp5Qh2;+HTWWv=RI(_>x+gT^OIk=d0=Hn`B(Gl(ZS6`5yOf~l&>kiFR&0#VmQwZ#Un_bZGhNs@1=wm3$IeQwaV^tW@(Delih8J zA!9Z%=hPWHJ$a{*;(<%a@oWP~y?R73Ij^-ef(g$;Z^TIvdV;>{l}kK|NKD*XT6zF$ zM3-_w?VOr=gb!75%(LdC)nBg-Jm{|xY2QUE3O-ZwW=^%s%Af{p+xjy9WR^bIHTWq< zxtE7JDlJx~o!X;CVcAAni)QLNcv3MX+SsBv>OLfinTH&4eVs)nGZPP}#PJ_kUb&1R z4G!}hr(gq%WynC={ytw5bhm`bSV0>`b$&UP4ujE#X+w~cjpa7>A+jnsy%F4~& z$Q%RD(U-YTw)--=qCc))(y>ZAb#(g|I&)5akz4=5=b(rEv%}?L%xqehJ2BK98EO)d zlww^35$@Oi5H)YHXVaLjmbxH8cfF_+pT1&h>ayaErp=o8Vmk8VOhM5jvD}RzajW2E zd_BgcX1C?$pGEcD_{BkIhR&eeW0CzoHGVdGQ>w4@jEv?<+RsGJo)*PNK5qDqFBg}# z)yvF%L1bGjF4U1x&GgBA@rAt6ESm22?76N>xBqkm!|7V2n<9ZbLJ)r`L3mdL|7Nky zk&Fz%hbGmNE__CLg91b=owAO*V}&xFq1B-EQ&cd+P^kw7Jx#Vo8_i&-OUNj&!a}L$ zq#&dk<~!!ytihke3j6bTHcVfEEDAjz8!7SUvX`3OMe$AqTmsQFI#Bg`c73Yn z+|X|DD|XhS0d~3d2yKR(nlZB1Yv+&GjI$nZ)?)Lq<1dVs{_#}2sCQ)|nm9f3l-GbS zyZqUZmi{J0)*<9!uwukgdS{UKMOr-hw5!NeA6Rg#u5{4c->CVhQdjv1>pt4+8-pVj zSJJd3D)Rj^`Qde^#N1?4qpT;O0qWw8&pC+o8ts;tsz;7hzbYs_r=}EvtzV||AaftB zROZuKrJHipup(T+#+Tyow_`7%mVD&M!x`h2uj3I2YbJAthD`n`4517>rfbLNNWhgP^(uF}4> zPo+Y&nQV>OeVMEYK@O4F5)$s~$ZgX#Wl}%4p;JCC8Woti5U*+L8r~gE7QXaC4+@Jr z@q>T%at~Nb#73e;{3tRFIKo~nl|D>GLaL<0ZJcJ#RcWqc`1Dlg$uRA?D4rNmLRyLI z%=(>QS4zhHj?O<)2t88sN~41Jvrr8${5?I_7gZlrpJeqd)g#2^Q|Q66pzWtrt*&&( zKy;O<29a|^wHbCs_p>`ipJU4fNt){z^y(#AG^3JMH%1kL_Znb?jnWM#jnVm(a`XYPI3M+~c~HL9B|4=TFd+AH zxRt+lHb)#?IMi31Irv8L#vA7peB$@X%AWW{d-c>u+wgOJ+oVRn4L^3t!S zxDlpfm0WUyQ54_HE30??Y;UdYN5j#N=m1GltKBNm(A%jozd%*p;;b29gDsU5yo4#> zX(L7X+@!dSSqxP8Qy2>A1mE`OB#w#98(rpsUJXJEunbZc(1#BhI5%fY>Ln%p=jz%A zW+A*<0e?bMy{$iuHU4=o*2V+z^ohh1y3)Lnic%O(IVk~1hVQuvYO_EvOlQqt>&AZ2 zH)P5+!IT0!icEsGJL3KwNr}L1vguY9A#c)m_W%#5euHtR3TSz7qWF19WJX!So9XL4dbMeAA*%E_r0tYhr9WBkhavCV$@0lc+>a%0!&uGL&-K{q;mC4q zFWjk;t(w0cx(P=BnS`r^qcYb7^U3D)xfj8P&g>;m0gb1b@s)-)A)ql}SC~X=cYY&I zL&8;B^zu1ED9Hu~-bR&L5R|R|{Vg{8K}n&x(m|r2nv}jX7&{0YC8SfIB1ZKugk1NX z=TK!BehcRkN%p_q24^em$&RmWWJ!X?TTaoLaFC)d_~&il4dDvqEmt3kzjq?&&mm|y z15_m+S06&EO~{t;1mT3h8TR;ETqgIkMG0P%^o0ww7a(T+_t=Nd8J)K|u>%faFc)w~`U($w6OXL-IRf$YIn&(4FGs zmoP-e9F7rk?xrh&!~x4TQ9Xl~&AR7v2J_3x49@!ie8Tpo>x@FxqOpy&VU!*hI4+?z z5j9vW_UY5MK{z|%Mu2CQ=BuR@$r=c(Vf4Y~)q~B@J~!d;_<+1A&Dz97 zV75X}4KMI+U>QJ<(UAh}L~PYX(?2=(_d2AFuBs|{KJtRIf#UrL2|RGDT|EVysl_v& zUJ|bKJ7JpFX`gkQf1he-=h`43Dx6WVT!a%VZ;+n$Bt_1NX;MRB@NGzJK1L44mBN_T z^U~ca1bs9iv(jS5f6C%I?yk@(k<1~bK`}5@a)wD5f3upBK8|vb`DrPSrt=B~HAl1x46z`pXLJ!9kVE2w_JL6-Wi)-rxDmqXA z-QyGH)gza7{&3~cL_rKS;wm}#_cdh61qpTnTXf0&-V!%!EOzThXKdaGXGvJe=%=E; zAUP6C^&TKdAX(eSKJ)@{1R%`p(;t@~G68egpxy6DQeb}9m9D^HmQiWxujw4YdS&J1 zp6>2Uv@M7jP3vj_bP9D5OMkTqk|;v8UIYy)AsQzBh}=jkxw4Tv?#GCa5f6~hImKIr zV?jq>tlM9GnT`4IQeCWNY)(&Ney@uIjf;nEP};&u#8!-3#|%^IpN_6da6*~BEadgb zYs2%nchQNPzbTZwOToJzlxTK?C=BMzWkhUFR!NTBn6)~=pyVUj1CGnhS#xG%sO~_o zQZn}@K^)HHv?r&+a0E)rR?N`Z0}|q*4^TWE+ZeW|y8f-3a_An{BVsXzme2HqD6eAD zyd{P$-pF?i4laF3B>8~j+Yn7W;uhgmUTFU?9xU3RmF@Ic6y`B2T&bVQXCo^Sf+058 zJ^I&QMx2I6EXM1-r_h#_A3ku%x}_bqZmS;VV@~6%KhdQ$2e`{SWo94Q#jkO)X1Q<2 zw8}ddJ}+BY47B;Z-g$OGo;50AXYss3c zevcCP`jwII36FGklPXT0Z3iKw8`I-Obc{jTAO#hZQW!_hEYMM?VB{f)-6Un24kWbg z#oVltxXN^?R94F;h%T|XBuNgG4|V|=-@r(Hsc#>d=VT2uOO518qiIR~FbXS7sl6zf zetL}91H|RH7|CeDSU9hPX^DoGc&|&Jhfsnj^~rhZLV8vwSpC&dKK8IX+~bQKtVjDv zJ-zvHA@}x9F^5CW>R$61kAhdSVa=S4h^v0%x1_-8uKLYkpFNhI8HqoUWx-BwM|%~s zYvW@-_4i>@=d!pw4~9M}m%3bv72H>QJIPcT-rNj~g&!CtrAS5=Fg4U5^8t8Q@p)>0{H&3!_5! zwT%*D*O9|JHqrqoINAogcz@vk#!hmf$03FYaWs^;6-zZY_AWm6c|FaFv)JAvo;WaD zvH40iH}jUEUlq+qNvZ^1q?^MB)~Qs zKt<_wpe!dK?_0bna+Z?hvG^>=&xg0;q6&&5W7Q>IMP7UK-d@egMOzJR$q+-w$Q_n} zZZ^4>CWxn}ci`Kfwg$fgO8^VciU$b4q?Wx>-28%5sW}C$&iDnP=kuiXUQ9Wnr42ta z+5c-$?bUKQB5lR98Fy`4%^0B=}Z9w4F<_FF#M6hHEZ>LM8}ld5tP@=h>LqkK@P_=;n#r%3w5xz21J6~v?Wh&8E3 z%SJAypeK_faoeq7R0y_hOr#^cxZ@N<^Xr!9cjSclhuMkUNR8+yR9_4G3{<;jiAtrR z1)O0)-@lDl>o{UzhI3M;KC`J~f^li1SFsbkg6VAr)08l~I=CY0c%K+^s+6eD3nHL- z9P&g5GH_Ya5tmuq7hUDq3V|v@a9xW|UX%7x%y_5?8ij>U!Zi*vv&{DCXo=_iEOdaFA~}uScJ}jg-l!Z$#|*OVsGH8RcJA zy;{AcOVO@A8fgEP46_`FH>nB-12yBZaMv;?6qvCsT`G%u&qty#jMVL)%z7V@0Gb99 z<0lrDk(Vh{CQy$;4}4;tNw~BmnPmU6%X7pKg(BHjisMBD?2g-xzWhIZ(7%cdOg}wp z@0#MCHCPf!8ConU4uMwMdbA&#Lk3ZH$?pq2B(LkkxLgU#GkoBg2p(j2s zTw>%bS4)+7#J^Q8O=G74Miz1wz2bR(F48UAl5+Yu|Kmrqr+7K3ZmmtHWm*b>@T+a| zwUCjyxuV?7uV1MIH6c~d>XgOsH@f4Dyp7-gDehCigYOLrU~SRl{EPn4au-wU*7<+! z=gx*XKt(6!UgxT#h6z?>8G+t(0(UEdMS*%I;r4rcB+hqpCmhe6Yj55z@z3B!8lPn| z&b=m!s8tzMN=k=b5E?TSk{GC)4eN4$th{qXUe8qdDyT&JzPYCHKH10Op20m>H_ zb>Sh}i1e9!2Mhf(@!?@UHiE+v7`naxvhewim3jmpC7d8AL;bU)8oS=i8!yHCiC*M3 zq&FwnR~&#?&v2_i-AnWt{b++A3+IUuVY3kv5_FtJo&xg`X?q%m7as8@JfC{JG+$Ox zq^S8IE!aL}g9eR#Rc%!<%vA|hl3FF+G(~X{1B0D)q)4vfXY|FT+SwJE!p|;b<;AsI zz+H<|y{71g^l85UaakVw17r82iw&O`hS2#jpAb2L%G4clJyOK@8ZPz(oD)g1PcfKS zimWlD`8x6CbjgxBm^ed|;h`{zmtCBW5Mgm8&qFB6==EYp8V^!6uzDPA( z0#K-L$}mS=oP9Icoz4-(cj|VyiDfaL^$B!WOdL!4^{3sEuAHAo?)$VDA&mYycPIwQ zvQf~6BLB`3`UgPmjCu1vQ~c;rl#k5}AAVq9K&0hlM2BQ#?@*TX8E!0`NFDUL-=pMf zMaHhnN^qSce*w~XhF2C`;?tgwb*?P0D1b9Dcrx`g-zZ=1vDi|!i+)GV{8-zDKacBRCO7`$eiyy4u?26?#m9J&sor?HM(9NNd7Acl1_oc>f4B z--Via-xw2u7ac7XXFT|_Mc)twmn75omA3aZ2^XeOQ+7C=DR^|;zFoUA~;A|Zent^Od78u)4N=4`%tosZHS0z@o8A8HUg-hamU3DjRY z>O1DLtVXTEWvQo~EqUw+f!x14O>@VCu*{_3b%2b1YwS#C!v-GVMEGv@_R{_t%i4&5+Fu0)RpxmfhPUL)r2csSRHQ`%tIukbD{0Y*-B< zD}%;AP_dqT5`}~Ho8qwH%rInw6!~pc(tWpLQ9=yCaIkZCH{F5zMptuEMNvY+&TS4j z8{m>_T1le~R`5ww@WkLaWG6fGyAfU7{hVF`7nMn7nrLS2Vm9jvM&oEW`anxTZth=8 zecMKkE^&rMKwI|)^$8tw1e4x#+7!o#vBDI8P2~8J4+DgIIhOz57oRXt>LpP~T^g&u zcYLk6CPPqd7pwtWBq!|j8p% zydD}4T!Yk($t>v9ZI&NAV0S5S`#Np|t~hDdmX>Z#EfrOv>+NYKzen12G4$!bO+P?t^6NJ5@cE#^t3)F4>PUNuu3^=Y_l$umRlM-P7fnV%&LV&y4_E8Jpmw z;ppLEzCA;8T6X_S1f1IPZnj?w#qEo5r2J{vh#V;|3;sTRI%RO6@z>9m#G}4kIh^%MDpJgP1Xw2_|~ z#$Nb9j^^KKE0Z7bv>a?|+|qgI68dMk?jhIC#>-c^P1~wNojFZEf9(ZE2jZPci`7<~ zJw`^%qy#N-1;ai$Yy#LPZmuxWZY0vD&PnFS7k(TY;fdt+bPe_2Q{=_&rSWz}A`aWFsqg$n5gs4`UVC86iCMO?lm|G#p9Q&+#UYlmnkbIPULe10%8E zZWyma#@+f;Va9UL|J+~mSX)v+E|D50AlMkJEi@pYfoV|rkEr1N_7n*>rxMA# zf%Mt3re8HI`9FUTH+`;k3Z=;TVy3&1f7);=H||r;Y~7zrlhHz=u1?_Abb{s)xIG(% zVW{N~N~|x_#;iWg@DTTVkXwDDYxU|$mQ50#PE0~h_yKaq@9_%b{mf8D65sCV@!+M< zlgs)m<=}+d@)y^&9xToE;W#@SU#v1${?{&SF1(rjW^v2Dx)|PV|e8?Y5oWL z^tt0nId>WAt}a~NP0VtZmHR%^;@MFWY?&NOsA2H8Yg&W+S-VT6I46*bwQD3xefjO8 z>c>(Tx7jZDI59Z~SGJVXk3jTUmUP+3WZUxH&d|m_*2Ee2Oon=k{CED_ZjdoSyL_ht zd)-S|47IL*gu~GQNCLYH=eN)VhsCk-f8-az(+#bB^mo?6LIt@_ zcP>&o!wVF=`5swQ;?6@W(e%TVJnsVxuluhj^(h%_{JshNeAgg!lLC{F5nW>c zJ1f*N9QVS2^4pqq?2p4c|BYv}#Q_{rM%giu?0ztCa%q z`}+F3;QM&fnFO+Y#)Qa##iLz6%X0$*=1<#<{8=WNED8YuNCGUCggC!FGSBfyE!p=U z6Sr^|p4H8)4W8ZCi4XlV?5UwMKsp`W*xCQfKHB66RuQOSXLJjzDA907=M#}NJJ)Zl9q1zcFHQ!`E#M`P5u}SZb zz4+kax%!lb=oK%TwMnBRLni`JQ~sPt+>vOOKi(c_w>p`2d^8ZjBOql6jyXk(grt~a z4R4NtYT(z=id2JaRWHZ9gVe2KpLZh0hhJx5jmVJ~AB|-t554_85O_Q_aH^%$E7w1e ztLB<`Lvk&;;3PUfr%d%gBIT}WZX?@j_jc}6s}o-H$2b-DqDH!Fx{7+4hAH^m4xT&t zJWLvRu~I)co`);&=;(c2d;0Y9uj`wy4{jN(oIaTGzChn%xE*Xa9yc2DeLRp=b)EaF z_0S*XESk3=;dPJ~!(Z{!{jKzx7qv>qNmacOQ_Vg6mO}=!zx;w@O68Mx(MZzUROEI| z%VgxYo9N!8oi9@QSi(^ZxcEJrqCu^4zmyesnjUbf>TF8|B-J6wAPtHd1QuUV-#s1ySjdu!@UE-c3C|W@Q|m`1IMy5jv(knzxUq zT{*%sBKEf2bgu5q%M^#0HC-PTIUagz_BZpFq1y3J+akFoIj^4r7+KgpdNts-#;2_! zYk5+=QQjpeyAUC-iPMN?XeYzrG>jgNfL5yLLQAE>{{HcP--Kk*(mPu;z!+bcu^Yxa z-HT~%Kx>0 zG^PZfP{$!{R(p#~`|w*p#s&y{oEXZ7*bh$w!;J79s8%)O)-IWfCPfUJIP~XLQtUpq z>5myqZ_f-iCracQxk;$8py0QtKbyMt>0Vw6Aym!hj-Oo^8MuFuno+J9cyI_w*D97dyZyvLO_$>%(jzIkY`*ZjB%Ni&WL<^WrW*H9grOB$3 zSfnc`Swu3QXKL-7*91w%%ZLJ5E$?$>n%Y9FDOAQvJV2E28Z0rc``|`1ort&j2q@UcUsi>g5Fs9IjzF>W_~0|t)^2%-xT?jn_xcpN zl`@kOlv)z^fguX<^O3{&nZST(vr8)`zq?cmV3Dggjhi^1tC7f*6qQ1TY%w$4;kr|^ zuzyikTG>$6bsEfPUy~eHVS^+!0_w>r<~^v)Sm*G0g(lGo!yhU0Ifl z5sP?e7-rF6F^Nug8LLj91{&_S@6V7WypZxOewUUWr^uo`xn32$Is!V4nXY!p-j=37 zJfomfh;=p}Mmw1hkHQ(~F1|p0WW+~4^D?DCf#*(S|9t{elF-4&545drNGM(s-na2F z9|m=#*RlMUp5=HFxx_%c-Bo#6CZy1h5Bt?{iAhUKsb1o!}MU`pg)`|t@m^` zj5GRctpaLNy`T)FnNTFso~mNhr)*&@yC2i?mxk$-@Mc~7X#~(5^;`9Z1~=-_U)Xt3 z8#SnFkCgVuWwPp8XV?UE3ADwh4yp_=we{#A$b-v)MmM}-lJs4=By_RfDZ&qf{Ihyv zz5&BxIp|;!R3Y}?sTmR6TR}OEZRC$gHvxSMgR{7AzpD;g@zC=djumUD)o+Xjyo7wN zEL3k`^#13_N&SfQT?D?aK`D6?7c0RH?MMj5U|#iC zU5r(LAK-b>dMZG4OWleq`>}V}V7@np*8WUs9j5M6?B|=1h6VG0H@e&J!o4ouxvtBt zQb#48$f^NaWgCSNHL+@EB5{iXU%KdcX|IcqM%1XhdfBTqMD94geRrr-PRmMqqfIE< zL%Q;Y{4*a^#K|M63f(W2T1t31dUG zun9v5G3T2TxaYIf$G^f{0krFemw`ekw`(^RlBXZb`Ors;m`?S-+wS*GL5{w~POU0@ zzX2=|k25By)zPA>7e_%It%g3i8k{q>KpSf60W=J7e?P+DzI~GKH2Nc+##L#ARxOiI z+oz21GH?6lfhXe3p{}G^b_56RBefc^4<^w&G6$fOw;Liu@6J4gxpAk6+mR4fIgq8T#Dpq6HRVdRWyK!E$~ z^R2DyYImLZ<5v+nM0@_%Z;N)zKWfU!WRVLg%^BON+I08$5bNg~S8bwlH7KuUSY_h# zSETrmjG)cs%Vzbs%rM)${Amj-vGTGa_VV&37Sqw*nc!f)GF*9E#>Udr+ptmdO7*rI zBNt~yOk#v)L`+B82R1qx$EnxqvOLp3biDwfQgsu3cOTqz)dN%2bPGUv|^1e4L zzwnupmM1q+R);pza6D^~T!ldo5#8TU23Jv7sqeJJe3fL%7Y&;M=nazBd3gXM0$&I2 z<*nmf04_X_Yj1lbN9JG=|Go3c3rypim$cpEhrciwm=9v^0RBLjO)b^4;<+Yh7PdD~ zg^99A)J^Zd!*=YucrJSfGGfi5SGdc9fiRN~r-q-^9HWBpv(of4S8ihOdMN$RJuENw zYZ@Oq0EMIJ(#Z%Vosh8T!`Ovta%*O{`c2Fa4T2BfOYI1a3H?Q&-5UrT{=X6wl7Anm z6%tiwV!eqvKZzu9LUmTw3GiZv!jpYqkTlx~i%4typFbgls;h+gpbx$p@alH=bPuOh si)1Pw;7~2mj*mbJf=_GSDKnC(7X<}{KwV8)9|h%+CkhJcckD;NJM(Fe zoPfVjee_ioQR;rs?Eo*(oj}?k6qJS(yjxog;5Ck?nyC*83Sl?$4{E;$+#Urb>X*7Q z2=dbEpd;LkQnhU>@zDA<-l$!}S4>)2x(1`br*2?wUtkcL4dS)zvN{mjhEB&8>^lr> zCak|vB+O+!IvM=HobS~q6#)AFbug7r`N!+r29D?x;*VaWU6N052E9n%QO8B0FpWH>B?Cyd2~+Qh1RrJ2mRoGZA<;ymghBw zSYVxHyMGSws)|OZP&PhM9uIo@PA1^6H05dAS0ViFNff7_g`t;A0bVD-Y#Fe38=m*O z_u1On*+HSud9?VG6R)&yz~?@VYz)6O1y8Wl!4#D{4@0-22p()7hCJxuf7iQpZ!0zX z<)hyxxB=Jgvo!%5uw}y(B|BeUV5qsQh=j|WFV{E`eZdCB1Rnlc9voCB=|K*Oiw8|m zrkae8k5AK;SE%v5@~kwOTeshHl&mkjesgpujNdIu_}^zBO`sI{%d7qoqBt>%WvgH! zdx`{JMH=90oVFnCwCzY~Ik~%UuOCoW$z6Hq=5ATB`ByF+s9$^0QBIP_3&0Hw3_^e2 z^3zt?X~!IPnttPl0AIaCe$}KkBz8IYqW14Y$l5L(xcq5VDc0`&)moYo9~{41D7iZ_ zkA(z-0vdGj-RVfq`{+JvMKPG%#q4hUglGl06RG~!2petWwP=8AJ;9(Tf&ZCN2?`3j zS^U;faCtX)vc=FTd{KBq_jz0V${89bK3?8fU1%{eO_%Qn?~+ZDOAfoDN3 zy;a=5!!F$W-&%I6%HnQ$i2*l06@wwBq6XGX8b~`6)kLF(c`Q9_sfD!E(A?mzmMwg? zi=hb#zE$*P?l8gNweurqp(0P#_H@m%rLIW$0IR@8zqmSCceYl<80%4vyzP#a*+~}g zO_QYsDLKRPh;80u8)h3Qz+!MY#UuJ^t_*>_$oUQ|C<*rNjCDA{RI~!_4E`43p&ai!ZdJRtS7E8UAAYhL3Mi5!m4>Nkq-?Ze0)BoV~@@N)xztfxObiJ@}cPFx;^|Pq{roX){)AirKG2zRy;hk%I*H~CF*1Y{^&-tg~sg<*DqoVHbm#vnL zRt=J|5Y4;&0etHo9z`40UuIW2Z6c13W{Ynsv-!_11x;CQ7g|P6XQrTye8e?_VvlpxFNYmN06pb~=Y9s8~DJ7n5g4=3H1ZUb;D` z^6s&fU(rSp=rVZg)#h7HA?!Ct2U$N%PZAgtkMlOZ6U!jl&84GSWQG|f5H)*`!vk86 zp&Rh~oRe|W)5|}&9?J4}kB@UU-ky|}e!La7I-7`@IvyS(qm~yfyXlNCI(TqwH@nr^ zz)6_l{rKJulqFkXy~0St2pNp}!|DEIm@`Iy?$NLw?`K*@$hBeTd)aTufq73p-sTpN zKS55D6e2}Wn)LEpiI@pa)6)@|?q9Rhj7l;wPr9c>ii(MO2zX08!-9r{@H5EE7raFt zB1(|h!Up$+adL3L0zDP+iX*SesBviX5d4ts^11c5xW(eU2^(X`;8l;v-s9h>3-$%T zRha^UbAALYVJN4fuzB6N=j1-yo2jwo4I}PuA+5DH!70(E;H55OaAieBWM4YN+-+&= z;lr5^)}@XGeK}SQ5|x1SK{h%@nMwV05$7ONNe`z< zyFq&82sv`h*jSarFyGBhBdkI#6{e%DO&@-E0$?!nnq$xbv`c-|jR@+KT`^zu?j3pW z6W|(zUx8I&=ARU_3XM423;Q(^MU-?NYJ^+S=keuopu>dt)obqBn5jU0HUK&+0q9JF z>8MB1KaiEoUVdLGQJ4O(b>tEP9aX;m1)NEyU&mw*IPo8`tjeUaU{#B1$eW6af3fhA zuG%~&Qu@i0lc{$4T~T#~AIi=@M)9`YKZtLk*;C|6137C^Fy5A$!xZ>vVoqejCU+Cr z3j>lTXd_ui3u-Z$H&FheZ(T`1D#@{5wL%Ek;qqJ@sr=Pf=KA9IP{g_iWJr*?^wD3k z6`D*n=g;+mz~(f5fVIWd!w|qkiaNh2DRU`EG8b{0OT5jdDwMvic}N*|e%&P)NuDf! zDVeZVrw**gU>C6F6)+tg9VnV(9I%Opm&={vwnC>nSja@RyZW=(ElYcSQ@TNv_gq`LIsa62@ae)+DQ3jy>oWG;A?xGY7< z0?X-z1$^&>0)oOE{mkm>m8ZBh(;0j)KvpysGwG346jHWn+}khLfb~ z;A?zhIZteQ6>$9z0tYBVpzId3egR(=g49=4hbUU}sP7Nk(IAB41O~v}t3iP|j;2le zE6AkJ6N06D*_!D`lkNY=m*289p&|bLHOHuq_dAyX57-SHQplqOlb~nPPi!?xIpE4_ zU(ihr@+DUCM6ia>t?wwzx+mmsnR5+-|9t(@?8%&)!KtG~NMvv`ebCB^hib1AeiU3z z!5IAJdlhF9U+&7^LLnkLt}GD`hTII}`VuY;T|qMl&(`Oy=$taK(5(pNBoJthc^%v50duFf`G|9O~W8^V8*Oi zj0iyRX@^CQ4=7&?Z4g=@p1cW#iM|_1ml^d6BGcNJ&*dTpKJ?M}#%8UZHHrS~j{#sW z*$|Jk=yZjfS>x*k1AtwYbQXG8U35pjA(YdEW-`gDE;D+0VQvpB!vgAs+Bo5_8og|P zAP$65*eEqP{n)}69;{Q#>D8|d*6_N{<*Q$BIO#x$d1uVoYX_ybkzryF2>Xvgt&` zIN9d&lR%1{!5uGQ?!EaQ?D4IBowUG{KAN0TiP!X<-67(`X+Hq_c-}^^o zH5u`bY@r*awq=O#RTTZ1ZWE*TQ7DH_?^sr4h)-2Q0&IS~lWMXXpu$;+NEIag z?{*rUu}VTn6nLv;USU`hJ7x+Bi-(y)&Lsi7RqKn?$oe(imt=RQ^)z?j&)AjbUCRAo z4`#y)j)&A)^1?W4vRd0fT}f#^xPTo${EE5vY(Vl&@PvaDFI*B;RQVYxo4J`74NY#y z4*N->qvAq*zbP0`=};$H!(Vc!&0OB>`bVyHd>aD|kVYFQA+8*k2Y)yH%b({o%YVy| z512_)$jd)*@O+wREgJeGnc=O(2pwu?#p{7%R#^#l=X&f_Ty{H?jVpJq0d?#J1$!*? zI9Z}qVdA-BRF(}A2K?_Y({ML;mfHX<(wn^4K9+=F4O)Q#($Leg)ZO|=Rf;{N!D`G; z+`T7YSRWiQ+a!`B?>_LeAXIy_h1vnDaZY`u_N&W{VM;Du7n*2_3Qn|#mfDA03UWT0 z&tW=~r&`GR!xco)&9f#fE!|=Bt#;a|A+Z0r_Qv67EYo{q-vR_;eEsa|?xI#o=xX?f z$j`Xic2J`sJ9?ts*TVfp}anXkQqC9nb9(CiL^wt@qivg6ms~{cH zrHfg{-nGGO!BByv#>tLy9q~bKfK8sMGT*b3ZH195$$F$jt9?n$b4w`!cWC_9(PR-N ziR)yQfnQ<(U$Ez`Q_7-~&oEVOUIhn3>@Fn@-tI_o@i=^F)6_%94+|1XkY@XiVjTZ8 zimS$X2gcW`fOoMP`_Zi!5pp`%QCUcA9)PxDttvf*&aADWHn1LpJwOyK7j;bQa6?K8 zyDnFcABQshM$hEnWa4DD_!wmvZTxKpN3@fMQbK`MBjmksGoMQzPxLPx^(}GexXO4EsVER+{5d2O4|xWFH32q&Oh})w3+a zjlAilvRgP@HNPk)!=dngWE+hAHnzS>D&jo4{*XBL^0Y(Ne+&egBBo(rb_AP|dRcb0 zqGzNkmeCB?OGWHH@nHv<=E;8v0gEFiGN(IxW( zILJ{Zo1THQHzm4x@VOonK~i!xuj(9FPGvwpP(iBY_iSy(oD*k_y*q@(!B5nKQjKn7QrcI?Z`rJdlT z4OEj&zv*x^oLc>H)otiS;epJ-IJL4)ftT_h!? z1An`Y`ZQ1m$2G&U`-5xg>Lh|gh!Ysph8DFGqG*n*zc~nTrD_Ddb zOK+m=M6Difsm>K!-H>E;)59{K0}()xhb+3ql>a0f?G%!(d^VKVOiPe?dA* zijrUQ8;q%w!IRuLt+3;WD;1Fl&VDD{@2kZf=Z)tkz>%UFGy^XkX7(sY%dkJu(m(DY z>}CFIjxcbY2|L?_a-=l1Ea%Bc3{$;fyoXvJ9oN|H8J%BTTzvoHOz%Q0mqZad@rkEu zCn8s()z#&l-PlAyK>=bXIhjyQPO(0wsNh-1dtb2Bix)4TH_{#LVg9ry4dbAVrk0j! z7Y!7#q?c(4McErRydW2v6wyC((zWi$Am~MPsw#jb2lyoc^%yH*R)B{0pB+sBwO`vC z9}M(;e9roE|FWn>ZM(eR&abPlH=f|<=SR2%9wet*eRNFn2)aJqfYP=(R~Xk>(D2ej zeiQ^OS5<5jVTvL3tA35Y*=TcCpFE56IGAU~<63owy+35ZMAy<_$UER4j>lU$P(-tEE2D8<#nfVCa%rX=(x-y}d|%?th`tpR3q zg`YJg%FQF29vJvqT1dzXO|2i76V&BYeP&$wur_qv2F<} zop?`n?HG2~n&4owP1hUD=z7EKH^JA_kV>|jL5T9}SjWDS{WfOQ)jgv|;~3kKJh9UT zMZTAIv1>N`@IM9Vg~5abSPj>bIh?geE_?-QSC}X(d?U{>*%V`Xt80dR!MUrbAlEF; zGcWknL)hjJNyA0S^Lv5n{(IxZmO2luISSsnnl2$Bp;yCILTfg17d9?*&|6MH0Fcu= zU}gat!n*Uv8H_k9C^nAQ&#HA+Q1E#8RO{-po>M-SV8XoK$;|9`f+IQ;ediybW77mH zLBv`66x|u?RI&RQemB7@?GAoPBFHg{NI|YHVIo?kZVJlCA*}o#)-ijS&OV2%NS)PO z#{P+`?PpH;2@VaX+G%>2Dye;pxM1R$<9%(tVnioQIjJGdt|B#Mm@&R-#vC?*Gaxu7 zORkiv9;Tqfw4ZC?{m7fNs~lZTo*kvUL#u$Pvj?B6T?1RTK`AKuLElV3OL0~NyFS)4 zCcCu6A(w;MjmYKo-;=5!doxAg`xbiE)*hGmS=K^Ubnh{yyy>7AM@koRBchd1{do)C z0o|{<*uj`PV~voHP4jLBVWd_FAwzlaU9>1SDx@=^-k{gLR^ciX?xKH_jN_Xr!aIl_)!UL)1AplMbyi4&9cEo z30Asrgx9ml7(D72ATTyA*nUF9uLp3;Pq1K80Z`ESRGA?{uKye?#H5jRh1=y4;)>j* zH=>f#lw#)d=GmIPsb7((t;N>T)eHPH5Sm?(PD_idVeJLsIQ|+ekw4U}!{=-$Rwz)% zdAc5hE9x^8%v7YgK|R9SijRis9;<~(vr}BrRMR|TSee4H&q`vpe?{w3=kVI)2_kGo zl$0aW@a20>{|`}s7`IBObc8KrUCHQt z1UDgNj}u}rER2K0)$UFm8fri!|IVSZ?5*z8>)oyV-s!~TBVE=4M@2>8lJTj2Vj-*} z&EJLi`(}>vr;Wa|POpPi>x#%Ie2o}>O!VQ#7$NE$n~_oCID?zCzmY<=jcj&F8Pv|WENb*f=hMmV++)s_4I z1oP6w4z-3Xu{;OWeu%*h(G`)@?%X^P)2>whL|#@z`fA+D5l4)m%oO(mT=44MtMPGl zoOmkz$niV_#V`dI?`p6BctRW&lTh@Oh<`GR*VwERt;}pRrJO}rRx5+}4}RAkvqjim zLMG#K^;6W}SY3a>+Cvzb**Y4pV4|yKCDTW1I3u`%=q$q8~(KYjM zttlAKC`tx}((z;%ye}#a3u?d%r%|y?!T*=W=^;4p0i;h(eXFAmD4dIp4v9k4ed_O5 z#JktQ1+33O7!#Mv!Mq-K$~mUKzFLANsT+8GUY`SxENW(h==RO<@iW+OZ(7!D9`L8A zW2ME!*l`^aw1Jp$AiB))iQW&7OJeAX>o#}tC$y60;R(7yCdUpKZ9zINH@u#1*XqWm zyXdaJQ_Ju3R)nh6%MF4C^~=@EV$845U2>WSy6K?0!stij%t)5Eu&4bH{hKvGi&gY^P% z^qOKl0|6G~@)`@07|a-Ue(AwL`V4AA=3I%(N~C4+i7D(t>jUK^Ur})$g^7}VH0cvQ z(=LhXjckNE3gUB|2q_NA*U6^YHB<%1k7t{^bexMapjra&_sqMB+H_eu?6K1YBhmv zJ(Zk9!aqkf4AanV$^-MQrChKmC`NrLt_j05PgP*mRQU&bbLsP-`&+))5xW1)-ChH3 zbk(NML-#!A5-hXw7!hNs7RaFw1RXjal5JMF<2m~SlHOn#_Tncu2Z`rIwv{()ALyQU z@p`0Eu89OuY8irjIN;a0v)`&Ht9Lqh>X0 zCkk881@qb936>zeoV>q=n;hYf7O)|t6DWO9auKem6Gx93o1{t7A43otqq`)mIs6C6JyDd$bbdhUsjJ z_`!pWFzc1`OT=5?Bog7@H}38G*zMJ=nP-TF)U-mM;iq2pX|mizb;bSL%QiCSFc-|; zD43zbfZ5?I-b(nkmkr2|1i%m4SXu^!E9sgTZa9(0^8LByf%n|;_cML5Qm1ba3Q?!X zydoWSQ~efq&6K>DCdVP&uHhLpw(&O`#sz9M73ykrxfH#uV~qol0yWnPwLmqI0ive& z5Yx`EjwO*vpz;d1stGNrQ+7yF{inB zjiM3h=B1;5@%yiOt*4Qdg*LQ*({OCt5vycdkCr^ww0-?~xcm6JPv) zXW5fmMWMw_hvN#Ae7h6_piho_To1lP2PrEZuDAM9Tojk=c9^%tKb>aV)LnSu?X zF~sQHi*Hgt!;+UiNlVEIwEPh2?K-5X{-3~|@}R5cYEsCF93qohq@~H7|6+Q(n|pjZ z$a&z7L}*cQ@jB~HD{3#v;PRu>SrxsRiCARL#Ap_`T5-g!hCYIqLPoYt^CF=Ye~-1) z@k?#*@TY?4b|IGZKu7`d95ST-)g~j}v)^4S!x7=0NE9}zv-lkP*WXs?O@?P>*;*9R@(V^x`4^0>}eVmX&P(v<@FS zD0W6h#w_KJgmNNrXEAELo~b#!1a3G`E!`*RBJNtQTtvPF(N$X}M$CS0MU&SMPy7>} zIQDYwv$d-#Uq^3S0dz@GPW-m-cuM5|VoZ##NtL<8IepydxH9FY*$&iw9%H-=3+DUe z2rBs%J^H7Bq0FXo6rDmQ{6SYD|No0RC;+sz7M~kyYqhDLNCk)GKwU5s4Z^ub0!aZK z=k+`3U>zB|9salVmSpB5xO=T5nSI55M?=V#g9|oKT?-e@7D}F78C_Z4rR;IswJx36 z->CjVMR#@y^Km6I$ZhbHPNxRtbtnLq^z^NpBg3Z{>x}PQ_oN;gXM>D>siuX8j$09i z`9j>9=X26cDKMtK%6lBdmA9HaeEj*cg3T3RIz9I^y9pE-1O#1R*i+TbgT~aqZC9Gu zVk+NXI~7t1IE|ub-P5o&4{Y^IkxkBTXGV8M1=NPAwa-^H*ziK>Ygo!EfLb!ol)}@& z$DW%=V2er6noK$?0ixpDo8ZMY*T9e|Cmrd#Bfd3c}`& znj$ix$eh}xWU8V1Ic{~ru_GS3SXB6eBqJ{gWRJ4iva&3{v{aUGN-CWKLjLmC9Roze zf^}_|Ww&7;65pA?rD_kMFaVQ%{xepUZwwmwDKZK83CvTJ_&>n%+TcM=i=HBny_w(D^!-9 za4ik>-SPNr;Qye&bR-Y6n94>4C+tG^g*Nnj7+_s2xRZw|4sZOIyCy4~KbUXVY#4%N zq${ZShk8Hc0=p96YqI?N>(6LlzZo#dAnDHxn8b8HAdw~j#Hw6a_;I!E^M>XK%br59BgR$rX0ox z2bst#EnVy=0nLttw!)|X*uvD~*n|foc(|{JIGkv#>f@FtMuV$!$y8!`j2=Pb=h+P{ zu(R3 z*$+;>)-NsI_n8=;sbfYNclP3?7DKdYWQ_C*I7QAczR`5c26!oF|CSTH_v>VDYLpQ_ zsCjda^>XeDk)N+GbWRv4HfCY(`kFuX+vDfW23AqUqP2V!(358cpY{uze5IIG0OfSzb9~($-X*0-aMGPTOm$CAgW>+fAr$@@uGGn zRwVMlrygNx%bfl<=O83o`Q&}(syDX&^*`8ebDOIj8{?`sY;(O(f|tVIi$3K$)L#nh zZrCD*SfG{)uKXQKc~}a+Put{c|0E(8ME=PjJ^qXIM;J%)|19MEHuD=v*(Gx)ui>}< z<$S-8527UMJu^ImRFVqfuy1DWSBkuw$dZ7I%^9c_^BwRmHZpYQ{WNH)sfnwuu5hbw zi?-U;KvTE#U6Hg@)}X26>Xy-RG(abK0g(9G)!cMsjT2clFq){RXT2lJ^=G5>3g9VD zaLu;@fUZRGOiK&Y`=EF&|1$tYph}HA!p?%&&q4f&+;9i$GBv^9Tz^xF!h}oAfaB!m zXtyB#Z>ylbOmKZ|7w%(GI6LH!WW2*4>3h^Ot((7sL?kxl+h6q5=|7Q&#w8fhLpscp!oE9x(9Q=5;} z5V*EOep(m6e2+#ew5e%?AOQ#|-^OWxKa?L_~1Wm`Qc+UjEsN{pp247fF0iG)G4iNF38r*1P|QF>^V~6$NXOa zx>#@olnrT1wf4V>L2;_Z zvPIa(Bqy&PTmhcS<^`e$)}yfS{?h~b(o*l%kB*NFc2x&@admE;ie51iTgd1H^48Q8 zOa-@kb0)hCJu3*OD(=l(w7mtB0gPTjM`SroTA^OAwKd21zU$c`i zyx8^>w5C$G02f!l(*TNrZAkWF6pyvkPLlz?vKd17DKGWr_3hj5B)wFVK&95YLfIL> zA$fWu-p|>8X(+tISL0)*@Chdpm#>`}PYdMd>3vH=^nd8PD?tdv4Q`e<0F&^y;g?;B zc8^5{!V@bhN|rM)JAq8zm1PcuakDg`82dQcWMc`}$%uY|16o|FHYAc8?gB1`naL|{ zTozMexq|rR6!Vv!2QTJVUapQT=y8W1&l-rns8_D$=0_YrhQ{wZx02WJco3F4((LSi z@x|ClNhY}>smlEIZuN$+Kq`i60zka2HhgP%Y^*ADDo0eToU$aM&azeBM2Q%wG#|6`GRyF`>kcdgS`B{l8gC| zrSI)x&~r@LQO}86*3#neF-Bsc&G~*GM!8V&Wbsi@e&7Wzgh5=>9idH84Mc1aDv$b`R znnPc{;U}#aO=DAAJY4V{;)&iPwyrE1)`HfjW<2BW&*v1&z2F@kU2pIKSY_jaI~ytD zIc!-4Mj1~*w884y$f9MA1jqH;*;40^2BrpBMZ~PH7En*kO;2;Yar4vyv-0G6>23SE;x+MVEw!!s)Bq?3R@aPCa)X~rvot|%2~H4nV3VxGt3S45A#76Uf|<`_17 z38Xf}&Gq|1;zf2J5CKWG32g;NH$=`%0Q)CK-h>2)iZB&q&k3I05n>9aXRC68>w}{x zcl)_8F1iM|%0u6_8_EAZuoM7Bo7Spid%Q>t@m@2C@{S?~0p&Aes)36AOXrGc7M#_g zH{UU)ZfF4M0okdjPEyKh4PmY+**0$-h*EjVVrULWTt*98w__6B+Ha;IQLfw3O6KnD zF3KEW>Z3C=PBYFQDrs9oYBVW&gmJGwZ@5YskOHwz91JQT0N{an@Lt*8P7kZLCK9)- zLfmahondzlJ)T`8<-f#mdWNi2tJ#}5;mPTYpyvExDxllErB)pS7^NcmHh@yl?8XL7 zOhTQnncGGbgn|7x?0Lq1W>a}H0V-5PA^@2pih?`=56$)nbAw;MEyyqWR#vHbFVh~G z5rKZA)LTJ~QUR6CU(Ra#WIylBT2#xq8=YPiZK6K)6JJ>HjYsCj5bs;rBqayn%il4Y z8yXrue>SD|`h`RS;LI+IM?IK|CXiRhPgl>rirq)iB4eHk_E3zu0ZtIt_w%hpU}1nd z@I+*CzI^*9*dsYvN6_l~I(Uf%1S%gqae1nBz|56b$X4PV@d?TgA$`s#D}~szzmN2? za9?JeXKi7Kz1W+XXl9ksC!XA!sZS&)E9e5cK~@ODbQtWBsJ?FDb$VX$ybsvWKwB(E z-8EM*beJBQFxubwYE(b+LI+L}?BmCbLo$8Mw(|1w($dn(N-US4PL4-V5cq^_;%zU< zS6dLRP7c6yu9Wi#AC3EZ4rKu3=P2wt|C^?2RiSDuK)irHOK-xU-(K{S?!EfXu+^@Z zx;QSj(HXsBEA zq-NV8C!Th?0``m>C&?iebe<{!kjMck$4}*TXFg^cO zg^sRn>Fvs4xaLsxQR8av*2sy-=L&#lUh}U24a6cuh>2T=#xJdikVucFiMMOG)oLTK zz!1F5AIFOj?2Zl1gvcUNHugGVxAv04!`hEz5E-N(UFk>G3kxv;;$&oG zY&Fic0G)~8;MNXL!62A6CiHVHbxi=BU{I{o^+~hu{M=GhGXRSXRg(h^pS|K-#6S+r zX6op%K}$4w{4IVn5OhH3o&G%o+ALVlB4$~D|d$8_g_ z_R8Z8<*&yXlqWLmrp8&g4ez+)`-`OkDp>e1A-{B~dp~IN{cqT$NbO|LAex+<+^536 zjaY^*&%%fZ)RPzMsc+-ye~Unx?~215rs^xatOh>7{H9JGuUxIXd)~mGhP#~oEKV{e zE<2BXLT@d~4p_>oIt)(ceVXGU^RR#malY|guT+<*l%_8+$4M(>5Sl2U`;zK%LlvX= zY7y&nShUgJY)LmaS#$41HQ92T+)qvziThw2K6Jl{3T@T<6M2Ttqo=m2uY)Q!6v19C ze9db=Wuwz@R&J(S-?x5p9HBjlDHRbGzOLD4xPH|_mSTK$(;{>D3GIP_tHX0uF&A<7 zXCZW=b;&>f3!+<>is_X%R}$X#;%A>JQA^$W&Zk%|ZC2g#9?P=1uM@5+NK%G4?n>y& zwQfVdRmO8`R;a3sl>7Ev!GvlR2+~MiQ6A4Z6|Dvo`)XR0aL3nJw|=X&?)&v9vZxur$U@qrq$DWqKvP?tR(}k#2&Rl| z^FNsP+nc^lR!Zvnz2Nb@25>=<{_+mlDhL?IkjBf)_u_E6#`gmdyZ5nE&-BMfm6#B1 z>ai+lWtk_9flnHTfgg0>J&byaQJ?U5guuF7e{JQIT|>#eF=i#!jLr^db;K@zLcd#b z-75!ZoPUbFwm<~N_Nw-$T@ z+1cYAk4Z`5v`WS{8}iI0;hTK+ zcA!0@&iP$#pdYDVAkzUjnz>wuIzsf?*?c8 zE1F!wmnZv?ydU&fxjU$W4T&mc?_uI%VpCI7NwmhgE3G5Swn)#?fla!huxrdm^RXZw z4oa0(i29u^bn_>;-`%3%oquSd6P?ettGPi{zQ7Kzz+&TqPzHghrjokQm(L-qUfNH! z{X=h30hwrg{o{iBx)|vmfx}Fiqqc zuvmmeqXX>={gS3UEGg9TK^(y8HnVR-v6}R3m&icmXd^gqe=TVcu%RT2w8!v>W!lPbV_szbcS^L(p@Vy3&Rq@S1&|*nbp8m zN=M1`GSM$=xZy3WA%-d0yxMG&d{c~>OrjI$sL>zfBDDmM^WSrY0VWloeI&i}REz$f z!Vk+G^Ys+sYPXLk&XtP5&GlbJFhbpM%Uq-QTtqiYC!tl^@g7O& z)lc534J(mn-D2;~@rF_w5H;v<_LG(eP z4Uc1S0q0}4QST;NoPda$rhzuve@kz`&Ze*V-z#05lJ|_xrj%u;LSko^#f9{8VPX53 zvu*2TtnjQEbSL$_8j6m8ra{F>T#}efOuy}mUUxd4rHT(Zvmi87^z!nIr#Rk^a;M*s zuHq`72Le8;uD$CW0}j~$;O&3?q>*2HZ*(+>3^?Vl6mCm$!Pmd9=F)0mMkaC=Otp7E zQ(z1X^D@2;3jYct;EAQ+qmEYl!F1qBx%hQ@f_5te3D8Q%N$=~19A=WM;YQN3NEH@t z-go5;8FSr;Oy(;oA<=`7LH3j9YFFLWz7&C3>+MJtrssk!~*J;2*PE6 z`l~+R$`IIuK`^*{1*DzStjPyd9 zOJ1p#1?Q>O$czXCayss->^1w*DMhV!W6MXGg;H03>DuGr#g=P5j*qyWvYJ@v1T!kq z95Ym5$cdeR#cYbgkhlWJKQNaLSmqvo5--PV;LucbGZ&w@@@0UR1z0E?PdUqGsNvc7 z-{Gcs&?YMcB4^9?+rTe8jte2Nbt?n~F4WbP_g-Cj%lbAk{E5f%7k15TY#GYSTZ6Q? zUilkU&8_dIL0bh~?~*)vN8eTNU;oE?-u1Qo0G zqv!Gb;RD)^;s);kZxmis6rt(-c0r<8x&Nw^*xK#ZjXCnVj{|iZBHa%N1txo9CgOa z8g#0%ssAWiCL&ur%`_9m%uMAaE0w0RW9^Brhb2FPh(ZQ6w`b7*??LN25g#d#n+prw zdscXlj3R6RSn*sNiV+Iwigu6JuU56TUIFZE>aqHOQ8N2Tsd+auv;C|#onGhfup$pn zXpY&Uj{20I0WlApDdAC-P8km112y*4Gs}M63dON~d;&5x%X#+Fo!|41#>z%RVo6D* zt{4VICFO785=lT7Yd=Cf7RKp#Q=aTh0Q-hZU~1 zb(5;AxYZ!wZXdBO&15T%@jPyQ2Ih)v!zhyhg~@~?E6@T1dc(LPz-&)?XEl{V0&3 zsyy$C!SkX~DFI6G(}~A#aY9%_aAk7dWBB==Pk#w4_o7NWF{B!yQOOtz8plqJR?g-Z zH*{mD_;aCsH}jD9|F?o=bW@07@WI8tAJ6`pO{xJp^505SN!5(O=H}+bFRGT;FEDEL z)g;fgW*I!iB_xzATKm)J2xwX8PmBtiVe?5!OWTL(+ba`( zCH?HnWul;di&DMd93FJh3h{L^$5S_zBP*$a@So?{tF|ZpL`dvsM~EfF0I(8u|Gs}A za>a=NYK(kTw7JN;cM={}bN*-u>^c(v=eQp!C$HAQ@m$qtoPgzVf-U+0@MYuu-_Kn1 z7^D&mzlY_x#oY+`+1sC%zwIH)!%ujLkf)ko1lrm z1}&{(LDi`wgdAdR&B&rx7ooWTR6R$Z){{3k9knG}-R2?%_5Zx~l$^t>R;gs;&>WK2 z8ZobAo0$TL$F$J@$R&WFt0dN6?Cef)SQOH8!m={;o+L&{O? ze^zcYOZ|i8*dcrM+}NtmL5xsBB!ih2%J#@_U`GX6esm<551jkCoGJ+vT`Si=0`7n7 z-j}84GC}}j7r;Zb-}J`eF5vJV3 zl=PCvX(TUQUFr2NQ^Xg0{URp_y;)kFk)*pC>#HFbH@@6iR5!~*ly@kokmMFLD@#6# zhAjyuD28HG-!E3Be~$#^ zvfewETX#6a`;DSy})wUvWkhXM!R`kcnVKCeHQfw zc$V!{O&^#)T$S|1m(2yMiM8tBRS@uylfoC|PvDWa0bORLa z=jrSjd(+IWb`N2;;$m6fUn~r~bM_Fd{p8P|Tkb!;?X13JJ3YmWr|mREy0O2kz1fpY zF9e`Dlfk}%rRCtc|F6waVuyI|wzh%uB~)@94zbA|!cnT7qe{L9dS@t$!Twj^Vd^r$ zweq_Fn|?xJ;7M9 zX{-mVT)_8X13d7eUbdhko2&>>$6~%7CcG1SsLU&Wk?&|xoor`-HQ)u-hgje(g($)u zOxtyA&hHi-2YdU&kG@-ah9TW!!l0@LkFS|=ABH`sm&2e;)i83o>oTx z^;;PqkJItEp70LvR3%dio1bAh{jnVIV4}192H!|TBbZZg1)gU#a`B#t~%hRzk~(!!rk4y3{$n?D~V}N&w}AcDhP+5+kBHt z0q0;~S$li%U^=@J&7XJG=%kQDhJ3A&bQMAC9?;XbJTP`++g5rf8X6i?L`a~jgPfx& zIG5Pyy-7pxrMvC#*pMo28<4|VdI?OCLfm~(5>R1weWLyI*#hoT>>@m3>n#R9+6IFx z+q2zOgfTGlnw-Z>N+_a~BJy5Iq-hhtm*z-u!zv*}S$IpEoKhm!SQ-II^t{}#(c(0XqnUzr)` zMWe^6Py;4I2fNkD?n%4<`TZLhAwK@1S3i9r<^QYfyyL0v|Nn3AEi;6W85voLW0dX0 zkr9b(MJg3poop(5oQ6Zjp=3moB70{YBXyBg86_*5-}9}m&-e4Y{eFM^e%Bv$U00ps zJzlTp>-Bm*ACLRfI-8C=chMmBdSUEWk))ohxsk?(M#lLo?!olW$9}=K@&r?bnC~}7 zPshKH^AuV+;Fj%$Xi0lqqD_tm>+iVJ+=eB^Nj=8u?X_2>NW4%ko}63)d7K8w17Lrs z+nkl^Uy7j+_Izmk5X&VRE2wayv$F#KZ%qKMO`7ntfr#CI(U(fpC|zl1;Wj_^_fLA< z5fyU!`Y=4Ks#V%hUy(VZJmwXe1l>PqZ8qx#Ha|D#wSaSZ+?Y8>&&B=A%Q$9)MwXsC z?dQ$-gw1q)b(u_augIdX*;b*5#A^OPJE;U2*( z$IO+wv?t8lq-NnYd&vi<+hYC<3^xCW0I;YeIZ_j2IX%p=awbaVN2f?VaXlw&OYFkD zs2tpMK~s2Nlcz_|u_cT$r68;meuDM>Ge~m|*f={XQE=h8&C9&pTs`hZcwv%2Xqo6e zeJE(TOF2RRE>K!7i9Ya@tkF`;t6k=|<2y2TOJ|rBf4G4t-9}Tmx*o6HH!>0v!d+id zZ;L*1kXKCkG8>h}ZDTXDObyL#=F^%@OJBD%lJx^OUhfg7rkp|2e4lvT({r}ImGE1y zKFw%sSNXNd?~1p0$j?8jMV~FT%xk{l;uKlmGdxVARP<}WZxGu~lxL}e3)&~>Qh^VYAY%C8^Wz7$zKiK&_U z^zoxVJf=^KCkBxBs&#mNH`CjD_>BeTDN$v;_l!6-uHLEP!`;I#A@ja?L@V$PQN`~! z-+hLWg208e=9HU7r!tIQz(Q@ABR%8*?1Ov6Yaz&hJVol!h;}$-N~s`leE2hi3p6GW znNd7lACZiv(AbJ8+P#iqAnkjCl9BwoKqWji3wLYh=IUIQ&PGrPudfPA7-xv!PnaXH zu|CqL5c}tw&U5qV1+Gw<-1%7AEjcS+Vl4 z>KZk6-N(QQpGI9!UL=&|)u$YBf+RUP`Sl?T**gypkE;HsrSM9d?_DuBJCxodBF^qi zo0%QOFf%uIH`%tkF;+I#uUD%@lS=KBFC3}zQVq<|mdKR;GLtqEQoSc5V#kgV>~|HW z>%FVf{veT3oZrhYKg*5q&p-8X#wSpWr1vm1M^@9r;r3x=lnWZ3Wg(cqs44&39N_xY!$#0@xml1tN zBl)P_K>}&`kz=5QT0N)NfjujaYhvl$+ze1mF7QdPe<)9JASzFC?B-3`x5GCB(A>0VNKo&?|Pzw%6KE1zh+ z##-G>&dNG>?W+i6#x#0L=!ded^ibs-9oWUe-YV zZK2TTyG;(;O+LZP2YqvR#CUOdvOeN>lkTVzJXzolhroHOe$>4>C2cR&oF0nyt-1zwe|7ividmjQyzw)FpD?#m_(2b6a zh&X}0mcst#~B{*+pyvD}l9dQ<%z&hpT)pu6o-^f|8J@c^CUn}|M&gc2#ixfc@DyeV$ z=De$ayn@2S&4V{@!YhE!8CvbVHX=Pg_O;d6U?hbf@!$6tGmhC6$FbGF5+0o8@TPYc zP5vEBHIBR2y3F!|Cv2!&)?6Zf;e3srs4hCXx3`yH{f4w{x%=WolRk|sz31g5PkKKi zuY);Qy2uPKl*xndSl(&v;(++$-;(7A-cJ z17l!i#pP$`>F&gKBngGFZZ++5Q*`v5>vNv&Hx2<%zX=+S~uLyIw15!C=lt1kG#ETCs9r z(^q?R!VAb-M_KvLy}CRhFILrHeAyz9~i8Heu&b=@`NMnBtdj{@AKb=SMY02L?WUs)hpP#`3pG zc8`RX1N@-T#0AAua(u~bZ`sL@2f?+HZUl7(jy*kCA)?1g(IO{qAlJrLNYI29pBIh) zj32PHV4F&FC(V;ES4e+Sh?LhrIdj8Mo1Wtbru=N0%(;kEDb)Z~}j)s?iJvYjcLbZxlYZ9-27J#!CpW|hZZ%5aG-qyWJdUo=f&4vhX6 zFPIny;aFK$hZ=XGi$s({iVbHPbMr=zTU6omdbK$uC}$Me1wR+CvayRwiHjNXzE>2| zq+}`NNz|jDY=pPfOik?%(nXQ|Q5vG7L+%VdsR8@N5TE8C45}!^Q;Jsd1Z&!e{~=Fd ztYj%W2L1aDbB;wlc1tO2aT@kdQ6C@1pIj1R7Sgxke;O$5(IxJ1_{@6Y( z+?ff9BJf<+^2C+9#v}vBAwJZ4T7+ibTR01#9`;^=v>P{Xc91@2bsKf#JI#TKf075| z%APyY(0vH#3*)R!ijTueI9d&=LLadWc!+7;;?3km5>i5TF-d(>BCTfN*i)2<6?~w3 zi~OuH?Y@14_?m%{QAtUuD^oM1DTc#k|GU{SBql+(mVYCO=d$u_a-gwg1*7o?eI@=?D3HL0Uq@!_h zYDWoiUhqZw0gn^2wfNIGrL9YDEjkIj#~r@H+LFuHo~1ErbW!!z>$NWBu>%Kh2=Ha} zKC^NF=i`raVX`vn4!5rTc%bO^5!n;1yB$8>NffwYf`n4o7aG2K^JaE-w&%h>C6459 zU6g31@@Dx9PEKSMWKoRj51JA(c4KQ_E4h6jsxQ!}^Qy=@B^m#yn?&0;vZ6!DAb;Xtdt4$huM98GiRj8&3-E?L`g#_AyW1NlmV+71xnT`(nW%^R6j{I;GB7d0 zZTk87!JnC&VfgcBFwS$hv63GvyoSnLI^0R5ZrT;H(%}o>kZlLCu(8IX@6~1Y7fc{> zD_QE?s?Zw!uLn@L6?gxB_T!krS&-V?`npq}I!V!l;NXN~g7twZpdv}tTNCxYZERc`MBVK8`K?w;u#ZbRGEai#NiukEB7B;Xi zFudqG;ZTQE;i)K7zW?~4XTiZZ2r`UCl0j^O`hV^+$CWaLo0k_-9qe6iyUDF%b!(6( z8cn~p3xw`_x&V_f)aiq za3HVxR`U4Z$f z7t7h(xmDkRVTQ_Qi2DOV*|Cq`g&5py-W=d+0Y+23vnOrTGs5>$ZvMyT-=>2j0MM5- z5X*Rb;gIhP~KcKgy%WA}95YLXrJqmpU z-njY{UTFeH-{|OhE2~HJ zj?^To-<5%0u6%_`IyyQgCML_@x*bZLD7)V}(55`lVXWtX;8Nsh8u!+SoyP4hJC+XH z_g>NRfk%7TjFpC#0(+#osLT7G|5ST?4H9_odAjUzqT-|dfzuq|6lpHYxdy5(^C})l zN{z3wt0s)2#5V4%u>3_M0k`H#E)~6}>&n_%G3*idmx0pv(_aDjmEE4FwYvXqOXri5 zV|@uWiFeMY0)_S>VX_a-7@VNNCAWThc-G4kW3&GvGy_W?pV#A}5B?Mfm|vOxfdNb8 zea%HM9=t{3rSkgoqv{)Wn2$t4-u|-y^3C4>|MMTtTG6MZ65;s$Wl$*!lbKbBG1>o8 zWd2v8>9G}f`L;5zp%<_jf+guhsO4b=6y-oKGJcxNEc(8GCziQ@LMKLn!t&K{N1McMz z#%!jYgi4dqCln!JlImp~qmKs*l*y=0KD;3dig)^U~eW97m^cGGY$VN_)! z@&3iHZYf-rlNVPkVVlB^0WBs{u} zC7rDa_`#knH2ni4WihJpVN&c_%a<>LU2h#gqgS1=Ho)oGGyQ3ej6a#aANdZ95&Di| z*Mh)x#n$4lo2RIXUa*OZ8C?}2G+ew3G{%@~hxa{9GK9Fp^CJ~fHx(Arz#H}KTkRkSo1>@Q?qTj9em@^!bafw?1@|XxTaxmlMc_d1?ZvFycrC z6_OA@yM&}4Bq`+*@Sm?tRUWUc@lQ5xH6!IMbcjuGjdIWya6n7_a``ke0%euqp&_e{ zsgUrH2uQWshf!8=#w#qS%ZFAxhZG>kKtU6G%?D{(E@Gc<>Ep*LGx!9O`j35m+KC2i zSSfz{`Rp%S{|tnQY=;u6Y7&G<0pj*-T}>ynY~o7~Y1X7pq}PQDS^-!X9#7u&-SnT& zR#6sifL$Q`oExySvVRw##QS`1u;|%OlCutwcOsa|XmwEH4A#{Y$gzcmhbgoM$i;Of z#D$1HyjPvu1>)oVNR01KOvGzIuV1X<%MKMJI+V>a6q4?doG_#4y_aQi7X>F?sH)!0-%b5rba6LjW z9tAlE$>6-(=n+)cVKn+9cfAX45MIA#ZpxvwxntFx{SFzC1y8?A3RA+^EbL6rU1C)5>b5 zjb5H|jt10)G=T}8>$*_O%h?0%uSt;2%*m1GJl${i%=exaKN%%L6#{|fH0BekXYP7= z*_oIapy>(?D{5;`|N1@A*OwO3*(K7cD-(oUI8BzNb5 zFo9T9`SPVgf@1;5hd#dc1!@gg)7rXx2}|D?Htmf#24#)>JW0o0Sy&qqkvf46|9jl; z&aLYmL)z%A&CPjUMiibydm=`WPI*;{5ye;~FZfJy=$^B|q!b0MzXiK}}*RKO}K<_k!qmMnQFsH?-C;4PF~69H!JzxD-eoK~Tt(Sg~C^I5XRpO^;x;2*~cm%JgN~#Klk1#1! zYjg$$4=*n?Rlvb!IEF(?lJC9R$&Cm) zf;+gw$6;I`g3Fr21rLxbzPt+8tT_DcwsP0oT91CQInw7~OEFi;DlkXqzMN;lHD+d| z=GMCrh8@3C+b`(LUD$lGDr7}9c3qzYAe*6O9s{)436wr(sN2=6i8a#ieldB3j(ynt z)&Z&_i7$;zLYkVtihyt`WTKFW-eDaQwYVn6G%E#1ZnmAB9f;^p?;G79x3)A18c$Ic zB-Dm1qji-iJv4Qc+MZh^E=*&8nWQn2c;dvX-x#9fc#8e8bkD>1XlFqHBSqW-+MEw) zyjYz*gQI63ynZp87JmfwXXLTMA&BcwHYb+!xw%DFp7l@L9r*Ghx{oxH_Ke2PM@6+> zv%7n+XXw%5b1lP^ua<_nifP|}l64=<1AZDz_vt*7$NJ)E3s`C>BPf8EQ#>*EoC1p1 z>94Q*`GMv>tL}|sLxeTCwI-kE!R=W-kHQX5x;_>R%i2V!BIvco>5du#c=D`_(51sC z#f|9uX}T-KZlj8diz{zO1WbP&%Fb?ax_-Uz#fKta0&9rTSV=tZMO9|O@TIJ_F zGMU$+t{gU+%kTvU70|-KtTs7tYe><8q<$b7f3AiF+}a76JKsXKKhJH(mbMpqSf+pa zIf#i;>Zs;A;%j-}lo$hoE8KV};o%&}i?f}d{(R5l&v!9gjLgf^H(Mu70qd#e?)qf+ z$*nj~>4bZ@^EEf_34A`~pcY_cA<}I7*`H)yp6k@9ipjG#O4nr?o1a_%;YGozE(p?1 zz5$JORlWoUn9ibwxZv7S+C-kR&wKq{0M?;l3#q-mFjiY`)ggJV9vt$djy2v}%`aYl zi(IhXVR@DK8(VbYoYS+oLy8otcf$p~#TL1SgX@3(52zS+)^U_zShG3LS8P}1v?DnK znOms+3dSkcoqhDi>xbYv^3gy75!Xg8NZqIR9B66#5^1_xDMrA8ZoRo1jY0sL zR;u7Grh&WCC`8&;Vpc7b1L1e_3-Q_f z1^jL8TmfrQ4ZiPHux|&Xn^km;RYfq5zbzv)!}f{m*IwCUY??pXeCt2j4oP_XoE^o zo5kU&c0O|wglz$7GMC&4qitUbk0(FKtzhd%|U%W{A2>hZ*E!%FP^MeGsnxeQQ zv5^v~Lceyl7~w}LHT4mDCuk*uY2Hjf!6T0R%bKe%*|{#(p2O`Yj#C`jNO88mQy1WS zf`>ka$MVZ~wB{R3U;_ZnGzQfy-jwnCcrr`bAieTi*f%S65eVXh4bVND01K$Au`t&m z-#?dN@@B)HNgSvw0s+fR&DgMr=Hc_^?12%sRS?l?-JrT`s4hwf73sG!K`l~nXj1Sm zQ@~T1c*~pu$(Lo~czC1>8n>R)HMxB0()|4Vfm6n8To{fa3JyYH zba`~^GpcC%!bVDz#$SflpFbBF( zlYGpPix{Xz!kFPj*mw}Fj*^>D!sf`~A@?yLpuk2TI!>o4&-by(jkXSBgQIx5!j}qg z+?3g;51wF3X=5W=(xZwfEYS(gc}ezDT#g_&kR<3MR~N2Zu8nG{Q0#Cc`~f>NB=I2J z{ef;}D=V~%8Y_m?1^%`eLEc`qFzT#0LfnXKp#p~)2P~b4a|SBsYyJg$y&zA$0#P|Q zSJvzRbWB1(aj)@jR4vSp>f50gbwo~r6$m+t4QuMySHD_W5{xj&95USt1X1c4mq}0_ z4fhItHIFiyz{Z4-dxO{DWHh}eFWksQ4U5G6(~T?vBsy&@XB-p&r=bDF9iO#YJr7Qz zwa8J}p99(Ho-P(U0?v-1p(AlBh;OBo{xPh*cYHRG!^-4IkW`-XVTzV~$N>We8dgce zFfzbmJ$D#jsJNUSIs6{E8IOMxsRtwB;8T4+O^coA)SWz~f~6G7PHRIzsYoOrw9P#g3M1O2n+{~=M{b?ggM6OEQU7zsxk_d+?RY&yxKWpYXO z?l%NL7|v;lW_~;N6p0J^5{55Q@tl{Ps7(eY@+`l|K6If<7Z7gE6a**U=%-i*3`_{I z*Pq{NmY>FaeE#0=ES+az2|iVigSdjgqB65M4be&o^ybxqwN#I4f(2g&k{jpySWm#| zx4}7@P|TA}=ecN0$c;^iEOBEQZQZ@psz>h!=9L=@Izek4V+{K+P`*bG`5XqB6@-M$ z;vEj3P!Z>%C`vpoO^DliBrv0TZ5k4qzF*u3s4q*}0NWkEH{VSK1512Z0RsfK;e-O9 zB9_}E88ZvIp|9L}5rF_SUWkQe(FC1urn>j3g*WnZvV=XNwi6oFg!mUKb#a!Aex6$ z`(x<$VI<QZ@mqT#auIa0yH>cOgep9|ZvxAf>#qjg*!XSUl&Iyc|J|*u=BPF4k*= z@jT5^4Z1iFTPYBfI!DlVqkRiZZaAXu-4`Q_Bs>o^&_z>IQO!Te`nfTGg!9_Q*HdWH zeT=eC$rBHo8dr~9SmDk-TruVLhP;jMgSco+oiUe`#31stG|O6OJm>)UVlDH4 z3^G{@4D&^PwP$&6q|3b1`|$fch402l1>)&f_x6xZ*?w6X9I^SwtgH5qM1d=)EkAz) z0*GxbGq@;pxfv!!^lk^8levhfTT|L%K$d+Z--w-|DL2uLz>viFKi(q*!?>^G;obYK z(O`WAa#xS>K#&CM-$<9R`TJ;oPfp~_&F&onrkIx{qh=8XigPF!n_6yf~i3`==`jP9v0HQhy|@-bcc0)Z<)3QFg7;$6xV z-$Qez29Pki!7uwykX5-IdAhXOKMxDOM0sL0v zh;HMkaVhUYH+p7;`HfhZ9be$f`A0(MqV>$D50K1dB+ly_p(`9PIHB6>$%gpm^hI1t zr4}4FO#aTgh^S55Pd!z|_N4W)T)K_1r_kxM53DgZiIOe+z`8~Hs354n7=g#VXDXZF z1Wi!f?=SG*C<6-Q@wWub)?vqQyF}fp((=AVB7Ts>IgZm#@*kaHgrB0HPp3++<>dvg z=vcW4bf>AoQvN{j#Q_GxXA~)iCC)`5fPw=^G_p3k@9@@*U`s|YWn6j|6&Gq`81JCh zOsEr@iI+|&^k@2$3)**B5#t?(D%o_SnPV1Z&=b|1kHSil8qTBrfxpZ#2xuOlvNW>H6u2EIg#ij8U-_c(A#MDf~5r zo^kQw{;_hzLQUr=Q;kiY0)YaOz@GKGu4k}l6Pafuz~Yig#;5MsR~TyL%@X5nP{#^2 zbNIeIJXm9Bhs?+_UE+@E3IV_nx@LGcvr~zPQL-JZDucBdY9$4i8oy&~kHOunP@n3%Fdlc@9 z9}{#=v28{gczDoy_Q>*0p-%NX9ewoj|oqYH+@(lilsKVUNSg?oH*yD$Cqf7?^K>bjErfl z41te%%a01#wK>9y-I3N7d+yvu5Fu`I_>YbHH=_T|cz)|!XEDNdDZIo78EfktH-fQH z+b3fKiy@zT*EvHnN;Zyo%MfyJuj%O2Ur1LRcZ1<_{rdHIbd#u$Ecf1<$-&b`v9*t0 zRt5RUz%1w4J_+Fs2C;4JWrRKV4P1hgu+RE=&0~IB>DfU!fSs86ar5&ZoQJAp3=W&U>u6fg6s*2Ap-LrCX@ zZ4+phc-Gqd@}k#5I`X=Z3!6KtUR^EQIwZh?VUpAMh@{Z2Iz`r@0xxr7Dq+Ej zXp7svue18DhkAwrUtV=KYV11Ml93{F6AMC0VyC$+mIgK6uqzUzeP*;;9ik@R|JLyd&85n8x%@W{-}+dU_hUJ3F_Y)tmh_%FLP>&qK=8Y^?2c{d z|DEr@NM;{F32Pj^v;2cFL zW|)+OsqmvE>s944^nKaim4VtNAku*YwnVSrTizUIXh;r6`bhu~4{jDtsU98)KD<6& zUP&GU#Z723ilS@#Ql zs^yC|6HcWXZ#B0xc^`GyXZ@Z>SEb1&aa=wkQ2cB4GD2_}GEsVWb-EpY-NC^@pSQjQ zeCbN}EF@06yFSy0S3J5SNI%^#PiS*-VFZ;5zt?Zt;5ZCxeZO$!sz+5|{2UxFl8J_WtF;c3+_B(1mc|QPgr!NX~Fmxwl0Edt4BQhNS zk&w{nq<3kB^}$lfM*8U7$N8LvvtJZ<3R^lUc_>K6(&H~ENQql7{fAlC3fIjA_~M8* zI%;IZr%2zPDSw}BTpeVD^oWvw`9%oKt{M3H(6U9r&+Mh|e`yDn27f}peoWq35QzT( zMY7x9+*zYra`dL7{7(|{6 zd6vvk-kvsMG=gD2Se*mzoD7d#mmno7_86z&pO=YRQxF7XxRO`XNfY;5L_PXb3MI_- z@*v8fTW>3^(i0FEC9>=OJfEBcJ(09K@#P{DZ^C?N#e~B36;l5IM+~uLiXpc)1iiIB z-a_Bt5I*tzQYpZ2Dv&I}&ujl~um>6IixY*oY@jiS8g_M6YbX)9Tm%y{b6LG zxIvoz9$n$2E|W-)DcZ3LW8Ei_uDD-wpJK>0bzH9AAryaL2~J_C%}JDad33}rGS6N)~zEOojOSpoLf%mTp4HPY6i zQ{NThfFRN)kzj*>0ycz%Parav$L~}<*dRU4>u$p~j;kAzSiHw2L5ZlskJpQH0ntZE z;(vZsprx~5<#~B#2X&11F9wvjsuFk859vo$!nJ?k3cvd}F`X`2{P@Qt;(a~YmH;Pe z1jrKx^XTU?^pt$EEE@}(mnMMG{?Gbg6(PYF8Tp&Zo`;1)L+#&7SN((G)=P0ocdGM& zenZGM_OHu#3j!yh6bK9(kSezRo-$b+T$9mxFe!J2R)W#3z}rFHRP5}X=z%to%Rkk& z_%etgx5l&-`fi(P+|h=d#u?6c3QUMM^a}J2N{3^W&@xDmKqRLlU%{_(@+!;M+uv;4 za%8iAlEh?7U#9+Ea})YRIrnk(-XIYbEc!u`a&4*a_Wpl|-WT~n!X)OhAz*NsdMcrj z>3z^4s|*u6uK3d`)23l$g<2{T-+?Fm7=!7lNbbFK?SD^zz59ZBx;HE}jhyHsrM?cmnbTRI>cx8+BF3b6BrHPfo=B8n!VqlX;ktnJ&y=c?i#E z%gX42v{rPd9#vhI0;B79zU@O8rXM8l9)T*5O>V}>Lp^jL;S?wuSKLj0k{oAbuSS9L zQ89=gnl&azlz%1-v`Jr|D9?TcjXL=a=1GEBNA`Pl;sp#E`?<0Z+2bqnS!mlyvWWZ& zZ5@R)MfnY?$VUtk3IIUCVPe#9NuE5zQ|(E#(O)uF6({j? zo3W^RC$3#Cjt+@$UO+~E+J`2746|DqkcPf`2!yJ}ltqIZm>pEY>eD13Y*!wZdKy;Z zCZ_>CWPOp)u;oS|okRx}Zxve5%b9eM8#B{fg-YMWuUH1M(65mmrwX6^vV)$w^oU~j zJeoXUWApqA)4*R+gEdPYi>{v0O{VHBi6if{Gq|NX z-XzapF=>r>T9M|5tNf9Y32D1!!lamdpSKIP_)8w|j1;m<6uIVP<&8r=YL;dnEfX1kF{Y+h3C%@tHOVosQzDvZF5*?6hj&OQJV;zv z|Gp#P09wFMK|qDF@PGfRXwjfNguE~f#U#gc+ei>g=m%hNJRf3A%+;Gc;muPanqV>- zN$4V6R0o-b-&kJAKR7}=V~#(q7~s|A*&?fEfj;{5>HKfqEe{Oo`(7?V8k^k=^-rRE zpQ}#p{!?waH}%HPWxM)D*OJfhuX`cQsvWhLKS}T9nT!XEVD_Mte{#3#TIri#%8H#! z3nP}zwchsrdvE>MH>Wafs|Uv%tdu)6mmSo5YMsJY(%xL`v@^_uKIE%UojRAguaD8J z$l5A)fTL)eo-=SVQ`2Gnu4G7K5?QeDYyE!(6RN0xTzbyrN7o%?u}J=rG|X9>?Dwkt@}Er1S_3i zrEZc+c{`OU)Mp?hm37wRt|?tb-zimzsmEGHiPVn|Km+pAsuJ51tA^e|<`j)-ujaln zKc5r3(JR^g$Z1jTR8FI5mp=?& zmEMkomDqDN`sv`XCh0Hu%7(IW6={H(sftL8ju4W6QC5YO=vXoQ_XnW0B5L!SR2WK% zD))|$DqNj$_}^>AQ9vc@6+1KtrD-Rt|4pNe{1jc}B@3b|-eXXMdT=@WJ-;a^IkZrg zVenice97UC49+4q$DQ_P5A^Rd0?1HLn;e8GhK1U_lSg-@3GmYxl1TpFez!PQ>AkaO Y@^tjVqrli*68OhJ&s6t?_66+!0^mhkXaE2J literal 32110 zcmYg%bzD^I_cb7mG$TkO-Q78KGr#}>5=sfuDP59+w1mVAIe?T12uMjI(jbC#gLLHTFP3A?QT@L+y1zSfii>K2TEx zLtmTkwm2oybZ2gqf5|)1t+Dv{h2Kr9%kd+q*270=1t(n87FYt7U97eD14zd(1m-S99tc)yiAkF#6Z;upQnpkwZ_w2{L{Q*B{zCUO9aA zK2K*Thdd(yp@WIODxwRkB;#%W{{35W=MMK<|0@UTnImrOif5<5pAV>sC#cnU5Wu|z z65i8DlzuJl3Ef}dkcNVZ(C>-CKa!y70V?x;OFllgTPNLa=HiPt{hil_w@beiT%uwB zy8tpMVyn9&Vg725o44);^{PO1e0$?v>-Ef>1C^HbE_d0$+MSf!Hf1T?bYEd$8%~vg%Ta}J=JeH!pQK`X$_4xU%zJV;O8Nm_ zMWo%7{hf1=RAQMtA8)Ih<0)}@0Z|>yH6Y@|5V(`=XkgWWP@t8Ly<>(FnQ1ch$@*1) zsN9q%@3$fnj=(I#LG6i!*qmZxpFoznj9|wD{su(oU^e7(hr)u+e%V2^u$h|I9|w7z zw;BW^n5O8}AsxV)%0UkMz1vT^4}b36x!+d?Cu^6{W6QS?fqxKVZ+CT}Hzl+MFS&W! z!%`fiUP3|*4Qd^T1YKE^xL8cxO3B zAmbC*OAYN4^--q?At3ay@w&Vg%4DHgxCX@x9Z$cv8pd&PjVS=}^zV6ZS5tK8-;8u0 zvl7;dZpI+vUtZ^AMOwCGL!3VF<@bg}$g+AI?Vp~ezI?Fe=7$#`>@xVscF*?j+j9%E z&#K&lRH9?fxh;pvbF#Nxq)T^s_t`fdKP}qY+k9NU1h-~44hNf`>+CMjZRZ7TF`or5 z;Vs<_2Wp?Iq;=jM9+tl)=RKg4?73ss_;#CByG%!6*`}+#*lW^6${+pl0t@roZA(kB zEPY`%%8kQZ!ot(;HlKa8`_rFM*KG$FXZJT7O~GgDA3ASE=lkxWXiXL^>NtMOS_};~ zdEwpoEYR$=9c!OenU!BZkGwJvf2wZ0?4a2bD#m)*8Behpb{fZ`^|JRR(*qV&iii2WQ5TgOH}?Mq_x@bDOs z-FzYe+jP!fxa?`+v@8o%+N{Vo!p(dbI6DYrCvKw>%D2975WFgJ6&|RgP%+vYk+sY@ zBCS-Q@?9T~jtcByv6$C;g4G+cWQ4^R9k;)0FobcKMTh6V>%Oi=6TBGWt{k|J7Cdut zdtG%&NNriA`)*I?aaA@b*oD`h^lEECt{tr{mX6M1(daNTPy6G03*p?pizMQ?VD2FJ z{meP#;c+}G$GqcUS&fqLQEE`F42MivlFB5j)7N3Fh^gr(-$$t$Y3U{}yxJV3Mh^#! z4__VP-9*rku>+7oOaeU>W6C-V>)xy;*$kX9itI>o3dY;Dw#t1QP6sFAz~{_&ZS?2B z4od{3eRn^;4^2h_CKKW_96&<2ud6&BJnW*70z)DTE)Cr*l3q^7h0Acpru`BCLfAMo zcgJA2%-a8H09Vt*u*5HtH3$oiT1N8ur6UZ*Q`4UN zBM+ex34rvt0QAIArV5Rm$}+?v!M>^Rw)rk*y+m1>jV|Ep#s;?7MZx`>u94P~txWY1 z=vE<>40l8=LP(x|lv&9L)D(?AK_>s5xPvoma_22Wrl1jv zec2$@c_j>#Bo=&B?WqG4jvFv=CV32y95y`3Za#2LvG+X?9O(8!SH-oW^J4xRIgaRA zu|eAxF$&l{9GjyrytY2zX7ahigJ0gTk!-LIwF>^eoMP2UFsFVKqfUTCtxiV?YQDP|_3&bwgL|IC+be`=Rg5Q9o*c_L=RH@DQ5l^)2zxGVI|_mkyO2!KCk5S) zCV`^GK5bNykap52U_dBpex(3a%Zc$rcDJq6S zVEEb9#lXqx*}Q?OtotT`HGW*1j&YmJ;llIQ>#eH(fa8=B%ROmd*-X~qmIuc*gnKN< zV`+!AqWrjooluZiurHYxOenig540(9O0PMQr%8sbZ(zA8Pp5g~U8su+RW@j!PQJk5 ztC8*(s%HvnEeok(t{Jtw`+gv3O=(KH=r$!2) zvEh}scWqne%Vj8w_j6jNrhG*^lw~UZ=jACI=SftT5&e498$-*{e5KDX1_@)T?g z5W>02@tSbFqRNN_t>!I=RIlLbkOUbv*lz>=`AtsIQv(vopxBbo9e`2mnDed zmC=*+j9ln?jSiB!<_j&x@hy9JggGcxbH0D`ypHrrNmo0}32*2f_TpC*Z(~<)N0bt@ zXAWs+4UCZ z(~a~p?FVA1a&LON&}WTxJ7R14pF6KbAc1oztZY~T^yb+w(SzE(j;O}|EAXcAr|r^l z)F^?u?f1{utYSaaE;39L@M%J<4asN6ihKyS0KfJ zr;{(7ew(|phiwCE%yA5f__iq(WWmmJ$?-z_6WpH3vrlc4WsTA`SNZFBpV#rqcqCd# zu1NHNz>W9QcvORx(7hUun2|b1G2V7Qr%0ZY(ePk>hJStxJ3{w8SS|KKpCfZ1lPQDm zQ$9An{t)5_xR#Po1?SC%%?S#KFzqI-B>5W&{J0FJazd+~UsY9AQle4>J`yr~sI~I3u;lvs zT47wQE4ie(xmjV{%*@Qs&oR!zsiK59kAucQ+s>{eH#a-`^LVsQ+B=Stf&v8{WZZOl za0Hs9g}cP4m%lF5wcGf7*HTIZcA|DoZNk}}xVzPFX>r7sA9D5gvN>M=K_%h{u}_qW z2PuqKR8;siwX{eJRSeCkjg=c!5olFCYt++GAm8=W(9kIJgo=Mp=lwaptrMQxx)e#J zSETSg)REV;UQ;I}k;=YHvcy3A;yprWISD4T{U_UStx$>QQiK2qG3*F8&y%_Wt19;t ztp}d+rwr&FI@wsv0BzYP0)uXPFKHcugYQ>wKuX{P(oB(YF)_UD!I?TiLYclu`c*Z3 ze03A+j>o8xnXzR%J?LFkrWzHLk(1>{<+He@iCB_C$a91zzxmdFf8K!?^`&1#qF!t( z*QAiMzX{H7VDz!b5MLoUSXR5lv9RNEG(620!N};ygv1C%NQ7Sdt}wIB*C#-zZf2O4q0KYc(kSd$@!*1MOUK&-8ay5g+7eq zLZ^04VQoUHskbjety-GU|G_lK^xeB8n-A!-r~`55EBfb%&tcgiyLzKDGuz&T2IhS8 zz)hA7Du8f1JI~?kSQ@dIcIcb7$wH9g9BgI>FNiQr9S@1Fy?O}3)0hI!k`e#NGODM; z7=i)k8`8>d720(#GXc27I~vJpHk|tRZ#cA|8M{VMdlOtRCl3P%9I2E8# zmxBmT_nJAw>oFLRhZrvX~MwSV>ED=L4#-U?K zFH2M-oE%BQ`d~~Q!PXFxlChFd0jn2|M3%jqxg(#K;*LBxB=8@O2fOlkHAk6zmx4B~ z?)*gnv2%#2iAnYXsva*r6J|ECC9sOe)uJJ0&v)E8;w&cpvkp0^QjCRFRc(FaAK~_W~$>ipYfA&}|KaPym;=)Vp3<|(t@^S#-X=m;AVS3W+-(!G+2`o1dsdb+}JI*zw;e!uIHX42) z851&Yu}VHPL`njI(NWP$kFE5i%H>yJzo{!>i*al(j6Kwb+hIG`EHCpExkm1CA4w002Rtb`%ci3hq znr3$iI!aX_G{9uO1Pbb+>`<7=sx)-vH~x5t;0ra1_uPjT4y%SiYUuFB&xVy<0UG=u z1hH?m!pb5KLUcjO|9lQe`CMx8@!Jl&>o5I&F@ek4%QdBMQMv-yKP`KR3+s^Rtak+~ zp@Qg5OigEJW~Nocu^m06E!pOS_%pGxX847YQ31hu2cUfu@_jze5B+ zT1s-twDZNI6K^NDZx?F;KL;YKM;XFa7&frCN*ke&w@?}$8*k@3F5nJ{7wQYAp~Uh5 zr|GuJ>psku4DefK68$CgdRAd_^cK#~k7^xRiQyRhGGJm`QPUZEDWO}=8V4OhxQ8Tx zT-JN7QK;-)gXw_mKE)@7!pU6ywbX!R*sb;6^nE6tG{V3Nu|EQ?{X~d<+?9jll}TbA z8g{2pbbno~e0V{&2;6u;4Tp-6bN(c8G$u6WJ9#6VRr$ZIzs3xz58l*u{?wYhDy2P? z(f0;5cI35^d@z)P`0w(v`k-}I4I*9>)!{}Pf2RY=O?-GW3>lPcKqQ0I2JLeov@3Bg z8QUq?M?X*^0G{B*I@V-Q3LMRR$QH*X0KARtFGaCYz6?!D<9s#s(XBb^3Lr=XfS74G z?E(~bbS=zq9bViPz>7^F)<#&@$I6Vl0(EYGjQR&R`$P@lnP?35L6gRh z{7|!Zk0b%kV4(gC+fK0^jQVFRJC%hM9292uoL@PgVr2UF9((|~?EeIitlQbqppx?^ zd$zkk1V&z01e^M2M%wGez4;{a#)=a7QEOEau?Pv$cR-Q`&1bD*f}-78hD4Nj8(5NG z7=X|B&LK9mWe_rdZAbU!RZi@P(W$9=+aHu7V|(6OtUoMNwdCZM_(N}0dR!U97 z-CQ3*Gov`jB9En@4YUtxJbcpK>VLRgp1Le7x`4i2j27rnnsT*uH|A~sR*)9BI@;_8 zJMY9G>EhqDb)`+67#kb=^{Zc5JyJV?G9CTc^y@Z!W>}4HF%C^!T*%R}=H~rzI?rLl zqln{KTOh4_dw;0{PW-#S>oMeNH@qeN+xjh9OHXsq*P@KI$#a6^hAApjft`F9rlgP0 zW8m~f`x7X^uhema^pXYtEhAH=c2ku$3PkRav#&xOgT42WHz+o{UbAQ_)wrtRfD2Ih z!KUiHrC!4TkBXW(0gKl9yHMG?9sd!vH5aXzW9f--#%2|slm8Dz*Eq?#M@N5Z=g9VH ziQwPf-VQbBG9VfPHn1F5aay~}{So!B?dpc7^oXa^eev+|f;#Ln55mbqHMNx$0m4a1 zBnNYAjcRgVQ{V7K;Bz7BdA4a8Md!I9^{~qXkz}u=$L~wU|K*>TZ{P=RMDYE^c#o32 z6@%GFzhlrEBvjGN577^rXeR}mH9M8m7{o_7M;NwTmbqN|o&Hm8{>wq$%c(GKgxG!0 z@BZuMobwl;H%o%+>zrwF7$jcAP`R;}c-HLbAgW!?g;|)()4I(D`5MDyGvx_3#L)23 z+{xZT=q44}w;g}KEdkESkQlCz!WUrc z|0{vrf;wJv10WS%@s^*e!aPjkal0}l&$G)oDnCl33jQ|%1=vdaYmhfMsR5YQGl>X{uBydn5frBb_Vqsyp^yCdLhxQl#w} z{~>3pz;;-7$AV~RXdDXxr>j-}f!J&hmlz}C!@S6ar*Y(OVqk{dk0#C&a)j#3YDQjZ zmA9&g;y1L0- z+OpXKtQ@3h`nS@F5vp(R?0D=5p=3MZgImgLXx~{paRhfOAMY+*41JNNwpfQ>{pBB3 z1Ty~=A^WE_FCqpNoKWO3gdGaDnqF2R3jW?q8dxnp{2%TANYx6DLspgViap$MxYOMC z#8PPJ9Aa^K`!3W2Ac?HXfOYX3!(bhbs}wr^v;o)lCph4(mDTh8OnT=sUgxhHhSqntOhyLAv&#>*A z`o{qAr9svS>YI~BLYdiKt$Mcq1rV_E0C)M9yv_UV3^ug=0QkehhM#BvW@4F=TZx#o zp#QUE+exG8D!c^l|3~AH0F)#+=PV6vj4~k?Xq$BS@48kl3YoH^{QgjU0I>JRU+s6( z7!^zEJeZF@c|fIM7^YtE##79Sf!`RDOby9t99$!nG~Wxt!yFt9taQU1F5n?>v&3K*la-3S>NC`qBRYMLa16#zOp+ ztxjWEM^7f2qfA+y0WlP({Sc_NefZM+K%64CjR;6}<5q5N?xB5!xpQxwLBT!2X9wI> ztv(rTlW9!qk3cK+&YLEYq{U%o+KaE28=c=j%{fNU^iR|L#qVlq8C5+9xkqjnOTyId%)APx5L)RG> zYJY?fVO>M|4}co2|7&;^7Zw#2)z+rOzc|o@ka8Hm%-Hk98!4qsvg=On@6@e<39_!C4fBp1*t{{j$@bHJ5F=ob4Tkbn6CtFNnbn*W*!(CBMG5d0sw zB>N+NXcR0cv$^#2zpcls0dgkcL#9FyCLu1~&(0u@FUzK;eEFY; zc%?%L-re8d-`gwRc{7pX?BcS&y}iA)1ylisp{l#nCxfuv+S5$0J9Uu`hE9X{^k`|2Q1FvHpln z7))}qCMao4Lt@_!Pns#z@~1p2@jjNH1X(PWBUUx1quJ2N;zRr)Y)hjl%MVt(uyjIj z&P_VimX79V`mH|FVE=N041eJH-FX%>Xtp60}=F$qqe7mz{?znUk)W1Fl#C4nNKWOkj zwp6dZs2Um&_G;#_`U);b$vVFj9D~Cyz?rAZ{D@hpqY~XXh7*0Z0f@^%>e~F zo*zx#>gdTWjA^4-kMSKKk$n-gPmmIM_Z)J1rvl`C$)l@Np?7$oM|G7l!7Ew!4R5Ji z-|CMp*bp&l^XC`Ym3k&$ATmbKK=4-`fH?yUZ^T{gUfDb?Jl%zjHPP97;Vfmz5`C(SBDo*sZRj>KOfG{AH9kVsfCTG^ScY~GWY z{Q0cjF;kt_tVu}dwh`!Y=PWFhkP^v>r}p4@9xiwLWet_2v>Cq<%Bfni_+%ZUuAn48 z9$n%gaoI>+F}Ss5A22ih$=cuZMB&X)?3T(=<@u@@(aij1nv<8Q;}ntYFK3;P$Qrix2K z)pvHvJWW=SZpXj;6G-E{7O6g<0J^@Eo19kFHp61>{+^NhRw%P+T+T+Rd-E>CUGAmx z4M$z_T{5q3rn^4ZzZC)l4zQa?cugv$c5@d@2>xRA*$6iI6;LE=F*Q*ZRhxQ6Dxh|z zSNR%_ghr$$1_m=z{{h5BSwOW;Nnh}Z{_+da-+hWQ%Riw5aSDvZiB{jC;OA%I)BN!H zurAp)mG@30sb?Z0ru6vti2f6Ra{{&e@E#!mG9WtY^@Zp~%IP%P1<|75YGsUiz<4`U%8rekVxCT;8x6x1hhKKZ+%c>TGe+&Xep%f?s+cbe z3P@zs{Uct}514Pst@RBJjDfoo&lW#FW_afdX1*+3vYpntMFqd%6_aJ}{~P;&V}mU9 zU2AUzJ@kKD2VzLmZob;+8Q?P;Gs^xlS^XSNvB{1P>cGxj!%J{EvOflBv4rM_(m{pW z-y8pFNsplAKWmw90j#lmPH14yf&co~S6@Lt4Iu_BTI#^QZaZeEs+^7vArt8=k^Rl9 z4v{X*F2in?BJKeEpSrExj4mJS|GLIoQbBo9=>eT;9{uFWDAFj~vHa){9BQn32?n}Z z-L*t2%E)G`mTRS^9${~fM94&`5XJ%`z8QvOJ2Q1iZ|H)L zjh)?{aFTR@5#dbOOa7l&oCcaNw+adFDW};|7wk>ImNuk) z6p@d(UApMj{RsP(mrf5-GC$=_fYDO_l6HsZ&HCLTqX`IOWPQ#Gfat{m_Pxm!sTGeb zd~_df{`hecvQ`1uFx;V&w?h*c`r+dS85?3?A6{Hs25`u@BPXJNH2WkVRURlpQar3r z)<)lk{~jS_1o{_%5rDh|G56x@@ZmGJlv8S1bP#RM>k@TH7D>nr?%9x)q!S@MtK}@m zqc;+-ibk=RWBz&}Q*TS>=QF)_sz(wJw_5yvJ=|l~1ZGsM$4ukdqyb8w2ExLe4p@$f z^<6~Cd^RLFTrJKA;ivOMym0;X@+k27SlAKBI&l)A9&epn$_&CEXN;qWyoR+&~RfeoYCdv_UX67(sW zv~;?)Jy>C3!QXZtC=z^H9_u@< z1@bst{>7+bD|`KCJDC}D+_aM@e0{Y;eR*1C^d$HYPvriPj&uEI+t4~^Rr}W_N8|2i zpU@))bHzf@IE_W;pfLe!pm#SP+DbEae%4;TwSW$qI+tcZLp9PLK^Oaoc{a)|Diq6b zM+h4?Xhn8$5pyDM7?4FV;qpbX{hQ2)H0yJ zIL8h)g6}po-g7k`_E7!O?oPiKX4N~ax|@tudTYpKF|;o4h=GO!(kLp&M3L5lnwhb3 z^t=<5;%jbdy7+0^trc9eyuiESsSYcBRx9rsG#eM5g+_;wM*FSN_jny26+q@yGvbk% z8C=#Di6o-~kR4d*zPN8lYi)metjNgU@5{XW?jkG#S_`DS7+{tYMe1aXaPxEvW@FSX`Xa`8Ti$f;IUMY%F>u^iH<~~G zBa8Lau9_MnqY*i8aS~}MA_2C{2^2DXhBwsmWUqq5^;A@PKiPbT^*UaIjnP4a4+-3h zJUV6S1*K+MB;8I31Ld<`S`OWS_2j@? zW<5~Wc=5z68LZ|D_?$xyxFpyds$=Ax z1;AR^l)2h*g5qCir2c?DE&fl+#2lJH+{7x(TPPjW7g9MlPnS^)EzoP5nJIj~Az4!izkXPBl<_PvaC?vvt$(wL; z!52X!*wp^r`|jlYoY$f?dvBD-{3}J&39#6%1WNe;^X%(v<_a?z{QOu?fMzJeNHRj8 z;D)}RLs^1@lht-1FukE_0Vttc5eW^hMYWye!Wd5wT7#Qi?LdwEJvF|__XKB^6Pbo1 z^~;jcn`!dj;C7B!?Lg|-M(-f|R%wDjALBp@8nQ=bBq8dE|5i_UEg?yo@vWw$Oc|S` zfR!tRo1<51LJE`Fx3E|ay)MQ++ZSQl;EY`6S{h%dBvIqk)KnU$(IW`I9he(%ifeUb ze1$jgNy?r#Ep8=}R@1ashCs$$(bi%tr2Sp5c=}<5gZ_x1Qg)yt`XW0obye9sY-Vy2 zWAsI*EHEnc@lz7j9`c$dZm&7*vfmK^A^paILY%ZLXOGaV+g#UIe#OK3^~Lrl8+|N2 zS;fyht~s^slKHaAWc9T$VcOn@D=&z#9OSt5%=8hs;u^*zjkg7n9r=Oy zh{!-(+^~Iz6+TqCyh8lFF*oYe)nT@U{{DWO@9$5~&ue!%5gW%63pAv^LNnouHyy%cFfGDqzAxV{*i)0+F^z3Xjle<`07VS$Wl$Je}yH-pI3L1IY%<4ee(^u+oLclW(q zf85;b)rUWS;Vk@f*+8#rqP?*bn6`lo`yzn0_sJV`wv?Yyh7^Fk3xMCrK$at2)jmC9 zMBBvY6_57o;66Nnk2PaihZg&YZCc>p$R@e{uC zJ@xx)5$Wmax%dag&8FFQ4430fdTOSz`Bk^*&$~m5g@Q*Jvw3s=z78B!J^V5<&GzGy zpKeKyvW`w5dD3U$Kr_{C`vyF5wK-khCeiAA-cOg)^32!x8&#)Hdq8FI@!)T=_vAA3 zXr$WK42!J8fjbFR_cv|Xzwt?vfhpY1bdLLbKka?E`^y{G^Tkd+3(Dz8At^Q@7Bf3# z@z2XK9xfe)xR!9-ufo4WKkJ49Ig-xV=kpGK)ZUc zDCMMvoQ;ad-2{f9P?k@*?V-Tr6n}GaeIfGm6`!Kx_tb3yXo9=%f1i#LM)f4Pn-1rh zV1OJjWFoo*6(ⅈ;E&ARfaDeq>kuv8V>j#}_vHS9h+Kd=h^Ri7l) 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 diff --git a/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage.md b/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage.md index 6e2ef025ee..985ede4879 100644 --- a/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage.md +++ b/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage.md @@ -1,6 +1,6 @@ --- -title: "コストパフォーマンスの良いファイル共有ストレージ構築方法" -excerpt: "HPC/GPUクラスタを運用する際必須となるファイル共有ストレージは、NFSでこれを構築することが一般的ですが、この際の選択肢として、NFSのマネージドサービスであるファイル・ストレージを使用する方法と、ブロック・ボリュームとベアメタルインスタンスを組み合わせたNFSサーバを構築する方法があります。本テクニカルTipsは、コストパフォーマンス等を考慮してどちらの方法を選択すればよいか、ブロック・ボリュームとベアメタルインスタンスを組み合わせたNFSサーバを構築する場合どのようにブロック・ボリュームとベアメタルインスタンスを構成すればよいか、解説します。" +title: "HPC/GPUクラスタ向けファイル共有ストレージの最適な構築手法" +excerpt: "HPC/GPUクラスタを運用する際必須となるファイル共有ストレージは、NFSでこれを構築することが一般的ですが、この際の選択肢は、NFSのマネージドサービスであるファイル・ストレージを使用する方法と、高帯域のネットワークポートを持つベア・メタル・インスタンスとストレージサービスを組合せてNFSサーバを自身で構築する方法があります。本テクニカルTipsは、コストパフォーマンス、可用性、構築・運用のしやすさ等を考慮し、最適なファイル共有ストレージ構築手法を解説します。" order: "322" layout: single header: @@ -15,15 +15,61 @@ table, th, td { } -HPC/GPUクラスタを運用する際必須となるファイル共有ストレージは、NFSでこれを構築することが一般的ですが、この際の選択肢として、NFSのマネージドサービスである **ファイル・ストレージ** を使用する方法と、 **ブロック・ボリューム** とベアメタルインスタンスを組み合わせたNFSサーバ(以降" **ブロック・ボリューム** NFSサーバ"と呼称)を構築する方法があります。 -本テクニカルTipsは、コストパフォーマンス等を考慮してどちらの方法を選択すればよいか、 **ブロック・ボリューム** NFSサーバを構築する場合どのように **ブロック・ボリューム** とベアメタルインスタンスを構成すればよいか、解説します。 - *** -# 1. ブロック・ボリュームNFSサーバ構成 +# 0. 概要 -本章は、 **ブロック・ボリューム** NFSサーバを構築する際、コストパフォーマンスを最適化するベアメタルインスタンスと **ブロック・ボリューム** の構成を解説します。 +HPC/GPUクラスタと共に利用するファイル共有ストレージは、その構築方法を決定する際に以下の評価項目を考慮する必要があります。 -NFSサーバ用のベアメタルインスタンスは、Intel Ice Lakeプロセッサを搭載するベアメタルシェイプ **[BM.Optimized3.36](https://docs.oracle.com/ja-jp/iaas/Content/Compute/References/computeshapes.htm#bm-hpc-optimized)** を使用します。 +1. 計算/GPUノードの複数ノード同時アクセス時性能 +2. ランニングコスト +3. ストレージ領域に格納するデータの可用性 +4. ファイル共有ストレージサービスの可用性 +5. システム構築・運用のしやすさ + +本テクニカルTipsは、HPC/GPUクラスタ向けにNFSでサービスするファイル共有ストレージを構築することを念頭に、いくつかのファイル共有ストレージ構築手法を紹介し、上記評価基準を元にどの手法を採用すればよいか、その考慮点を解説します。 + +NFSでサービスするファイル共有ストレージを構築する際の最初の考慮点は、マネージドのNFSサービスである **ファイル・ストレージ** を使用する方法と、自身で **ベア・メタル・インスタンス** からNFSサーバを構築する(以降"ベア・メタル・インスタンスNFSサーバ"と呼称)方法の、どちらを採用するかです。 + +ここで **ファイル・ストレージ** を採用する場合は、性能要件に合わせて **マウント・ターゲット** に標準タイプ(以降"標準FSS"と呼称)とHigh Performanceタイプ(以降"高性能FSS"と呼称)(※1)のどちらを使用するかを考慮します。 + +※1)High Performanceタイプの **マウント・ターゲット** は、その性能違いで3種類存在しますが、本テクニカルTipsでは読み取りスループット設定が80 Gbpsで性能が最も高い **HPMT-80** を前提に解説します。 +High Performanceタイプの **マウント・ターゲット** 詳細は、 **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/File/Tasks/managingmounttargets.htm#performance)** を参照くして下さい。 + +またベア・メタル・インスタンスNFSサーバを採用する場合は、以下2種類のどちらにするかを考慮します。 + +1. ストレージ領域に **ブロック・ボリューム** を使用しこれをベア・メタル・インスタンスにアタッチする方法(以降"ブロック・ボリュームNFSサーバ”と呼称) +2. **ベア・メタル・インスタンス** にNVMe SSDドライブを搭載するDenceIOシェイプを使用する方法(以降”DenceIO NFSサーバ”と呼称) + +以上より、本テクニカルTipsで解説するファイル共有ストレージは、以下4種類です。 + +| 呼称 | 使用するサービス | ヘッドノード | ストレージ領域 | ターゲットスループット | +| :--------------: | :--------------------------------------: | :----------------------------: | :--------------: | :---------: | +| 標準FSS | **ファイル・ストレージ** | **標準マウント・ターゲット** | **ファイル・システム** | 100 MB/s | +| 高性能FSS | **ファイル・ストレージ** | **High Performanceマウント・ターゲット** | **ファイル・システム** | 10 GB/s | +| ブロック・ボリュームNFSサーバ | **ベア・メタル・インスタンス**
+
**ブロック・ボリューム** | **ベア・メタル・インスタンス** | **ブロック・ボリューム** | 5 GB/s | +| DenceIO NFSサーバ | DenceIOシェイプ
**ベア・メタル・インスタンス** | **ベア・メタル・インスタンス** | NVMe SSDローカルディスク | 10 GB/s | + +以降では、これら4種類のファイル共有ストレージ構築手法について、まず初めに2種類の **ベア・メタル・インスタンス** NFSサーバ(ブロック・ボリュームNFSサーバとDenceIO NFSサーバ)の構成を解説し、次に前述の評価項目をもとに4種類のファイル共有ストレージ構築手法を比較します。 + +なお、各ファイル共有ストレージ構築手法に沿ったファイル共有ストレージは、 **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の **[1-3. ファイル共有ストレージ](/ocitutorials/hpc/#1-3-ファイル共有ストレージ)** カテゴリの以下チュートリアルを参照して構築することが出来ます。 + +| 呼称 | チュートリアル | +| :--------------: | :-------------------------------------------------------------------------: | +| 標準FSS | **[ファイル・ストレージでファイル共有ストレージを構築する](/ocitutorials/hpc/spinup-nfs-server-fss/)** | +| 高性能FSS | **[ファイル・ストレージでファイル共有ストレージを構築する](/ocitutorials/hpc/spinup-nfs-server-fss/)** | +| ブロック・ボリュームNFSサーバ | **[ブロック・ボリュームでNFSサーバを構築する](/ocitutorials/hpc/spinup-nfs-server/)** | +| DenceIO NFSサーバ | **[短期保存データ用高速ファイル共有ストレージを構築する](/ocitutorials/hpc/spinup-nfs-server-nvme/)** | + +*** +# 1. ベア・メタル・インスタンスNFSサーバ構成 + +## 1-0. 概要 + +本章は、2種類のベア・メタル・インスタンスNFSサーバ(ブロック・ボリュームNFSサーバとDenceIO NFSサーバ)の構成を解説します。 + +## 1-1. ブロック・ボリュームNFSサーバ構成 + +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サービス時に同時に使用することで、NFSサービスに50 Gbpsの帯域をフルに使用することが可能となるためです。 またデータ格納領域に使用する **ブロック・ボリューム** は、ボリューム・パフォーマンスにBalancedを使用します。 @@ -34,67 +80,120 @@ HPC/GPUクラスタで使用するファイル共有ストレージは、アプ ![システム構成図](architecture_diagram.png) -なお、本構成の **ブロック・ボリューム** NFSサーバは、 **[マーケットプレース](/ocitutorials/hpc/#5-5-マーケットプレイス)** から無料で利用可能な **[スタック](/ocitutorials/hpc/#5-3-スタック)** を利用して自動構築する事が可能で、詳細は **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の **[ブロック・ボリュームでNFSサーバを構築する](/ocitutorials/hpc/spinup-nfs-server/)** を参照ください。 +## 1-2. DenceIO NFSサーバ構成 + +NFSサーバとなるベアメタルインスタンスは、 **[BM.DenseIO.E5.128](https://docs.oracle.com/ja-jp/iaas/Content/Compute/References/computeshapes.htm#bm-dense)** を使用します。 +この理由は、このシェイプが100 GbpsのTCP/IP接続用ポートを1個搭載し、12台の6.8 TB NVMe SSDローカルディスクに構築するストレージ領域をNFSでサービスする際、100 Gbpsの帯域全てをNFSクライアントへのサービスに使用することが可能となるためです。 +これにより、 **[1-1. ブロック・ボリュームNFSサーバ構成](#1-1-ブロックボリュームnfsサーバ構成)** で解説するブロック・ボリュームNFSサーバに対して、NFSクライアントへのサービスに使用できるネットワーク帯域が2倍となり、NVMe SSDローカルディスクの持つ高いI/O性能とあいまって、計算/GPUノードからの多数同時アクセス時に高いスループットとメタデータ性能を提供するファイル共有ストレージを構築することが可能になります。 + +![システム構成図](architecture_diagram_nvme.png) + +またデータ格納領域に使用する12台のNVMe SSDドライブは、 **Linux software RAID** を使用し、データ保全性とパフォーマンスを両立するRAID10構成とします。 + +![RAID構成図](raid_configuration.png) *** -# 2. ファイル・ストレージとブロック・ボリュームNFSサーバの比較 +# 2. 各ファイル共有ストレージ構築方法の比較 ## 2.0 概要 -本章は、前述の構成の **ブロック・ボリューム** NFSサーバと **ファイル・ストレージ** を、以下の観点で比較します。 +本章は、4種類のファイル共有ストレージ構築手法を、 **[概要](#0-概要)** に記載の5個の評価項目を以下3グループに分類して比較します。 -- コストパフォーマンス -- システム構築・運用のしやすさ +- コストパフォーマンス + 1.計算/GPUノードの複数ノード同時アクセス時性能 + 2.ランニングコスト +- 可用性 + 3.ストレージ領域に格納するデータの可用性 + 4.ファイル共有ストレージサービスの可用性 +- 運用性 + 5.システム構築・運用のしやすさ -詳細は以降の章で解説しますが、コストパフォーマンスは **ブロック・ボリューム** NFSサーバが有利で、システム構築やシステム運用のしやすさでは **ファイル・ストレージ** が有利となり、どちらの観点に重きを置くかで選択することになります。 +詳細は以降の章で解説しますが、コストパフォーマンスはベア・メタル・インスタンスNFSサーバを使用する構築手法が有利で、可用性と運用性は **ファイル・ストレージ** を使用する構築手法が有利となります。 ## 2-1. コストパフォーマンスによる比較 +本章は、コストパフォーマンスとして以下2項目の評価指標を採用します。 + +1. 計算/GPUノードの複数ノード同時アクセス時性能 +2. ランニングコスト + +ここで **評価指標 1.** は、 **[IO500](https://io500.org/)** でも採用されているファイルシステムベンチマークツールである **IOR** と **mdtest** を、それぞれスループットとメタデータ性能の評価指標として採用します。 + 以下の表は、 **ファイル・ストレージ** と前述の構成の **ブロック・ボリューム** NFSサーバを、価格と性能の観点で比較しています。 -この表から、 **ブロック・ボリューム** NFSサーバのコストパフォーマンスが **ファイル・ストレージ** より圧倒的に高いことがわかります。 +| 呼称 | 構成 | 月あたりランニングコスト
(2024年9月時点定価) | IOR
write | IOR
read | mdtest
create | mdtest
stat | mdtest
delete | +| :---: | :------------------------------------------------------: | -----------------------: | :---------------: | :-------------: | :--------------: | :------------: | :--------------: | +| 標準FSS | **マウント・ターゲット** (Standard)
**ファイルシステム** (15 TB)
Total | 0 円
697,500 円
**697,500** 円| 125 MiB/s
(※1) | 125 MiB/s
(※1) | -
(※2) | -
(※2) | -
(※2) | + 高性能FSS| **マウント・ターゲット** (HPMT-80)
**ファイルシステム** (80 TB)
Total |3,360,000 円
**マウント・ターゲット** 込み
**3,360,000 円**|10 GiB/s
(※1)|10 GiB/s
(※1)|-
(※2)|-
(※2)|-
(※2)| +| ブロック・ボリューム
NFSサーバ | **ブロック・ボリューム** (Balanced 15 TB)
**BM.Optimized3.36**
Total | 98,813 円
302,659 円
**401,472** 円 | 3,720 MiB/s
(※3) | 4,938 MiB/s
(※3) | 3,796
(※3) | 23,860
(※3) | 3,818
(※3) | + DenceIO
NFSサーバ|**BM.DenseIO.E5.128**
NVMe SSD 40.8 TB (RAID10)|**1,328,701** 円|8,967 MiB/s
(※3)|7,526 MiB/s
(※3)|83,406
(※3)|255,682
(※3)|70,499
(※3)| + +※1)**IOR** 測定値が無いため、 **マウント・ターゲット** の最大スループット値を記載しています。 +※2)**mdtest** 測定値が無いため、記載していません。 +※3)3回計測した平均値です。 -| | 構成 | 月額定価
(2023年9月時点) | スループット | IOPS | | -| :-----------------------: | :---------------------------------------------------------------------------------: | -----------------------------------------------: | ------------------: | --------------: | --- | -| **ファイル・ストレージ** | マウント・ターゲット x 1, ファイルシステム x 1(15 TB)
- | **630,000** 円
(\*5, 6) | 983 MB/s
(\*1) | 25.0 k
(\*2) | | -| **ブロック・ボリューム**
NFSサーバ | **ブロック・ボリューム** (Balanced)1 TB x 15ボリューム
**BM.Optimized3.36** x 1インスタンス
Total
- | 89,250円
273,370円
**362,620** 円
(\*5, 6) | 2,040 MB/s
(\*3) | 33.3 k
(\*4) | | +この表から、以下のことがわかります。 -*1) 以下URLで公開されている **ファイル・ストレージ** の性能情報11ページ目に記載の、 -[https://docs.oracle.com/en-us/iaas/Content/Resources/Assets/whitepapers/file-storage-performance-guide.pdf](https://docs.oracle.com/en-us/iaas/Content/Resources/Assets/whitepapers/file-storage-performance-guide.pdf) -1マウント・ターゲット1 MiBブロックサイズreadのスループット値を使用しています。 +- **IOR** スループットレンジが同程度の高性能FSSとDenceIO NFSサーバを比較すると、 + - DenceIO NFSサーバのランニングコストは高性能FSSの約3分の1(※4) + - (高性能FSSの測定値が無い状況の中)DenceIO NFSサーバは圧倒的なメタデータ性能を示す +- パフォーマンスがエントリーレベルの標準FSSとブロック・ボリュームNFSサーバを比較すると、 + - ブロック・ボリュームNFSサーバのランニングコストは標準FSSの6割程度(※5)(※6) + - ブロック・ボリュームNFSサーバのスループットは標準FSSの30倍以上 -*2) 以下URLで公開されている **ファイル・ストレージ** の性能情報11ページ目に記載の、 -[https://docs.oracle.com/en-us/iaas/Content/Resources/Assets/whitepapers/file-storage-performance-guide.pdf](https://docs.oracle.com/en-us/iaas/Content/Resources/Assets/whitepapers/file-storage-performance-guide.pdf) -1マウント・ターゲット32 KiBブロックサイズreadのIOPS値を使用しています。 +※4)この比較は、高性能FSSの80 TBとDenceIO NFSサーバの40.8 TBの異なる総容量で比較しているため条件が異なりますが、高性能FSSの80 TBは使用するにあたっての最低容量で、DenceIO NFSサーバの40.8 TBは当該ベア・メタル・インスタンスに搭載するNVMe SSDドライブ使用から来る固定容量です。 +※5)総容量15TBのブロック・ボリュームNFSサーバの構成は、価格の大部分を **BM.Optimized3.36** が占めるため、総容量がこれより大きくなると、下表のように標準FSSに対する価格優位性が拡大します。 -*3) **ファイル・ストレージ** と同様、 **VM.Standard2.16** で構築したNFSクライアントから1 MiBブロックサイズreadでfioを使用して計測したスループット値です。 +| 総容量(TB) | 標準FSS
月額定価 | **ブロック・ボリューム** NFSサーバ
月額定価 | +| ------: | ---------------: | ----------------------------: | +| 15 | **697,500** 円 | **401,472** 円 | +| 100 | **4,650,000** 円 | **961,409** 円 | +| 500 | **23,250,000** 円 | **3,596,409** 円 | +| 1,000 | **46,500,000** 円 | **6,587,500** 円 | -*4) **ファイル・ストレージ** と同様、 **VM.Standard2.16** で構築したNFSクライアントから32 KiBブロックサイズreadでfioを使用して計測したIOPS値です。 +※6)標準FSSは、従量制課金のため使用量が15 TBを下回るとそれに応じて金額が安くなりますが、 **ブロック・ボリューム** NFSサーバはその時点の使用量に関わらず定額課金されます。 -*5) 総容量15TBの **ブロック・ボリューム** NFSサーバの構成は、価格の大部分を **BM.Optimized3.36** が占めるため、総容量がこれより大きくなると、下表のように **ファイル・ストレージ** に対する価格優位性が拡大します。 +以上より、性能レンジが高性能・エントリーレベル何れの場合も、コストパフォーマンスを評価指標にファイル共有ストレージを比較すると、ベア・メタル・インスタンスNFSサーバを使用する構築手法が **ファイル・ストレージ** を使用する構築手法より圧倒的に有利であることがわかります。 -| 総容量(TB) | **ファイル・ストレージ**
月額定価 | **ブロック・ボリューム** NFSサーバ
月額定価 | -| ------: | ---------------------: | ----------------------------: | -| 15 | **630,000** 円 | **362,620** 円 | -| 100 | **4,200,000** 円 | **868,370** 円 | -| 500 | **21,000,000** 円 | **3,248,370** 円 | -| 1,000 | **42,000,000** 円 | **6,223,370** 円 | +## 2.2 可用性による比較 -*6) **ファイル・ストレージ** は、従量制課金のため使用量が15 TBを下回るとそれに応じて金額が安くなりますが、 **ブロック・ボリューム** NFSサーバは、その時点の使用量に関わらず定額課金されます。 +本章は、可用性として以下2項目の評価指標を採用します。 -## 2.2 システム構築・運用のしやすさによる比較 +3. ストレージ領域に格納するデータの可用性 +4. ファイル共有ストレージサービスの可用性 -以下の表は、 **ブロック・ボリューム** NFSサーバと **ファイル・ストレージ** の利点・欠点を、システム構築やシステム運用のしやすさという観点で比較しています。 +ここで **ファイル・ストレージ** を使用する標準FSSと高性能FSSは、可用性を評価指標とした場合同じ評価となるため、これらをまとめて3種類の構築手法を比較します。 + +以下の表は、これら3種類の構築手法の可用性観点での利点・欠点を比較しています。 + +| | 利点 | 欠点 | +| :-----------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| 標準FSS
高性能FSS | ・HA化されたマウント・ターゲットによる高いサービス可能性
・ **ファイル・ストレージ** が用意する豊富なバックアップ機能を
使用することで高いデータ保全性を実現可能(※7) | - | +| ブロック・ボリューム
NFSサーバ | ・**ブロック・ボリューム** が **可用性ドメイン** 内に複数レプリカを
持つことによる高いデータ可用性 | ・NFSサーバインスタンスがサービス可用性に対する単一障害点
・データ保全性を高めるためのバックアップに環境構築が必要(※8) | +| DenceIO
NFSサーバ | ・ **Linux software RAID** のRAID10によるデータ可用性 | ・NFSサーバインスタンスがサービス可用性に対する単一障害点
・NFSサーバインスタンスがデータ可用性に対する単一障害点
・NVMe SSDドライブのRAID10による脆弱なデータ可用性
・データ保全性を高めるためのバックアップに環境構築が必要(\*9) | + +※7)スナップショット、クローン、及びレプリケーションが用意されています。これらサービスの詳細は、OCI公式ドキュメントの **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/File/home.htm)** を参照ください。 + +※8)**ブロック・ボリューム** に格納されるファイルのバックアップは、 **ブロック・ボリューム** が用意するバックアップ機能を利用することが出来ず、NFSサーバ上のファイルシステムとしてアクセスしバックアップする必要があります。 この表から、 **ファイル・ストレージ** は **ブロック・ボリューム** NFSサーバに対して、圧倒的にシステム構築やシステム運用が容易であることがわかります。 -| | 利点 | 欠点 | -| -------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| **ファイル・ストレージ** | ・NFSサービス開始までの構築手順が簡単
・ **ファイル・ストレージ** が用意する豊富な
 バックアップ機能を利用可能(\*7)
・ファイルシステムの拡張作業が不要
・メンテナンスフリーのマウント・ターゲット
・HA化されたマウント・ターゲットによる高可能性 | ・マウント・ターゲットあたりのNFSサーバ性能
 は固定 | -| **ブロック・ボリューム**
NFSサーバ | ・ボリューム・パフォーマンスとシェイプの選択
 によるNFSサーバ性能のVertical Scaling
 が可能 | ・NFSサービス開始までの構築手順が煩雑(\*8)
・バックアップのための環境構築が必要(\*9)
・ファイルシステムの拡張作業が煩雑
・NFSサーバのソフトウェアメンテナンスが必要
・NFSサーバインスタンスが単一障害点 | +以上より、可用性を評価指標にファイル共有ストレージを比較すると、 **ファイル・ストレージ** を使用する構築手法がベア・メタル・インスタンスNFSサーバを使用する構築手法より圧倒的にデータ可用性とサービス可用性が高いことがわかります。 + +## 2.3 運用性による比較 + +本章は、運用性としてシステム構築・運用のしやすさを評価指標に採用します。 + +ここで **ファイル・ストレージ** を使用する標準FSSと高性能FSSは、運用性を評価指標とした場合同じ評価となるため、これらをまとめて3種類の構築手法を比較します。 + +以下の表は、これら3種類の構築手法の運用性観点での利点・欠点を比較しています。 -*7) スナップショット、クローン、及びレプリケーションが用意されています。これらサービスの詳細は、OCI公式ドキュメントの **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/File/home.htm)** を参照ください。 +| | 利点 | 欠点 | +| :-----------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| 標準FSS
高性能FSS | ・サービス開始までの構築手順が簡単
・ファイルシステムの容量拡張作業が不要
・メンテナンスフリーのマウント・ターゲット
・マウント・ターゲットのアップグレードによる動的な
NFSサーバの性能向上が可能 | | +| ブロック・ボリューム
NFSサーバ | ・ボリューム・パフォーマンスとシェイプの選択
 によるNFSサーバ性能のVertical Scaling
 が可能 | ・サービス開始までの構築手順が煩雑(※9)
・ファイルシステムの容量拡張作業が煩雑
・ベア・メタル・インスタンスのソフトウェアメンテナンスが必要 | +| DenceIO
NFSサーバ | - | ・サービス開始までの構築手順が煩雑
・ファイルシステムの容量拡張が不可能
・ベア・メタル・インスタンスのソフトウェアメンテナンスが必要 | -*8) この構築作業を自動化する **[スタック](/ocitutorials/hpc/#5-3-スタック)** が **[マーケットプレース](/ocitutorials/hpc/#5-5-マーケットプレイス)** から無料で提供されています。この詳細は、 **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の **[ブロック・ボリュームでNFSサーバを構築する](/ocitutorials/hpc/spinup-nfs-server/)** を参照ください。 +※9)この構築作業を自動化する **[スタック](/ocitutorials/hpc/#5-3-スタック)** が **[マーケットプレース](/ocitutorials/hpc/#5-5-マーケットプレイス)** から無料で提供されています。この詳細は、 **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の **[ブロック・ボリュームでNFSサーバを構築する](/ocitutorials/hpc/spinup-nfs-server/)** を参照ください。 -*9) **ブロック・ボリューム** に格納されるファイルのバックアップは、 **ブロック・ボリューム** が用意するバックアップ機能を利用することが出来ず、NFSサーバ上のファイルシステムとしてアクセスしバックアップする必要があります。 \ No newline at end of file +以上より、運用性を評価指標にファイル共有ストレージを比較すると、 **ファイル・ストレージ** を使用する構築手法がベア・メタル・インスタンスNFSサーバを使用する構築手法より圧倒的にシステム構築やシステム運用が容易であることがわかります。 \ No newline at end of file diff --git a/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage/architecture_diagram.png b/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage/architecture_diagram.png index e8e4eef2a91c3ef66b86e58f6bc491a9c6b34aed..f2990464a29d071aba177a25e8d0d4a01698aa12 100644 GIT binary patch literal 36465 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 diff --git a/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage/architecture_diagram_nvme.png b/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage/architecture_diagram_nvme.png new file mode 100644 index 0000000000000000000000000000000000000000..fc4cc5c6fd3f4e8be8feff0bc414b4a6ab48b1dc GIT binary patch literal 30456 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

MMwZkS^|6b>!fg4$#%L0< zP{1a0C-bv{F8VGe6+S^i9%ougKC=j$bHo>yaY-|JxFDWA&Z93E?Jmuy3+#T`c4|nT zzgI$s7li%$?CO;v_s!o$a zW(bQYhpj-6BlO*ts|5?}_i|qRS@m#(5;UQq7yP17T!ozyB&rT2PZ7;pz={M<1cP#;eWf;O`5my&Z9iKoiv2i$R@(dR2jLMBZ5tq$0bhUudKzF|_ZnhN0^rQy z_%Tq*{fc!0fE8g@?ZX2gt%wG5mjT@U%o%WSE)B2^foKE|SV>0WpTwZ1%I21_{OLK^ zw6ya2w|786@0YS}f$>Vgs$?ujO2U(XV+{qasu2EmH=BD^kFk1^N3B1}tR8MYWuZM) zI-B3eK$z`n^W%GmFznv%pR2{fsqy@5sSOui7m3+}-V}GFp}kzi`+m)+eAO zO5O$rC?c`AXu%ctQ5qmQUu0U7h?FhrjWe2$zNc-O0P{>@Qkf=QJnt+#J)JOz};*=aDG|L`fazabf; z!2dq32{ybl?j|5EbX^oYq}isFe%=qR49x5QPJ=^!p*EnE)}CqbdArbfu?TuGWPlmW zmbA(L96Vw+)ZZkc?H}~@m8FggQv#Se#ve1SgU~*ne}EW=;cUl*fVuzH2Fuy~BLRC5 zg5aEG5VecPw=}oQ9@fWuc$6fJPx^cFSrA!U=~y|)AHXcwMTWr9v-?7!Z-7$04kF$V z{8l>L9LsQd*USntpsi}XMf)}=nteJ)CZE)`Mu?DQ;T_i?9!u3Ng-X0s7K@K5%h|-T zUQ1-oOi%|OU0UZr=^$|GK=LH(-g5~%X9o$;%*aGk1BLP#wc!H^BvuApevsz$kAg#L z?d=rCqwZV)eMT5v|CY$dQVlLhOGuP@pPq)w@a^opl!FK^FXc9Gc8`1JKc56Mg=(*g z@tWXX>^ezJ-}ytDTFb?$+Vr~L4nD-r$F2UStM_}pERRhdFxKS7TC~sf5X(N=@~h%P z`$Sb%X~$=!qIssES-Ux6jQ=v+lc5A(lCU}r}N z`~txBBLxvTE3XS3C#zq74KeyRuB!*6;9i3+3nDc z(Ry0|4rNehZ5?CE%Ey!Uq^!ZZ5oEMQ{%{5DvEU@;(vS3vQl#ePZu|sWF|;mO0ItI- zAgoDWm1IIK?O;CTalu?KBjeq!#|*@`{oC9NzyFrG@KDe?qI+=G6zlchJ*Zp~^m<@G zgXlywN`jgBiwR!!u58(ZT3xY%evS~J_d?7Ww?kUJ1r7X7ZpkV8Jrx9CX!kZIOVsVe#xL4$XyLe${lcK2k zNsWb$7{bSywH@jixPQ?*^77@0u7wG*%0s)W@2{TlRc|%yOgp3~!%gG3`h2hhJsLY` zL!rN43*apzxjJt`0+@)m_L5t)IZ4xfd^@7j_czBH`emu45qbp+ZRl4#?ih^;+(6v3wrzYDH3<(-t3E{wF>&V zHB*u8*HChk8Wve`J9{gWOF_qE&Ruw#u1n7=iuQY>d(8XyK2d#XNrF>fW`%E?-ec|> zc+>fnl6kb#weUye5!2%U1y@yKRtO6eYb!$rg|NgLSIj^j|9DeaW*rTc1YHSN$`9~H&R?~l*TAl}+FZ|zM=9e%(L6HTp z(gWD_nVK$Wp+s5BM9Os5Rp6|H+d3J>061e9TrOEFE7ebimfzp2zKYDLzugmok({t- z749`-`0wdhJtr5wMty`4nglx{W}exJkps;8td(et{M3RzVQt8!rJ#FHc{0)eJrK(Q zkq(8U$QvC-&`P123#@0*5<`M&?rD*bBkTfw_9RcdvJ_blL2KXaI>Y~d%(GC=v7iu? zP5-q!A-S%z$pSct|xJ K)nb)9LH`3X;e_x2 literal 0 HcmV?d00001 diff --git a/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage/raid_configuration.png b/tutorials/_hpc/tech-knowhow/howto-configure-sharedstorage/raid_configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..59e412fa4dc0cff961306a71acc84b845dc1e9b9 GIT binary patch literal 17007 zcmeIaXINBA(>4l7M&bY}Q6-Ed5y?YPGKdTyk`WM;jDie7B%>fm&S8cOBS~`33L=Ul zIVXuj77!(KdT{S&@9%lvb6w}0-{*%gv*@l>U0rq8UDazDq6Jr>BxfSW!^5LgQ&qf& zhj$JFK7S-706)1o?hu1t_%8QUpP-U$ZrF*y39s5YaRyzBAXg4CzM&jIA#5{o zf&KzvU{F%nYyfvC9g)yQrSMvgYjn;;3`E&N@3fu6L)9moEa+~kowqs>o;z(?I(%Y? zuCIS8IJo3CeRz`Q<5AFD@XoWap?+oEC%>eK z`w+tjgUW*sQI$QCw73sBuP`BC!WB*d1pFnbTMMkkc-OC-}zmmiJp39G>Ph-pTGW24x!jht@c(6L&m7LVROqWn$ zH4)9125pXAyr2!QDFR&sUs!k~2F%d>#TDi~FYiX9_C}8Z`x{ zm9Hl=At1dnNk4wBWB*D!%FZo;rjPPF-EGq4h}R?p+D$H8$TQ)zQiXg7 zqJ%6FvOS-t4X2Y=J%_WFt;MIPD=VpbhL5{qxR|(JMiJvo)kg?S%!z+CAOP4f1`lU) z5jh}T%@1eOlnj@vFF9|Y-3=$34);BZ8@EQXKlj3!g%I~WhYW~OCHViv{+AKZ8|@0z z-d^8i*e#(mwDU>A!NbDy&Yi66r$a(qW|Q{# z@%FvY!+(OMZWKoLB$S_j>s9Mlglm9GlDrut095(!5AJ11pHy9%eMT|{VQOc{1QFOnHoKk zMBtD7lly2_(-)l1fr@Kap;u4I=?J+6LX;me)6t6zL@2A#!_cK*WT%NHOAZj!mgz#S z?tT&^p*0@RCT^*cL(tQxn?fT_7EA1ALe~n1P@mn5Jfbd5Le&|pKw*hK;mHQ_e1x}} zn;18pyWRnLYrcZX|DwoITI?0fS4F;=njD4rLUaRH*SmFh| z{5}~|`Hd}`{E#H_078GYaXIr&M^4ovV1Hn9iAB%ZPZ3Q7gl3d>b&Y>bI|}lk-7db< zTVYpMUv>T;b6s*yJ7!UryI>;o#|&UguFjiQIAw(^hg|sAFrJe=_co%JfA(ql9>(_j z`|2&k`Z;mig*&WI#r^-Y)hf#Ezbl(=iAH5yDDJ(?gwJh57to~~7!YI;a9cqj@Q;8t zQ}o@X54X3RuDm**UuroF?M{4dvYMfSgcl^&L3 z&mIe1jcOqK#|LiCii((OJ?ha4j5B=7a;hxEaGuVV^)Ejfc7~hpZ&yF4wr3Y?$_ZST zH6O5wc!n0ld35(~do*olVooKGTh%<{-63Z80Oy<{MquBwSWuUQ_HhA?frp$8WgSm! ze@+igbGl=~NY?NvLR~(pNPGnLx8riELyA3()WyBG71l@O&;ubggZ7u@!*sTv(FMTU|7YY~)y2ix ze}yYZ)de_n|5uQMM17z2ALsZxIcnc{_dF@H^fl6VC;qv22KA|n z?nI2Ou(x<_!gS4Kd|I|^E(lDH)0%9}EtRC@t?;QmFpcdN+IgkT+Z1ySOSSLhqp#MLXQ8*OjO;%Ma;#2Zpv@fow6@EFaE+B{m24A+ZPdivlI zLT^-3rrrxKfRIn^CHu-$%vKHW#t+w{mX=b6rtyFeMM}!hp=;rKF=NZ^nVEO`$_02* zU5p;b=N#NiF@dr_t~7kyh{@kmBK5gszmDYfkoog-bpu)8rUriUN+>nK_+IyhC@91? zrVYBnofSltoEbv3lv8!NSCCBlHCWu-)m3D{bD2Ls&m^e*kt28CT2u(;teTTDT=5YT zLf`2Of9B{Prx%<8gEplMHl&HV!aYR`-EmWY2I#HD3=K;z4;D?)yCU=$vmqqqo}vv~ z32~0|&vLVd`L4saze_+fr8N5k6mPi@Ff^v^9(R-7|KSN{k?A(%RGoltPNANzdNkRP z;Gp{7f6x39k$O++itSUys9N*#yiXCIS^@}(D66u2J!8H}s=fM%t;$0YPa(4JFuM)G z&vlV=^C>A?54*tcWeR=HyQ0qI(I3w1IASP8$;p>gM1KkO;B3~l)F6J_84dA*%7@nL zB2h)=<@X*T+|-sh8JNyFGF9dHi%-7o3qn=(-!2d6x)Y6Ei@~VziYSkYJW@ONv|c-x zQpz6f|A;6yKI<)p+yW$iO2cy@3jgbftJ%POYEk?k_sY?=s!^oW+=0x-;JMZ3&AY+# zB4XX>GPI|H#3|_d2>Jws_lUaIk#||4>zuc<8!4YMa^?`_H2kuLTP5{Y#^Qx;Q{ zB`0rmyZ*6pA9NBe*FH)%L)hd>xM>(90);6}dHno27CkO$%gfEGkI!lCUlV7BV@1a1S@bzG+nSj*_a<<@=F7XCeh+-GEHuOP#Hii4!3csAq>vKv>o2t_HIVwZ}}@2 zGF8|Wiwk7EpT%t9h|o3uzJSHm^Jh?uBS!$g&j=5;J@d-+Mb$H3Jut`b(+Rtt&7&W?9+pk>#|Kl^yI|8Tj%kRq7`XxJb@!*W@y4C%r zD2Dbk$x*DZMgnIBzgQyY_;my&67s`JqlbrR>UG9GF`O|;)kK5Sfz!aOUjU!HRexCLU$#BVTsTMITE4sVvNPMB{dC9ov{<1S7PHv)U{lQA%H|d?bua_qqYIyCf0R1On^SHcnd+BpL-){HN_DANYplpQZ zVqQ^PcxO;1|II<*OQK-uGSZ+nrc}J1y}Gz-J$bCy7UhPZ;Rd^!Y%7=1()kP z416Lc1=(McV74g{_Re!+|KlT8mnDB0Vt0`zUnYDG*GVXua+0lXC^=n)4+q^LE|gA- zsuh4-g&-`Rw)Rak*$0qZjP#sHsM}vmor|%{yHrFlVqf;N=3|O^U|V)t(N2H*N#$ay zZ5ezm#o72pi_dX}%X-!Dke9GQacNf7NBK4b^ZkhNo8l8r3fQ&L3iM)X8`kNGeG%C^ z;)8&v{mrTV?;oLRFBF$?Cq1ZjPqLj7fVi{3oOMN~&s&M6wGA0Sutca=6vT+$P)Pr<>!YoX$B61V}_O$6Hi-?;jm@S*UuM|t?wHO-#Xp@_U+cG zm$c6>Bfll`Lme7HW+}Jg(C6xOV4~&G0@NP%~I+|YpS41yw~kLjXuO!$OwE(%y?W0_>frUQ}0#d9>3>@GlA3vz;jyG z%D-rlKt5KZZP1P0^e|_Vuf&l)y;35#$U*KxS zg`J1z7!{@2+$UWVf2O5%vio}V<)~SG>7)t{z9U6S_=^(^5W6V7zO9pV_x4g8k4~7% zOH5bnIbTF*F5%{*K3Opb{^>+BpE|enlw9>hQ$(-Q$emnPzhj9ti_oDN)~a1yy*9Vk zY`#0G({BS18M4YGJ9b56M>T)sM6;oj?Q-)rg2vf57%+p8_W5Re zM8NUMsCD|_$uw`UQVv~| zX|w+}J3?M?%*^!0y-JQ|&Y8uRTTI50hq@+EE2@n*dvx7zwb)lis@ZnfE7T9aP#|WX z)0@%#@b0SK?UD37@d8o}gfNmzETfx3iKS^anjNK%GDA)FB~5yVe0W3O@y`*fre;nh zX7rDEK2aOfvBM&bUhbE@?}DZujc1rg$0)IXG22S^1aTCKnTwFxh}Spmm6i9qB=|;F ztammKWWcna6E5Fu*{`(TfxeM-P;}M_STI1$%E%UBjGs2?%DSJ=g8YIHar0l(l-(oplqyqNrS3LH<2QR2()lzj#CpoLM2U)Du>Wrz7I=Oc* zMRbV2$cDJE37Z{~;#)Or{qAtJ=!jzPH>V^kgcPzIHDTKevW^#s_)15#inJmm9pP)k~W?4VYjL^vALJ!F_K5Q52P_|(*?QNLb2K6M?x(ff0%P8;;j8fn`8 zYDtS}Di!(Eq7u}~E*kpT%TwHOOvDj(O|bDtK%?YC9iHtuVoMc_%x@ELv8V3K^#;O$ zeblCxN-EXo^2c9(P5b&*Qupi3$3iVrOS!T&9A&Q65@c1p?hvhA2*uOwa&0h z*-eXC*Ny3dLX>%HLH!VqIojWO95MA`vuQKoqoB_g#q+FZzTat$iQt`7F#92X$4Wvr z@1NSq`E@PooUmLX@V&I{OXr-&xBdv>07td8PdsR3R(L`ySoZZr+xFK;Uu&Y(S4TIt z+98?)%3r?wouj%fXpmVsxAqB5Wus!u9~{l0!Z^S)UDD~@HrcDJj`y3QX=ZA{hm00g z%8|4_W9sei6|sahf;oo*P}~QpZKUsAfV6kzz&!BP!(AcU?zg6rm0} zL^UAD`l1(3Kx%*gUYmD2FcYNRC1bV6msn*yE5-Dgeowly!`_ERR{lZ}_0}D3G^pDz zlp&Vy73Ex>?&K_=_~2vfl8cWjmtQd6dR+I^A0s~P<&qsPCU3T{ch6Ay#jmvxx5|z_ znttS__1#5E!rw}%e3a5eSib3RN!`q(X)2EIMCOyf{-z7)cNTJnJqfPVV*`jL4GS<@ zm!ept%prn(liHL<#Enl3KL!Ze$>I_Q)RM%Z!!wYmRGidHCt8kwjkoZn3sjE~OfHNh z->`JLs`qv&-Pd%SH&*7?$hpbK+j|6Qw~?fbf~G}|@m*z|Y;T&ki}%XIOkb>5jp-%d zO%WmUUN|&2X?C1sLSc!#DKFhrJj4VXvCOYkd>g9%tcX|~Po7_*NRkAjXLxR#trk^8 z0F&&y-AGe(EWBGTB}cm3NnHmXNTx5? zGF)*vO1S-?nzONFw*B)HH3WR&YUJ@-?QEZEI&L`f^+qW-z){0mrz`NIMe&w=%J^;u zeG~r;D(N4$*JVYwv%=8Y%)H4Uy)aKwvPl~>XnqZ4;B%TCvo9$IW6x1b`)xd1`#Gyv zCT*+0wF53^Hh4)jN%USY^U?+}9iwLn;O&O? z#Z?I+eFV(_t+P8>q>h>Fi~J!%E|r-vqmDI`Jr5#KrasT=ft!MR%x}JUI6kzYQ_&BX z`raX%d%e?|dfV7FTO|?&yE1cI&iyvnpBOH6r=h4T3YGEO(Uiswn&H@^zQpF7;*e#ZAA) z#_sGply`Asg*r7AoEUrbJ}<4Box$?vn^g!g$%K3i7}>U}A$ z&`g&FD$e9(cY0x#h12)Ls_)5ee`uS)s2TI53)D=|O)j{>!3dy79jc!~urUMpBRG0U z)I>|5pYJRJcNDh#cpi~BE?MQEUJrJ?=fRUDk%#XI|Kmef`w_zr+>edbqgwhvk?UB$ zoCg+$^jyhL&dZlW>U>L+0lS4G+P$njz|avnDv_XdG{;_5eDnEQS!XEL#C1?tzsMjH zM0x7d=KaXiy-2K3y30YZ?;c5IhGTq4Z}Pb0_Xr!~#{r{NpnAz}n81(;n}EP@&Z`l3ezNrP!nuFx`;)?K@BLiltrP98#@!)f zW`|O_W?NoNKB#Owtos)4%mL~Wi|t-V8f8O1*^z?ndCjprSU5b8uLE=zIu$GehVHHV zHD({lEDi^FWeJ!r;5q!B-Al+B#ouH0f;f1w`(kYgjOvGfuCn-M-An+*{OX-Ll#V?D zlOn2qQt9wyiE!?ft3oPYcrcr%s?VL&amnJEDNlpos=7Xpg?Rn>=B2X*v{f~eVjIvDhA-YodN2~p>rZp45!{)mu0uxVtqd$Zv5fl{2ssTF@)r*s0dOmb_l zOA7so{YgFKP%-eza)b^sbA*q9tdXl**lGI1+v1e$)rT4l+L0@g~eGhA9ibR z=3KY-T2Gd6jY|OBf%%5!&f?epyg+QNYlkZpMpn14ModVKcL?9KjOeT95(cjg&ageSEk!hS0L=PV(mo?Wn|E zO_J7%fp=f)<+()(+EE!hmHqH>0KGy>Rm&MTIPf4Z9sTkY4K^Fl<2m4L?jsLLid=z| z(pfp^5ZC_tPheu`t$ng5Uo+$af1KoNkPv-+A0d6RH@6)>1Y*MYUOwz=Lfm0t%`DQW z)YW2A*cgh^(Y?|C^FqsBN0DJgDT^iQ03g)Ct?x-PFT@xVfusD$j+FJ>Uq}RwGY7O9 zGJg6B-YETQunrLMwG@{nj414l1hi<+AkKaCaiRiX+P_;)n|{#}NM{+Og8WneajBL) zQz~N;{ZRtiE9tfO1K{E+*nS-0<)U6sO($k_ha1e93%yu=W2*sk0*{ja$tH#NOo!k;9EK+Ji z0xP|QbUFDEe9Ol7xj%euOCgx5xye--iGI?_6MW{FdCE9yPW z(hVmX?m>%fJlg)EyAaI2(e!%?`wsXnX8cKmV=$}R2uKZEm3F?*+d`c;>Xzh}46RYQ zI5Exs#yvpA_pd0vf2fX(o~b9U4zh4yk4L%=t4*X~)d) zdq@!x%;K1%k0D3VQvqNNvsWmqxa6Q#QhL-CTp^eM3>mDj8pqnz2PBWT6I&Vqyivoj zm+umE-B8r?`rRrwunGJONPMrv>Qd9R(ut!y;&Ox?o@k{B=F-iV44S8k-kT5B&|!<-SE=z_iOVgsIn7$MoJu@#deof^Avf z_jQSuTMzs?RT{TJTpmCEl91m{j7B~qujku9DlUl*n{dF&S}bJl6D|9}i|Ttq4o^Vw zwKS-2HmLH}|0raA7FZsWDo#x;m2dz~^92n`Z!_c&qr)x<6T@(2bx|^Jng0d8g)ba zM~_7=F`r&h&kpko<|JWjDmJS%WslJ6NjGEu_HVL>Yw1@nCp}H^M8#rFDs5;H8=$q4 z1yOH(b;0ynL5!=#rrZH=etl=gEa5m8y8KUYK>e9Bu`H6$IN!y*EkCu`1^vQ+PoTET zq!cXi7~8t+z4>BVK?*cJ5hOq72Qny-3jmwQ@IiecdlxW;;^0XH2-V=2pl+_}bdQ5& zG;JHR*d3v3uV3D8bbUDXw%qDH4B8vwhzGg2N?+||j6U}DzAPXY_xVC$=FTUM$VQIE zNLkAog-Eb#Sfr#2_td8N=p%?ogedJDr^(A*CloU_atI4O^R3Az4eK|Qs3qs44267u z8lJQW3=Hq+1XkR>4`s^*R-)3;N4$@hhb~^JR~-t`R#*b9g8h@j%|Z!^Zc4-j;5?Yr zC-r0r1PKUGqP@>1M0vcsLY8Qx`Q%75F$+@IhAWKnr?OS3yA#x}*R>!1?tj?P!p{O&R@epR{>$kc5OFL4D7GBijbW<58mhD~q$ZaH3my8FHCwsbnY#Dxy^ ztPLYs>WRNmsK*UL72}=k;tED`&q7~-1AukE-O@5&+zfdcn zh6s8F&#E9lBdeTub@&wk8ybOVN?%bwRfD1khi`$0QgFS$atd-Ou@TUv)WVNoW*%gp zZKDg*0cJK{0>zRu*nk9nz2#%gz@QaG|++fTF^~oY%xSi1VP0LtIUA!n`wZRWJAW;61cH12mLVq z=Sajvs{OrH5fPv(zcP^TF|Vt2K8a0&FPKBk3G7StJ!7bijl($?Wkdv%=nB#WGnE zQGAQr1Xp-91~Y~uL0n%&I;al1g}=4#H2-){QQJ_`xcwRQu7ZA71Ae(W=|0`@X3;l~ z_zh`2Ul%~PybB1~)1#f95b;a^9}m?bC=U`{S{@qIf+Si3wb{4>=SJa8;)6<-2NkOi zHGQRIoo8%T0MY{JM9MF{5p1?u^#V9ru|hxms$W+Q28tu_v_YEZ3J=x`q=}3j@s|Cs zfU4RdELysATw49`v1Ob~^n)ReH`8%_+3bcGBYe)-us{ATNv@}A$p{O^Oeq+;K+7q`f~4cTDs@7PS3jUz zpV1XM$XH%g%Ci&-vd?Jp&8^XoW=WuXsWTyI`#XP`e<=sJge-|&lM5&!IZkVQS5Z1c zD$9UqE4mlE!wp?OpL$PuF2(6CH9p_zc>w+@i#oe*asBL`Q7=+Hho&=BBA=!(I>SA( zaD@VfQ3}oSSKXTgPm-IRE zKnz%)-agsobFq%t zdp#I*U4jF^qK_jRDuu28BXMC;V2(zi0a4nM~2Y1j+Y;yA~<@l zyY!+p*?+$FFANy?iS0cH1)+=TRmne(GCN+;@0|q5Uv)TuYd1)2fv&aMkS#KH?QUK4 zrsYFaFHpoxB2~yznF%$Eto&j!@8*Ha@NlGv?Y;Zx<4?gxD`<_>pbaXC89d*nbYHK0=os-tMLk1R5th;ob;@I+iA)MUOS&>XEPtl@kpq*JE4u=o-JzwQ2G8I%i* z*G*nS%2acac|@+CRc1Mq!$84%PDsKTAorbRRq_?2uyuq9Be)4TQ0ok_FDg^EM|>_h zv8VtYh>B+mcaWsR@qLmE10ilblW5spo^@FY&^BSjgm3(;hR*>3gtLlY1;f!QC+51r zQr_24pk?F;lmw;V4Y)Lj;aFEDm3vxt)6L$!tWOfaSpn!i&H{&)7RrT#rZ%pQss9jI z0{q^GW%N7zX@V!X3JN8O`c&!X_@OQ>61P&)t=Hs}ut1Bc;9B z3oWlVo=N{I@1Jvh4i0u$;r+9)$Im}+jeN1D9vN(udJ8~N#~FnyK`MD1u&^{mY9; zgJS`*8a(K%+kF=t*Js^7Cw60!tcG1v*6Oz0{EjhycBvfDqI7fi=LagOA_o*G(>P!R zs`k@{QMXc99&81!Hf}Z_%I@ZCW|pvgfkc^ohqpd_ir8(RraJ3yX_z}kX&69cfvnbL3HNZ(AwTma?VB)#$pgT;@x3Y8Wlat- z1n}Tge1V?lGyWv}yU+;SNl9Y@zhd3}*- z&1qXUP%Dd1Ktm`$PxpVRnK&o?(!vG_HA7f%QReE%&X0KQe65-bGuMuN>X=vn`Lvn) zdvn@M3PXzU*>Fi$pa6CD%WNIDypJgA%dQ}1v5zNRhra?j4z@P3#WCP@6@) zFeZqFYASQg#Oc6=H1A)64I9}PvrJzW`b4s~uuQmJktsT4!12495EuQwa;eKqb6h6mMa4)o%XFQXxkjv+>&xfQ5J9tmti+UbTNV$QR-8it z$m3($KU%uwyYp3?8HLaOJc(`JiW$aRKJX=hkVMRWsOTmlXe_3E;)ApX3RZO=Wr#aJ zV7wyCuxV=fF)VtVJ(TZVt-OyxUUD8{%mrBVHP8Wgo$@%661Rt71;KZu<*h>Qri>yKzye*#x!I|=Ac71y-7 zg)3^`eA9mT{v}!8qB67NOK~G`MA=gZ*w`1Q(67z4j&#=>f5?xnZI!>S(v;%EWBKqs znEkr_wW;@S#<}swe^|@zT&mo!`{qpr`~Ix5r4h$cp-86yhi(sh{wJw~BTV~ctVYU* zSS7HCmzk{lp9M}Rb0JTW+f_OfJQIRj&xzW+qsu-_G3-}%5$~up3%*Kj0Z2mJyPwT| zOj_88?LPj%L?Rt&(S~1iE=><;XD~g#c>}))3Qj^31kIX3s!~lg_-*wqtr*2HGy6tR z3|6Lap@su*wY01npy2v9pI^dY+OUaBxYu*MwVG)kIYbt%5SKadn$FxF47p#bMKvd< zT^Sc8lgPDBP|^+DE0yfBet(m!`Sf^m8U#D_<9Se)oPMYFm3Z`t#+Jn1CR%f?$=oG| zUEELB`+&vwXloyl2F@K8TW{XuYutxI5^a>T<=(=)`J0pUxl1ciz@Xp|Iyqi+2^Bv|KRSZdw|jw~`=z6jKaC=*~Q3PZd|ugr{5F^ip7Zv_wX z6qH|`aG&<>33&j~Y!JGN2PK}4J-@T`EpbzV!l2aLw~X+U;9R@^y@63cmc9~@lv)#l z0XBv{&D=8w8NaW=;x?JGbY7_oG6qi$R4_9d}`KkFacwu`o7mvG2 z!I{7u{s$vGG4M3b3vY3UvJS?iRW1!JlA?hm)UO@EBJi+MHGIb~g))qQtz}y}meS2e z`aJlXKRLuj;0vRr#*XR#-nBPX-ASq%3 zklD7HSgp(51q12d65HNlijtsMN?2NVm{E7yym7ATDaC|6u9K+y3jSh}{)X`l>(4uG zVjko_0{B{JHvFu?b2m_Rim|r-8o-%f9tc_7G|(-r{v`NP%3R<*gb;-XTZkkYF&7O? z>Ia;`@CECgE)Jt zO=0q85(v!*P?Oex#H@Igw#}GYeD-wb!LN9f>R2r&TC^?T5!!eWaPxEH0g!z2XpF_9j4p-Ja6z$^MEx%e7Y&ZCOK1mKTVQ zv)pao*1{)LCNw5=_SxHKTMI(%Blygwg5PwFz}BhZETum!sVuo`K3-F4+j)b&`0ZvI z_U--+^TGEie({;2%97+m3PqtbehfG3Q<-27phaDvcX$QQ>e@ko^=(?-3?|;1){*Dm z69%q;r-=!v&o2^U`FEn}vMVaORXi1~tsPgE+r-FFsH%K43AueH?%^t_FJ3t+2!gNr z4ARS46%}H;apns}uize3y`zSU99$DIEV!4D{=6kdpQP(`YSu*9q$D2<9<9tzWI^Aj z+@yguny~8Ob>&jMb?DKO*;+|7f8PTu!i!ON)asX`uzRiFNC^2j_>d^d#4a#}%1BGI z@qjDoMkN)W-~2t2`-~!HLXGb^lQQZ)kYBDFP@mwDOevsv;AV~@TD*g(Pg1QU9m$;{ zznpn30^E*f^V(fbBf_GWhR2ZpQioCl431P%<7%;}?r0<}0zhly9-}9Jc z$ncYivsGA^r*+JOm0~=)&_-47jQz2z3Qoip9Bd*@ZbLyS!Uvk3Cc#m7BJ~ zZ7bm>jS92yuHO3(u;u4g`MXWZpc*Djif@qQtsxv&RK@&7TzMld1;`}Sio9l&WblKi z$VWK@=ad-Ag?YT7cebSwc*ctdjd*!^^cq}S{_Bcm`*`+i^+20w9efFAPQotk*m9$I zA%)UTx4$Enn$Hia88k)M%Z4hzf|@c zoW87)Lz>(gs8Guw8gV!4Fq{gdbG--JNSN~=jFzKoi1CkJxQk@%y4WA>2YtBR_kbdW z{cm=xXRuz#qD`IeGcu=c%RxCm4jq@1x~|Bf-8YcWU+od=rX0ufgk-&zCR|ZX2VFig zt1)&-JFk|ta!y{vBG$y{!kTtcrEuk4XDOS`S2l`KpKtfk6;V}l#=0S_{t_kToZDqR zm~vgJ6!SirFJ_l`{pC#fxSZg<6|TBUMhOM*I*JXH@aY7VXY@U0D7IMVLZf8}vw2D_ z>(8sXWI6ddhAdnEHS4-W_P=KJ5%vw(3Po^sc?P=4|M<9`ae-%-PCvyrquQ^ylU5*0s=$~>LRp?lb)-G6kJa@XTef?T1jAGLygqU`VSak66^>H^VDY}sC z59EWLQZH>v*Nyf9QtW6F9i=K*Llk>wiJ1zZrpLYJmKkXoc}(q($1x5nSG6l^{exCQ z^nFD}F204n%_nvqtri}Sew{eq$Ml_5Rb<3X(o0T5^!1l&)M$iamW{L5D@+F;Ka)dP zD`en)V6DS=^13Q#L@haMnt>Tm=nPfCi*El<-n|7c;o4?`S445I?}C?laCnS+eYc)x zszsZ-?d2`AAsoCi5$#r_-IHrnh%$eVJwsr~CvOXeAEBE+p1B&}b0#XwdCTqWwilWO zkSVN|5~yAe4>$-|w11^vO$bpQz=>GtctH-H4d?UI4oN} zs4aTY$bShCjwF!=uXPL%9`?jKP=AX>(3=ULfW-YVuqVefAYz^(#pB7 z;^5(Xre%6XWu#Gw>K{~p9({0ohcc#u>=8Bz!SyJ#{VVe(;j=s0uCuewe>4Ee#c;C+ z*=K{Q^|%SI5bcoqHJ>S&+Y58vk~m98WvL(`oFT4sL@lG;OZQJey$BtqV#tL}nx(kf z1S!@{JdGi~zB4d)f9-PTnV5e!YwSD!DeHWWYbj4Aouj7VJdm7(gurI|{oPIY2ruz{a$y_Vkio<+>)!u?U zg}Uqc4<7?i7vZ~f62HxS~)tGMbu zB5!}=ri0ACZgX4y71g(@F0FV3S7XK3WLWa7TTcWMv|=|H$*z)ALK|<0J%f@2^qq z-0wv8i>{5@#a<5-*5+KL93yLEt_d{F5xFC;9qy!j~F{6ZdC|z(_lduhe7#N28yQ9SqiIkr%58W_j4Dz=6nf8 zV#^k+>rI^JRswhWEY}WMj{QtG!x?UuR`f!mt1G%d=5+B!Cs~;=+K+DR*HQjqJwGh2t4R2jX=1V0Z}8Y|36ov@}Ch%YI3-C zN?B&fDK`FtpDdN#@;L731<*G4AGB4y3H%FEviDz@?a|8wo+63-AJ}}MINAVR?(tY9 zFnsIzKM>#kz4$T|a9+HUB%9LAv46oc6*>TEkxj%JUCo9AS -HPC/機械学習ワークロードをオンプレミスからOCIに移行する際、多くのケースでオンプレミスとOCIを拠点間接続する必要が生じます。 -例えば、オンプレミス側の有償CAEアプリケーション用ライセンスサーバにOCI側の計算ノードからライセンス取得のためにアクセスするケースや、オンプレミス側の端末からOCI側のログインノードにログインしインタラクティブ処理を行うケースです。 -本テクニカルTipsは、 **[サイト間VPN](https://docs.oracle.com/ja-jp/iaas/Content/Network/Tasks/managingIPsec.htm)** を使用してIPSecのトンネルモードでオンプレミスとOCIを拠点間接続し、OCI側プライベートサブネットに接続する計算ノード相当のインスタンスとオンプレミス側プライベートサブネットに接続するライセンスサーバ相当のインスタンスの疎通を可能とするための手順を解説します。 - **注意 :** 本コンテンツ内の画面ショットは、現在のOCIコンソール画面と異なっている場合があります。 *** # 0. 概要 -**サイト間VPN** は、IPSecのトンネルモードを使用するOCIのマネージドVPN接続サービスで、オンプレミスのネットワークとOCIの **仮想クラウド・ネットワーク** をIP層で拠点間接続するため、以下のような利用形態をセキュアでシームレスに実現することが可能です。 +**[サイト間VPN](https://docs.oracle.com/ja-jp/iaas/Content/Network/Tasks/managingIPsec.htm)** は、IPSecのトンネルモードを使用するOCIのマネージドVPN接続サービスで、オンプレミスのネットワークとOCIの **仮想クラウド・ネットワーク** をIP層で拠点間接続するため、以下のような利用形態をセキュアでシームレスに実現することが可能です。 1. OCIで稼働する計算ノードでオンプレミスのライセンスサーバから有償CAEアプリケーションのライセンスを取得する 2. オンプレミスの端末からOCIで稼働するログインノードにログインしインタラクティブ処理を行う diff --git a/tutorials/_hpc/tech-knowhow/site-to-site-vpn/connection_type.png b/tutorials/_hpc/tech-knowhow/site-to-site-vpn/connection_type.png index 6e1f5118de638b2741b0c3dca185b55992240d83..337c3334a1a2821c38948d6b11614e8462670798 100644 GIT binary patch literal 36259 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 ala24qJ$P4|Vqp*bPfbblVxi)-fd2;#GfM;j