이 페이지에는 몇 가지 일반적인 문제와 오류에 대한 문제 해결 단계가 포함되어 있습니다.
알려진 문제
- 파일 시스템에서 I/O가 발생하지 않으면 성능 그래프에 '선택한 기간에 사용할 수 있는 데이터가 없습니다'라는 메시지가 표시됩니다. 성능 측정항목은 I/O가 있는 경우에만 생성되기 때문입니다. 측정항목에 대한 자세한 내용은 인스턴스 및 작업 모니터링을 참고하세요.
- 다음 Lustre 기능은 지원되지 않습니다.
- 클라이언트 측 데이터 압축
- 영구 클라이언트 캐싱
- 일부 Lustre 명령은 지원되지 않습니다.
- POSIX 규정 준수에 대한 예외가 몇 가지 있습니다.
인스턴스 작업 문제
다음 섹션에서는 인스턴스 작업과 관련된 문제를 설명합니다.
작업을 대기열에 추가할 수 없음
작업을 시작하려고 할 때 다음과 유사한 오류가 표시되는 경우:
ERROR: (gcloud.lustre.instances.import-data) ABORTED: unable to queue the operation
ERROR: (gcloud.lustre.instances.export-data) ABORTED: unable to queue the operation
ERROR: (gcloud.lustre.instances.update) ABORTED: unable to queue the operation
이 오류는 동일한 유형의 다른 작업이 동일한 인스턴스에서 이미 진행 중인 상태에서 작업을 시작하려고 할 때 발생합니다.
- 가져오기/내보내기: 관리 Lustre는 인스턴스당 한 번에 하나의 활성 전송 작업만 지원합니다. 전송 작업에는 대기열이 지원되지 않습니다.
- 인스턴스 업데이트: Managed Lustre는 인스턴스당 한 번에 하나의 활성 업데이트를 허용하며 추가 업데이트 작업을 대기열에 추가할 수 있습니다.
이 문제를 해결하려면 현재 작업이 완료될 때까지 기다린 후 새 작업을 시작하세요.
Compute Engine 문제
Compute Engine 인스턴스에 관리 Lustre 파일 시스템을 마운트하는 데 문제가 발생하면 다음 단계에 따라 문제를 진단하세요.
Managed Lustre 인스턴스에 연결할 수 있는지 확인
먼저 Compute Engine 인스턴스에서 Managed Lustre 인스턴스에 연결할 수 있는지 확인합니다.
sudo lctl ping IP_ADDRESS@tcp
IP_ADDRESS 값을 가져오려면 인스턴스 가져오기를 참고하세요.
성공적인 핑은 다음과 비슷한 응답을 반환합니다.
12345-0@lo
12345-10.115.0.3@tcp
핑이 실패하면 다음이 반환됩니다.
failed to ping 10.115.0.3@tcp: Input/output error
핑이 실패하면 다음을 확인하세요.
관리형 Lustre 인스턴스와 Compute Engine 인스턴스가 동일한 VPC 네트워크에 있는지 확인합니다. 다음 명령어의 출력을 비교합니다.
gcloud compute instances describe VM_NAME \ --zone=VM_ZONE \ --format='get(networkInterfaces[0].network)' gcloud lustre instances describe INSTANCE_NAME \ --location=ZONE --format='get(network)'출력 형식은 다음과 같습니다.
https://www.googleapis.com/compute/v1/projects/my-project/global/networks/my-network projects/my-project/global/networks/my-networkgcloud compute instances describe명령어의 출력에는https://www.googleapis.com/compute/v1/이 접두사로 붙습니다. 이 문자열 뒤에 오는 모든 항목은gcloud lustre instances describe명령어의 출력과 일치해야 합니다.VPC 네트워크의 방화벽 규칙과 라우팅 구성을 검토하여 Compute Engine 인스턴스와 관리형 Lustre 인스턴스 간의 트래픽을 허용하는지 확인합니다.
LNet 수락 포트 확인
생성 시 --gke-support-enabled 플래그를 지정하여 GKE 클라이언트를 지원하도록 관리형 Lustre 인스턴스를 구성할 수 있습니다.
GKE 지원이 사용 설정된 경우 모든 Compute Engine 인스턴스에서 accept_port 6988을 사용하도록 LNet을 구성해야 합니다. gke-support-enabled 인스턴스용 LNet 구성을 참고하세요.
인스턴스가 GKE 클라이언트를 지원하도록 구성되었는지 확인하려면 다음 명령어를 실행합니다.
gcloud lustre instances describe INSTANCE_NAME \
--location=LOCATION | grep gkeSupportEnabled
명령어가 gkeSupportEnabled: true를 반환하면 LNet을 구성해야 합니다.
Ubuntu 커널 버전이 Lustre 클라이언트와 일치하지 않음
Ubuntu를 실행하는 Compute Engine 인스턴스의 경우 Ubuntu 커널 버전이 Lustre 클라이언트 패키지의 특정 버전과 일치해야 합니다. Lustre 클라이언트 도구가 실패하는 경우 Compute Engine 인스턴스가 최신 커널로 자동 업그레이드되었는지 확인하세요.
커널 버전을 확인하려면 다음 단계를 따르세요.
uname -r
응답은 다음과 같습니다.
6.8.0-1029-gcp
Lustre 클라이언트 패키지 버전을 확인하려면 다음 단계를 따르세요.
dpkg -l | grep -i lustre
응답은 다음과 같습니다.
ii lustre-client-modules-6.8.0-1029-gcp 2.14.0-ddn198-1 amd64 Lustre Linux kernel module (kernel 6.8.0-1029-gcp)
ii lustre-client-utils 2.14.0-ddn198-1 amd64 Userspace utilities for the Lustre filesystem (client)
두 명령어에서 나열된 커널 버전이 일치하지 않으면 Lustre 클라이언트 패키지를 다시 설치해야 합니다.
dmesg에서 Lustre 오류 확인
많은 Lustre 경고와 오류가 Linux 커널 링 버퍼에 기록됩니다. dmesg 명령어는 커널 링 버퍼를 출력합니다.
Lustre 관련 메시지를 검색하려면 dmesg와 함께 grep를 사용하세요.
dmesg | grep -i lustre
또는 관련이 있을 수 있는 일반적인 오류를 찾으려면 다음 단계를 따르세요.
dmesg | grep -i error
지원 요청에 포함할 정보
마운트 실패를 해결할 수 없는 경우 지원 케이스를 만들기 전에 진단 정보를 수집하세요.
sosreport 실행: 이 유틸리티는 시스템 로그와 구성 정보를 수집하고 압축된 tarball을 생성합니다.
sudo sosreport
sosreport 보관 파일과 dmesg의 관련 출력을 지원 케이스에 첨부합니다.
GKE 문제
이 섹션의 문제 해결 단계를 따르기 전에 GKE에서 Managed Lustre에 연결할 때의 제한사항을 참고하세요.
최소 인스턴스 용량 업데이트
Managed Lustre 인스턴스의 최소 용량이 9000GiB로 업데이트되었습니다. Managed Lustre CSI 드라이버를 통해 9000GiB 인스턴스를 만들려면 클러스터 버전을 1.34.0-gke.2285000 이상으로 업그레이드하세요.
동적으로 프로비저닝된 Lustre 인스턴스의 성능 등급이 잘못됨
Lustre 인스턴스를 동적으로 프로비저닝할 때 API 요청에 지정된 perUnitStorageThroughput 값과 관계없이 PerUnitStorageThroughput에 대해 InvalidArgument 오류가 발생하여 인스턴스 생성이 실패합니다. 이 문제는 1.33.4-gke.1036000 이전의 GKE 1.33 버전에 영향을 줍니다.
해결 방법:
GKE 클러스터를 버전 1.33.4-gke.1036000 이상으로 업그레이드합니다. 안정화 채널을 사용하는 경우 최신 버전을 아직 사용할 수 없을 수 있습니다. 이 경우 수정사항이 포함된 Regular 또는 Rapid 채널에서 버전을 수동으로 선택할 수 있습니다.
Managed Lustre 통신 포트
Managed Lustre CSI 드라이버는 GKE 클러스터 버전과 기존 Managed Lustre 구성에 따라 Managed Lustre 인스턴스와의 통신에 다른 포트를 사용합니다.
기본 포트 (988): 버전
1.33.2-gke.4780000이상을 실행하는 새 GKE 클러스터의 경우 드라이버는 기본적으로 Lustre 통신에 포트988을 사용합니다.기존 포트 (6988): 드라이버는 다음 시나리오에서 포트
6988을 사용합니다.- 이전 GKE 버전: GKE 클러스터에서
1.33.2-gke.4780000이전 버전을 실행하는 경우 CSI 드라이버를 사용 설정할 때--enable-legacy-lustre-port플래그가 필요합니다. 이 플래그를 사용 설정하면 GKE 노드에서gke-metadata-server와의 포트 충돌이 해결됩니다. - GKE 지원이 포함된 기존 Managed Lustre 인스턴스:
--gke-support-enabled플래그로 생성된 기존 Managed Lustre 인스턴스에 연결하는 경우 클러스터 버전과 관계없이 CSI 드라이버를 사용 설정할 때--enable-legacy-lustre-port를 포함해야 합니다. 이 플래그가 없으면 GKE 클러스터가 기존 Lustre 인스턴스를 마운트하지 못합니다.
기존 포트로 CSI 드라이버를 사용 설정하는 방법에 관한 자세한 내용은 Lustre 통신 포트를 참고하세요.
- 이전 GKE 버전: GKE 클러스터에서
로그 쿼리
로그를 확인하려면 로그 탐색기에서 다음 쿼리를 실행하세요.
Managed Lustre CSI 드라이버 노드 서버 로그를 반환하려면 다음 단계를 따르세요.
resource.type="k8s_container"
resource.labels.pod_name=~"lustre-csi-node*"
볼륨 프로비저닝 문제 해결
PersistentVolumeClaim (PVC)이 Pending 상태로 유지되고 20~30분이 지나도 PersistentVolume (PV)이 생성되지 않으면 오류가 발생했을 수 있습니다.
PVC 이벤트를 확인합니다.
kubectl describe pvc PVC_NAME오류에 구성 문제 또는 잘못된 인수가 표시되면 StorageClass 매개변수를 확인하세요.
PVC를 다시 만듭니다.
문제가 계속되면 Cloud Customer Care에 문의하세요.
볼륨 마운트 문제 해결
포드가 노드에 예약되면 볼륨이 마운트됩니다. 실패하면 포드 이벤트와 kubelet 로그를 확인합니다.
kubectl describe pod POD_NAME
CSI 드라이버 사용 설정 문제
증상:
MountVolume.MountDevice failed for volume "yyy" : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers
또는
MountVolume.SetUp failed for volume "yyy" : kubernetes.io/csi: mounter.SetUpAt failed to get CSI client: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers
원인: CSI 드라이버가 사용 설정되어 있지 않거나 아직 실행되고 있지 않습니다.
해결 방법:
- CSI 드라이버가 사용 설정되어 있는지 확인합니다.
- 클러스터를 최근에 확장하거나 업그레이드한 경우 드라이버가 작동할 때까지 몇 분 정도 기다립니다.
- 오류가 계속되면
lustre-csi-node로그에서 'Operation not permitted'를 확인합니다. 이는 노드 버전이 너무 오래되어 Managed Lustre를 지원할 수 없음을 나타냅니다. 이 문제를 해결하려면 노드 풀을 버전1.33.2-gke.1111000이상으로 업그레이드하세요. - 로그에 'LNET_PORT 불일치'가 표시되면 호환되는 Lustre 커널 모듈이 설치되도록 노드 풀을 업그레이드하세요.
마운트 지점이 이미 있음
증상:
MountVolume.MountDevice failed for volume "yyy" : rpc error: code = AlreadyExists
desc = A mountpoint with the same lustre filesystem name "yyy" already exists on
node "yyy". Please mount different lustre filesystems
원인: 단일 노드에서 파일 시스템 이름이 동일한 여러 관리 Lustre 인스턴스의 볼륨을 마운트하는 것은 지원되지 않습니다.
해결 방법: Managed Lustre 인스턴스마다 고유한 파일 시스템 이름을 사용하세요.
마운트 실패: 해당 파일 또는 디렉터리가 없음
증상:
MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: No such file or directory
원인: 지정된 파일 시스템 이름이 잘못되었거나 존재하지 않습니다.
해결 방법: StorageClass 또는 PV 구성의 fs_name이 Managed Lustre 인스턴스와 일치하는지 확인합니다.
마운트 실패: 입력/출력 오류
증상:
MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: Input/output error
원인: 클러스터가 Managed Lustre 인스턴스에 연결할 수 없습니다.
해결 방법:
- 관리형 Lustre 인스턴스의 IP 주소를 확인합니다.
- GKE 클러스터와 Managed Lustre 인스턴스가 동일한 VPC 네트워크에 있거나 올바르게 피어링되어 있는지 확인합니다.
내부 오류
증상: rpc error: code = Internal desc = ...
해결 방법: 오류가 계속되면 Cloud Customer Care에 문의하세요.
볼륨 마운트 해제 문제 해결
증상:
UnmountVolume.TearDown failed for volume "yyy" : rpc error: code = Internal desc = ...
해결 방법:
포드를 강제 삭제합니다.
kubectl delete pod POD_NAME --force문제가 계속되면 Cloud Customer Care에 문의하세요.
볼륨 삭제 문제 해결
PVC를 삭제한 후 PV가 장시간('1시간 이상) 'Released'(해제됨) 상태로 유지되면 Cloud Customer Care에 문의하세요.
볼륨 확장 문제 해결
PVC가 ExternalExpanding에 멈춤
증상: PVC 상태가 Resizing로 변경되지 않고 이벤트에 ExternalExpanding가 표시됩니다.
원인: allowVolumeExpansion 필드가 누락되었거나 false로 설정되었을 수 있습니다.
해결 방법:
StorageClass에 allowVolumeExpansion: true이 있는지 확인합니다.
kubectl get storageclass STORAGE_CLASS_NAME -o yaml
확장 실패: 잘못된 인수
증상: VolumeResizeFailed: rpc error: code = InvalidArgument ...
원인: 요청된 크기가 잘못되었습니다 (예: 단계 크기의 배수가 아니거나 한도를 벗어남).
해결 방법: 유효한 용량 범위를 확인하고 유효한 크기로 PVC를 업데이트합니다.
확장 실패: 내부 오류
증상: VolumeResizeFailed ... rpc error: code = Internal
해결 방법: PVC를 다시 적용하여 확장을 다시 시도합니다. 계속 실패하면 Cloud Customer Care에 문의하세요.
기한 초과
증상: DEADLINE_EXCEEDED이 있는 VolumeResizeFailed
원인: 작업이 예상보다 오래 걸리고 있지만 아직 진행 중일 수 있습니다.
해결 방법: 작업이 완료될 때까지 기다립니다. 리사이저가 자동으로 다시 시도합니다. 오랫동안 멈춰 있는 경우 (예: > 90분)인 경우 지원팀에 문의하세요.
할당량이 초과됨
증상: 할당량 한도로 인해 확장 실패
해결 방법: 할당량 증가를 요청하거나 더 작은 용량 증가를 요청합니다.
VPC 네트워크 문제
다음 섹션에서는 일반적인 VPC 네트워크 문제를 설명합니다.
피어링된 프로젝트에서 Managed Lustre에 액세스할 수 없음
피어링된 VPC 네트워크의 VM에서 Managed Lustre 인스턴스에 액세스하려면 Network Connectivity Center (NCC)를 사용해야 합니다. NCC를 사용하면 여러 VPC 네트워크와 온프레미스 네트워크를 중앙 허브에 연결하여 네트워크 간 연결을 제공할 수 있습니다.
NCC 설정 방법은 Network Connectivity Center 문서를 참고하세요.
다중 NIC VM에서 Lustre 마운트 실패
VM에 네트워크 인터페이스 컨트롤러 (NIC)가 여러 개 있고 관리형 Lustre 인스턴스가 보조 NIC에 연결된 VPC에 있는 경우(예: eth1) 인스턴스 마운트에 실패할 수 있습니다. 이 문제를 해결하려면 보조 NIC를 사용하여 마운트하는 안내를 따르세요.
172.17.0.0/16 서브넷 범위에서 연결할 수 없음
IP 주소가 172.17.0.0/16 서브넷 범위에 속하는 Compute Engine 및 GKE 클라이언트는 관리형 Lustre 인스턴스를 마운트할 수 없습니다.
서비스 servicenetworking.googleapis.com의 피어링을 추가할 권한이 거부됨
ERROR: (gcloud.services.vpc-peerings.connect) User [$(USER)] does not have
permission to access services instance [servicenetworking.googleapis.com]
(or it may not exist): Permission denied to add peering for service
'servicenetworking.googleapis.com'.
이 오류는 사용자 계정에 servicenetworking.services.addPeering IAM 권한이 없음을 의미합니다.
계정에 다음 역할 중 하나를 추가하는 방법은 IAM으로 액세스 제어를 참고하세요.
roles/compute.networkAdmin또는roles/servicenetworking.networksAdmin
CreateConnection에서 할당된 범위를 수정할 수 없음
ERROR: (gcloud.services.vpc-peerings.connect) The operation
"operations/[operation_id]" resulted in a failure "Cannot modify allocated
ranges in CreateConnection. Please use UpdateConnection."
이 오류는 이 네트워크에서 IP 범위가 다른 vpc-peering을 이미 만든 경우 반환됩니다. 다음과 같은 두 가지 문제 해결 방법이 있습니다.
기존 IP 범위를 다음으로 바꿉니다.
gcloud services vpc-peerings update \
--network=NETWORK_NAME \
--ranges=IP_RANGE_NAME \
--service=servicenetworking.googleapis.com \
--force
또는 기존 연결에 새 IP 범위를 추가합니다.
피어링의 기존 IP 범위 목록을 가져옵니다.
EXISTING_RANGES="$( gcloud services vpc-peerings list \ --network=NETWORK_NAME \ --service=servicenetworking.googleapis.com \ --format="value(reservedPeeringRanges.list())" \ --flatten=reservedPeeringRanges )그런 다음 새 범위를 피어링에 추가합니다.
gcloud services vpc-peerings update \ --network=NETWORK_NAME \ --ranges="${EXISTING_RANGES}",IP_RANGE_NAME \ --service=servicenetworking.googleapis.com
IP 주소 범위가 소진됨
범위 소진 오류로 인스턴스 생성이 실패하는 경우:
ERROR: (gcloud.alpha.Google Cloud Managed Lustre.instances.create) FAILED_PRECONDITION: Invalid
resource state for "NETWORK_RANGES_NOT_AVAILABLE": IP address range exhausted
VPC 가이드에 따라 기존 비공개 연결을 수정하여 IP 주소 범위를 추가합니다.
프리픽스 길이는 /20 이상 (1024개 주소)인 것이 좋습니다.