Ein paar Befehle für die Analyse des Storage mit Powershell
So bekommt man ein Bild der vorhandenen Disks:get-disk
Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition
Style
------ ------------- ------------- ------------ ----------------- ---------- ----------
1 Samsung SS... S1DBNSAF878015M Healthy Online 232.89 GB GPT
0 Samsung SS... S21PNSAG155972R Healthy Online 232.89 GB GPT
6 VD1 {05bf1a4e-44d2-11e5-80d3-7824... Healthy Offline 1.82 TB GPT
5 VD2 {dcdf1498-41bd-11e5-80cf-7824... Healthy Offline 930 GB GPT
7 TOSHIBA Ex... 92N5P3KXT Healthy Online 931.51 GB MBR
Zwei Platten sind Offline, die Disks 2,3 und 4 "fehlen".Die Abfrage der Virtuellen Disk ergibt folgendes Bild:
get-virtualdisk
FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach Size
------------ --------------------- ----------------- ------------ -------------- ----
VD1 Mirror OK Healthy False 1.82 TB
VD2 Simple OK Healthy False 930 GB
Obwohl die eigentlichen Laufwerke im Storage Pool ausgeblendet werden, kann man sich die echten Laufwerke anzeigen lassen:Get-physicaldisk
FriendlyName SerialNumber CanPool OperationalStatus HealthStatus Usage Size
------------ ------------ ------- ----------------- ------------ ----- ----
Samsung SSD 840 EVO 250GB S1DBNSAF878015M True OK Healthy Auto-Select 232.89 GB
WDC WD2003FYPS-27Y2B0 WD-WCAVY7115101 False OK Healthy Auto-Select 1.82 TB
TOSHIBA External USB 3.0 92N5P3KXT False OK Healthy Auto-Select 931.51 GB
Samsung SSD 850 EVO 250GB S21PNSAG155972R False OK Healthy Auto-Select 232.89 GB
ST31000333AS 9TE24JDS False OK Healthy Auto-Select 931.5 GB
WDC WD2003FYPS-27Y2B0 WD-WCAVY5334150 False OK Healthy Auto-Select 1.82 TB
Get-PhysicalDisk kann aber mehr, mit Hilfe von Format-List habe ich mal eine Ausgabe der Zuordnung zu den Hardware Ports gebastelt
Get-PhysicalDisk| Select-Object -Property DeviceId,PhysicalLocation,BusType,MediaType,FriendlyName,SerialNumber| Sort-Object -Property DeviceId |Format-Table
DeviceId PhysicalLocation BusType MediaType FriendlyName SerialNumber
-------- ---------------- ------- --------- ------------ ------------
0 Integrated : Adapter 0 : Port 1 SATA SSD Samsung SSD 850 EVO 250GB S21PNSAG155972R
1 Integrated : Adapter 1 : Port 0 SATA SSD Samsung SSD 840 EVO 250GB S1DBNSAF878015M
2 Integrated : Adapter 1 : Port 1 SATA HDD ST31000333AS 9TE24JDS
3 Integrated : Adapter 1 : Port 4 SATA HDD WDC WD2003FYPS-27Y2B0 WD-WCAVY5334150
4 Integrated : Adapter 1 : Port 5 SATA HDD WDC WD2003FYPS-27Y2B0 WD-WCAVY7115101
6 Integrated : Adapter 0 : Port 0 USB Unspecified TOSHIBA External USB 3.0 92N5P3KXT
Den Zusammenhang zwischen Storage Pool, VirtualDisk und PhysicalDisk kann man auch anzeigen lassen. Dazu braucht man zunächst ein Object auf den Storage Pool
$stpool = (Get-StoragePool -FriendlyName "SP1")
Get-VirtualDisk -StoragePool $stpool
FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach Size
------------ --------------------- ----------------- ------------ -------------- ----
VD1 Mirror Degraded Warning False 1.82 TB
Get-PhysicalDisk -StoragePool $stpool
FriendlyName SerialNumber CanPool OperationalStatus HealthStatus Usage Size
------------ ------------ ------- ----------------- ------------ ----- ----
WDC WD2003FYPS-27Y2B0 WD-WCAVY7115101 False OK Healthy Retired 1.82 TB
WDC WD2003FYPS-27Y2B0 WD-WCAVY5334150 False OK Healthy Auto-Select 1.82 TB
Für die Information auf welcher Disk das Volume des Systemlaufwerkes ist, habe ich diese Befehlskette gefunden.Get-Disk (Get-Partition | ? isboot).DiskNumber
Storage Pool Disk wieder aktivieren
Ich möchte das VD1 wieder online ist, dies wird nämlich nicht automatisch getan, wenn der Storagepool an einen andere Maschine gehangen wird. Da VD1 eine (virtuelle) Disk ist, geht das mit dem set-disk CmdletSet-Disk -Number 6 -IsOffline $False
Es gab bei mir die Situation, dass eine Disk nach dem Import von einer Physical Disk in eine vhdx Datei mit dem Hyper-V Manager sowohl offline als auch readonly war. Auch readonly lässt sich mit Set-Disk beheben.Set-Disk -Number 5 -IsReadonly $False
Storage Pool Disk Fehler behandeln
Es gibt hier eine detaillierte Beschreibung wie man Fehler im Storage Pool behandeln kann. Hinbekommen habe ich das so aber noch nicht.Versucht man in einem StoragePool, der 2 HDD enthält und darin eine Mirror VirtualDisk - eine HDD geordnet zu entfernen und diese danach durch eine Andere zu ersetzen, funktioniert das praktisch nicht. Obwohl man eine Platte als Retired markiert, lässt sie sich nicht entfernen. Man muss erst einen neue HDD zum StoragePool hinzufügen. Aber selbst das ist mir nicht richtig gelungen.
Dies habe ich versucht:
Set-PhysicalDisk -FriendlyName "WDC WD2003FYPS-27Y2B0" -SerialNumber WD-WCAVY7115101 -Usage Retired
Repair-VirtualDisk -FriendlyName "VD1"
# Zwei Varianten um das Objekt der richtigen PhysicalDisk zu bekommen
$PDToRemove = Get-PhysicalDisk | Where-Object { $_.Usage -eq 'Retired'}
$PDToRemove = Get-PhysicalDisk -FriendlyName "WDC WD2003FYPS-27Y2B0" -SerialNumber WD-WCAVY7115101
Remove-PhysicalDisk -PhysicalDisks $PDToRemove -StoragePoolFriendlyName "SP1"
Aber diese Aktion endet mit einem Fehler:StorageWMI 48011,Remove-PhysicalDisk
Storage Pool entfernen
Erkenntnis: Storage Pool sieht gut aus, ist mir aber so undurchsichtig! Nach der kompletten Sicherung der Daten, habe ich einfach alles entfernt:Set-Disk -Number 6 -IsOffline $true
Remove-VirtualDisk -FriendlyName "VD1"
Remove-StoragePool -FriendlyName "SP1"
Jetzt tauchen die Platten 3 + 4 wieder normal in der Ansicht auf (get-disk) und können normal verwendet werden. Um sie völlig leer zu machen verwendet man Clear-DiskClear-Disk -Number 3
Clear-Disk -Number 4
Get-Disk |Where-Object PartitionStyle –Eq "RAW" |Initialize-Disk
Um eine neue Partition anzulegen, einen bestimmten Laufwerksbuchstaben zu vergeben und es gleich zu formatieren, kann man so vorgehen.
New-Partition -DiskNumber 3 -UseMaximumSize -DriveLetter S |Format-Volume
Keine Kommentare:
Kommentar veröffentlichen