Samouczek: zarządzanie dyskami za pomocą programu Azure PowerShell
Maszyny wirtualne platformy Azure używają dysków do przechowywania systemów operacyjnych, aplikacji i danych. Podczas tworzenia maszyny wirtualnej ważne jest, aby wybrać odpowiedni rozmiar dysku i konfigurację oczekiwanego obciążenia.
W tym samouczku opisano wdrażanie dysków maszyn wirtualnych i zarządzanie nimi. Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie, dołączanie i inicjowanie dysku danych
- Weryfikowanie stanu dysku
- Inicjowanie dysku
- Rozszerzanie i uaktualnianie dysku
- Odłączanie i usuwanie dysku
Wymagania wstępne
Musisz mieć konto platformy Azure z aktywną subskrypcją. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Azure Cloud Shell
Na platforma Azure hostowane jest Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać w przeglądarce. Do pracy z usługami platformy Azure można używać programu Bash lub PowerShell w środowisku Cloud Shell. Aby uruchomić kod w tym artykule, możesz użyć wstępnie zainstalowanych poleceń usługi Cloud Shell bez konieczności instalowania niczego w środowisku lokalnym.
Aby uruchomić środowisko Azure Cloud Shell:
Opcja | Przykład/link |
---|---|
Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu lub polecenia. Wybranie pozycji Wypróbuj nie powoduje automatycznego skopiowania kodu lub polecenia do usługi Cloud Shell. | |
Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko Cloud Shell w przeglądarce. | |
Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal. |
Aby użyć usługi Azure Cloud Shell:
Uruchom usługę Cloud Shell.
Wybierz przycisk Kopiuj w bloku kodu (lub bloku poleceń), aby skopiować kod lub polecenie.
Wklej kod lub polecenie do sesji usługi Cloud Shell, wybierając Ctrl+Shift V w systemach Windows i Linux lub wybierając pozycję Cmd+Shift++V w systemie macOS.
Wybierz Enter, aby uruchomić kod lub polecenie.
Tworzenie maszyny wirtualnej
Ćwiczenia opisane w tym samouczku wymagają maszyny wirtualnej. Wykonaj kroki opisane w tej sekcji, aby je utworzyć.
Przed rozpoczęciem znajdź zmienną $azRegion
znajdującą się w pierwszym wierszu przykładowego kodu i zaktualizuj wartość w celu odzwierciedlenia żądanego regionu. Aby na przykład określić region Środkowe stany USA , użyj polecenia $azRegion = "Central US"
. Następnie użyj kodu, aby wdrożyć maszynę wirtualną w nowej grupie zasobów. Zostanie wyświetlony monit o podanie wartości nazwy użytkownika i hasła dla konta administratora lokalnego maszyny wirtualnej.
$azRegion = "[Your Region]"
$azResourceGroup = "myDemoResourceGroup"
$azVMName = "myDemoVM"
$azDataDiskName = "myDemoDataDisk"
New-AzVm `
-Location $azRegion `
-ResourceGroupName $azResourceGroup `
-Name $azVMName `
-Size "Standard_D2s_v3" `
-VirtualNetworkName "myDemoVnet" `
-SubnetName "myDemoSubnet" `
-SecurityGroupName "myDemoNetworkSecurityGroup" `
-PublicIpAddressName "myDemoPublicIpAddress"
Dane wyjściowe potwierdzają pomyślne utworzenie maszyny wirtualnej.
ResourceGroupName : myDemoResourceGroup
Id : /subscriptions/{GUID}/resourceGroups/myDemoResourceGroup/providers/Microsoft.Compute/virtualMachines/myDemoTestVM
VmId : [{GUID}]
Name : myDemoVM
Type : Microsoft.Compute/virtualMachines
Location : centralus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : mydemovm-abc123.Central US.cloudapp.azure.com
Maszyna wirtualna jest aprowizowana, a dwa dyski są tworzone i dołączane automatycznie.
- Dysk systemu operacyjnego, który hostuje system operacyjny maszyny wirtualnej.
- Dysk tymczasowy, który jest używany głównie na potrzeby operacji, takich jak tymczasowe przetwarzanie danych.
Dodawanie dysku danych
Zalecamy oddzielenie danych aplikacji i użytkowników od danych związanych z systemem operacyjnym, jeśli jest to możliwe. Jeśli musisz przechowywać dane użytkowników lub aplikacji na maszynie wirtualnej, zazwyczaj utworzysz i dołączysz dodatkowe dyski danych.
Wykonaj kroki opisane w tej sekcji, aby utworzyć, dołączyć i zainicjować dysk danych na maszynie wirtualnej.
Tworzenie dysku danych
Ta sekcja przeprowadzi Cię przez proces tworzenia dysku danych.
Przed utworzeniem dysku danych należy najpierw utworzyć obiekt dysku. Poniższy przykładowy kod używa polecenia cmdlet New-AzDiskConfig do skonfigurowania obiektu dysku.
$diskConfig = New-AzDiskConfig ` -Location $azRegion ` -CreateOption Empty ` -DiskSizeGB 128 ` -SkuName "Standard_LRS"
Po utworzeniu obiektu dysku użyj polecenia cmdlet New-AzDisk , aby aprowizować dysk danych.
$dataDisk = New-AzDisk ` -ResourceGroupName $azResourceGroup ` -DiskName $azDataDiskName ` -Disk $diskConfig
Aby sprawdzić, czy dysk został utworzony, możesz użyć polecenia cmdlet Get-AzDisk .
Get-AzDisk ` -ResourceGroupName $azResourceGroup ` -DiskName $azDataDiskName
W tym przykładzie dane wyjściowe potwierdzają, że dysk został utworzony. Wartości
DiskState
właściwości iManagedBy
potwierdzają, że dysk nie jest jeszcze dołączony.ResourceGroupName : myDemoResourceGroup ManagedBy : ManagedByExtended : {} OsType : DiskSizeGB : 128 DiskSizeBytes : 137438953472 ProvisioningState : Succeeded DiskIOPSReadWrite : 500 DiskMBpsReadWrite : 60 DiskState : Unattached Name : myDemoDataDisk
Dołączanie dysku danych
Aby maszyna wirtualna mogła uzyskać do niej dostęp, należy dołączyć dysk danych do maszyny wirtualnej. Wykonaj kroki opisane w tej sekcji, aby utworzyć odwołanie dla maszyny wirtualnej, połączyć dysk i zaktualizować konfigurację maszyny wirtualnej.
Pobierz maszynę wirtualną, do której dołączysz dysk danych. Poniższy przykładowy kod używa polecenia cmdlet Get-AzVM do utworzenia odwołania do maszyny wirtualnej.
$vm = Get-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
Następnie dołącz dysk danych do konfiguracji maszyny wirtualnej za pomocą polecenia cmdlet Add-AzVMDataDisk .
$vm = Add-AzVMDataDisk ` -VM $vm ` -Name $azDataDiskName ` -CreateOption Attach ` -ManagedDiskId $dataDisk.Id ` -Lun 1
Na koniec zaktualizuj konfigurację maszyny wirtualnej za pomocą polecenia cmdlet Update-AzVM .
Update-AzVM ` -ResourceGroupName $azResourceGroup ` -VM $vm
Po krótkiej wstrzymaniu dane wyjściowe potwierdzają pomyślne załącznik.
RequestId IsSuccessStatusCode StatusCode ReasonPhrase --------- ------------------- ---------- ------------ True OK OK
Inicjowanie dysku danych
Po dołączeniu dysku danych do maszyny wirtualnej system operacyjny musi być skonfigurowany do korzystania z dysku. Poniższa sekcja zawiera wskazówki dotyczące nawiązywania połączenia z zdalną maszyną wirtualną i konfigurowania pierwszego dodanego dysku.
Zaloguj się w witrynie Azure Portal.
Znajdź maszynę wirtualną, do której dołączono dysk danych. Utwórz połączenie protokołu RDP (Remote Desktop Protocol) i zaloguj się jako administrator lokalny.
Po nawiązaniu połączenia RDP z zdalną maszyną wirtualną wybierz menu Start systemu Windows. Wprowadź ciąg PowerShell w polu wyszukiwania i wybierz pozycję Windows PowerShell , aby otworzyć okno programu PowerShell.
W otwartym oknie programu PowerShell uruchom następujący skrypt.
Get-Disk | Where PartitionStyle -eq 'raw' | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "myDemoDataDisk" -Confirm:$false
Dane wyjściowe potwierdzają pomyślne zainicjowanie.
DriveLetter FileSystemLabel FileSystem DriveType HealthStatus OperationalStatus SizeRemaining Size ----------- --------------- ---------- --------- ------------ ----------------- ------------- ---- F myDemoDataDisk NTFS Fixed Healthy OK 127.89 GB 128 GB
Rozszerzanie dysku
Możesz rozszerzyć dyski platformy Azure, aby zapewnić dodatkową pojemność magazynu, gdy maszyna wirtualna jest niska na dostępnym miejscu na dysku.
Niektóre scenariusze wymagają przechowywania danych na dysku systemu operacyjnego. Na przykład może być wymagane obsługę starszych aplikacji, które instalują składniki na dysku systemu operacyjnego. Może być również konieczna migracja lokalnego komputera fizycznego lub maszyny wirtualnej z większym dyskiem systemu operacyjnego. W takich przypadkach może być konieczne rozszerzenie dysku systemu operacyjnego maszyny wirtualnej.
Zmniejszanie istniejącego dysku nie jest obsługiwane i może spowodować utratę danych.
Aktualizowanie rozmiaru dysku
Wykonaj poniższe kroki, aby zmienić rozmiar dysku systemu operacyjnego lub dysku danych.
Wybierz maszynę wirtualną zawierającą dysk, którego rozmiar zostanie zmieniony za
Get-AzVM
pomocą polecenia cmdlet .$vm = Get-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
Aby można było zmienić rozmiar dysku maszyny wirtualnej, należy zatrzymać maszynę wirtualną. Użyj polecenia cmdlet ,
Stop-AzVM
aby zatrzymać maszynę wirtualną. Zostanie wyświetlony monit o potwierdzenie.Ważne
Przed zainicjowaniem zamknięcia maszyny wirtualnej zawsze upewnij się, że nie ma ważnych zasobów ani danych, które mogą zostać utracone.
Stop-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
Po krótkiej przerwie dane wyjściowe potwierdzają, że maszyna została pomyślnie zatrzymana.
OperationId : abcd1234-ab12-cd34-123456abcdef Status : Succeeded StartTime : 9/13/2021 7:10:23 PM EndTime : 9/13/2021 7:11:12 PM Error :
Po zatrzymaniu maszyny wirtualnej uzyskaj odwołanie do dysku systemu operacyjnego lub danych dołączonego do maszyny wirtualnej za
Get-AzDisk
pomocą polecenia cmdlet .Poniższy przykład wybiera dysk systemu operacyjnego maszyny wirtualnej.
$disk= Get-AzDisk ` -ResourceGroupName $azResourceGroup ` -DiskName $vm.StorageProfile.OsDisk.Name
Poniższy przykład wybiera pierwszy dysk danych maszyny wirtualnej.
$disk= Get-AzDisk ` -ResourceGroupName $azResourceGroup ` -DiskName $vm.StorageProfile.DataDisks[0].Name
Teraz, gdy masz odwołanie do dysku, ustaw rozmiar dysku na 250 GiB.
Ważne
Nowy rozmiar powinien być większy niż istniejący rozmiar dysku. Maksymalna dozwolona wartość to 4095 GiB dla dysków systemu operacyjnego.
$disk.DiskSizeGB = 250
Następnie zaktualizuj obraz dysku za
Update-AzDisk
pomocą polecenia cmdlet .Update-AzDisk ` -ResourceGroupName $azResourceGroup ` -Disk $disk -DiskName $disk.Name
Obraz dysku jest aktualizowany, a dane wyjściowe potwierdzają nowy rozmiar dysku.
ResourceGroupName : myDemoResourceGroup ManagedBy : /subscriptions/{GUID}/resourceGroups/myDemoResourceGroup/providers/Microsoft.Compute/virtualMachines/myDemoVM Sku : Microsoft.Azure.Management.Compute.Models.DiskSku TimeCreated : 9/135/2021 6:41:10 PM CreationData : Microsoft.Azure.Management.Compute.Models.CreationData DiskSizeGB : 250 DiskSizeBytes : 268435456000 UniqueId : {GUID} ProvisioningState : Succeeded DiskIOPSReadWrite : 500 DiskMBpsReadWrite : 60 DiskState : Reserved Encryption : Microsoft.Azure.Management.Compute.Models.Encryption Id : /subscriptions/{GUID}/resourceGroups/myDemoResourceGroup/providers/Microsoft.Compute/disks/myDemoDataDisk Name : myDemoDataDisk Type : Microsoft.Compute/disks Location : centralus
Na koniec uruchom ponownie maszynę wirtualną za pomocą
Start-AzVM
polecenia cmdlet .Start-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
Po krótkiej przerwie dane wyjściowe potwierdzają, że maszyna została pomyślnie uruchomiona.
OperationId : abcd1234-ab12-cd34-123456abcdef Status : Succeeded StartTime : 9/13/2021 7:44:54 PM EndTime : 9/13/2021 7:45:15 PM Error :
Rozszerzanie woluminu dysku w systemie operacyjnym
Przed skorzystaniem z nowego rozmiaru dysku należy rozszerzyć wolumin w systemie operacyjnym. Wykonaj poniższe kroki, aby rozwinąć wolumin dysku i skorzystać z nowego rozmiaru dysku.
Zaloguj się w witrynie Azure Portal.
Znajdź maszynę wirtualną, do której dołączono dysk danych. Utwórz połączenie protokołu RDP (Remote Desktop Protocol) i zaloguj się. Jeśli nie masz już dostępu do konta administracyjnego, utwórz obiekt poświadczeń dla określonej nazwy użytkownika i hasła za pomocą polecenia cmdlet Get-Credential .
Po nawiązaniu połączenia RDP z zdalną maszyną wirtualną wybierz menu Start systemu Windows. Wprowadź ciąg PowerShell w polu wyszukiwania i wybierz pozycję Windows PowerShell , aby otworzyć okno programu PowerShell.
Otwórz program PowerShell i uruchom następujący skrypt. Zmień odpowiednio wartość zmiennej
-DriveLetter
. Aby na przykład zmienić rozmiar partycji na dysku F: , użyj polecenia$driveLetter = "F"
.$driveLetter = "[Drive Letter]" $size = (Get-PartitionSupportedSize -DriveLetter $driveLetter) Resize-Partition ` -DriveLetter $driveLetter ` -Size $size.SizeMax
Zminimalizuj okno protokołu RDP i wróć do usługi Azure Cloud Shell. Użyj polecenia cmdlet ,
Get-AzDisk
aby sprawdzić, czy rozmiar dysku został pomyślnie zmieniony.Get-AzDisk ` -ResourceGroupName $azResourceGroup | Out-Host -Paging
Uaktualnianie dysku
Istnieje kilka sposobów reagowania na zmiany obciążeń organizacji. Na przykład możesz zdecydować się na uaktualnienie standardowego dysku TWARDEgo do dysku SSD w warstwie Premium w celu obsługi zwiększonego zapotrzebowania.
Wykonaj kroki opisane w tej sekcji, aby uaktualnić dysk zarządzany ze standardu do warstwy Premium.
Wybierz maszynę wirtualną zawierającą dysk, który zostanie uaktualniony za
Get-AzVM
pomocą polecenia cmdlet .$vm = Get-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
Przed uaktualnieniem dysku maszyny wirtualnej należy zatrzymać maszynę wirtualną. Użyj polecenia cmdlet ,
Stop-AzVM
aby zatrzymać maszynę wirtualną. Zostanie wyświetlony monit o potwierdzenie.Ważne
Przed zainicjowaniem zamknięcia maszyny wirtualnej zawsze upewnij się, że nie ma ważnych zasobów ani danych, które mogą zostać utracone.
Stop-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
Po krótkiej przerwie dane wyjściowe potwierdzają, że maszyna została pomyślnie zatrzymana.
OperationId : abcd1234-ab12-cd34-123456abcdef Status : Succeeded StartTime : 9/13/2021 7:10:23 PM EndTime : 9/13/2021 7:11:12 PM Error :
Po zatrzymaniu maszyny wirtualnej uzyskaj odwołanie do dysku systemu operacyjnego lub danych dołączonego do maszyny wirtualnej za
Get-AzDisk
pomocą polecenia cmdlet .Poniższy przykład wybiera dysk systemu operacyjnego maszyny wirtualnej.
$disk= Get-AzDisk ` -ResourceGroupName $azResourceGroup ` -DiskName $vm.StorageProfile.OsDisk.Name
Poniższy przykład wybiera pierwszy dysk danych maszyny wirtualnej.
$disk= Get-AzDisk ` -ResourceGroupName $azResourceGroup ` -DiskName $vm.StorageProfile.DataDisks[0].Name
Teraz, gdy masz odwołanie do dysku, ustaw jednostkę SKU dysku na Premium_LRS.
$disk.Sku = [Microsoft.Azure.Management.Compute.Models.DiskSku]::new('Premium_LRS')
Następnie zaktualizuj obraz dysku za
Update-AzDisk
pomocą polecenia cmdlet .Update-AzDisk ` -ResourceGroupName $azResourceGroup ` -Disk $disk -DiskName $disk.Name
Obraz dysku jest aktualizowany. Użyj poniższego przykładowego kodu, aby sprawdzić, czy jednostka SKU dysku została uaktualniona.
$disk.Sku.Name
Dane wyjściowe potwierdzają nową jednostkę SKU dysku.
Premium_LRS
Na koniec uruchom ponownie maszynę wirtualną za pomocą
Start-AzVM
polecenia cmdlet .Start-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
Po krótkiej przerwie dane wyjściowe potwierdzają, że maszyna została pomyślnie uruchomiona.
OperationId : abcd1234-ab12-cd34-123456abcdef Status : Succeeded StartTime : 9/13/2021 7:44:54 PM EndTime : 9/13/2021 7:45:15 PM Error :
Odłączanie dysku danych
Dysk danych można odłączyć od maszyny wirtualnej, gdy chcesz dołączyć go do innej maszyny wirtualnej lub gdy nie jest już potrzebny. Domyślnie odłączone dyski nie są usuwane, aby zapobiec przypadkowej utracie danych. Odłączony dysk będzie nadal ponosić opłaty za magazyn do momentu jego usunięcia.
Najpierw wybierz maszynę wirtualną, do której jest dołączony dysk za
Get-AzVM
pomocą polecenia cmdlet .$vm = Get-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
Następnie odłącz dysk od maszyny wirtualnej za
Remove-AzVMDataDisk
pomocą polecenia cmdlet .Remove-AzVMDataDisk ` -VM $vm ` -Name $azDataDiskName
Zaktualizuj stan maszyny wirtualnej za
Update-AzVM
pomocą polecenia cmdlet , aby usunąć dysk danych.Update-AzVM ` -ResourceGroupName $azResourceGroup ` -VM $vm
Po krótkiej przerwie dane wyjściowe potwierdzają, że maszyna wirtualna została pomyślnie zaktualizowana.
RequestId IsSuccessStatusCode StatusCode ReasonPhrase --------- ------------------- ---------- ------------ True OK OK
Usuwanie dysku danych
Po usunięciu maszyny wirtualnej dyski danych dołączone do maszyny wirtualnej pozostaną aprowizowane i będą nadal naliczane opłaty do momentu ich usunięcia. To domyślne zachowanie pomaga zapobiec utracie danych spowodowanej niezamierzonym usunięciem.
Poniższy przykładowy skrypt programu PowerShell umożliwia usunięcie niedołączonego dysku. Pobieranie dysków jest ograniczone do grupy myDemoResourceGroup , ponieważ -ResourceGroupName
przełącznik jest używany z poleceniem Get-AzDisk
cmdlet .
# Get all disks in resource group $azResourceGroup
$allDisks = Get-AzDisk -ResourceGroupName $azResourceGroup
# Determine the number of disks in the collection
if($allDisks.Count -ne 0) {
Write-Host "Found $($allDisks.Count) disks."
# Iterate through the collection
foreach ($disk in $allDisks) {
# Use the disk's "ManagedBy" property to determine if it is unattached
if($disk.ManagedBy -eq $null) {
# Confirm that the disk can be deleted
Write-Host "Deleting unattached disk $($disk.Name)."
$confirm = Read-Host "Continue? (Y/N)"
if ($confirm.ToUpper() -ne 'Y') { break }
else {
# Delete the disk
$disk | Remove-AzDisk -Force
Write-Host "Unattached disk $($disk.Name) deleted."
}
}
}
}
Nieprzyłączony dysk danych jest usuwany, jak pokazano w danych wyjściowych.
Name : abcd1234-ab12-cd34-ef56-abcdef123456
StartTime : 9/13/2021 10:14:05 AM
EndTime : 9/13/2021 10:14:35 AM
Status : Succeeded
Error :
Czyszczenie zasobów
Gdy grupa zasobów, maszyna wirtualna i wszystkie powiązane zasoby nie będą już potrzebne, usuń je. Aby usunąć grupę zasobów utworzoną wcześniej w tym samouczku, możesz użyć następującego przykładowego skryptu programu PowerShell.
Uwaga
Zachowaj ostrożność podczas usuwania grupy zasobów. Aby uniknąć utraty ważnych danych, przed usunięciem zawsze upewnij się, że nie ma żadnych ważnych zasobów ani danych zawartych w grupie zasobów.
Remove-AzResourceGroup -Name $azResourceGroup
Zostanie wyświetlony monit o potwierdzenie. Po krótkiej przerwie odpowiedź potwierdza, True
że grupa myDemoResourceGroup została pomyślnie usunięta.
Confirm
Are you sure you want to remove resource group 'myDemoResourceGroup'
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
True
Następne kroki
W tym samouczku zawarto informacje na temat wykonywania następujących czynności:
- Tworzenie, dołączanie i inicjowanie dysku danych
- Weryfikowanie stanu dysku
- Inicjowanie dysku
- Rozszerzanie i uaktualnianie dysku
- Odłączanie i usuwanie dysku
Przejdź do następnego samouczka, aby dowiedzieć się, jak zautomatyzować konfigurację maszyny wirtualnej.