Aracılığıyla paylaş


Sanal makineleri bir laboratuvardan diğerine aktarma

Bu makalede Azure DevTest Labs için içeri aktarma özelliği ve sanal makinelerin (VM) kaynak laboratuvardan hedef laboratuvara nasıl içeri aktarıldığı açıklanır. İçeri aktarma işlemi şu anda PowerShell ve REST API için desteklenmektedir.

VM'leri bir laboratuvardan diğerine aktarmak isteyebileceğiniz bazı senaryolar şunlardır:

  • Kullanıcı yeni bir takıma taşınır ve geliştirici masaüstünü yeni ekibin laboratuvarına götürmek ister.
  • Bir ekip abonelik düzeyi kotasına ulaşır ve birden çok Azure aboneliği kullanarak üyeliği desteklemek ister.
  • Bir şirket Azure ExpressRoute'a veya başka bir ağ topolojisine geçiyor ve ekip vm'lerini yeni altyapıya taşımak istiyor.

Önkoşullar

  • Kaynak laboratuvarda sanal makinenin (VM) sahibi olmanız gerekir.
  • Hedef laboratuvarın sahibi olmanız gerekir.
  • Kaynak laboratuvardaki VM'ler talep edilebilir durumda olamaz. Daha fazla bilgi için bkz . Azure DevTest Labs'de talep edilebilir VM'ler oluşturma ve yönetme.
  • VM'leri abonelikler ve bölgeler arasında içeri aktarmak için tüm aboneliklerin aynı Microsoft Entra kiracısıyla ilişkilendirilmesi gerekir.

İçeri aktarma işlemini keşfetme

İçeri aktarma işlemi bir kopyalama işlemidir, taşıma işlemi değildir. DevTest Labs, vm'leri kaynak laboratuvardan hedef laboratuvara aktarır.

İçeri aktarma işlemi vm'ler için diskler, zamanlamalar ve ağ ayarları dahil olmak üzere tüm bağımlılıkları hedef laboratuvara kopyalar. İşlem sırasında, hedef laboratuvardaki VM'ler için yeni adlar belirtebilirsiniz.

İçeri aktarma işleminin tamamlanması biraz zaman alabilir. Toplam süre kısmen aşağıdaki faktörlere bağlıdır:

  • Kaynak makineye bağlı disklerin sayısı ve boyutu
  • Kaynak ve hedef bölgeler arasındaki uzaklık

İçeri aktarma işlemi tamamlandığında, işlem kaynak VM'yi kapatır ve hedef laboratuvarda yeni VM'yi başlatır.

PowerShell betiği kullanma

PowerShell'i kullanarak kaynak laboratuvarınızdaki vm'lerden birini veya tümünü hedef laboratuvarınıza aktarabilirsiniz.

PowerShell betiğini kullanmak için şu adımları izleyin:

  1. GitHub'daki Azure DevTest Labs deposundan ImportVirtualMachines.ps1 betiğini indirin ve çalıştırın.

    Betik, tek bir VM'yi veya belirtilen bir kaynak laboratuvardaki tüm VM'leri belirlenen hedef laboratuvara içeri aktarmanıza olanak tanır.

  2. Betikle kullanmak için aşağıdaki bilgileri toplayın:

    • SourceDevTestLabName: Kaynak laboratuvar adı.
    • SourceSubscriptionId: Kaynak laboratuvar abonelik kimliği.
    • SourceVirtualMachineName: Hedef laboratuvara aktarılacağınız kaynak laboratuvardaki VM'nin adı.
    • DestinationDevTestLabName: Hedef laboratuvar adı.
    • DestinationSubscriptionId: Hedef laboratuvar abonelik kimliği.
    • DestinationVirtualMachineName: (İsteğe bağlı) Hedef laboratuvara aktarıldıktan sonra VM'nin adı.

    Not

    Betiği çalıştırdığınızda, hedef laboratuvarda VM (DestinationVirtualMachineName) için yeni bir ad belirtmezseniz, içeri aktarma işlemi kaynak laboratuvardaki VM'nin adını kullanır.

  3. Betiği çalıştırın ve değerleri bilgilerinizle değiştirin <placeholder> :

    ./ImportVirtualMachines.ps1 -SourceSubscriptionId "<ID of the subscription that contains the source lab>"`
                             -SourceDevTestLabName "<Name of the source lab>"`
                             -SourceVirtualMachineName "<Name of the VM to import from the source lab>" `
                             -DestinationSubscriptionId "<ID of the subscription that contains the destination lab>"`
                             -DestinationDevTestLabName "<Name of the destination lab>"`
                             -DestinationVirtualMachineName "<Optional: Specify a new name for the imported VM in the destination lab>"
    

    Not

    Betiği çalıştırdığınızda, bir kaynak VM adı ()SourceVirtualMachineName belirtmezseniz, işlem kaynak laboratuvardaki tüm VM'leri hedef laboratuvara aktarır. Bu durumda işlem, hedef laboratuvardaki VM'leri adlandırmak için kaynak laboratuvardaki VM'lerin adlarını kullanır.

REST API’sini kullanma

İçeri aktarma işlemini tamamlamak için REST API'yi kullanmak kolaydır. İşlem hedef laboratuvar kaynağında çalışır.

Bu yaklaşım, PowerShell komutunun işlemine benzer. Kaynak ve hedef kaynakları tanımlamak için bilgileri sağlarsınız. API çağrısı için her iki laboratuvar için de kaynak grubunu belirtmeniz gerekir.

REST API'yi çağırarak içeri aktarma işlemini tamamlamak için şu adımları izleyin:

  1. API ile kullanmak için aşağıdaki bilgileri toplayın:

    • <SourceLab>: Kaynak laboratuvar adı.
    • <SourceSubscriptionID>: Kaynak laboratuvar abonelik kimliği.
    • <SourceResourceGroup>: Kaynak laboratuvar için kaynak grubu.
    • <NameofVMTobeImported>: Hedef laboratuvara aktarılacağınız kaynak laboratuvardaki VM'nin adı.
    • <DestinationLab>: Hedef laboratuvar adı.
    • <DestinationSubscriptionID>: Hedef laboratuvar abonelik kimliği.
    • <DestinationResourceGroup>: Hedef laboratuvar için kaynak grubu.
    • <NewNameForImportedVM>: (İsteğe bağlı) Hedef laboratuvara aktarıldıktan sonra VM'nin adı.
  2. HTTP REST API'sini aşağıdaki gibi çağırın <placeholder> ve değerleri bilgilerinizle değiştirin:

    POST https://management.azure.com/subscriptions/<DestinationSubscriptionID>/resourceGroups/<DestinationResourceGroup>/providers/Microsoft.DevTestLab/labs/<DestinationLab>/ImportVirtualMachine?api-version=2017-04-26-preview
    {
       sourceVirtualMachineResourceId: "/subscriptions/<SourceSubscriptionID>/resourcegroups/<SourceResourceGroup>/providers/microsoft.devtestlab/labs/<SourceLab>/virtualmachines/<NameofVMTobeImported>",
       destinationVirtualMachineName: "<NewNameForImportedVM>"
    }