このガイドでは、単一の Compute Engine クライアントを作成し、Parallelstore インスタンスに接続する手順について説明します。
複数の Compute Engine クライアントから作成して接続するには、Compute Engine から接続する: 複数のクライアントの手順に沿って操作します。
パフォーマンスを向上させるには、クライアント Compute Engine VM を Parallelstore インスタンスと同じゾーンに作成する必要があります。
必要な権限
Compute Engine VM を作成するには、次の IAM ロールが必要です。
- Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1
)。詳細については、Compute Engine のドキュメントをご覧ください。
Compute Engine VM を作成する
次のいずれかの手順に沿って、Compute Engine VM を作成します。
任意のマシンタイプとブートディスクを選択できます。少なくとも c2-standard-4
マシンタイプを使用することをおすすめします。クライアントのパフォーマンスを向上させるには、vCPU の数を増やしてネットワーク スループットを増やします。たとえば、Tier 1 ネットワーキングを使用する c3-standard-176
は、200 Gbps の下り(外向き)帯域幅を提供します。
Google Cloud コンソール
Google Cloud コンソールで [VM インスタンス] ページに移動します。
プロジェクトを選択し、[続行] をクリックします。
[インスタンスを作成] をクリックします。
[名前] に VM の名前を入力します。詳しくは、リソースの命名規則をご覧ください。
この VM のプルダウン メニューから [リージョン] と [ゾーン] を選択します。VM は Parallelstore インスタンスと同じゾーンに存在する必要があります。
リストから VM のマシン構成を選択します。
[ブートディスク] セクションで、[変更] をクリックします。
[公開イメージ] タブを選択します。
[オペレーティング システム] プルダウンから、[HPC VM イメージ]、[Ubuntu]、[Debian] のいずれかを選択します。
[バージョン] プルダウンから、[HPC Rocky Linux 8]、[Ubuntu 22.04 LTS]、[Debian GNU/Linux 12(bookworm)] のいずれかを選択します。マシンタイプに合わせて、x86/64 バージョンまたは Arm64 バージョンを選択します。
ブートディスクのオプションを確認するには、[選択] をクリックします。
[詳細オプション] セクションを開き、[ネットワーキング] を開きます。
[ネットワーク インターフェース] で、VPC ネットワークを構成するで作成した VPC ネットワークを選択します。
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 を許可するファイアウォール ルールを作成する必要があります。
Google Cloud コンソールで [ファイアウォール ポリシー] ページに移動します。
[ファイアウォール ルールを作成] をクリックします。
ルールの名前を入力します。
[ネットワーク] で、前に作成した VPC ネットワークを選択します。
[トラフィックの方向] として [上り(内向き)] を選択し、[一致したときのアクション] として [許可] を選択します。
[ターゲット] プルダウンから [ネットワーク上のすべてのインスタンス] を選択します。
[送信元 IPv4 範囲] フィールドに「
0.0.0.0/0
」と入力します。[プロトコルとポート] で [指定したプロトコルとポート] を選択します。
[TCP] を選択し、[ポート] フィールドに「
22
」と入力します。[作成] をクリックします。
次に、VM に SSH で接続します。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
インスタンスの表でインスタンスの行を見つけ、[接続] 列の [SSH] をクリックします。
プロンプトが表示されたら、[承認] をクリックして接続を許可します。
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 で実行する必要があります。
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
ローカル メタデータ キャッシュを更新します。
sudo dnf makecache
daos-client
をインストールします。sudo dnf install -y epel-release && \ sudo dnf install -y daos-client
libfabric
をアップグレードします。sudo dnf upgrade -y libfabric
Rocky Linux 9 Optimized
次のコマンドは、各 Compute Engine VM で実行する必要があります。
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
ローカル メタデータ キャッシュを更新します。
sudo dnf makecache
daos-client
をインストールします。sudo dnf install -y epel-release && \ sudo dnf install -y daos-client
libfabric
をアップグレードします。sudo dnf upgrade -y libfabric
RHEL 9
次のコマンドは、各 Compute Engine VM で実行する必要があります。
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
ローカル メタデータ キャッシュを更新します。
sudo dnf makecache
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
libfabric
をアップグレードします。sudo dnf upgrade -y libfabric
Ubuntu 22.04
次のコマンドは、各 Compute Engine VM で実行する必要があります。
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
パッケージ インデックスを更新します。
sudo apt update
daos-client
をインストールします。sudo apt install -y daos-client
Debian 12
次のコマンドは、各 Compute Engine VM で実行する必要があります。
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
パッケージ インデックスを更新します。
sudo apt update
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
を次のように更新します。
コメント化を解除して、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 行のコメントを解除します。インデントは重要です。
allow_insecure
の前にスペースを空けてください。# transport_config: # allow_insecure: false
証明書はサポートされていないため、
allow_insecure
の値をtrue
に変更します。transport_config: allow_insecure: true
Parallelstore インスタンスへの接続を提供するネットワーク インターフェースを指定します。インターフェースは通常
eth0
、ens4
、enp0s3
ですが、ネットワーク構成によっては異なる場合があります。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 インスタンスをマウントします。
/etc/fuse.conf
を編集してuser_allow_other
を追加します。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/