本指南介绍了如何创建单个 Compute Engine 客户端并将其连接到 Parallelstore 实例。
如需创建并从多个 Compute Engine 客户端进行连接,您可以按照从 Compute Engine 进行连接:多个客户端中的说明操作。
为获得更好的性能,客户端 Compute Engine 虚拟机应在 Parallelstore 实例所在的可用区中创建。
所需权限
您必须拥有以下 IAM 角色才能创建 Compute Engine 虚拟机:
- Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1)。如需了解详情,请参阅 Compute Engine 文档。
创建 Compute Engine 虚拟机
按照说明使用以下映像之一创建 Compute Engine 虚拟机:
您可以选择任何机器类型和启动磁盘。我们建议至少使用 c2-standard-4 机器类型;如需提高客户端性能,请增加 vCPU 数量以提高网络吞吐量。例如,启用 Tier 1 网络的 c3-standard-176 可提供 200 Gbps 的出站流量带宽。
Google Cloud 控制台
- 在 Google Cloud 控制台中,前往虚拟机实例页面。 
- 选择您的项目并点击继续。 
- 点击创建实例。 
- 在名称中,为虚拟机输入名称。如需了解详情,请参阅资源命名惯例。 
- 从此虚拟机的下拉菜单中选择区域和可用区。 您的虚拟机应与 Parallelstore 实例位于同一可用区。 
- 从列表中为虚拟机选择机器配置。 
- 在启动磁盘部分,点击更改。 
- 选择公共映像标签页。 
- 从操作系统下拉菜单中,选择以下选项之一:HPC 虚拟机映像、Ubuntu 或 Debian。 
- 从版本下拉菜单中,选择以下选项之一:HPC Rocky Linux 8、Ubuntu 22.04 LTS 或 Debian GNU/Linux 12 (bookworm)。选择 x86/64 版本或 Arm64 版本,以与您的机器类型相匹配。 
- 如需确认您的启动磁盘选项,请点击选择。 
- 展开高级选项部分,然后展开网络。 
- 在网络接口下,选择您在配置 VPC 网络中创建的 VPC 网络。 
- 要创建并启动该虚拟机,请点击创建。 
gcloud
使用 gcloud 命令行工具创建虚拟机:
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 优化版
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 文档。
通过 SSH 连接到客户端虚拟机
Google Cloud 控制台
如需通过 SSH 连接到 Compute Engine 虚拟机,您必须先创建允许 SSH 的防火墙规则。
- 在 Google Cloud 控制台中,前往防火墙政策页面。 
- 点击创建防火墙规则。 
- 输入规则的名称。 
- 对于网络,选择您之前创建的 VPC 网络。 
- 选择入站作为流量方向,并选择允许作为对匹配项执行的操作。 
- 从目标下拉菜单中,选择网络中的所有实例。 
- 在来源 IPv4 范围字段中,输入 - 0.0.0.0/0。
- 在协议和端口中,选择指定的协议和端口。 
- 选择 TCP,然后在端口字段中输入 - 22。
- 点击创建。 
然后,通过 SSH 连接到您的虚拟机:
- 在 Google Cloud 控制台中,前往虚拟机实例页面。 
- 在实例表格中,找到您的实例所在的行,然后点击标题为连接的列中的 SSH。 
- 如果系统提示您执行此操作,请点击授权以允许连接。 
gcloud
如需通过 SSH 连接到 Compute Engine 虚拟机,您必须先创建允许 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 虚拟机上执行以下命令。
- 添加 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 优化版
必须在每个 Compute Engine 虚拟机上执行以下命令。
- 添加 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 虚拟机上执行以下命令。
- 添加 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 虚拟机上执行以下命令。
- 添加 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 虚拟机上执行以下命令。
- 添加 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 的虚拟机,您必须将打开的文件数限制增加到 131072,以支持 dfuse 和拦截库。
如果您选择不使用拦截库,也可以在启动 dfuse 之前立即运行 ulimit -n 131072。
如需将打开的文件数量限制从 1024 提高,请在每个虚拟机上运行以下命令。
sudo tee -a /etc/security/limits.conf <<EOF
* soft nofile 131072
* hard nofile 131072
EOF
然后,重新启动:
sudo reboot
客户端虚拟机完成重启后,再次通过 SSH 连接到该虚拟机。
更新 DAOS 代理配置
更新 /etc/daos/daos_agent.yml,具体代码如下所示:
- 取消注释并使用 Parallelstore 实例属性中的 - accessPointsIP 地址更新- 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))")
- 取消对以下两行内容的注释。缩进非常重要,因此请务必保留 - allow_insecure前面的空格:- # transport_config: # allow_insecure: false
- 将 - allow_insecure的值更改为- true,因为不支持证书。- transport_config: allow_insecure: true
- 指定可提供与 Parallelstore 实例的连接的网络接口。接口通常为 - eth0、- ens4或- enp0s3,但可能会因网络配置而异。 您可以使用- route命令显示虚拟机的默认网关;要指定的接口通常是与网关共享子网的接口。- 首先,列出所有可用的网络接口: - 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 优化版
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 实例现已装载到 Compute Engine 虚拟机,位于 -m 标志指定的路径中,并且可以使用标准 POSIX 语法进行读取/写入,但存在一些例外情况。
如果您在实例上运行 df,则 SIZE 值是使用 --capacity-gib 指定的值的 1.5 倍。由于 Parallelstore 使用的纠删码的性质,可用空间量仍为 --capacity-gib。从 df 的角度来看,每写入 2 个字节会使用 3 个字节。
卸载实例
可以使用以下命令卸载 Parallelstore 实例:
sudo umount /tmp/parallelstore/