Изменить местоположение журнала по умолчанию

475
Shenanigans

Я использую ext4 на Ubuntu. В целях экономии записи на диск с ограниченным ssd я записываю данные на смонтированную карту microsd. Может кто-нибудь объяснить, как ведение журнала будет работать в этой ситуации?

Будет ли моя локальная файловая система вести журнал при записи в microsd неопределенного формата (fat32, ntfs, ext4)? Существуют ли журнальные файлы на microsd или на моем локальном ssd? Можете ли вы динамически изменить место хранения журнала, если да, то как? Есть ли способ изменить его во время монтирования?

1

1 ответ на вопрос

1
Theodore Ts'o

Оказывается, журнал на самом деле является одним из самых удобных шаблонов записи. Это просто непрерывная последовательная запись. Проблема с некоторыми флэш-устройствами заключается в том, что у них очень дешевый FTL или Flash Translation Layer. Это система, которая выполняет чтение и запись на диск в конкретный LBA (адрес логического блока или номер сектора жесткого диска) и отображает его в определенном месте на конкретном флэш-чипе внутри флэш-устройства.

Большинство SSD имеют достаточно приличный FTL, что журнал действительно не проблема. Проблема заключается в устройствах eMMC в телефонах или картах microsd, где производители заботятся о том, чтобы сэкономить до последней миллиардной стоимости своих материалов. (Если вы делаете миллионы телефонов или SD-карт, экономия доли копейки имеет огромное значение для вашей прибыли.) Таким образом, действительно простые FTL имеют реальные ограничения на то, сколько частей диска вы можете записать в любой момент времени, и действительно дешевые флэш-устройства могут использовать дешевые флэш-чипы для начала, и это то, где вы действительно попадаете в неприятности.

Кроме того, выясняется, что я наставник аспиранта в CMU, который работает над «SMR friendly friendly Journaling for ext4», который также будет идеальным для ext4. Это подавляет окончательную обратную запись случайной записи 4k для обновления растровых изображений выделения и блоков таблицы inode, а также использует копию блока метаданных в журнале в качестве официальной копии. Это действительно только изменит то, что я называю «дешевыми флэш-устройствами», хотя это будет иметь огромное значение.

В ответ на ваш вопрос Linux не будет использовать sdcard для чего-либо автоматически. Вы можете смонтировать его в определенном каталоге, и в этом случае запись в этот каталог будет осуществляться на SD-карту, используя любую файловую систему, которая изначально была на SD-карте (если вы не переформатируете ее). По умолчанию большинство sdcards в наши дни обычно имеют FAT32 или NTFS, и дистрибутив, вероятно, обрабатывает их автоматически. В этом случае он вообще не будет использовать журналирование, и это не повлияет на то, как система пишет в остальную часть системы.

В качестве внешнего журнала можно использовать внешнее блочное устройство, включая SD-карту. Если вы сделаете это, вы не сможете использовать SD-карту для чего-либо еще, и SD-карта должнаприсутствовать после нечистой перезагрузки, чтобы помочь восстановить вашу основную файловую систему. В конце концов, в этом и заключается весь смысл журнала - минимизировать повреждение файловой системы и потерю сопутствующих данных после сбоя или сбоя питания. Но это сложно настроить, и в зависимости от вашего SSD, это может не иметь большого значения вообще. Я не знаю, что вы имеете в виду под «ограниченным SSD», но если это вообще SSD (вместо eMMC или micro sdcard), он, вероятно, имеет лучшую FTL, чем micro sdcard. Конечно, шаблоны записи в журнале действительно просты даже для самых дурацких паршивых FTL, так что не без ума использовать micro SDCard в качестве журнала. Но если FTL SSD вообще компетентен, это может не помочь SSD вообще. И настройка внешнего журнала довольно сложна и не так удобна для пользователя, так как

Отвечая на ваш вопрос, вы можете изменить место хранения журнала, но для этого необходимо внести изменения в файловую систему, чтобы он знал, где найти внешнее устройство журнала. Так что это намного сложнее, чем просто некоторые параметры монтирования, которые вы можете изменить во время монтирования. Это потому, что действительно сложно убедиться, что вы можете найти внешнее устройство журнала после сбоя или сбоя питания во время последовательности загрузки, чтобы вы могли восстановить свою файловую систему. В зависимости от вашего дистрибутива, от того, использует ли он начальный виртуальный диск, и от того, нужно ли ему загружать модули для поддержки устройства чтения микро SD-карт, может потребоваться внести изменения в загрузку вашей системы.

Кроме того, имейте в виду, что если вы уроните свое устройство, и микро-SDCard вылетит из машины, с отсутствующим журналом устройство сразу же выйдет из строя, и вам потребуется найти и заменить SD-карту, чтобы впоследствии вы могли восстановить систему, Поэтому я действительно не рекомендовал бы использовать внешнее съемное устройство хранения для журнала, если вы действительно, действительно, действительно не знаете, что делаете, и не знаете обо всех последствиях.

Это как ходить со стеклянной бутылкой, полной нитроглицерина. Конечно, это можно сделать. Могут даже быть причины, по которым экспертам потребуется это сделать. Но это может быть не то, что я бы порекомендовал новичку в химической лаборатории ...

Похожие вопросы