Amazon Web Services ブログ

AWS と NetApp データサービス連携を活用して EDA を加速する

このブログは Craig Chamberlin (AWS Solutions Architect)、 Chad Morgenstern (NetApp Principal Technologist)、Jim Holl (NetApp Principal Engineer)、 Virgilio Inferido (NetApp Technical Marketing) によって執筆された内容を⽇本語化したものです。原⽂はこちらを参照して下さい。

はじめに

この記事では、この強力な EDA ソリューションの構成を説明し、パフォーマンスベンチマーク情報を提供します。半導体設計シミュレーション、検証、リソグラフィ、計測、歩留まり解析、その他多くのワークロードは、AWS クラウドのスケーラビリティとパフォーマンスの恩恵を活用できます。例えば、最新世代の EC2 インスタンスタイプは、これらのアプリケーションのコンピューティング性能を向上させます。Amazon FSx for NetApp ONTAP は、NetApp のエンタープライズグレードのデータサービス群と統合されたブロックおよびファイルストレージを提供する AWS ネイティブのマネージドサービスです。設計者は、ONTAP データ機能、エンタープライズグレードの実績ある機能、管理、パフォーマンス、データ保護、効率性と NetApp のクラウドソリューションを利用できます。また、FSx for NetApp ONTAP を既存の ONTAP システムに統合することも可能です。

FSx for NetApp ONTAP は、フルマネージドの AWS サービスとして、最新の AWS コンピュート、ディスク、ネットワーキングで構築されたサービスで、最大限のパフォーマンスを提供します。AWS のサービスと密接に統合されており、AWS コンソール、CLI、SDK で簡単に管理できます。

FSx for NetApp ONTAP は、クラウド上の EDA ワークロードのハイパフォーマンスストレージとして、またオンプレミス上のツールやライブラリのキャッシュとして機能するように構成できます。クラウド上の EDA ワークロードでは、ツールやライブラリはローカルにあるように見えます。すべてのツールやライブラリをクラウドにミラーリングする必要がないだけでなく、クラウド上の別バージョンのツールやライブラリ群としてアクティブに管理する必要がありません。必要なデータを、必要な時に、必要な場所で入手することができます。

上の図は、Region1 に「リバースキャッシュ」を作成することで、Region2 で実行したジョブ結果が、Region1 で作業しているエンジニアにはローカルにあるよう見えることを示しています。このように、お客様はツールやプロセスを変更することなく、クラウド上でバッチジョブを起動し、別の場所でデバッグすることができます。

前提条件

・ VPC ピアリングされた2つの VPC と CIDR 範囲が重複しないこと(デフォルトの VPC は使用しないでください)

・ 2つの VPC 間のルーティング設定

・ それぞれの VPC に Linux ベースの EC2 コンピュートインスタンスを配置

FSx NetApp ONTAP ファイルシステムをオリジンとデスティネーションに作成する

各リージョンに FSxN ファイルシステムを作成する必要があります。 これらのファイルシステムには、それぞれの VPC のオリジンボリュームと FlexCache デスティネーションボリュームが格納されます。

リージョンのプライマリ VPC に FSxN オリジンファイルシステムを作成します。

プライマリVPCで FSxN オリジンファイルシステムを作成します(コンソール)

1.     AWS マネジメントコンソールにサインインし、Amazon FSx コンソールを開きます。 https://console.aws.amazon.com/fsx/

2.     Create file system (ファイルシステムの作成)を選択し file system type(ファイルシステムの種類)から「Amazon FSx for NetApp ONTAP」を選択します。

3.     Creation method(作成方法)から Standard create (スタンダード作成)を選択します。

a.     File system name(ファイルシステム名)のフィールドにファイル名を入力します。画面の例では fsxn-use1 を入力しています。

b.     SSD storage capacity(SSDストレージ容量)に プロビジョニングする容量をGB単位で入力します。画面の例では 4096 で入力しています。

c.     (オプション) Provision SSD IOPSThroughput capacity はオプション入力です。 デフォルトの自動プロビジョニングでは、SSD ストレージは GB あたり 3 IOPS、スループットは 512MB/s になります。

4.     Network& security (ネットワークとセキュリティ)セクションを入力します。

a.     FSx for NetApp ONTAP ファイルシステムをデプロイする Virtual Private Cloud (VPC) を選択します。

b.     通信を許可する適切な VPC セキュリティグループを指定します。

c.     FSx for NetApp ONTAPネットワークインターフェイスを配置するための Preferred subnet (優先サブネット)Standby subnet (スタンバイサブネット)を選択します。 これらのサブネットは、異なるアベイラビリティゾーンにある必要があります。

d.     VPC Route tables(VPCルートテーブル)は、FSxN をサポートするように更新する必要があります。 VPC に異なるサブネット用の複数のルートテーブルがある場合は、ファイルシステムにトラフィックを転送する VPC ルートテーブルを選択してください。

5.     Security & Encryption section(セキュリティと暗号化)セクションを入力します。

a.     FSx for NetApp ONTAP の Encryption key(暗号化キー)は、デフォルトでは、aws/fsx AWS KMS を使用して、保存データを暗号化します。 お客様が管理するキーを使用する場合は、ここで選択してください。

b.     File system administrative password(ファイルシステム管理パスワード)でパスワードを指定します。 FlexGroup と FlexCache のボリュームを作成するためにコンソールにログインすることになるので、fsxadmin アカウントのパスワードが必要になります。

c.     Default storage virtual machine configuration (デフォルトのストレージ仮想マシン設定)セクションの storage virtual machine name(ストレージ仮想マシン名)で一意となるストレージ仮想マシン名を設定します。 この SVM 名は、作成済みの他 SVM とこの SVM を識別するために、少なくともリージョン全体で一意である必要があります。

d.     (オプション) SVM administrative password (SVM 管理パスワード)は vsadmin アカウントのパスワードを設定します。パスワードは Ontap CLI から変更できます。この演習ではパスワードを設定していません。この演習では Active Directory 設定でドメインに参加する必要はありません。ここでは Do not join an Active Directory(アクティブディレクトリに参加しない)を選択しています。

6. (オプション)Default volume configuration(デフォルトのボリューム設定)では、ボリューム名ジャンクション パスボリュームサイズを入力します。 この演習では、この後のステップでコンソールから FlexGroup を作成します。 Storage Efficiency(ストレージ効率化)は、有効にすることをお勧めします。

7.     Next(次へ)ボタンを押します

8.     作成される情報を示すサマリー(概要)が表示されます。表示内容を確認し、「ファイルシステムの作成」を選択します。

クラスタ間エンドポイントIPアドレスの収集 (コンソール)

ファイルシステムの作成完了後、ファイルシステムをクリックすると、以下のような詳細ページが表示されます。インタークラスターエンドポイントの IP アドレスを必ずメモしてください。これは、後でピアリング接続を作成する際に必要になります。これらは、AWS コンソールの FSxN ファイルシステムの詳細ページのエンドポイントセクションに記載されています。

1.     AWS マネジメントコンソールにサインインし、Amazon FSx コンソールを開きます https://console.aws.amazon.com/fsx/

2.     ナビゲーションペインで、File systems を選択します。

3.     前のステップで作成したファイルシステムを選択し、詳細ページを読み込みます。

4.     Management endpoint – IP address をメモしておきます。このアドレスは、後で OnTap CLI に ssh するために使用します。

5.    クラスタ間エンドポイント – IP アドレスをどこかに記録しておきます。後で2つの FSxN ファイルシステム間のピアリング接続を設定するときに必要です。

2つ目の VPC でこれらの手順を繰り返します

FSxN ファイルシステム間のクラスターピアリング接続の設定

FlexCache を作成する前に、FSxN ファイルシステム間でクラスターピアリングを設定する必要があります。オリジンのファイルシステムでクラスターピアリング接続を作成し、ピアファイルシステムでそれを受け入れるようにします。

オリジンのファイルシステムでクラスターピアリング接続を作成します (OnTap CLI)

1.        オリジンの FSxN ファイルシステムに SSH 接続します

2.    OnTap CLI で以下のコマンドを入力して、ピアリング接続を作成します。 Flexcache の宛先ファイルシステムの適切なピアアドレスを設定してください。

FsxId0789eb273224fce2e::> cluster peer create \
                            -peer-addrs [PEER_ADDRESSES_COMMA_SEPARATED] \
                            -generate-passphrase \
                            -applications snapmirror,flexcache  

Notice: 
        Passphrase: XXXXXXXXXXXXXXXXXXXXXXXX 
        Expiration Time: 10/28/2021 04:31:34 +00:00 
        Initial Allowed Vserver Peers: - 
        Intercluster LIF IP: 10.25.1.217 
        Peer Cluster Name: FsxId0b747c559ee19315d 
        
        Warning: make a note of the passphrase - it cannot be displayed again.

3.     前のコマンドの出力にあるパスフレーズを保存します。デスティネーションの FSxN ファイルシステムでピアリング接続を作成するときに入力する必要があります。

デスティネーションのファイルシステムにクラスターピアリング接続を作成します (OnTap CLI)

1.     デスティネーションのFSxNファイルシステムにSSH接続します

2.     OnTap CLI に次のコマンドを入力して、ピアリング接続を作成します。

a.     FlexCache オリジンのファイルシステムの適切なピアアドレスを設定します(カンマで区切ります)。

b.     オリジンファイルシステム上でクラスターピアの作成から返されたパスフレーズを入力します。

FsxId0b747c559ee19315d::> cluster peer create \
                          -peer-addrs [PEER_ADDRESSES_COMMA_SEPARATED] \
                          -applications snapmirror,flexcache 

Notice: Use a generated passphrase or choose a passphrase of 8 or more characters. To ensure the authenticity of the peering relationship, use a phrase or sequence of characters that would be hard to guess.

Enter the passphrase: 
Confirm the passphrase: 

クラスターピアリング接続の確認(OnTap CLI)

1.     オリジンのFSxN ファイルシステムにSSH接続します

2.     ‘cluster peer show’コマンドを実行し、エラーがないことを確認します。正常な設定ができていれば、Availability(可用性)項目 は ‘Available’、  Authentication(認証)は ‘ok’と表示されます。

3.    デスティネーションの FSxN ファイルシステムでも同様に行います。

FsxId0b747c559ee19315d::> cluster peer show
Peer Cluster Name         Cluster Serial Number Availability   Authentication
------------------------- --------------------- -------------- --------------
FsxId0789eb273224fce2e    1-80-000011           Available      ok

オリジンの FSxN ファイルシステムで vserver ピアリング接続を作成します(OnTap CLI)

1.     オリジンの FSxN ファイルシステムに SSH 接続します

2.     OnTap CLI で以下のコマンドを実行し、vserver ピアリング接続を作成します。

a.    ピア vserver には、デスティネーション FSxN ファイルシステムの SVM 名を入力します。

b.     ピアクラスターには、デスティネーションの FSxN ファイルシステムのクラスターネームを入力します(これは、オリジンの「cluster peer show」コマンドによるピアクラスターネームです)。

FsxId0789eb273224fce2e::> vserver peer create -vserver use1-fs01 -peer-vserver [DESTINATION_SVM_NAME] -applications snapmirror,flexcache -peer-cluster [DESTINATION_CLUSTER_NAME] 

Info: [Job 48] 'vserver peer create' job queued 

キャッシュ側で vserver ピアリング接続を受け入れる設定をします

デスティネーショの FSxN ファイルシステムで vserver ピアリング接続を作成します(OnTap CLI)

1.     デスティネーションの FSxN ファイルシステムに SSH 接続します

2.     OnTap CLI で以下のコマンドを実行し、vserver ピアリング接続を作成します。

a.     vserver には、デスティネーション FSxN ファイルシステムの SVM 名を入力します。

b.    ピア vserver には、オリジン FSxN ファイルシステムの SVM 名を入力します。。

FsxId0b747c559ee19315d::> vserver peer accept -vserver [DESTINATION_SVM_NAME] -peer-vserver [ORIGIN_SVM_NAME]

Info: [Job 48] 'vserver peer accept' job queued 

vserver のピアリング接続を確認します (OnTap CLI)

1.     オリジンの FSxN ファイルシステムに SSH 接続します

2.     ‘vserver peer show’コマンドを実行し、Peer State が「peered」であることを確認します。

FsxId0b747c559ee19315d::> vserver peer show
            Peer        Peer                           Peering        Remote
Vserver     Vserver     State        Peer Cluster      Applications   Vserver
----------- ----------- ------------ ----------------- -------------- ---------
usw2-fs01   use1-fs01   peered       FsxId0789eb273224fce2e 
                                                       snapmirror, flexcache 
                                                                      use1-fs01

オリジンの flexgroup volume を作成する(OnTap CLI)

1.     オリジンの FSxN ファイルシステムに SSH 接続します

2.    以下のコマンドを実行し、64bit ファイル識別子を有効にします。

a.    vserver オプションにオリジンの SVM 名を入力します。

FsxId0789eb273224fce2e::> set advanced; vserver nfs modify -vserver [ORIGIN_SVM_NAME] -v3-64bit-identifiers enabled

Warning: These advanced commands are potentially dangerous; use them only when directed to do so by NetApp personnel.
Do you want to continue? {y|n}: y


Warning: You are attempting to increase the number of bits used for NFSv3 FSIDs and File IDs from 32 to 64 on Vserver "use1-fs01". This could result in older client software no longer working with the volumes owned by Vserver "use1-fs01".
Do you want to continue? {y|n}: y

Warning: Based on the changes you are making to the NFS server on Vserver "use1-fs01", it is highly recommended that you remount all NFSv3 clients connected to it after the command completes.
Do you want to continue? {y|n}: y

3.    以下のコマンドで flexgroup ボリュームを作成します。

a.     vserver オプションには、オリジン ボリュームをホストする SVM の名前を入力します。

b.     volume の値には、希望するボリューム名を入力します。

c.     aggr-list オプションは、「aggr1」に設定します。

d.     aggr-list-multiplier は 8 に設定します。

e.     ボリュームの junction-path を設定します。

f.      size の値は 1T を入力します。

FsxId0789eb273224fce2e::> vol create -vserver [ORIGIN_SVM_NAME] -volume [ORIGIN_VOLUME_NAME] -aggr-list aggr1 -aggr-list-multiplier 8 -junction-path /[ORIGIN_VOLUME_NAME] -size 1T

Notice: The FlexGroup volume "fg01" will be created with the following number of constituents of size 128GB: 8.
Do you want to continue? {y|n}: y
[Job 49] Job succeeded: Successful     

デスティネーションで flexcache ボリュームを作成します(OnTap CLI)

1.     デスティネーションの FSxN ファイルシステムに SSH 接続します

2.     デスティネーションで OnTap CLI に次のコマンドを入力し flexcache ボリュームを作成します。

a.     vserver にデスティネーション SVM の名前を入力します。

b.     volume オプションには、デスティネーションのボリューム名を入力します。

c.     aggr-list オプションは、「aggr1」に設定します。

d.     aggr-list-multiplier は 8 に設定します。

e.     size の値は 1T に設定します。

f.      origin-vserver オプションにオリジン の SVM 名を入力します。

g.    ボリュームの junction-path を設定します

FsxId0b747c559ee19315d::> vol flexcache create -vserver \ [DESTINATION_SVM_NAME] -volume [DESTINATION_VOLUME_NAME] -aggr-list aggr1 \ 
-aggr-list-multiplier 8 -origin-volume fg01 -size 1T \
-origin-vserver [ORIGIN_SVM_NAME] -junction-path /[DESTINATION_VOLUME_NAME]
[Job 60] Job succeeded: Successful.    

クライアントでボリュームをマウントします (Linux CLI)

1.     オリジンの VPCでLinuxインスタンスにSSH接続します
2.     以下のコマンドでファイルシステムをマウントしてください。 マウントオプションは、EDA ワークロードに合わせて調整します。
a. サーバーとしての FSx データホスト名
b. vol はボリューム名

 
Mounting the volume
 %> mount -t nfs -o "nocto,actimeo=600,hard,rsize=262144,wsize=262144,vers=3,tcp" <server>:/<vol> /vol
 

コンフィギュレーション概要

拠点の縮小や設計の複雑化に伴い、お客様はインフラを迅速に拡張する方法を求めています。今回発表されたソリューションは、拠点間でストレージをキャッシュするシンプルな方法を提供し、エンジニアに一貫した環境を提供しながら、地域間でワークロードをシームレスにシフトすることを可能にします。

詳細は、NetApp 社の Electronic Design Automation サイトを参照ください:https://cloud.netapp.com/solutions/electronic-design-automation

ベンチマーク

業界標準のベンチマークを使用して、リードキャッシュの効果を示そうとしました。しかし、クライアントサイドのキャッシュとベンチマークツールの限られたワーキングセットのために、結果は「現実的と思うにはあまりに良すぎる」でした。

しかし、スクラッチ(ゼロから)に対してベンチマークを実行することができ、ファイルシステムの追加に伴いパフォーマンスが拡張されるので、レイテンシーは横ばいのままであると結論付けました。

これは、機能フェーズと物理フェーズが同時に混合して実行され完成するワークロードで、EDAツールから別のツールへの典型的なフローを表しています。

機能フェーズは、初期化と論理設計で構成されます。物理フェーズは、論理設計を物理的なチップに変換するときに行われます。サインオフとテープアウト(設計完了と結果引き渡し)段階では、最終チェックが行われ、設計は製造のために工場に引き渡されます。これらのフェーズでは、ストレージはそれぞれ異なる特徴を持ちます。

機能フェーズでは、ファイルのスタットやアクセスコールをはじめとするメタデータに重点を置いていますが、シーケンシャルおよびランダムな読み取り/ 書き込み I/O も混在しています。メタデータオペレーションは事実上サイズがないのですが、読み取りと書き込みのオペレーションの範囲は 1K 未満から 16K までで、大部分の読み取りは 4K から 16K の間です。書き込みは 4K 以下が多くなります。一方、物理フェーズは、完全にシーケンシャルな読み取りと書き込みのオペレーションで構成され、ファイル操作のサイズも 32K と 64K が混在しています。上のグラフに示されたスループットのほとんどは、ワークロードのシーケンシャルな物理フェーズによるもので、I/O は小規模なランダムフェーズとメタデータに集中する機能フェーズによるもので、これらはいずれも並行して発生します。

詳細は、NetApp 社の Electronic Design Automation のサイトをご覧ください:
https://cloud.netapp.com/solutions/electronic-design-automation