Ir al contenido

Módulo Storage

El módulo Storage realiza un análisis continuo de la integridad y el rendimiento de discos duros (HDs) y unidades de estado sólido (SSDs), recopilando información S.M.A.R.T. para identificar señales de desgaste, fallos inminentes y degradación del dispositivo

Lista todos los dispositivos de almacenamiento detectados en el sistema.

Retorno:
Array de strings con las rutas de los dispositivos

{ "/dev/sda", "/dev/sdb" }

Exemplo:

local devices = storage.list_devices()
for _, dev in ipairs(devices) do
print(dev)
end

Devuelve información general del disco.

Parámetros:

path (string): Ruta del dispositivo (ej.: "/dev/sda")

Retorno:

Table con los campos:

CampoTipoDescripción
device_modelstringModelo del disco
model_familystringFamilia del modelo (solo ATA)
serial_numberstringNúmero de serie
firmware_versionstringVersión del firmware
user_capacitystringCapacidad total
rotation_ratestringRPM (solo ATA)
form_factorstringFactor de forma (solo ATA)
interfacestringVelocidad de la interfaz (solo ATA)
protocolstring”ATA”, “NVMe” o “SCSI”
smart_supporttableInformación de soporte S.M.A.R.T.
logical_block_sizenumberTamaño del bloque lógico
physical_block_sizenumberTamaño del bloque físico
nvme_versionstringVersión NVMe (solo NVMe)

Exemplo de uso:

local info = storage.info("/dev/sda")
print(info.device_model, info.serial_number)

Devuelve el estado general de salud del disco (S.M.A.R.T. overall-health).

Parámetros:

path (string): Ruta del dispositivo

Retorno:

Table con los campos:

CampoTipoDescripción
passedbooleantrue si el disco pasó la prueba S.M.A.R.T.
statusstring”PASSED” o “FAILED”
messagestringMensaje descriptivo del estado

Exemplo de uso:

local h = storage.health("/dev/sda")
if h.passed then
print("Disco saudavel")
else
print("FALHA: " .. h.message)
end

Devuelve todos los atributos S.M.A.R.T. del disco.

Parámetros:

path (string): Ruta del dispositivo

Retorno:

Array de objetos, cada uno con los campos:

CampoTipoDescripción
idnumberID del atributo
namestringNombre del atributo (ex: “Temperature_Celsius”)
valuenumberValor normalizado
worstnumberPeor valor registrado
threshnumberUmbral de fallo
rawnumberValor bruto (raw)
when_failedstringIndicación de fallo
flagsstringFlags del atributo

Exemplo de uso:

local attrs = storage.attributes("/dev/sda")
for _, a in ipairs(attrs) do
print(a.id, a.name, a.raw)
end

Devuelve un atributo S.M.A.R.T. específico por su nombre.

Parámetros:

ParâmetroTipoDescrição
pathstringRuta del dispositivo
attr_namestringNombre del atributo (ex: “Temperature_Celsius”)

Retorno:

El objeto del atributo si se encuentra, nil en caso contrario

Exemplo de uso:

local attr = storage.attribute("/dev/sda", "Power_On_Hours")
if attr then
print("Horas ligadas:", attr.raw)
end

Devuelve la temperatura actual del disco en Celsius.

Parámetros:

path (string): Ruta del dispositivo

Retorno:

Temperatura en grados Celsius, o nil si no está disponible

Exemplo de uso:

local temp = storage.temperature("/dev/sda")
if temp then
print("Temperatura:", temp, "C")
end

Devuelve un resumen del registro de errores del disco.

Parámetros:

path (string): Ruta del dispositivo

Retorno:

Table ou nil con los campos (varía según el protocolo):

CampoTipoDescripción
ATA
countnumberCantidad de errores registrados
logged_errorsnumberErrores registrados en el log
NVMe
sizenumberTamaño del registro
readnumberEntradas leídas
unreadnumberEntradas no leídas

Exemplo de uso:

local log = storage.error_log("/dev/nvme0")
if log then
print("Erros nao lidos:", log.unread)
end

Devuelve el resultado del último self-test del disco.

Parámetros:

path (string): Ruta del dispositivo

Retorno:

Table ou nil con los campos (varía según el protocolo):

CampoDescripción
ATADevuelve la última prueba de la tabla de self-tests
NVMecurrent_self_test_operation (string): Operación actual

Exemplo de uso:

local test = storage.self_test("/dev/sda")
if test then
print("Status:", test.status)
end