Öğretici: Azure PowerShell ile sanal makine ölçek kümesi içeren diskler oluşturma ve kullanma

Uygulama: ✔️ Linux VM'leri ✔️ Windows VM'ler ✔️ Tekdüz ölçek kümeleri

Sanal makine ölçek kümeleri, sanal makine örneğinin işletim sistemini, uygulamalarını ve verilerini depolamak için diskleri kullanır. Bir ölçek kümesi oluştururken ve yönetirken, beklenen iş yüküne uygun disk boyutu ve yapılandırmasını seçmek önemlidir. Bu öğretici, sanal makine disklerinin oluşturulmasını ve yönetilmesini kapsar. Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • İşletim sistemi diskleri ve geçici diskler
  • Veri diskleri
  • Standart ve Premium diskler
  • Disk performansı
  • Veri disklerini ekleme ve hazırlama

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Not

Bu makalede, Azure ile etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Azure Cloud Shell kullanma

Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı olan Azure Cloud Shell’i barındırır. Azure hizmetleriyle çalışmak için Cloud Shell ile Bash veya PowerShell kullanabilirsiniz. Bu makaledeki kodu, yerel ortamınıza herhangi bir şey yüklemeye gerek kalmadan çalıştırmak için Cloud Shell’in önceden yüklenmiş komutlarını kullanabilirsiniz.

Azure Cloud Shell’i başlatmak için:

Seçenek Örnek/Bağlantı
Kod bloğunun sağ üst köşesindeki Deneyin’i seçin. Deneyin seçeneği belirlendiğinde, kod otomatik olarak Cloud Shell’e kopyalanmaz. Azure Cloud Shell için Deneyin örneği
Cloud Shell’i tarayıcınızda açmak için https://shell.azure.com bölümüne gidin veya Cloud Shell’i Başlat düğmesini seçin. Cloud Shell’i yeni bir pencerede başlatma
Azure portalın sağ üst köşesindeki menü çubuğunda yer alan Cloud Shell düğmesini seçin. Azure portaldaki Cloud Shell düğmesi

Azure Cloud Shell’de bu makaledeki kodu çalıştırmak için:

  1. Cloud Shell’i başlatın.

  2. Kodu kopyalamak için kod bloğunda Kopyala düğmesini seçin.

  3. Windows ve Linux sisteminde Ctrl+Shift+V tuşlarını kullanarak veya macOS’de Cmd+Shift+V tuşlarını kullanarak kodu Cloud Shell oturumuna yapıştırın.

  4. Kodu çalıştırmak için Enter tuşuna basın.

Varsayılan Azure diskleri

Bir ölçek kümesi oluşturulduğunda veya ölçeklendirildiğinde, her bir sanal makine örneğine otomatik olarak iki disk eklenir.

İşletim sistemi diski - İşletim sistemi diskleri 2 TB’a kadar boyutlandırılabilir ve sanal makinenin işletim sistemini barındırır. İşletim sistemi diski varsayılan olarak /dev/sda etiketine sahiptir. İşletim sistemi diskinin yapılandırmasını önbelleğe alan disk, işletim sistemi performansı için iyileştirilir. Bu yapılandırma nedeniyle işletim sistemi diski uygulama veya veri barındırmamalıdır. Uygulamalar ve veriler için, bu makalede daha sonra ayrıntılı olarak açıklanan veri disklerini kullanın.

Geçici disk - Geçici diskler, sanal makine örneğiyle aynı Azure ana bilgisayarında bulunan bir katı hal sürücüsü kullanır. Bunlar yüksek performansa sahiptir ve geçici veri işleme gibi işlemler için kullanılabilir. Ancak sanal makine örneği yeni bir ana bilgisayara taşınırsa, geçici diskte depolanan tüm veriler kaldırılır. Geçici diskin boyutu, sanal makine örneği tarafından belirlenir. Geçici diskler /dev/sdb etiketine ve /mnt bağlama noktasına sahiptir.

Geçici disk boyutları

Tür Ortak boyutlar En yüksek geçici disk boyutu (GiB)
Genel amaçlı A, B ve D serisi 1600
İşlem için iyileştirilmiş F serisi 576
Bellek için iyileştirilmiş D, E, G ve M serisi 6144
Depolama için iyileştirilmiş L serisi 5630
GPU N serisi 1440
Yüksek performans A ve H serisi 2000

Azure veri diskleri

Uygulamalar yüklemeniz ve veri depolamanız gerekirse ek veri diskleri eklenebilir. Dayanıklı ve duyarlı veri depolamanın istenildiği her koşulda veri diskleri kullanılmalıdır. Her veri diski maksimum 4 TB kapasiteye sahiptir. Sanal makine örneğinin boyutu, kaç veri diskinin eklenebileceğini belirler. Her VM vCPU için iki veri diski eklenebilir.

VM başına en fazla veri diski

Tür Ortak boyutlar VM başına en fazla veri diski
Genel amaçlı A, B ve D serisi 64
İşlem için iyileştirilmiş F serisi 64
Bellek için iyileştirilmiş D, E, G ve M serisi 64
Depolama için iyileştirilmiş L serisi 64
GPU N serisi 64
Yüksek performans A ve H serisi 64

VM disk türleri

Azure iki disk türü sunar.

Standart disk

Standart Depolama, HDD’ler ile desteklenir ve uygun maliyetli depolama ve yüksek performans sağlar. Standart diskler, uygun maliyetli bir geliştirme ve iş yükü testi için idealdir.

Premium disk

Premium diskler, SSD tabanlı, yüksek performanslı ve düşük gecikme süreli disk ile desteklenir. Üretim iş yüklerini çalıştıran sanal makineler için bu diskler önerilir. Premium Depolama, DS serisi, DSv2 serisi, GS serisi ve FS-serisi VM'lerini destekler. Disk boyutu seçilirken boyutun değeri sonraki türe yuvarlanır. Örneğin disk boyutu 128 GB’den azsa disk türü P10’dur. Disk boyutu 129 GB ile 512 GB arasında ise boyut P20’dir. 512 GB’ın üstündeki diskler P30 boyutundadır.

Premium disk performansı

Premium depolama diski türü P4 P6 P10 P20 P30 P40 P50
Disk boyutu (yuvarlanmış değer) 32 GB 64 GB 128 GB 512 GB 1.024 GB (1 TB) 2.048 GB (2 TB) 4.095 GB (4 TB)
Disk başına en fazla IOPS 120 240 500 2.300 5.000 7.500 7.500
Disk başına aktarım hızı 25 MB/sn 50 MB/sn 100 MB/s 150 MB/s 200 MB/sn 250 MB/sn 250 MB/sn

Yukarıdaki tablo, disk başına maksimum IOPS tanımlamış olsa da, daha yüksek düzeyde performansa birden çok veri diskini bölümleyerek ulaşılabilir. Örneğin bir Standard_GS5 VM’si en fazla 80.000 IOPS’ye ulaşabilir. VM başına IOPS üst sınırı hakkında ayrıntılı bilgi için bkz. Windows VM boyutları.

Disk oluşturma ve ekleme

Bir ölçek kümesi oluştururken veya mevcut bir ölçek kümesi ile diskler oluşturabilir ve ekleyebilirsiniz.

API sürümünden 2019-07-01 sonra, storageProfile.osDisk.diskSizeGb özelliğiyle bir sanal makine ölçek kümesinde işletim sistemi diskin boyutunu ayarlayın. Sağlama sonrasında, tüm alanı kullanmak için diski genişletmeniz veya yeniden bölümleniz olabilir. işletim sisteminizin birimini linux veya Linux'ta genişletme hakkında Windows öğrenin.

Ölçek kümesi oluşturulurken diskler ekleme

New-AzVmss ile bir sanal makine ölçek kümesi oluşturun. İstendiğinde, sanal makine örnekleri için bir kullanıcı adı ve parola sağlayın. Her bir sanal makine örneklerine trafiği dağıtmak için bir yük dengeleyici de oluşturulur. Yük dengeleyici hem 80 numaralı TCP bağlantı noktasında trafiği dağıtmak hem de 3389 numaralı TCP bağlantı noktasında uzak masaüstü trafiğine ve 5985 numaralı TCP bağlantı noktasında PowerShell uzaktan iletişimine olanak tanımak için kurallar içerir.

-DataDiskSizeGb parametresiyle iki disk oluşturulur. İlk diskin boyutu 64 GB, ikinci diskin boyutuysa 128 GB’tır. İstendiğinde, ölçek kümesindeki sanal makine örnekleri için kendi istediğiniz yönetici kimlik bilgilerini sağlayın:

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -VMScaleSetName "myScaleSet" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -UpgradePolicyMode "Automatic" `
  -DataDiskSizeInGb 64,128

Tüm ölçek kümesi kaynaklarının ve sanal makine örneklerinin oluşturulup yapılandırılması birkaç dakika sürer.

Mevcut ölçek kümesine bir disk ekleme

Mevcut bir ölçek kümesine de diskler ekleyebilirsiniz. Add-AzVmssDataDiskile başka bir disk eklemek için önceki adımda oluşturulan ölçek kümesi kullanın. Aşağıdaki örnekte, mevcut bir ölçek kümesine ek bir 128 GB disk eklenmektedir:

# Get scale set object
$vmss = Get-AzVmss `
          -ResourceGroupName "myResourceGroup" `
          -VMScaleSetName "myScaleSet"

# Attach a 128 GB data disk to LUN 2
Add-AzVmssDataDisk `
  -VirtualMachineScaleSet $vmss `
  -CreateOption Empty `
  -Lun 2 `
  -DiskSizeGB 128

# Update the scale set to apply the change
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -VirtualMachineScaleSet $vmss

Veri disklerini hazırlama

Oluşturulan ve ölçek kümesi sanal makine örneklerinize eklenen diskler, ham disklerdir. Bunları veri ve uygulamalarınızla kullanabilmeniz için disklerin hazırlanması gerekir. Diskleri hazırlamak için bir bölüm oluşturun, bir dosya sistemi oluşturun ve bunları bağlayın.

Bir ölçek kümesindeki birden çok sanal makine örneğinde işlemi otomatikleştirmek için Azure Özel Betik Uzantısı’nı kullanabilirsiniz. Bu uzantı, örneğin, eklenen veri disklerini hazırlamak için her bir sanal makine örneğinde betikleri yerel olarak yürütebilir. Daha fazla bilgi için bkz. Özel Betik Uzantısı'na genel bakış.

Aşağıdaki örnek, tüm ham bağlı veri disklerini hazırlayacak Add-AzVmssExtension ile her bir sanal makine örneğinde yer alan bir GitHub örnek depolamadan bir betik yürütür:

# Get scale set object
$vmss = Get-AzVmss `
          -ResourceGroupName "myResourceGroup" `
          -VMScaleSetName "myScaleSet"

# Define the script for your Custom Script Extension to run
$publicSettings = @{
  "fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/prepare_vm_disks.ps1");
  "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File prepare_vm_disks.ps1"
}

# Use Custom Script Extension to prepare the attached data disks
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
  -Name "customScript" `
  -Publisher "Microsoft.Compute" `
  -Type "CustomScriptExtension" `
  -TypeHandlerVersion 1.8 `
  -Setting $publicSettings

# Update the scale set and apply the Custom Script Extension to the VM instances
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -VirtualMachineScaleSet $vmss

Disklerin düzgün şekilde hazırlandığını onaylamak için, sanal makine örneklerinden birinde RDP oturumu açın.

İlk olarak Get-AzLoadBalancer ile yük dengeleyici nesnesini elde edersiniz. Ardından, Get-AzLoadBalancerInboundNatRuleConfigile gelen NAT kurallarını görüntüden yükleyin. NAT kuralları, RDP’nin dinlediği her sanal makine örneği için FrontendPort değerini listeler. Son olarak Get-AzPublicIpAddressile yük dengeleyicinin genel IP adresini al:

# Get the load balancer object
$lb = Get-AzLoadBalancer -ResourceGroupName "myResourceGroup" -Name "myLoadBalancer"

# View the list of inbound NAT rules
Get-AzLoadBalancerInboundNatRuleConfig -LoadBalancer $lb | Select-Object Name,Protocol,FrontEndPort,BackEndPort

# View the public IP address of the load balancer
Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" -Name myPublicIPAddress | Select IpAddress

Sanal makinenize bağlanmak için, önceki komutlarda gösterildiği gibi, gerekli sanal makine örneği için kendi genel IP adresinizi ve bağlantı noktası numaranızı belirtin. İstendiğinde, ölçek kümesini oluştururken kullandığınız kimlik bilgilerini girin. Azure Cloud Shell kullanıyorsanız, bu adımı yerel PowerShell isteminden veya Uzak Masaüstü İstemcisinden gerçekleştirin. Aşağıdaki örnek sanal makine örneği 1'e bağlanır:

mstsc /v 52.168.121.216:50001

Sanal makine örneğinde yerel bir PowerShell oturumunu açın ve Get-Disk komutunu kullanarak bağlı disklere bakın:

Get-Disk

Aşağıdaki örnek çıktı, sanal makine örneğine üç veri diskinin eklendiğini gösterir.

Number  Friendly Name      HealthStatus  OperationalStatus  Total Size  Partition Style
------  -------------      ------------  -----------------  ----------  ---------------
0       Virtual HD         Healthy       Online                 127 GB  MBR
1       Virtual HD         Healthy       Online                  14 GB  MBR
2       Msft Virtual Disk  Healthy       Online                  64 GB  MBR
3       Msft Virtual Disk  Healthy       Online                 128 GB  MBR
4       Msft Virtual Disk  Healthy       Online                 128 GB  MBR

Aşağıdaki gibi, sanal makine örneğindeki dosya sistemlerini ve bağlama noktalarını inceleyin:

Get-Partition

Aşağıdaki örnek çıktı, üç veri diskine sürücü harfleri atandığını gösterir:

   DiskPath: \\?\scsi#disk&ven_msft&prod_virtual_disk#000001

PartitionNumber  DriveLetter  Offset   Size  Type
---------------  -----------  ------   ----  ----
1                F            1048576  64 GB  IFS

   DiskPath: \\?\scsi#disk&ven_msft&prod_virtual_disk#000002

PartitionNumber  DriveLetter  Offset   Size   Type
---------------  -----------  ------   ----   ----
1                G            1048576  128 GB  IFS

   DiskPath: \\?\scsi#disk&ven_msft&prod_virtual_disk#000003

PartitionNumber  DriveLetter  Offset   Size   Type
---------------  -----------  ------   ----   ----
1                H            1048576  128 GB  IFS

Ölçeğinizdeki her sanal makine örneğindeki diskler otomatik olarak aynı şekilde hazırlanır. Ölçek kümeniz yukarı ölçeklendirilirken, yeni sanal makine örneklerine gerekli veri diskleri eklenir. Diskleri otomatik olarak hazırlamak için Özel Betik Uzantısı da çalıştırılır.

Sanal makine örneğiyle uzak masaüstü bağlantısı oturumunu kapatın.

Eklenen diskleri listeleme

Bir ölçek kümesine bağlı diskler hakkında bilgileri görüntülemek için Get-AzVmss'i aşağıdaki gibi kullanın:

Get-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet"

VirtualMachineProfile.StorageProfile özelliğinin altında, DataDisks listesi gösterilir. Disk boyutu, depolama katmanı ve LUN (Mantıksal Birim Numarası) ile ilgili bilgiler gösterilir. Aşağıdaki örnek çıktıda, ölçek kümesine eklenen üç veri diski açıklanmaktadır:

DataDisks[0]                            :
  Lun                                   : 0
  Caching                               : None
  CreateOption                          : Empty
  DiskSizeGB                            : 64
  ManagedDisk                           :
    StorageAccountType                  : PremiumLRS
DataDisks[1]                            :
  Lun                                   : 1
  Caching                               : None
  CreateOption                          : Empty
  DiskSizeGB                            : 128
  ManagedDisk                           :
    StorageAccountType                  : PremiumLRS
DataDisks[2]                            :
  Lun                                   : 2
  Caching                               : None
  CreateOption                          : Empty
  DiskSizeGB                            : 128
  ManagedDisk                           :
    StorageAccountType                  : PremiumLRS

Disk ayırma

Belirli bir disk artık gerekli olmadığında o diski ölçek kümesinden ayırabilirsiniz. Disk, ölçek kümesindeki tüm sanal makine örneklerinden kaldırılır. Bir diski ölçek kümesinden ayırmak için Remove-AzVmssDataDisk kullanın ve diskin LUN'sini belirtin. ÖNCEKI bölümde Get-AzVmss çıkışında LUN'lar gösterilir. Aşağıdaki örnek, ölçek kümesinden LUN 3’ü ayırır:

# Get scale set object
$vmss = Get-AzVmss `
          -ResourceGroupName "myResourceGroup" `
          -VMScaleSetName "myScaleSet"

# Detach a disk from the scale set
Remove-AzVmssDataDisk `
  -VirtualMachineScaleSet $vmss `
  -Lun 2

# Update the scale set and detach the disk from the VM instances
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -VirtualMachineScaleSet $vmss

Kaynakları temizleme

Ölçek kümenizi ve disklerinizi kaldırmak için Remove-AzResourceGroupile kaynak grubunu ve tüm kaynaklarını silin. -Force parametresi kaynakları ek bir komut istemi olmadan silmek istediğinizi onaylar. -AsJob parametresi işlemin tamamlanmasını beklemeden denetimi komut istemine döndürür.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

Sonraki adımlar

Bu öğreticide, Azure PowerShell ile ölçek kümeleri içeren diskler oluşturma ve kullanma işleminin nasıl yapılacağını öğrendiniz:

  • İşletim sistemi diskleri ve geçici diskler
  • Veri diskleri
  • Standart ve Premium diskler
  • Disk performansı
  • Veri disklerini ekleme ve hazırlama

Ölçek kümesi sanal makine örnekleriniz için özel görüntünün nasıl kullanılacağını öğrenmek için sonraki öğreticiye ilerleyin.