
С правилна конфигурация можете да стартирате от NVME SSD дори на стари системи. Предполага се, че операционната система (ОС) може да работи с NVME SSD. Обсъждам именно стартирането на ОС, тъй като при наличието на драйвъри за NVME SSD в ОС, тя става видима след зареждане и може да се използва. Няма нужда от допълнителен софтуер за Linux. За ОС от семейството BSD и други Unix системи, вероятно подходът също ще проработи.
За да стартирате от някое устройство, е необходимо в програмата за начално зареждане (Boot ROM), BIOS или EFI (UEFI) да има драйвъри за това устройство. NVME SSD устройствата са сравнително нови в сравнение с BIOS и в Boot ROM на стари дънни платки тези драйвъри не съществуват. В EFI без поддръжка на NVME SSD можете да добавите съответен код и тогава става възможно пълноценното функциониране с това устройство — можете да инсталирате операционна система и да я заредите. За стари системи с т.нар. „legacy BIOS“ зареждането на ОС се оказва трудно. Въпреки това, може да бъде заобиколено.
Как да направим
Използвах openSUSE Leap 15.1. За другите Linux дистрибуции процедурите ще бъдат приблизително същите.
1. Подготвяме компютъра за инсталиране на операционната система.
Нужен е компютър или сървър с наличен PCI-E 4x или по-дълъг слот, без значение от версията, дори PCI-E 1.0 е достатъчна. Разбира се, колкото по-нова е версията на PCI-E, толкова по-висока ще бъде скоростта. И естествено, NVME SSD с адаптер M.2 — PCI-E 4x.
Също така е необходим някакъв носител с капацитет 300 MB или повече, който е видим в BIOS и от който може да се зарежда ОС. Това може да бъде HDD, свързан по IDE, SATA, SCSI или SAS. Или USB флашка, или карта памет. На дискета — не пасва. CD-ROM не подходи, трябва перезапис. DVD-RAM — нямам представа. Условно ще наречем това устройство „legacy BIOS носител“.
2. Зареждаме Linux за инсталация (от оптичен диск или USB флашка и др.).
3. При разпределяне на диска, разпределяме ОС между наличните носители:
3.1. Ще създадем раздел за зареждача GRUB в началото на «legacy BIOS устройство» с размер от 8 МБ. Забележете, че тук се използва особеност на openSUSE — GRUB е на отделен раздел. За openSUSE по подразбиране се използва файлова система (ФС) BTRFS. Ако разположите GRUB на раздел с ФС BTRFS, системата няма да се зареди. Затова се използва отделен раздел. Можете да разположите GRUB на друго място, стига да се зарежда.
3.2. След раздела с GRUB ще създадем раздел за част от системната папка („корен”), а именно за „/boot/”, с размер от 300 МБ.
3.3. Останалото пространство — остатък от системната папка, раздел за своп, раздел за потребителя „/home/” (ако решите да създадете такъв) може да се разположи на NVME SSD.
След инсталацията системата зарежда GRUB, който зарежда файлове от /boot/, след което NVME SSD става достъпен, следва зареждане на системата от NVME SSD.
На практика получих значително ускорение.
Изисквания за капацитета на „legacy BIOS устройство”: 8 МБ за раздела GRUB — това е по подразбиране, и някъде от 200 МБ за /boot/. 300 МБ взех като резерв. При обновяване на ядрото (и при инсталиране на нови) Linux ще запълва раздела /boot/ с нови файлове.
Оценка на скоростта и цената
Цената на NVME SSD 128 ГБ — около 2000 рубли.
Цената на адаптера M.2 — PCI-E 4x — около 500 рубли.
Също така се предлагат адаптери M.2 — PCI-E 16x за четири NVME SSD устройства, цената им е около 3000 рубли — ако това е нужно на някого.
Максимални скорости:
PCI-E 3.0 4x около 3900 МБ/с
PCI-E 2.0 4x 2000 МБ/с
PCI-E 1.0 4x 1000 МБ/с
Устройства с PCI-E 3.0 4x на практика достигат скорости около 3500 МБ/с.
Може да се предположи, че достижимата скорост ще бъде следната:
PCI-E 3.0 4x около 3500 МБ/с
PCI-E 2.0 4x около 1800 МБ/с
PCI-E 1.0 4x около 900 МБ/с
Това е по-бързо от SATA 600 МБ/с. Достижимата скорост за SATA 600 МБ/с е около 550 МБ/с.
При това на старите дънни платки скоростта на вградените SATA контролери може да не е 600 МБ/с, а 300 МБ/с или 150 МБ/с. Тук вграденият контролер = SATA контролер, вграден в южния мост на чипсета.
Забелязвам, че за NVME SSD ще работи NCQ, а при старите вградени контролери това може да не е налице.
Правих изчисления за PCI-E 4x, но някои устройства имат шина PCI-E 2x. Това е достатъчно за PCI-E 3.0, но за по-старите стандарти PCI-E — 2.0 и 1.0 — такъв NVME SSD е по-добре да не се взима. Също така устройство с буфер под формата на чип памет ще бъде по-бързо от устройство без такъв.
За тези, които искат напълно да се откажат от вградения SATA контролер, препоръчвам контролера Asmedia ASM 106x (1061 и др.), който предоставя два порта SATA 600 (вътрешни или външни). Работи много добре (след актуализация на фърмуера), в режим AHCI поддържа NCQ. Свързва се през PCI-E 2.0 1x.
Максималната му скорост:
PCI-E 2.0 1x 500 MB/s
PCI-E 1.0 1x 250 MB/s
Постижимата скорост ще бъде следната:
PCI-E 2.0 1x 460 MB/s
PCI-E 1.0 1x 280 MB/s
Това е достатъчно за един SATA SSD или два хард диска.
Забелязани недостатъци
1. Не се четат с NVME SSD, налични са само основни данни за производителя, сериен номер и т.н. Вероятно поради твърде старата дънна платка (мп). За своите мъчителни експерименти използвах най-старата мп, която успях да намеря, с чипсет nForce4.
2. TRIM трябва да работи, но това трябва да се провери.
Заключение
Има и други възможности: да се купи SAS контролер с PCI-E 4x или 8x (има ли 16x или 32x?). Но ако са евтини, поддържат SAS 600, а SATA 300, а скъпите ще са по-скъпи и по-бавни от предложеното по-горе решение.
За използване с M$ Windows можете да инсталирате допълнителен софтуер - зареждач с вградени драйвери за NVME SSD.
Вижте тук:
Предлагам на читателя сам да оцени, нужно ли му такова приложение на NVME SSD, или е по-добре да купи нова дънна платка (+ процесор + памет) с наличен M.2 PCI-E слот и поддръжка за зареждане от NVME SSD в EFI.
Източник: habr.com
