이 가이드에서는 단일 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
는 200Gbps의 이그레스 대역폭을 제공합니다.
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 최적화
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 최적화
다음 명령어는 각 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 및 가로채기 라이브러리를 지원하려면 열린 파일 한도를 131072로 늘려야 합니다.
가로채기 라이브러리를 사용하지 않으려면 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))")
다음 두 줄의 주석 처리를 삭제합니다. 들여쓰기가 중요하므로
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 최적화
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/