Amazon FSx for Lustre 公式ドキュメントにしたがって使ってみた

# 初めに
Lustreの覚え書きとして書いておく。公式ドキュメントのリンクはこちら。
https://docs.aws.amazon.com/fsx/latest/LustreGuide/getting-started.html



# EC2
環境はEC2 Amazon Linux2を使う。公式ドキュメントにLustreをサポートしているインスタンスが書いてある。

>このEC2インスタンスにLustreクライアントをインストールし、Amazon FSx for LustreファイルシステムをEC2インスタンスにマウントします。Lustreクライアントは、Amazon Linux、Amazon Linux 2、CentOSおよびRed Hat Enterprise Linux 7.5、7.6、7.7、7.8、7.9、8.2、8.3、SUSE Linux Enterprise Server 12 SP3、SP4、SP5、Ubuntu 16.04、18.04、20.04をサポートしています。この入門演習では、Amazon Linux 2を使用することをお勧めします。

# ファイルシステム作成

公式の通り進める。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/63744e9c-02d0-ab0b-d3b6-8d90374143ab.png)

以下のようにインポート・エクスポートを設定する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/3a6a3491-a130-4516-399d-8ef21b7faac6.png)

なおファイルをエクスポートした後、以下のように一意のプレフィックスに応じてバケット内にフォルダが作成される。後ほどエクスポートのコマンドを述べるが、エクスポート先はこのフォルダ内となる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/1b6e28aa-58d4-4a32-75d4-0cedfe3685f9.png)


# Lustreインストール

```
$ sudo amazon-linux-extras install -y lustre2.10
```

# マウント



インストールできたか確認するには`df`コマンドを叩く。

```
$ df
Filesystem                  1K-blocks    Used  Available Use% Mounted on
devtmpfs                       492680       0     492680   0% /dev
tmpfs                          503448       0     503448   0% /dev/shm
tmpfs                          503448     456     502992   1% /run
tmpfs                          503448       0     503448   0% /sys/fs/cgroup
/dev/xvda1                    8376300 1437104    6939196  18% /
tmpfs                          100692       0     100692   0% /run/user/1000
xxx.xxx.xxx.xxx@tcp:/yyyyyy 6031104896   18432 6031078272   1% /mnt/fsx
tmpfs                          100692       0     100692   0% /run/user/0

```

なお`xxx.xxx.xxx.xxx`はファイルシステムのプライベートIP、`yyyyyy`はファイルシステムのマウント名である。

# ファイルシステムをマウント



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/f3dfee38-1321-22fc-adcd-ba6e86ea3c49.png)


アタッチを押すとマウントコマンドが表示される。マウントポイントとなるディレクトリを作成し、マウント実行する。
`fs-xxxxxx` にはファイルシステムのID、`yyyyyy`にはマウント名を記載する。

```
$ sudo mkdir -p /mnt/fsx
$ sudo mount -t lustre -o noatime,flock fs-xxxxxx.fsx.ap-northeast-1.amazonaws.com@tcp:/yyyyyy /mnt/fsx
```

# エクスポート

## ファイルをエクスポート

```
$ sudo lfs hsm_archive /mnt/fsx/test.txt
```

## ディレクトリをエクスポート

```
$ nohup find /mnt/fsx/my_dir/ -type f -print0 | xargs -0 -n 1 sudo lfs hsm_archive &
```

# インポート

インポートの設定は、ファイルシステム作成時や作成後に可能である。つまりいつでも設定できる。作成後に設定を更新する場合は少し時間がかかる（といっても体感で少し時間がかかるな、と思うくらいで割と早いと思う）

以下の設定では指定したバケットにファイルを新規アップロードしたときインポートされ、ターミナルから閲覧可能となる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/9db29a76-bfe4-86b7-91d2-7321274993cf.png)

以下の設定では指定したバケットにファイルを新規アップロードしたときと、バケット内既存ファイルをアップロードしたときにインポートされる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/e8a736ab-2250-76d9-0328-34c4d8cd0431.png)

# アンマウント

```
$ umount /mnt/fsx 
```

# 料金

こちらが料金表のリンクである。

https://aws.amazon.com/jp/fsx/lustre/pricing/

AWS Pricing Calculatorで見積もりをしてみた。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/be66ef24-6fd9-a4bd-231c-e9bca290af93.png)


# 参考記事

Amazon FSx for Lustre とは(公式)
https://docs.aws.amazon.com/ja_jp/fsx/latest/LustreGuide/what-is.html