QNAP TS-531X
QNAP · NAS file server, 5 bays, 32-bit ARM processor · TS-531X
what it is
A file server with five drive bays, in a tower casing. According to the manufacturer datasheet it has a quad-core AnnapurnaLabs Alpine processor, two 10 GbE SFP+ ports and two gigabit ports; the system sees four interfaces eth0–eth3. Memory from 2 GB.
The processor is 32-bit (uname -m returns armv7l). This has a practical consequence: most container images are published today only for amd64 and arm64, so they will not start on this NAS — the error reads no matching manifest, not "unsupported architecture". The container environment is there; the images are missing.
The drawing above is a generic symbol for the server class, not the appearance of this model.
The system reports itself as TS-X31X, and as the internal model — TS-X41. The serial number is returned by neither getcfg nor getsysinfo, and the ARM processor has no DMI table. The number is on the label and in the QTS panel.
what we read from it
SNMP is disabled from the factory. Once enabled, the standard load branches (UCD-SNMP) are silent, but QNAP's own tree (enterprise number 24681) returns:
- processor and memory: CPU usage, total and free memory, uptime,
- system temperature — the CPU temperature sensor on this model returns 0, meaning it is absent,
- bay table: name, disk temperature, model, capacity and SMART status (the word
GOOD, no counters), - volume table: name, file system, size, free space and status,
- network interfaces with counters — they duplicate the standard IF-MIB.
The same values appear twice in the tree. Branch 1.2 returns them as text with the unit inside ("11.30 %", "27 C/81 F"), branch 1.3 — as numbers ready for thresholds. A walk hits the text branch first.
Empty bays are also in the table and return spurious values: temperature 0, model and SMART --. An alarm "disk temperature = 0" or "SMART not equal to GOOD" will fire on a bay that never had a disk. An empty bay is recognized by the model --.
measured pitfalls
- The factory SNMP file allows writes.
snmpd.confcontainsrwcommunity publicnext torocommunity public. It has to be fixed before enabling SNMP. - The SNMP enable key is
Service Enable. WithEnableorServer Enablethe startup script exits silently. The script is named/etc/init.d/snmp, without.sh. - The community is set in the file, not via
setcfg— the daemon reads/etc/config/snmpd.confand ignores the values fromuLinux.conf. - A saved setting does not stop the service.
getcfg FTP EnablereturnsFALSE, while the FTP server keeps listening on port 21. Every service change also has to be checked by looking at the listening port. - Package scripts are silent, because they redirect all output to their own log
start-stop.log. Silence on the console says nothing about the outcome;qpkg_clireports to the console. - Stopping a package takes a dozen or so seconds — a reading right after the command shows the state from before.
- BusyBox 1.01 from 2018 does not know
grep -morgrep -Eand has noethtool,lsblk,ss. - A root directory at 94% usage is normal — it is the system image in a fixed-size ramdisk. Space for updates is in
/mnt/HDA_ROOT.
LVM pool under snapshots
Volumes sit on an LVM thin pool. With snapshots enabled, every write takes new blocks in the pool. When the pool reaches 100%, the volume switches to read-only mode.
dfwill not show it — it sees the volume, not the pool; we measured 77% on the volume with 90% in the pool.- Neither will SNMP — pool usage is not in any branch.
- The reading comes from
lvs -o lv_name,lv_size,data_percent,metadata_percent. Metadata has a separate counter, and exhausting it damages the pool irreversibly.
what we cannot read
- LVM pool and metadata usage — neither over SNMP nor in
df. - SMART counters — only a verbal rating.
- Serial number from the system.
- SFP+ port speed without a link — the system has no
ethtool.
full parameter list
A full parameter list for this model is not here yet — the ones described above are those we have read and verified. A missing list does not mean the device exposes nothing more.