Die Datenträgerleistung ist möglicherweise langsamer als erwartet, wenn Sie mehrere Datenträger verwenden

In diesem Artikel wird eine Lösung für ein Problem beschrieben, bei dem die Datenträgerleistung möglicherweise langsamer als erwartet ist. Dieses Problem kann auftreten, wenn Sie ein hardware- oder softwarebasiertes RAID verwenden.

Gilt für: Windows Server 2012 R2, Windows 10 – alle Editionen
Ursprüngliche KB-Nummer: 929491

Symptome

Die Datenträgerleistung ist möglicherweise langsamer als erwartet, wenn Sie mehrere Datenträger in Windows verwenden. Beispielsweise kann sich die Leistung verlangsamen, wenn Sie ein hardwarebasiertes redundantes Array unabhängiger Datenträger (RAID) oder ein softwarebasiertes RAID verwenden.

Ursache

Dieses Problem kann auftreten, wenn der Startspeicherort der Partition nicht an einer Stripeeinheitsgrenze in der Datenträgerpartition ausgerichtet ist, die auf dem RAID erstellt wird.

Ein Volumecluster kann über eine Stripeeinheitsgrenze anstatt neben der Stripeeinheitsgrenze erstellt werden. Dies liegt daran, dass Windows einen Faktor von 512 Bytes verwendet, um Volumecluster zu erstellen. Dieses Verhalten verursacht eine falsch ausgerichtete Partition. Auf zwei Datenträgergruppen wird zugegriffen, wenn ein einzelner Volumecluster auf einer falsch ausgerichteten Partition aktualisiert wird.

Windows erstellt Partitionen, die auf einer vordefinierten Anzahl von Sektoren basieren. Der Startort für eine Datenträgerpartition in Windows ist entweder der 32. oder der 64. Sektor, abhängig von den Informationen, die dem Betriebssystem vom Massenspeichercontroller bereitgestellt werden.

Hinweis

Datenträgerpartitionen reservieren immer den ersten Sektor der Partition für Code und für Partitionsinformationen, z. B. die Anzahl der Sektoren und den Startsektor. Der tatsächliche Datenteil der Partition beginnt mit dem zweiten Sektor der Partition.

Lösung

Verwenden Sie zum Beheben dieses Problems das Tool Diskpart.exe, um die Datenträgerpartition zu erstellen und einen Startoffset von 2.048 Sektoren (1 Megabyte) anzugeben. Ein Anfangsoffset von 2.048 Sektoren deckt die meisten Stripe-Einheitengrößenszenarien ab.

Hinweis

Mit Windows Server 2003 Service Pack 1 wurde die Möglichkeit für Diskpart eingeführt, die Partitionsausrichtung anzupassen. Wenn Sie keinen Zugriff auf eine aktualisierte Version von Diskpart haben, ist diskpar (beachten Sie, dass es kein endgültiges "t" für den Namen für dieses Hilfsprogramm gibt) verfügbar.

Um zu überprüfen, ob eine vorhandene Partition ausgerichtet ist, führen Sie die im Abschnitt "Weitere Informationen" beschriebene Berechnung aus.

Führen Sie die folgenden Schritte aus, um eine Datenträgerpartition auf einem RAID mit einem Offset von 2.048 Sektoren auszurichten:

  1. Geben Sie an einer Eingabeaufforderung diskpart ein, und drücken Sie dann die EINGABETASTE.

  2. Geben Sie an der DISKPART-Eingabeaufforderung die folgenden Befehle ein, und drücken Sie dann die EINGABETASTE:

    list disk
    

    Sie erhalten eine Ausgabe, die der folgenden ähnelt:

    Disk ### Status Size Free Dyn Gpt  
    -------- ---------- ------- ------- --- ---  
    Disk 0 Online 37 GB 8033 KB  
    Disk 1 Online 17 GB 8033 KB
    Disk 2 Online 17 GB 0 B  
    Disk 3 Online 17 GB 148 MB *  
    Disk 4 Online 17 GB 8 MB *  
    Disk 5 Online 17 GB 8 MB *  
    Disk 6 Online 17 GB 8 MB *  
    Disk 7 Online 17 GB 8 MB *  
    Disk 8 Online 17 GB 435 KB *  
    Disk 9 Online 17 GB 8 MB *  
    Disk 10 Online 17 GB 8033 KB
    

    Der list disk Befehl enthält zusammenfassende Informationen zu jedem Datenträger, der auf dem Computer installiert ist. Der Datenträger mit dem Sternchen (*) hat den aktuellen Fokus. Es werden nur Festplatten und Wechseldatenträger aufgeführt. Feste Datenträger umfassen integrierte Geräteelektronik (IDE) und SCSI-Datenträger. Zu den Wechseldatenträgern gehören 1394- und USB-Datenträger.

    select disk
    

    Verwenden Sie den Befehl datenträger auswählen, um den Fokus auf den Datenträger mit der angegebenen Datenträgernummer festzulegen. Wenn Sie keine Datenträgernummer angeben, zeigt der Befehl den aktuellen Datenträger an, der sich im Fokus befindet.

    create partition primary align=1024
    

    Hinweis

    • Wenn Sie diesen Befehl eingeben, erhalten Sie möglicherweise eine Meldung, die der folgenden ähnelt:DiskPart hat die angegebene Partition erfolgreich erstellt.
    • Der align= number-Parameter wird in der Regel zusammen mit HARDWARE-RAID-LUNs (Logical Unit Numbers) verwendet, um die Leistung zu verbessern, wenn die logischen Einheiten nicht zylinderbündig ausgerichtet sind. Dieser Parameter richtet eine primäre Partition aus, die nicht am Anfang eines Datenträgers ausgerichtet ist, und rundet dann den Offset auf die nächstgelegene Ausrichtungsgrenze ab.
    • number ist die Anzahl von Kilobytes (KB) vom Anfang des Datenträgers bis zur nächstgelegenen Ausrichtungsgrenze. Der Befehl schlägt fehl, wenn sich die primäre Partition nicht am Anfang des Datenträgers befindet. Wenn Sie den Befehl zusammen mit der Option offset = number verwenden, befindet sich der Offset innerhalb des ersten verwendbaren Zylinders auf dem Datenträger.
    exit
    
  3. Klicken Sie auf Start, klicken Sie auf Ausführen, geben Sie diskmgmt.msc ein, und klicken Sie dann auf OK.

  4. Suchen Sie im MMC-Snap-In (Datenträgerverwaltung der Microsoft Management Console) nach der neu erstellten Partition, und weisen Sie ihr dann einen Laufwerkbuchstaben zu.

  5. Verwenden Sie das NTFS-Dateisystem, um die neue Partition zu formatieren, und weisen Sie dann eine Clustergröße zu.

    Hinweis

    Dieses Beispielverfahren gilt für eine einzelne Partition pro RAID-Gruppe.

Weitere Informationen

Um zu überprüfen, ob eine vorhandene Partition ausgerichtet ist, dividieren Sie die Größe der Stripeeinheit durch den Startoffset der RAID-Datenträgergruppe. Verwenden Sie die folgende Syntax:
((Partitionsoffset) * (Größe des Datenträgersektors)) / (Stripe unit size)

Hinweis

Die Größe des Datenträgersektors und die Stripeeinheit müssen in Bytes oder in Kilobyte (KB) angegeben werden.

Beispiel für Ausrichtungsberechnungen in Bytes für eine Stripeeinheitengröße von 256 KB:
(63 * 512) / 262144 = 0,123046875
(64 * 512) / 262144 = 0,125
(128 * 512) / 262144 = 0,25
(256 * 512) / 262144 = 0,5
(512 * 512) / 262144 = 1

Beispiel für Ausrichtungsberechnungen in Kilobytes für eine Stripe-Einheitengröße von 256 KB:
(63 *,5) / 256 = 0,123046875
(64 *5) / 256 = 0,125
(128 *,5) / 256 = 0,25
(256 *,5) / 256 = 0,5
(512 *,5) / 256 = 1

Diese Beispiele zeigen, dass die Partition für eine Stripeeinheit von 256 KB nicht richtig ausgerichtet ist, bis die Partition mithilfe eines Offsets von 512 Sektoren (512 Bytes pro Sektor) erstellt wird.

Hinweis

Die Anzahl der Datenträger in der Arraygruppe wirkt sich nicht auf die Partitionsausrichtung aus. Die Faktoren, die sich auf die Partitionsausrichtung auswirken, sind stripe unit size und partition starting offset.

Führen Sie die folgenden Schritte aus, um den Startoffset für eine bestimmte Partition zu ermitteln:

  1. Klicken Sie auf Start und auf Ausführen, geben Sie „cmd“ ein, und klicken Sie dann auf OK.

  2. Geben Sie folgenden Befehl ein, und drücken Sie die EINGABETASTE:

    wmic partition get BlockSize, StartingOffset, Name, Index
    

    Nachdem Sie den Befehl ausgeführt haben, erhalten Sie eine Ausgabe, die der folgenden ähnelt:

    BlockSize Index Name StartingOffset  
    512 0 Disk #1, Partition #0 32256  
    512 0 Disk #2, Partition #0 32256  
    512 0 Disk #3, Partition #0 32256  
    512 0 Disk #4, Partition #0 1048576  
    512 0 Disk #0, Partition #0 32256  
    512 1 Disk #0, Partition #1 41126400
    
  3. Beachten Sie den Wert von BlockSize und StartingOffset für jede angegebene Partition. Der Indexwert, der von diesem Befehl zurückgegeben wird, gibt an, ob eine Partition die erste Partition, die zweite Partition oder andere Partitionen für ein bestimmtes Laufwerk ist. Beispielsweise ist ein Partitionsindex von 0 die erste Partition auf einem bestimmten Datenträger.

  4. Um zu bestimmen, wie viele Datenträgersektoren eine bestimmte Partition am Anfang des Datenträgers beginnt, dividieren Sie den Wert für StartingOffset durch den Wert von BlockSize. Im Beispiel in Schritt 2 ergibt die folgende Berechnung den Partitionsoffset in Sektoren:

    32256 / 512 = 63