新発表されたAmazon FSx for Lustreを構築してEC2からアクセスしてみた #reinvent

re:Invent 2018のキーノートにてHPCなどの高性能計算環境に最適なファイルシステム Amazon FSx for Lustre が発表されました。 本エントリでは、ECからAmazon FSx for Lustreファイルシステムにアクセスするところまでをやってみたいと思います。
2018.11.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、坂巻です。

re:Invent 2018にて、機械学習やHPC向けの高速なファイルシステムの新サービスが発表されました!

サービスの内容については上記をご確認ください。利用可能なリージョンや、料金についてはも記載があります。 本エントリでは、ECからAmazon FSx for Lustreファイルシステムにアクセスするところまでをやってみたいと思います。

やってみた

Amazon FSx for Lustre作成

マネジメントコンソールより「FSx」をクリックします。 01

「Amazon FSx for Lustre」をクリックします。

01

ファイルシステムの容量やネットワーク設定を行います。

02

ファイルシステムのストレージサイズは3,600GiB〜25,200GiBとなります。また、ファイルシステムにアタッチするセキュリティグループについては、インバウンドで以下のルールが必要です。

  • タイプ:TCP
  • ポート範囲:988
  • ソース:アクセス元(今回はEC2にアタッチしたセキュリティグループを指定しています)

設定値を確認してファイルシステムを作成します。

03

少しすると、ファイルシステムが作成されました。

05

Amazon FSx for Lustreクライアント構築

Amazon FSx for Lustreにアクセスするクライアントを構築します。 ディストリビューションはRedHat 7.5(ami-011b3ccf1bd6db744)を使用しています。 なお、Lustreクライアントがサポートしているディストリビューションは以下となります。

  • CentOS 7、CentOS 7.5
  • RedHat 7、RedHat 7.5
  • SUSE Linux 12 SP3
  • Ubuntu 16.04

インスタンスにアタッチするロールにはAmazonFSxFullAccess権限を付与しています。

wgetインストール

対象のインスタンスにログインして以下のコマンドを実施します。

$ sudo yum -y install wget
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                | 2.4 kB  00:00:00
Package wget-1.14-15.amzn2.1.1.x86_64 already installed and latest version
Nothing to do

パッケージダウンロード

Lustreクライアントをダウンロードします。クライアントは2つのパッケージが必要です。

  • kmod-lustre-client-2.10.5-1.el7.x86_64.rpm
  • lustre-client-2.10.5-1.el7.x86_64.rpm
$ wget https://downloads.whamcloud.com/public/lustre/lustre-2.10.5/el7/client/RPMS/x86_64/kmod-lustre-client-2.10.5-1.el7.x86_64.rpm
--2018-11-28 18:25:11--  https://downloads.whamcloud.com/public/lustre/lustre-2.10.5/el7/client/RPMS/x86_64/kmod-lustre-client-2.10.5-1.el7.x86_64.rpm
Resolving downloads.whamcloud.com (downloads.whamcloud.com)... 138.197.209.17
Connecting to downloads.whamcloud.com (downloads.whamcloud.com)|138.197.209.17|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2291884 (2.2M) [application/x-rpm]
kmod-lustre-client-2.10.5-1.el7.x86_64.rpm: Permission denied

Cannot write to ‘kmod-lustre-client-2.10.5-1.el7.x86_64.rpm’ (Success).
$ wget https://downloads.whamcloud.com/public/lustre/lustre-2.10.5/el7/client/RPMS/x86_64/lustre-client-2.10.5-1.el7.x86_64.rpm
--2018-11-28 18:25:11--  https://downloads.whamcloud.com/public/lustre/lustre-2.10.5/el7/client/RPMS/x86_64/lustre-client-2.10.5-1.el7.x86_64.rpm
Resolving downloads.whamcloud.com (downloads.whamcloud.com)... 138.197.209.17
Connecting to downloads.whamcloud.com (downloads.whamcloud.com)|138.197.209.17|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 587612 (574K) [application/x-rpm]
lustre-client-2.10.5-1.el7.x86_64.rpm: Permission denied

Cannot write to ‘lustre-client-2.10.5-1.el7.x86_64.rpm’ (Success).

パッケージインストール

パッケージをインストールします。

$ sudo yum localinstall -y *lustre-client-2.10.5*.rpm
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
Examining kmod-lustre-client-2.10.5-1.el7.x86_64.rpm: kmod-lustre-client-2.10.5-1.el7.x86_64
Marking kmod-lustre-client-2.10.5-1.el7.x86_64.rpm to be installed
Examining lustre-client-2.10.5-1.el7.x86_64.rpm: lustre-client-2.10.5-1.el7.x86_64
Marking lustre-client-2.10.5-1.el7.x86_64.rpm to be installed

  (省略)

  perl-constant.noarch 0:1.27-2.el7     perl-libs.x86_64 4:5.16.3-293.el7          perl-macros.x86_64 4:5.16.3-293.el7            perl-parent.noarch 1:0.225-244.el7
  perl-podlators.noarch 0:2.5.1-3.el7   perl-threads.x86_64 0:1.87-4.el7           perl-threads-shared.x86_64 0:1.43-6.el7

Complete!

再起動

インストールが完了したら、EC2の再起動が必要です。

$ sudo reboot

マウントポイント作成

$ sudo mkdir /fsx

マウント

まずはマウントする前のファイルシステムを確認してみます。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda2       10G  1.3G  8.7G  13% /
devtmpfs        473M     0  473M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M   13M  483M   3% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1000

作成したディレクトリにAmazon FSx for Lustreファイルシステムをマウントします。

sudo mount -t lustre fs-0d497e7ce95199bdd.fsx.us-east-1.amazonaws.com@tcp:/fsx /fsx

マウント時に指定した「fs-0d497e7ce95199bdd.fsx.us-east-1.amazonaws.com」については、作成したファイルシステムのDNS名に置き換えてください。マネジメントコンソールにて確認することができます。

07

マウントができたか確認してみます。

$ df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/xvda2            10G  1.3G  8.7G  13% /
devtmpfs             473M     0  473M   0% /dev
tmpfs                496M     0  496M   0% /dev/shm
tmpfs                496M   13M  483M   3% /run
tmpfs                496M     0  496M   0% /sys/fs/cgroup
tmpfs                100M     0  100M   0% /run/user/1000
tmpfs                100M     0  100M   0% /run/user/0
10.0.0.171@tcp:/fsx  3.4T   14M  3.4T   1% /fsx

マウントすることができましたので、機械学習やHPC等の高性能の計算ワークロードを実行することができます。

さいごに

今回はAmazon FSx for Lustreファイルシステムのマウントまでのエントリとなりますが、Amazon FSx for LustreはS3と統合されており、S3のデータを自動でAmazon FSx for Lustreコピーし、結果をS3へ書き込む事もできますので、次回はその辺りもやってみたいと思います。

参考