Een hele tijd geleden had ik een Raspberry Pi gekocht. In eerste instantie met een (Micro)SD maar gebruik nu een SSD. Recent ben ik hier weer meer mee gaan doen. Met veel kunst- en vliegwerk heb ik hier nu een (lokaal) webservertje op draaien (nginx/PHP/MariaDB). Ik kan hier direct vanaf werken via Samba wat het ideaal maakt als ontwikkelmachine zonder dat ik daar een volledige PC/laptop voor nodig heb. Het enige probleem wat ik heb is dat deze af en toe crasht, echt zwaar crasht. Maar na twee reboots (en MariaDB een keer in recovery mode aanzwengel) is alles weer in de lucht.

Voor iemand die niet echt in de linux systeembeheer of -architectuur wereld zit is dit voor mij een redelijk complex probleem, ik kan simpelweg niet overzien wat er allemaal gebeurt. Ook wordt het analyseren van het daadwerkelijk probleem hierdoor bemoeilijkt. Wat ik wel kan doen is beschrijven wat er gebeurt.

Hardware
Raspberry Pi 3 Model B (revisie a02082)
Official Raspberry Pi 3 Power Supply

Randapparatuur (gekoppeld aan de RPi)
USB 3.0 - 22 pins SATA aansluiting voor 2.5" harde schijven
(met hieraan) Kingston SUV400S37 120G
USB toetsenbord
USB muis (wordt niet gebruikt, ik boot in shell, niet in de GUI)
monitor (staat meestal uit)

Software
Raspbian versie 9 (stretch), handmatige update van jessie (don't ask lol, ik had beter gewoon een nieuwe image kunnen installeren)

Symptomen
Na verloop van tijd loopt het systeem vast, deze is niet langer extern toegankelijk, de webserver reageert ook niet meer. Als ik achter de RPi zit dan worden vele varianten van de volgende melding uitgespuugd:
EXT4-fs error (device sda2): ext4_find_entry:1436: inode #131094: comm nmbd: reading directory lblock 0

Commando's worden ook niet meer herkend. Het enige wat ik op dat moment kan doen is de voeding eruit trekken en rebooten. De eerstvolgende reboot faalt ook altijd (een component tijdens het opstarten rapporteert [FAILURE]), ik heb getracht een manier te vinden om te achterhalen wat dit onderdeel is, maar de machine reboot meteen (misschien een boot_delay inbouwen?). Ook het raadplegen van boot- en systeemlogs na de tweede reboot bevat geen informatie (meer?) over de vorige niet-succesvolle boot.

Analyse
Ik heb echt veel gezocht op het internet, maar heb de oplossing nog niet gevonden. Er worden ook legio potentiële oorzaken aangedragen, met allerlei complexe linuxcommando's c.q. toverformules of configuratieregels die je ergens in de krochten van het systeem moet aanpassen... Een greep van oorzaken:
- voedingsprobleem (tijdens piekbelasting)
ik doe geen aannames over wat het is, want dat weet ik simpelweg niet, maar deze lijkt mij onwaarschijnlijk omdat er geen sprake is van piekbelasting, en hij knalt er altijd redelijk consequent uit na 10-20 dagen (tenzij er een loodzware cron is die tweewekelijks draait?)

- slijtage SSD
deze lijkt mij ook onwaarschijnlijk, de SSD is/was nieuw, en de rest van de tijd is er geen enkel probleem

- complexe technische oorzaak?
had ergens gelezen dat er iets was met niet om kunnen gaan met IPv6 adressen, of een of andere bug in de aansturing van IPv4, maar ik kan hier echt geen waardeoordeel over geven, ik heb geloof ik wel draadloos netwerk uitgeschakeld op mijn RPi omdat ik deze toch niet gebruik

Suggesties?
Misschien is de huidige opzet (SSD met SATA koppelstuk) niet echt ideaal en moet ik denken over een SSD met externe voeding? Of wellicht de "officiële" standaard adapter van de RPi vervangen, omdat daar ook nog wel wat berichtgeving over is dat deze redelijk bagger is? Wel zijn er een hoop webtutorials (waarvan de kwaliteit nogal eens verschilt ;)) die zo een SSD aan hun RPi fietsen ogenschijnlijk zonder enig probleem.

Ook kan ik niet goed controleren of er iets met de SSD mis is (ik kan fsck namelijk niet uitvoeren op een gemounte (systeem)schijf?).

Ik heb wel een beetje het idee dat ik bij alles wat ik probeer een beetje buitenspel wordt gezet :p. Als iemand enig idee heeft of iets soortgelijks heeft meegemaakt, I'm all ears :).

On a sidenote: als ik het apparaat reboot (sudo reboot), start deze nooit opnieuw op als ik dit commando remote aanroep (via SSH), en... soms (?!) als ik dat rechtstreeks vanaf de prompt doe. Dit kan ik ook niet helemaal plaatsen. Misschien heeft dit er iets mee te maken, misschien helemaal niets. Ik heb begrepen dat de RPi geen power saving heeft, deze is altijd op 100% vermogen actief maar wellicht is dat ondertussen veranderd?
Hoi Thomas,
Mijn advies is om dit bericht/vraag bij Tweakers te plaatsen. Daar zitten echte DIE HARDS. Ik overweeg hetzelfde te gaan doen. En heb aldaar veel gelezen en gezien. Succes.
Het is voor mij ook een wilde gok, maar een RPi heeft geen koeler standaard er op zitten.
Dus het zou best eens kunnen dat het apparaat gewoon te heet word tijdens piekbelasting?
Temperatuur. Hm, volgens mij loopt dat ding vast als ik er niets mee doe, er is niet (nooit) echt sprake van piekbelasting. Ik weet niet precies wanneer deze crasht (overdag, 's-nachts), maar als dit een temperatuur issue zou zijn dan zou ik verwachten dat 'ie er met dit weer een stuk vaker uitligt :p (wat ie vooralsnog niet lijkt te doen).
@Thomas, het hoeft natuurlijk niet zo te zijn dat het temperatuur is, maar omdat je ook een symptoom erbij zet "tijdens het booten" was dat een eerste ingeving. Zo'n koelertje is nu niet echt een mega investering dus zou dat een optie kunnen zijn om temperatuur uit te sluiten.
Kijk eens hoe warm hij word:

cpu=$(</sys/class/thermal/thermal_zone0/temp)


echo "$((cpu/1000)) c"

Disclaimer, even google gedaan dus heb het niet getest. :)
Het is vrijwel zeker het OS op de (micro)SD dat crashed. Ik heb hier ook een jaar of twee mee geworsteld en velen beweren dat hun (micro)SD het niet doet of beter is maar het gebeurt gewoon. Probeer maar eens, maak een image backup en zet die terug zodra de crash optreedt. Werkt meteen weer goed. Incidenteel is er wel eens een SD die het wel goed doet maar ik heb een tiental weggegooid. Die dingen zijn gewoon niet geschikt om een OS te servicen op Raspberry Pi. Een puntje van aandacht is ook wel de belasting van de USB poorten maar sinds ik het OS niet meer op de (micro)SD draai is het probleem totaal verdwenen. Ik start alleen nog maar op op de (micro)SD met de /boot partitie en de rest van het OS staat op een USB stick van 32Gb die nu al zeker drie jaar ononderbroken online is op de Raspberry die voorheen om de tien dagen crashte. Ik ben nu met vakantie dus een linkje om het grootste deel van OS naar USB stick te brengen heb ik even niet bij de hand.

Ik draai Debian linux op de Pi en ook de migratie van Jessie naar Stretch was simpel. Wat jij zegt: "Met veel kunst- en vliegwerk heb ik hier nu een (lokaal) webservertje...." is wel pech, het is namelijk heel simpel op Linux. Misschien met wat hulp kom je sneller tot een goed resultaat.

Ik heb ook een OrangePi van Ali en die presteert beter dan Raspberry en die draait wel probleemloos met een MicroSD. Op deze OrangePi draaien drie websites onder Apache en Domotics voor de Home Domotica. De Raspberry is mijn ontwikkel machientje en tevens toegang tot het netwerk van buiten, hier draai ik OpenVPN op met eigen certificaten.
@Jan
Overclocking is niet van toepassing. Zoals eerder aangegeven heb ik mijn draadloze netwerk uitgeschakeld. Weet niet of ik dan in de problemen raak met power saving settings, maar lijkt mij onwaarschijnlijk. Verder is dat een topic uit 2012, dus dat doet mij ook afvragen of de informatie nog relevant is / van toepassing is op mijn situatie.

@Bart
55 c, dus toasty warm? Lijkt mij binnen de grenzen voor normale operatie.

@JohnD
Juist vanwege die stabiliteitsverhalen was ik overgestapt op een SSD :), ik gebruik dus in het geheel geen (micro)SD meer. Hiervoor moest je een of andere "one time programmable memory" bit omgooien zodat je van USB kan booten. Het is allemaal ook vrij simpel, maar ik weet graag van de hoed én de rand :).

Bedankt voor de reacties tot nu toe.
Om te achterhalen wat er gebeurt kan je kijken in de logfiles op /var/log en dan de files messages, syslog en dergelijke. Fouten moet je daarin terug kunnen vinden, zie:

https://www.linux.com/learn/sysadmin/viewing-linux-logs-command-line


EXT4-fs error (device sda2): ext4_find_entry:1436: inode #131094: comm nmbd: reading directory lblock 0 

Dit geeft toch aan dat je filesysteem vernaggeld is. Hebben de Sd's een eigen voeding (adapter) of voedt je ze uit de USB van de Raspberry? Als dit laatste het geval is dan is dat je probleem. De Pi is niet in staat om USB's hubs gevoed of niet lekker aan te sturen zo heb ik ervaren. Misschien de SSD's eruit en een USB stick van 64 of 128 Gb direct in de Raspberry zonder Hubje ofzo.
Ja had ook al naar voedingshulpstukken zitten kijken (de SSD ontvangt nu voeding via de RPi), maar blijft de vraag, waarom pas na 10-20 dagen? Dat systeem staat het grootste deel van zijn tijd gewoon uit zijn neus te eten. En als ik code zit te kloppen, (inefficiënte) scriptjes aan het uitvoeren ben en updates+upgrades aan het uitvoeren ben is het nog nooit fout gegaan en dat is eigenlijk de enige extra "activiteit" die dat systeem heeft, naast alles wat ie automatisch onderwater uitspookt. Het is waarschijnlijk een voedingsissue, maar wat zorgt ervoor dat ie er pas na een tijd uitknalt? Als het echt met de voeding te maken heeft, waarom heb ik daar dan niet continu last van?
Een fsck op een gemounte schijf werkt niet, in het ergste geval beschadig je het ding.
Je zult de schijf eerst moeten unmounten met een: umount /dev/sda2, hierna kun je de fsck commando reeks er op loslaten & daarna het schijf weer mounten met een mount /dev/sda2
Heb het idee dat het een kernel probleem betreft vanwege de wederkerende tijdsduur wegens de ssd/ext4 opzet.
Aangezien ik geen idee heb hoe groot of de ruimte op de ssd is kan het wel eens zijn dat de errorlogs volgelopen zijn onder; /var/log/hdd.log, /var/log/nginx/error.log of /var/log/nginx/access.log.
Het effect hier van uit zich in fouten die niet in de logs terug te vinden zijn wegens buffer vol.

P.s, een ssd is ook niet zaligmakend qua techniek, na een 1000x /r/w/x gaat de kwaliteit snel achteruit.

Reageren