Le prestazioni del disco possono essere più lente del previsto quando si usano più dischi

Questo articolo descrive una risoluzione per un problema in cui le prestazioni del disco potrebbero essere più lente del previsto. Questo problema può verificarsi quando si usa un RAID basato su hardware o software.

Si applica a: Windows Server 2012 R2, Windows 10 tutte le edizioni
Numero KB originale: 929491

Sintomi

Le prestazioni del disco possono essere più lente del previsto quando si usano più dischi in Windows. Ad esempio, le prestazioni possono rallentare quando si usa una matrice ridondante basata su hardware di dischi indipendenti (RAID) o un RAID basato su software.

Causa

Questo problema può verificarsi se la posizione iniziale della partizione non è allineata a un limite dell'unità di striping nella partizione del disco creata in RAID.

È possibile creare un cluster di volumi su un limite di unità di striping anziché accanto al limite dell'unità di striping. Questo perché Windows usa un fattore di 512 byte per creare cluster di volumi. Questo comportamento causa una partizione non allineata. Quando un singolo cluster di volumi viene aggiornato in una partizione non allineata, si accede a due gruppi di dischi.

Windows crea partizioni basate su un numero predefinito di settori. La posizione iniziale per una partizione del disco in Windows è il 32° o il 64° settore, a seconda delle informazioni presentate al sistema operativo dal controller di archiviazione di massa.

Nota

Le partizioni del disco riservano sempre il primo settore della partizione per il codice e per le informazioni sulla partizione, ad esempio il numero di settori e il settore iniziale. La parte effettiva dei dati della partizione inizia dal secondo settore della partizione.

Risoluzione

Per risolvere questo problema, usare lo strumento Diskpart.exe per creare la partizione del disco e specificare un offset iniziale di 2.048 settori (1 megabyte). Un offset iniziale di 2.048 settori copre la maggior parte degli scenari di dimensioni delle unità di striping.

Nota

Windows Server 2003 Service Pack 1 ha introdotto la possibilità per Diskpart di regolare l'allineamento della partizione. Se non si ha accesso a una versione aggiornata di Diskpart, diskpar (si noti che non è disponibile alcuna "t" finale nel nome di questa utilità) è disponibile.

Per verificare che una partizione esistente sia allineata, eseguire il calcolo descritto nella sezione "Altre informazioni".

Per allineare una partizione del disco in un RAID con un offset di 2.048 settori, seguire questa procedura:

  1. Al prompt dei comandi digitare diskpart e quindi premere INVIO.

  2. Digitare i comandi seguenti al prompt DISKPART e quindi premere INVIO:

    list disk
    

    Si riceve un output simile al seguente:

    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
    

    Il list disk comando fornisce informazioni di riepilogo su ogni disco installato nel computer. Il disco con il contrassegno asterisco (*) ha lo stato attivo corrente. Sono elencati solo dischi fissi e dischi rimovibili. I dischi fissi includono dispositivi elettronici integrati [IDE] e dischi SCSI. I dischi rimovibili includono 1394 e dischi USB.

    select disk
    

    Usare il comando select disk per impostare lo stato attivo sul disco con il numero di disco specificato. Se non si specifica un numero di disco, il comando visualizza il disco corrente attivo.

    create partition primary align=1024
    

    Nota

    • Quando si digita questo comando, è possibile che venga visualizzato un messaggio simile al seguente: DiskPart è riuscito a creare la partizione specificata.
    • Il parametro align= number viene in genere usato insieme ai LUN (Logical Unit Numbers) RAID hardware per migliorare le prestazioni quando le unità logiche non sono allineate a cilindri. Questo parametro allinea una partizione primaria non allineata a cilindri all'inizio di un disco e quindi arrotonda l'offset al limite di allineamento più vicino.
    • number è il numero di kilobyte (KB) dall'inizio del disco al limite di allineamento più vicino. Il comando ha esito negativo se la partizione primaria non si trova all'inizio del disco. Se si usa il comando insieme all'opzione offset = number , l'offset si trova all'interno del primo cilindro utilizzabile sul disco.
    exit
    
  3. Fare clic su Start, fare clic su Esegui, digitare diskmgmt.msc e quindi fare clic su OK.

  4. Nello snap-in Gestione dischi di Microsoft Management Console (MMC) individuare la partizione appena creata e assegnargli una lettera di unità.

  5. Usare il file system NTFS per formattare la nuova partizione e quindi assegnare una dimensione del cluster.

    Nota

    Questa procedura di esempio è relativa a una singola partizione per ogni gruppo RAID.

Ulteriori informazioni

Per verificare che una partizione esistente sia allineata, dividere le dimensioni dell'unità di striping per l'offset iniziale del gruppo di dischi RAID. Usare la sintassi seguente:
((Offset partizione) * (Dimensioni settore disco)) / (Dimensione unità stripe)

Nota

Le dimensioni del settore del disco e le dimensioni delle unità di striping devono essere in byte o in kilobyte (KB).

Esempio di calcoli di allineamento in byte per un'unità di striping da 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

Esempio di calcoli di allineamento in kilobyte per una dimensione unità di striping di 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

Questi esempi mostrano che la partizione non è allineata correttamente per un'unità di striping da 256 KB fino a quando la partizione non viene creata usando un offset di 512 settori (512 byte per settore).

Nota

Il numero di dischi nel gruppo di matrici non influisce sull'allineamento della partizione. I fattori che influiscono sull'allineamento delle partizioni sono le dimensioni delle unità di striping e l'offset iniziale della partizione.

Per trovare l'offset iniziale per una determinata partizione, seguire questa procedura:

  1. Fare clic su Start, selezionare Esegui, digitare cmd e fare clic su OK.

  2. Digitare il comando seguente e quindi premere INVIO:

    wmic partition get BlockSize, StartingOffset, Name, Index
    

    Dopo aver eseguito il comando, si riceve un output simile al seguente:

    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. Si noti il valore di BlockSize e di StartingOffset per ogni partizione specificata. Il valore Index restituito da questo comando indica se una partizione è la prima partizione, la seconda partizione o altre partizioni per una determinata unità disco. Ad esempio, un indice di partizione pari a 0 è la prima partizione in un determinato disco.

  4. Per determinare il numero di settori del disco che una determinata partizione inizia dall'inizio del disco, dividere il valore di StartingOffset per il valore di BlockSize. Nell'esempio nel passaggio 2, il calcolo seguente restituisce l'offset iniziale della partizione nei settori:

    32256 / 512 = 63