Saya tidak terlalu berminat untuk membeli hard disk USB, tetapi saya sadar bahwa kartu SD tidak cocok untuk banyak pengulangan membaca dan menulis.
Apakah ada langkah yang bisa saya ambil untuk memperpanjang umur kartu SD saya saat sedang digunakan oleh Raspberry Pi saya?
sd-card
durability
Sangat Tidak Teratur
sumber
sumber
Jawaban:
Metode-metode ini harus meningkatkan masa pakai kartu SD dengan meminimalkan jumlah baca / tulis dalam berbagai cara:
Nonaktifkan Swap
Swapping adalah proses menggunakan bagian dari kartu SD sebagai memori yang mudah menguap. Ini akan meningkatkan jumlah RAM yang tersedia, tetapi akan menghasilkan jumlah baca / tulis yang tinggi. Sepertinya tidak akan meningkatkan kinerja secara signifikan.
Nonaktifkan swap dengan
swapoff
perintah:Anda juga harus mencegahnya agar tidak kembali setelah reboot:
sudo apt-get remove dphys-swapfile
menghapusnya secara permanen. Terbaik untuk dihapus karena pengaturanCONF_SWAPSIZE
ke 0, seperti yang dijelaskan dalam jawaban ini , tampaknya tidak berfungsi dan masih membuat file swap 100MB setelah reboot./etc/fstab
Menonaktifkan Penjurnalan pada Filesystem
Menggunakan sistem file jurnal seperti
ext3
atauext4
TANPA jurnal adalah opsi untuk mengurangi baca / tulis. Kelemahan yang jelas dari penggunaan sistem file dengan penjurnalan dinonaktifkan adalah kehilangan data sebagai akibat dari turunnya ungraceful (yaitu kegagalan daya post, penguncian kernel, dll).Anda dapat menonaktifkan penjurnalan
ext3
dengan memasangnya sebagaiext2
.Anda dapat menonaktifkan penjurnalan pada
ext4
pada drive yang tidak di-mount seperti ini:Bendera Gunung noatime
Tetapkan tanda mount noatime ke partisi yang berada di kartu SD dengan menambahkannya ke bagian opsi partisi di
/etc/fstab
.Direktori dalam RAM
Direktori yang sangat sering digunakan seperti
/var/tmp/
dan mungkin/var/log
dapat dipindahkan ke RAM/etc/fstab
seperti ini:Ini akan memungkinkan
/var/tmp
untuk menggunakan 50MB RAM sebagai ruang disk. Satu-satunya masalah dengan melakukan ini adalah bahwa setiap drive yang terpasang dalam RAM tidak akan bertahan melewati reboot. Jadi, jika Anda memasang/var/log
dan sistem Anda menemukan kesalahan yang menyebabkannya untuk reboot, Anda tidak akan dapat menemukan alasannya.Direktori dalam Hard Disk eksternal
Anda juga dapat memasang beberapa direktori pada hard disk USB yang persisten. Rincian lebih lanjut tentang ini dapat ditemukan dalam pertanyaan ini .
Raspberry Pi juga dapat mem-boot partisi root-nya dari drive eksternal. Ini bisa melalui USB atau Ethernet dan berarti bahwa kartu SD hanya akan digunakan untuk mendelegasikan ke perangkat yang berbeda saat boot. Ini membutuhkan sedikit peretasan kernel untuk menyelesaikannya, karena saya tidak berpikir kernel default mendukung penyimpanan USB. Anda dapat menemukan informasi lebih lanjut di pertanyaan ini , atau posting blog eksternal ini .
sumber
noatime
harus menjadi default.noatime
tidak standar, setidaknya di Arch./var/tmp
ke dalam memori. Mungkin Anda bingung dengan itu/tmp
.noatime
menyebabkan masalah, Anda juga dapat menggunakanrelatime
yang secara signifikan mengurangi penulisan disk saat dibaca daripada menghapusnya seluruhnya.Jika opsi yang disediakan oleh Jivings tidak memungkinkan untuk aplikasi Anda, maka opsi lain untuk memperpanjang masa pakainya secara substansial adalah dengan menggunakan kartu SD yang jauh lebih besar dari yang Anda butuhkan.
Tinggalkan banyak ruang kosong
Sebagian besar kartu SD yang layak menggunakan algoritma leveling wear untuk meminimalkan berapa kali setiap blok ditulis, jadi jika kartu SD lebih besar dari yang Anda butuhkan maka keausan dapat tersebar di area ruang bebas yang jauh lebih besar.
Bagian dari alasan pemakaian leveling sangat penting adalah bahwa beberapa sistem file, seperti FAT (format default untuk banyak kartu SD), memalu sektor yang sama berulang kali.
Untuk informasi lebih lanjut tentang ini, lihat jawaban atas pertanyaan . Benarkah kartu SD / MMC memang memakai leveling dengan pengontrolnya sendiri? lebih pada Electronics Stack Exchange , terutama jawaban ini .
Satu statistik menarik dari jawaban ini adalah itu
Tapi yang mengkhawatirkan adalah itu
Ini mungkin membuat pilihan sistem file Anda penting jika Anda perlu menjamin penyimpanan yang andal.
Satu catatan terakhir: Menggandakan ukuran kartu SD bisa lebih dari dua kali lipat umurnya.
Yaitu jika Anda memiliki kartu SD 2 GB dengan 200 MB gratis maka beralih ke kartu 4 GB akan memberi Anda 11 kali ruang kosong, memakai kapasitas leveling dan umur panjang, sementara beralih ke kartu 16 GB akan memberi Anda 71 kali gratis ruang.
sumber
MMC_ERASE
didefinisikan di suatu tempat dalam standar MMC / SD hanya untuk tujuan ini. Meskipun dari semua SD-Card saya sudah mencoba hanya satu (-yang datang dengan Pi-) benar-benar mendukungnya.Satu-satunya hal yang saya lihat adalah TIDAK menukar kartu SD.
Bertukar kartu Sd mungkin adalah yang dapat membunuh kartu SD Anda.
Jika Anda membutuhkan lebih banyak RAM, Anda dapat mencoba menggunakan zram, ada posting di http://raspberry.pi.gw.gd/t50-Using-ZRAM.html memberikan beberapa detail tentang penggunaan ZRAM pada raspberry pi
Info lebih lanjut untuk zram di http://en.wikipedia.org/wiki/ZRam
Juga kartu SD terbaru diketahui jauh lebih solid daripada yang lebih tua, membeli kartu SD kelas 10 baru mungkin merupakan opsi yang baik adalah Anda ingin melihatnya bertahan lama.
sumber
Anda bisa mencoba menjalankan Puppy Linux yang sepenuhnya ram-penduduk. Ini sangat kecil dan sangat cepat karena berjalan sepenuhnya dalam memori dengan menyalin gambar penyimpanan (pada kartu SD dalam kasus Anda) ke dalam RAM saat boot dan kemudian membilas perubahan secara berkala kembali ke penyimpanan. Frekuensi penyimpanan ini dikendalikan oleh pengguna termasuk secara manual.
Puppy menggunakan auf berlapis atau filesystem unionfs yang lebih lama dengan sistem file Linux standar seperti ext3 atau ext4. Itu juga bisa berada di partisi FAT, atau NTFS.
Setidaknya ada beberapa versi Puppy yang dirancang khusus untuk RPi, salah satunya dibuat oleh "Puppy Master", Barry Kauler.
Untuk lebih lanjut, kunjungi http://puppylinux.org/wikka/Puppi
sumber
Kebanyakan orang di sini berbicara tentang asumsi mereka dan bukan pengalaman pribadi.
Saya telah menggunakan RaspberryPi saya dengan RasPBX sebagai switchboard perusahaan dengan 8 ekstensi dan faks. Kami memiliki 3 batang berbasis ip dan satu jalur darat melalui LinkSYS SPA3000. Hanya butuh 1 bulan untuk SDCard Kingston 4 GB awal saya untuk menggigit debu.
Saya masih bereksperimen dan tidak memiliki cadangan. BTW, Pi terhubung ke UPS APC. Saya kemudian mengatur ulang seluruh RasPBX dari awal, tetapi kali ini saya memindahkan / var / log dan / var / lib / mysql ke NAS perusahaan kami. SD ini masih OK setelah 3 bulan.
Kemudian kami mengalami musim panas yang sangat panas. Selama bulan ketiga pi mulai tidak mendeteksi ethernet tiba-tiba. Lalu suatu hari saya menemukan itu semua Leds redup dan tidak mau boot.
Saya telah mengganti Pi dengan yang baru. Yang rusak mulai bekerja setelah pendinginan tetapi berfungsi agak tidak menentu dan ketika boot ke RasPBX mode video tidak akan beralih ke grafik, ia tetap dalam 80 * 25 Teks. Itu benar-benar kacau. Saya sudah memesan set heatsink sejak itu. Pi baru bekerja dengannya sekarang selama lebih dari 2 bulan 7/24.
Jadi, jika Anda akan menggunakan pi di lingkungan 7/24, jangan murah - beli heatsink dan hindari menggunakan / var / log dan direktori sibuk lainnya di SD CARD.
sumber
Saya telah membandingkan semua solusi yang memanfaatkan TMPFS dan jawaban terbaik adalah sintesis dari skrip persiapan-dirs (lihat http://grenzdebiel.dyndns.org/wordpress/?p=98 ) dengan / etc / defaults / tmpfs yang tepat () (lihat http://www.a-netz.de/2013/02/ramdisks-for-the-raspberry/ ).
Langkah-langkah yang perlu dilakukan pada raspbian adalah:
1. edit
/etc/default/tmpfs
dan atur :Saya akan merekomendasikan ukuran berikut:
2. aktifkan direktori tambahan menggunakan / etc / fstab
3. gunakan skrip
/etc/init.d/prepare-dirs
untuk membuat direktori yang hilang/var/log
sehingga semua daemon dimulaiLihat di akhir apa yang terkandung dalam kasus saya.
4. Jadikan skrip dapat dieksekusi
chmod 755 /etc/initd/prepare-dirs
.5. Pastikan skrip akan dimulai terlebih dahulu saat boot sebelum dasmon Anda mulai:
update-rc.d prepare-dirs defaults 01 99
isi dari
/etc/init.d/prepare-dir
:Itu dia.
sumber
Nonaktifkan Swapfile:
Tidak ada keharusan untuk menghapus instalan, namun jika Anda tidak menggunakannya, dan memang menginginkan ruang, Anda dapat menghapusnya dengan aman. Perintah alternatif untuk menghapus:
Penggunaan: / sbin / dphys-swapfile {setup | swapon | swapoff | uninstall}
sumber
Ketahanan Sel Flash:
Ini murni matematika pada kartu besar dan pemakaian normal. Jika Anda menulis ke kartu flash tipe 8GB MLC siang dan malam berulang kali akan memakan waktu sekitar 30 hari untuk membunuhnya.
Episode 99 di Techsnap berbicara tentang usang SSD dan Allen menjelaskan bagaimana tidak mungkin memakai SSD dalam penggunaan sehari-hari dan kita tidak perlu khawatir tentang menonaktifkan swap, crons, dan semua itu. Itu hanya berfungsi sekarang! Leveling aus yang pintar menangani semuanya.
Pakaian normal seperti dikutip per Kingston harus memberi Anda 27 tahun kehidupan seumur hidup dalam kamera digital profesional.
Harga flash telah jatuh dan teknologinya jauh lebih baik.
Sebagian besar kartu SD akan hidup lebih lama dari dua atau tiga generasi perangkat dan pada saat itu akan dianggap kecil dan terlalu lambat untuk digunakan dengan upgrade yang jauh lebih baik dan lebih murah tersedia!
sumber
Seperti disebutkan sebelumnya, masalah utama adalah file dan direktori yang tidak layak disimpan di antara reboot, tetapi sering ditulis, yaitu file cache, folder unduhan, dll.
Raspbian serta Debian dan Ubuntu memiliki paket yang disebut unburden-home-dir yang tujuan utamanya adalah untuk menghubungkan file-file tersebut ke tempat yang tidak terlalu bermasalah seperti misalnya
tmpfs
mount atau harddisk eksternal yang cenderung tidak mudah rusak.Ini biasanya dijalankan pada waktu login di bawah X dan ditargetkan ke file cache aplikasi GUI, tetapi juga dapat dipanggil dari skrip atau semacamnya dan dikonfigurasi untuk file sewenang-wenang di direktori home pengguna.
sumber
Ini adalah rekomendasi saya untuk Debian 8.0 (Jessie)
Mereka didasarkan pada
iotop -bktoqqq
daniostat -dzp 5
. Anda harus menjalankan perintah ini terlebih dahulu untuk mendapatkan gambaran tentang masalah dan solusinya.1. Nonaktifkan swap
2. Gunakan opsi pemasangan dan RAM
Pasang semua partisi pada kartu SD dengan
noatime,commit=1800
opsi dan pasang direktori berikut ke RAM dengan entri ini di Anda/etc/fstab/
:Komit akan menunda penulisan dan mengumpulkannya terlebih dahulu.
3. Log file log paling sering ke
/var/tmp/log/
Lihat uraian saya Bagaimana saya bisa mengurangi penulisan ke file log .
4. Hentikan Chromium dari memalu kartu SD
Ternyata Chromium menulis banyak dan tidak dapat dihentikan (lihat 176727 , 52663 ). Ini memengaruhi cache dan direktori data pengguna. The Chromium / Tips dan trik menjelaskan bagaimana ini dapat dipindahkan ke RAM. Karena Raspberry tidak memiliki banyak RAM, Tab Suspender yang disarankan berguna untuk menghemat RAM.
a) Cache
Batasi ukuran cache dan pindahkan ke RAM dengan mengedit
/etc/chromium-browser/customizations/00-rpi-vars
keSekarang cache cukup kecil untuk dipindahkan ke disk RAM dengan mengubah
XDG_CACHE_HOME
entri/etc/security/pam_env.conf
menjadiSekarang dua pengguna saya memiliki cache browser kecil dalam RAM. Jika itu tidak cukup bagi Anda untuk mengubah cache atau / tmp / ukuran sesuai kebutuhan.
b) Dir data pengguna
Juga dir data pengguna (
.config/chromium/
) mengalami penulisan yang berat. The Profil-sync-daemon direkomendasikan oleh Chromium / Tips dan trik . Itu dikembangkan untuk mengelola profil browser Anda di tmpfs dan untuk secara berkala menyinkronkannya kembali ke disk fisik Anda. Sayangnya paket tersebut belum menjadi bagian dari distribusi Raspbian 8.0 (Jessie). Jadi saya belum menguji ini.5. Ruang kosong pada kartu SD
Ruang kosong dengan menghapus paket dan file yang tidak Anda butuhkan. Ini akan menyebarkan pemakaian lebih merata di seluruh partisi Anda.
Selesai!
Sekarang jalankan
iotop -bktoqqq
daniostat -dzp 5
lagi dan lihat pengurangan yang signifikan dalam akses tulis ketika sistem idle. Tidak ada yang ditulis ke disk saya selama beberapa menit. Dan jangan khawatir tentang LED ACT hijau berkedip . Tampaknya itu bukan indikator akses tulis yang baik.sumber
Hanya sedikit pengurangan siklus tulis dapat dicapai dengan mengalirkan output syslog ke server lain. Tentu saja, memiliki server dengan
syslogd
menjalankan seperti itu merupakan prasyarat. Namun, dengan Pi menjadi mainan untuk penggemar Linux, ini mungkin sangat sering terjadi. :-)Untuk mengaktifkan streaming ini cukup masukkan pernyataan like
di bagian atas file
/etc/rsyslog.conf
, beri komentar semua baris lainnya, dan mulai ulang logging dengan mengeluarkanservice rsyslog restart
. Setelah ini, pesan akan muncul di server yang dipilih.Satu efek samping yang jelas menguntungkan dari ini adalah bahwa Anda dapat dengan mudah memonitor Pi Anda bersama dengan mesin lain di server yang sama. Satu kelemahan adalah bahwa selama startup sistem dan shutdown Anda dapat kehilangan beberapa pesan ketika koneksi jaringan belum dibuat atau sudah dimatikan.
sumber
journald
yang menyimpannya dalam jurnal systemd. Mereka juga mengkonfigurasijournald
untuk meneruskan log ke soket syslog tempatrsyslogd
mendengarkan; yang menempatkan salinan tambahan pesan dalam file log di bawah/var/log
. Jika Anda merasa nyaman menggunakanjournalctl
untuk menelusuri log Anda (dan berfungsi jauh lebih baik daripada/var/log
setelah Anda terbiasa), Anda dapat sepenuhnya menonaktifkanrsyslog
dan menyimpan beberapa penulisan.Catatan: Batas 100.000 siklus adalah hipotesis yang berlaku untuk setiap perangkat komputasi, bahkan tombol pada keyboard. Saya percaya menjalankan Pi dalam kondisi pendinginan yang tepat dan siklus shutdown / start yang tepat akan memberikan hasil yang lebih baik daripada beralih ke analogi.
Juga ini dapat menambah pendapat saya di atas.
Tambahkan pengguna baru di samping pengguna Pi [default]. Arahkan direktori home dari pengguna baru di drive eksternal [ibu jari / hard drive]. Berikan izin baru kepada pengguna baru, dan mulailah menggunakannya sebagai akun utama Anda.
Saya harap ini membantu..
sumber
/var/log
dan/var/tmp
. Juga, memiliki bukti dari pengalaman bahwa pendinginan yang tepat membuat perbedaan jauh lebih baik daripada mengatakan "Saya percaya".Gunakan daemon syslog busybox (dalam paket busybox-syslogd pada Raspbian / Debian / Ubuntu) alih-alih daemon syslog default (biasanya rsyslog). Secara default pada Raspbian / Debian / Ubuntu, syslogd dari busybox hanya masuk ke buffer cincin di memori dan tidak ke disk. Ring buffer memiliki ukuran 128kB secara default, yaitu entri log lama akan segera diputar dan hilang. Tetapi Anda dapat mengkonfigurasinya untuk menggunakan lebih banyak RAM untuknya.
Namun demikian ini adalah solusi yang jauh lebih baik daripada tidak memiliki daemon syslog sama sekali, yaitu Anda masih dapat login dan membaca entri log dari kira-kira. beberapa jam atau hari terakhir (tergantung pada ukuran buffer cincin yang dikonfigurasi) dengan perintah
logread
. Anda juga dapat menggunakanlogread -f
untuk mendapatkantail -f
perilaku yang serupa untuk mis. Hanya menyimpan entri log yang menarik menggunakan skrip filter atau untuk meneruskan entri log melalui jaringan di tempat lain, misalnya menggunakanstunnel
atau semacamnya.sumber
Beberapa hal yang saya lakukan:
chmod dari dfys-swapfile (di suatu tempat di / etc - tidak dekat PI saat ini) ke:
Saya mendapatkan kesalahan kecil saat boot (tidak dapat memulai layanan dphys-swapfile) - Misalkan ada cara yang lebih baik ... rc-update ??
Juga, saya mengambil gambar dari modul kamera, untuk akhirnya memakai server web saya (Pi). Saya diformat / dev / ram0 ke ext2, memasangnya sebagai / media / ramdrive (menggunakan /etc/init.rc, saya pikir). Ini 4meg, cukup besar untuk satu jepret. Tidak menulis ke SD.
Server (oululife.dnsdynamic.com) bersifat percobaan, tetapi di web. Untuk benar-benar menekankan hal itu, saya membiarkannya juga menayangkan episode MP4 dari 'Heartbeat *'. Ini menjalankan lighttpd, Mysql, PHP, WordPress, dan bahkan ketika saya streaming jarak jauh dari web itu hampir tidak berkeringat, memuat rata-rata sekitar 0,2. Tidak ada over-clocking sama sekali. Rev Model-B. 2, hingga 24/7. Jadi, jika saya bisa memasukkan file log saya ke 15 / dev / ramX lainnya, saya rasa kartu Micro-SD 16G saya akan bertahan bertahun-tahun ....
sumber