Uma maneira rápida de verificar o tipo da unidade

10

Existe uma maneira rápida de entender um tipo de "armazenamento" no Linux? É um HDD ou SSD (ou NVMe)? Já se sabe que o host é uma máquina física e não uma VM. A primeira coisa que pensei foi rotationalsinalizar no /sys/block/<device>/queue/diretório. Mas, na minha experiência, mesmo para dispositivos SSD, pode conter o valor "1". A segunda maneira, mais realista e verdadeira, era uma latência. É um pouco mais difícil de medir (alguns funcionam com / proc / diskstats), mas parece mais preferível.

Existem outras maneiras? É importante mencionar que não preciso conhecer o modelo exato do "armazenamento", apenas seu tipo.

lesovsky
fonte
1
A medição da latência não é uma boa resposta, pois alguns discos rotacionais vêm com caches enormes, que podem ou não ser fáceis de distinguir dos dispositivos de estado sólido de capacidade total.
ANX
2
Junto com o smartctlmencionado aqui, outros utilitários, como lshwe lsblkrelatam as mesmas informações. Veja também askubuntu.com/q/792814/295286
Sergiy Kolodyazhnyy
1
para que você usaria essa informação? Em outras palavras, se eu lhe der um programa chamado isHDDorSSD, o que você fará com ele
aaaaa diz restabelecer Monica
Bonnie ++ pode mostrar SSD vs HDD baseado em IOPS (como pode dd)
Warren
@Sergiy Kolodyazhnyy, não encontrei essa informação em lshw. Também lsblkdepende de rotationalsinalizador no diretório sysfs, portanto, não posso confiar nele. smartctlusa a chamada ioctl e solicita informações diretamente do dispositivo.
lesovsky

Respostas:

13

Que tal algo como sudo smartctl -a /dev/<device> | grep Rotation- se isso retornar Rotation Rate: Solid State Device, então isso é um SSD. Também não tenho certeza se esse método à prova de balas.

Janne Pikkarainen
fonte
1
Parece bom, funciona mesmo com unidades conectadas através de placas RAID.
lesovsky 21/01/19
@lesovsky, eu não contaria com isso funcionando através de uma placa RAID. Não tenho SSDs conectados ao RAID com os quais posso testar, mas ele mostra taxas de rotação incorretas para os discos giratórios (todos os discos da matriz aparecem como 10k, quando na verdade todos são 7.2k).
Mark