Я не очень заинтересован в покупке жесткого диска USB, но я знаю, что SD-карты не подходят для многих повторений чтения и записи.
Могу ли я предпринять какие-либо шаги для продления срока службы моей SD-карты, пока она используется моей Raspberry Pi?
sd-card
durability
Очень нерегулярный
источник
источник
Ответы:
Эти методы должны увеличить срок службы SD-карты, сводя к минимуму количество операций чтения / записи различными способами:
Отключить своп
Подкачка - это процесс использования части карты SD в качестве энергозависимой памяти. Это увеличит объем доступной оперативной памяти, но приведет к большому количеству операций чтения / записи. Вряд ли это значительно повысит производительность.
Отключить обмен с помощью
swapoff
команды:Вы также должны предотвратить его возвращение после перезагрузки:
sudo apt-get remove dphys-swapfile
удалить его навсегда. Лучше всего удалить, потому что установка вCONF_SWAPSIZE
0, как объяснено в этом ответе , кажется, не работает и все еще создает файл подкачки размером 100 МБ после перезагрузки./etc/fstab
Отключение ведения журнала в файловой системе
Использование файловой системы журналирования, такой как
ext3
илиext4
БЕЗ журнала, позволяет уменьшить число операций чтения / записи. Очевидным недостатком использования файловой системы с отключенным ведением журнала является потеря данных в результате некорректного отключения (т. Е. После сбоя питания, блокировки ядра и т. Д.).Вы можете отключить ведение журнала
ext3
, подключив его какext2
.Вы можете отключить ведение журнала на отключенном
ext4
диске следующим образом:Флаг Noatime Mount
Присвойте флаг монтирования noatime разделам, находящимся на SD-карте, добавив его в раздел параметров раздела
/etc/fstab
.Каталоги в оперативной памяти
Часто используемые каталоги, такие как
/var/tmp/
и, возможно,/var/log
могут быть перемещены в RAM/etc/fstab
следующим образом:Это позволит
/var/tmp
использовать 50 МБ оперативной памяти в качестве дискового пространства. Единственная проблема, связанная с этим, заключается в том, что любые диски, установленные в ОЗУ, не сохранятся после перезагрузки. Таким образом, если вы монтируете/var/log
и ваша система обнаруживает ошибку, которая приводит к ее перезагрузке, вы не сможете выяснить, почему.Каталоги на внешнем жестком диске
Вы также можете смонтировать некоторые каталоги на постоянном жестком диске USB. Более подробную информацию об этом можно найти в этом вопросе .
Raspberry Pi также может загрузить свой корневой раздел с внешнего диска. Это может быть через USB или Ethernet и означает, что SD-карта будет использоваться только для делегирования другому устройству во время загрузки. Для этого требуется небольшой взлом ядра, так как я не думаю, что ядро по умолчанию поддерживает USB-накопитель. Вы можете найти больше информации в этом вопросе или в этом внешнем сообщении в блоге .
источник
noatime
должно быть по умолчанию.noatime
не по умолчанию, по крайней мере, на Arch./var/tmp
в память. Может быть, вы перепутали это с/tmp
.noatime
вызывает у вас проблемы, вы также можете использовать,relatime
что значительно сокращает объем записи на диск при чтении, а не удаляет их полностью.Если опции, предоставляемые Jivings , для вашего приложения невозможны, то другой способ существенно продлить его жизнь - это использовать SD-карту, которая намного больше, чем вам нужно.
Оставьте много свободного места
Большинство приличных SD-карт используют алгоритмы выравнивания износа , чтобы минимизировать количество раз записи каждого блока, поэтому, если SD-карта больше необходимого, износ может быть распределен по гораздо большей площади свободного пространства.
Частично причина выравнивания износа настолько важна, что некоторые файловые системы, такие как FAT (формат по умолчанию для многих SD-карт), снова и снова забивают одни и те же сектора.
Для получения дополнительной информации см. Ответы на вопрос. Правда ли, что карта SD / MMC изнашивается с собственным контроллером? на бирже электроники стека , особенно этот ответ .
Одна интересная статистика из этого ответа заключается в том, что
Но беспокоит то, что
Это может сделать ваш выбор файловой системы важным, если вам нужно гарантировать надежное хранение.
И последнее замечание: удвоение размера SD-карты может более чем удвоить срок ее службы.
То есть, если у вас есть SD-карта объемом 2 ГБ с 200 МБ свободного места, то переход на карту объемом 4 ГБ даст вам в 11 раз больше свободного места, емкость для выравнивания износа и, следовательно, долговечность, а при переходе на карту объемом 16 ГБ - в 71 раз больше. пространство.
источник
MMC_ERASE
для этой цели в стандарте MMC / SD определена (необязательная) команда. Хотя из всех SD-карт, которые я пробовал, только одна (та, которая пришла с моим Pi-) на самом деле поддерживает это.Единственное, что я вижу, это НЕ менять местами на SD-карте.
Обмен на SD-карте, вероятно, может убить вашу SD-карту.
Если вам нужно больше оперативной памяти, вы можете попробовать использовать zram, в этом посте на http://raspberry.pi.gw.gd/t50-Using-ZRAM.html, содержащем некоторые подробности об использовании ZRAM на raspberry pi
Более подробная информация о Zram на http://en.wikipedia.org/wiki/ZRam
Также известно, что самые последние SD-карты гораздо надежнее старых, поэтому покупка SD-карты нового класса 10, вероятно, является хорошим вариантом, если вы хотите, чтобы она прослужила долго.
источник
Вы можете попробовать запустить Puppy Linux, который является полностью ram-резидентом. Он очень маленький и ослепительно быстрый, поскольку он полностью работает в памяти, копируя образ хранилища (на вашем SD-карте) в ОЗУ при загрузке, а затем периодически сбрасывая изменения обратно в хранилище. Частота этого сохранения контролируется пользователем, в том числе вручную.
Puppy использует многоуровневую файловую систему aufs или более раннюю версию unionfs с любой из стандартных файловых систем Linux, например ext3 или ext4. Он также может находиться на разделах FAT или NTFS.
Существует по крайней мере несколько версий Puppy, специально разработанных для RPi, одна из которых была создана "Puppy Master" Барри Каулером.
Для получения дополнительной информации перейдите на http://puppylinux.org/wikka/Puppi
источник
Большинство людей здесь говорят о своих предположениях, а не о личном опыте.
Я использовал свой RaspberryPi с RasPBX в качестве коммутатора компании с 8 добавочными номерами и факсом. У нас есть 3 транка на основе IP и один стационарный через LinkSYS SPA3000. Моя первоначальная карта памяти Kingston 4 ГБ SDCard заняла всего 1 месяц, чтобы укусить пыль.
Я все еще экспериментировал и у меня не было резервной копии. Кстати, Pi подключен к ИБП APC. Затем я заново установил весь RasPBX с нуля, но на этот раз я переместил / var / log и / var / lib / mysql на наш корпоративный NAS. Этот SD все еще был в порядке через 3 месяца.
Тогда у нас было очень жаркое лето. В течение третьего месяца пи начал не обнаруживать Ethernet на ровном месте. Затем однажды я обнаружил, что все светодиоды тусклые, и он не загружается.
Я заменил Пи свежим из коробки работающим. Не по порядку начал работать после охлаждения, но работает довольно хаотично, и когда он загружается в RasPBX, режим видео не переключается на графику, он остается в тексте 80 * 25. Это было действительно запутано. Я заказал комплект радиатора с тех пор. Новый Pi работает с ним уже более 2 месяцев 24.07.
Поэтому, если вы будете использовать pi в среде 7/24, не стесняйтесь покупать радиатор и избегайте использования / var / log и других занятых каталогов поверх SD CARD.
источник
Я сравнил все решения, используемые утилитой TMPFS, и лучший ответ - это синтез скрипта prepare-dirs (см. Http://grenzdebiel.dyndns.org/wordpress/?p=98 ) с правильным / etc / defaults / tmpfs ( (см. http://www.a-netz.de/2013/02/ramdisks-for-the-raspberry/ ).
Необходимые шаги для выполнения на raspbian:
1. отредактируйте
/etc/default/tmpfs
и установите :Я бы порекомендовал следующие размеры:
2. включить дополнительные каталоги, используя / etc / fstab
3. использовать скрипт
/etc/init.d/prepare-dirs
для создания отсутствующих каталогов,/var/log
чтобы все демоны запускалисьПосмотрите в конце, что он содержит в моем случае.
4. Сделайте скрипт исполняемым
chmod 755 /etc/initd/prepare-dirs
.5. Убедитесь, что скрипт будет запущен при загрузке, прежде чем ваши демоны запустятся:
update-rc.d prepare-dirs defaults 01 99
содержание
/etc/init.d/prepare-dir
:Вот и все.
источник
Отключить файл подкачки:
Нет необходимости удалять, однако, если вы не используете его, и действительно хотите пространство, вы можете безопасно удалить его. Альтернативная команда для удаления:
Использование: / sbin / dphys-swapfile {setup | swapon | swapoff | uninstall}
источник
Flash Cell Endurance:
Это чисто математическое на больших картах и нормальный износ. Если бы вам приходилось писать на флэш-карту типа MLC 8 ГБ день и ночь снова и снова, для ее уничтожения потребовалось бы около 30 дней.
Эпизод 99 в Techsnap рассказывает о износе SSD, и Аллен объясняет, как невозможно изнашивать SSD при повседневном использовании, и нам не нужно беспокоиться об отключении свопов, крон и тому подобного. Это просто работает сейчас! Умное выравнивание износа заботится обо всем.
Нормальный износ, как указано в Kingston, должен дать вам 27 лет жизни на профессиональной цифровой камере.
Цена на флеш упала, а технология намного лучше.
Большинство SD-карт переживет два или три поколения устройств, и к тому времени они будут считаться маленькими и слишком медленными для использования с гораздо более доступным и дешевым обновлением!
источник
Как упоминалось ранее, основной проблемой являются файлы и каталоги, которые не стоит сохранять между перезагрузками, но записываются довольно часто, например, кешировать файлы, загружать папки и т. Д.
В Raspbian, а также в Debian и Ubuntu есть пакет unburden-home-dir , основная цель которого - создать символическую ссылку на такие файлы в менее проблемное место, например, на
tmpfs
монтирование или внешний жесткий диск, который менее подвержен износу.Обычно он запускается во время входа в систему под X и нацелен на файлы кэша GUI-приложения, но также может вызываться из сценариев или тому подобного и настраиваться для произвольных файлов в домашнем каталоге пользователя.
источник
Это мои рекомендации для Debian 8.0 (Джесси)
Они основаны на
iotop -bktoqqq
иiostat -dzp 5
. Сначала вы должны выполнить эти команды, чтобы получить представление о проблеме и ее решении.1. Отключить своп
2. Используйте параметры монтирования и оперативную память
Смонтируйте все разделы на SD-карте с
noatime,commit=1800
опциями и смонтируйте следующие каталоги в RAM с этими записями в вашем/etc/fstab/
:Фиксация задержит записи и соберет их в первую очередь.
3. Записывайте самые частые файлы журнала на
/var/tmp/log/
Смотрите мое описание Как я могу уменьшить запись в лог-файлы .
4. Остановите Chromium от удара карты SD
Как оказалось, Chromium пишет много и не может быть остановлен (см. 176727 , 52663 ). Это влияет на кэш и каталог пользовательских данных. В Chromium / Советы и хитрости объяснить , как это может быть перемещен в оперативную память. Так как Raspberry не имеет большого объема оперативной памяти, предлагаемый Tab Suspender полезен для экономии оперативной памяти.
а) кеш
Ограничить размер кэша и переместить его в память путем редактирования
/etc/chromium-browser/customizations/00-rpi-vars
вТеперь кэш достаточно мал, чтобы его можно было перенести на RAM-диск, изменив
XDG_CACHE_HOME
запись/etc/security/pam_env.conf
наТеперь у моих двух пользователей небольшой кеш браузера в оперативной памяти. Если этого недостаточно, измените кеш или / tmp / size по мере необходимости.
б) Данные пользователя dir
Также пользовательские данные dir (
.config/chromium/
) испытывают тяжелые записи. Профиль синхронизации-демон рекомендован Chromium / Советы и хитрости . Он был разработан для управления профилем вашего браузера в tmpfs и периодической синхронизации его с вашим физическим диском. К сожалению, пакет еще не является частью дистрибутива Raspbian 8.0 (Jessie). Так что я еще не проверял это.5. Свободное место на SD-карте
Освободите место, удалив ненужные пакеты и файлы. Это должно распределить износ более равномерно по вашим перегородкам.
Готово!
Теперь запустите
iotop -bktoqqq
иiostat -dzp 5
снова и увидите значительное сокращение доступа на запись, когда система простаивает. Ничего не записывается на мой диск в течение многих минут. И не беспокойтесь о мигании зеленого светодиода ACT . Видимо, это не очень хороший индикатор доступа для записи.источник
Небольшое сокращение циклов записи может быть достигнуто путем потоковой передачи вывода системного журнала на другой сервер. Конечно, наличие такого сервера с
syslogd
работающим является предварительным условием. Однако, учитывая, что Pi - игрушка для энтузиастов Linux, это, вероятно, очень часто случается. :-)Чтобы активировать этот поток, просто вставьте оператор
в верхней части файла
/etc/rsyslog.conf
закомментируйте все остальные строки и перезапустите протоколирование, выполнив командуservice rsyslog restart
. После этого сообщения должны поступить на выбранный сервер.Одним из очевидных преимуществ этого побочного эффекта является то, что вы можете легко контролировать свой Pi в сочетании с другими машинами на том же сервере. Недостатком является то, что при запуске и завершении работы системы вы можете потерять некоторые сообщения, когда сетевое соединение еще не установлено или уже было отключено.
источник
journald
которые хранятся в журнале systemd. Они также настраиваютjournald
пересылку журналов в сокет системного журнала, которыйrsyslogd
прослушивает; это помещает дополнительные копии сообщений в файлы журнала под/var/log
. Если вам удобноjournalctl
просматривать журналы (и это работает намного лучше, чем/var/log
когда-то, вы уже знакомы с ним), вы можете полностью отключитьrsyslog
и сохранить некоторые записи.Примечание. Предел в 100 000 циклов - это гипотеза, которая применима к каждому вычислительному устройству, даже к клавишам на клавиатуре. Я полагаю, что запуск Pi в надлежащих условиях охлаждения и надлежащие циклы выключения / запуска дадут вам лучшие результаты, а не переходят к аналогиям.
Также это может дополнить мое мнение выше.
Добавьте нового пользователя в дополнение к пользователю Pi [по умолчанию]. Укажите домашний каталог нового пользователя на внешнем диске [большой палец / жесткий диск]. Дайте новому пользователю права суперпользователя и начните использовать его в качестве основной учетной записи.
Надеюсь, это поможет..
источник
/var/log
и/var/tmp
. Кроме того, наличие свидетельств из опыта, что правильное охлаждение имеет значение, намного лучше, чем говорить «я верю».Используйте демон syslog busybox (в пакете busybox-syslogd на Raspbian / Debian / Ubuntu) вместо демона syslog по умолчанию (обычно rsyslog). По умолчанию в Raspbian / Debian / Ubuntu syslogd busybox регистрируется только в кольцевом буфере в памяти, а не на диске. Размер кольцевого буфера по умолчанию составляет 128 КБ, т. Е. Старые записи в журнале довольно быстро исчезают и исчезают. Но вы можете настроить его на использование большего объема оперативной памяти.
Тем не менее, это гораздо лучшее решение, чем отсутствие демона системного журнала, то есть вы все равно можете войти в систему и прочитать записи в журнале ок. последние несколько часов или дней (в зависимости от настроенного размера кольцевого буфера) с помощью команды
logread
. Вы также можете использовать,logread -f
чтобы получитьtail -f
похожее поведение, например, для сохранения только интересных записей журнала с использованием сценария фильтра или для пересылки записей журнала по сети в другом месте, например, с использованиемstunnel
или тому подобное.источник
Пара вещей, которые я сделал:
chmod из файла dphys-swapfile (где-то в / etc - сейчас нет рядом с PI) для:
Я получаю незначительные ошибки при загрузке (не могу запустить службу dphys-swapfile) - Предположим, есть лучший способ ... rc-update ??
Кроме того, я снимаю изображения с модуля камеры, чтобы в конечном итоге поставить на свой веб-сервер (Pi). Я отформатировал / dev / ram0 в ext2, смонтировал его как / media / ramdrive (думаю, с использованием /etc/init.rc). Это 4 мг, достаточно большой для одного щелчка. Нет записи на SD.
Сервер (oululife.dnsdynamic.com) является экспериментальным, но в Интернете. Чтобы действительно подчеркнуть это, я позволил ему также транслировать эпизод MP4 «Heartbeat *». Он запускает lighttpd, Mysql, PHP, WordPress, и даже когда я удаленно транслирую через Интернет, он почти не потеет, средняя нагрузка около 0,2. Никакого разгона вообще. Модель-B ред. 2, до 24/7. Итак, если я смогу получить свои файлы журналов в другой 15 / dev / ramX, я считаю, что моя карта Micro-SD 16G прослужит долгие годы ....
источник