Просто хочу сказать, что я разместил этот вопрос на бирже стека Raspberry Pi, но я думаю, что это общий вопрос Linux (по крайней мере, на базовом уровне, на который распространяются мои собственные знания), и что люди в этом сообществе будут быть в состоянии помочь с этим, поэтому я спрашиваю здесь.

Я новичок в управлении файловыми системами, но использую Raspberry Pi 3B с SD-картой на 16 ГБ и запускаю там базу данных InfluxDB. Pi каждую секунду записывает точку данных в базу данных, которая находится только в каталоге /home/.

Я видел, что это плохая идея для жизни SD-карты - делать много записей, и, кроме того, через некоторое время она просто заполнит место на карте. Поэтому я купил внешний твердотельный накопитель емкостью 240 ГБ. и адаптер USB-SATA, и я намеревался подключить диск к /mnt/ и использовать его для хранения базы данных вместо каталога /home/. Поскольку я хотел бы иногда отключать диск и читать данные в Windows, он будет отформатирован как NTFS.

Однако, хотя это решило бы проблему места для хранения (SSD достаточно большой), в этом сценарии я все равно буду использовать SD-карту для операционной системы Raspian (Buster Lite), которая затем будет записывать данные на SSD. диск через USB.

Мои вопросы сейчас:

  1. Это плохая идея?

  2. Было бы разумнее разделить SSD на 2 раздела: один, отформатированный как NTFS для хранения, и второй, меньший (около 10 ГБ), отформатированный для Linux (должен ли это быть Ext4?), Который будет просто содержать Raspian. Затем данные будут собираться с помощью InfluxDB в одном разделе и передаваться во второй, вообще избегая записи на SD-карту.

  3. Если да, то каковы общие шаги (и на что следует обратить внимание) для этого?

  4. Есть ли более разумный способ?

Благодарность

1
AdminBee 27 Май 2020 в 15:42
Добро пожаловать на сайт. Могу ли я тогда порекомендовать вам удалить свой пост на RasPI SE, так как перекрестные публикации не приветствуются и приведут к закрытым голосованиям на обоих сайтах?
 – 
AdminBee
27 Май 2020 в 15:42
Спасибо, а у вас есть мнение, здесь этот вопрос более актуален или на RasPI SE?
 – 
teeeeee
27 Май 2020 в 15:43
Я думаю, что RasPI SE лучше: хотя основной вопрос будет здесь (с оговоркой о том, что он может быть «основан на мнении»), фактические последствия наличия операционной системы RasPI больше не на SD-карте, а на внешнем разделе (IIUC) найдет там более опытных участников.
 – 
AdminBee
27 Май 2020 в 15:47

2 ответа

Ответы «да/нет» на этот вопрос, скорее всего, будут основаны на мнении. Это сводится к вашим требованиям. Что мы можем сделать, так это представить некоторые вещи для рассмотрения и позволить вам решить.

Простая истина: SD-карты обычно изнашиваются быстрее, чем SSD. SD-карты обычно намного дешевле, чем SSD. В основном вы получаете то, за что платите. SD-карта хорошего качества должна прослужить вам довольно долго (несколько лет) при работе с raspberry pi, если ваши приложения не пишут весь день каждый день. Но я прожёг дешёвый за пару месяцев

Почему вас беспокоит износ?
- Если вы беспокоитесь о том, чтобы потратить больше денег на SD. Действительно, могут быть очень долгие споры о том, получаете ли вы больше износа на доллар для SD, чем для SSD. Это может быть ложная экономия, вот и все, что я хочу сказать. - Если вы беспокоитесь о времени безотказной работы системы или о простой замене SD, вы можете подумать о переносе части файловой системы.

Я запускаю свой r-pi с частью ОС, перемещенной на внешний диск. Это немного боль для восстановления системы. Некоторое время назад у меня были проблемы с питанием, но я не мог загрузиться без подключенного внешнего жесткого диска. У меня есть и /home, и /var, сопоставленные с моим внешним диском, так как они требуют наибольшей перезаписи. Я запускаю свой как сервер, и меня больше беспокоит работа, которую мне придется выполнять, если SD-карта выйдет из строя. Это также потому, что мне нужно 2 ТБ памяти.

Если вы пойдете по этому пути, я бы посоветовал всю ОС (кроме / boot) разместить на внешнем диске. Это упрощает настройку и восстановление. Оглядываясь назад, моя установка с SD-картой и USB-HD больше утомительна, чем того стоит.

0
Philip Couling 28 Май 2020 в 01:14
Большое спасибо за ответ. Система будет постоянно работать с несколькими записями в базу данных каждую секунду и чтением из нее, по крайней мере, быстрее, чем это. Я также был обеспокоен тем, что скорость чтения будет слишком низкой, если я буду считывать большие объемы данных из базы данных. Когда вы говорите «кроме загрузки», почему бы нам просто не поместить загрузку вместе со всем остальным на внешний диск и забыть о SD-карте? Вы имеете в виду оставить загрузочный каталог на SD-карте?
 – 
teeeeee
28 Май 2020 в 01:26
/boot содержит прошивку, необходимую Raspberry Pi для запуска и загрузки в Linux. Я не верю, что какая-либо версия raspberry pi поддерживает загрузку с USB-накопителя, только с внутренней SD. Чтение может быть медленным на usb 2. Я полагаю, что r-pi 4 является первым с usb3.
 – 
Philip Couling
28 Май 2020 в 01:44
Я согласен с тем, что Pi 4 — единственный с портами USB 3.0, так что да, я понимаю, что скорость в данный момент будет ограничена (по этой причине я рассматривал возможность перехода на Pi 4). Однако у меня сложилось впечатление, что Pi может загружаться с внешнего диска. Единственное предостережение для 3B заключается в том, что в файле /boot/config необходимо установить флаг program_usb_boot_mode=1. Сначала это нужно сделать с помощью SD-карты, но после этого ее можно удалить навсегда. См. здесь: raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/… Вы согласны?
 – 
teeeeee
28 Май 2020 в 12:21
1
Я признаю, что это новое на мне, но это выглядит правильно. Я не знал о "OTP", который делает это возможным. . Я прочитаю больше и обновлю свой ответ.
 – 
Philip Couling
28 Май 2020 в 12:26
Хорошо спасибо. На самом деле, в случае, если у вас уже есть все, что работает на SD-карте (ОС, программное обеспечение, настройки и т. д.), и вы не хотите начинать заново с нуля, я думаю, что этот репозиторий даже позволяет просто клонировать вашу рабочую SD-карту. содержимое на загрузочный внешний диск github.com/billw2/rpi-clone (хотя новая установка было бы предпочтительнее, я думаю, если бы можно было пойти по этому пути).
 – 
teeeeee
28 Май 2020 в 12:40

Из одного из комментариев ниже (спасибо Филиппу) большинство SD-карт не имеют контроллеров выравнивания износа. Это принципиальное отличие от твердотельных накопителей, которые (насколько мне удалось найти) выравнивают износ.

Внешнее подключение SSD было бы безопаснее, чем использование SD без выравнивания износа при сравнении риска износа. Тем не менее, вы можете найти SD-карты с выравниванием износа.

Есть вещи, которые вы можете сделать в системе, чтобы уменьшить влияние этого (например, увеличить размер кэша / уменьшить скорость синхронизации с риском потери большего количества данных при незапланированном отключении питания).

Также имеет значение размер — более крупное устройство позволяет алгоритму выравнивания уменьшить количество операций записи на блок.

В зависимости от цели и предполагаемого стажа наиболее вероятным и простым решением вашей проблемы будет «не беспокойтесь об этом». Затем вы можете периодически клонировать свою ОС SD в новую (каждые X месяцев использования) и продолжать работу.

-2
Pedro 27 Май 2020 в 18:01
Просто чтобы уточнить, вы говорите, что вообще не используете внешний диск? Если это так, это оставит меня с проблемой быстрого заполнения карты.
 – 
teeeeee
27 Май 2020 в 17:04
Что ж, есть относительно большие SD-карты (~ 128 ГБ IIRC), но это полностью зависит от ваших потребностей в хранении. Если вам все еще нужен SSD, используйте его. Моя точка зрения (которую я не ясно изложила) заключалась в том, что SSD также имеет проблему с износом, поэтому использование SSD вместо SD для определенного набора данных не является решением проблемы износа.
 – 
Pedro
27 Май 2020 в 17:19
Я вижу, спасибо, это ясно - я понимаю вашу точку зрения. Я хотел бы использовать SSD, так как он у меня уже есть. Что я не упомянул в ОП, так это то, что у меня есть клиент на Pi, который обращается к данным в базе данных - если бы этот клиент работал на SD-карте, а данные были на внешнем диске, тогда я был бы ограничен скорость передачи SD-карты. Принимая во внимание, что если бы ОС (и, следовательно, клиент) также находилась на SSD, этот перенос был бы быстрее.
 – 
teeeeee
27 Май 2020 в 17:28
3
«SD-карты изнашиваются так же, как и SSD-диски»… Нет, не изнашиваются! Это схожие концепции с существенно отличающейся реализацией. Поскольку карты не часто имеют встроенную технологию выравнивания износа, хотя есть исключения.
 – 
Philip Couling
27 Май 2020 в 17:42
Спасибо за это, я не знал, что SD-карты по определению не имеют выравнивания износа. Хотя сегодня они не редкость. Я отредактирую ответ.
 – 
Pedro
27 Май 2020 в 17:56