Використання NVME SSD як системного накопичувача на комп'ютерах зі старим BIOS та ОС Linux

Використання NVME SSD як системного накопичувача на комп'ютерах зі старим BIOS та ОС Linux

При відповідному налаштуванні можна завантажуватись із накопичувача NVME SSD навіть на старих системах. Передбачається, що операційна система (ОС) вміє працювати з NVME SSD. Розглядаю саме завантаження ОС, оскільки при драйверах NVME SSD, що є в ОС, видно в ОС після завантаження і може використовуватися. Додаткового програмного забезпечення (ПЗ) для лінукса не потрібно. Для ОС сімейства BSD та інших юніксів спосіб швидше за все теж підійде.

Для завантаження з будь-якого накопичувача потрібно, щоб у програмі початкового завантаження (ППЗ), BIOS або EFI (UEFI) містилися драйвера для даного пристрою. Накопичувачі NVME SSD є досить нові пристрої, порівняно з BIOS, і в ППЗ прошивок старих материнських плат таких драйверів немає. У EFI без підтримки NVME SSD можна додати відповідний код, і тоді можлива повноцінна робота з цим пристроєм — можна встановити операційну систему і завантажити її. Для старих систем з т.з. "legacy BIOS" завантаженням ОС так зробити навряд чи вийде. Однак це можна оминути.

Як робити

Я використав openSUSE Leap 15.1. Для інших лінуксів дії буде приблизно ті самі.

1. Підготуємо комп'ютер для встановлення операційної системи.
Потрібен ПК або сервер з вільним роз'ємом PCI-E 4x або довшим, будь-якої версії, вистачить і PCI-E 1.0. Звичайно, чим новіша версія PCI-E, тим вищою буде швидкість. Ну і, власне, NVME SSD із перехідником M.2 - PCI-E 4x.
Також потрібен якийсь накопичувач з ємністю 300 МБ і більше, який видно з біосу і з якого можна вантажити ОС. Це може бути НЖМД із підключенням по IDE, SATA, SCSI. SAS. Або USB флешка, або картка пам'яті. На дискету не влізе. Диск CD-ROM не підійде, знадобиться перезапис. DVD-RAM без поняття. Умовно назвемо цю штуку "legacy BIOS накопичувач".

2. Завантажуємо лінукс для установки (з оптичного диска або флешки завантаження або ін.).

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 МБ я взяв із запасом. При оновленні ядра (і при встановленні нових) лінукс поповнюватиме розділ /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 МБ/с
PCI-E 1.0 1x 250 МБ/с
Досяжна швидкість буде такою:
PCI-E 2.0 1x 460 МБ/с
PCI-E 1.0 1x 280 МБ/с

Цього вистачить на один SATA SSD або два НЖМД.

помічені недоліки

1. Не зчитуються параметри SMART з NVME SSD, є тільки загальні дані щодо виробника, серійного номера і т.д. Можливо, через занадто стару материнську плату (мп). Для своїх нелюдських дослідів я використав найстарішу мп, яку зміг знайти, з чіпсетом nForce4.

2. TRIM має працювати, але це треба перевіряти.

Висновок

Є ще інші можливості: купити контролер SAS з роз'ємом PCI-E 4x або 8х (чи бувають 16х або 32х?). Однак вони якщо дешеві, то підтримують SAS 600, але SATA 300, а дорогі будуть дорожчими і повільнішими за запропонований вище спосіб.

Для використання з M$ Windows можна встановити додаткове програмне забезпечення — завантажувач із вбудованими драйверами для NVME SSD.

тут:
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

Пропоную читачеві самому оцінити, чи потрібне йому таке застосування NVME SSD, чи краще буде купити нову материнську плату (+ процесор + пам'ять) з наявним роз'ємом M.2 PCI-E та підтримкою завантаження з NVME SSD в EFI.

Джерело: habr.com

Додати коментар або відгук