POSIX クライアントは、複数のデータノードに同時に接続できます。アプリケーションに標準の POSIX および MPI-IO インターフェイスを提供し、最適なパフォーマンスとアプリケーションインターフェイスの互換性を実現します。このトピックでは、Alibaba Cloud Linux を例として、Cloud Parallel File Storage (CPFS) ファイルシステムをデプロイし、CPFS-POSIX クライアントを使用してアクセスする方法について説明します。
CPFS-POSIX クライアントは、CPFS-NFS クライアントよりも高い I/O パフォーマンスを提供します。CPFS ファイルシステム用の POSIX マウントポイントを作成すると、CPFS-POSIX クライアントクラスターを管理するために、3 つの従量課金 Elastic Compute Service (ECS) インスタンスが Alibaba Cloud アカウントに自動的に作成されます。ECS インスタンスタイプは ecs.g*.large (g6 以降のインスタンスタイプ) です。これらのインスタンスは、リージョンの ECS 価格に基づいて課金されます。指定されたゾーンでこのインスタンスタイプを購入するために Alibaba Cloud アカウントが使用できることを確認してください。詳細については、「Elastic Compute Service の価格」をご参照ください。
高いパフォーマンス要件がない場合は、コンソールで汎用プロトコルサービスを有効にし、CPFS-NFS クライアントを使用して CPFS にアクセスできます。CPFS-NFS クライアントを使用して CPFS ファイルシステムにアクセスする場合、3 つの追加の ECS インスタンスは必要ありません。詳細については、「プロトコルサービス」をご参照ください。
前提条件
CPFS サービスが有効化されていること。
初めて CPFS コンソールにログインするときは、画面の指示に従って CPFS サービスを有効化します。
ECS インスタンスを作成済みであること。インスタンスは、CPFS-POSIX クライアントでサポートされているオペレーティングシステムを実行している必要があります。詳細については、「ECS インスタンスの作成」をご参照ください。
オペレーティングシステム
ディストリビューション
カーネルバージョン
Alibaba Cloud Linux
Alibaba Cloud Linux 2.1903 64 ビット
4.19.91-27.4.al7.x86_64 およびそれ以前のバージョン
Red Hat Enterprise Linux (RHEL) または CentOS
8.4
4.18.0-305.19.1.el8_4
8.3
4.18.0-240.22.1.el8_3
8.2
4.18.0-193.28.1.el8_2
8.1
4.18.0-147.8.1.el8_1
8.0
4.18.0-80.11.2.el8_0
7.9
3.10.0-1160.42.2.el7
7.8
3.10.0-1127.19.1.el7
7.7
3.10.0-1062.18.1.el7
7.6
3.10.0-957.54.1.el7
7.5
3.10.0-862.14.4.el7
7.4
3.10.0-693.2.2.el7
7.3
3.10.0-514.26.2.el7
7.2
3.10.0-514.26.2.el7
Ubuntu
20.04.3 LTS
5.4.0-86-generic
説明CPFS-POSIX クライアントが計算ノードで適切に実行されるには、少なくとも 2 つの CPU コアと 4 GiB のメモリが必要です。
オペレーティングシステムのカーネルバージョンが CPFS-POSIX クライアントでサポートされていない場合は、CPFS-NFS クライアントを使用して CPFS ファイルシステムにアクセスすることをお勧めします。
CentOS プロジェクトは、CentOS Linux から CentOS Stream に焦点を移すことを発表しました。Alibaba Cloud CentOS パブリックイメージは CentOS から派生しています。CentOS プロジェクトが CentOS のサポートを終了すると、Alibaba Cloud もこの Linux ディストリビューションのサポートを終了します。CentOS のサポート終了による影響を防ぐために、できるだけ早く CentOS オペレーティングシステムを置き換えることをお勧めします。詳細については、「ECS インスタンスのオペレーティングシステムの移行」をご参照ください。
このトピックでは、次の構成の ECS インスタンスを使用します。
オペレーティングシステム: Alibaba Cloud Linux 2.1903 LTS 64 ビット
カーネルバージョン: 4.19.91-27.4.al7.x86_64
vCPU: 2 vCPU
メモリ: 8 GiB
リージョン: 中国 (上海)
ゾーン: 上海ゾーン B
内部 IP アドレス: 192.168.1.249
プロシージャ
ステップ 1: ファイルシステムの作成
CPFS コンソールにログインします。
概要 ページの下部で、[CPFS の作成] をクリックします。
[CPFS (従量課金)] ページで、次の表の説明に従って必須パラメーターを設定します。他のパラメーターについては、デフォルト設定を使用するか、必要に応じてカスタム値を指定できます。詳細については、「ファイルシステムの作成」をご参照ください。
パラメーター
説明
リージョン
ドロップダウンリストから、[中国 (上海)] を選択します。
ゾーン
[上海ゾーン B] を選択します。ファイルシステムと ECS インスタンスは同じゾーンにある必要があります。
タイプ
[100 MB/s/TiB ベースライン] を選択します。
ストレージ容量
ファイルシステムのストレージ容量を選択します。このトピックでは、例として [3600 GiB] を使用します。
VPC
既存の VPC を選択します。
vSwitch
選択した VPC 内にある vSwitch を選択します。
今すぐ購入 をクリックし、画面の指示に従って購入を完了します。
ステップ 2: POSIX マウントポイントの追加と、ECS インスタンスのクォーラムノードのセキュリティグループへの追加
左側のナビゲーションウィンドウで、[ファイルシステム] > [ファイルシステムリスト] を選択し、作成したファイルシステムの名前をクリックします。
ファイルシステムの詳細ページで、[マウント] タブをクリックします。
POSIX クライアントマウントポイントを追加します。
[POSIX クライアントマウントポイントの追加] をクリックし、必須パラメーターを設定します。他のパラメーターについては、必要に応じて設定するか、デフォルト設定を保持します。
[VSwitch]: ECS インスタンスと同じ VPC にある vSwitch を選択します。
OK をクリックします。
クォーラムノードのセキュリティグループ情報を取得します。
[クライアント管理ノード] エリアで、リストの最初の ECS インスタンスをクリックして詳細ページに移動します。
ECS インスタンスの詳細ページで、[セキュリティグループ] タブをクリックし、セキュリティグループ情報を記録します。

宛先 ECS インスタンスを CPFS クォーラムノードのセキュリティグループに追加します。
左側のナビゲーションウィンドウで、[インスタンス & イメージ] > [インスタンス] を選択します。
CPFS ファイルシステムをマウントする ECS インスタンスの ID をクリックして、詳細ページに移動します。
[セキュリティグループ] タブをクリックし、[セキュリティグループの変更] をクリックします。
[セキュリティグループの変更] ダイアログボックスで、前のステップで記録したクォーラムノードのセキュリティグループ (<FSID>-<GENID>-qr-sg) を [セキュリティグループ] ドロップダウンリストから選択し、[OK] をクリックします。

ステップ 3: CPFS-POSIX クライアントのインストール
左側のナビゲーションウィンドウで、[インスタンス & イメージ] > [インスタンス] を選択します。
CPFS-POSIX クライアントをインストールする ECS インスタンス (cpfs-****-000001-qr-001) の [アクション] 列で、[リモート接続] をクリックします。インスタンスにログインします。ECS インスタンスへの接続方法の詳細については、インスタンスへの接続 をご参照ください。
NAS コンソールにログインできます。作成したファイルシステムの [マウント] タブで、[クライアント管理ノード] エリアにある最初の ECS インスタンスのパスワードを表示できます。

クォーラムノードから宛先 ECS インスタンスへのパスワードなしのログインを有効にします。
client.list ファイルを作成し、宛先 ECS インスタンスの内部 IP アドレスをファイルに追加します。
client.list ファイルを作成します。
touch client.listvi client.listコマンドを実行して client.list ファイルを開き、ターゲット ECS インスタンスの内部 IP アドレスを追加します。192.168.1.249説明1 つ以上の ECS インスタンスを追加できます。複数のインスタンスを追加する場合は、各インスタンスの内部 IP アドレスを新しい行に入力します。
ファイルを保存して閉じます。
qr.list ファイルを作成し、クォーラムノードの IP アドレスを追加します。
qr.list ファイルを作成します。
touch qr.listvi qr.listコマンドを実行して qr.list ファイルを開き、マスターノードの IP アドレスを追加します。次のコードは例です。192.168.*.*** 192.168.*.*** 192.168.*.***[クライアント管理ノード] エリアから CPFS-POSIX クライアントクォーラムノードの IP アドレスを取得できます。
ファイルを保存して閉じます。
auto_ssh.sh スクリプトを作成して設定します。
auto_ssh.sh ファイルを作成します。
touch auto_ssh.shvi auto_ssh.shコマンドを実行して auto_ssh.sh ファイルを開き、次の内容を追加します。#!/usr/bin/expect set timeout 10 set username [lindex $argv 0] set password [lindex $argv 1] set hostname [lindex $argv 2] spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $username@$hostname expect { #初回接続、~/.ssh/known_hosts に公開鍵なし "Are you sure you want to continue connecting (yes/no)?" { send "yes\r" expect "password:" send "$password\r" } #~/.ssh/known_hosts にすでに公開鍵あり "password:" { send "$password\r" } "Now try logging into the machine" { #承認済み、何もしない } "already exist on the remote" { #承認済み、何もしない } } expect eofファイルを保存して閉じます。
次のコマンドを実行して、ユーザーに auto_ssh.sh ファイルの実行権限を付与します。
chmod +x auto_ssh.sh次のコマンドを実行して、宛先 ECS インスタンスのパスワードを client.list ファイルに記録します。
PASSWD='yourpassword'次のコマンドを実行して、クォーラムノードのパスワードなしのログインを設定します。
cat client.list | xargs -I {} ./auto_ssh.sh root $PASSWD {}次のコマンドを実行して、client.list ファイルで指定された ECS インスタンスに CPFS クライアントをリモートでインストールします。出力に
Complete!が含まれている場合、インストールは成功です。region_id=`curl http://100.100.100.200/latest/meta-data/region-id`; wget https://cpfs-${region_id}-pre.oss-${region_id}-internal.aliyuncs.com/cpfs/CPFS2.3.4-CentOS.tar.gz -O /root/CPFS2.3.4-CentOS.tar.gz; cat client.list | xargs -I {} scp /root/CPFS2.3.4-CentOS.tar.gz {}:/root/ pssh -ih client.list "tar xzvf /root/CPFS2.3.4-CentOS.tar.gz" pssh -ih client.list "cd /root/CPFS2.3.4-CentOS/CentOS7;yum install -y gpfs.adv-*.x86_64.rpm gpfs.base-*.x86_64.rpm gpfs.docs-*.noarch.rpm gpfs.gpl-*.noarch.rpm gpfs.gskit-*.x86_64.rpm gpfs.gss.pmsensors-*.x86_64.rpm gpfs.license.dm-*.x86_64.rpm gpfs.msg.en_US-*.noarch.rpm"次のコマンドを実行して、client.list ファイルで指定された ECS インスタンスのカーネル拡張をリモートでコンパイルします。
pssh -ih client.list "/usr/bin/yum -y install cpp gcc-c++ elfutils-libelf-devel" pssh -ih client.list "export LINUX_DISTRIBUTION=KERNEL_ORG_LINUX; /usr/lpp/mmfs/bin/mmbuildgpl"設定が完了したら、環境のイメージを作成できます。CPFS ファイルシステムにアクセスするために新しい ECS インスタンスを追加する場合、環境を再設定することなく、イメージからインスタンスを作成できます。イメージの作成方法の詳細については、カスタムイメージの概要 をご参照ください。
ステップ 4: CPFS ファイルシステムのマウント
次のコマンドを実行して、マスターノードとターゲット ECS インスタンスの hosts ファイルを更新します。
pssh -ih client.list "hostname;ifconfig eth0 | grep -v inet6 | grep inet | awk '{print \$2}'" | grep -v SUCC | sed 'N;s/\n/ /' > /tmp/ip-host-client.list pssh -ih qr.list "hostname;ifconfig eth0 | grep -v inet6 | grep inet | awk '{print \$2}'" | grep -v SUCC | sed 'N;s/\n/ /' > /tmp/ip-host-qr.list cat /tmp/ip-host-client.list | awk '{print $2,$1,$1"t_MAGICTAG"}' > /etc/client-hosts.append cat /tmp/ip-host-qr.list | awk '{print $2,$1,$1"t_MAGICTAG"}' > /etc/qr-hosts.append pssh -ih client.list "cp /etc/hosts hosts.bak" pssh -ih qr.list "cp /etc/hosts hosts.bak" cat client.list | xargs -I {} scp /etc/client-hosts.append {}:/etc/ cat client.list | xargs -I {} scp /etc/qr-hosts.append {}:/etc/ cat qr.list | xargs -I {} scp /etc/client-hosts.append {}:/etc/ pssh -ih client.list "cat /etc/client-hosts.append >> /etc/hosts" pssh -ih client.list "cat /etc/qr-hosts.append >> /etc/hosts" pssh -ih qr.list "cat /etc/client-hosts.append >> /etc/hosts"次のコマンドを実行して、ターゲット ECS インスタンスを CPFS クラスターに追加します。
コマンドを実行します。
mmaddnode -N client.list mmchlicense client --accept -N client.list mmchnode --perfmon -N client.list mmstartup -N client.list mmgetstate -a応答の例を表示します。
ターゲット ECS インスタンスノードの状態が
activeに変わると、ノードは正常に CPFS クラスターに追加されます。Node number Node name GPFS state --------------------------------------------------------------- 1 cpfs-2989198****323d3-000001-qr-001 active 2 cpfs-2989198****323d3-000001-qr-002 active 3 cpfs-2989198****323d3-000001-qr-003 active 4 iZ0jl91t3p5kehvr6i5**** active
次のコマンドを実行して、ノードリストにターゲット ECS インスタンスが含まれていることを確認します。
コマンドを実行します。
mmlscluster応答の例を表示します。
Node Daemon node name IP address Admin node name Designation ----------------------------------------------------------------------------------------------------------- 1 cpfs-2989198****323d3-000001-qr-001 192.168.3.57 cpfs-2989198****323d3-000001-qr-001 quorum-manager-perfmon 2 cpfs-2989198****323d3-000001-qr-002 192.168.3.58 cpfs-2989198****323d3-000001-qr-002 quorum-manager-perfmon 3 cpfs-2989198****323d3-000001-qr-003 192.168.3.56 cpfs-2989198****323d3-000001-qr-003 quorum-manager-perfmon 4 iZ0jl91t3p5kehvr6i5**** 192.168.3.59 iZ0jl91t3p5kehvr6i5**** perfmon
ステップ 5: マウントの確認
ファイルシステムがマウントされた後、ECS インスタンス上の通常のディレクトリとしてアクセスして使用できます。
宛先 ECS インスタンスに接続します。詳細については、「ECS インスタンスへの接続」をご参照ください。
次のコマンドを実行して、マウントポイントをクエリします。
df -h出力例は次のとおりです。
Filesystem Size Used Avail Use% Mounted on devtmpfs 7.6G 0 7.6G 0% /dev tmpfs 7.6G 0 7.6G 0% /dev/shm tmpfs 7.6G 512K 7.6G 1% /run tmpfs 7.6G 0 7.6G 0% /sys/fs/cgroup /dev/vda1 40G 3.4G 37G 9% / tmpfs 1.6G 0 1.6G 0% /run/user/0 01a392bac3****-000001 3.6T 432M 3.6T 1% /cpfs/01a392bac3****-000001出力では、/cpfs/01a392bac3****-000001 がマウントポイントです。
次のコマンドを実行して、ディレクトリを CPFS ファイルシステムに変更します。
cd <mount_target>これで、CPFS ファイルシステムに通常のディレクトリとしてアクセスして使用できます。