Azure Driver Testing to reduce the elapsed time of terminating VM - cloud-barista/cb-spider GitHub Wiki

  • [Test Goals] Reduce elapsed time of Terminating VM (reported by Tumblebug)

  • [Target Spider] https://github.com/cloud-barista/cb-spider/releases/tag/v0.3.8 (TerminateVM 일뢀 κ°œμ„ )

  • [Spider Env.] MetaInfo-storetype: NUTSDB, PLUGIN_SW=OFF

  • [Target CSP] Azure, Terminating VM

  • [Test Env.]

    • Region: azure-northeurope
    • Image: Canonical:UbuntuServer:18.04-LTS:latest
    • Spec: Standard_B1ls
  • [Test Tools]

  • [Tester/Date] powerkimhub / April.30. 2021.

  • [μ‹œν—˜ κ²°κ³Ό]

    • κ°œμ„ ν•œ CB-Spider v0.3.8 λŒ€μƒμœΌλ‘œ μ‹œν—˜

    • AdminWeb μ‚¬μš©ν•œ manual test

      • VPC 생성 -> SG 생성 -> Key 생성 -> VM 생성 -> VM μ‚­μ œ -> Key μ‚­μ œ -> SG μ‚­μ œ -> VPC μ‚­μ œ
      • VM μ™Έ 평균 생성 및 μ‚­μ œ μ‹œκ°„: VPC=15s 정도, Security Group:15s 정도
      • VM 생성 및 μ‚­μ œ μ†Œμš” μ‹œκ°„
        - 1회: VM 생성: 1m7s, VM μ‚­μ œ: 1m6s
        - 2회: VM 생성: 1m4s, VM μ‚­μ œ: 2m10s (DeleteVMDisk ν•¨μˆ˜κ°€ 늦게 처리됨)
        - 3회: VM 생성: 1m8s, VM μ‚­μ œ: 1m7s
        
    • Script μ΄μš©ν•œ full test(쀑간에 sleep 없이 μ‹€ν–‰, 3회 반볡 μ‹œν—˜)

      • 1회 μ‹œν—˜ ν•­λͺ©
        ##   1. VPC: Create -> List -> Get
        ##   2. SecurityGroup: Create -> List -> Get
        ##   3. KeyPair: Create -> List -> Get
        ##   4. VM: StartVM -> List -> Get -> ListStatus -> GetStatus -> Suspend -> Resume -> Reboot
        ## ---------------------------------
        ##   4. VM: Terminate(Delete)
        ##   3. KeyPair: Delete
        ##   2. SecurityGroup: Delete
        ##   1. VPC: Delete
        
      • μ‹œν—˜ κ²°κ³Ό
        ##   1회: 5m13.625s
        ##   2회: 4m20.142s
        ##   3회: 4m14.364s
        
  • [μ‹œν—˜ κ³ μ°°]

    • TerminateVM() λ‚΄λΆ€ 처리 쀑, μ‚­μ œ μˆœμ„œμ˜ 의쑴 μ—†λŠ” μžμ›λ“€μ€ Thread μ΄μš©ν•˜μ—¬ λ™μ‹œμ— future.WaitForCompletionRef() μ‹€ν–‰ν•˜λŠ” 것을 κ³ λ € ν•„μš”
    • Tumblebug μ‹œν—˜ νŒ¨ν„΄ 확인 ν›„ Terminate VM μ§€μ—° 상황 μž¬μ—° ν•„μš”
    • TerminateVM() λ‚΄λΆ€μ—μ„œ vmdisk μ‚­μ œ μ‹œ μ§€μ—° κ°€λŠ₯성이 μžˆμ–΄ λ³΄μž„. μΆ”κ°€ μ‹œν—˜ ν•„μš”(VM 생성 => VM 내뢀에 데이타 μ €μž₯ => VM μ‚­μ œ μ‹œν—˜