Amit már tudunk:
A SATA csatolós SSD-ket már majd mindenki megtanulta ellenőrizni, optimalizálni és jelenleg már ezek szükségtelenné is váltak, mivel gyakorlatilag a desktop Linux disztrók alapból tökéletesen kezelik ezt a meghajtó fajtát is! A Linuxok egy része ütemezett TRIM-et hajt végre default heti fstrim futtatásával(Ubuntu és deratívái), más disztrók default az FSTAB-ban tartalmazzák a discard opciót, ami online TRIM-melést hajt végre(Arch és klónjai). Átlag felhasználónak gyakorlatilag mindegy melyik fut, valamelyik fusson és akkor működik a TRIM végrehajtása az eszközünkön.
Amit még nem tudunk:
Ami miatt mégis külön írást szentelek a témának külön és nem az eredeti SSD - Linuxon blogba szúrom be kiegészítésként e témát, az az, hogy egyre elterjedtebb a felhasználók körében az NVME protokolos SSD meghajtó. Árban alig van eltérés és igen kecsegtetően hangzik az 550MB/s helyett a 3000MB/s sebesség. Az nem eme írás témája, hogy emiatt a felhasználók 95%-a teljesen értelmetlenül veszi a gyorsabb SSD-ket, mert nem gyorsabb a SATA SSD-nél. Szekvenciálisan nyilván jóval gyorsabb, de átlag használat során ennek jelentősége igen csekély, az access time a lényeg!
Megy kicsit a parasztvakítás a PCIe 4.0 csatolós NVMe eszközök ajánlásával is, pedig még egy DRAM cacheless NVMe SSD PCIe 3.0 is lehet akár gyorsabb is, mint egy belépő PCIe 4.0.
Akit ez mélyebben érdekel, olvashat erről bővebben Archwiki-n akár és itt is hozzá lehet szólni...
A lényeg! Kell-e ellenőrizni az NVME SSD-ket, ha Linuxot használunk? Lehet, de felesleges!
Ha ennek ellenére szeretnél pár dolgot managelni, ellenőrizni....
Alignálás ellenőrzése
Végrehajtható ugyan, de a mai operációs rendszerek a meghajtókat tökéletesen alignálják, a Windows XP-nél volt még nem megfelelően beállítva a kezdő sector, de gyanítom NVME SSD-t senki nem XP-vel telepítette először.
Ha mégis ellenőrizni szeretnénk az align helyzetét:
A terminalba beírod a sudo parted /dev/nvme0n1p2 parancsot, Enter, jelszó, meghajtó betűjelére* odafigyelve!
(* ennek pontos beazonosításában a sudo fdisk -l
és a lsblk
parancs segít)
egy példa
ubyegon@ubyegon-AB350M-Gaming-3:~$ sudo fdisk -l
Disk /dev/nvme0n1: 931,51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 980 1TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: E67B232E-7A45-4979-CDC4-45036D3B46EX
Eszköz Start Vége Szektorok Size Típus
/dev/nvme0n1p1 4096 2101751 2097656 1G EFI System
/dev/nvme0n1p2 2105344 84912127 82806784 39,5G Linux filesystem
/dev/nvme0n1p3 84912128 168798206 83886079 40G Linux filesystem
/dev/nvme0n1p4 168798208 252684287 83886080 40G Linux filesystem
/dev/nvme0n1p5 252684288 336570367 83886080 40G Linux filesystem
ubyegon@ubyegon-AB350M-Gaming-3:~$
Példánkból látható, hogy az NVMe SSD device megjelenítése a SATA-s SSD-től eltérően nem, dev/sda
, hanem dev/nvme0n1p2
-ként fog megjelenni a parancs kimenetében, ahol a nvme0n1 jelöli magát az eszközt, a sor végén a p2 pedig a partició sorszámát.
Akkor lássuk az align helyességének megállapítására vonatkozó parancs kimenetet:
hasonló kimenet jelenik meg:ubyegon@ubyegon-AB350M-Gaming-3:~$ sudo parted /dev/nvme0n1
[sudo] ubyegon jelszava:
GNU Parted 3.4
/dev/nvme0n1 használatával
Üdvözli a GNU Parted! Írja be a 'help' szót a parancsok listájának megnézéséhez.
(parted)
Nyomj kis p
-t és a kimenet már tartalmazza is a partíciók adatait:ubyegon@ubyegon-AB350M-Gaming-3:~$ sudo parted /dev/nvme0n1
[sudo] ubyegon jelszava:
GNU Parted 3.4
/dev/nvme0n1 használatával
Üdvözli a GNU Parted! Írja be a 'help' szót a parancsok listájának megnézéséhez.
(parted) p
Típus: Samsung SSD 980 1TB (nvme)
/dev/nvme0n1 lemez: 1000GB
Szektorméret (logikai/fizikai): 512B/512B
Partíciós tábla: gpt
Lemezjelzők:
Szám Kezdet Vég Méret Fájlrendszer Név Jelzők
1 2097kB 1076MB 1074MB fat32 boot, esp
2 1078MB 43,5GB 42,4GB ext4
3 43,5GB 86,4GB 42,9GB ext4
4 86,4GB 129GB 42,9GB ext4
5 129GB 172GB 42,9GB ext4
(parted)
Az utolsó sornál beírod a align-check
parancsot
(parted) align-check
alignment type(min/opt) [optimal]/minimal?
Itt nyomsz egy o
vagy m
betűt
alignment type(min/opt) [optimal]/minimal? o
Partition number?
Partition number-hez pedig beírod a fenti kimenetek megfelelő számát
(parted) align-check
quit
igazítás típusa (min/opt) [optimal]/minimal? o
A partíció száma? 2
2 igazítva
(parted)
Ha a szám mellé kiírja, hogy aligned/igazítva, akkor minden OK! Sajna minden partíciónál külön-külön be kell írni az align-check
parancsot és az o
vagy m
betűt, mielőtt a következő számot beírod.
TRIM ellenőrzése
Míg a SATA SSD-nél ez a legfontosabb ellenőrzés volt, NVME SSD esetén értelmetlenné vált, ugyanis a hagyományos TRIM, discard végrehajtását egy P/ATA utasításkészlet biztosította, ez értelemszerűen az NVME SSD-re nincs semmilyen hatással.
Hogyan tudjuk ellenőrizni mégis, hogy működik-e NVME SSD-nél a TRIM-elés? Meghökkentő módszert ismertetek most veletek:
- ellenőrizni kell, hogy az NVME SSD működik-e!
Fut rajta az oprendszer, és/vagy működik a r/w a tárolásra használt SSD?
Ha a válasz igen, akkor a TRIM is rendben van.
Az eszköz saját Dataset Management parancskészlete, pontosabban annak deallocate utasítása folyamatosan hajtja végre a TRIM-nek megfelelő műveletet adatmozgatás közben, quasi online TRIM-melést végez.
NVM Express
The NVM Express command set has a generic Dataset Management command, for hinting the host's intent to the storage device on a set of block ranges. One of its operations, deallocate performs trim. It also has a Write Zeroes command that provides a deallocate hint and allows the disk to trim and return zeroes. forrás
Amit viszont mégis meg kell tennünk!
Inaktiváljuk a jó öreg libata-t és mindent, ami SATA-s SSD esetén TRIM szempontjából szükséges volt, most ügyesen inaktiváljuk!
- ha az FSTAB tartalmazza a discard kernel paramétert, azt abból töröljük!
- ha a systemd services-ek között ütemezve aktív az fstrim*, az inaktiváljuk!
*(ez sok vizet nem zavar amúgy, viszont abban az esetben, ha két külön csatolással ellátott SSD-nk van a gépben, akkor mindenképpen hagyjuk aktívan) májkimiki
Itt is érdemes lehet átnézni, amit az NVMe TRIM-mel kapcsolatban írnak...nyilván elég ellentmondásos lesz a végeredmény...
NVME SSD hőmérsékletének ellenőrzése
ha az alábbi blog megszünne, inkább leírok pér példát:
https://www.namhuy.net/212/how-to-check-nvme-ssd-temperature-in-linux
nvme-cli
parancs segítségével:
To install nvme-cli on Ubuntu distributions
$ sudo apt install nvme-cli
To install nvme-cli on Fedora
$ sudo dnf install nvme-cli
Kilistázhatjuk az eszközünkben található NVME SSD-inket:
$ sudo nvme list
(innen nyerjük ki az NVME eszközünk megnevezését, amit szükséges a terminal parancsba beillesztenünk)
a parancs kimenete:
ubyegon@ubyegon-AB350M-Gaming-3:~$ sudo nvme list
[sudo] ubyegon jelszava:
Node SN Model Namespace Usage Format FW Rev
--------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 S649NL0TB48610V Samsung SSD 980 1TB 1 93,87 GB / 1,00 TB 512 B + 0 B 2B4QFXO7
futtassuk az alábbi terminal parancsot:
$ sudo nvme smart-log /dev/nvme0n1
a parancs kimenete:
ubyegon@ubyegon-AB350M-Gaming-3:~$ sudo nvme smart-log /dev/nvme0n1
Smart Log for NVME device:nvme0n1 namespace-id:ffffffff
critical_warning : 0
temperature : 44 C (317 Kelvin)
available_spare : 100%
available_spare_threshold : 10%
percentage_used : 0%
endurance group critical warning summary: 0
data_units_read : 496.047
data_units_written : 665.793
host_read_commands : 15.505.711
host_write_commands : 14.564.735
controller_busy_time : 5
power_cycles : 30
power_on_hours : 7
unsafe_shutdowns : 3
media_errors : 0
num_err_log_entries : 0
Warning Temperature Time : 5
Critical Composite Temperature Time : 0
Temperature Sensor 1 : 44 C (317 Kelvin)
Temperature Sensor 2 : 51 C (324 Kelvin)
Thermal Management T1 Trans Count : 0
Thermal Management T2 Trans Count : 428
Thermal Management T1 Total Time : 0
Thermal Management T2 Total Time : 266
ubyegon@ubyegon-AB350M-Gaming-3:~$
Checking NVME SSD temperature with smartmontools
To install smartmontools in Ubuntu distributions
$ sudo apt install smartmontools
To install smartmontools in Fedora
$ sudo dnf install smartmontools
futtassuk az alábbi terminal parancsot:
$ sudo smartctl -A /dev/nvme0n1
a parancs kimenete:
ubyegon@ubyegon-AB350M-Gaming-3:~$ sudo smartctl -A /dev/nvme0n1
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.0-69-generic] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF SMART DATA SECTION ===
SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00
Temperature: 44 Celsius
Available Spare: 100%
Available Spare Threshold: 10%
Percentage Used: 0%
Data Units Read: 496.049 [253 GB]
Data Units Written: 665.855 [340 GB]
Host Read Commands: 15.505.721
Host Write Commands: 14.565.768
Controller Busy Time: 5
Power Cycles: 30
Power On Hours: 7
Unsafe Shutdowns: 3
Media and Data Integrity Errors: 0
Error Information Log Entries: 0
Warning Comp. Temperature Time: 5
Critical Comp. Temperature Time: 0
Temperature Sensor 1: 44 Celsius
Temperature Sensor 2: 52 Celsius
Thermal Temp. 2 Transition Count: 428
Thermal Temp. 2 Total Time: 266
#fwupd
Firmware frissítések a fwupd CLI és GNOME, KDE frontendjeivel
Az nvme-cli device management hivatalos leirása:
https://nvmexpress.org/open-source-nvme-ssd-management-utility-nvme-command-line-interface-nvme-cli/
További smart adatokat, secure erase, firmware update, memory cell erase, etc., infókat az alábbi linken találtok:
https://wiki.archlinux.org/title/Solid_state_drive/NVMe
Az FSTAB és a systemd-services szerkesztéséhez a Kezdő Linuxos topikban találtok helpet.
**************************************************************************************
Ha valakit mélyebben érdekel, a kernelbe 2012-ben már bekerült a linux-nvme