- Raspberry Pi'yi birkaç haftadan birkaç yıla kadar müdahalesiz durumda tutmak istiyorsanız, bir arıza olduğunda otomatik olarak toparlanacağı yolları önceden tasarlamanız gerekir
- Bu rehber, mevcut SD kart aşınmasını azaltma yazısının yerini alan daha geniş bir güvenilirlik serisinin parçası; sorun türlerine göre önlemleri ve izleme ipuçlarını bir araya getiriyor
- Başlıca riskler WiFi bağlantı hatası, servis kesintisi, donanım·firmware·sürücü kararsızlığından kaynaklanan çökme ve SD kartın aşınması veya kapasitesinin dolması olarak ayrılıyor
- SD kartla ilgili sorunlar, uygun microSD seçimi, swap kullanılmaması, yazmaların azaltılması, salt okunur kök dosya sistemi ve gerekirse
fsckçalıştırılmasıyla hafifletilebilir - journaling devre dışı bırakma, aşınmayı azaltabilse de çökme veya elektrik kesintisinde dosya sistemi bozulması riskini artırdığı için uzun vadeli kararlılık hedefiyle uyumlu değildir
Uzun süreli çalışmada önce bakılması gereken arıza noktaları
- Raspberry Pi'yi uzun süre çevrimiçi tutmak için, her arıza durumunda Pi'nin nasıl toparlanacağını değerlendirmek ve çözümün fayda ve risklerini birlikte karşılaştırmak gerekir
- Yazar, evinde Raspberry Pi'yi düşük güçlü FM vericisi ve UPS enerji monitörü gibi amaçlarla kullanıyor
- Raspberry Pi Reliability serisi, bizzat yaşanan sorun türlerini ve çözüm yollarını derliyor; ayrıca çoğunlukla Uptime Kuma kullanan izleme ipuçlarını da içeriyor
- Bu seri, mevcut SD kart aşınmasını azaltma yazısından daha kapsamlı bir rehber olmayı amaçlıyor ve bağlantısı verilen yazılar güncellenmiş alternatifler olarak işlev görüyor
Sorun türlerine göre önlemler ve kaçınılması gereken tercihler
- WiFi bağlantı hatası, uzun süreli çalışmada önce düşünülmesi gereken arıza türüdür
- Yazılım servisinin durması, ayrı bir kurtarma stratejisi gerektiren bir alandır
- Donanım·firmware·sürücü kararsızlığı çökmelere yol açabilir
- SD kart aşınabilir veya tamamen dolabilir; bu da işletim biçimini etkiler
- İşe doğru microSD kartı seçmekle başlanır
- SD kartı swap için kullanmamak
- SD karta yazmaları azaltma, özellikle log yazımlarını azaltma ve kök dosya sistemini salt okunur yapma değerlendirilebilir
- Salt okunur kök dosya sistemi kullanılmıyorsa, dosya sistemini sık sık denetlemek gerekir
- Gereksiz servisleri devre dışı bırakmak, hem yazılım kararlılığına hem de SD kart aşınmasını azaltmaya yardımcı olur
- Müdahaleci değişiklikler uygulamadan önce, riskler ve faydalar mutlaka karşılaştırılmalıdır
- Arıza gerçekten meydana geldiğinde, nedenini anlamak için uzaktan loglama faydalıdır
- Stack Exchange'deki bir yazı, Pi dosya sisteminde journaling'i devre dışı bırakmayı öneriyor; ancak bu, çökme veya elektrik kesintisinde dosya sistemi bozulması olasılığını artırdığı için kaçınılmalıdır
1 yorum
Hacker News yorumları
Bunun yerine Lenovo mini PC almaya başladım; 18cm x 18cm x 3cm boyutlarında, yani hâlâ oldukça küçük
Bugünlerde çok ucuza bulunabiliyor ve düzgün bir kasa ile soğutmaya da sahip: https://psref.lenovo.com/syspool/Sys/PDF/ThinkCentre/ThinkCe...
Hemen yanımda bir tane çalışıyor; i5-8500T, 32GB RAM, 2 SSD var ve
powertopotomatik ayarı açıkken şu anda boşta 5W tüketiyor: https://wiki.archlinux.org/title/powertopMikrodenetleyiciye seri bağlantı eklenebilir ama bu durumda çözüm daha az zarif oluyor
Yakın zamanda NAS'ımı (N5105) ve servis makinemi (3215U) de eBay ya da bit pazarından aldığım ikinci el mini PC'lere ve kilidi açılmış Chromebook'lara taşıdım. Ucuzlar, güç tüketimleri de düşük kalıyor ama işlem performansları Pi ile kıyaslanmayacak kadar farklı
Avustralya'da kira süresi dolan kurumsal cihazlardan binlercesi piyasaya çıkıyor. 8500T ve 8700T çipleri harika, resmî olarak Windows 11 çalıştırabiliyorlar ve donanımsal transcode da içeriyorlar; bu yüzden Plex sunucusu için iyiler
Bendekilerden birini 2 adet 2TB SSD ve 64GB RAM ile yükselttim; sorunsuz şekilde 24/7 çalışıyor
Muhtemelen en büyük sorun kaynağı SD karttı ve RPi'ye SSD gibi bir şey bağlamanın maliyetini de düşününce artık fiyat/performans açısından mantıklı değildi
İlk tavsiye dosya sisteminde journaling modunu açmak olmamalı
İlk tavsiye, dosya sistemini salt okunur bağlamak,
/var'ı belleğe bağlamak ve tüm logları RPi yerine düzgün bir UPS ve NUT çalışan bir düğüme göndermek olmalı. Dosya sistemi salt okunur ya da geçici olduğunda elektrik kesintisi fiilen zararsız hâle geliyorTek bir RPi için fazla olabilir ama yazar evin çeşitli yerlerinde birkaç tane kullandığını söylemişti
Ayrıca A/B sistem bölümleri bulundurup yükseltmeleri tüm bölümü yeniden yazarak yapmak ve ardından etkin bölümü değiştirmek de iyi olur. Böylece yeni sürümde ölümcül bir hata olsa bile her zaman çalışan bir sistem bölümü kalır ve kurtarma kolaylaşır
Bu yöntemle 20 yılı aşkın süredir farklı roller için pek çok küçük/tek kartlı PC'yi başarıyla kullanıyorum
https://www.dzombak.com/blog/2021/11/Reducing-SD-Card-Wear-o...
/vardeğil,/tmpgibi yerlerde de tmpfs kullanılmalı. Bu, SD kart ömrünü ciddi şekilde uzatırYeni disk imajı nasıl oluşturuluyor ve her cihaza giriş yapıp tek tek mi yükseltiyorsunuz, yoksa bir otomasyon var mı?
/var'ı belleğe bağlamak cihazın belleğini aşabilir/var/lib/docker'ı yardımcı depolamaya taşımak gerekebilir2011'de Global Scale Technologies'in ilk plug computer'larında çalışan ticari bir ürün geliştirmiştim
Sadece 20 adet sattık ama hepsi SD kart bozulması nedeniyle iade edildi ve apar topar kök dosya sistemini salt okunur yapmak zorunda kaldık. O zamandan beri bu yaklaşımı seviyorum
O ilk ticari ürün, çok küçük ev otomasyonu özellikleri içeren bir ev güvenlik ürünüydü; 2021'de yeni bir adla açık kaynak olarak yayımlandı ve şimdi Jetson serisi tek kartlı bilgisayarlarda çalışıyor: https://github.com/hcfman/sbts-install
Artık tetikleyici olarak gelişmiş YOLO modellerini de içeriyor. Bağımsız bir ürün olarak tasarlandığı için HTTPS desteği vardı ve tüm sertifika işlemlerini saran bir GUI de mevcuttu. Bu özellik açık kaynak sürümde de kaldı; böylece cihazlar arası REST çağrılarında self-signed sertifikaları kullanmak kolaylaşıyor
Ayrıca çok bölümlü bellek overlayFS yaklaşımını koruyup genişlettim ve kurulum sürecinde önce
sbts-basesisteminin kurulmasını sağlayarak başkalarının bunu kendi temel sistemleri olarak kullanabilmesine imkân tanıdımZamanla her disk yazımında sistem 1-2 saniyeliğine donmaya başladı ve bu oldukça can sıkıcıydı
Böyle bir şey yapmak isteyenlere önce, gerekli işi ESP32 gibi küçük bir kartla halledip halledemeyeceklerine bakmalarını tavsiye etmek isterim
Güç tüketimi çok daha düşüktür, fiyatı birkaç dolar seviyesindedir ve birçok kullanım için yeterlidir. Python tarafını tercih ediyorsanız birçok kart hem MicroPython hem de CircuitPython destekler
İlk satın alma maliyetini ve sürekli gelen elektrik giderini azaltabileceğiniz için bakmaya değer
Mikrodenetleyiciyle yaptığım projeler, Pi tabanlı projelerden onlarca yıl ölçeğinde daha kararlı oldu; ayrıca varsayılan SSH ayarlarını değiştirmeyi unutup bir botnet'in parçası olma endişesi de daha az. Varsayılan
pi:raspberrydeğil miydi diye hatırlıyorumMicroPython dışında, ESP32C3 için no_std Rust desteği de her ay daha iyi hale geliyor. Eğlencesine küçük ev otomasyonu projeleri yapan biri için ek kısıtlar işi daha eğlenceli ve tatmin edici bile kılabilir
Yine de Linux'a zaten aşina olanlar için Pi genelde çok daha kolay ve benim deneyimime göre maliyet en az 10 kat daha yüksek. Aynı düzeyde kararlılık elde etmek için SSD'den açılış, ağdan açılış, salt okunur kök dosya sistemi, watchdog ayarı gibi ek yapılandırmalar ve daha yüksek güç tüketimi, özellikle de Pi 5'in tüketimi, karara dahil edilmeli
ESP32 üzerinde parola yöneticisi sunucusu çalıştırabilir misin? Hayır. Pi-hole? Olmaz. Unifi Controller? Olmaz
Bu öneri, sanki insanların Pi'yi garaj kapısı denetleyicisi gibi şeylerde kullandığını varsayıyor gibi; refleks olarak ESP32'yi Pi yerine önermek pek yardımcı olmuyor
Bir şey çalışmadığında HDMI ve klavye bağlayıp, tüm yaygın yardımcı araçların bulunduğu mainline Linux ortamında anında hata ayıklama yapamazsınız
Arduino yerine ilk kez MicroPython kullandım ve gerçekten çok hoşuma gitti; şaşırtıcı biçimde çok da kararlı. Eskiden Wi‑Fi güç durumu yüzünden projeler uzun vadede sık sık bozulurdu ama şu ana kadar MicroPython yapısında sorun yaşamadım
“Wi‑Fi bağlantısının iyi olup olmadığını periyodik olarak kontrol edip, değilse Wi‑Fi arayüzünü ya da tüm Pi'yi yeniden başlatan bir betiğe çıkıyor” denmesi bir hack değil, en iyi uygulamadır
Nasıl veri merkezindeki kritik sunucularda IPMI ya da uzaktan kontrol edilebilen RPDU prizleri gibi bant dışı erişim olması gerekiyorsa, erişimi zor uzak konumlardaki kritik sunucularda da watchdog betikleri olmalı
Elbette yeniden başlatmanın etkisini ve yeniden başlayana kadar oluşacak kesintiyi hesaba katıp kullanım amacına göre ayarlamak gerekir; en azından daha sonra inceleyebilmek için anomali olayları kaydedilebilir
Uzak bir RPi dağıttığımda yaptığım ilk şey basit bir Bash watchdog betiği olmuştu. Bu sadece Wi‑Fi sorunları için değil, bozulabilecek ve yeniden başlatmayla düzeltilebilecek onlarca farklı durum içindi
init'in servisleri yönetebileceğine güvenemiyorsanız, sistemin servis sunacağına dair garanti nereden geliyor diye sormak gerekir
Bunu betiklerle yeniden kurabilirsiniz ama biz o aşamayı çoktan geçtik. systemd'den çok söz ediyorum ama kayırmak için değil; alternatifler de var
Çoğu servis, içinde bulunduğu ortamı düzgün kullanmıyor. Sanki web sunucusunun belirli mount'lara ihtiyaç duyduğunu bildirmesi gibi siteye özel özelleştirmeler bekleniyor
Sık kaçırılan yönergelerden biri
PartOf=. Bir servisin veya kaynağın yeniden başlatılmasını başka bir şeyle ilişkilendirebilirsinizDaha basit olarak, NetworkManager'ın Wi‑Fi/portal kontrolünü özelleştirmenin bir yolunu sunması gerekir gibi görünüyor. Tamamen uç noktaya gitmek gerekmeyebilir
Yönlendirici için uygun SSID'ye bağlanmayı deniyor ve yönlendiriciye ping atıyorum; ikisinden biri başarısız olursa başka bir yönlendiriciye geçiyorum. Aynı yapılandırmaya sahip aynı yönlendiriciden iki tane var ve güçleri bir SPDT rölenin NO/NC kontaklarına bağlı; biri başarısız olursa sadece rölenin durumunu değiştirip diğerine geçiyorum
Yönlendirici çalışıyorsa watchdog kablo modemin durum sayfasını getiriyor ve ISP ağı içinde CMTS ya da ona yakın bir cihaz gibi görünen üç IP'den herhangi birine ping atarak HFC altyapısının çalışıp çalışmadığını doğruluyor. Çünkü yeniden başlatmayla düzelmeyecek bir arızada boşuna yeniden başlatmak istemiyorum
Ne yazık ki aynı MAC'e sahip iki kablo modemi bulundurup aralarında geçiş yapmanın bir yolunu bulamadım ve ISP de aynı hesapta iki modeme izin vermiyor; bu yüzden kablo modem arızalanırsa yeniden başlatıp düzelmesini ummaktan başka çare yok
Buna, elektrik kesintisinde bile yönlendirici ve modemi 30 saatten fazla çalıştırabilen bir batarya rafı ekledim; Mayıs 2020'de kurduğumdan beri neredeyse sürekli çevrimiçi kaldı. Kod korkunç ama pratikte çok sağlam çalışıyor
Mükemmel kod ve tasarımla bile engellenemeyecek şeyler olur; watchdog zamanlayıcısı sonsuz döngüyü kırıp sistemi sıfırlar. Kozmik ışınların biti çevirmesi ya da anlık voltaj düşüşleri gibi durumlar vardır; Raspberry Pi'de ayrıca SD kart bozulması da düşünülmeli
Bildiğim kadarıyla Raspberry Pi'de yerleşik bir donanım watchdog zamanlayıcısı var. Arduino'da olduğundan ise eminim
Yaklaşık 10 yıldır üretim ortamında binlerce Pi çalıştırıyoruz ve artık x86’a geçmeye başlıyoruz
Pi’nin fiyat/performans oranı artık eskisi gibi değil. Kısa süre önce State of Open Con’da bu deneyimi anlattım: https://youtu.be/vX-qK9mxKZI
Hizmetimizde henüz kullanmıyoruz ama dokümantasyona göre oldukça sağlam görünüyor ve disk/SD üzerindeki verileri koruyabiliyor
Biz hâlâ Pi’den oldukça memnunuz ve daha açık API’ler olan Mesa/DRM/KMS/FFmpeg’e geçiş de ancak şimdi gerçekten kullanılabilir hâle geldiği için çok umut verici görünüyor
Ana kullanım alanımız hâlâ dijital signage olduğu için ham işlem performansı çok önemli değil. Maliyetli kısım olan video decode zaten doğal olarak hızlandırılıyor ve Pi’de mümkün olan geriye dönük uyumluluk mükemmel. Hâlâ neredeyse 10 yıldır Pi1B+ çalıştırmaya devam eden ve sunduğumuz en güncel OS sürümünü kullanan müşterilerimiz var
Ömre de bakmak lazım; orada da ARM’in x86’dan daha uzun ömürlü olacağını düşünüyorum. Modülerlik açısından da ARM, x86’dan daha iyi. Çünkü çok sayıda küçük cihaz kullanmak daha ucuz
Ama ölçeklenebilirlik, yani bugünkü ekonomide işin ticari tarafı açısından x86, ARM’den daha iyi
Ayrıca bütün grafiklerin watt başına verilmesi gerekir. 2’den 4’e geçince performansın artması yeni bir haber değil; önemli olan watt başına performansın artıp artmadığı
Bu açıdan bakınca Raspberry Pi 5’in watt başına performans artışının beklendiği kadar büyük olmadığını görebilirsiniz. Sanki insanlık tarihinde kalıcı zirveye ulaşmış gibi
Son olarak, şu anda herhangi bir ilerleme için tek umut performans değil açıklık tarafında JH7110, ama 3D desteği geriden geliyor
Bunların hiçbirini yapmamış olmama rağmen bazı Pi’ler, yeni modellerle değiştirilene kadar yıllarca sorunsuz çalıştı
HomeKit/Zigbee ağ geçidi ve veri kaydediciler şu anda Pi 4. Sonuçta asıl mesele iyi bir SD kart ve kararlı güç beslemesi gibi görünüyor
pibenchmark’ın iyi bir bilgi kaynağı olduğunu düşünüyorum: https://pibenchmarks.com/
Satın almadan önce SD kartları mutlaka karşılaştırmak gerekir
Yeterince çok cihaz çalıştırırsanız ters gidebilecek her şey ters gider ve aklınıza bile gelmeyen yeni arıza modları da ortaya çıkar
Sonrasında bu kadar çok bozuk kart raporu gelmesinin nedeni muhtemelen buydu
micro SD karta Raspbian kurmak, Cups’ı ayarlamak ve USB’yi yazıcıya takmak dışında hiçbir şey yapmadım. Bir diğeri de ağ yazıcılarını yönetiyor. Ondan sonra olduğu gibi bıraktım
Artık çoğunu SSD’ye geçirdim. Yoksa fazla zar atmak gibi geliyor
SD kart konusunun ilk sırada olmamasına şaşırdım, yazıda USB boot önerilmemesine ise daha da şaşırdım
Bir Pi’yi yıllardır neredeyse 7/24 açık tutuyorum ve sorun yaşamamış olmamın nedenini 1) Alpine’i diske neredeyse hiç dokunmayacak şekilde yapılandırmam, 2) bozulabilecek bir SD kartın olmaması olarak görüyorum. USB’nin neden daha güvenilir olduğunu bilmiyorum ama deneyimsel olarak öyleydi
Başarısız olmasının tek nedeni elektrik kesilmesi. 10 dakika dayanacak bir batarya tamamen yeterli olurdu gibi geliyor
Örneğin https://wiki.alpinelinux.org/wiki/Installation#Diskless_Mode gibi bir şeyi mi kastediyorsun, öğrenmek isterim
Kartı çıkardım; o kartı ve sonraki Pi’yi USB SSD’ye geçirip kullanıyorum. Biraz korkutucuydu. Yine de daha önce dediğim gibi micro SD ile yıllardır sorunsuz çalışan bir Cups sunucusu Pi’m de var
İki RPi de hem USB’den boot ediyor hem de USB’den çalışıyor; yıllardır gayet iyi durumdalar
2017’den beri aynı SD kartla iki Pi’yi neredeyse sürekli çalıştırıyorum. Yaklaşık 2-3 kez elektrik kesintisi oldu
Biri DNS/yazdırma sunucusu, diğeri Kodi; medya ise harici NFS üzerinde. Benim yaptığım tek şey tüm logları kapatmak oldu ve hiç sorun yaşamadım
İkisi de SanDisk 2GB kart kullanıyor. “Alan az → bit yoğunluğu düşük → güvenilirlik iyi” diye biraz safça düşündüğümü belirsiz şekilde hatırlıyorum
log2ram(github/azlux/log2ram) kullanıyorum ve sonuçtan memnunum/variçine bir RAM diski mount ediyor ve logları yalnızca ara sıra RAM diskten SD karta kopyalıyor. Bu sayede SD kartı ağır şekilde yıpratmadan tüm logları görebiliyorumÇoğu zaman açık kalıyor ama bağlı USB güç kaynağını yanlışlıkla kapattığım zamanlar oluyor. Bu, 5 portlu küçük bir güç kaynağı; o da neredeyse aynı yaşta ve benim kurulumumda güç düğmesine fazla kolay basılıyor
Temelde tüm logları ve web sayfalarını tmpfs üzerine mount ettim; veritabanı SD kartta ve her 5 dakikada bir yazılıyor
Çeşitli kurulumlardan geçti ama şu anda yedek DNS sunucusu. Dosya sistemine bakınca 2018’den beri Pi-hole olarak kullanıldığı görülüyor ve birkaç yeniden başlatma ile taşınma dışında fiilen 7/24 çalışıyor
SD’ye hiçbir şey yazmıyor, her şeyi
/dev/shmiçindeki RAM’e gönderiyor. Pi-hole nadiren çökerse listeleri yeniden indirmek yeterli oluyor; zaten her gün indiriyorSonradan bunları yerel DNS ve Tailscale düğümü olarak da kullanmaya başladım. Aylarca yeniden başlatmadığım oldu; en uzun çalışma süresi yaklaşık 11 aydı. Çok sağlamdı. UPS’e bağlı tutmak kesinlikle yardımcı oluyor
“Raspberry Pi’yi haftalar, aylar, yıllar boyunca müdahalesiz şekilde çevrimiçi tutmak bir bakıma sanattır” denmiş ama ben yerleşik dosya sistemi içeren NetBSD çekirdeği önyüklüyorum
Örneğin INSTALL çekirdeğini ya da özel bir çekirdeği kullanıyorum. Önyüklemeden hemen sonra SD kart çıkarılabiliyor ve isteğe bağlı olarak bağlı depolamaya
chrootyapılıyorBöylece haftalar, aylar, yıllar boyunca çalışıyor. Blog yazarının sözünü ettiği sorunları yaşamadım
Bulduğum tek sorun, kasa kullanıldığında güç konnektörü tarafı. Örneğin yedek kablo kullanıldığında bağlantı zayıf olabiliyor. Yeni Pi’lerde bu düzelmiş olabilir
Ama çoğu bilgisayar için de benzer şey söylenebilir. Kablolar ve konnektörler genelde zayıf ve ucuz parçalardır. Hareket nedeniyle güç kesilirse Pi otomatik olarak yeniden başlar