
Con le giuste impostazioni, è possibile avviarsi da un'unità NVME SSD anche su sistemi obsoleti. Si presume che il sistema operativo (SO) possa lavorare con NVME SSD. Sto considerando proprio il caricamento del SO, poiché con i driver NVME presenti nel SO, l'SSD è riconosciuto dal sistema operativo 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, il metodo dovrebbe funzionare anch'esso.
Per avviarsi da un'unità qualsiasi, è necessario che nel programma di avvio iniziale (POST), nel BIOS o nell'EFI (UEFI) siano presenti i driver per il dispositivo in questione. Gli NVME SSD sono dispositivi relativamente nuovi rispetto al BIOS, e nei POST di vecchi firmware delle schede madri non sono presenti tali driver. In EFI, senza supporto per NVME SSD, è possibile aggiungere il codice corrispondente, rendendo possibile un utilizzo completo di questo dispositivo: è possibile installare il sistema operativo e avviarlo. Per i vecchi sistemi con il cosiddetto "legacy BIOS", non è probabile che sia possibile eseguire l'avvio del SO in questo modo. Tuttavia, è possibile aggirare questo problema.
Come procedere
Ho utilizzato openSUSE Leap 15.1. Per altre distribuzioni Linux, le operazioni saranno all'incirca le stesse.
1. Prepariamo il computer per l'installazione del sistema operativo.
Serve un PC o un server con uno slot PCI-E 4x o più lungo, non importa di quale versione, va bene anche PCI-E 1.0. Naturalmente, più recente è la versione PCI-E, maggiore sarà la velocità. E, ovviamente, un NVME SSD con un adattatore M.2 — PCI-E 4x.
Serve anche un'unità con una capacità di 300 MB o superiore, che sia riconosciuta dal BIOS e da cui poter avviare il SO. Può essere un HDD con collegamento IDE, SATA, SCSI. SAS. O una pen drive USB o una scheda di memoria. Non è possibile utilizzare un floppy disk. Un disco CD-ROM non va bene, sarà necessario il ripristino. DVD-RAM — non ne ho idea. Chiamiamo questa cosa "legacy BIOS storage".
2. Avviamo Linux per l'installazione (da un disco ottico o una pen drive avviabile o altro).
3. Durante la partizione del disco, suddividiamo il SO tra le unità disponibili:
3.1. Creiamo una partizione per il caricatore GRUB all'inizio dell'«unità legacy BIOS» di dimensioni 8 MB. Va notato che qui viene utilizzata una peculiarità di openSUSE: GRUB su una partizione separata. La filesystem predefinita utilizzata da openSUSE è BTRFS. Se si posizionasse GRUB su una partizione con filesystem BTRFS, il sistema non si avvierebbe. Pertanto, viene utilizzata una partizione separata. È possibile posizionare GRUB altrove, purché si avvii correttamente.
3.2. Dopo la partizione con GRUB, creeremo una partizione contenente parte della cartella di sistema («root»), precisamente «/boot/», di dimensioni 300 MB.
3.3. Il resto delle risorse — il resto della cartella di sistema, la partizione di swap e la partizione utente «/home/» (se avete deciso di crearla) possono essere posizionate su NVMe SSD.
Dopo l'installazione, il sistema carica GRUB, che carica i file da /boot/, dopodiché il NVMe SSD diventa accessibile, e quindi avviene il caricamento del sistema dal NVMe SSD.
In pratica ho ottenuto un notevole aumento di velocità.
Requisiti di capacità per l'«unità legacy BIOS»: 8 MB per la partizione GRUB — questo è l'impostazione predefinita, e circa 200 MB per /boot/. Ho scelto 300 MB per avere un margine. Durante l'aggiornamento del kernel (e durante l'installazione di nuovi), Linux popolerà la partizione /boot/ con nuovi file.
Valutazione della velocità e dei costi
Il costo di un NVMe SSD da 128 GB è di circa 2000 ₽.
Il costo di un adattatore M.2 — PCI-E 4x è di circa 500 ₽.
Sono disponibili anche adattatori M.2 — PCI-E 16x per quattro unità NVMe SSD, a un prezzo che parte da circa 3000 ₽ — 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 una velocità di circa 3500 MB/s.
Si può supporre che la velocità raggiungibile sarà la seguente:
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
Questa è più veloce di SATA 600 MB/s. La velocità raggiungibile per SATA 600 MB/s è di circa 550 MB/s.
Si deve considerare che su vecchie schede madri la velocità SATA del controller on-board potrebbe non essere di 600 MB/s, ma di 300 MB/s o 150 MB/s. Qui il controller on-board è pari al controller SATA integrato nel ponte sud del chipset.
Va notato che per NVMe SSD funzionerà NCQ, mentre nei vecchi controller on-board potrebbe non esserci.
Ho effettuato calcoli per PCI-E 4x, tuttavia alcuni dispositivi hanno un bus PCI-E 2x. Questo è sufficiente per PCI-E 3.0, ma per standard più vecchi come PCI-E 2.0 e 1.0 è meglio non prendere tali NVMe SSD. Inoltre, un'unità con buffer in forma di chip di memoria sarà più veloce rispetto a una senza.
Per coloro che desiderano rinunciare completamente al controller SATA integrato, consiglio di utilizzare il controller Asmedia ASM 106x (1061 e altri), che fornisce due porte SATA 600 (interne o esterne). Funziona piuttosto bene (dopo un 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 con SSD NVME, ci sono solo dati generali sul produttore, numero di serie, ecc. Probabilmente a causa di una scheda madre (mobo) troppo vecchia. Per le mie disumane esperienze ho utilizzato la scheda madre più vecchia che sono riuscito a trovare, con chipset nForce4.
2. TRIM dovrebbe funzionare, ma è necessario verificarlo.
Conclusione
Ci sono anche altre opzioni: acquistare un controller SAS con connettore PCI-E 4x o 8x (esistono 16x o 32x?). Tuttavia, se sono economici, supportano SAS 600, ma SATA 300, mentre quelli costosi saranno più costosi e più lenti rispetto al metodo sopra menzionato.
Per l'uso con M$ Windows, è possibile installare software aggiuntivo: un bootloader con driver integrati per SSD NVME.
Vedi qui:
Propongo al lettore di valutare se ha bisogno di un'applicazione del genere per SSD NVME, oppure sarebbe meglio acquistare una nuova scheda madre (+ processore + memoria) con connettore M.2 PCI-E e supporto per il boot da SSD NVME in EFI.
Fonte: habr.com
