Alibaba Cloud Linux 2 に CPFS-POSIX クライアントをインストールし、そのクライアントを使用して CPFS ファイルシステムをマウントします。
背景情報
-
このトピックでいうターゲット ECS インスタンスとは、CPFS ファイルシステムをマウントしてアクセスするコンピューティングノードのことです。
-
Cloud Parallel File Storage (CPFS) は、POSIX インターフェイスと互換性があります。CPFS-POSIX クライアントをインストールし、ファイルシステムをマウントすることで CPFS を使用できます。CPFS-POSIX クライアントはカスタマイズされたサービスを提供し、Alibaba Cloud Linux 2 へのインストールをサポートしています。NFS プロトコルを使用して CPFS ファイルシステムにアクセスする場合は、「CPFS-NFS クライアントを使用したファイルシステムのマウント」をご参照ください。
-
POSIX マウントターゲットを追加すると、CPFS は自動的に 3 つの管理ノード ECS インスタンス (
- -qr-001、 - -qr-002、 - -qr-003) を作成します。リストの最初の管理ノード ECS インスタンス ( - -qr-001) は、デフォルトの CPFS-POSIX クライアントインストールノードです。
前提条件
-
ファイルシステムが作成済みであること。詳細については、「ファイルシステムの作成」をご参照ください。
-
POSIX マウントターゲットが追加済みであること。詳細については、「POSIX マウントターゲットの追加」をご参照ください。
-
1 つ以上の Alibaba Cloud Linux 2 ECS インスタンスが作成されており、インスタンスの仕様は次のとおりです。
-
バージョン: Alibaba Cloud Linux 2.1903 LTS 64 ビット
-
カーネルバージョン: 4.19.91-27.4.al7.x86_64 以前。
uname -r コマンドを実行して、カーネルバージョンを確認できます。
-
ステップ 1:ターゲット ECS インスタンスのセキュリティグループの設定
前提条件で作成した ECS インスタンスにファイルシステムをマウントする前に、CPFS-POSIX 管理ノード ECS インスタンスのセキュリティグループをターゲット ECS インスタンスに追加する必要があります。これにより、ターゲット ECS インスタンスと CPFS クラスター間のリモート接続およびデータ伝送の失敗を防ぐことができます。
CPFS-POSIX コントロールノードのセキュリティグループ ID を取得します。
NAS コンソールにログインします。
左側メニューで、 を選択します。
ページの左上隅で、ターゲットファイルシステムのリソースグループとリージョンを選択します。

ターゲットファイルシステムをクリックします。 詳細ページで、マウント使用 をクリックします。
クライアントマスターノード セクションで、リストの最初の ECS インスタンスをクリックして、インスタンス詳細ページに移動します。
インスタンスの詳細 ページで、[セキュリティグループ] タブをクリックし、コントロールノードの [セキュリティグループ ID/名前] を控えておきます。
コントロールノードのセキュリティグループ名は、<FSID>-<GENID>-qr-sg の形式です。
この形式では、<FSID> は CPFS ファイルシステム ID、<GENID> はマウントターゲットのシーケンス番号で、CPFS マウントターゲットが作成されるたびにインクリメントされます。
コントロールノードのセキュリティグループをターゲット ECS インスタンスに追加します。
左側メニューで、[インスタンスとイメージ] > [インスタンス] を選択します。
[インスタンスリスト] ページで、マウントする ECS インスタンス ID をクリックし、[セキュリティグループ] タブを選択して、[セキュリティグループの変更] をクリックします。
[セキュリティグループの変更] ダイアログボックスで、[セキュリティグループ] ドロップダウンリストからステップ 1 で控えたコントロールノードのセキュリティグループ (<FSID>-<GENID>-qr-sg) を選択し、[OK] をクリックします。
ステップ 2:CPFS-POSIX クライアントのインストール
-
NAS コンソールにログインします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
ページの左上隅で、ターゲットファイルシステムのリージョンとリソースグループを選択します。
リソースグループを切り替えるには、上部メニューの [すべてのリソース] ドロップダウンリストを使用します。
-
ターゲットファイルシステムをクリックしてファイルシステムの詳細ページに移動し、マウント使用 をクリックします。
-
クライアントマスターノード セクションで、リストの最初の管理ノード ECS インスタンスをクリックして、インスタンスの詳細ページに移動します。
-
接続 をクリックして、CPFS-POSIX クライアントインストールノードにログインします。
-
管理ノードとターゲット ECS インスタンス間でパスワードなしログインを設定します。
説明複数の CPFS 管理ノードと ECS インスタンス間でパスワードなしログインを設定する前に、ターゲット ECS インスタンスのログインパスワードを同じパスワードに設定することを推奨します。そうしないと、client.list ファイルを複数回作成し、ステップ 9 から 10 を繰り返す必要があります。
-
client.list ファイルを作成し、ターゲット ECS インスタンスのプライベート IP アドレスを追加します。
-
client.list ファイルを作成します。
touch client.list -
vi client.listコマンドを実行して client.list ファイルを開き、ターゲット ECS インスタンスのプライベート IP アドレスを追加します。<ターゲット ECS インスタンス 1 のプライベート IP アドレス> <ターゲット ECS インスタンス 2 のプライベート IP アドレス> <ターゲット ECS インスタンス 3 のプライベート IP アドレス>例:
192.168.1.249 192.168.1.250 192.168.1.251説明1 つ以上の ECS インスタンスを追加できます。複数の ECS インスタンスを追加する場合は、ターゲット ECS インスタンスのプライベート IP アドレスを別々の行に入力します。
-
保存して終了します。
-
-
qr.list ファイルを作成し、管理ノードの IP アドレスを追加します。
-
qr.list ファイルを作成します。
touch qr.list -
vi qr.listコマンドを実行して qr.list ファイルを開き、管理ノードの IP アドレスを追加します。内容は次のとおりです。10.0.2.41 10.0.2.42 10.0.2.43クライアントマスターノード セクションに、CPFS-POSIX クライアント管理ノードの IP アドレスがリスト表示されます。
-
保存して終了します。
-
-
auto_ssh.sh スクリプトを設定します。
-
auto_ssh.sh ファイルを作成します。
touch auto_ssh.sh -
vi 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 -
次のコマンドを実行して、client.list 内のターゲット ECS インスタンスの PASSWD を設定します。
PASSWD='yourpassword'説明ターゲット ECS インスタンスの PASSWD が異なる場合は、client.list ファイルを複数回作成し、ステップ 9 から 10 を繰り返す必要があります。
-
次のコマンドを実行して、ターゲット ECS インスタンスへのパスワードなしログインを設定します。
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"この設定を他の ECS インスタンスで再利用するには、設定済みのインスタンスからカスタムイメージを作成します。カスタムイメージの作成方法の詳細については、「カスタムイメージ」をご参照ください。
ステップ 3:ファイルシステムのマウント
-
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
-
[インスタンスリスト] ページで、CPFS-POSIX クライアントインストールノード ECS (qr-001) を見つけ、接続 列の 接続 をクリックしてノードにログインします。
[クライアント管理ノード] セクションに、CPFS-POSIX クライアントインストールノードのログインパスワードが表示されます。
-
次のコマンドを実行して、管理ノードとターゲット 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 -
レスポンス例
ノードの状態が
activeに変更されると、対象の ECS インスタンスは 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
-
-
(オプション) デフォルトパスの照会
ターゲット ECS インスタンスを CPFS-POSIX クライアント管理ノードに追加すると、ファイルシステムはデフォルトパス /cpfs/<FSID シリアル番号> に自動的にマウントされます。デフォルトのマウントパスを表示するには、
mmlsfs <FSID シリアル番号>-<GENID> -Tコマンドを実行します。-
コマンド例
mmlsfs 2989198****323d3-000001 -T -
レスポンス例
flag value description ------------------- ------------------------ ----------------------------------- -T /cpfs/2989198****323d3-000001 Default mount point
CPFS ファイルシステムをカスタムパスにマウントするには、
mount --bindコマンドを実行します。mount --bind /cpfs/2989198****323d3-000001 /mnt/testこのコマンドでは、/cpfs/2989198****323d3-000001 は CPFS ファイルシステムのデフォルトのマウントパスであり、/mnt/test はカスタムマウントパスです。
説明-
CPFS ファイルシステムインストールノードでは、カスタムマウントパスは許可されていません。
-
サブディレクトリのマウントはサポートされていません。
-
よくある質問
CPFS のマウントに関するその他の FAQ と解決策については、「マウントとアクセスに関する FAQ」をご参照ください。