본문 바로가기

Compute

How Importing OVF Works

안녕하세요. 오늘은 vCenter를 통해서 OVF 템플릿을 Import 할 때, 어떻게 동작하는지에 대해서 알아보도록 하겠습니다.

향후에 관련된 작업 중 문제가 생겼을 때, Troubleshooting 하기 위한 기반 지식으로 활용하시면 좋을 듯 합니다.

 

OVF를 vCenter UI를 통해서 Import 할 때 Workflow는 다음과 같습니다.

1) UI에서 OVF를 배포

2) Local File 선택 or URL 선택

3) VM 이름과 VM 폴더 선택

4) Compute Resource 선택

5) Content Library가 OVF 유효성 검사

6) OVF 유효성 검사가 완료된 후에, 스토리지와 네트워크 선택

 

위 과정과 관련된 내용을 로그 수준에서 살펴보기 위해서 /var/log/vmware/content-library 폴더 하위에 위치한 cls.log를 살펴보도록 하겠습니다.

 

/var/log/vmware/content-library/cls.log

 

1. OVF Import Session 시작

2023-02-02T23:45:21.743Z | DEBUG    | ldjqtis5-25324-auto-jjh-h5:70011921 | tomcat-http-19            | LocalProvider                  | call to invoke() for service 'com.vmware.vcenter.ovf.import_session', operation 'preview'
2023-02-02T23:45:21.743Z | DEBUG    | ldjqtis5-25324-auto-jjh-h5:70011921 | tomcat-http-19            | OvfImportServiceImpl           | Starting activity to preview import of ovf descriptor...
2023-02-02T23:45:21.743Z | DEBUG    | ldjqtis5-25324-auto-jjh-h5:70011921 | tomcat-http-19            | SimpleActivityExecutor         | submitting activity PreviewOvfDescriptorActivity (priority=NORMAL, phase=phaseBegin()
2023-02-02T23:45:21.745Z | DEBUG    | ldjqtis5-25324-auto-jjh-h5:70011921-8c | cls-simple-activity-18    | PreviewOvfDescriptorActivity   | Parsing ovf descriptor: <?xml version="1.0" encoding="UTF-8"?>

 

2. 유효성 검사 시작

2023-02-02T23:46:14.892Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-19    | ImportSessionActivity          | Start OVF import session with OVF_OPERATION_ID ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b, OVF_SESSION_ID 68ab4d28-86dd-4ff5-9ad5-a9666eb9c2ea
2023-02-02T23:46:14.893Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-19    | ImportSessionActivity          | Deploy target: Rp[urn:vmomi:ResourcePool:resgroup-9:58cc6af7-d90b-4cec-a70e-5869cf9763b3,host=host-10:58cc6af7-d90b-4cec-a70e-5869cf9763b3,folder=group-v4:58cc6af7-d90b-4cec-a70e-5869cf9763b3], create spec: CreateSpec (com.vmware.vcenter.ovf.import_session.create_spec) => {
    locale = en_US,
    importFlags = [],
    sourceType = PUSH_SOURCE,
    pullSource = <null>,
    sslCertificateThumbprint = <null>,
    pushSourceContentType = OVF_SOURCE,
    pushSourceOvfOption = MANIFEST,
    contentLibraryItem = <null>
}

 

3. 확장자 OVF와 MF(manifest) 파일에 해당하는 ITEM 생성

2023-02-02T23:46:15.054Z | DEBUG    | 8dffa008-d828-4853-9588-85ee567c8558 | tomcat-http-17            | PrivilegeProviderImpl          | Operation privileges for com.vmware.transfer.transfer_service.create_session: [TransferService.Manage]
2023-02-02T23:46:15.061Z | DEBUG    | 8dffa008-d828-4853-9588-85ee567c8558 | tomcat-http-17            | LocalProvider                  | call to invoke() for service 'com.vmware.transfer.transfer_service', operation 'create_session'


2023-02-02T23:46:15.122Z | INFO     | 8dffa008-d828-4853-9588-85ee567c8558 | tomcat-http-17            | TransferSessionImpl            | Created new transfer session e99350d8-840c-4dd3-9913-c6f71bd71f18

2023-02-02T23:46:15.122Z | DEBUG    | 8dffa008-d828-4853-9588-85ee567c8558 | tomcat-http-17            | TransferSessionImpl            | Session e99350d8-840c-4dd3-9913-c6f71bd71f18: Adding item descriptor.ovf, details TransferItem (com.vmware.transfer.transfer_item) => {
    name = descriptor.ovf,
    type = OVF,

2023-02-02T23:46:15.128Z | DEBUG    | 8dffa008-d828-4853-9588-85ee567c8558 | tomcat-http-17            | TransferSessionImpl            | Session e99350d8-840c-4dd3-9913-c6f71bd71f18: Adding item descriptor.mf, details TransferItem (com.vmware.transfer.transfer_item) => {
    name = descriptor.mf,
    type = FILE,

 

4. 생성한 ITEM(OVF와 MF)을 Transfer

2023-02-02T23:46:15.295Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-19    | ImportSessionActivity          | Session is in state IMPORT_OVF_TRANSFER

2023-02-02T23:46:15.771Z | DEBUG    | ldjqtis5-21112-auto-gai-h5:70010637 | tomcat-http-29            | HttpTransferServlet            | Request from 127.0.0.1: PUT /cls/data/e99350d8-840c-4dd3-9913-c6f71bd71f18/descriptor.ovf

2023-02-02T23:46:15.771Z | INFO     | ldjqtis5-21112-auto-gai-h5:70010637 | tomcat-http-29            | HttpServerEndpointImpl         | Session e99350d8-840c-4dd3-9913-c6f71bd71f18: Validated PUT request for /cls/data/e99350d8-840c-4dd3-9913-c6f71bd71f18/descriptor.ovf, (0 / ? bytes transferred)

2023-02-02T23:46:15.772Z | DEBUG    | ldjqtis5-21068-auto-g9a-h5:70010622 | tomcat-http-28            | HttpTransferServlet            | Request from 127.0.0.1: PUT /cls/data/e99350d8-840c-4dd3-9913-c6f71bd71f18/descriptor.mf
2023-02-02T23:46:15.772Z | INFO     | ldjqtis5-21068-auto-g9a-h5:70010622 | tomcat-http-28            | HttpServerEndpointImpl         | Session e99350d8-840c-4dd3-9913-c6f71bd71f18: Validated PUT request for /cls/data/e99350d8-840c-4dd3-9913-c6f71bd71f18/descriptor.mf, (0 / ? bytes transferred)

2023-02-02T23:46:25.320Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | ImportSessionActivity          | Transfer state activity detected for transfer session urn:transfer:e99350d8-840c-4dd3-9913-c6f71bd71f18, renewing import session 68ab4d28-86dd-4ff5-9ad5-a9666eb9c2ea...

2023-02-02T23:46:25.324Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | ImportSessionActivity          | transferStates = [com.vmware.transfer.TransferItemState => {
    target_endpoint_states => <unset>,
    checksum_algorithm => <unset>,
    name => descriptor.mf,
    checksum => <unset>,
    size_in_bytes => 161,
    transfer_uri => https://vcsa01.contoso.com:443/cls/data/e99350d8-840c-4dd3-9913-c6f71bd71f18/descriptor.mf,
    source => com.vmware.transfer.TransferEndpointState => {
        bytes_transferred => 161,
        storage_policy_id => <unset>,
        status_code => 0,
        checksum_algorithm => <unset>,
        name => <unset>,
        size_in_bytes => 161,
        checksum => <unset>,
        error => <unset>,
        uri => <unset>,
        content => <null>,
        storage_used => 161,
        status => DONE,
    },
    type => FILE,
    transfer_uri_map => [],
    targets => [com.vmware.transfer.TransferEndpointState => {
        bytes_transferred => 161,
        storage_policy_id => <unset>,
        status_code => 0,
        checksum_algorithm => <unset>,
        name => <unset>,
        size_in_bytes => 161,
        checksum => <unset>,
        error => <unset>,
        uri => text:/,
        content => <skipped>,
        storage_used => 161,
        status => DONE,
    }],
    status => DONE,
    source_endpoint_states => <unset>,
},
com.vmware.transfer.TransferItemState => {
    target_endpoint_states => <unset>,
    checksum_algorithm => <unset>,
    name => descriptor.ovf,
    checksum => <unset>,
    size_in_bytes => 41438,
    transfer_uri => https://vcsa01.contoso.com:443/cls/data/e99350d8-840c-4dd3-9913-c6f71bd71f18/descriptor.ovf,
    source => com.vmware.transfer.TransferEndpointState => {
        bytes_transferred => 41438,
        storage_policy_id => <unset>,
        status_code => 0,
        checksum_algorithm => <unset>,
        name => <unset>,
        size_in_bytes => 41438,
        checksum => <unset>,
        error => <unset>,
        uri => <unset>,
        content => <null>,
        storage_used => 41438,
        status => DONE,
    },
    type => OVF,
    transfer_uri_map => [],
    targets => [com.vmware.transfer.TransferEndpointState => {
        bytes_transferred => 41438,
        storage_policy_id => <unset>,
        status_code => 0,
        checksum_algorithm => <unset>,
        name => <unset>,
        size_in_bytes => 41438,
        checksum => <unset>,
        error => <unset>,
        uri => text:/,
        content => <skipped>,
        storage_used => 41438,
        status => DONE,
    }],
    status => DONE,
    source_endpoint_states => <unset>,
},
]

 

5. OVF Descriptor가 준비가 완료된 후, Content Library는 OVF를 파싱한 후 유효성 검사 진행

2023-02-02T23:46:25.324Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | ImportSessionActivity          | OVF descriptor available for session 68ab4d28-86dd-4ff5-9ad5-a9666eb9c2e

2023-02-02T23:46:25.325Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | ImportSessionActivity          | Parsing OVF descriptor: <?xml version="1.0" encoding="UTF-8"?>
<!--Generated by VMware ovftool 4.4.1 (build-16812187), UTC time: 2021-11-17T15:51:53.386239Z-->
<Envelope vmw:buildId="build-16812187" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <References>
    <File ovf:href="ESRS-VE.x86_64-352.10.08-disk1.vmdk" ovf:id="file1" ovf:size="1472479744"/>
  </References>
  <DiskSection>
    <Info>Virtual disk information</Info>
    <Disk ovf:capacity="64" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="2889875456"/>
  </DiskSection>
2023-02-02T23:46:25.327Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | ImportSessionActivity          | Parsed OVF descriptor; envelope: {http://schemas.dmtf.org/ovf/envelope/1}Envelope = 

2023-02-02T23:46:25.327Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | TransferServiceUtil            | File content is available for transfer item descriptor.mf
2023-02-02T23:46:25.327Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | ImportSessionActivity          | Parsing manifest: SHA1(ESRS-VE.x86_64-352.10.08-disk1.vmdk)= b15f85ed6f898b6a15b944b019a2b4175c5e194d
SHA1(ESRS-VE.x86_64-352.10.08.ovf)= 50b5c51a68f6fff4524223a61f52b3db1dd5285f

 

6. OVF 유효성 검사 결과 출력

2023-02-02T23:46:27.270Z | DEBUG    | ldjqtis5-25369-auto-jkq-h5:70011951-b3 | cls-simple-activity-2     | VdcsFutureResultCallback       | setting the future with value OvfValidationResult (com.vmware.vcenter.ovf.import_session.ovf_validation_result) => {
    parameters = [NameAndProductParams (com.vmware.vcenter.ovf.name_and_product_params) => {
    name = ESRS-VE.x86_64-352.10.08,
    annotation = ,
    virtualApp = false,
    productName = ,
    vendor = ,
    version = ,
    fullVersion = ,
    vendorUrl = ,
    productUrl = ,
    type = NameAndProductParams
}, PropertyParams (com.vmware.vcenter.ovf.property_params) => {
    properties = [Property (com.vmware.vcenter.ovf.property) => {
    classId = vami,
    id = dns1,
    instanceId = ESRS,
    category = Please provide all the required information in this wizard for the successful firstboot and provisioning

 

7. 템플릿 Import 과정에서 사용자의 추가 매개변수 입력

# Customization 작성 시 IP Address, DNS Server, Hostname 등을 입력

2023-02-02T23:48:20.994Z | DEBUG    | ldjqtis5-25410-auto-jlw-h5:70011976-be | cls-simple-activity-12    | TryInstantiateImportActivity   | tryInstantiate input params: com.vmware.vcenter.ovf.datastore_mapping_params => {storage_profiles_enabled=true, available_disk_provisioning_types=[thick, thin, eagerZeroedThick], target_profile=, available_storage_profiles=[com.vmware.vcenter.ovf.storage_profile_target => {name=<unset>, id=defaultId}, com.vmware.vcenter.ovf.storage_profile_target => {name=VM Encryption Policy, id=4d5f673c-536f-11e6-beb8-9e71128cae77}], available_datastores=[com.vmware.vcenter.ovf.datastore_target => {accessible=true, storage_profiles=[4d5f673c-536f-11e6-beb8-9e71128cae77], name=w2-tse-d31_1, id=datastore-13:58cc6af7-d90b-4cec-a70e-5869cf9763b3, inaccessible_reasons=[]}, com.vmware.vcenter.ovf.datastore_target => {accessible=false, storage_profiles=[4d5f673c-536f-11e6-beb8-9e71128cae77], name=ISOs, id=datastore-11:58cc6af7-d90b-4cec-a70e-5869cf9763b3, inaccessible_reasons=[READ_ONLY]}, com.vmware.vcenter.ovf.datastore_target => {accessible=true, storage_profiles=[4d5f673c-536f-11e6-beb8-9e71128cae77], name=63d783b551bc4b6a3327e347_jhaewon_iscsi_0, id=datastore-14:58cc6af7-d90b-4cec-a70e-5869cf9763b3, inaccessible_reasons=[]}, com.vmware.vcenter.ovf.datastore_target => {accessible=true, storage_profiles=[4d5f673c-536f-11e6-beb8-9e71128cae77], name=626b589d07beed4b3c20d8d2_ksadathulla_iscsi_0, id=datastore-12:58cc6af7-d90b-4cec-a70e-5869cf9763b3, inaccessible_reasons=[]}], disk_groups=[], target_datastore=datastore-14:58cc6af7-d90b-4cec-a70e-5869cf9763b3, type=DatastoreMappingParams, target_provisioning_type=thin}
com.vmware.vcenter.ovf.eula_params => {all_EULA_accepted=true, eulas=[SUSE(R) Linux Enterprise Server 12 SP3
...
...
...
2023-02-02T23:48:22.271Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-20    | ImportSessionActivity          | Monitoring session: 68ab4d28-86dd-4ff5-9ad5-a9666eb9c2ea
2023-02-02T23:48:22.271Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-20    | ImportSessionActivity          | Session is in state IMPORT_SELECTING_OVF_PARAMS
2023-02-02T23:48:22.271Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-20    | ImportSessionActivity          | Done monitor session phase, rerunning in 1,000 ms
 
 
Networking Properties,
    uiOptional = false,
    label = Add Domain Name Server1,
    description = Please Enter Valid Domain Name Server1,
    type = ip,
    value = 192.168.1.2
}, Property (com.vmware.vcenter.ovf.property) => {
    classId = vami,
    id = dns2,
    instanceId = ESRS,
    category = Please provide all the required information in this wizard for the successful firstboot and provisioning
...
...
...

 

8. OVF descriptor와 이전 단계에서 사용자가 선택한 매개변수를 이용하여 Import Spec 생성 

2023-02-02T23:48:23.576Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-5     | ImportSessionActivity          | Getting config specs for import...
2023-02-02T23:48:23.576Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-5     | ImportSessionActivity          | Got placement specs for import
2023-02-02T23:48:23.576Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-5     | ImportSessionActivity          | Import spec: (vim.vm.VmImportSpec) {
   dynamicType = null,
   dynamicProperty = null,
   entityConfig = (vim.vApp.EntityConfigInfo) {
      dynamicType = null,
      dynamicProperty = null,
      key = null,
      tag = vm-1,
      startOrder = null,
      startDelay = null,
      waitingForGuest = null,
      startAction = null,
      stopDelay = null,
      stopAction = null,
      destroyWithParent = null
   },
   instantiationOst = null,
   configSpec = (vim.vm.ConfigSpec) {
      dynamicType = null,
      dynamicProperty = null,
      changeVersion = null,
      name = ESRS-VE.x86_64-352.10.08,
      version = vmx-08,
      createDate = null,
      uuid = null,
      instanceUuid = null,
      npivNodeWorldWideName = null,
      npivPortWorldWideName = null,
      npivWorldWideNameType = null,
      npivDesiredNodeWwns = null,
      npivDesiredPortWwns = null,
      npivTemporaryDisabled = null,
      npivOnNonRdmDisks = null,
      npivWorldWideNameOp = null,
      locationId = null,
      guestId = otherGuest,
      alternateGuestName = null,
      annotation = ,
      files = (vim.vm.FileInfo) {
         dynamicType = null,
         dynamicProperty = null,
         vmPathName = [63d783b551bc4b6a3327e347_jhaewon_iscsi_0],
         snapshotDirectory = null,
         suspendDirectory = null,
         logDirectory = null,
         ftMetadataDirectory = null
      },
...
...
...

 

9. ImportVApp 호출

2023-02-02T23:48:23.591Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-5     | ImportSessionActivity          | Get import target morefs...
2023-02-02T23:48:23.592Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-5     | ImportSessionActivity          | Got import targets: RP = Stub: moRef = (ManagedObjectReference: type = ResourcePool, value = resgroup-9, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3), binding = https://vcsa01.contoso.com:443/sdk/vimService, host = ManagedObjectReference: type = HostSystem, value = host-10, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3, folder = ManagedObjectReference: type = Folder, value = group-v4, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3
2023-02-02T23:48:23.592Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-5     | ImportSessionActivity          | Requesting import of import spec...
2023-02-02T23:48:23.592Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-5     | ImportSessionActivity          | Requested import of import spec
2023-02-02T23:48:23.674Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-5     | VcTaskService                  | Setting progress for task 336a9473-77ed-45b6-a049-5d463303e131 (ManagedObjectReference: type = Task, value = task-404, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3) from 0 to 0
2023-02-02T23:48:23.675Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-5     | ImportSessionActivity          | Get result of importVApp call...
2023-02-02T23:48:23.675Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-5     | ImportSessionActivity          | Got result of importVApp call, lease ManagedObjectReference: type = HttpNfcLease, value = session[526519a0-e509-db36-3584-26d3ee13f989]52fce132-f608-6ddd-524f-8c6d71583eb8, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3
2023-02-02T23:48:23.675Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-5     | ImportSessionActivity          | Requesting state of lease ManagedObjectReference: type = HttpNfcLease, value = session[526519a0-e509-db36-3584-26d3ee13f989]52fce132-f608-6ddd-524f-8c6d71583eb8, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3...
2023-02-02T23:48:23.675Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-5     | ImportSessionActivity          | Requested state of lease ManagedObjectReference: type = HttpNfcLease, value = session[526519a0-e509-db36-3584-26d3ee13f989]52fce132-f608-6ddd-524f-8c6d71583eb8, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3

 

10. Content Library에서 ImportVApp 호출 시, VPXD 로그에서도 Task가 수행되는 것을 확인 가능

2023-02-02T23:48:23.605Z info vpxd[16693] [Originator@6876 sub=vpxLro opID=2dafb271] [VpxLRO] -- BEGIN lro-392073 -- resgroup-9 -- vim.ResourcePool.importVApp -- 526519a0-e509-db36-3584-26d3ee13f989(5267778d-f7d9-a80a-ac38-4615e865ee99)
2023-02-02T23:48:23.611Z info vpxd[16693] [Originator@6876 sub=vpxLro opID=2dafb271] [VpxLRO] -- FINISH lro-392073
 
2023-02-02T23:48:23.613Z info vpxd[16729] [Originator@6876 sub=vpxLro opID=2dafb271-01] [VpxLRO] -- BEGIN task-405 -- Resources -- ResourcePool.ImportVAppLRO --
 
2023-02-02T23:48:23.614Z info vpxd[16729] [Originator@6876 sub=vpxLro opID=2dafb271-01-01] [VpxLRO] -- BEGIN lro-392075 --  -- ResourcePool.ImportVAppLRO --
2023-02-02T23:48:24.191Z info vpxd[16729] [Originator@6876 sub=vpxLro opID=2dafb271-01-01] [VpxLRO] -- FINISH lro-392075

2023-02-02T23:50:41.307Z info vpxd[16729] [Originator@6876 sub=vpxLro opID=2dafb271-01] [VpxLRO] -- FINISH task-405

 

11. HTTP NFC Lease 정보 생성

2023-02-02T23:48:33.905Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | ImportSessionActivity          | Get lease info...
2023-02-02T23:48:33.905Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | ImportSessionActivity          | Got lease info: (vim.Info) {
   dynamicType = null,
   dynamicProperty = null,
   lease = ManagedObjectReference: type = HttpNfcLease, value = session[526519a0-e509-db36-3584-26d3ee13f989]52fce132-f608-6ddd-524f-8c6d71583eb8, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3,
   entity = ManagedObjectReference: type = VirtualMachine, value = vm-49, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3,
   deviceUrl = (vim.DeviceUrl) [
      (vim.DeviceUrl) {
         dynamicType = null,
         dynamicProperty = null,
         key = /vm-49/VirtualLsiLogicController0:0,
         importKey = /ESRS-VE.x86_64-352.10.08/VirtualLsiLogicController0:0,
         url = https://192.168.1.11/nfc/52bc7f86-bdd5-8798-3790-02b5b17b2da5/disk-0.vmdk,
         sslThumbprint = 5E:9C:D2:35:FB:03:48:93:A1:F0:06:D5:0B:1F:40:C2:F9:1C:C8:B8,
         disk = true,
         targetId = disk-0.vmdk,
         datastoreKey = https://192.168.1.11/nfc/52bc7f86-bdd5-8798-3790-02b5b17b2da5/,
         fileSize = null
      },
      (vim.DeviceUrl) {
         dynamicType = null,
         dynamicProperty = null,
         key = /vm-49/nvram,
         importKey = /ESRS-VE.x86_64-352.10.08/nvram,
         url = https://192.168.1.11/nfc/52bc7f86-bdd5-8798-3790-02b5b17b2da5/disk-1.nvram,
         sslThumbprint = 5E:9C:D2:35:FB:03:48:93:A1:F0:06:D5:0B:1F:40:C2:F9:1C:C8:B8,
         disk = false,
         targetId = null,
         datastoreKey = null,
         fileSize = null
      }
   ],
   totalDiskCapacityInKB = 67108864,
   leaseTimeout = 300,
   hostMap = (vim.DatastoreLeaseInfo) [
      (vim.DatastoreLeaseInfo) {
         dynamicType = null,
         dynamicProperty = null,
         datastoreKey = https://192.168.1.11/nfc/52bc7f86-bdd5-8798-3790-02b5b17b2da5/,
         hosts = (vim.HostInfo) [
            (vim.HostInfo) {
               dynamicType = null,
               dynamicProperty = null,
               url = https://192.168.1.11/nfc/52bc7f86-bdd5-8798-3790-02b5b17b2da5/,
               sslThumbprint = 5E:9C:D2:35:FB:03:48:93:A1:F0:06:D5:0B:1F:40:C2:F9:1C:C8:B8
            }
         ]
      }
   ]
}

 

12. Transfer ITEM 생성

2023-02-02T23:48:34.005Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | TransferServiceUtil            | Creating transfer items for 2 device URLs
2023-02-02T23:48:34.005Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | TransferServiceUtil            | Ignore NVRAM device URL that does not exist in the OVF template for import key /ESRS-VE.x86_64-352.10.08/nvram
2023-02-02T23:48:34.005Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | ImportSessionActivity          | Requesting addition of items with new transfer session
2023-02-02T23:48:34.005Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-1     | ImportSessionActivity          | Configuring transfer of [(vim.DeviceUrl) {
   dynamicType = null,
   dynamicProperty = null,
   key = /vm-49/VirtualLsiLogicController0:0,
   importKey = /ESRS-VE.x86_64-352.10.08/VirtualLsiLogicController0:0,
   url = https://192.168.1.11/nfc/52bc7f86-bdd5-8798-3790-02b5b17b2da5/disk-0.vmdk,
   sslThumbprint = 5E:9C:D2:35:FB:03:48:93:A1:F0:06:D5:0B:1F:40:C2:F9:1C:C8:B8,
   disk = true,
   targetId = disk-0.vmdk,
   datastoreKey = https://192.168.1.11/nfc/52bc7f86-bdd5-8798-3790-02b5b17b2da5/,
   fileSize = null
}, (vim.DeviceUrl) {
   dynamicType = null,
   dynamicProperty = null,
   key = /vm-49/nvram,
   importKey = /ESRS-VE.x86_64-352.10.08/nvram,
   url = https://192.168.1.11/nfc/52bc7f86-bdd5-8798-3790-02b5b17b2da5/disk-1.nvram,
   sslThumbprint = 5E:9C:D2:35:FB:03:48:93:A1:F0:06:D5:0B:1F:40:C2:F9:1C:C8:B8,
   disk = false,
   targetId = null,
   datastoreKey = null,
   fileSize = null
}]

 

13. Transfer Session 생성

2023-02-02T23:48:34.433Z | DEBUG    | ldjqtis5-25410-auto-jm0-h5:70011976-6f | vdcs-vapi-config--executor-2585 | ImportSessionActivity          | Use pre-retrieved transfer states: [TransferItemState (com.vmware.transfer.transfer_item_state) => {
    name = ESRS-VE.x86_64-352.10.08-disk1.vmdk,
    type = DISK,
    status = WAITING,
    checksum = <null>,
    checksumAlgorithm = SHA-1,
    source = TransferEndpointState (com.vmware.transfer.transfer_endpoint_state) => {
        uri = <null>,
        name = <null>,
        sizeInBytes = <null>,
        bytesTransferred = 0,
        storageUsed = <null>,
        status = WAITING,
        statusCode = 0,
        error = <null>,
        content = <null>,
        checksumAlgorithm = <null>,
        checksum = <null>,
        storagePolicyId = <null>
    },
    sourceEndpointStates = <null>,
    transferUri = https://vcsa01.contoso.com:443/cls/data/1c1387c1-4685-48d5-88c4-8bc21fe2648c/ESRS-VE.x86_64-352.10.08-disk1.vmdk,
    transferUriMap = {},
    sizeInBytes = 1472479744,
    targets = [TransferEndpointState (com.vmware.transfer.transfer_endpoint_state) => {
    uri = https://192.168.1.11/nfc/52bc7f86-bdd5-8798-3790-02b5b17b2da5/disk-0.vmdk,
    name = <null>,
    sizeInBytes = <null>,
    bytesTransferred = 0,
    storageUsed = <null>,
    status = WAITING,
    statusCode = 0,
    error = <null>,
    content = <null>,
    checksumAlgorithm = <null>,
    checksum = <null>,
    storagePolicyId = <null>
}],
    targetEndpointStates = <null>
}]
 
 
2023-02-02T23:48:34.433Z | DEBUG    | ldjqtis5-25410-auto-jm0-h5:70011976-6f | vdcs-vapi-config--executor-2585 | ImportSessionActivity          | Transfer is in queuing for execution for transfer session urn:transfer:1c1387c1-4685-48d5-88c4-8bc21fe2648c, renewing import session 68ab4d28-86dd-4ff5-9ad5-a9666eb9c2ea...
2023-02-02T23:48:34.433Z | DEBUG    | ldjqtis5-25410-auto-jm0-h5:70011976-6f | vdcs-vapi-config--executor-2585 | ImportSessionActivity          | transferStates = [com.vmware.transfer.TransferItemState => {
    target_endpoint_states => <unset>,
    checksum_algorithm => SHA-1,
    name => ESRS-VE.x86_64-352.10.08-disk1.vmdk,
    checksum => <unset>,
    size_in_bytes => 1472479744,
    transfer_uri => https://vcsa01.contoso.com:443/cls/data/1c1387c1-4685-48d5-88c4-8bc21fe2648c/ESRS-VE.x86_64-352.10.08-disk1.vmdk,
    source => com.vmware.transfer.TransferEndpointState => {
        bytes_transferred => 0,
        storage_policy_id => <unset>,
        status_code => 0,
        checksum_algorithm => <unset>,
        name => <unset>,
        size_in_bytes => <unset>,
        checksum => <unset>,
        error => <unset>,
        uri => <unset>,
        content => <null>,
        storage_used => <unset>,
        status => WAITING,
    },
    type => DISK,
    transfer_uri_map => [],
    targets => [com.vmware.transfer.TransferEndpointState => {
        bytes_transferred => 0,
        storage_policy_id => <unset>,
        status_code => 0,
        checksum_algorithm => <unset>,
        name => <unset>,
        size_in_bytes => <unset>,
        checksum => <unset>,
        error => <unset>,
        uri => https://192.168.1.11/nfc/52bc7f86-bdd5-8798-3790-02b5b17b2da5/disk-0.vmdk,
        content => <null>,
        storage_used => <unset>,
        status => WAITING,
    }],
    status => WAITING,
    source_endpoint_states => <unset>,
},
]
2023-02-02T23:50:41.205Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-3     | ImportSessionActivity          | Session is in state IMPORT_FILE_TRANSFER

2023-02-02T23:50:41.205Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-3     | ImportSessionActivity          | Import progress: 100 (Transfer progress: 100 Copy disk progress: -1)
2023-02-02T23:50:41.205Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-3     | ImportSessionActivity          | Changing state from IMPORT_FILE_TRANSFER to IMPORT_INSTANTIATING

 

14. HTTP NFC Lease 완료

2023-02-02T23:50:41.211Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-3     | ImportSessionActivity          | Requesting completion of lease ManagedObjectReference: type = HttpNfcLease, value = session[526519a0-e509-db36-3584-26d3ee13f989]52fce132-f608-6ddd-524f-8c6d71583eb8, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3...
2023-02-02T23:50:41.212Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-3     | ImportSessionActivity          | Requested completion of lease ManagedObjectReference: type = HttpNfcLease, value = session[526519a0-e509-db36-3584-26d3ee13f989]52fce132-f608-6ddd-524f-8c6d71583eb8, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3
 
2023-02-02T23:50:41.409Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-21    | ImportSessionActivity          | Check lease completion result...
2023-02-02T23:50:41.409Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-21    | ImportSessionActivity          | Lease completion succeeded
2023-02-02T23:50:41.409Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-21    | ImportSessionActivity          | Requesting finalization of vm vm-49:58cc6af7-d90b-4cec-a70e-5869cf9763b3, ovf-id vm-1
2023-02-02T23:50:41.409Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-21    | VcTaskService                  | Setting progress for task 336a9473-77ed-45b6-a049-5d463303e131 (ManagedObjectReference: type = Task, value = task-404, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3) from 97 to 100
2023-02-02T23:50:41.412Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-21    | VcTaskService                  | Setting progress for task 336a9473-77ed-45b6-a049-5d463303e131 (ManagedObjectReference: type = Task, value = task-404, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3) from 97 to 100
2023-02-02T23:50:41.422Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-21    | VcTaskService                  | Setting progress for task 336a9473-77ed-45b6-a049-5d463303e131 (ManagedObjectReference: type = Task, value = task-404, serverGuid = 58cc6af7-d90b-4cec-a70e-5869cf9763b3) from 97 to 100
2023-02-02T23:50:41.424Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-21    | ImportSessionActivity          | Changing state from IMPORT_INSTANTIATING to IMPORT_COMPLETED
2023-02-02T23:50:41.432Z | DEBUG    | ldjqtis5-25362-auto-jkj-h5:70011948-b0-1b | cls-simple-activity-21    | ImportSessionActivity          | Session is in state IMPORT_COMPLETED

 

다소 긴 과정이었지만, 사용자가 vCenter를 통해서 OVF 템플릿을 Import 할 때 어떤한 작업들이 수행하는지 알아보았습니다. 

이를 이용하여, OVF 템플릿 Import 시 오류가 발생하면 몇 번째 과정에서 문제가 발생했는지를 파악할 수 있다면 보다 올바른 문제 원인에 접근이 가능할 것입니다.