Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NCP Classic/VPC] Update for VM Status check when running GetVM() and ListVM(), Apply Updated Parameter Return Values on VMImage/MyImage #1244

Merged
merged 12 commits into from
Jul 27, 2024

Conversation

innodreamer
Copy link
Member

@innodreamer innodreamer commented Jul 16, 2024

  • Update NCP Classic/VPC VMHandler
  • Update NCP VPC VPCHandler
    • Change cblogger.Error to cblogger.Debug
  • Update NCP VPC RegionZoneHandler
    • Remove Unnecessary Parameter on NcpRegionZoneHandler struct
  • Update NcpDriver.go and NcpVpcDriver.go
    • Update drvCapabilityInfo
  • Update NcpDriver-lib.go and NcpVpcDriver-lib.go
    • Remove the Duplicate Codes
  • Update NCP Classic ImageHandler and MyImageHandler
    • Apply NCP's Updated Parameter Return Values related on VMImage/MyImage guest OS info
  • Change NCP Classic Default VMImage and VMSpec info for Test

@innodreamer
Copy link
Member Author

innodreamer commented Jul 18, 2024

  • NCP Classic 클라우드 서비스에서 아래의 사항들이 변경되어 driver 및 Spider 코드에 반영함.
    • VMImage/MyImage 정보 중 guest OS 정보 관련 parameter return 값이 변경되어 반영했음.
    • NCP Classic에서는 VMImage로서 ubuntu image 서비스가 종료되었고, 향후에도 ubuntu image는 지원하지 않는다고함.
      • 네이버 클라우드 고객센터에 확인한 내용임.(240718)
    • 따라서, CB-Spider 기준 테스트용 image 정보로 CentOS 7.8 (64-bit) image 정보를 반영했음.

@innodreamer innodreamer changed the title [NCP Classic/VPC] Update for VM Status check when running GetVM() and ListVM() [NCP Classic/VPC] Update for VM Status check when running GetVM() and ListVM(), Apply Updated Parameter Return Values on VMImage/MyImage Jul 18, 2024
@powerkimhub powerkimhub self-requested a review July 19, 2024 01:54
@powerkimhub
Copy link
Member

@innodreamer

  • VPC에서는 계속 제공이 되는데, Classic에서만 빠졌네요.
  • 다음 NCP의 OS 지원 라이프사이클을 참고할때, Ubuntu Server 22.04 경우 2028-04-30 정도까지는 유효한데,
  • 좀 이상하네요.
  • 연장선에서, 혹시, Classic 서비스에 대한 종료 계획도 있는지 문의/확인 부탁 드립니다.
    • 공지 사항 등에서는 보이지는 않네요.
  • 만일, 종료 계획이 있다면, Classic Driver 개발 계획에 참고할 필요가 있겠습니다.

@innodreamer
Copy link
Member Author

@powerkimhub (@seokho-son)
네이버 클라우드 고객센터에 추가로 문의해보니,
NCP Classic 플랫폼 서비스 관련하여, 서비스 종료는 계획되지 않았으며,
NCP Classic에서 기존 서비스된 OS image를 이용하여 이미 VM을 생성하여 운영중인 VM은 계속 사용할 수 있지만, 신규로 VM을 생성할 때 OS life cycle 정책으로인해 지원 종료된 image는 조회/사용할 수 없다고합니다.
(신규 OS image에 대한 출시 계획도 없는 상태라고함.)

향후 네이버 클라우드의 신규 OS를 포함한 신규 서비스/기능 및 개선 등은 NCP VPC 플랫폼을 우선적으로 검토하여 진행될 예정이라고합니다.

@powerkimhub
Copy link
Member

@innodreamer

  • 확인 캄사합니다.
  • 점차 축소시키다 Closing 하겠네요.
  • 공식 입장이 공유 되는 지 지켜볼 필요가 있겠습니다.

@@ -969,7 +969,7 @@ func ConvertVMStatusString(vmStatus string) (irs.VMStatus, error) {
//Caution!!
resultStatus = "Booting"
} else if strings.EqualFold(vmStatus, "setting up") {
resultStatus = "Creating"
resultStatus = "Setting_up"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@innodreamer


  • 현재 반환 상태 값 Setting_up은,
  • 다음 GetVMStatus()와 같이 Spider 서버로 반환하는 VM 상태로 직접 반환 되고 있습니다.

vmStatus, statusErr := ConvertVMStatusString(*result.ServerInstanceList[0].ServerInstanceStatusName)

@innodreamer
Copy link
Member Author

@powerkimhub 참고로, NCP Classic/VPC 모두 API는 계속 update 되고 있는거 같습니다.

@innodreamer

  • 확인 캄사합니다.
  • 점차 축소시키다 Closing 하겠네요.
  • 공식 입장이 공유 되는 지 지켜볼 필요가 있겠습니다.

@@ -1349,9 +1343,9 @@ func (vmHandler *NcpVpcVMHandler) WaitToGetInfo(vmIID irs.IID) (irs.VMStatus, er
cblogger.Infof("===> VM Status : [%s]", curStatus)

switch string(curStatus) {
case "Creating", "Booting":
case "Creating", "Booting", "Setting_up":
Copy link
Member Author

@innodreamer innodreamer Jul 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@powerkimhub
VM 생성시간 동안 waiting 할때 'Setting_up' 상태일때도 waiting 하도록 코드에 반영된 상태입니다.
그리고, disk detach 할때도 spider server에서 VM 상태를 check 할때 'Setting_up' 단계에서 오류가 발생하는지 여부도 테스트된 상태입니다.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@innodreamer



  • 가능한 시나리오라고 하면,

  • GetVMStatus() 뿐만 아니라, ConvertVMStatusString()를 활용하는 Driver API 중

    • 서버 쪽으로 제공되는 반환 값에 Setting_up 상태가 포함될 여지는 없는 지 함께 확인 부탁드립니다.
  • 아울러, ConvertVMStatusString()의 경우,

    • VMHandler.go 내부에서만 사용되오니, convertVMStatusString()로 수정해 두는 것이 좋을 듯합니다.

@innodreamer
Copy link
Member Author

@powerkimhub
NCP Classic VM Status중 Booting / Setting up을 Creating로 통일시켰습니다.
Disk detach 할때도 spider server에서 비정상적 오류 메시지가 발생하지 않는지 추가 테스트된 상태입니다.

@innodreamer
Copy link
Member Author

@powerkimhub
ConvertVMStatusString()와 같이 spider 공통 인터페이스의 method가 아닌 method/fuction들의 첫글자를 소문자로 변경한 코드는 별도의 PR로 올릴 예정입니다.

@innodreamer
Copy link
Member Author

@powerkimhub
NCP VPC 드라이버에서도 VM Status중 Booting / Setting up을 Creating로 통일시켰습니다.

@powerkimhub
Copy link
Member

@innodreamer

@powerkimhub NCP VPC 드라이버에서도 VM Status중 Booting / Setting up을 Creating로 통일시켰습니다.

  • Creating은 VM 생성 시점의 상태입니다.
  • NCP setting up 상태가 VM 생성 시점에도 발생할 수도 있겠지만(아닐 수도),
  • 현재 이슈는, Running 상태일 때, Disk mount/umount 시에 잠시 setting up 상태에 빠지는 상황입니다.
  • 이를, Creating 상태라고 한다면, 사용자 입장에서는 Running이던 VM이 갑자기 초기 생성 상태로 돌아 가는 걸로 혼란스러울 수 있을 것 같습니다.
  • setting up 상태는 현재, ConvertVMStatusString()에서만 사용되고 있으며,
  • 이 함수는 GetVMStatus()ListVMStatus() 두 군데서만 호출되고 있습니다.
  • GetVMStatus()ListVMStatus() 함수 내부에서 ConvertVMStatusString 반환 값이 setting up이라면,
  • waiting 후 vm 상태 정보가 setting up이 아닐 때까지 반복 처리를 고려해주시기 바랍니다.
  • 이때, timeout for waiting 시간은 setting up 상태가 혹시 VM 생성 시점에도 나타난다면,
  • VM 생성에 필요한 충분한 시간을 줘야 될 것 같습니다.

@innodreamer
Copy link
Member Author

@powerkimhub
위에 의견 주신 방향으로 처리하는것보다 spider 공통 인터페이스에 'Setting_up' 상태를 추가하고 저 상단에 commit된 코드와 같이 그 상태에 따라 처리하는게 더 나을거 같다고 판단됩니다. 'Setting_up' 상태 사용이 불필요한 CSP도 있겠지만 그 상태가 필요한 CSP가 있으니 추가해도 괜찮을거 같다고 생각됩니다.

사용자가 log를 확인해보면서 VM 생성 등 자원 제어 단계를 확인해볼 수 있는데 'Setting_up' 상태 일때는 'Running' 상태가 될때까지 내부적으로 계속 대기하고 있다면 사용자는 실제 자원 상태를 모르면서 왜 대기하고 있어야하는지 파악하지 못할 수 있습니다.

@powerkimhub
Copy link
Member

@innodreamer


[양해]

  • 공통 인터페이스를 특정 CSP 속성을 위해서 추가하기 힘든 부분 양해 부탁드립니다.
  • 그리되면, 공통 인터페이스가 엄청 복잡해지고 사용자가 CSP별로 선별해서 사용해야됩니다.
  • 대략 과반수 이상의 CSP가 제공하는 기능/속성을 공통 인터페이스로 반영하는 기준으로 추진하고자 합니다.
    • 이 기준이 깨진다면, 현재도 CSP별로 가지고 있는 기능/속성 들이 공통 인터페이스로 올라와야하는 것들이 엄청 많아지게 됩니다.

[추진]

  • 현 이슈는, 중재안으로 다음처럼 마무리 하도록 하겠습니다.
  • 일단, Get/List VMStatus는 현재처럼 setting_up상태를 올려 주시기 바랍니다.
    • disk mount/umount 관련 API 경우는 동기 콜이므로 mount/umount가 완료된 상태로 반환해주시기 바랍니다,
  • Get/List VMStatus로 올라오는 setting_up상태는 서버에서 감안하여 처리하도록 하겠습니다, .
  • 향후, setting_up 관련된 VM 상태가 대략 과반수 이상의 CSP에서의 제공이 필요하게 되면,
  • 그때, 공통 인터페이스로 추가 및 서버에서 반영처리하도록 하겠습니다.
  • ※ 대부분 국내 CSP들이 OpenStack 기반이어서, 향후 과반수 이상이 될수도 있는 점이 고려된 방안입니다.

@powerkimhub powerkimhub merged commit 2738ae4 into cloud-barista:master Jul 27, 2024
3 checks passed
@powerkimhub
Copy link
Member

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Spider server] Abnormal Error messages occur when Disk Detech with NCP VPC driver
2 participants