NFS サーバーの前提条件

Anypoint Platform Private Cloud Edition (Anypoint Platform PCE) をインストールする前に、インフラストラクチャチームは、以下の各セクションをレビューし、記述されている要件を環境が満足していることを確認する必要があります。必要であれば MuleSoft の担当者に連絡して、NFS サーバーが正しく設定されていることを確認するためのサポートを要求してください。

NFS サーバーのセットアップの確認

Anypoint Platform PCE バージョン 2.0 以降では、ネットワークファイルシステム (NFS) サーバーと使用可能な NFS エンドポイントが必要です。NFS サーバーは以下の要件を満足する必要があります。

  • 250 GB 以上のファイルシステム上で動作していること。

  • NFS 4.0 を使用していること。

  • ネットワーク接続ストレージ (NAS) システムでバックアップ可能であること。

  • ポート 2049 が TCP と UDP の両方に対して有効であること。

  • すべての PCE ノードが NFS サーバーにアクセスできるようにネットワークが設定されていること。ダイレクト NFS クライアントは Kubernetes 1.9 であるため、NFS バージョン 4 に準拠している必要があります。

NFS 4.0 では ​portmapper​ サービスは使用されません。

必要なポートが開いていることの確認

NFS サーバーを使用するには、TCP と UDP に対してポート 2049 が開いている必要があります。

各ノードで netcat または同様のユーティリティを使用して、必要なポートが開いていることを確認します。netcat は、TCP または UDP を使用してネットワーク接続を読み書きするためのコンピューターネットワーキングユーティリティです。

各ノードで ​nc -zv <host_name> 2049​ を実行します。

デフォルトでは、netcat ツールは Anypoint Platform PCE には含まれません。​command not found​ エラーが返された場合は、netcat または同様のユーティリティをダウンロードしてインストールしてください。

netcat が正常に実行されれば、次の例のような応答が返されます。

[ec2-user@ip-10-1-1-97 ~]$ nc -zv <nfs_host_name> 2049
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.1.0.155:2049.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.

NFS サーバーがマウントされていることの確認

各ノードで、NFS サーバーを一時ディレクトリにマウントします。

  1. 次のコマンドでルートに切り替えます。
    sudo su

  2. NFS を一時ディレクトリにマウントするには、次のコマンドを (​<nfs-server>​ と ​<nfs-path>​ に適切な値を入力して) 実行します。
    mkdir -p /mnt/home
    mount -t nfs4 -o proto=tcp,port=2049 <nfs-server>:<path> /mnt/home/
    マウントが失敗した場合は、必要な権限を持っていないことが考えられます。

NFS パフォーマンスの確認

クライアントとサーバーの視点から環境を慎重に分析して、最適な NFS プラットフォームであることを検証してください。手順は次のとおりです。

  • NFS サーバーのパフォーマンスとレイテンシーをテストします。これらの操作では、クライアント (Anypoint Platform PCE 環境) から NFS サーバーにデータを転送して、各転送に要した時間を測定します。

  • 以下のパラメーターを指定してファイルを転送しながら、​time dd if=/dev/zero of=/mnt/home/<nameOfFile> bs=<blockSize> count=<amountOfBlocks>​ コマンドを使用して NFS サーバーのパフォーマンスをテストします。

    • 名前は ​<nameOfFile>

    • <blockSize>​ と ​<amountOfBlocks>​ は、それぞれブロックサイズとブロック数です。

  • Anypoint Platform PCE が NFS ファイル転送をどのように処理しているかを確認します。大きいファイル (128MB) と小さいファイル (80KB) で読み書き操作を行います。

各ノードですべてのテストを実行します。

NFS サーバーで大きいファイルの書き込みと読み出しをテストする

以下の読み書きテストは、大きいファイルを使用して行います。

  • ファイルサイズ: 128 MB

  • ブロックサイズ: 4 KB

  • ブロック数: 32768

テストの実行中は、異なるファイルが生成されます (各テストで 1 つずつ)。

  1. NFS サーバーをマウントするディレクトリを作成します。

    sudo su
    mkdir -p /mnt/home
  2. NFS サーバーをマウントします。

    mount -t nfs4 -o proto=tcp,port=2049 <nfs-server>:<path> /mnt/home/
  3. NFS サーバーにデータ (各 128 MB のファイル 5 つ) を書き込みます。

    time for i in {1..5}; do dd if=/dev/zero of=/mnt/home/greatfile$i.test bs=4k count=32768; done

    このコマンドは、次のような出力を返します。

    [root@ip-10-1-1-97 ec2-user]# time for i in {1..5}; do dd if=/dev/zero of=/mnt/home/greatfile$i.test bs=4k count=32768; done
    32768+0 records in
    32768+0 records out
    134217728 bytes (134 MB) copied, 2.12805 s, 63.1 MB/s
    .
    .
    .
    real 0m8.378s
    user 0m0.034s
    sys 0m0.792s

    出力に含まれる ​real​ パラメーター値が 15 秒未満であることを確認してください。

読み出しパフォーマンスを検証する

  1. NFS サーバーをマウント解除します。

    umount /mnt/home
  2. NFS サーバーを再マウントします。

    mount -t nfs4 -o proto=tcp,port=2049 <nfs-server>:<path> /mnt/home/
  3. 次のコマンドで NFS サーバーからデータを読み出します。

    time for i in {1..5}; do dd if=/mnt/home/greatfile$i.test of=/dev/null bs=4k; done

    出力に含まれる ​real​ パラメーター値が 15 秒未満であることを確認してください。

キャッシュをクリアする

NFS サーバーをマウント解除してキャッシュをクリアします。

umount /mnt/home

NFS サーバーで小さいファイルの書き込みと読み出しをテストする

大きいファイルと同じように以下の小さいファイルでテストを実行します。

  • ファイルサイズ: 80 KB

  • ブロックサイズ: 4 KB

  • ブロック数: 20

テストを開始する前に、前回のテストで作成された ​/mnt/home​ ディレクトリが残っていることを確認します。

  1. NFS サーバーをマウントします。

    mount -t nfs4 -o proto=tcp,port=2049 <nfs-server>:<path> /mnt/home/
  2. NFS サーバーにデータ (各 80 KB のファイル 5 つ) を書き込みます。

    time for i in {1..30}; do dd if=/dev/zero of=/mnt/home/smallfile$i.test bs=4k count=20; done

    出力に含まれる ​real​ パラメーター値が 2 秒前後であることを確認してください。

読み出しパフォーマンスを検証する

  1. NFS サーバーをマウント解除します。

    umount <nfs-server>
  2. NFS サーバーを再マウントします。

    mount -t nfs4 -o proto=tcp,port=2049 <nfs-server>:<path> /mnt/home/
  3. NFS サーバーから読み取りを実行します。

    time for i in {1..30}; do dd if=/mnt/home/smallfile$i.test of=/dev/null bs=4k; done

    テストで重要なパラメーターは出力に含まれる ​real​ パラメーターで、この値が 2 秒前後であることを確認してください。

テストファイルを削除する

パフォーマンステストを完了したら、テストファイルを削除します。

  1. 次のコマンドを実行して、生成したファイルをすべて削除します。

    rm -f /mnt/home/*.test
  2. NFS サーバーをマウント解除します。

    umount /mnt/home