Bir USB sabit disk satın almak isteyen herkes değilim ama SD kartların birçok okuma ve yazma tekrarı için uygun olmadığını biliyorum.
Raspberry Pi'm kullanılırken SD kartımın ömrünü uzatmak için atabileceğim herhangi bir adım var mı?
Bir USB sabit disk satın almak isteyen herkes değilim ama SD kartların birçok okuma ve yazma tekrarı için uygun olmadığını biliyorum.
Raspberry Pi'm kullanılırken SD kartımın ömrünü uzatmak için atabileceğim herhangi bir adım var mı?
Yanıtlar:
Bu yöntemler, okuma / yazma sayısını çeşitli şekillerde en aza indirerek SD kartın ömrünü uzatmalıdır:
Değiştirme, SD kartın bir kısmını geçici bellek olarak kullanma işlemidir. Bu, mevcut RAM miktarını artıracak, ancak çok sayıda okuma / yazma ile sonuçlanacaktır. Performansı önemli ölçüde artırmak olası değildir.
Komutla değiş tokuşu devre dışı bırak swapoff
:
sudo swapoff --all
Ayrıca yeniden başlattıktan sonra geri gelmesini engellemelisiniz:
sudo apt-get remove dphys-swapfile
kalıcı olarak kaldırabilirsiniz. Kaldırmak için en iyisidir, çünkü bu cevaptaCONF_SWAPSIZE
açıklandığı şekilde 0 olarak ayarlamak işe yaramaz ve yeniden başlatıldıktan sonra hala 100 MB'lık bir takas dosyası oluşturur./etc/fstab
Günlük gibi bir dosya ext3
ya da ext4
WITHOUT bir günlük dosya sisteminin kullanılması, okuma / yazma işlemlerini azaltmak için bir seçenektir. Günlük kaydı devre dışı bırakılmış bir dosya sistemi kullanmanın açık bir dezavantajı, ungraceful bir bağlantı kesilmesinin sonucu olan veri kaybıdır (örn. Güç kesintisi, çekirdek kilitlenmesi vb.).
Günlük kaydını, ext3
olarak ekleyerek devre dışı bırakabilirsiniz ext2
.
Aşağıdaki ext4
gibi takma bir sürücüde günlük kaydını devre dışı bırakabilirsiniz :
tune4fs -O ^has_journal /dev/sdaX
e4fsck –f /dev/sdaX
sudo reboot
Noatime mount bayrağını SD kartındaki bölümlere bölümün seçenekler bölümüne ekleyerek atayın /etc/fstab
.
Dosya sistemine erişimleri okumak artık dosyayla ilişkilendirilmiş olan bilginin güncellenmesine neden olmayacak. Zaman ayarının önemi, sistemin basitçe okunan dosyalar için dosya sistemine yazma yapma ihtiyacını ortadan kaldırmasıdır. Yazma, önceki bölümde belirtildiği gibi biraz pahalı olabileceğinden, bu ölçülebilir performans kazanımlarına neden olabilir. Bir dosyaya yazma süresi bilgilerinin, bu seçenek etkinken dosya yazıldığı zaman güncellenmeye devam edeceğini unutmayın.
Gibi kullanılan /var/tmp/
ve muhtemelen yüksek oranda kullanılmış olan dizinler, bu /var/log
şekilde RAM'e yerleştirilebilir /etc/fstab
:
tmpfs /var/tmp tmpfs nodev,nosuid,size=50M 0 0
Bu, /var/tmp
50 MB RAM'in disk alanı olarak kullanılmasına izin verecektir . Bunu yapmanın tek sorunu RAM'e takılan herhangi bir sürücünün yeniden başlatmanın ötesine geçmeyeceğidir. Bu nedenle, bağlarsanız /var/log
ve sisteminiz yeniden başlatılmasına neden olan bir hatayla karşılaşırsa, nedenini bulamayacaksınız.
Ayrıca bazı dizinleri kalıcı bir USB sabit diskine takabilirsiniz. Bunun daha fazla detayını bu soruda bulabilirsiniz .
Ahududu Pi ayrıca kök bölümünü harici bir sürücüden başlatabilir. Bu, USB veya Ethernet üzerinden olabilir ve SD kartın yalnızca önyükleme sırasında farklı aygıta yetki vermek için kullanılacağı anlamına gelir. Bu, varsayılan çekirdeğin USB depolamayı desteklediğini sanmadığım için, bir miktar çekirdek hacklemesi gerektirir. Bu soruda veya bu harici blog yayınında daha fazla bilgi bulabilirsiniz .
noatime
varsayılan olmalı.
noatime
varsayılan değil, en azından Arch.
/var/tmp
, hafızaya koymak o kadar da iyi bir fikir değil . Belki onunla karıştırdın /tmp
.
noatime
Size sorun çıkarırsa , relatime
tamamen yazma yerine disk yazmalarını önemli ölçüde azaltan da kullanabilirsiniz .
Jivings tarafından sağlanan seçenekler başvurunuz için mümkün değilse, ömrünü uzatmak için başka bir seçenek, ihtiyacınız olandan daha büyük bir SD kart kullanmaktır .
İyi SD kartların çoğu , her bloğun yazılma sayısını en aza indirgemek için aşınma dengeleme algoritmaları kullanır, böylece SD kart ihtiyacınız olandan daha büyükse, aşınma çok daha büyük bir boş alana yayılabilir.
Aşınma seviyesinin çok önemli olmasının bir kısmı, FAT (bazı SD kartlar için varsayılan format) gibi bazı dosya sistemlerinin aynı sektörleri tekrar tekrar dövmesidir.
Bununla ilgili daha fazla bilgi için, soruya verilen cevaplara bakın. Bir SD / MMC Kartının kendi kontrol cihazı ile aynı seviyede yıprandığı doğru mu? üzerinde üzerinde Elektronik Stack Borsası özellikle, bu cevap .
Bir ilginç istatistik Bu yanıt olmasıdır
2GB'lık bir kart alıp tekrar tekrar yazmaya başlaması, kart bitmeden ve artık yazılmadan önce ortalama 10 TB değerinde bir ortalama alıyor.
Ama endişe verici şey şu ki
Veriler kötü olduğunda SD kartlar size haber vermeyecektir, yani PC harddrive gibi bir G / Ç hatası vermeyecektir.
Bu, güvenilir bir depolama alanı sağlamanız gerektiğinde dosya sistemi seçiminizi önemli kılabilir.
Son bir not: SD kartın boyutunun iki katına çıkarılması , ömrünün iki katından fazla olabilir .
Yani, 200 MB boş bir 2 GB SD kartınız varsa, 4 GB karta geçmek size 11 kat boş alan, yıpranma kapasitesi ve dolayısıyla uzun ömür sağlar, 16 GB karta geçiş ise 71 kat ücretsiz alan, boş yer, mekan.
MMC_ERASE
sadece bu amaç için MMC / SD standardında bir yerde tanımlanmış (isteğe bağlı) komutu var. Her ne kadar tüm SD-Kartlarına rağmen bir tanesini denedim (Pi'imle birlikte gelen) aslında onu destekliyor.
Gördüğüm tek şey SD kartını değiştirmemek.
SD kartını değiştirmek muhtemelen SD kartınızı öldürebilir.
Daha fazla RAM’e ihtiyacınız varsa, zram kullanmaya çalışabilirsiniz, burada http://raspberry.pi.gw.gd/t50-Using-ZRAM.html adresindeki bir yazı ile ahududu pi’de ZRAM’ın kullanımı hakkında bazı bilgiler verilir.
Zram için daha fazla bilgi için: http://en.wikipedia.org/wiki/ZRam
Ayrıca en yeni SD kartların eski kartlardan çok daha sağlam olduğu biliniyor, yepyeni bir sınıf 10 SD kart satın almak muhtemelen iyi bir seçenek.
Tamamen ram ikamet eden Puppy Linux çalıştırmayı deneyebilirsiniz. Depolama görüntüsünü (sizin durumunuzdaki SD kartındaki) önyükleme sırasında RAM’e kopyalayıp ardından düzenli aralıklarla depolama alanına geri aktararak tamamen hafızada çalıştığı için çok küçük ve hızlıdır. Bu tasarrufun sıklığı manuel olarak dahil olmak üzere kullanıcı tarafından kontrol edilir.
Puppy katmanlı auf'ları veya daha eski unionfs dosya sistemini ext3 veya ext4 gibi standart Linux dosya sistemlerinden herhangi biriyle kullanır. Ayrıca, FAT veya NTFS bölümlerinde de bulunabilir.
Biri "Yavru Usta", Barry Kauler tarafından yaratılan RPI için özel olarak tasarlanmış en az birkaç Puppy sürümü vardır.
Daha fazlası için http://puppylinux.org/wikka/Puppi adresine gidin.
Buradaki çoğu insan varsayımları hakkında konuşur ve kişisel deneyimlerinden kaynaklanmaz.
RaspberryPi'mi RasPBX'li 8 santral ve faks içeren bir şirket panosu olarak kullanıyorum. LinkSYS SPA3000 ile 3 ip tabanlı gövdemiz ve bir sabit hattımız var. İlk Kingston 4 GB SDCard'ımın tozu ısırması sadece 1 ay sürdü.
Hala deniyordum ve yedeğim yoktu. BTW Pi bir APC UPS'ye bağlı. Daha sonra RasPBX'in tamamını sıfırdan yeniden kurdum, ancak bu sefer / var / log ve / var / lib / mysql'i NAS şirketimize taşıdım. Bu SD 3 ay sonra hala Tamam oldu.
Sonra çok sıcak bir yaz geçirdik. Üçüncü ay boyunca pi, mavi dışındaki eteriği algılamamaya başladı. Sonra bir gün bütün Leds kararmış ve önyükleme olmaz bulundu.
Pi’yi kutudan yeni çıkan ile değiştirdim. Sıra dışı bir kişi soğuduktan sonra çalışmaya başladı, ancak oldukça değişken çalışıyor ve RasPBX'e önyükleme yaptığında video modu grafiğe geçmiyor, 80 * 25 Metin. Gerçekten berbattı. O zamandan beri soğutucu seti sipariş ettim. Yeni Pi şu anda 2 aydan 7/24 çalışmaktadır.
Bu nedenle pi'yi 7/24 bir ortamda kullanacaksanız, ucuz olmayın - soğutucu satın alın ve / var / log ve SD CARD üzerindeki diğer meşgul dizinleri kullanmaktan kaçının.
I utilitze tmpfs ve en iyi cevap hazırlamak-dirs (bakınız komut bir sentezidir tüm çözümler karşılaştırmıştır http://grenzdebiel.dyndns.org/wordpress/?p=98 uygun / etc / varsayılan / tmpfs olan) ( (bkz. http://www.a-netz.de/2013/02/ramdisks-for-the-raspberry/ ).
Raspbian'da gerçekleştirilmesi gereken adımlar:
1. düzenleyin /etc/default/tmpfs
ve ayarlayın :
RAMLOCK=yes
RAMSHM=yes
RAMTMP=yes
Aşağıdaki boyutları tavsiye ederim:
TMPFS_SIZE=10%VM
RUN_SIZE=10M
LOCK_SIZE=5M
SHM_SIZE=10M
TMP_SIZE=25M
2. / etc / fstab komutunu kullanarak ek dizinleri etkinleştirin
tmpfs /var/log tmpfs size=20M,defaults,noatime,mode=0755 0 0
tmpfs /var/cache/apt/archives tmpfs size=100M,defaults,noexec,nosuid,nodev,mode=0755 0 0
tmpfs /var/spool/cups tmpfs size=100M,defaults,noatime,mode=0755 0 0
tmpfs /var/spool/cups/tmp tmpfs defaults,noatime,mode=0755 0 0
3. betiği /etc/init.d/prepare-dirs
kullanarak eksik dizinler oluşturarak /var/log
tüm daemonların başlayabilmesini sağlayın.
Sonunda benim davamda ne içerdiğini görün.
4. Komut dosyasını çalıştırılabilir hale getirin chmod 755 /etc/initd/prepare-dirs
.
5. Senaryoların başlamadan önce betiğin ilk açılışta başlayacağından emin ol:
update-rc.d prepare-dirs defaults 01 99
içeriği /etc/init.d/prepare-dir
:
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: prepare-dirs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Required-Start:
# Required-Stop:
# Short-Description: Create needed directories on /var/log/ for tmpfs at startup
# Description: Create needed directories on /var/log/ for tmpfs at startup
### END INIT INFO
# needed Dirs
DIR[0]=/var/log/lighttpd
DIR[1]=/var/log/cups
DIR[2]=/var/log/apt
DIR[3]=/var/log/ConsoleKit
DIR[4]=/var/log/fsck
DIR[5]=/var/log/news
DIR[6]=/var/log/ntpstats
DIR[7]=/var/log/samba
DIR[8]=/var/log/lastlog
DIR[9]=/var/log/exim
DIR[10]=/var/log/watchdog
case "${1:-''}" in
start)
typeset -i i=0 max=${#DIR[*]}
while (( i < max ))
do
mkdir ${DIR[$i]}
chmod 755 ${DIR[$i]}
i=i+1
done
# set rights
chown www-data.www-data ${DIR[0]}
;;
stop)
;;
restart)
;;
reload|force-reload)
;;
status)
;;
*)
echo "Usage: $SELF start"
exit 1
;;
esac
Bu kadar.
Takas Dosyasını Devre Dışı Bırak:
sudo dphys-takas dosyası takas etme
Kaldırma zorunluluğu yoktur, ancak kullanmıyorsanız ve alanı istiyorsanız, güvenle kaldırabilirsiniz. Kaldırılacak alternatif komut:
sudo dphys-swapfile kaldırma
Kullanım: / sbin / dphys-swapfile {setup | swapon | swapoff | uninstall}
Flaş Hücre Dayanıklılığı:
Büyük kartlarda ve normal aşınmada tamamen matematikseldir. Eğer gece gündüz 8GB MLC tipi bir flaş karta yazarsanız, onu öldürmek yaklaşık 30 gün sürer.
Techsnap'taki Bölüm 99, SSD'leri yıpratmaktan bahsediyor ve Allen, günlük kullanımda bir SSD'yi giymenin nasıl imkansız olduğunu açıklıyor ve takas, kron ve diğer şeyleri devre dışı bırakmak konusunda endişelenmemize gerek yok. Sadece şimdi çalışıyor! Akıllı aşınma dengeleme her şeyi halleder.
Kingston'a göre normal aşınma, profesyonel bir dijital kamerada yaşam için size 27 yıl vermelidir.
Normal DSLR fotoğraf makineleri için hangisini birkaç ayda bir doldurabilirsiniz .. ne kadar seyahat ettiğinize bağlı. Pi'yi göz önünde bulundurursak, eğer tahsis etmeyi deneyip sık sık tekrar kullanırsanız daha fazla para gerektirebilir. Genelde bir dağıtımdan memnun kaldığınızda ... aylarca veya yıllar boyunca parlamazsınız. Bu nedenle, SD aşınmasını uzatmak için, SD üzerindeki GÇ'yi azaltmak konusunda bazı tavsiyelere uymanız iyi olur.
Flaşın fiyatı düştü ve teknoloji çok daha iyi.
Çoğu SD kart, iki veya üç kuşak cihazdan daha uzun sürecek ve bu zamana kadar mevcut daha iyi ve daha ucuz bir yükseltme ile kullanılamayacak kadar küçük ve çok yavaş sayılacak!
Daha önce de belirtildiği gibi, asıl sorun yeniden başlatmalar arasında kaydedilmeye değmeyecek, ancak oldukça sık yazılan dosya ve dizinlerdir, yani önbellek dosyaları, klasörleri indirme vb.
Debian ve Ubuntu'nun yanı sıra Raspbian , ana amacı bu dosyaları, örneğin takma veya daha az yıpratmaya yatkın olan harici bir sabit disk gibi daha az sorunlu bir yere bağlamak olan unburden-home-dir adı verilen bir pakete sahip tmpfs
.
Yaygın olarak X altında oturum açma zamanında çalıştırılır ve GUI uygulamasının önbellek dosyalarına yöneliktir, ancak komut dosyalarından da çağrılabilir ve kullanıcının giriş dizininde rastgele dosyalar için yapılandırılabilir.
Onlar dayanmaktadır iotop -bktoqqq
ve iostat -dzp 5
. Sorun ve çözümü hakkında bir fikir edinmek için önce bu komutları çalıştırmalısınız.
sudo systemctl disable dphys-swapfile
sudo rm /var/swap
noatime,commit=1800
Seçenekleriyle birlikte SD kartındaki tüm bölümleri ve aşağıdaki girişleri aşağıdaki dizinlerde bulunan RAM'a takın /etc/fstab/
:
/dev/mmcblk0p1 /boot vfat defaults,noatime,commit=1800 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime,commit=1800 0 1
tmpfs /tmp tmpfs size=50M,nodev,nosuid 0 0
tmpfs /var/tmp tmpfs size=10M,nodev,nosuid 0 0
tmpfs /var/cache/samba tmpfs size=5M,nodev,nosuid 0 0
Taahhüt yazarları geciktirir ve önce onları toplar.
/var/tmp/log/
Açıklamasına bakın Günlük dosyalarına yazmayı nasıl azaltabilirim .
Görünüşe göre Chromium ağır yazıyor ve durdurulamıyor (bkz. 176727 , 52663 ). Bu, önbelleği ve kullanıcı veri dizinini etkiler. Krom / ipuçları ve püf noktaları bu RAM hareket ettirilebilir açıklanmaktadır. Ahududu fazla RAM'e sahip olmadığından önerilen Tab Suspender RAM tasarrufunda kullanışlıdır.
Önbellek boyutunu sınırlamak ve düzenleyerek RAM taşımak /etc/chromium-browser/customizations/00-rpi-vars
için
CHROMIUM_FLAGS="--disable-quic --enable-fast-unload --enable-tcp-fast-open --disk-cache-size=10000000 --media-cache-size=5000000"
Şimdi, önbellek XDG_CACHE_HOME
girişi değiştirerek RAM diskine taşınacak kadar küçüktür /etc/security/pam_env.conf
.
XDG_CACHE_HOME DEFAULT=/tmp/@{PAM_USER}/cache
Şimdi iki kullanıcımın RAM’de küçük bir tarayıcı önbelleği var. Bu sizin için yeterli değilse önbellek veya / tmp / size gerektiği gibi değiştirin.
Ayrıca kullanıcı verisi dir ( .config/chromium/
) de çok ağır yazılar yazar. Profil-senkron-cin tarafından tavsiye edilen Krom / İpuçları ve püf noktaları . Tarayıcınızın profilini tmpfs içerisinde yönetmek ve periyodik olarak fiziksel diskinize senkronize etmek için geliştirilmiştir. Maalesef paket henüz Raspbian 8.0 (Jessie) dağıtımının bir parçası değil. Bu yüzden henüz bunu test etmedim.
İhtiyacınız olmayan dosyaları ve paketleri kaldırarak boş alan açın. Bu, giyilmenizi bölmelerinize daha eşit olarak yaymalıdır.
Şimdi tekrar çalıştırın iotop -bktoqqq
ve iostat -dzp 5
sistem boştayken yazma erişiminde önemli bir azalma görün. Diskime dakikalarca hiçbir şey yazılmıyor. Ve yeşil ACT LED'inin yanıp sönmesi konusunda endişelenmeyin . Görünüşe göre iyi bir yazma erişim göstergesi değil.
Syslog çıktısını başka bir sunucuya aktararak yazım döngülerinde küçük bir azalma elde edilebilir. Tabii ki syslogd
çalışan bir sunucunun olması bir önkoşuldur. Ancak, Pi'nin Linux meraklıları için bir oyuncak olması ile bu muhtemelen çok sık söz konusudur. :-)
Bu akışı etkinleştirmek için, sadece şöyle bir ifade ekleyin
*.* @myserver.mydomain
Dosyanın en üstünde /etc/rsyslog.conf
, diğer tüm satırları yorumla ve göndererek günlüğü yeniden başlat service rsyslog restart
. Bundan sonra mesajların seçilen sunucuya girmesi gerekir.
Bunun avantajlı bir yan etkisi, Pi'nizi aynı sunucudaki diğer makinelerle birlikte kolayca izleyebilmenizdir. Bunun bir dezavantajı, sistemin başlatılması ve kapatılması sırasında, ağ bağlantısı henüz kurulmamışsa veya kapatılmışsa bazı mesajları kaybedebilirsiniz.
journald
edin. Ayrıca journald
günlükleri rsyslogd
, dinlemekte olduğu syslog soketine iletmek üzere yapılandırırlar ; Bu, iletilerin ek kopyalarını altındaki günlük dosyalarına yerleştirir /var/log
. journalctl
Günlüklerinizi taramak için rahat kullanıyorsanız (ve /var/log
aşina olduğunuzdan çok daha iyi çalışıyorsa ) rsyslog
bazı yazmaları tamamen devre dışı bırakıp kaydedebilirsiniz.
Not: 100.000 döngü sınırı, her bilgisayar aygıtına, klavyedeki tuşlara bile uygulanan bir hipotezdir. Pi'nin uygun soğutma koşullarında çalıştırılmasının ve uygun kapatma / başlama döngülerinin analojilere girmekten çok daha iyi sonuçlar vereceğine inanıyorum.
Ayrıca bu benim yukarıdaki fikrimi artırabilir.
Pi [default] kullanıcısına ek olarak yeni kullanıcı ekle. Yeni kullanıcının giriş dizinini harici sürücüye doğrultun [başparmak / sabit sürücü]. Yeni kullanıcıya süper kullanıcı izinleri verin ve birincil hesabınız olarak kullanmaya başlayın.
Umarım bu yardımcı olur..
/var/log
ve engellemez /var/tmp
. Ayrıca, uygun soğutmanın bir fark yarattığına dair deneyimlerden elde edilen kanıtlara sahip olmak, "inanıyorum" demekten çok daha iyidir.
Varsayılan syslog daemon (genellikle rsyslog) yerine busybox'ın syslog daemon'unu (Raspbian / Debian / Ubuntu'daki busybox-syslogd paketinde ) kullanın. Raspbian / Debian / Ubuntu’da varsayılan olarak, busybox syslogd’u yalnızca bellekte ring arabelleğine giriş yapar, diske değil. Halka arabellek, varsayılan olarak 128kB boyutundadır, yani eski günlük girişleri kısa süre sonra döner ve sonra gider. Ancak bunun için daha fazla RAM kullanacak şekilde yapılandırabilirsiniz.
Bununla birlikte, bu bir syslog daemon'una sahip olmamaktan çok daha iyi bir çözümdür, yani yaklaşık olarak oturum açıp yaklaşık günlük kayıtlarını okuyabilirsiniz. komut ile, birkaç saat veya gün sonra (halka arabelleğinin yapılandırılmış boyutuna bağlı olarak) logread
. Örneğin, yalnızca bir filtre komut dosyası kullanarak ilginç günlük girişlerini saklamak veya günlük veya giriş gibi başka bir yerde ağ üzerinden günlük girişlerini iletmek için, örneğin kullanma veya benzeri gibi bir davranış logread -f
elde etmek için de kullanabilirsiniz .tail -f
stunnel
Yaptığım birkaç şey:
dphys-swapfile'ın chmod'i (/ etc içinde bir yerde - şu anda PI yakınında değil):
sudo chmod a-x dphys-swapfile
Önyükleme sırasında küçük hatalar alıyorum (hizmet dphys-swapfile hizmetini başlatamıyor) - Daha iyi bir yol olduğunu varsayalım ... rc-update ??
Ayrıca, sonunda web sunucuma (Pi) koymak için kamera modülünden görüntüler alıyorum. / Dev / ram0 - ext2'yi biçimlendirdim, / media / ramdrive olarak monte ettim (/etc/init.rc, sanırım). 4 megs, bir çırpıda yetecek kadar büyük. SD'ye yazma yok.
Sunucu (oululife.dnsdynamic.com) deneysel, ancak web üzerinde. Gerçekten strese sokmak için ayrıca 'Heartbeat *' adlı bir MP4 bölümü yayınlamasına izin verdim. Lighttpd, Mysql, PHP, WordPress'i çalıştırıyor ve hatta web üzerinden uzaktan aktığımda bile neredeyse hiç ter kırmıyor, ortalama yaklaşık 0,2. Fazla mesai yok. B-Model rev. 2, 7/24. Bu yüzden, logfilelerimi diğer 15 / dev / ramX’e ekleyebilirsem, Micro-SD 16G kartımın son yıllarda olacağını düşünüyorum.