Utilizzo di NVME SSD come unità di sistema su computer con BIOS obsoleto e sistema operativo Linux

Utilizzo di NVME SSD come unità di sistema su computer con BIOS obsoleto e sistema operativo Linux

Con una corretta configurazione, è possibile avviare da un'unità NVME SSD anche su sistemi più datati. Si presume che il sistema operativo (SO) sia in grado di gestire NVME SSD. Considero specificamente l'avvio del SO, poiché con i driver NVME già inclusi nel SO, l'SSD è riconosciuto dopo l'avvio e può essere utilizzato. Non è necessario alcun software aggiuntivo (SW) per Linux. Per i sistemi operativi della famiglia BSD e altri Unix, la metodologia dovrebbe funzionare allo stesso modo.

Per avviare da un'unità, è necessario che nel programma di avvio iniziale (BIOS o EFI/UEFI) siano presenti i driver per quel dispositivo. Le unità NVME SSD sono piuttosto recenti rispetto ai BIOS, e nelle versioni firmware delle schede madri più vecchie potrebbero non esserci driver per esse. In EFI, senza supporto per NVME SSD, è possibile aggiungere il codice necessario, rendendo possibile un utilizzo completo di questo dispositivo — è possibile installare il sistema operativo e avviarlo. Per i sistemi più datati con il cosiddetto «legacy BIOS», è difficile avviare il SO in questo modo. Tuttavia, è possibile aggirare questa limitazione.

Come fare

Ho utilizzato openSUSE Leap 15.1. Le procedure saranno simili per altre distribuzioni Linux.

1. Prepariamo il computer per l'installazione del sistema operativo.
È necessario un PC o un server con uno slot PCI-E 4x o più lungo, non importa quale versione, va bene anche PCI-E 1.0. Naturalmente, più è recente la versione PCI-E, maggiore sarà la velocità. E, naturalmente, un NVME SSD con adattatore M.2 — PCI-E 4x.
È inoltre necessario un qualsiasi dispositivo di archiviazione con capacità di 300 MB o più, visibile dal BIOS e da cui poter caricare il sistema operativo. Questo può essere un HDD con connessione IDE, SATA, SCSI, SAS. Oppure una chiavetta USB o una scheda di memoria. Su un dischetto — non ci sta. Un disco CD-ROM non è adatto, sarà necessaria la riscrittura. DVD-RAM — non ne ho idea. Chiamiamo questo dispositivo 'dispositivo legacy BIOS'.

2. Carichiamo Linux per l'installazione (da disco ottico o chiavetta USB o altro).

3. Durante la partizione del disco, distribuiremo il sistema operativo sui dispositivi di archiviazione disponibili:
3.1. Creiamo una partizione per il caricatore GRUB all'inizio dell'«unità BIOS legacy» di dimensioni 8 MB. Vorrei sottolineare che qui si utilizza una particolare caratteristica di openSUSE: GRUB su una partizione separata. Per openSUSE, per impostazione predefinita, viene utilizzato il file system (FS) BTRFS. Se si posiziona GRUB su una partizione con FS BTRFS, il sistema non si avvierà. Pertanto, si utilizza una partizione separata. È possibile posizionare GRUB altrove, purché si avvii.
3.2. Dopo la partizione con GRUB, creeremo una partizione per parte della cartella di sistema («root»), precisamente per «/boot/», di 300 MB.
3.3. Il resto della configurazione - il residuo della cartella di sistema, la partizione di swap, la partizione utente «/home/» (se è stata decisa di crearlo) può essere posizionato su NVME SSD.

Dopo l'installazione, il sistema carica GRUB, che carica i file da /boot/, dopodiché NVME SSD diventa disponibile, seguendo il caricamento del sistema da NVME SSD.
In pratica, ho ottenuto un notevole incremento delle prestazioni.

Requisiti di capacità per l'«unità BIOS legacy»: 8 MB per la partizione GRUB - questo è lo standard, e circa 200 MB per /boot/. Ho scelto 300 MB con un margine. Durante l'aggiornamento del kernel (e con l'installazione dei nuovi), Linux aggiungerà nuovi file alla partizione /boot/.

Valutazione della velocità e del costo

Il costo di un NVME SSD da 128 GB è di circa 2000 rubli.
Il prezzo di un adattatore M.2 — PCI-E 4x è di circa 500 rubli.
Sono disponibili anche adattatori M.2 — PCI-E 16x per quattro unità NVME SSD, con un prezzo di circa 3000 rubli, se a qualcuno interessa.

Velocità massime:
PCI-E 3.0 4x circa 3900 MB/s
PCI-E 2.0 4x 2000 MB/s
PCI-E 1.0 4x 1000 MB/s
Le unità con PCI-E 3.0 4x raggiungono in pratica velocità di circa 3500 MB/s.
Si può supporre che la velocità raggiungibile sarà:
PCI-E 3.0 4x circa 3500 MB/s
PCI-E 2.0 4x circa 1800 MB/s
PCI-E 1.0 4x circa 900 MB/s

Questo è più veloce rispetto a SATA 600 MB/s. La velocità raggiungibile per SATA 600 MB/s è di circa 550 MB/s.
Tuttavia, sulle vecchie schede madri, la velocità del controller SATA integrato potrebbe non essere 600 MB/s, ma 300 MB/s o 150 MB/s. Qui, controller integrato = controller SATA incorporato nel ponte sud del chipset.

Nota che per NVME SSD funzionerà NCQ, mentre i vecchi controller integrati potrebbero non averlo.

Ho effettuato calcoli per PCI-E 4x, ma alcune unità hanno una bus PCI-E 2x. Questo è sufficiente per PCI-E 3.0, ma per gli standard più vecchi di PCI-E — 2.0 e 1.0 — è meglio non acquistare tali NVME SSD. Inoltre, un'unità con un buffer di chip di memoria sarà più veloce rispetto a una senza.

Per chi desidera rinunciare completamente al controller SATA onboard, consiglio di utilizzare il controller Asmedia ASM 106x (1061 e altri), che fornisce due porte SATA 600 (interne o esterne). Funziona molto bene (dopo l'aggiornamento del firmware), e in modalità AHCI supporta il NCQ. Si collega tramite il bus PCI-E 2.0 1x.

La sua velocità massima:
PCI-E 2.0 1x 500 MB/s
PCI-E 1.0 1x 250 MB/s
La velocità raggiungibile sarà:
PCI-E 2.0 1x 460 MB/s
PCI-E 1.0 1x 280 MB/s

Questo è sufficiente per un SSD SATA o due HDD.

Difetti riscontrati

1. Non vengono letti i parametri SMART degli SSD NVME, ci sono solo dati generali sul produttore, numero di serie, ecc. Potrebbe essere a causa di una scheda madre (mobo) troppo vecchia. Per i miei esperimenti senza pietà, ho utilizzato la scheda madre più vecchia che sono riuscito a trovare, con chipset nForce4.

2. TRIM dovrebbe funzionare, ma questo deve essere verificato.

Conclusione

Ci sono ancora altre opzioni: acquistare un controller SAS con connettore PCI-E 4x o 8x (esistono anche 16x o 32x?). Tuttavia, se sono economici, supportano SAS 600, ma SATA 300, e quelli costosi saranno più costosi e più lenti rispetto al metodo sopra proposto.

Per l'uso con M$ Windows, è possibile installare software aggiuntivo: un bootloader con driver integrati per SSD NVME.

Vedi qui:
www.win-raid.com/t871f50-Guide-How-to-get-full-NVMe-support-for-all-Systems-with-an-AMI-UEFI-BIOS.html
www.win-raid.com/t3286f50-Guide-NVMe-boot-for-systems-with-legacy-BIOS-and-older-UEFI-DUET-REFIND.html
forum.overclockers.ua/viewtopic.php?t=185732
pcportal.org/forum/51-9843-1
mrlithium.blogspot.com/2015/12/how-to-boot-nvme-ssd-from-legacy-bios.html

Propongo al lettore di valutare se tale utilizzo dell’NVME SSD sia necessario, oppure potrebbe essere meglio acquistare una nuova scheda madre (+ CPU + memoria) con un'interfaccia M.2 PCI-E e supporto per l'avvio da NVME SSD in EFI.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster