Compute Engine から接続

このガイドでは、単一の Compute Engine クライアントを作成し、Parallelstore インスタンスに接続する手順について説明します。

複数の Compute Engine クライアントから作成して接続するには、Compute Engine から接続する: 複数のクライアントの手順に沿って操作します。

パフォーマンスを向上させるには、クライアント Compute Engine VM を Parallelstore インスタンスと同じゾーンに作成する必要があります。

必要な権限

Compute Engine VM を作成するには、次の IAM ロールが必要です。

Compute Engine VM を作成する

次のいずれかの手順に沿って、Compute Engine VM を作成します。

任意のマシンタイプとブートディスクを選択できます。少なくとも c2-standard-4 マシンタイプを使用することをおすすめします。クライアントのパフォーマンスを向上させるには、vCPU の数を増やしてネットワーク スループットを増やします。たとえば、Tier 1 ネットワーキングを使用する c3-standard-176 は、200 Gbps の下り(外向き)帯域幅を提供します。

Google Cloud コンソール

  1. Google Cloud コンソールで [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. プロジェクトを選択し、[続行] をクリックします。

  3. [インスタンスを作成] をクリックします。

  4. [名前] に VM の名前を入力します。詳しくは、リソースの命名規則をご覧ください。

  5. この VM のプルダウン メニューから [リージョン] と [ゾーン] を選択します。VM は Parallelstore インスタンスと同じゾーンに存在する必要があります。

  6. リストから VM のマシン構成を選択します。

  7. [ブートディスク] セクションで、[変更] をクリックします。

  8. [公開イメージ] タブを選択します。

  9. [オペレーティング システム] プルダウンから、[HPC VM イメージ]、[Ubuntu]、[Debian] のいずれかを選択します。

  10. [バージョン] プルダウンから、[HPC Rocky Linux 8]、[Ubuntu 22.04 LTS]、[Debian GNU/Linux 12(bookworm)] のいずれかを選択します。マシンタイプに合わせて、x86/64 バージョンまたは Arm64 バージョンを選択します。

  11. ブートディスクのオプションを確認するには、[選択] をクリックします。

  12. [詳細オプション] セクションを開き、[ネットワーキング] を開きます。

  13. [ネットワーク インターフェース] で、VPC ネットワークを構成するで作成した VPC ネットワークを選択します。

  14. VM を作成して起動するには、[作成] をクリックします。

gcloud

gcloud コマンドライン ツールを使用して VM を作成します。

HPC Rocky Linux 8

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image=projects/cloud-hpc-image-public/global/images/hpc-rocky-linux-8-v20240126,\
mode=rw,size=100,type=pd-balanced

Rocky Linux 9 Optimized

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image=projects/rocky-linux-cloud/global/images/rocky-linux-9-optimized-gcp-v20241112,\
mode=rw,size=100,type=pd-balanced

RHEL 9

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image=projects/rhel-cloud/global/images/rhel-9-v20241112,\
mode=rw,size=100,type=pd-balanced

Ubuntu 22.04

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image=projects/ubuntu-os-cloud/global/images/ubuntu-2204-jammy-v20240927,\
mode=rw,size=100,type=pd-balanced

Debian 12

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image=projects/debian-cloud/global/images/debian-12-bookworm-v20240415,\
mode=rw,size=100,type=pd-balanced

使用可能なオプションの詳細については、Compute Engine のドキュメントをご覧ください。

クライアント VM に SSH 接続する

Google Cloud コンソール

Compute Engine VM に SSH 接続するには、まず SSH を許可するファイアウォール ルールを作成する必要があります。

  1. Google Cloud コンソールで [ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. [ファイアウォール ルールを作成] をクリックします。

  3. ルールの名前を入力します。

  4. [ネットワーク] で、前に作成した VPC ネットワークを選択します。

  5. [トラフィックの方向] として [上り(内向き)] を選択し、[一致したときのアクション] として [許可] を選択します。

  6. [ターゲット] プルダウンから [ネットワーク上のすべてのインスタンス] を選択します。

  7. [送信元 IPv4 範囲] フィールドに「0.0.0.0/0」と入力します。

  8. [プロトコルとポート] で [指定したプロトコルとポート] を選択します。

  9. [TCP] を選択し、[ポート] フィールドに「22」と入力します。

  10. [作成] をクリックします。

次に、VM に SSH で接続します。

  1. Google Cloud コンソールで [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. インスタンスの表でインスタンスの行を見つけ、[接続] 列の [SSH] をクリックします。

  3. プロンプトが表示されたら、[承認] をクリックして接続を許可します。

gcloud

Compute Engine VM に SSH 接続するには、まず SSH を許可するファイアウォール ルールを作成する必要があります。

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
  --allow=tcp:22 \
  --network=NETWORK_NAME \
  --source-ranges=0.0.0.0/0 \
  --project=PROJECT_ID

次に、gcloud compute ssh を使用して接続します。

gcloud compute ssh VM_NAME --zone=ZONE --project=PROJECT_ID

DAOS クライアント ライブラリをインストールする

DAOS クライアント ライブラリは、Parallelstore データレイヤへの POSIX のようなインターフェースを提供します。このソフトウェアはクライアント マシンでエージェントとして実行されます。データにアクセスするには、このソフトウェアをインストールして実行する必要があります。

HPC Rocky Linux 8

次のコマンドは、各 Compute Engine VM で実行する必要があります。

  1. Parallelstore パッケージ リポジトリを追加します。

    sudo tee /etc/yum.repos.d/parallelstore-v2-6-el8.repo << EOF
    [parallelstore-v2-6-el8]
    name=Parallelstore EL8 v2.6
    baseurl=https://us-central1-yum.pkg.dev/projects/parallelstore-packages/v2-6-el8
    enabled=1
    repo_gpgcheck=0
    gpgcheck=0
    EOF
    
  2. ローカル メタデータ キャッシュを更新します。

    sudo dnf makecache
    
  3. daos-client をインストールします。

    sudo dnf install -y epel-release && \
    sudo dnf install -y daos-client
    
  4. libfabric をアップグレードします。

    sudo dnf upgrade -y libfabric
    

Rocky Linux 9 Optimized

次のコマンドは、各 Compute Engine VM で実行する必要があります。

  1. Parallelstore パッケージ リポジトリを追加します。

    sudo tee /etc/yum.repos.d/parallelstore-v2-6-el9.repo << EOF
    [parallelstore-v2-6-el9]
    name=Parallelstore EL9 v2.6
    baseurl=https://us-central1-yum.pkg.dev/projects/parallelstore-packages/v2-6-el9
    enabled=1
    repo_gpgcheck=0
    gpgcheck=0
    EOF
    
  2. ローカル メタデータ キャッシュを更新します。

    sudo dnf makecache
    
  3. daos-client をインストールします。

    sudo dnf install -y epel-release && \
    sudo dnf install -y daos-client
    
  4. libfabric をアップグレードします。

    sudo dnf upgrade -y libfabric
    

RHEL 9

次のコマンドは、各 Compute Engine VM で実行する必要があります。

  1. Parallelstore パッケージ リポジトリを追加します。

    sudo tee /etc/yum.repos.d/parallelstore-v2-6-el9.repo << EOF
    [parallelstore-v2-6-el9]
    name=Parallelstore EL9 v2.6
    baseurl=https://us-central1-yum.pkg.dev/projects/parallelstore-packages/v2-6-el9
    enabled=1
    repo_gpgcheck=0
    gpgcheck=0
    EOF
    
  2. ローカル メタデータ キャッシュを更新します。

    sudo dnf makecache
    
  3. daos-client をインストールします。

    sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    
    sudo dnf install -y epel-release && \
    sudo dnf install -y daos-client
    
  4. libfabric をアップグレードします。

    sudo dnf upgrade -y libfabric
    

Ubuntu 22.04

次のコマンドは、各 Compute Engine VM で実行する必要があります。

  1. Parallelstore パッケージ リポジトリを追加します。

    curl https://us-central1-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
    echo "deb https://us-central1-apt.pkg.dev/projects/parallelstore-packages v2-6-deb main" | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  2. パッケージ インデックスを更新します。

    sudo apt update
    
  3. daos-client をインストールします。

    sudo apt install -y daos-client
    

Debian 12

次のコマンドは、各 Compute Engine VM で実行する必要があります。

  1. Parallelstore パッケージ リポジトリを追加します。

    curl https://us-central1-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
    echo "deb https://us-central1-apt.pkg.dev/projects/parallelstore-packages v2-6-deb main" | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  2. パッケージ インデックスを更新します。

    sudo apt update
    
  3. daos-client をインストールします。

    sudo apt install -y daos-client
    

開いているファイルの上限を増やす(Ubuntu のみ)

Ubuntu 22.04 を実行している VM では、dfuse とインターセプト ライブラリをサポートするために、オープン ファイル数の上限を 131, 072 に増やす必要があります。

インターセプト ライブラリを使用しない場合は、dfuse の開始直前に ulimit -n 131072 を実行することもできます。

開いているファイルの上限を 1, 024 から増やすには、各 VM で次のコマンドを実行します。

sudo tee -a /etc/security/limits.conf <<EOF
* soft nofile 131072
* hard nofile 131072
EOF

その後、再起動します。

sudo reboot

再起動が完了したら、クライアント VM に再度 SSH で接続します。

DAOS エージェントの構成を更新する

/etc/daos/daos_agent.yml を次のように更新します。

  1. コメント化を解除して、Parallelstore インスタンス プロパティの accessPoints IP アドレスで access_points を更新します。例: access_points: ['172.21.95.2', '172.21.95.4', '172.21.95.5']

    コピーして貼り付けることができる正しい形式でアクセス ポイントを出力するには、次のコマンドを実行します。

    echo access_points\: $(gcloud beta parallelstore instances describe \
      INSTANCE_ID --location LOCATION --project PROJECT_ID \
      --format "value[delimiter=', '](format("{0}", accessPoints))")
    
  2. 次の 2 行のコメントを解除します。インデントは重要です。allow_insecure の前にスペースを空けてください。

    # transport_config:
    #   allow_insecure: false
    
  3. 証明書はサポートされていないため、allow_insecure の値を true に変更します。

     transport_config:
       allow_insecure: true
    
  4. Parallelstore インスタンスへの接続を提供するネットワーク インターフェースを指定します。インターフェースは通常 eth0ens4enp0s3 ですが、ネットワーク構成によっては異なる場合があります。route コマンドを使用して VM のデフォルト ゲートウェイを表示できます。通常、指定するインターフェースは、ゲートウェイとサブネットを共有するインターフェースです。

    まず、使用可能なすべてのネットワーク インターフェースを一覧表示します。

    ip a
    

    出力は次のようになります。

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc noqueue state UP group default
        link/ether e4:9x:3f:x7:dx:f7 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 10.88.0.3/16 brd 10.88.255.255 scope global eth0
           valid_lft forever preferred_lft forever
    3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1460 qdisc noqueue state DOWN group default
        link/ether 02:4x:6y:1z:84:45 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
           valid_lft forever preferred_lft forever
    

    route を実行してルーティング テーブルを表示します。

    route
    

    出力は次のようになります。

    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         10.88.0.1       0.0.0.0         UG    0      0        0 eth0
    10.88.0.0       0.0.0.0         255.255.0.0     U     0      0        0 eth0
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    

    この例では、デフォルト ゲートウェイは 10.88.0.1 で、eth0 と共有されているため、使用するインターフェースとして eth0 を指定します。

    /etc/daos/daos_agent.yml を編集します。include_fabric_ifaces のコメント化を解除して値を更新します。

    include_fabric_ifaces: ["eth0"]
    

    ファイルを保存して閉じます。

DAOS エージェントを起動する

HPC Rocky Linux 8

sudo systemctl start daos_agent.service

ステータスを確認して、エージェントが実行されていることを確認できます。

systemctl status daos_agent.service

Rocky Linux 9 Optimized

sudo systemctl start daos_agent.service

ステータスを確認して、エージェントが実行されていることを確認できます。

systemctl status daos_agent.service

RHEL 9

sudo systemctl start daos_agent.service

ステータスを確認して、エージェントが実行されていることを確認できます。

systemctl status daos_agent.service

Ubuntu 22.04

sudo mkdir /var/run/daos_agent && \
sudo daos_agent -o /etc/daos/daos_agent.yml &

Debian 12

sudo mkdir /var/run/daos_agent && \
sudo daos_agent -o /etc/daos/daos_agent.yml &

ロギングの設定

必要に応じて、クライアントサイドのデバッグに役立つローカル ロギングを設定します。

export D_LOG_MASK=INFO
export D_LOG_FILE_APPEND_PID=1
rm -f /tmp/client.log.*
export D_LOG_FILE=/tmp/client.log

dfuse を使用してインスタンスをマウントする

dfuse(DAOS FUSE)を使用して Parallelstore インスタンスをマウントします。

  1. /etc/fuse.conf を編集して user_allow_other を追加します。

  2. dfuse--multi-user オプションを指定します。

    mkdir -p /tmp/parallelstore
    dfuse -m /tmp/parallelstore \
      --pool default-pool \
      --container default-container \
      --disable-wb-cache \
      --thread-count=20 \
      --eq-count=10 \
      --multi-user
    

--thread-count--eq-count の値を最適化する方法については、パフォーマンスに関する考慮事項のページのスレッド数とイベントキュー数のセクションをご覧ください。

Parallelstore インスタンスにアクセスする

Parallelstore インスタンスが、-m フラグで指定されたパスで Compute Engine VM にマウントされ、標準の POSIX 構文を使用して読み取り/書き込みが可能になりました(一部の例外があります)。

インスタンスで df を実行すると、SIZE 値は --capacity-gib で指定された値の 1.5 倍になります。Parallelstore で使用されるエラー コードの性質上、使用可能な容量は引き続き --capacity-gib です。書き込まれる 2 バイトごとに、df の観点から 3 バイトが使用されます。

インスタンスをマウント解除する

Parallelstore インスタンスのマウントを解除するには、次のコマンドを使用します。

sudo umount /tmp/parallelstore/

次のステップ