
Met de juiste instellingen kan je zelfs op oudere systemen opstarten vanaf een NVME SSD. De veronderstelling is dat het besturingssysteem (OS) in staat is om met NVME SSD's te werken. Ik bespreek specifiek het opstarten van het OS, aangezien NVME SSD's zichtbaar zijn in het OS zodra het geladen is en gebruikt kan worden. Extra software (SO) voor Linux is niet nodig. Voor BSD-gebaseerde systemen en andere Unix-varianten is deze methode waarschijnlijk ook toepasbaar.
Om vanaf een opslagmedium te kunnen opstarten, moeten de stuurprogramma's voor dit apparaat aanwezig zijn in het opstartprogramma (firmware), in de BIOS of EFI (UEFI). NVME SSD's zijn relatief nieuwe apparaten vergeleken met BIOS, en in de firmware van oudere moederborden zijn dergelijke stuurprogramma's niet aanwezig. In EFI zonder ondersteuning voor NVME SSD's kan de juiste code worden toegevoegd, waardoor het mogelijk wordt om volledig met dit apparaat te werken — je kunt het besturingssysteem installeren en opstarten. Voor oudere systemen met zogenaamde 'legacy BIOS' zal het lastig zijn om het OS op deze manier op te starten. Dit kan echter worden omzeild.
Hoe te doen
Ik heb openSUSE Leap 15.1 gebruikt. Voor andere Linux-distributies zullen de stappen ongeveer hetzelfde zijn.
1. Bereid de computer voor op de installatie van het besturingssysteem.
Je hebt een PC of server nodig met een vrije PCI-E 4x slot of langer, ongeacht de versie; PCI-E 1.0 is voldoende. Natuurlijk, hoe nieuwer de PCI-E versie is, hoe hoger de snelheid. En natuurlijk, een NVME SSD met een M.2 — PCI-E 4x adapter.
Je hebt ook een opslagmedium nodig met een capaciteit van 300 MB of meer, dat zichtbaar is vanuit de BIOS en waarvan je het OS kunt opstarten. Dit kan een HDD zijn die via IDE, SATA, SCSI of SAS is aangesloten. Of een USB-stick of een geheugenkaart. Een floppy disk past niet. Een CD-ROM werkt niet, je hebt herschrijfbare media nodig. DVD-RAM — geen idee. Laten we dit apparaat voor het gemak 'legacy BIOS opslagmedium' noemen.
2. Laad Linux voor de installatie (van een optische schijf of bootable USB-stick of iets dergelijks).
3. Bij het partitioneren van de schijf verdelen we het OS over de beschikbare opslagmedia:
3.1. We creëren een partitie voor de GRUB-bootloader aan het begin van de "legacy BIOS-schijf" van 8 MB. Ik merk op dat hier een specifieke eigenschap van openSUSE wordt gebruikt – GRUB op een aparte partitie. Voor openSUSE wordt standaard het bestandssysteem (FS) BTRFS gebruikt. Als je GRUB op een partitie met het FS BTRFS plaatst, zal het systeem niet opstarten. Daarom gebruiken we een aparte partitie. Je kunt GRUB op een andere plek plaatsen, zolang het maar opstart.
3.2. Na de partitie met GRUB creëren we een partitie voor een deel van de systeemmap ("root"), namelijk voor "\/boot\/", met een grootte van 300 MB.
3.3. De resterende ruimte – de rest van de systeemmap, een partitie voor swap, een gebruikersgedeelte "\/home\/" (als je ervoor kiest dit te creëren) kan op de NVME SSD worden geplaatst.
Na de installatie laadt het systeem GRUB, dat bestanden uit \/boot\/ laadt, waarna de NVME SSD beschikbaar komt, en vervolgens wordt het systeem vanaf de NVME SSD opgestart.
In de praktijk heb ik een aanzienlijke versnelling waargenomen.
Vereisten voor de capaciteit van de "legacy BIOS-schijf": 8 MB voor de GRUB-partitie – dat is standaard, en ongeveer 200 MB voor \/boot\/. Ik heb 300 MB als reserve genomen. Bij de update van de kernel (en bij de installatie van nieuwe) zal Linux de partitie \/boot\/ aanvullen met nieuwe bestanden.
Snelheid en kosten beoordeling
De prijs van een NVME SSD van 128 GB is ongeveer vanaf 2000 r.
De prijs van een M.2-adapter – PCI-E 4x – is ongeveer vanaf 500 r.
Er zijn ook M.2-adapters – PCI-E 16x voor vier NVME SSD’s te koop, met prijzen rond de 3000 r. – voor degenen die dat nodig hebben.
Maximumsnelheden:
PCI-E 3.0 4x ongeveer 3900 MB/s
PCI-E 2.0 4x 2000 MB/s
PCI-E 1.0 4x 1000 MB/s
Schijven met PCI-E 3.0 4x bereiken in de praktijk snelheden van ongeveer 3500 MB/s.
Men kan aannemen dat de haalbare snelheid als volgt zal zijn:
PCI-E 3.0 4x ongeveer 3500 MB/s
PCI-E 2.0 4x ongeveer 1800 MB/s
PCI-E 1.0 4x ongeveer 900 MB/s
Wat sneller is dan SATA 600 MB/s. De haalbare snelheid voor SATA 600 MB/s is ongeveer 550 MB/s.
Daarnaast kan op oudere moederborden de snelheid van de SATA-controller niet 600 MB/s zijn, maar 300 MB/s of 150 MB/s. Hier is de on-board controller = de SATA-controller, ingebouwd in de chipset's zuidelijke brug.
Ik merk op dat NCQ zal werken voor NVME SSD’s, maar oudere on-board controllers hebben dit mogelijk niet.
Ik heb berekeningen gemaakt voor PCI-E 4x, maar sommige schijven hebben een PCI-E 2x-bus. Dit is voldoende voor PCI-E 3.0, maar voor oudere PCI-E-normen zoals 2.0 en 1.0 is het beter om dergelijke NVME SSD's niet te nemen. Ook zal een schijf met een buffer in de vorm van een geheugenchip sneller zijn dan zonder.
Voor degenen die volledig willen afstappen van de SATA-controller aan boord, raad ik de Asmedia ASM 106x (1061 en andere) controller aan, die twee SATA 600-poorten (intern of extern) biedt. Hij werkt behoorlijk goed (na firmware-updates) en ondersteunt NCQ in AHCI-modus. Hij wordt aangesloten via de PCI-E 2.0 1x-bus.
De maximale snelheid:
PCI-E 2.0 1x 500 MB/s
PCI-E 1.0 1x 250 MB/s
De haalbare snelheid zal zijn:
PCI-E 2.0 1x 460 MB/s
PCI-E 1.0 1x 280 MB/s
Dit is voldoende voor één SATA SSD of twee HDD's.
Opgemerkte nadelen
1. SMART-parameters worden niet gelezen 2. TRIM zou moeten werken, maar dat moet nog worden gecontroleerd.
Er zijn nog andere mogelijkheden: een SAS-controller kopen met een PCI-E 4x of 8x aansluiting (zijn er ook 16x of 32x?). Maar als ze goedkoop zijn, ondersteunen ze SAS 600, maar SATA 300, en dure opties zullen duurder en langzamer zijn dan de hierboven voorgestelde methode.
Conclusie
Voor gebruik met M$ Windows kan extra software worden geïnstalleerd — een bootloader met ingebouwde stuurprogramma's voor NVME SSD's.
Zie hier:
www.win-raid.com/t871f50-Guide-How-to-get-full-NVMe-support-for-all-Systems-with-an-AMI-UEFI-BIOS.html
Nog een lijst van projecten om op te oefenen
Bron: habr.com
