diff --git a/documentation/content/ru/articles/gjournal-desktop/_index.adoc b/documentation/content/ru/articles/gjournal-desktop/_index.adoc index 11a16da4a5..cd44ca5544 100644 --- a/documentation/content/ru/articles/gjournal-desktop/_index.adoc +++ b/documentation/content/ru/articles/gjournal-desktop/_index.adoc @@ -1,437 +1,882 @@ --- authors: - author: 'Manolis Kiagias' email: manolis@FreeBSD.org + - + author: 'Vladlen Popolitov' + email: vladlen@FreeBSD.org description: 'Настройка журналирования UFS для настольного компьютера' tags: ["UFS", "Journaling" , "Desktop", "FreeBSD"] title: 'Настройка журналирования UFS для настольного компьютера' trademarks: ["freebsd", "general"] --- = Настройка журналирования UFS для настольного компьютера :doctype: article :toc: macro -:toclevels: 1 +:toclevels: 2 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/gjournal-desktop/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Аннотация -Журналируемая файловая система использует журнал для записи всех транзакций, происходящих в файловой системе, который также сохраняет ее целостность в случае краха системы или пропадания питания. Несмотря на то, что всё еще возможна потеря несохранённых изменений файлов, журналирование почти полностью исключает возможность повреждения структуры файловой системы, вызванное непредвиденным остановом работы. Журналирование также сокращает до минимума время, необходимое для проверки файловой системы после отказа. Несмотря на то, что в используемой FreeBSD файловой системе UFS нет поддержки журналирования, новый класс системы GEOM в FreeBSD 7._X_ может быть использован для ведения независимого от файловой системы журналирования. Эта статья объясняет, как реализовать журналирование UFS для типичного настольного компьютера. +Журналируемая файловая система использует журнал для записи обновлений файловой системы и обеспечивает целостность данных в случае сбоя системы или отключения питания. Несмотря на то, что несохранённые изменения в файлах всё ещё могут быть утеряны, журналирование значительно снижает риск повреждения файловой системы из-за некорректного завершения работы и существенно сокращает время восстановления. Хотя файловая система UFS, используемая в FreeBSD, не реализует журналирование как встроенную функцию на уровне диска, FreeBSD предоставляет поддержку журналирования через механизмы на уровне файловой системы (Soft Updates с журналированием), а также через фреймворк GEOM (`gjournal`). В этой статье описываются доступные механизмы журналирования UFS и объясняется их целесообразное использование в современных системах FreeBSD. _Содержание было проверено и обновлено для версий FreeBSD с 13 по 15_. ''' toc::[] [[introduction]] == Введение -Серверное оборудование обычно хорошо защищено от потери питания. Настольный компьютер часто подвержен неожиданным пропаданиям питания, случайным нажатиям кнопки Reset и другим происшествиям (часто связанным с неосторожностью пользователей), которые могут привести к непредвиденным выключениям. Механизм Soft Updates, как правило, достаточно эффективно защищает файловую систему в таких случаях, однако в последствии требуется длительная фоновая проверка. В очень редких случаях повреждения файловой системы достигают того уровня, при котором становится необходимым вмешательство пользователя и данные могут быть утерянными. +Серверное оборудование обычно хорошо защищено от потери питания. Настольный компьютер часто подвержен неожиданным пропаданиям питания, случайным нажатиям кнопки Reset и другим происшествиям (часто связанным с неосторожностью пользователей), которые могут привести к непредвиденным выключениям и оставить файловую систему в несогласованном состоянии. Традиционно это требовало запуска `fsdk`, что на больших файловых системах требует значительного времени. В очень редких случаях повреждения файловой системы достигают того уровня, при котором становится необходимым вмешательство пользователя и данные могут быть утерянными. + +FreeBSD предоставляет два различных механизма журналирования для файловой системы UFS: + +* Журналирование с Soft Updates +* Журналирование с командой GEOM `gjournal` + +Эти механизмы функционируют на различных уровнях системы и обладают разными характеристиками производительности и семантики. -Новая возможность журналирования, предоставленная системой GEOM, может существенно выручить в подобных случаях, исключая время, необходимое для проверки файловых систем и удостовериваясь, что файловая система быстро восстановлена в целостное состояние. +[IMPORTANT] +==== +Для большинства современных систем FreeBSD, включая настольные компьютеры и серверы общего назначения, рекомендуется использовать *Soft Updates с журналированием*. + +GEOM журналирование — это устаревший и специализированный механизм, и его следует использовать только тогда, когда требуются его специфические семантики. +==== -Эта статья описывает порядок действий, необходимых для конфигурирования журналирования UFS на типичном настольном компьютере, в котором один жесткий диск используется для размещения как операционной системы, так и данных. В статье подразумевается установка FreeBSD "с нуля". Шаги достаточно просты и не требуют чрезмерно сложных манипуляций с командной строкой. +В этой статье объясняются оба механизма, их различия и правильное современное использование. -После прочтения данной статьи вы будете знать: +Прочтите эту главу, чтобы узнать: -* Как зарезервировать место для журнала во время новой установки FreeBSD. -* Как загрузить модуль `geom_journal` (или включить поддержку журналирования в специализированном ядре системы). -* Как преобразовать существующую файловую систему, в систему, использующую журналирование, и какие опции монтирования использовать в [.filename]#/etc/fstab#. -* Как реализовать журналирование на новых (пустых) разделах. -* Как диагностировать неполадки, связанные с журналированием. +* Доступные механизмы журналирования для файловой системы UFS в FreeBSD и их различия. +* Когда использовать журналирование на уровне файловой системы с Soft Updates и когда может быть уместно журналирование GEOM. +* Как включить или отключить журналирование Soft Updates на существующих файловых системах UFS. +* Как настроить журналирование GEOM на новых или существующих разделах, включая необходимую поддержку ядра и вопросы определения размера журнала. +* Какие изменения конфигурации необходимы для монтирования журналируемых файловых систем и как журналирование влияет на поведение системы. +* Как диагностировать неполадки и разрешать проблемы, связанные с журналированием файловой системы UFS. Перед прочтением этой статьи вам необходимо: * Понимать базовые концепции таких операционных систем, как UNIX(R) и FreeBSD. -* Быть знакомым с процедурой установки FreeBSD, а также с программой Sysinstall. +* Быть знакомым с процедурой установки FreeBSD, используя bsdinstall. +* Иметь базовые знания о разбиении дисков и файловых системах, включая такие инструменты, как gpart(8), newfs(8) и mount(8). [WARNING] ==== -Процедура, описанная здесь, подразумевает подготовку к новой установке, в которой на дисках еще нет пользовательских данных. Так как эту процедуру можно модифицировать и расширить на системы, которые уже используются, вам настоятельно рекомендуется сделать _резервную копию_ всех ценных данных. Путаница в низкоуровневых операциях с дисками и разделами может привести к фатальным ошибкам и потере данных. +Некоторые процедуры, описанные в данной статье, включают изменение конфигурации файловой системы или диска и могут потребовать размонтирования файловых систем или изменения метаданных на диске. Перед внесением подобных изменений в работающей системе убедитесь, что доступны надежные _резервные копии_ всех важных данных. + +Включение журналирования Soft Updates на уровне файловой системы обычно безопасно и не требует переразбивки диска. Однако настройка журналирования GEOM включает низкоуровневые операции с диском и должна выполняться только опытными администраторами, полностью понимающими последствия. ==== [[understanding-journaling]] == Реализация журналирования в FreeBSD -Журналирование, предоставляемое системой GEOM в FreeBSD 7._X_, не является особенностью файловой системы (в отличие от, например, файловой системы ext3 в Linux(R)), оно функционирует на блочном уровне. А это значит, что оно может быть применено к разным типам файловых систем, однако для FreeBSD 7.0-RELEASE журналирование может быть применено только для UFS2. +=== Soft Updates с журналированием (рекомендуется) +Soft Updates — это механизм обеспечения согласованности UFS по умолчанию в FreeBSD. В сочетании с журналированием он обеспечивает *журналирование метаданных* в самой файловой системе. -Возможность журналирования обеспечивается загрузкой модуля [.filename]#geom_journal.ko# в ядро (или сборкой собственного ядра с активированием соответствующих опций) и использованием команды `gjournal` для конфигурирования файловой системы. В общем, вы предпочтете журналировать файловые системы большого размера, к примеру - [.filename]#/usr#. Однако, вам придется зарезервировать некоторое количество свободного места (см. следующий раздел). +Преимущества Soft Updates с журналированием включают: -Когда файловая система журналируется, некоторая часть дискового пространства требуется для хранения самого журнала. Дисковое пространство, содержащее данные, называется __поставщиком данных (data provider)__, а часть пространства, содержащая журнал, называется __поставщиком журнала (journal provider)__. Поставщики данных и журнала должны быть на разных разделах, если журналирование достраивается к содержащему данные разделу. А если журналирование включается для нового раздела, у вас есть возможность использовать один поставщик для данных и журнала. В любом из двух вышеупомянутых случаев команда `gjournal` задействует поставщики и создаст конечную журналируемую файловую систему. Например: +* Очень быстрое восстановление после сбоя (обычно за секунды) +* Обычная семантика `sync(2)` и `fsync(2)` +* Никаких дополнительных разделов или слоев GEOM +* Простая настройка и обслуживание -* Вы намереваетесь журналировать файловую систему [.filename]#/usr#, размещенную на [.filename]#/dev/ad0s1f#, файловая система уже содержит данные. -* Вы зарезервировали часть дискового пространства на разделе [.filename]#/dev/ad0s1g#. -* Используя команду `gjournal`, создаем новый файл устройства [.filename]#/dev/ad0s1f.journal#, для которого [.filename]#/dev/ad0s1f# является поставщиком данных, а [.filename]#/dev/ad0s1g# - поставщик журнала. Это новое устройство необходимо использовать во всех последующих операциях. +Из `tunefs(8)`: -Размер дискового пространства, отводимого под поставщик журнала, зависит от нагруженности файловой системы, а не от размера самого поставщика данных. Например, для типичного настольного компьютера достаточно отвести 1 Гб под поставщик журнала для файловой системы [.filename]#/usr#, в то время как компьютеру, имеющему интенсивный дисковый ввод/вывод (например, редактирование видео) может потребоваться больше. Если свободное место на поставщике журнала заканчивается раньше, чем происходит сброс журнала на диск, - вы получите панику ядра. +____ +Включение журналирования сокращает время, затрачиваемое fsck_ffs(8) на очистку файловой системы после сбоя, с нескольких минут или часов до нескольких секунд. +____ -[NOTE] +Этот механизм подходит практически для всех систем на основе UFS и является рекомендуемым по умолчанию. + +=== Журналирование с командой GEOM `gjournal` + +GEOM журналирование работает на блочном уровне, ниже файловой системы. Оно журналирует все записи блоков, включая *как метаданные, так и данные файлов*. + +Ключевые характеристики журналирования GEOM: + +* Реализовано как класс GEOM (`geom_journal`) +* Журналирует весь блочный ввод-вывод, а не только метаданные +* Требует явного согласования от UFS с использованием флага `-J` +* Отключает Soft Updates +* Изменяет семантику `sync(2)` и `fsync(2)` + +[WARNING] ==== -Очень маловероятно то, что размеры журнала, предложенные здесь, станут причиной проблем с обычным настольным компьютером (на котором вы просматриваете веб-страницы, обрабатываете текст или проигрываете мультимедийные файлы). Если работа вашего компьютера подразумевает интенсивную дисковую активность, то для обеспечения стабильности следует придерживаться следующего правила: размер ОЗУ должен уместиться в 30% размера, отведенного под журнал. Например, если в вашем компьютере установлен 1 Гб ОЗУ, создайте под поставщик журнала раздел размером около 3.3 Гб. (Умножьте размер ОЗУ в 3.3 раза, чтоб получить размер журнала). +На файловых системах с журналированием GEOM, `sync(2)` и `fsync(2)` не гарантируют, что данные были записаны на постоянное хранилище. Для обеспечения сохранности необходимо использовать `gjournal sync`. ==== -Для получения дополнительной информации о журналировании, пожалуйста, прочитайте страницу справочника, посвященную man:gjournal[8]. +Из-за этих различий журналирование GEOM не рекомендуется для общего использования на настольных компьютерах или серверах. -[[reserve-space]] -== Действия, необходимые во время установки FreeBSD +== Выбор подходящего метода журналирования -=== Выделение места под журналирование +В следующей таблице приведены рекомендуемые варианты использования: -Типичный настольный компьютер обычно имеет один жесткий диск, на котором хранится как операционная система, так и пользовательские данные. Вероятно, что схема разбития винчестера (по умолчанию), выбранная в меню Sysinstall, является более или менее подходящей: настольному компьютеру не требуется большой раздел [.filename]#/var#, в то время, как для раздела [.filename]#/usr# выделяется значительный объем дискового пространства, ввиду того, что пользовательские данные и множество пакетов инсталлируются в подкаталоги [.filename]#/usr#. +[cols="1,1", options="header"] +|=== +| Вариант использования | Рекомендуемый механизм -Разбиение по умолчанию (получаемое при нажатии kbd:[A] в редакторе разделов FreeBSD, называемом Disklabel) не оставляет свободного места. Каждый подлежащий журналированию раздел требует отдельного раздела для журнала. Ввиду того, что раздел [.filename]#/usr# - наибольший, есть смысл немного уменьшить его размер, чтобы получить пространство, необходимое для журнала. +| Настольная или портативная система +| Журналирование с Soft Updates -В нашем примере используется жесткий диск размером 80 Гб. Следующий скриншот показывает результаты разбиения по умолчанию, выполненного при помощи Disklabel в процессе установки операционной системы: +| Универсальный сервер +| Журналирование с Soft Updates -image::disklabel1.png[] +| Устаревшие системы UFS +| Журналирование с Soft Updates -Если это разбиение более или менее вас устраивает, то его легко модифицировать для журналирования. Используйте клавиши со стрелками для того, чтобы выделить раздел, отведенный под [.filename]#/usr#, потом нажмите kbd:[D] чтобы удалить его. +| Требования к журналированию, не зависящие от файловой системы +| Журналирование GEOM -Теперь переведите подсвечивание к имени диска, находящемуся вверху экрана, и нажмите kbd:[C] - создайте новый раздел [.filename]#/usr#. Новый раздел должен быть меньше на 1 Гб (если вы собираетесь журналировать только [.filename]#/usr#) или на 2 Гб (если журналированию подлежат как [.filename]#/usr#, так и [.filename]#/var#). Во всплывающем окне выберите "создать файловую систему" и укажите [.filename]#/usr# точкой монтирования. +| Специализированное журналирование на уровне блоков +| Журналирование GEOM +|=== -[NOTE] -==== -Следует ли журналировать [.filename]#/var# раздел? Обычно есть смысл журналировать большие разделы. Вы можете решить не журналировать [.filename]#/var#, однако журналирование на обычном настольном компьютере не причинит вреда. Если файловая система не нагружена (что типично для настольной системы), то можно выделить меньше дискового пространства под журнал. +== Использование Soft Updates с журналированием + +Soft Updates с журналированием обеспечивают журналирование на уровне файловой системы для UFS. Этот механизм сохраняет целостность файловой системы, одновременно сохраняя оптимизации выделения и упорядочивания, характерные для Soft Updates. В отличие от журналирования GEOM, отдельное журналирующее устройство или раздел не требуется. + +=== Обзор + +Soft Updates с журналированием записывают изменения метаданных файловой системы в журнал, хранящийся внутри самой файловой системы, реализованный как скрытый файл с именем [.filename]#.sujournal# в корне файловой системы. В случае сбоя или отключения питания ожидающие операции с метаданными воспроизводятся из журнала, что позволяет быстро смонтировать файловую систему без полной проверки согласованности. + +Эта форма журналирования применяется только к метаданным файловой системы. Целостность данных файлов остается ответственностью приложений. + +=== Включение журналирования на существующей файловой системе + +Файловая система должна быть размонтирована или смонтирована в режиме только для чтения перед изменением настроек журналирования. + +[source, shell] +---- +# umount /usr +# tunefs -n enable -j enable /dev/ada0p2 +# mount /usr +---- + +Дополнительная настройка не требуется. Можно использовать стандартные параметры монтирования. + +=== Хранение журналов и их размер + +Размер журнала по умолчанию выбирается автоматически при включении ведения журнала. В большинстве случаев размер по умолчанию достаточен и не требует корректировки. + +При необходимости размер журнала в байтах может быть явно указан с помощью опции `-S` для `tunefs(8)`: + +[source, shell] +---- +# tunefs -S 64000000 /dev/ada0p2 +---- + +Настройка размера журнала редко требуется и должна рассматриваться только для файловых систем с необычно высокой частотой обновления метаданных. + +=== Проверка Soft Updates с журналированием + +Статус журналирования файловой системы UFS с использованием Soft Updates можно проверить с помощью `tunefs(8)` или `dumpfs(8)`. + +Чтобы отобразить текущие настройки файловой системы, выполните: + +[source, shell] +---- +# tunefs -p /dev/ada0p2 | grep -i journal +tunefs: soft updates journaling: (-j) enabled +tunefs: gjournal: (-J) disabled +---- + +Ищите следующие индикаторы в выводе: + +* Soft Updates включены +* Soft Updates с журналированием включены + +Или для проверки суперблока файловой системы можно использовать `dumpfs(8)`: + +[source, shell] +---- +English type: delimited block - 4 +# dumpfs /dev/ada0p2 | grep -i journal +flags soft-updates+journal +---- + +Эти команды предназначены только для чтения и не изменяют состояние файловой системы. + +=== Проверка и обслуживание файловой системы + +Хотя журналирование значительно сокращает время восстановления после сбоя, оно не устраняет необходимость периодических полных проверок файловой системы. + +* Журналирование гарантирует целостность, а не корректность +* Ошибки носителя не исправляются журналированием +* Периодическая проверка `fsck` все еще должна быть запланирована +* Фоновый `fsck` может использоваться на работающих файловых системах + +== Использование журналирования GEOM (Продвинутый уровень) -В этом примере подразумевается журналирование двух файловых систем: [.filename]#/usr# и [.filename]#/var#. Естественно, вы можете подкорректировать процедуру под свои задачи. +[WARNING] +==== +Данный раздел предназначен для опытных пользователей, которые понимают последствия журналирования на уровне блоков и изменения семантики синхронизации. ==== -Чтобы не усложнять описываемую методику, для создания разделов, необходимых для размещения журналов, мы будем использовать утилиту Sysinstall. Однако, во время установки утилита Sysinstall требует указания точек монтирования для каждого созданного вами раздела. Но разделы, содержащие журналы, вам никогда и никуда монтировать не придется. +=== Обзор + +Возможность журналирования обеспечивается загрузкой модуля [.filename]#geom_journal.ko# в ядро (или сборкой собственного ядра с активированием соответствующих опций) и использованием команды `gjournal` для конфигурирования файловой системы. В общем, вы предпочтете журналировать файловые системы большого размера, к примеру - [.filename]#/usr#. Однако, вам придется зарезервировать некоторое количество свободного места (см. следующий раздел). + +Журналирование GEOM реализовано модулем ядра `geom_journal` и настраивается с помощью утилиты `gjournal(8)`. Оно обеспечивает журналирование на уровне блоков ниже слоя файловой системы и требует явной поддержки со стороны UFS. + +При использовании журналирования GEOM требуется некоторое дисковое пространство для хранения самого журнала. Провайдер, содержащий данные файловой системы, называется _провайдером данных_, а провайдер, хранящий журнал, называется _провайдером журнала_. + +При журналировании существующей (непустой) файловой системы провайдеры данных и журнала должны быть раздельными. При журналировании новой, пустой файловой системы, один провайдер может использоваться для хранения как данных, так и информации журнала. В обоих случаях `gjournal(8)` объединяет провайдеры данных и журнала для создания нового журналируемого провайдера, который затем монтируется файловой системой. Например: + +* Файловая система `/usr` расположена на `/dev/ada0p2` и уже содержит данные. +* Свободное дисковое пространство выделено в отдельном разделе, `/dev/ada0p4`, для хранения журнала. +* После настройки журналирования GEOM создается новый провайдер `/dev/ada0p2.journal`. Этот журналируемый провайдер объединяет `/dev/ada0p2` в качестве провайдера данных и `/dev/ada0p4` в качестве провайдера журнала и используется для всех последующих операций файловой системы. + +Объем дискового пространства, необходимого для журнала, в первую очередь зависит от интенсивности записи в файловую систему, а не от размера поставщика данных. Системам с постоянной или импульсной активностью записи требуются журналы большего размера, чтобы избежать чрезмерного переключения журналов или ограничения записи. + +Из справочной страницы `gjournal(8)`: + +* Размер журнала по умолчанию составляет 1 ГБ. +* Рекомендуемый минимальный размер журнала составляет удвоенный объем установленной оперативной памяти. +* Размер журнала должен выбираться на основе ожидаемой нагрузки записи, а не размера файловой системы. + +Недостаточный размер журнала может привести к снижению производительности или вынужденным переключениям журнала при высокой нагрузке на запись. + +Для получения дополнительной информации о журналировании, пожалуйста, прочитайте страницу справочника, посвященную man:gjournal[8]. + +[[reserve-space]] +=== Действия, необходимые во время установки FreeBSD + +В этом разделе описывается необязательная подготовка во время установки для систем, настроенных на использование журналирования GEOM. Цель — зарезервировать дисковое пространство для журнальных провайдеров, которые впоследствии будут связаны с файловыми системами `/usr` и `/var`. + +==== Выделение места под журналирование + +На типичной системе с одним диском операционная система, установленное программное обеспечение и пользовательские данные находятся на одном устройстве. Стандартное автоматическое разбиение, выполняемое установщиком FreeBSD, выделяет большую часть доступного пространства под `/usr`, с меньшими разделами для `/var` и других точек монтирования. + +По умолчанию установщик выделяет всё доступное дисковое пространство для файловых систем и не оставляет неиспользуемого места. Если планируется использование журналирования GEOM для существующих (непустых) файловых систем, необходимо зарезервировать дополнительное дисковое пространство для размещения журнальных провайдеров. Каждая файловая система, которая будет журналироваться, требует собственного журнального провайдера. -Чтобы избежать вопросов о точках монтирования, мы создадим разделы под журналы и установим их тип в swap. Раздел, предназначенный для свопа, никогда и никуда не монтируется, плюс к тому, утилита Sysinstall позволяет создавать столько разделов под своп, сколько необходимо. После первой перезагрузки необходимо подредактировать файл [.filename]#/etc/fstab#, удалив в нём лишние записи о своп-разделах. +Поскольку `/usr` обычно занимает наибольшую часть диска, это наиболее практичный раздел для небольшого уменьшения, чтобы освободить место для журналируемых провайдеров. -Для создания своп-раздела, используя клавиши со стрелками, перемещайте подсвечивание к верхней части экрана в утилите Disklabel так, чтобы стало подсвеченным имя диска. Потом, нажмите kbd:[N], введите необходимый размер раздела (_1024M_), а после - выберите во всплывшем окне "swap space". Повторите эти шаги для всех оставшихся журналов. В этом примере мы создаем два раздела, на которых будут размещаться журналы для [.filename]#/usr# и [.filename]#/var#. Конечный результат показан на следующем скриншоте: +В нашем примере журналирование GEOM планируется как для `/usr`, так и для `/var`. -image::disklabel2.png[] +==== Стратегия разбиения на разделы -По завершении создания разделов мы рекомендуем вам записать на бумагу названия разделов и их точек монтирования: с этой информацией вы будете сверяться во время конфигурирования. Это также поможет уменьшить количество ошибок, приводящих к повреждению установки. Следующая табличка отображает наши заметки, сделанные для данного примера: +Во время установки используйте режим ручного разбиения, предоставляемый установщиком. Создайте любую поддерживаемую файловую систему для `/`, а также стандартные разделы UFS для `/usr` и `/var`, но уменьшите размер `/usr`, чтобы оставить достаточно нераспределенного пространства в конце диска. -.Разделы и журналы -[cols="1,1,1", options="header"] +Из оставшегося нераспределенного пространства создайте два дополнительных раздела, которые будут использоваться исключительно в качестве журнальных провайдеров: + +* Один раздел для журнала `/usr` +* Один раздел для журнала `/var` + +Эти разделы не должны иметь назначенных точек монтирования и не должны использоваться для подкачки. Они останутся неиспользованными до тех пор, пока не будут явно связаны с соответствующими поставщиками данных с помощью `gjournal(8)` после установки. + +Типичная схема может выглядеть следующим образом: + +.Разделы, Зарезервированные для Журналирования GEOM +[cols="1,1,2", options="header"] |=== -| Раздел -| Точка монтирования -| Журнал +| Поставщик +| Предназначение +| Заметки -|ad0s1d +|/dev/ada0p2 |/var -|ad0s1h +|Файловая система UFS (поставщик данных) -|ad0s1f +|/dev/ada0p3 |/usr -|ad0s1g +|Файловая система UFS (поставщик данных) + +|/dev/ada0p4 +|Журнал для /var +|Неформатированный, неиспользуемый раздел + +|/dev/ada0p5 +|Журнал для /usr +|Неформатированный, неиспользуемый раздел |=== -Дальше продолжайте обычную установку. Однако, мы рекомендуем вам отложить инсталляцию приложений сторонних разработчиков (пакетов) до полной настройки журналирования. +Точные названия устройств могут различаться в зависимости от структуры диска и схемы разделов. Настоятельно рекомендуется записать имена провайдеров во время установки, так как они потребуются при настройке журнала. + +==== Соображения по размеру журнала + +Размер журнала зависит от ожидаемой нагрузки на запись, а не от размера файловой системы. Для систем общего назначения обычно достаточно журналов размером 1–2 ГБ. Системам с постоянной или импульсной активностью записи могут потребоваться журналы большего размера. + +Выделяйте пространство под журнал экономно во время установки, так как изменение размера разделов позже может потребовать дополнительного времени простоя. + +==== Завершение инсталляции + +После резервирования необходимых разделов завершите установку FreeBSD в обычном режиме. Рекомендуется отложить установку стороннего программного обеспечения и дополнительную настройку системы до полной настройки журналирования GEOM. + +На этом этапе система загрузится с использованием стандартных файловых систем UFS. Зарезервированные журнальные разделы останутся неиспользованными до тех пор, пока журналирование не будет явно включено. [[first-boot]] -=== Первая загрузка +==== Первая загрузка после установки + +После первого успешного запуска немедленные изменения конфигурации не требуются. Следует убедиться, что система загружается и работает нормально, прежде чем продолжить. -Ваша система загрузится нормально, однако вам необходимо будет подредактировать [.filename]#/etc/fstab# и удалить те лишние своп-разделы, которые вы создавали под журналы. Как правило, в названии файла устройства, созданного автоматически утилитой Sysinstall, присутствует суффикс "b" (в нашем примере это ad0s1b). Удалите другие записи о своп-разделах и перезагрузите компьютер, после чего FreeBSD перестанет их использовать. +После того, как подтверждено, что базовая система работоспособна, следующие шаги включают: -После второй перезагрузки, компьютер будет готов к конфигурированию журналирования. +* Загрузка или включение поддержки журналирования GEOM +* Связывание журнальных провайдеров с соответствующими провайдерами данных +* Обновление `/etc/fstab` для монтирования журналируемых устройств + +Эти шаги описаны в следующем разделе. [[configure-journal]] -== Настройка журналирования +=== Настройка журналирования [[running-gjournal]] -=== Работа с командой `gjournal` +==== Включение журналирования GEOM в существующих файловых системах + +В этом разделе описывается, как включить журналирование GEOM для файловых систем `/usr` и `/var`, используя разделы, подготовленные в процессе установки. + +После резервирования необходимых журнальных провайдеров можно настроить журналирование GEOM. Поскольку файловые системы, подлежащие журналированию, не должны быть смонтированы, систему необходимо переключить в однопользовательский режим. -Подготовив необходимые разделы, перейдем к конфигурированию журналирования. Нам будет необходимо загрузиться в однопользовательском режиме, для этого залогинимся пользователем `root` и напечатаем: +Залогиньтесь `root` и введите: [source, shell] .... # shutdown now .... -Нажмите kbd:[Enter] для получения приглашения командного интерпретатора. Нам необходимо будет размонтировать разделы, которые подлежат журналированию, в нашем примере это [.filename]#/usr# и [.filename]#/var#: +Нажмите kbd:[Enter] для получения приглашения командного интерпретатора в режиме root. Нам необходимо будет размонтировать разделы, которые подлежат журналированию, в нашем примере это [.filename]#/usr# и [.filename]#/var#: [source, shell] .... # umount /usr /var .... -Загрузите модуль ядра, необходимый для журналирования: +Загрузите модуль ядра GEOM journaling: [source, shell] .... # gjournal load .... -На данном этапе сверьтесь со своими записями и определите, какие разделы будут использоваться под какой журнал. В нашем примере [.filename]#/usr# располагается на [.filename]#ad0s1f#, а его журнал будет располагаться на [.filename]#ad0s1g#, и, по аналогии, для [.filename]#/var#: файловая система располагается на [.filename]#ad0s1d#, а ее журнал - на [.filename]#ad0s1h#. Наберите следующие команды: +Далее, свяжите каждого поставщика данных с соответствующим поставщиком журналов. Используйте свои заметки, чтобы определить, какой раздел будет использоваться для каждого журнала. + +В этом примере: + +* `/usr` находится на `/dev/ada0p3`, а его журнальный провайдер — `/dev/ada0p5` +* `/var` находится на `/dev/ada0p2`, а его журнальный провайдер — `/dev/ada0p4` + +Создайте журналируемые провайдеры с помощью `gjournal(8)`: [source, shell] .... -# gjournal label ad0s1f ad0s1g -GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. -GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. +# gjournal label ada0p3 ada0p5 +GEOM_JOURNAL: Journal 2948326772: ada0p5 contains journal. +GEOM_JOURNAL: Journal 2948326772: ada0p3 contains data. +GEOM_JOURNAL: Journal ada0p3 clean. -# gjournal label ad0s1d ad0s1h -GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data. -GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. +# gjournal label ada0p2 ada0p4 +GEOM_JOURNAL: Journal 3193218002: ada0p4 contains journal. +GEOM_JOURNAL: Journal 3193218002: ada0p2 contains data. +GEOM_JOURNAL: Journal ada0p2 clean. .... + [NOTE] ==== -Если последний сектор любого из двух разделов (поставщиков данных) используется, команда `gjournal` возвратит ошибку. Вам необходимо будет использовать флаг `-F` для принудительной перезаписи, например: +Если `gjournal` сообщает, что последний сектор провайдера используется, команда завершится неудачей. На свежесозданных или неиспользуемых разделах безопасно повторить операцию с флагом `-f` для принудительной инициализации: [source, shell] .... -# gjournal label -f ad0s1d ad0s1h +# gjournal label -f /dev/ada0p2 /dev/ada0p4 .... - -Так как это - новая установка, очень маловероятен факт, что что-нибудь будет действительно переписано. ==== -На данном этапе созданы два устройства: [.filename]#ad0s1d.journal# и [.filename]#ad0s1f.journal#. Они представляют [.filename]#/var# и [.filename]#/usr# соответственно. Перед монтированием, нам необходимо установить флаг журналирования и снять флаг механизма Soft Updates: +После маркировки создаются два новых журналируемых провайдера: + +* `/dev/ada0p3.journal` для `/usr` +* `/dev/ada0p2.journal` для `/var` + +Эти устройства заменят исходные источники данных при монтировании файловых систем. + +Перед монтированием необходимо установить для них флаг журнала и снять флаг Soft Updates: [source, shell] .... -# tunefs -J enable -n disable ad0s1d.journal +# tunefs -J enable -n disable -j disable /dev/ada0p3.journal +tunefs: soft updates journaling cleared but soft updates still set +tunefs: remove .sujournal to reclaim space tunefs: gjournal set tunefs: soft updates cleared -# tunefs -J enable -n disable ad0s1f.journal +# tunefs -J enable -n disable -j disable /dev/ada0p2.journal +tunefs: soft updates journaling cleared but soft updates still set +tunefs: remove .sujournal to reclaim space tunefs: gjournal set tunefs: soft updates cleared .... -Теперь, смонтируйте новые устройства в соответствующие места файловой системы (обратите внимание на то, что мы можем использовать опцию монтирования `async`): +Теперь, смонтируйте новые устройства в соответствующие места файловой системы (обратите внимание на то, что мы можем использовать опцию монтирования `async`) и удалите [.filename]#.sujournal#, чтобы освободить место на диске: [source, shell] .... -# mount -o async /dev/ad0s1d.journal /var -# mount -o async /dev/ad0s1f.journal /usr +# mount -o async /dev/ada0p2.journal /var +# rm /var/.sujournal +# mount -o async /dev/ada0p3.journal /usr +# rm /usr/.sujournal .... Откройте [.filename]#/etc/fstab# и исправьте записи для следующих файловых систем: [.filename]#/usr# и [.filename]#/var#: [.programlisting] .... -/dev/ad0s1f.journal /usr ufs rw,async 2 2 -/dev/ad0s1d.journal /var ufs rw,async 2 2 +/dev/ada0p3.journal /usr ufs rw,async 2 2 +/dev/ada0p2.journal /var ufs rw,async 2 2 .... [WARNING] ==== Проверьте корректность всех указанных параметров - в противном случае после перезагрузки возможны проблемы со стандартным запуском системы! ==== Наконец, внесите изменения в [.filename]#/boot/loader.conf#, добавив строку для автоматической загрузки модуля man:gjournal[8] при каждом старте системы: [.programlisting] .... geom_journal_load="YES" .... -Поздравляем! Ваша система теперь настроена для журналирования. Вы можете ввести команду `exit` для возврата в многопользовательский режим или перезагрузить систему для проверки конфигурации (рекомендуется). При загрузке вы увидите сообщения следующего вида: +Поздравляем! Ваша система теперь настроена для журналирования. Вы можете ввести команду `exit` для возврата в многопользовательский режим или перезагрузить систему для проверки конфигурации (рекомендуется). + +[source, shell] +.... +# shutdown -r now +.... + +Во время перезагрузки вы увидите сообщение следующего вида: [source, shell] .... -ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150 -GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. -GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. -GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data. -GEOM_JOURNAL: Journal ad0s1d clean. -GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. -GEOM_JOURNAL: Journal ad0s1f clean. +# dmesg | grep GEOM_JOURNAL +GEOM_JOURNAL: Journal 2948326772: ada0p4 contains journal. +GEOM_JOURNAL: Journal 3193218002: ada0p5 contains journal. +GEOM_JOURNAL: Journal 2948326772: ada0p2 contains data. +GEOM_JOURNAL: Journal ada0p2 clean. +GEOM_JOURNAL: Journal 3193218002: ada0p3 contains data. +GEOM_JOURNAL: Journal ada0p3 clean. .... После некорректного завершения работы сообщения будут немного отличаться, например: [source, shell] .... -GEOM_JOURNAL: Journal ad0s1d consistent. +GEOM_JOURNAL: Journal ada0p2 consistent. .... Обычно это означает, что man:gjournal[8] использовал информацию из журнала для приведения файловой системы в согласованное состояние. [[gjournal-new]] -=== Журналирование новых разделов +==== Включение журналирования GEOM на вновь созданных разделах + +Процедура, описанная ранее, необходима при включении журналирования GEOM на файловых системах, которые уже содержат данные. При журналировании только что созданного, пустого раздела процесс проще, так как и данные, и журнальные провайдеры могут находиться в одном разделе. + +Такой подход обычно используется для новых дисков или недавно выделенных разделов, которые еще не были отформатированы под файловую систему. -Процедура, описанная выше, необходима для подключения журналирования разделов, содержащих данные. Журналирование пустых разделов немного проще, ввиду того, что поставщик данных и поставщик журнала могут быть размещены на одном и том же разделе. Например, предположим, что был установлен новый жесткий диск и был создан новый раздел [.filename]#/dev/ad1s1d#. Создание журнала не сложнее набора: + +Процедура, описанная выше, необходима для подключения журналирования разделов, содержащих данные. Журналирование пустых разделов немного проще, ввиду того, что поставщик данных и поставщик журнала могут быть размещены на одном и том же разделе. Например, предположим, что был установлен новый жёсткий диск и был создан новый раздел [.filename]#/dev/ada1p1#. Создание журнала не сложнее набора: [source, shell] .... -# gjournal label ad1s1d +# gjournal label /dev/ada1p1 .... Размер журнала - 1 Гб по умолчанию. Однако, вы можете изменить это значение используя ключ `-s`. Значение можно задавать в байтах, в килобайтах, мегабайтах или гигабайтах (используя суффикс `K`, `M` или `G`). Имейте ввиду, что команда `gjournal` не позволит вам создать журнал недопустимо малого размера. К примеру, чтобы создать журнал размером в 2Гб, можно использовать следующую команду: [source, shell] .... -# gjournal label -s 2G ad1s1d +# gjournal label -s 2G /dev/ada1p1 .... -Далее, вы можете создать файловую систему на новом разделе, а также разрешить журналирование ключом `-J`: +Далее, вы можете создать файловую систему UFS на новом разделе, разрешить журналирование, используя `newfs(8)` на устройстве `.journal`, и запретить Soft Updates, используя `tunefs(8)`: [source, shell] .... -# newfs -J /dev/ad1s1d.journal +# newfs -J /dev/ada1p1.journal +# tunefs -n disable -j disable /dev/ada1p1.journal .... +После создания файловой системы её можно смонтировать обычным способом. Например, чтобы смонтировать её в `/data`: + +[source, shell] +.... +# mount /dev/ada1p1.journal /data +.... + +Чтобы обеспечить автоматическое монтирование файловой системы при загрузке, добавьте запись в [.filename]#/etc/fstab#: + +[.programlisting] +.... +/dev/ada1p1.journal /data ufs rw,async 2 2 +.... + +===== Заметки по использованию + +При использовании одного провайдера для хранения данных и журналов: + +* Раздел должен быть пустым перед выполнением `gjournal label` +* Журнальное пространство выделяется внутри раздела диска +* Размер файловой системы будет уменьшен на размер журнала + [[configure-kernel]] -=== Встраивание журналирования в специализированное ядро +=== Встраивание журналирования в собственное ядро -Если вы не желаете загружать `geom_journal` как модуль, то можно встроить его функции прямо в ваше специализированное ядро. Редактируя конфигурационный файл ядра, убедитесь, что в нем находятся следующие две строки: +Если вы не желаете загружать `geom_journal` как модуль, то можно встроить его функции прямо в ваше специализированное ядро. Редактируя конфигурационный файл ядра, убедитесь, что в нём находятся следующие две строки: [.programlisting] .... -options UFS_GJOURNAL # Note: This is already in GENERIC +options UFS_GJOURNAL <1> -options GEOM_JOURNAL # You will have to add this one +options GEOM_JOURNAL <2> .... +<.> Обратите внимание — это уже есть в GENERIC +<.> Вам надо добавить эту опцию + + Соберите и установите новое ядро следуя указаниям extref:{handbook}kernelconfig[Руководства FreeBSD., kernelconfig] И не забудьте удалить соответствующую строку загрузки модуля ("load") из [.filename]#/boot/loader.conf# (если на предыдущем этапе она была туда внесена). +=== Проверка GEOM журналирования + +Статус журналирования GEOM можно уточнить, проверив активные провайдеры GEOM. + +Чтобы вывести список всех активных устройств журналирования GEOM, выполните: + +[source, shell] +---- +# gjournal list +---- + +Или для просмотра сводки состояния журнала: + +[source, shell] +---- +# gjournal status +---- + +Журналируемые файловые системы обозначаются именами устройств, оканчивающимися на `.journal`. Наличие этих провайдеров указывает на активность журналирования GEOM. + +Дополнительную информацию о цепочке устройств GEOM можно получить с помощью: + +[source, shell] +---- +# geom -t +---- + +Или для проверки суперблока файловой системы можно использовать `dumpfs(8)`: + +[source, shell] +---- +# dumpfs /dev/ada0p2.journal | grep -i journal +flags gjournal +---- + +[[troubleshooting-journaling]] [[troubleshooting-gjournal]] == Устранение неполадок с журналированием Этот раздел содержит часто задаваемые вопросы касательно неполадок, связанных с журналированием. -=== Я получаю паники ядра во время высокой дисковой активности. Как это связано с журналированием? +=== Я получаю паники ядра во время высокой дисковой активности. Это связано с журналированием GEOM? + +На современных системах FreeBSD аварийные остановки системы, вызванные исключительно недостаточным размером журнала GEOM, встречаются редко. + +При продолжительных или интенсивных всплесках нагрузки на запись, недостаточный размер журнала обычно приводит к регулированию записи или временным задержкам ввода-вывода во время сброса журнала на устройство хранения данных. Аварийная остановка системы может возникнуть лишь в исключительных случаях, обычно в сочетании с дополнительными проблемами, такими как ошибки ввода-вывода или исчерпание ресурсов, когда продолжение работы может угрожать целостности файловой системы. -Вероятно, что журнал заполняется раньше, чем происходит сброс его на диск. Помните, размер журнала зависит от загруженности диска, а не от размера поставщика данных. Если загрузка диска высокая, вам потребуется раздел большего размера для журнала. См. замечания в разделе crossref:gjournal-desktop[understanding-journaling, Understanding Journaling in FreeBSD]. +Если наблюдаются аварийные остановки при интенсивной активности записи, рекомендуется увеличить размер журнала для затронутой файловой системы. === Я допустил некоторые ошибки во время конфигурирования, теперь система не загружается. Можно это как-нибудь исправить? -Вы либо забыли внести запись (опечатались) в [.filename]#/boot/loader.conf#, либо есть ошибки в файле [.filename]#/etc/fstab#. Это легко исправить. Нажмите kbd:[Enter], чтобы получить приглашение командного интерпретатора в однопользовательском режиме. Потом, проверьте возможные варианты: +Вы либо забыли внести запись (опечатались) в [.filename]#/boot/loader.conf#, либо есть ошибки в файле [.filename]#/etc/fstab#. Это легко исправить. Во время загрузки системы, когда процесс загрузки остановится и появится запрос входа в однопользовательский режим (например, после сбоя монтирования или ошибки `fsck`), нажмите kbd:[Enter], чтобы получить приглашение командного интерпретатора в однопользовательском режиме. Потом, проверьте возможные варианты: [source, shell] .... # cat /boot/loader.conf .... +Убедитесь, что следующая строка существует и написана правильно: + +[.programlisting] +.... +geom_journal_load="YES" +.... + Если отсутствует запись `geom_journal_load`, или она содержит ошибки, журналируемые устройства не создадутся. Загрузите модуль вручную, примонтируйте все разделы и переходите в многопользовательский режим (продолжайте загрузку): [source, shell] .... # gjournal load -GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. -GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. -GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data. -GEOM_JOURNAL: Journal ad0s1d clean. -GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. -GEOM_JOURNAL: Journal ad0s1f clean. +GEOM_JOURNAL: Journal 2948326772: ada0p4 contains journal. +GEOM_JOURNAL: Journal 3193218002: ada0p5 contains journal. +GEOM_JOURNAL: Journal 2948326772: ada0p2 contains data. +GEOM_JOURNAL: Journal ada0p2 clean. +GEOM_JOURNAL: Journal 3193218002: ada0p3 contains data. +GEOM_JOURNAL: Journal ada0p3 clean. # mount -a # exit (boot continues) .... Если же запись о `geom_journal_load` верна, то проверьте [.filename]#/etc/fstab#. Вероятней всего, что вы обнаружите опечатку или отсутствие необходимой записи. В этом случае смонтируйте вручную оставшиеся разделы и продолжите загрузку в многопользовательский режим. === Возможно ли отказаться от журналирования и вернуться к моей привычной файловой системе с механизмом Soft Updates? -Несомненно. Используйте приведенную ниже последовательность действий, которая обращает изменения. Разделы, созданные для поставщиков журналов, могут позже быть использованы для других целей. +Несомненно. Используйте приведённую ниже последовательность действий, которая обращает изменения. Разделы, созданные для поставщиков журналов, могут позже быть использованы для других целей. Залогиньтесь `root` и переведите систему в однопользовательский режим: [source, shell] .... # shutdown now .... Размонтируйте журналируемые разделы: [source, shell] .... # umount /usr /var .... Синхронизируйте журналы: [source, shell] .... # gjournal sync .... Остановите поставщиков журналов: [source, shell] .... -# gjournal stop ad0s1d.journal -# gjournal stop ad0s1f.journal +# gjournal stop ada0p2.journal +# gjournal stop ada0p3.journal +.... + +Следующий шаг должен быть выполнен с выгруженным модулем ядра gjournal. Если следующая команда завершится неудачей: + +[source, shell] +... # gjournal unload ... + +Убедитесь, что следующая строка присутствует в [.filename]#/boot/loader.conf# и написана правильно: + +[.programlisting] +.... +geom_journal_load="NO" +.... + +Перезагрузите ваш компьютер без модуля ядра gjournal: + +[source, shell] +.... +# shutdown -r now .... -Удалите метаданные журналирования со всех задействованных устройств: +Войдите в систему в однопользовательском режиме еще раз. Удалите метаданные журналирования со всех задействованных устройств: [source, shell] .... -# gjournal clear ad0s1d -# gjournal clear ad0s1f -# gjournal clear ad0s1g -# gjournal clear ad0s1h +# gjournal clear ada0p2 +# gjournal clear ada0p3 +# gjournal clear ada0p4 +# gjournal clear ada0p5 .... -Снимите флаг журналирования и установите флаг механизма Soft Updates: +Снимите флаг журналирования и установите флаги механизма Soft Updates: [source, shell] .... -# tunefs -J disable -n enable ad0s1d +# tunefs -J disable -n enable -j enable ada0p2 +tunefs: soft updates journaling set tunefs: gjournal cleared tunefs: soft updates set -# tunefs -J disable -n enable ad0s1f +# tunefs -J disable -n enable -j enable ada0p3 +tunefs: soft updates journaling set tunefs: gjournal cleared tunefs: soft updates set .... Смонтируйте вручную старые (первоначальные) устройства: [source, shell] .... -# mount -o rw /dev/ad0s1d /var -# mount -o rw /dev/ad0s1f /usr +# mount -o rw /dev/ada0p2 /var +# mount -o rw /dev/ada0p3 /usr .... Откройте файл [.filename]#/etc/fstab# и приведите его к изначальному виду: [.programlisting] .... -/dev/ad0s1f /usr ufs rw 2 2 -/dev/ad0s1d /var ufs rw 2 2 +/dev/ada0p2 /usr ufs rw 2 2 +/dev/ada0p3 /var ufs rw 2 2 .... -И напоследок, удалите строку, загружающую модуль `geom_journal`, из файла [.filename]#/boot/loader.conf# и перезагрузите операционную систему. +И напоследок, удалите строку, загружающую модуль `geom_journal`, из файла [.filename]#/boot/loader.conf# (или включите его опять, если он по прежнему требуется для других разделов диска), и перезагрузите операционную систему. + +=== Как временно загрузиться без журналирования GEOM? + +Чтобы загрузить систему без журналирования GEOM, предотвратите загрузку модуля журнала во время запуска. + +Закомментируйте или удалите соответствующую строку из [.filename]#/boot/loader.conf# и перезагрузитесь: + +[.programlisting] +.... +geom_journal_load="YES" +.... + +После загрузки без журналирования GEOM, журналируемые устройства (`*.journal`) не будут созданы. Файловые системы должны быть смонтированы с использованием их исходных (не журналируемых) провайдеров или вручную по мере необходимости для восстановления или обслуживания. + +Этот метод не изменяет метаданные журнала на диске и может безопасно использоваться для устранения неполадок. + +=== Можно ли изменить размер журнала GEOM после его создания? + +Нет. Журнал GEOM не может быть изменен в размере на месте после его создания. + +Размер журнала фиксируется в момент выполнения `gjournal label` . Чтобы изменить размер журнала, необходимо удалить журналирование GEOM и переконфигурировать его с новым провайдером журнала желаемого размера. Для файловых систем, содержащих данные, это требует размонтирования файловой системы и воссоздания журнала с использованием провайдеров соответствующего размера, как описано ранее в этой статье. + +Планируйте размеры журналов консервативно, чтобы они соответствовали пиковой активности записи, так как изменение размера требует повторной инициализации конфигурации журнала. + +=== Что происходит после некорректного завершения работы или сбоя питания? + +После некорректного завершения работы или сбоя питания, журналирование GEOM и Soft Updates с журналированием воспроизводят ожидающие записи журнала во время следующей загрузки, чтобы вернуть файловую систему в согласованное состояние. + +Если восстановление журнала завершается успешно, файловая система монтируется в обычном режиме, и полная проверка файловой системы не требуется. Восстановление журнала обычно занимает всего несколько секунд и зависит от объема недавней активности записи, а не от размера файловой системы. + +Полная проверка файловой системы может потребоваться в редких случаях, например, при обнаружении ошибок в устройстве хранения или несоответствии самого журнала. + +=== Как взаимодействует журналирование GEOM с fsck? + +Журналирование GEOM и Soft Updates с журналированием взаимодействуют с `fsck_ffs(8)` различными способами, отражая их разные уровни интеграции в стеке хранения FreeBSD. + +Для журналирования GEOM восстановление после сбоя выполняется самой структурой GEOM. Во время запуска системы класс `geom_journal` обнаруживает метаданные журнала и воспроизводит все ожидающие записи журнала, пока провайдер обрабатывается GEOM, до того как журналируемое устройство станет видимым для более высоких уровней системы. Если воспроизведение журнала завершается успешно, файловая система возвращается в согласованное состояние, и суперблок UFS обновляется, чтобы указать, что проверка файловой системы не требуется. Когда позже во время загрузки вызывается `fsck_ffs(8)`, он считывает это состояние из суперблока и пропускает проверку файловой системы. + +Для Soft Updates с журналированием восстановление инициируется самим `fsck_ffs(8)`. Во время проверки файловой системы при загрузке, `fsck_ffs(8)` обнаруживает, что файловая система поддерживает Soft Updates с журналированием, и запускает логику воспроизведения журнала. Если воспроизведение журнала сообщает, что файловая система непротиворечива, `fsck_ffs(8)` завершается досрочно без выполнения полной проверки. Если воспроизведение журнала не может быть успешно завершено, выполняется традиционная проверка файловой системы. + +В результате, путь восстановления во время загрузки системы зависит от используемого механизма журналирования, что иллюстрируется следующей последовательностью загрузки: + +---- +Загрузчик системы + | + v +Инициализация ядра + | + v +Фреймворк GEOM framework (обнаружение поставщиков - tasting) + | + +--> Журналирование GEOM (gjournal) + | - Выполнение записи на диск из журнала выполняется на этом этапе + | - Согласованность файловой системы восстановлена + | - Суперблок обновлен + | + v +Фаза проверки файловой системы (fsck_ffs) + | + +--> Журналирование с Soft Updates + | - Выполнение записи на диск из журнала, инициированное командой fsck + | - fsck сразу выходит, если файловая система в согласованном состоянии + | + v +Монтирование файловой системы + | + v +Обычная работа системы +---- + +`fsck_ffs(8)` всё ещё используется, когда восстановление журнала не может быть завершено, при обнаружении ошибок базового хранилища или во время периодических ручных или запланированных проверок файловой системы. Журналирование GEOM сокращает время восстановления после сбоев, но не заменяет `fsck_ffs(8)` полностью. + +=== Почему команда `gjournal clear` сообщает "Операция не разрешена" даже в однопользовательском режиме? + +В GEOM одно и то же базовое хранилище может быть представлено через несколько имён провайдеров одновременно. Например, раздел может быть виден как под своим именем, основанным на диске (например, `vtbd0p7`), так и под меткой GPT (например, `/dev/gpt/labelname`). Это разные провайдеры GEOM, ссылающиеся на одно и то же физическое хранилище. + +Когда команды `gjournal stop` или `gjournal clear` выполняются на одном имени провайдера, фреймворк GEOM может немедленно снова обнаружить метаданные журнала через другое имя провайдера в процессе распознавание устройства (tasting). В результате журнал автоматически повторно присоединяется, и попытки очистить его метаданные завершаются ошибкой "Операция не разрешена". + +Технически возможно подавить это поведение, отключив GEOM tasting или предотвратив создание альтернативных имён провайдеров, однако это крайне не рекомендуется. Такие изменения могут негативно повлиять на другие классы GEOM и системные компоненты, которые полагаются на обычное обнаружение провайдеров. + +По этой причине рекомендованная и безопасная процедура заключается в полной выгрузке модуля `geom_journal` перед удалением журнальных метаданных, как описано ранее в этой статье. При выгруженном модуле не происходит автоматического распознавания, и журнал не может быть повторно подключен, что позволяет команде `gjournal clear` завершиться успешно. + +=== Можно ли использовать журналирование GEOM на корневой файловой системе? + +Да. Журналирование GEOM может использоваться на корневой файловой системе, но требует дополнительной осторожности при настройке системы. + +Модуль GEOM journal должен быть загружен на раннем этапе процесса загрузки, чтобы журналируемое корневое устройство было доступно до монтирования корневой файловой системы. Неправильная конфигурация может помешать системе загрузиться в обычном режиме, поэтому данная настройка, как правило, рекомендуется только опытным пользователям, которые полностью понимают последовательность загрузки и процедуры восстановления. + +По этим причинам журналирование GEOM чаще применяется к некорневым файловым системам, таким как `/usr` и `/var`. + +=== Каковы последствия для производительности при использовании журналирования GEOM? + +Ведение журнала GEOM вводит дополнительные операции записи ввода-вывода, поскольку все операции записи сначала регистрируются в журнале перед фиксацией на устройстве хранения данных. Это приводит к увеличению задержки записи и более высокому коэффициенту увеличения объёма записи по сравнению с файловыми системами без журналирования. + +Производительность чтения обычно не страдает. Наиболее заметное влияние на производительность наблюдается при интенсивных нагрузках на запись и зависит от размера журнала, его размещения и скорости базового хранилища. Использование журнала достаточного размера и быстрого хранилища для поставщика журнала минимизирует потери в производительности. + +=== Может ли журналирование GEOM использоваться вместе с другими классами GEOM? + +Да. GEOM журналирование может быть объединено с другими классами GEOM. + +При совместном использовании журналирование GEOM обычно работает поверх провайдеров, созданных другими классами GEOM, такими как `gmirror(8)` или `graid3(8)`. Порядок наложения важен и должен соответствовать задокументированным требованиям к слоям задействованных классов GEOM. + +GEOM журналирование обеспечивает целостность файловой системы на всех уровнях поставщиков, но не заменяет избыточность или обнаружение ошибок, предоставляемые другими классами GEOM. + +=== Можно ли одновременно включить журналирование GEOM и Soft Updates? + +Нет. GEOM журналирование и Soft Updates не должны быть включены одновременно на одной файловой системе. + +GEOM журналирование требует исключительного контроля над порядком записи и гарантиями согласованности. Если Soft Updates включены вместе с GEOM журналированием, файловая система может вести себя непредсказуемо, и целостность данных не может быть гарантирована. + +При использовании журналирования GEOM необходимо отключить Soft Updates на затронутой файловой системе, как описано ранее в этой статье. + +[[soft-updates]] +=== В чем разница между Soft Updates и Soft Updates с журналированием? + +Как Soft Updates, так и Soft Updates with Journaling предназначены для поддержания целостности файловой системы, но используют разные механизмы и ведут себя по-разному после сбоя системы. + +_Soft Updates_ обеспечивают целостность за счёт тщательного упорядочивания записи метаданных в памяти, так что на диск записываются только безопасные состояния. При сбое любые обновления метаданных, ещё не записанные на диск, просто теряются, оставляя файловую систему в целостном, но, возможно, более старом состоянии. Однако учёт ресурсов может временно быть неточным, и для освобождения неиспользуемых блоков и индексных дескрипторов требуется полный запуск `fsck_ffs(8)`. + +_Soft Updates с журналированием_ расширяют функциональность _Soft Updates _, добавляя журнал метаданных, хранящийся в файловой системе. Изменения метаданных сначала записываются в журнал и автоматически воспроизводятся при следующей загрузке после некорректного завершения работы. Это позволяет быстро восстановить файловую систему в согласованное состояние, обычно без необходимости полного запуска `fsck_ffs(8)`. + +Короче говоря, _Soft Updates_ обеспечивают согласованность без журналирования, тогда как _Soft Updates с журналированием_ добавляют быстрое и автоматическое восстановление после сбоев ценой дополнительного дискового пространства и незначительного снижения производительности. + [[further-reading]] == Для дальнейшего ознакомления -Журналирование - относительно новая функциональная возможность FreeBSD, и как такова, она еще недостаточно документирована. Однако, вы можете сочти полезными следующие источники: +Журналирование - относительно новая функциональная возможность FreeBSD, и она ещё недостаточно документирована. Однако, могут быть полезными следующие источники: -* Новый extref:{handbook}geom[раздел Руководства FreeBSD, geom-gjournal], посвященный журналированию. +* extref:{handbook}geom[Раздел Руководства FreeBSD, geom-gjournal], посвященный журналированию. * http://lists.freebsd.org/pipermail/freebsd-current/2006-June/064043.html[Этот пост] в списке рассылки {freebsd-current}, написанный `{pjd}` - автором man:gjournal[8]. * http://lists.freebsd.org/pipermail/freebsd-questions/2008-April/173501.html[Этот пост] от `{ivoras}` в списке рассылки {freebsd-questions}. -* Страницы справочника man:gjournal[8] и man:geom[8]. +* https://www.youtube.com/watch?v=_NuhRkiInvA[Journaled Soft-Updates, Dr. Kirk McKusick, BSDCan 2010] на YouTube +* https://www.youtube.com/watch?v=xMpmOezBJZo[GEOM - in Infrastructure We Trust, Pawel Jakub Dawidek, AsiaBSDCon 2008] на YouTube +* Страницы Справочника man:gjournal[8], man:geom[8] и man:tunefs[8]. diff --git a/documentation/content/ru/articles/gjournal-desktop/_index.po b/documentation/content/ru/articles/gjournal-desktop/_index.po index 678c1b6efb..5a6e273dbe 100644 --- a/documentation/content/ru/articles/gjournal-desktop/_index.po +++ b/documentation/content/ru/articles/gjournal-desktop/_index.po @@ -1,1340 +1,3264 @@ # SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. -# Vladlen Popolitov , 2025. +# Vladlen Popolitov , 2025, 2026. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" -"POT-Creation-Date: 2025-11-08 16:17+0000\n" -"PO-Revision-Date: 2025-11-12 04:45+0000\n" +"POT-Creation-Date: 2026-02-22 15:58+0000\n" +"PO-Revision-Date: 2026-03-05 13:41+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.17\n" #. type: Title = #: documentation/content/en/articles/gjournal-desktop/_index.adoc:1 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:11 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:13 #, no-wrap msgid "Implementing UFS Journaling on a Desktop PC" msgstr "Настройка журналирования UFS для настольного компьютера" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:44 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:46 msgid "Abstract" msgstr "Аннотация" -#. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:50 -msgid "" -"A journaling file system uses a log to record all transactions that take " -"place in the file system, and preserves its integrity in the event of a " -"system crash or power failure. Although it is still possible to lose " -"unsaved changes to files, journaling almost completely eliminates the " -"possibility of file system corruption caused by an unclean shutdown. It " -"also shortens to a minimum the time required for after-failure file system " -"checking. Although the UFS file system employed by FreeBSD does not " -"implement journaling itself, the new journal class of the GEOM framework in " -"FreeBSD 7._X_ can be used to provide file system independent journaling. " -"This article explains how to implement UFS journaling on a typical desktop " -"PC scenario." -msgstr "" -"Журналируемая файловая система использует журнал для записи всех транзакций, " -"происходящих в файловой системе, который также сохраняет ее целостность в " -"случае краха системы или пропадания питания. Несмотря на то, что всё еще " -"возможна потеря несохранённых изменений файлов, журналирование почти " -"полностью исключает возможность повреждения структуры файловой системы, " -"вызванное непредвиденным остановом работы. Журналирование также сокращает до " -"минимума время, необходимое для проверки файловой системы после отказа. " -"Несмотря на то, что в используемой FreeBSD файловой системе UFS нет " -"поддержки журналирования, новый класс системы GEOM в FreeBSD 7._X_ может " -"быть использован для ведения независимого от файловой системы " -"журналирования. Эта статья объясняет, как реализовать журналирование UFS для " -"типичного настольного компьютера." - #. type: Plain text #: documentation/content/en/articles/gjournal-desktop/_index.adoc:52 +msgid "" +"A journaling file system uses a log to record file system updates and " +"preserves consistency in the event of a system crash or power failure. " +"Although unsaved changes to files may still be lost, journaling greatly " +"reduces the risk of file system corruption caused by an unclean shutdown and " +"significantly shortens recovery time. While the UFS file system employed by " +"FreeBSD does not implement journaling as an inherent on-disk feature, " +"FreeBSD provides journaling support through file system-level mechanisms " +"(Soft Updates with journaling) as well as through the GEOM framework " +"(`gjournal`). This article describes the available UFS journaling " +"mechanisms and explains their appropriate use on modern FreeBSD systems. " +"_The content has been reviewed and updated for FreeBSD versions 13 through " +"15_." +msgstr "" +"Журналируемая файловая система использует журнал для записи обновлений " +"файловой системы и обеспечивает целостность данных в случае сбоя системы или " +"отключения питания. Несмотря на то, что несохранённые изменения в файлах всё " +"ещё могут быть утеряны, журналирование значительно снижает риск повреждения " +"файловой системы из-за некорректного завершения работы и существенно " +"сокращает время восстановления. Хотя файловая система UFS, используемая в " +"FreeBSD, не реализует журналирование как встроенную функцию на уровне диска, " +"FreeBSD предоставляет поддержку журналирования через механизмы на уровне " +"файловой системы (Soft Updates с журналированием), а также через фреймворк " +"GEOM (`gjournal`). В этой статье описываются доступные механизмы " +"журналирования UFS и объясняется их целесообразное использование в " +"современных системах FreeBSD. _Содержание было проверено и обновлено для " +"версий FreeBSD с 13 по 15_." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:54 msgid "'''" msgstr "'''" #. type: Title == -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:56 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:58 #, no-wrap msgid "Introduction" msgstr "Введение" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:61 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:63 msgid "" "While professional servers are usually well protected from unforeseen " "shutdowns, the typical desktop is at the mercy of power failures, accidental " -"resets, and other user related incidents that can lead to unclean " -"shutdowns. Soft Updates usually protect the file system efficiently in such " -"cases, although most of the times a lengthy background check is required. " -"On rare occasions, file system corruption reaches a point where user " -"intervention is required and data may be lost." +"resets, and other user related incidents that can lead to unclean shutdowns " +"and leave a file system in an inconsistent state. Traditionally, this " +"required running `fsck`, which on large file systems could take a " +"significant amount of time. On rare occasions, file system corruption " +"reaches a point where user intervention is required and data may be lost." msgstr "" "Серверное оборудование обычно хорошо защищено от потери питания. Настольный " "компьютер часто подвержен неожиданным пропаданиям питания, случайным " "нажатиям кнопки Reset и другим происшествиям (часто связанным с " "неосторожностью пользователей), которые могут привести к непредвиденным " -"выключениям. Механизм Soft Updates, как правило, достаточно эффективно " -"защищает файловую систему в таких случаях, однако в последствии требуется " -"длительная фоновая проверка. В очень редких случаях повреждения файловой " +"выключениям и оставить файловую систему в несогласованном состоянии. " +"Традиционно это требовало запуска `fsdk`, что на больших файловых системах " +"требует значительного времени. В очень редких случаях повреждения файловой " "системы достигают того уровня, при котором становится необходимым " "вмешательство пользователя и данные могут быть утерянными." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:63 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:65 msgid "" -"The new journaling capability provided by GEOM can greatly assist in such " -"scenarios, by virtually eliminating the time required for file system " -"checking, and ensuring that the file system is quickly restored to a " -"consistent state." +"FreeBSD provides two distinct journaling mechanisms for the UFS file system:" msgstr "" -"Новая возможность журналирования, предоставленная системой GEOM, может " -"существенно выручить в подобных случаях, исключая время, необходимое для " -"проверки файловых систем и удостовериваясь, что файловая система быстро " -"восстановлена в целостное состояние." +"FreeBSD предоставляет два различных механизма журналирования для файловой " +"системы UFS:" -#. type: Plain text +#. type: Table #: documentation/content/en/articles/gjournal-desktop/_index.adoc:67 -msgid "" -"This article describes a procedure for implementing UFS journaling on a " -"typical desktop PC scenario (one hard disk used for both operating system " -"and data). It should be followed during a fresh installation of FreeBSD. " -"The steps are simple enough and do not require overly complex interaction " -"with the command line." -msgstr "" -"Эта статья описывает порядок действий, необходимых для конфигурирования " -"журналирования UFS на типичном настольном компьютере, в котором один жесткий " -"диск используется для размещения как операционной системы, так и данных. В " -"статье подразумевается установка FreeBSD \"с нуля\". Шаги достаточно просты " -"и не требуют чрезмерно сложных манипуляций с командной строкой." +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:155 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:158 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:161 +#, no-wrap +msgid "Soft Updates with journaling" +msgstr "Журналирование с Soft Updates" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:69 -msgid "After reading this article, you will know:" -msgstr "После прочтения данной статьи вы будете знать:" +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:68 +msgid "GEOM journaling (`gjournal`)" +msgstr "Журналирование с командой GEOM `gjournal`" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:71 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:70 msgid "" -"How to reserve space for journaling during a new installation of FreeBSD." +"These mechanisms operate at different layers of the system and have " +"different performance and semantic characteristics." msgstr "" -"Как зарезервировать место для журнала во время новой установки FreeBSD." +"Эти механизмы функционируют на различных уровнях системы и обладают разными " +"характеристиками производительности и семантики." -#. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:72 +#. type: delimited block = 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:74 msgid "" -"How to load and enable the `geom_journal` module (or build support for it in " -"your custom kernel)." +"For most modern FreeBSD systems, including desktops and general-purpose " +"servers, *Soft Updates with journaling* is the recommended solution." msgstr "" -"Как загрузить модуль `geom_journal` (или включить поддержку журналирования в " -"специализированном ядре системы)." +"Для большинства современных систем FreeBSD, включая настольные компьютеры и " +"серверы общего назначения, рекомендуется использовать *Soft Updates с " +"журналированием*." -#. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:73 +#. type: delimited block = 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:76 msgid "" -"How to convert your existing file systems to utilize journaling, and what " -"options to use in [.filename]#/etc/fstab# to mount them." +"GEOM journaling is a legacy and specialized mechanism and should only be " +"used when its specific semantics are required." msgstr "" -"Как преобразовать существующую файловую систему, в систему, использующую " -"журналирование, и какие опции монтирования использовать в [.filename]#/etc/" -"fstab#." - -#. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:74 -msgid "How to implement journaling in new (empty) partitions." -msgstr "Как реализовать журналирование на новых (пустых) разделах." +"GEOM журналирование — это устаревший и специализированный механизм, и его " +"следует использовать только тогда, когда требуются его специфические " +"семантики." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:75 -msgid "How to troubleshoot common problems associated with journaling." -msgstr "Как диагностировать неполадки, связанные с журналированием." +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:79 +msgid "" +"This article explains both mechanisms, their differences, and correct modern " +"usage." +msgstr "" +"В этой статье объясняются оба механизма, их различия и правильное " +"современное использование." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:77 -msgid "Before reading this article, you should be able to:" -msgstr "Перед прочтением этой статьи вам необходимо:" +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:81 +msgid "Read this chapter to learn:" +msgstr "Прочтите эту главу, чтобы узнать:" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:79 -msgid "Understand basic UNIX(R) and FreeBSD concepts." +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:83 +msgid "" +"The journaling mechanisms available for the UFS file system in FreeBSD and " +"how they differ." msgstr "" -"Понимать базовые концепции таких операционных систем, как UNIX(R) и FreeBSD." +"Доступные механизмы журналирования для файловой системы UFS в FreeBSD и их " +"различия." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:80 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:84 msgid "" -"Be familiar with the installation procedure of FreeBSD and the sysinstall " -"utility." +"When to use file system-level Soft Updates journaling and when GEOM " +"journaling may be appropriate." msgstr "" -"Быть знакомым с процедурой установки FreeBSD, а также с программой " -"Sysinstall." +"Когда использовать журналирование на уровне файловой системы с Soft Updates " +"и когда может быть уместно журналирование GEOM." -#. type: delimited block = 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:86 +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:85 msgid "" -"The procedure described here is intended for preparing a new installation " -"where no actual user data is stored on the disk yet. While it is possible " -"to modify and extend this procedure for systems already in production, you " -"should _backup_ all important data before doing so. Messing around with " -"disks and partitions at a low level can lead to fatal mistakes and data loss." +"How to enable or disable Soft Updates journaling on existing UFS file " +"systems." msgstr "" -"Процедура, описанная здесь, подразумевает подготовку к новой установке, в " -"которой на дисках еще нет пользовательских данных. Так как эту процедуру " -"можно модифицировать и расширить на системы, которые уже используются, вам " -"настоятельно рекомендуется сделать _резервную копию_ всех ценных данных. " -"Путаница в низкоуровневых операциях с дисками и разделами может привести к " -"фатальным ошибкам и потере данных." - -#. type: Title == -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:89 -#, no-wrap -msgid "Understanding Journaling in FreeBSD" -msgstr "Реализация журналирования в FreeBSD" +"Как включить или отключить журналирование Soft Updates на существующих " +"файловых системах UFS." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:93 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:86 msgid "" -"The journaling provided by GEOM in FreeBSD 7._X_ is not file system specific " -"(unlike for example the ext3 file system in Linux(R)) but is functioning at " -"the block level. Though this means it can be applied to different file " -"systems, for FreeBSD 7.0-RELEASE, it can only be used on UFS2." +"How to configure GEOM journaling on new or existing partitions, including " +"required kernel support and journal sizing considerations." msgstr "" -"Журналирование, предоставляемое системой GEOM в FreeBSD 7._X_, не является " -"особенностью файловой системы (в отличие от, например, файловой системы ext3 " -"в Linux(R)), оно функционирует на блочном уровне. А это значит, что оно " -"может быть применено к разным типам файловых систем, однако для FreeBSD 7.0-" -"RELEASE журналирование может быть применено только для UFS2." +"Как настроить журналирование GEOM на новых или существующих разделах, " +"включая необходимую поддержку ядра и вопросы определения размера журнала." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:97 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:87 msgid "" -"This functionality is provided by loading the [.filename]#geom_journal.ko# " -"module into the kernel (or building it into a custom kernel) and using the " -"`gjournal` command to configure the file systems. In general, you would " -"like to journal large file systems, like [.filename]#/usr#. You will need " -"however (see the following section) to reserve some free disk space." +"What configuration changes are required to mount journaled file systems and " +"how journaling affects system behavior." msgstr "" -"Возможность журналирования обеспечивается загрузкой модуля [." -"filename]#geom_journal.ko# в ядро (или сборкой собственного ядра с " -"активированием соответствующих опций) и использованием команды `gjournal` " -"для конфигурирования файловой системы. В общем, вы предпочтете журналировать " -"файловые системы большого размера, к примеру - [.filename]#/usr#. Однако, " -"вам придется зарезервировать некоторое количество свободного места (см. " -"следующий раздел)." +"Какие изменения конфигурации необходимы для монтирования журналируемых " +"файловых систем и как журналирование влияет на поведение системы." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:104 -msgid "" -"When a file system is journaled, some disk space is needed to keep the " -"journal itself. The disk space that holds the actual data is referred to as " -"the __data provider__, while the one that holds the journal is referred to " -"as the __journal provider__. The data and journal providers need to be on " -"different partitions when journaling an existing (non-empty) partition. " -"When journaling a new partition, you have the option to use a single " -"provider for both data and journal. In any case, the `gjournal` command " -"combines both providers to create the final journaled file system. For " -"example:" +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:88 +msgid "How to diagnose and resolve common issues related to UFS journaling." msgstr "" -"Когда файловая система журналируется, некоторая часть дискового пространства " -"требуется для хранения самого журнала. Дисковое пространство, содержащее " -"данные, называется __поставщиком данных (data provider)__, а часть " -"пространства, содержащая журнал, называется __поставщиком журнала (journal " -"provider)__. Поставщики данных и журнала должны быть на разных разделах, " -"если журналирование достраивается к содержащему данные разделу. А если " -"журналирование включается для нового раздела, у вас есть возможность " -"использовать один поставщик для данных и журнала. В любом из двух " -"вышеупомянутых случаев команда `gjournal` задействует поставщики и создаст " -"конечную журналируемую файловую систему. Например:" +"Как диагностировать неполадки и разрешать проблемы, связанные с " +"журналированием файловой системы UFS." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:106 -msgid "" -"You wish to journal your [.filename]#/usr# file system, stored in [." -"filename]#/dev/ad0s1f# (which already contains data)." -msgstr "" -"Вы намереваетесь журналировать файловую систему [.filename]#/usr#, " -"размещенную на [.filename]#/dev/ad0s1f#, файловая система уже содержит " -"данные." +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:90 +msgid "Before reading this article:" +msgstr "Перед прочтением этой статьи вам необходимо:" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:107 -msgid "" -"You reserved some free disk space in a partition in [.filename]#/dev/ad0s1g#." +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:92 +msgid "Understand basic UNIX(R) and FreeBSD concepts." msgstr "" -"Вы зарезервировали часть дискового пространства на разделе [.filename]#/dev/" -"ad0s1g#." +"Понимать базовые концепции таких операционных систем, как UNIX(R) и FreeBSD." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:108 -msgid "" -"Using `gjournal`, a new [.filename]#/dev/ad0s1f.journal# device is created " -"where [.filename]#/dev/ad0s1f# is the data provider, and [.filename]#/dev/" -"ad0s1g# is the journal provider. This new device is then used for all " -"subsequent file operations." -msgstr "" -"Используя команду `gjournal`, создаем новый файл устройства [.filename]#/dev/" -"ad0s1f.journal#, для которого [.filename]#/dev/ad0s1f# является поставщиком " -"данных, а [.filename]#/dev/ad0s1g# - поставщик журнала. Это новое устройство " -"необходимо использовать во всех последующих операциях." +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:93 +msgid "Be familiar with the FreeBSD installation process using bsdinstall." +msgstr "Быть знакомым с процедурой установки FreeBSD, используя bsdinstall." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:112 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:94 msgid "" -"The amount of disk space you need to reserve for the journal provider " -"depends on the usage load of the file system and not on the size of the data " -"provider. For example on a typical office desktop, a 1 GB journal provider " -"for the [.filename]#/usr# file system will suffice, while a machine that " -"deals with heavy disk I/O (i.e. video editing) may need more. A kernel " -"panic will occur if the journal space is exhausted before it has a chance to " -"be committed." +"Have basic knowledge of disk partitioning and file systems, including tools " +"such as gpart(8), newfs(8), and mount(8)." msgstr "" -"Размер дискового пространства, отводимого под поставщик журнала, зависит от " -"нагруженности файловой системы, а не от размера самого поставщика данных. " -"Например, для типичного настольного компьютера достаточно отвести 1 Гб под " -"поставщик журнала для файловой системы [.filename]#/usr#, в то время как " -"компьютеру, имеющему интенсивный дисковый ввод/вывод (например, " -"редактирование видео) может потребоваться больше. Если свободное место на " -"поставщике журнала заканчивается раньше, чем происходит сброс журнала на " -"диск, - вы получите панику ядра." +"Иметь базовые знания о разбиении дисков и файловых системах, включая такие " +"инструменты, как gpart(8), newfs(8) и mount(8)." #. type: delimited block = 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:119 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:99 msgid "" -"The journal sizes suggested here, are highly unlikely to cause problems in " -"typical desktop use (such as web browsing, word processing and playback of " -"media files). If your workload includes intense disk activity, use the " -"following rule for maximum reliability: Your RAM size should fit in 30% of " -"the journal provider's space. For example, if your system has 1 GB RAM, " -"create an approximately 3.3 GB journal provider. (Multiply your RAM size " -"with 3.3 to obtain the size of the journal)." +"Some of the procedures described in this article involve modifying file " +"system or disk configuration and may require unmounting file systems or " +"changing on-disk metadata. Before making such changes on a system in " +"production, ensure that reliable _backups_ of all important data are " +"available." msgstr "" -"Очень маловероятно то, что размеры журнала, предложенные здесь, станут " -"причиной проблем с обычным настольным компьютером (на котором вы " -"просматриваете веб-страницы, обрабатываете текст или проигрываете " -"мультимедийные файлы). Если работа вашего компьютера подразумевает " -"интенсивную дисковую активность, то для обеспечения стабильности следует " -"придерживаться следующего правила: размер ОЗУ должен уместиться в 30% " -"размера, отведенного под журнал. Например, если в вашем компьютере " -"установлен 1 Гб ОЗУ, создайте под поставщик журнала раздел размером около " -"3.3 Гб. (Умножьте размер ОЗУ в 3.3 раза, чтоб получить размер журнала)." +"Некоторые процедуры, описанные в данной статье, включают изменение " +"конфигурации файловой системы или диска и могут потребовать размонтирования " +"файловых систем или изменения метаданных на диске. Перед внесением подобных " +"изменений в работающей системе убедитесь, что доступны надежные _резервные " +"копии_ всех важных данных." -#. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:122 +#. type: delimited block = 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:102 msgid "" -"For more information about journaling, please read the manual page of man:" -"gjournal[8]." +"Enabling file system-level Soft Updates journaling is generally safe and " +"does not require disk repartitioning. However, configuring GEOM journaling " +"involves low-level disk operations and should be attempted only by " +"experienced administrators who fully understand the implications." msgstr "" -"Для получения дополнительной информации о журналировании, пожалуйста, " -"прочитайте страницу справочника, посвященную man:gjournal[8]." +"Включение журналирования Soft Updates на уровне файловой системы обычно " +"безопасно и не требует переразбивки диска. Однако настройка журналирования " +"GEOM включает низкоуровневые операции с диском и должна выполняться только " +"опытными администраторами, полностью понимающими последствия." #. type: Title == -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:124 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:105 #, no-wrap -msgid "Steps During the Installation of FreeBSD" -msgstr "Действия, необходимые во время установки FreeBSD" +msgid "Understanding Journaling in FreeBSD" +msgstr "Реализация журналирования в FreeBSD" #. type: Title === -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:126 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:107 #, no-wrap -msgid "Reserving Space for Journaling" -msgstr "Выделение места под журналирование" +msgid "Soft Updates with Journaling (Recommended)" +msgstr "Soft Updates с журналированием (рекомендуется)" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:130 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:109 msgid "" -"A typical desktop machine usually has one hard disk that stores both the OS " -"and user data. Arguably, the default partitioning scheme selected by " -"sysinstall is more or less suitable: A desktop machine does not need a large " -"[.filename]#/var# partition, while [.filename]#/usr# is allocated the bulk " -"of the disk space, since user data and a lot of packages are installed into " -"its subdirectories." +"Soft Updates is the default UFS consistency mechanism in FreeBSD. When " +"combined with journaling, it provides *metadata journaling* within the file " +"system itself." msgstr "" -"Типичный настольный компьютер обычно имеет один жесткий диск, на котором " -"хранится как операционная система, так и пользовательские данные. Вероятно, " -"что схема разбития винчестера (по умолчанию), выбранная в меню Sysinstall, " -"является более или менее подходящей: настольному компьютеру не требуется " -"большой раздел [.filename]#/var#, в то время, как для раздела [." -"filename]#/usr# выделяется значительный объем дискового пространства, ввиду " -"того, что пользовательские данные и множество пакетов инсталлируются в " -"подкаталоги [.filename]#/usr#." +"Soft Updates — это механизм обеспечения согласованности UFS по умолчанию в " +"FreeBSD. В сочетании с журналированием он обеспечивает *журналирование " +"метаданных* в самой файловой системе." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:134 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:111 +msgid "Advantages of Soft Updates with journaling include:" +msgstr "Преимущества Soft Updates с журналированием включают:" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:113 +msgid "Very fast crash recovery (typically seconds)" +msgstr "Очень быстрое восстановление после сбоя (обычно за секунды)" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:114 +msgid "Normal `sync(2)` and `fsync(2)` semantics" +msgstr "Обычная семантика `sync(2)` и `fsync(2)`" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:115 +msgid "No additional partitions or GEOM layers" +msgstr "Никаких дополнительных разделов или слоев GEOM" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:116 +msgid "Simple configuration and maintenance" +msgstr "Простая настройка и обслуживание" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:118 +msgid "From `tunefs(8)`:" +msgstr "Из `tunefs(8)`:" + +#. type: delimited block _ 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:121 msgid "" -"The default partitioning (the one obtained by pressing kbd:[A] at the " -"FreeBSD partition editor, called Disklabel) does not leave any unallocated " -"space. Each partition that will be journaled, requires another partition " -"for the journal. Since the [.filename]#/usr# partition is the largest, it " -"makes sense to shrink this partition slightly, to obtain the space required " -"for journaling." +"Enabling journaling reduces the time spent by fsck_ffs(8) cleaning up a file " +"system after a crash to a few seconds from minutes to hours." msgstr "" -"Разбиение по умолчанию (получаемое при нажатии kbd:[A] в редакторе разделов " -"FreeBSD, называемом Disklabel) не оставляет свободного места. Каждый " -"подлежащий журналированию раздел требует отдельного раздела для журнала. " -"Ввиду того, что раздел [.filename]#/usr# - наибольший, есть смысл немного " -"уменьшить его размер, чтобы получить пространство, необходимое для журнала." +"Включение журналирования сокращает время, затрачиваемое fsck_ffs(8) на " +"очистку файловой системы после сбоя, с нескольких минут или часов до " +"нескольких секунд." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:137 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:124 msgid "" -"In our example, an 80 GB disk is used. The following screenshot shows the " -"default partitions created by Disklabel during installation:" +"This mechanism is suitable for nearly all UFS-based systems and is the " +"default recommendation." msgstr "" -"В нашем примере используется жесткий диск размером 80 Гб. Следующий скриншот " -"показывает результаты разбиения по умолчанию, выполненного при помощи " -"Disklabel в процессе установки операционной системы:" +"Этот механизм подходит практически для всех систем на основе UFS и является " +"рекомендуемым по умолчанию." -#. type: Target for macro image -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:138 +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:125 #, no-wrap -msgid "disklabel1.png" -msgstr "disklabel1.png" +msgid "GEOM Journaling (`gjournal`)" +msgstr "Журналирование с командой GEOM `gjournal`" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:142 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:128 msgid "" -"If this is more or less what you need, it is very easy to adjust for " -"journaling. Simply use the arrow keys to move the highlight to the [." -"filename]#/usr# partition and press kbd:[D] to delete it." +"GEOM journaling operates at the block level, below the file system. It " +"journals all block writes, including *both metadata and file data*." msgstr "" -"Если это разбиение более или менее вас устраивает, то его легко " -"модифицировать для журналирования. Используйте клавиши со стрелками для " -"того, чтобы выделить раздел, отведенный под [.filename]#/usr#, потом нажмите " -"kbd:[D] чтобы удалить его." +"GEOM журналирование работает на блочном уровне, ниже файловой системы. Оно " +"журналирует все записи блоков, включая *как метаданные, так и данные файлов*." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:146 -msgid "" -"Now, move the highlight to the disk name at the top of the screen and press " -"kbd:[C] to create a new partition for [.filename]#/usr#. This new partition " -"should be smaller by 1 GB (if you intend to journal [.filename]#/usr# only), " -"or 2 GB (if you intend to journal both [.filename]#/usr# and [.filename]#/" -"var#). From the pop-up that appears, opt to create a file system, and type " -"[.filename]#/usr# as the mount point." -msgstr "" -"Теперь переведите подсвечивание к имени диска, находящемуся вверху экрана, и " -"нажмите kbd:[C] - создайте новый раздел [.filename]#/usr#. Новый раздел " -"должен быть меньше на 1 Гб (если вы собираетесь журналировать только [." -"filename]#/usr#) или на 2 Гб (если журналированию подлежат как [.filename]#/" -"usr#, так и [.filename]#/var#). Во всплывающем окне выберите \"создать " -"файловую систему\" и укажите [.filename]#/usr# точкой монтирования." +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:130 +msgid "Key characteristics of GEOM journaling:" +msgstr "Ключевые характеристики журналирования GEOM:" -#. type: delimited block = 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:152 -msgid "" -"Should you journal the [.filename]#/var# partition? Normally, journaling " -"makes sense on quite large partitions. You may decide not to journal [." -"filename]#/var#, although doing so on a typical desktop will cause no harm. " -"If the file system is lightly used (quite probable for a desktop) you may " -"wish to allocate less disk space for its journal." -msgstr "" -"Следует ли журналировать [.filename]#/var# раздел? Обычно есть смысл " -"журналировать большие разделы. Вы можете решить не журналировать [." -"filename]#/var#, однако журналирование на обычном настольном компьютере не " -"причинит вреда. Если файловая система не нагружена (что типично для " -"настольной системы), то можно выделить меньше дискового пространства под " -"журнал." +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:132 +msgid "Implemented as a GEOM class (`geom_journal`)" +msgstr "Реализовано как класс GEOM (`geom_journal`)" -#. type: delimited block = 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:155 -msgid "" -"In our example, we journal both [.filename]#/usr# and [.filename]#/var#. " -"You may of course adjust the procedure to your own needs." -msgstr "" -"В этом примере подразумевается журналирование двух файловых систем: [." -"filename]#/usr# и [.filename]#/var#. Естественно, вы можете " -"подкорректировать процедуру под свои задачи." +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:133 +msgid "Journals all block I/O, not just metadata" +msgstr "Журналирует весь блочный ввод-вывод, а не только метаданные" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:161 -msgid "" -"To keep things as easy going as possible, we are going to use sysinstall to " -"create the partitions required for journaling. However, during " -"installation, sysinstall insists on asking a mount point for each partition " -"you create. At this point, you do not have any mount points for the " -"partitions that will hold the journals, and in reality you __do not even " -"need them__. These are not partitions that we are ever going to mount " -"somewhere." -msgstr "" -"Чтобы не усложнять описываемую методику, для создания разделов, необходимых " -"для размещения журналов, мы будем использовать утилиту Sysinstall. Однако, " -"во время установки утилита Sysinstall требует указания точек монтирования " -"для каждого созданного вами раздела. Но разделы, содержащие журналы, вам " -"никогда и никуда монтировать не придется." +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:134 +msgid "Requires explicit cooperation from UFS using the `-J` flag" +msgstr "Требует явного согласования от UFS с использованием флага `-J`" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:165 -msgid "" -"To avoid these problems with sysinstall, we are going to create the journal " -"partitions as swap space. Swap is never mounted, and sysinstall has no " -"problem creating as many swap partitions as needed. After the first reboot, " -"[.filename]#/etc/fstab# will have to be edited, and the extra swap space " -"entries removed." -msgstr "" -"Чтобы избежать вопросов о точках монтирования, мы создадим разделы под " -"журналы и установим их тип в swap. Раздел, предназначенный для свопа, " -"никогда и никуда не монтируется, плюс к тому, утилита Sysinstall позволяет " -"создавать столько разделов под своп, сколько необходимо. После первой " -"перезагрузки необходимо подредактировать файл [.filename]#/etc/fstab#, " -"удалив в нём лишние записи о своп-разделах." +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:135 +msgid "Disables Soft Updates" +msgstr "Отключает Soft Updates" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:171 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:136 +msgid "Alters the semantics of `sync(2)` and `fsync(2)`" +msgstr "Изменяет семантику `sync(2)` и `fsync(2)`" + +#. type: delimited block = 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:140 msgid "" -"To create the swap, again use the arrow keys to move the highlight to the " -"top of Disklabel screen, so that the disk name itself is highlighted. Then " -"press kbd:[N], enter the desired size (_1024M_), and select \"swap space\" " -"from the pop-up menu that appears. Repeat for every journal you wish to " -"create. In our example, we create two partitions to provide for the " -"journals of [.filename]#/usr# and [.filename]#/var#. The final result is " -"shown in the following screenshot:" +"On GEOM-journaled file systems, `sync(2)` and `fsync(2)` do not guarantee " +"that data has been committed to stable storage. To ensure persistence, " +"`gjournal sync` must be used." msgstr "" -"Для создания своп-раздела, используя клавиши со стрелками, перемещайте " -"подсвечивание к верхней части экрана в утилите Disklabel так, чтобы стало " -"подсвеченным имя диска. Потом, нажмите kbd:[N], введите необходимый размер " -"раздела (_1024M_), а после - выберите во всплывшем окне \"swap space\". " -"Повторите эти шаги для всех оставшихся журналов. В этом примере мы создаем " -"два раздела, на которых будут размещаться журналы для [.filename]#/usr# и [." -"filename]#/var#. Конечный результат показан на следующем скриншоте:" - -#. type: Target for macro image -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:172 -#, no-wrap -msgid "disklabel2.png" -msgstr "disklabel2.png" +"На файловых системах с журналированием GEOM, `sync(2)` и `fsync(2)` не " +"гарантируют, что данные были записаны на постоянное хранилище. Для " +"обеспечения сохранности необходимо использовать `gjournal sync`." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:177 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:143 msgid "" -"When you have completed creating the partitions, we suggest you write down " -"the partition names, and mount points, so you can easily refer to this " -"information during the configuration phase. This will help alleviate " -"mistakes that may damage your installation. The following table shows our " -"notes for the sample configuration:" +"Because of these differences, GEOM journaling is not recommended for general-" +"purpose desktop or server use." msgstr "" -"По завершении создания разделов мы рекомендуем вам записать на бумагу " -"названия разделов и их точек монтирования: с этой информацией вы будете " -"сверяться во время конфигурирования. Это также поможет уменьшить количество " -"ошибок, приводящих к повреждению установки. Следующая табличка отображает " -"наши заметки, сделанные для данного примера:" +"Из-за этих различий журналирование GEOM не рекомендуется для общего " +"использования на настольных компьютерах или серверах." -#. type: Block title -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:178 +#. type: Title == +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:144 #, no-wrap -msgid "Partitions and Journals" -msgstr "Разделы и журналы" +msgid "Choosing the Appropriate Journaling Method" +msgstr "Выбор подходящего метода журналирования" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:147 +msgid "The following table summarizes recommended usage:" +msgstr "В следующей таблице приведены рекомендуемые варианты использования:" #. type: Table -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:182 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:150 #, no-wrap -msgid "Partition" -msgstr "Раздел" +msgid "Use case" +msgstr "Вариант использования" #. type: Table -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:183 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:152 #, no-wrap -msgid "Mount Point" -msgstr "Точка монтирования" +msgid "Recommended mechanism" +msgstr "Рекомендуемый механизм" #. type: Table -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:185 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:153 #, no-wrap -msgid "Journal" -msgstr "Журнал" +msgid "Desktop or laptop system" +msgstr "Настольная или портативная система" #. type: Table -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:186 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:156 #, no-wrap -msgid "ad0s1d" -msgstr "ad0s1d" +msgid "General-purpose server" +msgstr "Универсальный сервер" #. type: Table -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:187 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:159 #, no-wrap -msgid "/var" -msgstr "/var" +msgid "Legacy UFS systems" +msgstr "Устаревшие системы UFS" #. type: Table -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:189 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:162 #, no-wrap -msgid "ad0s1h" -msgstr "ad0s1h" +msgid "File system-independent journaling requirements" +msgstr "Требования к журналированию, не зависящие от файловой системы" #. type: Table -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:190 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:164 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:166 #, no-wrap -msgid "ad0s1f" -msgstr "ad0s1f" +msgid "GEOM journaling" +msgstr "Журналирование GEOM" #. type: Table -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:191 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:165 #, no-wrap -msgid "/usr" -msgstr "/usr" +msgid "Specialized block-level logging needs" +msgstr "Специализированное журналирование на уровне блоков" -#. type: Table -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:192 +#. type: Title == +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:168 #, no-wrap -msgid "ad0s1g" -msgstr "ad0s1g" +msgid "Using Soft Updates with Journaling" +msgstr "Использование Soft Updates с журналированием" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:196 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:173 msgid "" -"Continue the installation as you would normally do. We would however " -"suggest you postpone installation of third party software (packages) until " -"you have completely setup journaling." +"Soft Updates with journaling provide file system-level journaling for UFS. " +"This mechanism preserves file system consistency while retaining the " +"allocation and ordering optimizations of Soft Updates. Unlike GEOM " +"journaling, no separate journal device or partition is required." msgstr "" -"Дальше продолжайте обычную установку. Однако, мы рекомендуем вам отложить " -"инсталляцию приложений сторонних разработчиков (пакетов) до полной настройки " -"журналирования." +"Soft Updates с журналированием обеспечивают журналирование на уровне " +"файловой системы для UFS. Этот механизм сохраняет целостность файловой " +"системы, одновременно сохраняя оптимизации выделения и упорядочивания, " +"характерные для Soft Updates. В отличие от журналирования GEOM, отдельное " +"журналирующее устройство или раздел не требуется." #. type: Title === -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:198 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:174 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:254 #, no-wrap -msgid "Booting for the first time" -msgstr "Первая загрузка" +msgid "Overview" +msgstr "Обзор" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:203 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:179 msgid "" -"Your system will come up normally, but you will need to edit [.filename]#/" -"etc/fstab# and remove the extra swap partitions you created for the " -"journals. Normally, the swap partition you will actually use is the one " -"with the \"b\" suffix (i.e. ad0s1b in our example). Remove all other swap " -"space entries and reboot so that FreeBSD will stop using them." +"Soft Updates with journaling record file system metadata changes in a " +"journal stored inside the file system itself, implemented as a hidden file " +"named [.filename]#.sujournal# in the root of the file system. In the event " +"of a crash or power failure, pending metadata operations are replayed from " +"the journal, allowing the file system to be mounted quickly without a full " +"consistency check." msgstr "" -"Ваша система загрузится нормально, однако вам необходимо будет " -"подредактировать [.filename]#/etc/fstab# и удалить те лишние своп-разделы, " -"которые вы создавали под журналы. Как правило, в названии файла устройства, " -"созданного автоматически утилитой Sysinstall, присутствует суффикс \"b\" (в " -"нашем примере это ad0s1b). Удалите другие записи о своп-разделах и " -"перезагрузите компьютер, после чего FreeBSD перестанет их использовать." +"Soft Updates с журналированием записывают изменения метаданных файловой " +"системы в журнал, хранящийся внутри самой файловой системы, реализованный " +"как скрытый файл с именем [.filename]#.sujournal# в корне файловой системы. " +"В случае сбоя или отключения питания ожидающие операции с метаданными " +"воспроизводятся из журнала, что позволяет быстро смонтировать файловую " +"систему без полной проверки согласованности." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:205 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:182 msgid "" -"When the system comes up again, we will be ready to configure journaling." +"This form of journaling applies to file system metadata only. File data " +"integrity remains the responsibility of applications." msgstr "" -"После второй перезагрузки, компьютер будет готов к конфигурированию " -"журналирования." - -#. type: Title == -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:207 -#, no-wrap -msgid "Setting Up Journaling" -msgstr "Настройка журналирования" +"Эта форма журналирования применяется только к метаданным файловой системы. " +"Целостность данных файлов остается ответственностью приложений." #. type: Title === -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:210 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:183 #, no-wrap -msgid "Executing `gjournal`" -msgstr "Работа с командой `gjournal`" +msgid "Enabling Journaling on an Existing File System" +msgstr "Включение журналирования на существующей файловой системе" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:214 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:186 msgid "" -"Having prepared all the required partitions, it is quite easy to configure " -"journaling. We will need to switch to single user mode, so login as `root` " -"and type:" +"The file system must be unmounted or mounted read-only before changing " +"journaling settings." msgstr "" -"Подготовив необходимые разделы, перейдем к конфигурированию журналирования. " -"Нам будет необходимо загрузиться в однопользовательском режиме, для этого " -"залогинимся пользователем `root` и напечатаем:" +"Файловая система должна быть размонтирована или смонтирована в режиме только " +"для чтения перед изменением настроек журналирования." -#. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:218 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:436 +#. type: delimited block - 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:192 #, no-wrap -msgid "# shutdown now\n" -msgstr "# shutdown now\n" +msgid "" +"# umount /usr\n" +"# tunefs -n enable -j enable /dev/ada0p2\n" +"# mount /usr\n" +msgstr "" +"# umount /usr\n" +"# tunefs -n enable -j enable /dev/ada0p2\n" +"# mount /usr\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:222 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:195 msgid "" -"Press kbd:[Enter] to get the default shell. We will need to unmount the " -"partitions that will be journaled, in our example [.filename]#/usr# and [." -"filename]#/var#:" +"No additional configuration is required. Standard mount options may be used." msgstr "" -"Нажмите kbd:[Enter] для получения приглашения командного интерпретатора. Нам " -"необходимо будет размонтировать разделы, которые подлежат журналированию, в " -"нашем примере это [.filename]#/usr# и [.filename]#/var#:" +"Дополнительная настройка не требуется. Можно использовать стандартные " +"параметры монтирования." -#. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:226 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:443 +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:196 #, no-wrap -msgid "# umount /usr /var\n" -msgstr "# umount /usr /var\n" +msgid "Journal Storage and Size" +msgstr "Хранение журналов и их размер" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:229 -msgid "Load the module required for journaling:" -msgstr "Загрузите модуль ядра, необходимый для журналирования:" - -#. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:233 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:408 -#, no-wrap -msgid "# gjournal load\n" -msgstr "# gjournal load\n" +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:200 +msgid "" +"A default journal size is selected automatically when journaling is " +"enabled. In most cases, the default size is sufficient and does not require " +"adjustment." +msgstr "" +"Размер журнала по умолчанию выбирается автоматически при включении ведения " +"журнала. В большинстве случаев размер по умолчанию достаточен и не требует " +"корректировки." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:238 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:202 msgid "" -"Now, use your notes to determine which partition will be used for each " -"journal. In our example, [.filename]#/usr# is [.filename]#ad0s1f# and its " -"journal will be [.filename]#ad0s1g#, while [.filename]#/var# is [." -"filename]#ad0s1d# and will be journaled to [.filename]#ad0s1h#. The " -"following commands are required:" +"If necessary, the journal size in bytes can be specified explicitly using " +"the `-S` option to `tunefs(8)`:" msgstr "" -"На данном этапе сверьтесь со своими записями и определите, какие разделы " -"будут использоваться под какой журнал. В нашем примере [.filename]#/usr# " -"располагается на [.filename]#ad0s1f#, а его журнал будет располагаться на [." -"filename]#ad0s1g#, и, по аналогии, для [.filename]#/var#: файловая система " -"располагается на [.filename]#ad0s1d#, а ее журнал - на [.filename]#ad0s1h#. " -"Наберите следующие команды:" +"При необходимости размер журнала в байтах может быть явно указан с помощью " +"опции `-S` для `tunefs(8)`:" -#. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:244 +#. type: delimited block - 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:206 #, no-wrap +msgid "# tunefs -S 64000000 /dev/ada0p2\n" +msgstr "# tunefs -S 64000000 /dev/ada0p2\n" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:209 msgid "" -"# gjournal label ad0s1f ad0s1g\n" -"GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.\n" -"GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.\n" +"Journal size tuning is rarely required and should be considered only for " +"file systems with unusually high metadata update rates." msgstr "" -"# gjournal label ad0s1f ad0s1g\n" -"GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.\n" -"GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.\n" +"Настройка размера журнала редко требуется и должна рассматриваться только " +"для файловых систем с необычно высокой частотой обновления метаданных." -#. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:248 +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:210 #, no-wrap +msgid "Checking Soft Updates with Journaling" +msgstr "Проверка Soft Updates с журналированием" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:213 msgid "" -"# gjournal label ad0s1d ad0s1h\n" -"GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.\n" -"GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.\n" +"The journaling status of a UFS file system using Soft Updates can be " +"verified with `tunefs(8)` or `dumpfs(8)`." msgstr "" -"# gjournal label ad0s1d ad0s1h\n" -"GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.\n" -"GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.\n" +"Статус журналирования файловой системы UFS с использованием Soft Updates " +"можно проверить с помощью `tunefs(8)` или `dumpfs(8)`." -#. type: delimited block = 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:254 +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:215 +msgid "To display the current file system settings, run:" +msgstr "Чтобы отобразить текущие настройки файловой системы, выполните:" + +#. type: delimited block - 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:221 +#, no-wrap msgid "" -"If the last sector of either partition is used, `gjournal` will return an " -"error. You will have to run the command using the `-f` flag to force an " -"overwrite, i.e.:" +"# tunefs -p /dev/ada0p2 | grep -i journal\n" +"tunefs: soft updates journaling: (-j) enabled\n" +"tunefs: gjournal: (-J) disabled\n" msgstr "" -"Если последний сектор любого из двух разделов (поставщиков данных) " -"используется, команда `gjournal` возвратит ошибку. Вам необходимо будет " -"использовать флаг `-F` для принудительной перезаписи, например:" +"# tunefs -p /dev/ada0p2 | grep -i journal\n" +"tunefs: soft updates journaling: (-j) enabled\n" +"tunefs: gjournal: (-J) disabled\n" -#. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:258 -#, no-wrap -msgid "# gjournal label -f ad0s1d ad0s1h\n" -msgstr "# gjournal label -f ad0s1d ad0s1h\n" +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:224 +msgid "Look for the following indicators in the output:" +msgstr "Ищите следующие индикаторы в выводе:" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:226 +msgid "Soft Updates enabled" +msgstr "Soft Updates включены" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:261 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:227 +msgid "Soft Updates journaling enabled" +msgstr "Soft Updates с журналированием включены" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:229 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:644 msgid "" -"Since this is a new installation, it is highly unlikely that anything will " -"be actually overwritten." +"Alternatively, `dumpfs(8)` can be used to inspect the file system superblock:" msgstr "" -"Так как это - новая установка, очень маловероятен факт, что что-нибудь будет " -"действительно переписано." +"Или для проверки суперблока файловой системы можно использовать `dumpfs(8)`:" -#. type: delimited block = 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:266 +#. type: delimited block - 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:234 +#, no-wrap msgid "" -"At this point, two new devices are created, namely [.filename]#ad0s1d." -"journal# and [.filename]#ad0s1f.journal#. These represent the [.filename]#/" -"var# and [.filename]#/usr# partitions we have to mount. Before mounting, we " -"must however set the journal flag on them and clear the Soft Updates flag:" +"# dumpfs /dev/ada0p2 | grep -i journal\n" +"flags soft-updates+journal\n" msgstr "" -"На данном этапе созданы два устройства: [.filename]#ad0s1d.journal# и [." -"filename]#ad0s1f.journal#. Они представляют [.filename]#/var# и [.filename]#/" -"usr# соответственно. Перед монтированием, нам необходимо установить флаг " -"журналирования и снять флаг механизма Soft Updates:" +"English type: delimited block - 4\n" +"# dumpfs /dev/ada0p2 | grep -i journal\n" +"flags soft-updates+journal\n" -#. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:272 +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:237 +msgid "These commands are read-only and do not modify file system state." +msgstr "" +"Эти команды предназначены только для чтения и не изменяют состояние файловой " +"системы." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:238 #, no-wrap +msgid "File System Checks and Maintenance" +msgstr "Проверка и обслуживание файловой системы" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:241 msgid "" -"# tunefs -J enable -n disable ad0s1d.journal\n" -"tunefs: gjournal set\n" -"tunefs: soft updates cleared\n" +"Although journaling dramatically reduces recovery time after a crash, it " +"does not eliminate the need for periodic full file system checks." msgstr "" -"# tunefs -J enable -n disable ad0s1d.journal\n" -"tunefs: gjournal set\n" -"tunefs: soft updates cleared\n" +"Хотя журналирование значительно сокращает время восстановления после сбоя, " +"оно не устраняет необходимость периодических полных проверок файловой " +"системы." -#. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:276 +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:243 +msgid "Journaling guarantees consistency, not correctness" +msgstr "Журналирование гарантирует целостность, а не корректность" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:244 +msgid "Media errors are not repaired by journaling" +msgstr "Ошибки носителя не исправляются журналированием" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:245 +msgid "Periodic `fsck` should still be scheduled" +msgstr "Периодическая проверка `fsck` все еще должна быть запланирована" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:246 +msgid "Background `fsck` can be used on live file systems" +msgstr "Фоновый `fsck` может использоваться на работающих файловых системах" + +#. type: Title == +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:247 #, no-wrap +msgid "Using GEOM Journaling (Advanced)" +msgstr "Использование журналирования GEOM (Продвинутый уровень)" + +#. type: delimited block = 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:252 msgid "" -"# tunefs -J enable -n disable ad0s1f.journal\n" -"tunefs: gjournal set\n" -"tunefs: soft updates cleared\n" +"This section is intended for advanced users who understand the implications " +"of block-level journaling and altered sync semantics." msgstr "" -"# tunefs -J enable -n disable ad0s1f.journal\n" -"tunefs: gjournal set\n" -"tunefs: soft updates cleared\n" +"Данный раздел предназначен для опытных пользователей, которые понимают " +"последствия журналирования на уровне блоков и изменения семантики " +"синхронизации." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:279 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:259 msgid "" -"Now, mount the new devices manually at their respective places (note that we " -"can now use the `async` mount option):" +"This functionality is provided by loading the [.filename]#geom_journal.ko# " +"module into the kernel (or building it into a custom kernel) and using the " +"`gjournal` command to configure the file systems. In general, you would " +"like to journal large file systems, like [.filename]#/usr#. You will need " +"however (see the following section) to reserve some free disk space." msgstr "" -"Теперь, смонтируйте новые устройства в соответствующие места файловой " -"системы (обратите внимание на то, что мы можем использовать опцию " -"монтирования `async`):" +"Возможность журналирования обеспечивается загрузкой модуля [." +"filename]#geom_journal.ko# в ядро (или сборкой собственного ядра с " +"активированием соответствующих опций) и использованием команды `gjournal` " +"для конфигурирования файловой системы. В общем, вы предпочтете журналировать " +"файловые системы большого размера, к примеру - [.filename]#/usr#. Однако, " +"вам придется зарезервировать некоторое количество свободного места (см. " +"следующий раздел)." -#. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:284 -#, no-wrap +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:262 msgid "" -"# mount -o async /dev/ad0s1d.journal /var\n" -"# mount -o async /dev/ad0s1f.journal /usr\n" +"GEOM journaling is implemented by the `geom_journal` kernel module and is " +"configured using the `gjournal(8)` utility. It provides block-level " +"journaling below the file system layer and requires explicit cooperation " +"from UFS." msgstr "" -"# mount -o async /dev/ad0s1d.journal /var\n" -"# mount -o async /dev/ad0s1f.journal /usr\n" +"Журналирование GEOM реализовано модулем ядра `geom_journal` и настраивается " +"с помощью утилиты `gjournal(8)`. Оно обеспечивает журналирование на уровне " +"блоков ниже слоя файловой системы и требует явной поддержки со стороны UFS." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:287 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:265 msgid "" -"Edit [.filename]#/etc/fstab# and update the entries for [.filename]#/usr# " -"and [.filename]#/var#:" +"When GEOM journaling is used, some disk space is needed to keep the journal " +"itself. The provider that contains the file system data is referred to as " +"the _data provider_, while the provider that stores the journal is referred " +"to as the _journal provider_." msgstr "" -"Откройте [.filename]#/etc/fstab# и исправьте записи для следующих файловых " -"систем: [.filename]#/usr# и [.filename]#/var#:" +"При использовании журналирования GEOM требуется некоторое дисковое " +"пространство для хранения самого журнала. Провайдер, содержащий данные " +"файловой системы, называется _провайдером данных_, а провайдер, хранящий " +"журнал, называется _провайдером журнала_." -#. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:292 -#, no-wrap +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:270 msgid "" -"/dev/ad0s1f.journal /usr ufs rw,async 2 2\n" -"/dev/ad0s1d.journal /var ufs rw,async 2 2\n" +"When journaling an existing (non-empty) file system, the data and journal " +"providers must be separate. When journaling a new, empty file system, a " +"single provider may be used to store both data and journal information. In " +"both cases, `gjournal(8)` combines the data and journal providers to create " +"a new journaled provider, which is then mounted by the file system. For " +"example:" msgstr "" -"/dev/ad0s1f.journal /usr ufs rw,async 2 2\n" -"/dev/ad0s1d.journal /var ufs rw,async 2 2\n" +"При журналировании существующей (непустой) файловой системы провайдеры " +"данных и журнала должны быть раздельными. При журналировании новой, пустой " +"файловой системы, один провайдер может использоваться для хранения как " +"данных, так и информации журнала. В обоих случаях `gjournal(8)` объединяет " +"провайдеры данных и журнала для создания нового журналируемого провайдера, " +"который затем монтируется файловой системой. Например:" -#. type: delimited block = 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:297 +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:272 msgid "" -"Make sure the above entries are correct, or you will have trouble starting " -"up normally after you reboot!" +"The `/usr` file system resides on `/dev/ada0p2` and already contains data." msgstr "" -"Проверьте корректность всех указанных параметров - в противном случае после " -"перезагрузки возможны проблемы со стандартным запуском системы!" +"Файловая система `/usr` расположена на `/dev/ada0p2` и уже содержит данные." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:300 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:273 msgid "" -"Finally, edit [.filename]#/boot/loader.conf# and add the following line so " -"the man:gjournal[8] module is loaded at every boot:" +"Free disk space has been allocated in a separate partition, `/dev/ada0p4`, " +"to hold the journal." msgstr "" -"Наконец, внесите изменения в [.filename]#/boot/loader.conf#, добавив строку " -"для автоматической загрузки модуля man:gjournal[8] при каждом старте системы:" +"Свободное дисковое пространство выделено в отдельном разделе, `/dev/ada0p4`, " +"для хранения журнала." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:275 +msgid "" +"After configuring GEOM journaling, a new provider `/dev/ada0p2.journal` is " +"created. This journaled provider combines `/dev/ada0p2` as the data " +"provider and `/dev/ada0p4` as the journal provider and is used for all " +"subsequent file system operations." +msgstr "" +"После настройки журналирования GEOM создается новый провайдер `/dev/ada0p2." +"journal`. Этот журналируемый провайдер объединяет `/dev/ada0p2` в качестве " +"провайдера данных и `/dev/ada0p4` в качестве провайдера журнала и " +"используется для всех последующих операций файловой системы." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:278 +msgid "" +"The amount of disk space required for the journal depends primarily on the " +"write workload of the file system rather than on the size of the data " +"provider. Systems with sustained or bursty write activity require larger " +"journals to avoid excessive journal switching or write throttling." +msgstr "" +"Объем дискового пространства, необходимого для журнала, в первую очередь " +"зависит от интенсивности записи в файловую систему, а не от размера " +"поставщика данных. Системам с постоянной или импульсной активностью записи " +"требуются журналы большего размера, чтобы избежать чрезмерного переключения " +"журналов или ограничения записи." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:280 +msgid "From the man page `gjournal(8)`:" +msgstr "Из справочной страницы `gjournal(8)`:" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:282 +msgid "The default journal size is 1 GB." +msgstr "Размер журнала по умолчанию составляет 1 ГБ." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:283 +msgid "" +"The recommended minimum journal size is twice the amount of installed " +"physical memory." +msgstr "" +"Рекомендуемый минимальный размер журнала составляет удвоенный объем " +"установленной оперативной памяти." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:284 +msgid "" +"The journal size should be chosen based on expected write load, not file " +"system size." +msgstr "" +"Размер журнала должен выбираться на основе ожидаемой нагрузки записи, а не " +"размера файловой системы." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:286 +msgid "" +"An undersized journal may result in degraded performance or forced journal " +"switches under heavy write load." +msgstr "" +"Недостаточный размер журнала может привести к снижению производительности " +"или вынужденным переключениям журнала при высокой нагрузке на запись." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:288 +msgid "" +"For more information about journaling, please read the manual page of man:" +"gjournal[8]." +msgstr "" +"Для получения дополнительной информации о журналировании, пожалуйста, " +"прочитайте страницу справочника, посвященную man:gjournal[8]." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:290 +#, no-wrap +msgid "Steps During the Installation of FreeBSD" +msgstr "Действия, необходимые во время установки FreeBSD" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:294 +msgid "" +"This section describes optional installation-time preparation for systems " +"that are configured to use GEOM journaling. The goal is to reserve disk " +"space for journal providers that will later be associated with the `/usr` " +"and `/var` file systems." +msgstr "" +"В этом разделе описывается необязательная подготовка во время установки для " +"систем, настроенных на использование журналирования GEOM. Цель — " +"зарезервировать дисковое пространство для журнальных провайдеров, которые " +"впоследствии будут связаны с файловыми системами `/usr` и `/var`." + +#. type: Title ==== +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:295 +#, no-wrap +msgid "Reserving Space for Journaling" +msgstr "Выделение места под журналирование" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:299 +msgid "" +"On a typical system with a single disk, the operating system, installed " +"software, and user data all reside on the same device. The default " +"automatic partitioning performed by the FreeBSD installer allocates most " +"available space to `/usr`, with smaller partitions for `/var` and other " +"mount points." +msgstr "" +"На типичной системе с одним диском операционная система, установленное " +"программное обеспечение и пользовательские данные находятся на одном " +"устройстве. Стандартное автоматическое разбиение, выполняемое установщиком " +"FreeBSD, выделяет большую часть доступного пространства под `/usr`, с " +"меньшими разделами для `/var` и других точек монтирования." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:303 +msgid "" +"By default, the installer allocates all available disk space to file systems " +"and does not leave unused space. When GEOM journaling is planned for " +"existing (non-empty) file systems, additional disk space must be reserved to " +"hold journal providers. Each file system that will be journaled requires " +"its own journal provider." +msgstr "" +"По умолчанию установщик выделяет всё доступное дисковое пространство для " +"файловых систем и не оставляет неиспользуемого места. Если планируется " +"использование журналирования GEOM для существующих (непустых) файловых " +"систем, необходимо зарезервировать дополнительное дисковое пространство для " +"размещения журнальных провайдеров. Каждая файловая система, которая будет " +"журналироваться, требует собственного журнального провайдера." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:305 +msgid "" +"Since `/usr` typically occupies the largest portion of the disk, it is " +"usually the most practical partition to reduce slightly in order to make " +"room for journal providers." +msgstr "" +"Поскольку `/usr` обычно занимает наибольшую часть диска, это наиболее " +"практичный раздел для небольшого уменьшения, чтобы освободить место для " +"журналируемых провайдеров." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:307 +msgid "In our example GEOM journaling is planned for both `/usr` and `/var`." +msgstr "" +"В нашем примере журналирование GEOM планируется как для `/usr`, так и для " +"`/var`." + +#. type: Title ==== +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:308 +#, no-wrap +msgid "Partitioning Strategy" +msgstr "Стратегия разбиения на разделы" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:312 +msgid "" +"During installation, use the manual partitioning mode provided by the " +"installer. Create any supported file system type for `/`, and create " +"standard UFS partitions for `/usr` and `/var`, but reduce the size of `/usr` " +"to leave sufficient unallocated space at the end of the disk." +msgstr "" +"Во время установки используйте режим ручного разбиения, предоставляемый " +"установщиком. Создайте любую поддерживаемую файловую систему для `/`, а " +"также стандартные разделы UFS для `/usr` и `/var`, но уменьшите размер `/usr`" +", чтобы оставить достаточно нераспределенного пространства в конце диска." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:314 +msgid "" +"From the remaining unallocated space, create two additional partitions that " +"will be used exclusively as journal providers:" +msgstr "" +"Из оставшегося нераспределенного пространства создайте два дополнительных " +"раздела, которые будут использоваться исключительно в качестве журнальных " +"провайдеров:" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:316 +msgid "One partition for the `/usr` journal" +msgstr "Один раздел для журнала `/usr`" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:317 +msgid "One partition for the `/var` journal" +msgstr "Один раздел для журнала `/var`" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:320 +msgid "" +"These partitions must not be assigned mount points and must not be used for " +"swap. They will remain unused until they are explicitly associated with " +"their corresponding data providers using `gjournal(8)` after installation." +msgstr "" +"Эти разделы не должны иметь назначенных точек монтирования и не должны " +"использоваться для подкачки. Они останутся неиспользованными до тех пор, " +"пока не будут явно связаны с соответствующими поставщиками данных с помощью " +"`gjournal(8)` после установки." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:322 +msgid "A typical layout may look like the following:" +msgstr "Типичная схема может выглядеть следующим образом:" + +#. type: Block title +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:323 +#, no-wrap +msgid "Partitions Reserved for GEOM Journaling" +msgstr "Разделы, Зарезервированные для Журналирования GEOM" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:327 +#, no-wrap +msgid "Provider" +msgstr "Поставщик" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:328 +#, no-wrap +msgid "Intended Use" +msgstr "Предназначение" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:330 +#, no-wrap +msgid "Notes" +msgstr "Заметки" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:331 +#, no-wrap +msgid "/dev/ada0p2" +msgstr "/dev/ada0p2" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:332 +#, no-wrap +msgid "/var" +msgstr "/var" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:334 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:338 +#, no-wrap +msgid "UFS file system (data provider)" +msgstr "Файловая система UFS (поставщик данных)" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:335 +#, no-wrap +msgid "/dev/ada0p3" +msgstr "/dev/ada0p3" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:336 +#, no-wrap +msgid "/usr" +msgstr "/usr" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:339 +#, no-wrap +msgid "/dev/ada0p4" +msgstr "/dev/ada0p4" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:340 +#, no-wrap +msgid "Journal for /var" +msgstr "Журнал для /var" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:342 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:345 +#, no-wrap +msgid "Unformatted, unused partition" +msgstr "Неформатированный, неиспользуемый раздел" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:343 +#, no-wrap +msgid "/dev/ada0p5" +msgstr "/dev/ada0p5" + +#. type: Table +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:344 +#, no-wrap +msgid "Journal for /usr" +msgstr "Журнал для /usr" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:349 +msgid "" +"The exact device names will vary depending on the disk layout and " +"partitioning scheme. It is strongly recommended to record the provider " +"names during installation, as they will be required during journal " +"configuration." +msgstr "" +"Точные названия устройств могут различаться в зависимости от структуры диска " +"и схемы разделов. Настоятельно рекомендуется записать имена провайдеров во " +"время установки, так как они потребуются при настройке журнала." + +#. type: Title ==== +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:350 +#, no-wrap +msgid "Journal Size Considerations" +msgstr "Соображения по размеру журнала" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:355 +msgid "" +"Journal size depends on the expected write workload rather than on the size " +"of the file system. For general-purpose systems, journal sizes of 1–2 GB " +"are commonly sufficient. Systems with sustained or bursty write activity " +"may require larger journals." +msgstr "" +"Размер журнала зависит от ожидаемой нагрузки на запись, а не от размера " +"файловой системы. Для систем общего назначения обычно достаточно журналов " +"размером 1–2 ГБ. Системам с постоянной или импульсной активностью записи " +"могут потребоваться журналы большего размера." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:357 +msgid "" +"Allocate journal space conservatively during installation, as resizing " +"partitions later may require additional downtime." +msgstr "" +"Выделяйте пространство под журнал экономно во время установки, так как " +"изменение размера разделов позже может потребовать дополнительного времени " +"простоя." + +#. type: Title ==== +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:358 +#, no-wrap +msgid "Completing the Installation" +msgstr "Завершение инсталляции" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:362 +msgid "" +"After reserving the required partitions, complete the FreeBSD installation " +"normally. It is recommended to postpone the installation of third-party " +"software and additional system configuration until GEOM journaling has been " +"fully configured." +msgstr "" +"После резервирования необходимых разделов завершите установку FreeBSD в " +"обычном режиме. Рекомендуется отложить установку стороннего программного " +"обеспечения и дополнительную настройку системы до полной настройки " +"журналирования GEOM." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:365 +msgid "" +"At this stage, the system will boot using the standard UFS file systems. " +"The reserved journal partitions will remain unused until journaling is " +"explicitly enabled." +msgstr "" +"На этом этапе система загрузится с использованием стандартных файловых " +"систем UFS. Зарезервированные журнальные разделы останутся неиспользованными " +"до тех пор, пока журналирование не будет явно включено." + +#. type: Title ==== +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:367 +#, no-wrap +msgid "First Boot After Installation" +msgstr "Первая загрузка после установки" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:371 +msgid "" +"After the first successful boot, no immediate configuration changes are " +"required. The system should be verified to boot and operate normally before " +"proceeding." +msgstr "" +"После первого успешного запуска немедленные изменения конфигурации не " +"требуются. Следует убедиться, что система загружается и работает нормально, " +"прежде чем продолжить." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:373 +msgid "" +"Once the base system is confirmed to be functional, the next steps involve:" +msgstr "" +"После того, как подтверждено, что базовая система работоспособна, следующие " +"шаги включают:" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:375 +msgid "Loading or enabling GEOM journaling support" +msgstr "Загрузка или включение поддержки журналирования GEOM" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:376 +msgid "Associating journal providers with their corresponding data providers" +msgstr "" +"Связывание журнальных провайдеров с соответствующими провайдерами данных" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:377 +msgid "Updating `/etc/fstab` to mount the journaled devices" +msgstr "Обновление `/etc/fstab` для монтирования журналируемых устройств" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:379 +msgid "These steps are described in the following section." +msgstr "Эти шаги описаны в следующем разделе." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:381 +#, no-wrap +msgid "Setting Up Journaling" +msgstr "Настройка журналирования" + +#. type: Title ==== +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:384 +#, no-wrap +msgid "Enabling GEOM Journaling on Existing File Systems" +msgstr "Включение журналирования GEOM в существующих файловых системах" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:387 +msgid "" +"This section describes how to enable GEOM journaling on the `/usr` and `/" +"var` file systems using the partitions prepared during installation." +msgstr "" +"В этом разделе описывается, как включить журналирование GEOM для файловых " +"систем `/usr` и `/var`, используя разделы, подготовленные в процессе " +"установки." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:390 +msgid "" +"Once the required journal providers have been reserved, GEOM journaling can " +"be configured. Because the file systems to be journaled must not be " +"mounted, the system must be switched to single-user mode." +msgstr "" +"После резервирования необходимых журнальных провайдеров можно настроить " +"журналирование GEOM. Поскольку файловые системы, подлежащие журналированию, " +"не должны быть смонтированы, систему необходимо переключить в " +"однопользовательский режим." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:392 +msgid "Log in as `root` and enter:" +msgstr "Залогиньтесь `root` и введите:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:396 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:719 +#, no-wrap +msgid "# shutdown now\n" +msgstr "# shutdown now\n" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:401 +msgid "" +"Press kbd:[Enter] to obtain a root shell. Unmount the file systems that " +"will be journaled. In this example, `/usr` and `/var`:" +msgstr "" +"Нажмите kbd:[Enter] для получения приглашения командного интерпретатора в " +"режиме root. Нам необходимо будет размонтировать разделы, которые подлежат " +"журналированию, в нашем примере это [.filename]#/usr# и [.filename]#/var#:" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:304 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:405 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:726 +#, no-wrap +msgid "# umount /usr /var\n" +msgstr "# umount /usr /var\n" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:408 +msgid "Load the GEOM journaling kernel module:" +msgstr "Загрузите модуль ядра GEOM journaling:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:412 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:691 +#, no-wrap +msgid "# gjournal load\n" +msgstr "# gjournal load\n" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:416 +msgid "" +"Next, associate each data provider with its corresponding journal provider. " +"Use your notes to determine which partition will be used for each journal." +msgstr "" +"Далее, свяжите каждого поставщика данных с соответствующим поставщиком " +"журналов. Используйте свои заметки, чтобы определить, какой раздел будет " +"использоваться для каждого журнала." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:418 +msgid "In this example:" +msgstr "В этом примере:" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:420 +msgid "" +"`/usr` resides on `/dev/ada0p3` and its journal provider is `/dev/ada0p5`" +msgstr "" +"`/usr` находится на `/dev/ada0p3`, а его журнальный провайдер — `/dev/ada0p5`" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:421 +msgid "" +"`/var` resides on `/dev/ada0p2` and its journal provider is `/dev/ada0p4`" +msgstr "" +"`/var` находится на `/dev/ada0p2`, а его журнальный провайдер — `/dev/ada0p4`" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:423 +msgid "Create the journaled providers using `gjournal(8)`:" +msgstr "Создайте журналируемые провайдеры с помощью `gjournal(8)`:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:430 +#, no-wrap +msgid "" +"# gjournal label ada0p3 ada0p5\n" +"GEOM_JOURNAL: Journal 2948326772: ada0p5 contains journal.\n" +"GEOM_JOURNAL: Journal 2948326772: ada0p3 contains data.\n" +"GEOM_JOURNAL: Journal ada0p3 clean.\n" +msgstr "" +"# gjournal label ada0p3 ada0p5\n" +"GEOM_JOURNAL: Journal 2948326772: ada0p5 contains journal.\n" +"GEOM_JOURNAL: Journal 2948326772: ada0p3 contains data.\n" +"GEOM_JOURNAL: Journal ada0p3 clean.\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:435 +#, no-wrap +msgid "" +"# gjournal label ada0p2 ada0p4\n" +"GEOM_JOURNAL: Journal 3193218002: ada0p4 contains journal.\n" +"GEOM_JOURNAL: Journal 3193218002: ada0p2 contains data.\n" +"GEOM_JOURNAL: Journal ada0p2 clean.\n" +msgstr "" +"# gjournal label ada0p2 ada0p4\n" +"GEOM_JOURNAL: Journal 3193218002: ada0p4 contains journal.\n" +"GEOM_JOURNAL: Journal 3193218002: ada0p2 contains data.\n" +"GEOM_JOURNAL: Journal ada0p2 clean.\n" + +#. type: delimited block = 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:442 +msgid "" +"If `gjournal` reports that the last sector of a provider is in use, the " +"command will fail. On freshly created or unused partitions, it is safe to " +"retry the operation with the `-f` flag to force initialization:" +msgstr "" +"Если `gjournal` сообщает, что последний сектор провайдера используется, " +"команда завершится неудачей. На свежесозданных или неиспользуемых разделах " +"безопасно повторить операцию с флагом `-f` для принудительной инициализации:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:446 +#, no-wrap +msgid "# gjournal label -f /dev/ada0p2 /dev/ada0p4\n" +msgstr "# gjournal label -f /dev/ada0p2 /dev/ada0p4\n" + +#. type: delimited block = 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:450 +msgid "After labeling, two new journaled providers are created:" +msgstr "После маркировки создаются два новых журналируемых провайдера:" + +#. type: delimited block = 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:452 +msgid "`/dev/ada0p3.journal` for `/usr`" +msgstr "`/dev/ada0p3.journal` для `/usr`" + +#. type: delimited block = 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:453 +msgid "`/dev/ada0p2.journal` for `/var`" +msgstr "`/dev/ada0p2.journal` для `/var`" + +#. type: delimited block = 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:455 +msgid "" +"These devices will replace the original data providers when mounting the " +"file systems." +msgstr "" +"Эти устройства заменят исходные источники данных при монтировании файловых " +"систем." + +#. type: delimited block = 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:457 +msgid "" +"Before mounting, we must however set the journal flag on them and clear the " +"Soft Updates flag:" +msgstr "" +"Перед монтированием необходимо установить для них флаг журнала и снять флаг " +"Soft Updates:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:465 +#, no-wrap +msgid "" +"# tunefs -J enable -n disable -j disable /dev/ada0p3.journal\n" +"tunefs: soft updates journaling cleared but soft updates still set\n" +"tunefs: remove .sujournal to reclaim space\n" +"tunefs: gjournal set\n" +"tunefs: soft updates cleared\n" +msgstr "" +"# tunefs -J enable -n disable -j disable /dev/ada0p3.journal\n" +"tunefs: soft updates journaling cleared but soft updates still set\n" +"tunefs: remove .sujournal to reclaim space\n" +"tunefs: gjournal set\n" +"tunefs: soft updates cleared\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:471 +#, no-wrap +msgid "" +"# tunefs -J enable -n disable -j disable /dev/ada0p2.journal\n" +"tunefs: soft updates journaling cleared but soft updates still set\n" +"tunefs: remove .sujournal to reclaim space\n" +"tunefs: gjournal set\n" +"tunefs: soft updates cleared\n" +msgstr "" +"# tunefs -J enable -n disable -j disable /dev/ada0p2.journal\n" +"tunefs: soft updates journaling cleared but soft updates still set\n" +"tunefs: remove .sujournal to reclaim space\n" +"tunefs: gjournal set\n" +"tunefs: soft updates cleared\n" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:474 +msgid "" +"Now, mount the new devices manually at their respective places to verify " +"correct operation (note that we can now use the `async` mount option) and " +"remove [.filename]#.sujournal# to reclaim space:" +msgstr "" +"Теперь, смонтируйте новые устройства в соответствующие места файловой " +"системы (обратите внимание на то, что мы можем использовать опцию " +"монтирования `async`) и удалите [.filename]#.sujournal#, чтобы освободить " +"место на диске:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:481 +#, no-wrap +msgid "" +"# mount -o async /dev/ada0p2.journal /var\n" +"# rm /var/.sujournal\n" +"# mount -o async /dev/ada0p3.journal /usr\n" +"# rm /usr/.sujournal\n" +msgstr "" +"# mount -o async /dev/ada0p2.journal /var\n" +"# rm /var/.sujournal\n" +"# mount -o async /dev/ada0p3.journal /usr\n" +"# rm /usr/.sujournal\n" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:484 +msgid "" +"Edit [.filename]#/etc/fstab# and update the entries for [.filename]#/usr# " +"and [.filename]#/var#:" +msgstr "" +"Откройте [.filename]#/etc/fstab# и исправьте записи для следующих файловых " +"систем: [.filename]#/usr# и [.filename]#/var#:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:489 +#, no-wrap +msgid "" +"/dev/ada0p3.journal /usr ufs rw,async 2 2\n" +"/dev/ada0p2.journal /var ufs rw,async 2 2\n" +msgstr "" +"/dev/ada0p3.journal /usr ufs rw,async 2 2\n" +"/dev/ada0p2.journal /var ufs rw,async 2 2\n" + +#. type: delimited block = 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:494 +msgid "" +"Make sure the above entries are correct, or you will have trouble starting " +"up normally after you reboot!" +msgstr "" +"Проверьте корректность всех указанных параметров - в противном случае после " +"перезагрузки возможны проблемы со стандартным запуском системы!" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:497 +msgid "" +"Finally, edit [.filename]#/boot/loader.conf# and add the following line so " +"the man:gjournal[8] module is loaded at every boot:" +msgstr "" +"Наконец, внесите изменения в [.filename]#/boot/loader.conf#, добавив строку " +"для автоматической загрузки модуля man:gjournal[8] при каждом старте системы:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:501 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:683 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:817 #, no-wrap msgid "geom_journal_load=\"YES\"\n" msgstr "geom_journal_load=\"YES\"\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:309 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:505 msgid "" "Congratulations! Your system is now set for journaling. You can either type " "`exit` to return to multi-user mode, or reboot to test your configuration " -"(recommended). During the boot you will see messages like the following:" +"(recommended)." msgstr "" "Поздравляем! Ваша система теперь настроена для журналирования. Вы можете " "ввести команду `exit` для возврата в многопользовательский режим или " -"перезагрузить систему для проверки конфигурации (рекомендуется). При " -"загрузке вы увидите сообщения следующего вида:" +"перезагрузить систему для проверки конфигурации (рекомендуется)." #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:319 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:509 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:763 +#, no-wrap +msgid "# shutdown -r now\n" +msgstr "# shutdown -r now\n" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:512 +msgid "During the boot you will see messages like the following:" +msgstr "Во время перезагрузки вы увидите сообщение следующего вида:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:522 #, no-wrap msgid "" -"ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150\n" -"GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.\n" -"GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.\n" -"GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.\n" -"GEOM_JOURNAL: Journal ad0s1d clean.\n" -"GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.\n" -"GEOM_JOURNAL: Journal ad0s1f clean.\n" +"# dmesg | grep GEOM_JOURNAL\n" +"GEOM_JOURNAL: Journal 2948326772: ada0p4 contains journal.\n" +"GEOM_JOURNAL: Journal 3193218002: ada0p5 contains journal.\n" +"GEOM_JOURNAL: Journal 2948326772: ada0p2 contains data.\n" +"GEOM_JOURNAL: Journal ada0p2 clean.\n" +"GEOM_JOURNAL: Journal 3193218002: ada0p3 contains data.\n" +"GEOM_JOURNAL: Journal ada0p3 clean.\n" msgstr "" -"ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150\n" -"GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.\n" -"GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.\n" -"GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.\n" -"GEOM_JOURNAL: Journal ad0s1d clean.\n" -"GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.\n" -"GEOM_JOURNAL: Journal ad0s1f clean.\n" +"# dmesg | grep GEOM_JOURNAL\n" +"GEOM_JOURNAL: Journal 2948326772: ada0p4 contains journal.\n" +"GEOM_JOURNAL: Journal 3193218002: ada0p5 contains journal.\n" +"GEOM_JOURNAL: Journal 2948326772: ada0p2 contains data.\n" +"GEOM_JOURNAL: Journal ada0p2 clean.\n" +"GEOM_JOURNAL: Journal 3193218002: ada0p3 contains data.\n" +"GEOM_JOURNAL: Journal ada0p3 clean.\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:322 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:525 msgid "After an unclean shutdown, the messages will vary slightly, i.e.:" msgstr "" "После некорректного завершения работы сообщения будут немного отличаться, " "например:" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:326 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:529 #, no-wrap -msgid "GEOM_JOURNAL: Journal ad0s1d consistent.\n" -msgstr "GEOM_JOURNAL: Journal ad0s1d consistent.\n" +msgid "GEOM_JOURNAL: Journal ada0p2 consistent.\n" +msgstr "GEOM_JOURNAL: Journal ada0p2 consistent.\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:329 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:532 msgid "" "This usually means that man:gjournal[8] used the information in the journal " "provider to return the file system to a consistent state." msgstr "" "Обычно это означает, что man:gjournal[8] использовал информацию из журнала " "для приведения файловой системы в согласованное состояние." -#. type: Title === -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:331 +#. type: Title ==== +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:534 #, no-wrap -msgid "Journaling Newly Created Partitions" -msgstr "Журналирование новых разделов" +msgid "Enabling GEOM Journaling on Newly Created Partitions" +msgstr "Включение журналирования GEOM на вновь созданных разделах" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:336 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:538 +msgid "" +"The procedure described earlier is required when enabling GEOM journaling on " +"file systems that already contain data. When journaling a newly created, " +"empty partition, the process is simpler because both the data and journal " +"providers can reside within the same partition." +msgstr "" +"Процедура, описанная ранее, необходима при включении журналирования GEOM на " +"файловых системах, которые уже содержат данные. При журналировании только " +"что созданного, пустого раздела процесс проще, так как и данные, и " +"журнальные провайдеры могут находиться в одном разделе." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:540 +msgid "" +"This approach is typically used for new disks or newly allocated partitions " +"that have not yet been formatted with a file system." +msgstr "" +"Такой подход обычно используется для новых дисков или недавно выделенных " +"разделов, которые еще не были отформатированы под файловую систему." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:545 msgid "" "While the above procedure is necessary for journaling partitions that " "already contain data, journaling an empty partition is somewhat easier, " "since both the data and the journal provider can be stored in the same " "partition. For example, assume a new disk was installed, and a new " -"partition [.filename]#/dev/ad1s1d# was created. Creating the journal would " +"partition [.filename]#/dev/ada1p1# was created. Creating the journal would " "be as simple as:" msgstr "" "Процедура, описанная выше, необходима для подключения журналирования " "разделов, содержащих данные. Журналирование пустых разделов немного проще, " "ввиду того, что поставщик данных и поставщик журнала могут быть размещены на " "одном и том же разделе. Например, предположим, что был установлен новый " -"жесткий диск и был создан новый раздел [.filename]#/dev/ad1s1d#. Создание " +"жёсткий диск и был создан новый раздел [.filename]#/dev/ada1p1#. Создание " "журнала не сложнее набора:" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:340 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:549 #, no-wrap -msgid "# gjournal label ad1s1d\n" -msgstr "# gjournal label ad1s1d\n" +msgid "# gjournal label /dev/ada1p1\n" +msgstr "# gjournal label /dev/ada1p1\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:346 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:555 msgid "" "The journal size will be 1 GB by default. You may adjust it by using the `-" "s` option. The value can be given in bytes, or appended by `K`, `M` or `G` " "to denote Kilobytes, Megabytes or Gigabytes respectively. Note that " "`gjournal` will not allow you to create unsuitably small journal sizes." msgstr "" "Размер журнала - 1 Гб по умолчанию. Однако, вы можете изменить это значение " "используя ключ `-s`. Значение можно задавать в байтах, в килобайтах, " "мегабайтах или гигабайтах (используя суффикс `K`, `M` или `G`). Имейте " "ввиду, что команда `gjournal` не позволит вам создать журнал недопустимо " "малого размера." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:348 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:557 msgid "" "For example, to create a 2 GB journal, you could use the following command:" msgstr "" "К примеру, чтобы создать журнал размером в 2Гб, можно использовать следующую " "команду:" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:352 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:561 #, no-wrap -msgid "# gjournal label -s 2G ad1s1d\n" -msgstr "# gjournal label -s 2G ad1s1d\n" +msgid "# gjournal label -s 2G /dev/ada1p1\n" +msgstr "# gjournal label -s 2G /dev/ada1p1\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:355 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:564 +msgid "" +"You can then initialyze a UFS file system on your new partition, enable " +"journaling using `newfs(8)` on the `.journal` device, and disable Soft " +"Updates using `tunefs(8)`:" +msgstr "" +"Далее, вы можете создать файловую систему UFS на новом разделе, разрешить " +"журналирование, используя `newfs(8)` на устройстве `.journal`, и запретить " +"Soft Updates, используя `tunefs(8)`:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:569 +#, no-wrap msgid "" -"You can then create a file system on your new partition, and enable " -"journaling using the `-J` option:" +"# newfs -J /dev/ada1p1.journal\n" +"# tunefs -n disable -j disable /dev/ada1p1.journal\n" msgstr "" -"Далее, вы можете создать файловую систему на новом разделе, а также " -"разрешить журналирование ключом `-J`:" +"# newfs -J /dev/ada1p1.journal\n" +"# tunefs -n disable -j disable /dev/ada1p1.journal\n" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:573 +msgid "" +"After the file system has been created, it can be mounted normally. For " +"example, to mount it at `/data`:" +msgstr "" +"После создания файловой системы её можно смонтировать обычным способом. " +"Например, чтобы смонтировать её в `/data`:" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:359 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:577 #, no-wrap -msgid "# newfs -J /dev/ad1s1d.journal\n" -msgstr "# newfs -J /dev/ad1s1d.journal\n" +msgid "# mount /dev/ada1p1.journal /data\n" +msgstr "# mount /dev/ada1p1.journal /data\n" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:580 +msgid "" +"To ensure the file system is mounted automatically at boot, add an entry to " +"[.filename]#/etc/fstab#:" +msgstr "" +"Чтобы обеспечить автоматическое монтирование файловой системы при загрузке, " +"добавьте запись в [.filename]#/etc/fstab#:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:584 +#, no-wrap +msgid "/dev/ada1p1.journal /data ufs rw,async 2 2\n" +msgstr "/dev/ada1p1.journal /data ufs rw,async 2 2\n" + +#. type: Title ===== +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:586 +#, no-wrap +msgid "Notes on Usage" +msgstr "Заметки по использованию" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:589 +msgid "When using a single provider for both data and journal storage:" +msgstr "При использовании одного провайдера для хранения данных и журналов:" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:591 +msgid "The partition must be empty before labeling" +msgstr "Раздел должен быть пустым перед выполнением `gjournal label`" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:592 +msgid "The journal space is allocated from within the partition" +msgstr "Журнальное пространство выделяется внутри раздела диска" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:593 +msgid "The file system size will be reduced by the size of the journal" +msgstr "Размер файловой системы будет уменьшен на размер журнала" #. type: Title === -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:362 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:595 #, no-wrap msgid "Building Journaling into Your Custom Kernel" -msgstr "Встраивание журналирования в специализированное ядро" +msgstr "Встраивание журналирования в собственное ядро" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:599 +msgid "" +"If you do not wish to load `geom_journal` as a module, you can build its " +"functions right into your kernel. Edit your custom kernel configuration " +"file, and make sure it includes these two lines:" +msgstr "" +"Если вы не желаете загружать `geom_journal` как модуль, то можно встроить " +"его функции прямо в ваше специализированное ядро. Редактируя " +"конфигурационный файл ядра, убедитесь, что в нём находятся следующие две " +"строки:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:603 +#, no-wrap +msgid "options UFS_GJOURNAL <1>\n" +msgstr "options UFS_GJOURNAL <1>\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:605 +#, no-wrap +msgid "options GEOM_JOURNAL <2>\n" +msgstr "options GEOM_JOURNAL <2>\n" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:608 +msgid "Note: This is already in GENERIC" +msgstr "Обратите внимание — это уже есть в GENERIC" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:609 +msgid "You will have to add this one" +msgstr "Вам надо добавить эту опцию" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:612 +msgid "" +"Rebuild and reinstall your kernel following the relevant extref:{handbook}" +"kernelconfig[instructions in the FreeBSD Handbook., kernelconfig]" +msgstr "" +"Соберите и установите новое ядро следуя указаниям extref:{handbook}" +"kernelconfig[Руководства FreeBSD., kernelconfig]" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:614 +msgid "" +"Do not forget to remove the relevant \"load\" entry from [.filename]#/boot/" +"loader.conf# if you have previously used it." +msgstr "" +"И не забудьте удалить соответствующую строку загрузки модуля (\"load\") из [." +"filename]#/boot/loader.conf# (если на предыдущем этапе она была туда " +"внесена)." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:615 +#, no-wrap +msgid "Checking GEOM Journaling" +msgstr "Проверка GEOM журналирования" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:618 +msgid "" +"GEOM journaling status can be verified by inspecting active GEOM providers." +msgstr "" +"Статус журналирования GEOM можно уточнить, проверив активные провайдеры GEOM." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:366 -msgid "" -"If you do not wish to load `geom_journal` as a module, you can build its " -"functions right into your kernel. Edit your custom kernel configuration " -"file, and make sure it includes these two lines:" +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:620 +msgid "To list all active GEOM journal devices, run:" msgstr "" -"Если вы не желаете загружать `geom_journal` как модуль, то можно встроить " -"его функции прямо в ваше специализированное ядро. Редактируя " -"конфигурационный файл ядра, убедитесь, что в нем находятся следующие две " -"строки:" +"Чтобы вывести список всех активных устройств журналирования GEOM, выполните:" -#. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:370 +#. type: delimited block - 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:624 #, no-wrap -msgid "options UFS_GJOURNAL # Note: This is already in GENERIC\n" -msgstr "options UFS_GJOURNAL # Note: This is already in GENERIC\n" +msgid "# gjournal list\n" +msgstr "# gjournal list\n" -#. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:372 +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:627 +msgid "Or to view a summary of journal status:" +msgstr "Или для просмотра сводки состояния журнала:" + +#. type: delimited block - 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:631 #, no-wrap -msgid "options GEOM_JOURNAL # You will have to add this one\n" -msgstr "options GEOM_JOURNAL # You will have to add this one\n" +msgid "# gjournal status\n" +msgstr "# gjournal status\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:375 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:635 msgid "" -"Rebuild and reinstall your kernel following the relevant extref:{handbook}" -"kernelconfig[instructions in the FreeBSD Handbook., kernelconfig]" +"Journaled file systems are identified by device names ending in `.journal`. " +"The presence of these providers indicates that GEOM journaling is active." msgstr "" -"Соберите и установите новое ядро следуя указаниям " -"extref:{handbook}kernelconfig[Руководства FreeBSD., kernelconfig]" +"Журналируемые файловые системы обозначаются именами устройств, " +"оканчивающимися на `.journal`. Наличие этих провайдеров указывает на " +"активность журналирования GEOM." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:377 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:637 +msgid "Additional information about GEOM device stacking can be obtained with:" +msgstr "" +"Дополнительную информацию о цепочке устройств GEOM можно получить с помощью:" + +#. type: delimited block - 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:641 +#, no-wrap +msgid "# geom -t\n" +msgstr "# geom -t\n" + +#. type: delimited block - 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:649 +#, no-wrap msgid "" -"Do not forget to remove the relevant \"load\" entry from [.filename]#/boot/" -"loader.conf# if you have previously used it." +"# dumpfs /dev/ada0p2.journal | grep -i journal\n" +"flags gjournal\n" msgstr "" -"И не забудьте удалить соответствующую строку загрузки модуля (\"load\") из [." -"filename]#/boot/loader.conf# (если на предыдущем этапе она была туда " -"внесена)." +"# dumpfs /dev/ada0p2.journal | grep -i journal\n" +"flags gjournal\n" #. type: Title == -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:379 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:653 #, no-wrap msgid "Troubleshooting Journaling" msgstr "Устранение неполадок с журналированием" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:382 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:656 msgid "" "The following section covers frequently asked questions regarding problems " "related to journaling." msgstr "" "Этот раздел содержит часто задаваемые вопросы касательно неполадок, " "связанных с журналированием." #. type: Title === -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:383 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:657 #, no-wrap -msgid "I am getting kernel panics during periods of high disk activity. How is this related to journaling?" -msgstr "Я получаю паники ядра во время высокой дисковой активности. Как это связано с журналированием?" +msgid "I am experiencing kernel panics during periods of high disk activity. Is this related to GEOM journaling?" +msgstr "" +"Я получаю паники ядра во время высокой дисковой активности. Это связано с " +"журналированием GEOM?" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:660 +msgid "" +"On modern FreeBSD systems, kernel panics caused solely by an undersized GEOM " +"journal are rare." +msgstr "" +"На современных системах FreeBSD аварийные остановки системы, вызванные " +"исключительно недостаточным размером журнала GEOM, встречаются редко." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:663 +msgid "" +"Under sustained or burst-heavy write workloads, an undersized journal " +"typically results in write throttling or temporary I/O stalls while the " +"journal is flushed to the data provider. A kernel panic may occur only in " +"exceptional cases, usually in combination with additional problems such as I/" +"O errors or resource exhaustion, where continuing operation could risk file " +"system integrity." +msgstr "" +"При продолжительных или интенсивных всплесках нагрузки на запись, " +"недостаточный размер журнала обычно приводит к регулированию записи или " +"временным задержкам ввода-вывода во время сброса журнала на устройство " +"хранения данных. Аварийная остановка системы может возникнуть лишь в " +"исключительных случаях, обычно в сочетании с дополнительными проблемами, " +"такими как ошибки ввода-вывода или исчерпание ресурсов, когда продолжение " +"работы может угрожать целостности файловой системы." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:389 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:665 msgid "" -"The journal probably fills up before it has a chance to get committed " -"(flushed) to disk. Keep in mind the size of the journal depends on the " -"usage load, and not the size of the data provider. If your disk activity is " -"high, you need a larger partition for the journal. See the note in the " -"crossref:gjournal-desktop[understanding-journaling, Understanding Journaling " -"in FreeBSD] section." +"If panics are observed during heavy write activity, increasing the size of " +"the journal provider for the affected file system is recommended." msgstr "" -"Вероятно, что журнал заполняется раньше, чем происходит сброс его на диск. " -"Помните, размер журнала зависит от загруженности диска, а не от размера " -"поставщика данных. Если загрузка диска высокая, вам потребуется раздел " -"большего размера для журнала. См. замечания в разделе crossref:gjournal-" -"desktop[understanding-journaling, Understanding Journaling in FreeBSD]." +"Если наблюдаются аварийные остановки при интенсивной активности записи, " +"рекомендуется увеличить размер журнала для затронутой файловой системы." #. type: Title === -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:390 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:666 #, no-wrap msgid "I made some mistake during configuration, and I cannot boot normally now. Can this be fixed some way?" msgstr "Я допустил некоторые ошибки во время конфигурирования, теперь система не загружается. Можно это как-нибудь исправить?" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:396 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:672 msgid "" "You either forgot (or misspelled) the entry in [.filename]#/boot/loader." "conf#, or there are errors in your [.filename]#/etc/fstab# file. These are " -"usually easy to fix. Press kbd:[Enter] to get to the default single user " -"shell. Then locate the root of the problem:" +"usually easy to fix. During system startup, when the boot process stops and " +"prompts for single-user mode (for example after a failed mount or `fsck` " +"error), press kbd:[Enter] to get to the default single user shell. Then " +"locate the root of the problem:" msgstr "" "Вы либо забыли внести запись (опечатались) в [.filename]#/boot/loader.conf#, " -"либо есть ошибки в файле [.filename]#/etc/fstab#. Это легко исправить. " -"Нажмите kbd:[Enter], чтобы получить приглашение командного интерпретатора в " -"однопользовательском режиме. Потом, проверьте возможные варианты:" +"либо есть ошибки в файле [.filename]#/etc/fstab#. Это легко исправить. Во " +"время загрузки системы, когда процесс загрузки остановится и появится запрос " +"входа в однопользовательский режим (например, после сбоя монтирования или " +"ошибки `fsck`), нажмите kbd:[Enter], чтобы получить приглашение командного " +"интерпретатора в однопользовательском режиме. Потом, проверьте возможные " +"варианты:" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:400 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:676 #, no-wrap msgid "# cat /boot/loader.conf\n" msgstr "# cat /boot/loader.conf\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:404 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:679 +msgid "Ensure that the following line exists and is spelled correctly:" +msgstr "Убедитесь, что следующая строка существует и написана правильно:" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:687 msgid "" "If the `geom_journal_load` entry is missing or misspelled, the journaled " "devices are never created. Load the module manually, mount all partitions, " "and continue with multi-user boot:" msgstr "" "Если отсутствует запись `geom_journal_load`, или она содержит ошибки, " "журналируемые устройства не создадутся. Загрузите модуль вручную, " "примонтируйте все разделы и переходите в многопользовательский режим " "(продолжайте загрузку):" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:415 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:698 #, no-wrap msgid "" -"GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.\n" -"GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.\n" -"GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.\n" -"GEOM_JOURNAL: Journal ad0s1d clean.\n" -"GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.\n" -"GEOM_JOURNAL: Journal ad0s1f clean.\n" +"GEOM_JOURNAL: Journal 2948326772: ada0p4 contains journal.\n" +"GEOM_JOURNAL: Journal 3193218002: ada0p5 contains journal.\n" +"GEOM_JOURNAL: Journal 2948326772: ada0p2 contains data.\n" +"GEOM_JOURNAL: Journal ada0p2 clean.\n" +"GEOM_JOURNAL: Journal 3193218002: ada0p3 contains data.\n" +"GEOM_JOURNAL: Journal ada0p3 clean.\n" msgstr "" -"GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.\n" -"GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.\n" -"GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.\n" -"GEOM_JOURNAL: Journal ad0s1d clean.\n" -"GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.\n" -"GEOM_JOURNAL: Journal ad0s1f clean.\n" +"GEOM_JOURNAL: Journal 2948326772: ada0p4 contains journal.\n" +"GEOM_JOURNAL: Journal 3193218002: ada0p5 contains journal.\n" +"GEOM_JOURNAL: Journal 2948326772: ada0p2 contains data.\n" +"GEOM_JOURNAL: Journal ada0p2 clean.\n" +"GEOM_JOURNAL: Journal 3193218002: ada0p3 contains data.\n" +"GEOM_JOURNAL: Journal ada0p3 clean.\n" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:419 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:702 #, no-wrap msgid "" "# mount -a\n" "# exit\n" "(boot continues)\n" msgstr "" "# mount -a\n" "# exit\n" "(boot continues)\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:424 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:707 msgid "" "If, on the other hand, this entry is correct, have a look at [.filename]#/" "etc/fstab#. You will probably find a misspelled or missing entry. In this " "case, mount all remaining partitions by hand and continue with the multi-" "user boot." msgstr "" "Если же запись о `geom_journal_load` верна, то проверьте [.filename]#/etc/" "fstab#. Вероятней всего, что вы обнаружите опечатку или отсутствие " "необходимой записи. В этом случае смонтируйте вручную оставшиеся разделы и " "продолжите загрузку в многопользовательский режим." #. type: Title === -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:425 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:708 #, no-wrap msgid "Can I remove journaling and return to my standard file system with Soft Updates?" msgstr "Возможно ли отказаться от журналирования и вернуться к моей привычной файловой системе с механизмом Soft Updates?" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:430 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:713 msgid "" "Sure. Use the following procedure, which reverses the changes. The " "partitions you created for the journal providers can then be used for other " "purposes, if you so wish." msgstr "" -"Несомненно. Используйте приведенную ниже последовательность действий, " +"Несомненно. Используйте приведённую ниже последовательность действий, " "которая обращает изменения. Разделы, созданные для поставщиков журналов, " "могут позже быть использованы для других целей." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:432 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:715 msgid "Login as `root` and switch to single user mode:" msgstr "Залогиньтесь `root` и переведите систему в однопользовательский режим:" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:439 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:722 msgid "Unmount the journaled partitions:" msgstr "Размонтируйте журналируемые разделы:" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:446 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:729 msgid "Synchronize the journals:" msgstr "Синхронизируйте журналы:" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:450 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:733 #, no-wrap msgid "# gjournal sync\n" msgstr "# gjournal sync\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:453 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:736 msgid "Stop the journaling providers:" msgstr "Остановите поставщиков журналов:" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:458 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:741 #, no-wrap msgid "" -"# gjournal stop ad0s1d.journal\n" -"# gjournal stop ad0s1f.journal\n" +"# gjournal stop ada0p2.journal\n" +"# gjournal stop ada0p3.journal\n" +msgstr "" +"# gjournal stop ada0p2.journal\n" +"# gjournal stop ada0p3.journal\n" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:745 +msgid "" +"Next step should be done with unloaded gjournal kernel module. If the " +"following command fails:" +msgstr "" +"Следующий шаг должен быть выполнен с выгруженным модулем ядра gjournal. Если " +"следующая команда завершится неудачей:" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:750 +msgid "... # gjournal unload ..." +msgstr "... # gjournal unload ..." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:752 +msgid "" +"ensure that the following line exists in [.filename]#/boot/loader.conf# and " +"is spelled correctly:" msgstr "" -"# gjournal stop ad0s1d.journal\n" -"# gjournal stop ad0s1f.journal\n" +"Убедитесь, что следующая строка присутствует в [.filename]#/boot/loader.conf#" +" и написана правильно:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:756 +#, no-wrap +msgid "geom_journal_load=\"NO\"\n" +msgstr "geom_journal_load=\"NO\"\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:461 -msgid "Clear journaling metadata from all the devices used:" -msgstr "Удалите метаданные журналирования со всех задействованных устройств:" +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:759 +msgid "Reboot your desktop without gjournal kernel module:" +msgstr "Перезагрузите ваш компьютер без модуля ядра gjournal:" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:766 +msgid "" +"Boot into single-user mode again. Clear the journaling metadata from all the " +"devices used:" +msgstr "" +"Войдите в систему в однопользовательском режиме еще раз. Удалите метаданные " +"журналирования со всех задействованных устройств:" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:468 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:773 #, no-wrap msgid "" -"# gjournal clear ad0s1d\n" -"# gjournal clear ad0s1f\n" -"# gjournal clear ad0s1g\n" -"# gjournal clear ad0s1h\n" +"# gjournal clear ada0p2\n" +"# gjournal clear ada0p3\n" +"# gjournal clear ada0p4\n" +"# gjournal clear ada0p5\n" msgstr "" -"# gjournal clear ad0s1d\n" -"# gjournal clear ad0s1f\n" -"# gjournal clear ad0s1g\n" -"# gjournal clear ad0s1h\n" +"# gjournal clear ada0p2\n" +"# gjournal clear ada0p3\n" +"# gjournal clear ada0p4\n" +"# gjournal clear ada0p5\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:471 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:776 msgid "" -"Clear the file system journaling flag, and restore the Soft Updates flag:" -msgstr "Снимите флаг журналирования и установите флаг механизма Soft Updates:" +"Clear the file system journaling flag, and restore the Soft Updates flags:" +msgstr "Снимите флаг журналирования и установите флаги механизма Soft Updates:" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:477 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:783 #, no-wrap msgid "" -"# tunefs -J disable -n enable ad0s1d\n" +"# tunefs -J disable -n enable -j enable ada0p2\n" +"tunefs: soft updates journaling set\n" "tunefs: gjournal cleared\n" "tunefs: soft updates set\n" msgstr "" -"# tunefs -J disable -n enable ad0s1d\n" +"# tunefs -J disable -n enable -j enable ada0p2\n" +"tunefs: soft updates journaling set\n" "tunefs: gjournal cleared\n" "tunefs: soft updates set\n" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:481 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:788 #, no-wrap msgid "" -"# tunefs -J disable -n enable ad0s1f\n" +"# tunefs -J disable -n enable -j enable ada0p3\n" +"tunefs: soft updates journaling set\n" "tunefs: gjournal cleared\n" "tunefs: soft updates set\n" msgstr "" -"# tunefs -J disable -n enable ad0s1f\n" +"# tunefs -J disable -n enable -j enable ada0p3\n" +"tunefs: soft updates journaling set\n" "tunefs: gjournal cleared\n" "tunefs: soft updates set\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:484 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:791 msgid "Remount the old devices by hand:" msgstr "Смонтируйте вручную старые (первоначальные) устройства:" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:489 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:796 #, no-wrap msgid "" -"# mount -o rw /dev/ad0s1d /var\n" -"# mount -o rw /dev/ad0s1f /usr\n" +"# mount -o rw /dev/ada0p2 /var\n" +"# mount -o rw /dev/ada0p3 /usr\n" msgstr "" -"# mount -o rw /dev/ad0s1d /var\n" -"# mount -o rw /dev/ad0s1f /usr\n" +"# mount -o rw /dev/ada0p2 /var\n" +"# mount -o rw /dev/ada0p3 /usr\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:492 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:799 msgid "Edit [.filename]#/etc/fstab# and restore it to its original state:" msgstr "" "Откройте файл [.filename]#/etc/fstab# и приведите его к изначальному виду:" #. type: delimited block . 4 -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:497 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:804 #, no-wrap msgid "" -"/dev/ad0s1f /usr ufs rw 2 2\n" -"/dev/ad0s1d /var ufs rw 2 2\n" +"/dev/ada0p2 /usr ufs rw 2 2\n" +"/dev/ada0p3 /var ufs rw 2 2\n" msgstr "" -"/dev/ad0s1f /usr ufs rw 2 2\n" -"/dev/ad0s1d /var ufs rw 2 2\n" +"/dev/ada0p2 /usr ufs rw 2 2\n" +"/dev/ada0p3 /var ufs rw 2 2\n" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:500 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:807 msgid "" "Finally, edit [.filename]#/boot/loader.conf#, remove the entry that loads " -"the `geom_journal` module and reboot." +"the `geom_journal` module (or re-enable it if gjournal is still required for " +"other partitions), and reboot." msgstr "" "И напоследок, удалите строку, загружающую модуль `geom_journal`, из файла [." -"filename]#/boot/loader.conf# и перезагрузите операционную систему." +"filename]#/boot/loader.conf# (или включите его опять, если он по прежнему " +"требуется для других разделов диска), и перезагрузите операционную систему." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:808 +#, no-wrap +msgid "How do I temporarily boot without GEOM journaling?" +msgstr "Как временно загрузиться без журналирования GEOM?" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:811 +msgid "" +"To boot the system without GEOM journaling, prevent the journal module from " +"loading during startup." +msgstr "" +"Чтобы загрузить систему без журналирования GEOM, предотвратите загрузку " +"модуля журнала во время запуска." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:813 +msgid "" +"Comment out or remove the following line from [.filename]#/boot/loader.conf# " +"and reboot:" +msgstr "" +"Закомментируйте или удалите соответствующую строку из [.filename]#/boot/" +"loader.conf# и перезагрузитесь:" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:821 +msgid "" +"After booting without GEOM journaling, journaled devices (`*.journal`) will " +"not be created. File Systems must be mounted using their original (non-" +"journaled) providers, or mounted manually as needed for recovery or " +"maintenance." +msgstr "" +"После загрузки без журналирования GEOM, журналируемые устройства (`*." +"journal`) не будут созданы. Файловые системы должны быть смонтированы с " +"использованием их исходных (не журналируемых) провайдеров или вручную по " +"мере необходимости для восстановления или обслуживания." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:823 +msgid "" +"This method does not modify on-disk journal metadata and can be safely used " +"for troubleshooting." +msgstr "" +"Этот метод не изменяет метаданные журнала на диске и может безопасно " +"использоваться для устранения неполадок." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:824 +#, no-wrap +msgid "Can I resize a GEOM journal after it has been created?" +msgstr "Можно ли изменить размер журнала GEOM после его создания?" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:827 +msgid "" +"No. A GEOM journal cannot be resized in place after it has been created." +msgstr "" +"Нет. Журнал GEOM не может быть изменен в размере на месте после его создания." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:831 +msgid "" +"The journal size is fixed at the time the journal is labeled. To change the " +"journal size, GEOM journaling must be removed and reconfigured with a new " +"journal provider of the desired size. For file systems containing data, " +"this requires unmounting the file system and recreating the journal using " +"appropriately sized providers, as described earlier in this article." +msgstr "" +"Размер журнала фиксируется в момент выполнения `gjournal label` . Чтобы " +"изменить размер журнала, необходимо удалить журналирование GEOM и " +"переконфигурировать его с новым провайдером журнала желаемого размера. Для " +"файловых систем, содержащих данные, это требует размонтирования файловой " +"системы и воссоздания журнала с использованием провайдеров соответствующего " +"размера, как описано ранее в этой статье." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:833 +msgid "" +"Plan journal sizes conservatively to accommodate peak write activity, as " +"resizing requires reinitialization of the journal configuration." +msgstr "" +"Планируйте размеры журналов консервативно, чтобы они соответствовали пиковой " +"активности записи, так как изменение размера требует повторной инициализации " +"конфигурации журнала." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:834 +#, no-wrap +msgid "What happens after an unclean shutdown or power failure?" +msgstr "Что происходит после некорректного завершения работы или сбоя питания?" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:837 +msgid "" +"After an unclean shutdown or power failure, GEOM journaling and Soft Updates " +"with journaling replay the pending journal records during the next boot to " +"return the file system to a consistent state." +msgstr "" +"После некорректного завершения работы или сбоя питания, журналирование GEOM " +"и Soft Updates с журналированием воспроизводят ожидающие записи журнала во " +"время следующей загрузки, чтобы вернуть файловую систему в согласованное " +"состояние." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:840 +msgid "" +"If the journal replay completes successfully, the file system is mounted " +"normally and no full file system check is required. Journal replay " +"typically takes only a few seconds and depends on the amount of recent write " +"activity rather than the size of the file system." +msgstr "" +"Если восстановление журнала завершается успешно, файловая система " +"монтируется в обычном режиме, и полная проверка файловой системы не " +"требуется. Восстановление журнала обычно занимает всего несколько секунд и " +"зависит от объема недавней активности записи, а не от размера файловой " +"системы." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:842 +msgid "" +"A full file system check may still be required in rare cases, such as when " +"underlying storage errors are detected or the journal itself is inconsistent." +msgstr "" +"Полная проверка файловой системы может потребоваться в редких случаях, " +"например, при обнаружении ошибок в устройстве хранения или несоответствии " +"самого журнала." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:843 +#, no-wrap +msgid "How does GEOM journaling interact with fsck?" +msgstr "Как взаимодействует журналирование GEOM с fsck?" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:846 +msgid "" +"GEOM journaling and Soft Updates with journaling interact with `fsck_ffs(8)` " +"in different ways, reflecting their different integration levels in the " +"FreeBSD storage stack." +msgstr "" +"Журналирование GEOM и Soft Updates с журналированием взаимодействуют с " +"`fsck_ffs(8)` различными способами, отражая их разные уровни интеграции в " +"стеке хранения FreeBSD." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:851 +msgid "" +"For GEOM journaling, crash recovery is performed by the GEOM framework " +"itself. During system startup, the `geom_journal` class detects journal " +"metadata and replays any pending journal records while the provider is being " +"tasted by GEOM, before the journaled device becomes visible to higher layers " +"of the system. If journal replay completes successfully, the file system is " +"returned to a consistent state and the UFS superblock is updated to indicate " +"that no file system check is required. When `fsck_ffs(8)` is later invoked " +"during boot, it reads this state from the superblock and skips the file " +"system check." +msgstr "" +"Для журналирования GEOM восстановление после сбоя выполняется самой " +"структурой GEOM. Во время запуска системы класс `geom_journal` обнаруживает " +"метаданные журнала и воспроизводит все ожидающие записи журнала, пока " +"провайдер обрабатывается GEOM, до того как журналируемое устройство станет " +"видимым для более высоких уровней системы. Если воспроизведение журнала " +"завершается успешно, файловая система возвращается в согласованное " +"состояние, и суперблок UFS обновляется, чтобы указать, что проверка файловой " +"системы не требуется. Когда позже во время загрузки вызывается `fsck_ffs(8)`" +", он считывает это состояние из суперблока и пропускает проверку файловой " +"системы." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:856 +msgid "" +"For Soft Updates with journaling, recovery is initiated by `fsck_ffs(8)` " +"itself. During the file system check phase at boot time, `fsck_ffs(8)` " +"detects that the files ystem supports Soft Updates with journaling and " +"invokes the journal replay logic. If journal replay reports that the file " +"system is consistent, `fsck_ffs(8)` terminates early without performing a " +"full check. If journal replay cannot complete successfully, a traditional " +"file system check is performed." +msgstr "" +"Для Soft Updates с журналированием восстановление инициируется самим " +"`fsck_ffs(8)`. Во время проверки файловой системы при загрузке, `fsck_ffs(8)`" +" обнаруживает, что файловая система поддерживает Soft Updates с " +"журналированием, и запускает логику воспроизведения журнала. Если " +"воспроизведение журнала сообщает, что файловая система непротиворечива, " +"`fsck_ffs(8)` завершается досрочно без выполнения полной проверки. Если " +"воспроизведение журнала не может быть успешно завершено, выполняется " +"традиционная проверка файловой системы." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:858 +msgid "" +"As a result, the recovery path during system startup depends on the " +"journaling mechanism in use, as illustrated by the following boot sequence:" +msgstr "" +"В результате, путь восстановления во время загрузки системы зависит от " +"используемого механизма журналирования, что иллюстрируется следующей " +"последовательностью загрузки:" + +#. type: delimited block - 4 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:885 +#, no-wrap +msgid "" +"Firmware / Boot Loader\n" +" |\n" +" v\n" +"Kernel initialization\n" +" |\n" +" v\n" +"GEOM framework (provider tasting)\n" +" |\n" +" +--> GEOM journaling (gjournal)\n" +" | - Journal replay occurs here\n" +" | - Filesystem consistency is restored\n" +" | - Superblock is updated\n" +" |\n" +" v\n" +"Filesystem check phase (fsck_ffs)\n" +" |\n" +" +--> Soft Updates with journaling\n" +" | - Journal replay initiated by fsck\n" +" | - fsck exits early if consistent\n" +" |\n" +" v\n" +"Filesystem mount\n" +" |\n" +" v\n" +"Normal system operation\n" +msgstr "" +"Загрузчик системы\n" +" |\n" +" v\n" +"Инициализация ядра\n" +" |\n" +" v\n" +"Фреймворк GEOM framework (обнаружение поставщиков - tasting)\n" +" |\n" +" +--> Журналирование GEOM (gjournal)\n" +" | - Выполнение записи на диск из журнала выполняется на этом " +"этапе\n" +" | - Согласованность файловой системы восстановлена\n" +" | - Суперблок обновлен\n" +" |\n" +" v\n" +"Фаза проверки файловой системы (fsck_ffs)\n" +" |\n" +" +--> Журналирование с Soft Updates\n" +" | - Выполнение записи на диск из журнала, инициированное " +"командой fsck\n" +" | - fsck сразу выходит, если файловая система в согласованном " +"состоянии\n" +" |\n" +" v\n" +"Монтирование файловой системы\n" +" |\n" +" v\n" +"Обычная работа системы\n" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:889 +msgid "" +"`fsck_ffs(8)` is still used when journal replay cannot be completed, when " +"underlying storage errors are detected, or during periodic manual or " +"scheduled file system checks. GEOM journaling reduces recovery time after " +"crashes but does not replace `fsck_ffs(8)` entirely." +msgstr "" +"`fsck_ffs(8)` всё ещё используется, когда восстановление журнала не может " +"быть завершено, при обнаружении ошибок базового хранилища или во время " +"периодических ручных или запланированных проверок файловой системы. " +"Журналирование GEOM сокращает время восстановления после сбоев, но не " +"заменяет `fsck_ffs(8)` полностью." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:890 +#, no-wrap +msgid "Why does `gjournal clear` report \"Operation not permitted\" even in single-user mode?" +msgstr "" +"Почему команда `gjournal clear` сообщает \"Операция не разрешена\" даже в " +"однопользовательском режиме?" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:895 +msgid "" +"In GEOM, the same underlying storage can be exposed through multiple " +"provider names at the same time. For example, a partition may be visible " +"both under its disk-based name (e.g. `vtbd0p7`) and under a GPT label (e.g. " +"`/dev/gpt/labelname`). These are different GEOM providers referring to the " +"same physical storage." +msgstr "" +"В GEOM одно и то же базовое хранилище может быть представлено через " +"несколько имён провайдеров одновременно. Например, раздел может быть виден " +"как под своим именем, основанным на диске (например, `vtbd0p7`), так и под " +"меткой GPT (например, `/dev/gpt/labelname`). Это разные провайдеры GEOM, " +"ссылающиеся на одно и то же физическое хранилище." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:898 +msgid "" +"When `gjournal stop` or `gjournal clear` is executed on one provider name, " +"the GEOM framework may immediately detect the journal metadata again through " +"another provider name during the tasting process. As a result, the journal " +"is re-attached automatically, and attempts to clear its metadata fail with " +"an \"Operation not permitted\" error." +msgstr "" +"Когда команды `gjournal stop` или `gjournal clear` выполняются на одном " +"имени провайдера, фреймворк GEOM может немедленно снова обнаружить " +"метаданные журнала через другое имя провайдера в процессе распознавание " +"устройства (tasting). В результате журнал автоматически повторно " +"присоединяется, и попытки очистить его метаданные завершаются ошибкой " +"\"Операция не разрешена\"." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:901 +msgid "" +"It is technically possible to suppress this behavior by disabling GEOM " +"tasting or by preventing the creation of alternative provider names, but " +"doing so is strongly discouraged. Such changes may negatively affect other " +"GEOM classes and system components that rely on normal provider discovery." +msgstr "" +"Технически возможно подавить это поведение, отключив GEOM tasting или " +"предотвратив создание альтернативных имён провайдеров, однако это крайне не " +"рекомендуется. Такие изменения могут негативно повлиять на другие классы " +"GEOM и системные компоненты, которые полагаются на обычное обнаружение " +"провайдеров." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:904 +msgid "" +"For this reason, the recommended and safe procedure is to unload the " +"`geom_journal` module entirely before removing journal metadata, as " +"described earlier in this article. With the module unloaded, no tasting " +"occurs and the journal cannot be re-attached, allowing `gjournal clear` to " +"complete successfully." +msgstr "" +"По этой причине рекомендованная и безопасная процедура заключается в полной " +"выгрузке модуля `geom_journal` перед удалением журнальных метаданных, как " +"описано ранее в этой статье. При выгруженном модуле не происходит " +"автоматического распознавания, и журнал не может быть повторно подключен, " +"что позволяет команде `gjournal clear` завершиться успешно." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:905 +#, no-wrap +msgid "Can GEOM journaling be used on the root file system?" +msgstr "Можно ли использовать журналирование GEOM на корневой файловой системе?" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:908 +msgid "" +"Yes. GEOM journaling can be used on the root file system, but it requires " +"additional care during system configuration." +msgstr "" +"Да. Журналирование GEOM может использоваться на корневой файловой системе, " +"но требует дополнительной осторожности при настройке системы." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:911 +msgid "" +"The GEOM journal module must be loaded early during the boot process so that " +"the journaled root device is available before the root file system is " +"mounted. Misconfiguration may prevent the system from booting normally, so " +"this setup is generally recommended only for experienced users who fully " +"understand the boot sequence and recovery procedures." +msgstr "" +"Модуль GEOM journal должен быть загружен на раннем этапе процесса загрузки, " +"чтобы журналируемое корневое устройство было доступно до монтирования " +"корневой файловой системы. Неправильная конфигурация может помешать системе " +"загрузиться в обычном режиме, поэтому данная настройка, как правило, " +"рекомендуется только опытным пользователям, которые полностью понимают " +"последовательность загрузки и процедуры восстановления." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:913 +msgid "" +"For these reasons, GEOM journaling is more commonly applied to non-root file " +"systems such as `/usr` and `/var`." +msgstr "" +"По этим причинам журналирование GEOM чаще применяется к некорневым файловым " +"системам, таким как `/usr` и `/var`." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:914 +#, no-wrap +msgid "What are the performance implications of using GEOM journaling?" +msgstr "" +"Каковы последствия для производительности при использовании журналирования " +"GEOM?" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:918 +msgid "" +"GEOM journaling introduces additional write I/O because all write operations " +"are first recorded in the journal before being committed to the data " +"provider. This results in increased write latency and higher overall write " +"amplification compared to non-journaled file systems." +msgstr "" +"Ведение журнала GEOM вводит дополнительные операции записи ввода-вывода, " +"поскольку все операции записи сначала регистрируются в журнале перед " +"фиксацией на устройстве хранения данных. Это приводит к увеличению задержки " +"записи и более высокому коэффициенту увеличения объёма записи по сравнению с " +"файловыми системами без журналирования." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:922 +msgid "" +"Read performance is typically unaffected. The performance impact is most " +"noticeable on write-heavy workloads and depends on journal size, placement, " +"and the speed of the underlying storage. Using a sufficiently sized journal " +"and fast storage for the journal provider minimizes performance penalties." +msgstr "" +"Производительность чтения обычно не страдает. Наиболее заметное влияние на " +"производительность наблюдается при интенсивных нагрузках на запись и зависит " +"от размера журнала, его размещения и скорости базового хранилища. " +"Использование журнала достаточного размера и быстрого хранилища для " +"поставщика журнала минимизирует потери в производительности." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:923 +#, no-wrap +msgid "Can GEOM journaling be used together with other GEOM classes?" +msgstr "" +"Может ли журналирование GEOM использоваться вместе с другими классами GEOM?" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:926 +msgid "Yes. GEOM journaling can be stacked with other GEOM classes." +msgstr "Да. GEOM журналирование может быть объединено с другими классами GEOM." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:929 +msgid "" +"When used together, GEOM journaling typically operates on top of providers " +"created by other GEOM classes such as `gmirror(8)` or `graid3(8)`. The " +"order of stacking is important and should follow the documented layering " +"requirements of the involved GEOM classes." +msgstr "" +"При совместном использовании журналирование GEOM обычно работает поверх " +"провайдеров, созданных другими классами GEOM, такими как `gmirror(8)` или " +"`graid3(8)`. Порядок наложения важен и должен соответствовать " +"задокументированным требованиям к слоям задействованных классов GEOM." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:931 +msgid "" +"GEOM journaling maintains file system consistency across the stacked " +"providers, but it does not replace redundancy or error detection provided by " +"other GEOM classes." +msgstr "" +"GEOM журналирование обеспечивает целостность файловой системы на всех " +"уровнях поставщиков, но не заменяет избыточность или обнаружение ошибок, " +"предоставляемые другими классами GEOM." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:932 +#, no-wrap +msgid "Can GEOM journaling and Soft Updates be enabled at the same time?" +msgstr "Можно ли одновременно включить журналирование GEOM и Soft Updates?" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:935 +msgid "" +"No. GEOM journaling and Soft Updates must not be enabled at the same time on " +"the same file system." +msgstr "" +"Нет. GEOM журналирование и Soft Updates не должны быть включены одновременно " +"на одной файловой системе." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:938 +msgid "" +"GEOM journaling requires exclusive control over write ordering and " +"consistency guarantees. If Soft Updates are enabled together with GEOM " +"journaling, the file system may behave unpredictably and data integrity " +"cannot be guaranteed." +msgstr "" +"GEOM журналирование требует исключительного контроля над порядком записи и " +"гарантиями согласованности. Если Soft Updates включены вместе с GEOM " +"журналированием, файловая система может вести себя непредсказуемо, и " +"целостность данных не может быть гарантирована." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:940 +msgid "" +"When using GEOM journaling, Soft Updates must be disabled on the affected " +"file system, as described earlier in this article." +msgstr "" +"При использовании журналирования GEOM необходимо отключить Soft Updates на " +"затронутой файловой системе, как описано ранее в этой статье." + +#. type: Title === +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:942 +#, no-wrap +msgid "What is the difference between Soft Updates and Soft Updates with Journaling?" +msgstr "В чем разница между Soft Updates и Soft Updates с журналированием?" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:945 +msgid "" +"Both Soft Updates and Soft Updates with Journaling are designed to maintain " +"file system consistency, but they use different mechanisms and behave " +"differently after a system crash." +msgstr "" +"Как Soft Updates, так и Soft Updates with Journaling предназначены для " +"поддержания целостности файловой системы, но используют разные механизмы и " +"ведут себя по-разному после сбоя системы." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:949 +msgid "" +"_Soft Updates_ ensure consistency by carefully ordering metadata writes in " +"memory so that only safe states are written to disk. If a crash occurs, any " +"metadata updates that have not yet been written are simply lost, leaving the " +"file system in a consistent but possibly older state. However, resource " +"accounting may be temporarily inaccurate, and a full `fsck_ffs(8)` run is " +"required to reclaim unused blocks and inodes." +msgstr "" +"_Soft Updates_ обеспечивают целостность за счёт тщательного упорядочивания " +"записи метаданных в памяти, так что на диск записываются только безопасные " +"состояния. При сбое любые обновления метаданных, ещё не записанные на диск, " +"просто теряются, оставляя файловую систему в целостном, но, возможно, более " +"старом состоянии. Однако учёт ресурсов может временно быть неточным, и для " +"освобождения неиспользуемых блоков и индексных дескрипторов требуется полный " +"запуск `fsck_ffs(8)`." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:953 +msgid "" +"_Soft Updates with Journaling_ build on top of _Soft Updates_ by adding a " +"metadata journal stored within the file system. Metadata changes are first " +"recorded in the journal and are replayed automatically during the next boot " +"after an unclean shutdown. This allows the file system to be restored to a " +"consistent state quickly, usually without requiring a full `fsck_ffs(8)` run." +msgstr "" +"_Soft Updates с журналированием_ расширяют функциональность _Soft Updates _, " +"добавляя журнал метаданных, хранящийся в файловой системе. Изменения " +"метаданных сначала записываются в журнал и автоматически воспроизводятся при " +"следующей загрузке после некорректного завершения работы. Это позволяет " +"быстро восстановить файловую систему в согласованное состояние, обычно без " +"необходимости полного запуска `fsck_ffs(8)`." + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:955 +msgid "" +"In short, _Soft Updates_ provide consistency without a journal, while _Soft " +"Updates with Journaling_ add fast and automatic recovery after crashes at " +"the cost of additional disk space and minor performance overhead." +msgstr "" +"Короче говоря, _Soft Updates_ обеспечивают согласованность без " +"журналирования, тогда как _Soft Updates с журналированием_ добавляют быстрое " +"и автоматическое восстановление после сбоев ценой дополнительного дискового " +"пространства и незначительного снижения производительности." #. type: Title == -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:502 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:958 #, no-wrap msgid "Further Reading" msgstr "Для дальнейшего ознакомления" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:506 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:962 msgid "" "Journaling is a fairly new feature of FreeBSD, and as such, it is not very " "well documented yet. You may however find the following additional " "references useful:" msgstr "" "Журналирование - относительно новая функциональная возможность FreeBSD, и " -"как такова, она еще недостаточно документирована. Однако, вы можете сочти " -"полезными следующие источники:" +"она ещё недостаточно документирована. Однако, могут быть полезными следующие " +"источники:" #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:508 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:964 msgid "" -"A extref:{handbook}geom[new section on journaling, geom-gjournal] is now " -"part of the FreeBSD Handbook." +"A extref:{handbook}geom[section on journaling, geom-gjournal] is now part of " +"the FreeBSD Handbook." msgstr "" -"Новый extref:{handbook}geom[раздел Руководства FreeBSD, geom-gjournal], " +"extref:{handbook}geom[Раздел Руководства FreeBSD, geom-gjournal], " "посвященный журналированию." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:509 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:965 msgid "" "https://lists.freebsd.org/pipermail/freebsd-current/2006-June/064043." "html[This post] in {freebsd-current} by man:gjournal[8]'s developer, `{pjd}`." msgstr "" "http://lists.freebsd.org/pipermail/freebsd-current/2006-June/064043." "html[Этот пост] в списке рассылки {freebsd-current}, написанный `{pjd}` - " "автором man:gjournal[8]." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:510 +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:966 msgid "" "https://lists.freebsd.org/pipermail/freebsd-questions/2008-April/173501." "html[This post] in {freebsd-questions} by `{ivoras}`." msgstr "" "http://lists.freebsd.org/pipermail/freebsd-questions/2008-April/173501." "html[Этот пост] от `{ivoras}` в списке рассылки {freebsd-questions}." #. type: Plain text -#: documentation/content/en/articles/gjournal-desktop/_index.adoc:510 -msgid "The manual pages of man:gjournal[8] and man:geom[8]." -msgstr "Страницы справочника man:gjournal[8] и man:geom[8]." +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:967 +msgid "" +"https://www.youtube.com/watch?v=_NuhRkiInvA[Journaled Soft-Updates, Dr. Kirk " +"McKusick, BSDCan 2010] on YouTube" +msgstr "" +"https://www.youtube.com/watch?v=_NuhRkiInvA[Journaled Soft-Updates, Dr. Kirk " +"McKusick, BSDCan 2010] на YouTube" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:968 +msgid "" +"https://www.youtube.com/watch?v=xMpmOezBJZo[GEOM - in Infrastructure We " +"Trust, Pawel Jakub Dawidek, AsiaBSDCon 2008] on YouTube" +msgstr "" +"https://www.youtube.com/watch?v=xMpmOezBJZo[GEOM - in Infrastructure We " +"Trust, Pawel Jakub Dawidek, AsiaBSDCon 2008] на YouTube" + +#. type: Plain text +#: documentation/content/en/articles/gjournal-desktop/_index.adoc:968 +msgid "The manual pages of man:gjournal[8], man:geom[8], and man:tunefs[8]." +msgstr "Страницы Справочника man:gjournal[8], man:geom[8] и man:tunefs[8]." + +#~ msgid "" +#~ "The new journaling capability provided by GEOM can greatly assist in such " +#~ "scenarios, by virtually eliminating the time required for file system " +#~ "checking, and ensuring that the file system is quickly restored to a " +#~ "consistent state." +#~ msgstr "" +#~ "Новая возможность журналирования, предоставленная системой GEOM, может " +#~ "существенно выручить в подобных случаях, исключая время, необходимое для " +#~ "проверки файловых систем и удостовериваясь, что файловая система быстро " +#~ "восстановлена в целостное состояние." + +#~ msgid "" +#~ "This article describes a procedure for implementing UFS journaling on a " +#~ "typical desktop PC scenario (one hard disk used for both operating system " +#~ "and data). It should be followed during a fresh installation of " +#~ "FreeBSD. The steps are simple enough and do not require overly complex " +#~ "interaction with the command line." +#~ msgstr "" +#~ "Эта статья описывает порядок действий, необходимых для конфигурирования " +#~ "журналирования UFS на типичном настольном компьютере, в котором один " +#~ "жёсткий диск используется для размещения как операционной системы, так и " +#~ "данных. В статье подразумевается установка FreeBSD \"с нуля\". Шаги " +#~ "достаточно просты и не требуют чрезмерно сложных манипуляций с командной " +#~ "строкой." + +#~ msgid "After reading this article, you will know:" +#~ msgstr "После прочтения данной статьи вы будете знать:" + +#~ msgid "" +#~ "How to reserve space for journaling during a new installation of FreeBSD." +#~ msgstr "" +#~ "Как зарезервировать место для журнала во время новой установки FreeBSD." + +#~ msgid "" +#~ "How to load and enable the `geom_journal` module (or build support for it " +#~ "in your custom kernel)." +#~ msgstr "" +#~ "Как загрузить модуль `geom_journal` (или включить поддержку " +#~ "журналирования в специализированном ядре системы)." + +#~ msgid "" +#~ "How to convert your existing file systems to utilize journaling, and what " +#~ "options to use in [.filename]#/etc/fstab# to mount them." +#~ msgstr "" +#~ "Как преобразовать существующую файловую систему, в систему, использующую " +#~ "журналирование, и какие опции монтирования использовать в [.filename]#/" +#~ "etc/fstab#." + +#~ msgid "How to implement journaling in new (empty) partitions." +#~ msgstr "Как реализовать журналирование на новых (пустых) разделах." + +#~ msgid "" +#~ "The procedure described here is intended for preparing a new installation " +#~ "where no actual user data is stored on the disk yet. While it is " +#~ "possible to modify and extend this procedure for systems already in " +#~ "production, you should _backup_ all important data before doing so. " +#~ "Messing around with disks and partitions at a low level can lead to fatal " +#~ "mistakes and data loss." +#~ msgstr "" +#~ "Процедура, описанная здесь, подразумевает подготовку к новой установке, в " +#~ "которой на дисках ещё нет пользовательских данных. Так как эту процедуру " +#~ "можно модифицировать и расширить на системы, которые уже используются, " +#~ "вам настоятельно рекомендуется сделать _резервную копию_ всех ценных " +#~ "данных. Путаница в низкоуровневых операциях с дисками и разделами может " +#~ "привести к фатальным ошибкам и потере данных." + +#~ msgid "" +#~ "The journaling provided by GEOM in FreeBSD 7._X_ is not file system " +#~ "specific (unlike for example the ext3 file system in Linux(R)) but is " +#~ "functioning at the block level. Though this means it can be applied to " +#~ "different file systems, for FreeBSD 7.0-RELEASE, it can only be used on " +#~ "UFS2." +#~ msgstr "" +#~ "Журналирование, предоставляемое системой GEOM в FreeBSD 7._X_, не " +#~ "является особенностью файловой системы (в отличие от, например, файловой " +#~ "системы ext3 в Linux(R)), оно функционирует на блочном уровне. А это " +#~ "значит, что оно может быть применено к разным типам файловых систем, " +#~ "однако для FreeBSD 7.0-RELEASE журналирование может быть применено только " +#~ "для UFS2." + +#~ msgid "" +#~ "When a file system is journaled, some disk space is needed to keep the " +#~ "journal itself. The disk space that holds the actual data is referred to " +#~ "as the __data provider__, while the one that holds the journal is " +#~ "referred to as the __journal provider__. The data and journal providers " +#~ "need to be on different partitions when journaling an existing (non-" +#~ "empty) partition. When journaling a new partition, you have the option " +#~ "to use a single provider for both data and journal. In any case, the " +#~ "`gjournal` command combines both providers to create the final journaled " +#~ "file system. For example:" +#~ msgstr "" +#~ "Когда файловая система журналируется, некоторая часть дискового " +#~ "пространства требуется для хранения самого журнала. Дисковое " +#~ "пространство, содержащее данные, называется __поставщиком данных (data " +#~ "provider)__, а часть пространства, содержащая журнал, называется " +#~ "__поставщиком журнала (journal provider)__. Поставщики данных и журнала " +#~ "должны быть на разных разделах, если журналирование достраивается к " +#~ "содержащему данные разделу. А если журналирование включается для нового " +#~ "раздела, у вас есть возможность использовать один поставщик для данных и " +#~ "журнала. В любом из двух вышеупомянутых случаев команда `gjournal` " +#~ "задействует поставщики и создаст конечную журналируемую файловую систему. " +#~ "Например:" + +#~ msgid "" +#~ "You wish to journal your [.filename]#/usr# file system, stored in [." +#~ "filename]#/dev/ad0s1f# (which already contains data)." +#~ msgstr "" +#~ "Вы намереваетесь журналировать файловую систему [.filename]#/usr#, " +#~ "размещенную на [.filename]#/dev/ad0s1f#, файловая система уже содержит " +#~ "данные." + +#~ msgid "" +#~ "You reserved some free disk space in a partition in [.filename]#/dev/" +#~ "ad0s1g#." +#~ msgstr "" +#~ "Вы зарезервировали часть дискового пространства на разделе [.filename]#/" +#~ "dev/ad0s1g#." + +#~ msgid "" +#~ "The amount of disk space you need to reserve for the journal provider " +#~ "depends on the usage load of the file system and not on the size of the " +#~ "data provider. For example on a typical office desktop, a 1 GB journal " +#~ "provider for the [.filename]#/usr# file system will suffice, while a " +#~ "machine that deals with heavy disk I/O (i.e. video editing) may need " +#~ "more. A kernel panic will occur if the journal space is exhausted before " +#~ "it has a chance to be committed." +#~ msgstr "" +#~ "Размер дискового пространства, отводимого под поставщик журнала, зависит " +#~ "от нагруженности файловой системы, а не от размера самого поставщика " +#~ "данных. Например, для типичного настольного компьютера достаточно отвести " +#~ "1 Гб под поставщик журнала для файловой системы [.filename]#/usr#, в то " +#~ "время как компьютеру, имеющему интенсивный дисковый ввод/вывод (например, " +#~ "редактирование видео) может потребоваться больше. Если свободное место на " +#~ "поставщике журнала заканчивается раньше, чем происходит сброс журнала на " +#~ "диск, - вы получите панику ядра." + +#~ msgid "" +#~ "The journal sizes suggested here, are highly unlikely to cause problems " +#~ "in typical desktop use (such as web browsing, word processing and " +#~ "playback of media files). If your workload includes intense disk " +#~ "activity, use the following rule for maximum reliability: Your RAM size " +#~ "should fit in 30% of the journal provider's space. For example, if your " +#~ "system has 1 GB RAM, create an approximately 3.3 GB journal provider. " +#~ "(Multiply your RAM size with 3.3 to obtain the size of the journal)." +#~ msgstr "" +#~ "Очень маловероятно то, что размеры журнала, предложенные здесь, станут " +#~ "причиной проблем с обычным настольным компьютером (на котором вы " +#~ "просматриваете веб-страницы, обрабатываете текст или проигрываете " +#~ "мультимедийные файлы). Если работа вашего компьютера подразумевает " +#~ "интенсивную дисковую активность, то для обеспечения стабильности следует " +#~ "придерживаться следующего правила: размер ОЗУ должен уместиться в 30% " +#~ "размера, отведенного под журнал. Например, если в вашем компьютере " +#~ "установлен 1 Гб ОЗУ, создайте под поставщик журнала раздел размером около " +#~ "3.3 Гб. (Умножьте размер ОЗУ в 3.3 раза, чтоб получить размер журнала)." + +#~ msgid "" +#~ "A typical desktop machine usually has one hard disk that stores both the " +#~ "OS and user data. Arguably, the default partitioning scheme selected by " +#~ "sysinstall is more or less suitable: A desktop machine does not need a " +#~ "large [.filename]#/var# partition, while [.filename]#/usr# is allocated " +#~ "the bulk of the disk space, since user data and a lot of packages are " +#~ "installed into its subdirectories." +#~ msgstr "" +#~ "Типичный настольный компьютер обычно имеет один жёсткий диск, на котором " +#~ "хранится как операционная система, так и пользовательские данные. " +#~ "Вероятно, что схема разбития винчестера (по умолчанию), выбранная в меню " +#~ "Sysinstall, является более или менее подходящей: настольному компьютеру " +#~ "не требуется большой раздел [.filename]#/var#, в то время, как для " +#~ "раздела [.filename]#/usr# выделяется значительный объём дискового " +#~ "пространства, ввиду того, что пользовательские данные и множество пакетов " +#~ "инсталлируются в подкаталоги [.filename]#/usr#." + +#~ msgid "" +#~ "The default partitioning (the one obtained by pressing kbd:[A] at the " +#~ "FreeBSD partition editor, called Disklabel) does not leave any " +#~ "unallocated space. Each partition that will be journaled, requires " +#~ "another partition for the journal. Since the [.filename]#/usr# partition " +#~ "is the largest, it makes sense to shrink this partition slightly, to " +#~ "obtain the space required for journaling." +#~ msgstr "" +#~ "Разбиение по умолчанию (получаемое при нажатии kbd:[A] в редакторе " +#~ "разделов FreeBSD, называемом Disklabel) не оставляет свободного места. " +#~ "Каждый подлежащий журналированию раздел требует отдельного раздела для " +#~ "журнала. Ввиду того, что раздел [.filename]#/usr# - наибольший, есть " +#~ "смысл немного уменьшить его размер, чтобы получить пространство, " +#~ "необходимое для журнала." + +#~ msgid "" +#~ "In our example, an 80 GB disk is used. The following screenshot shows " +#~ "the default partitions created by Disklabel during installation:" +#~ msgstr "" +#~ "В нашем примере используется жёсткий диск размером 80 Гб. Следующий " +#~ "скриншот показывает результаты разбиения по умолчанию, выполненного при " +#~ "помощи Disklabel в процессе установки операционной системы:" + +#, no-wrap +#~ msgid "disklabel1.png" +#~ msgstr "disklabel1.png" + +#~ msgid "" +#~ "If this is more or less what you need, it is very easy to adjust for " +#~ "journaling. Simply use the arrow keys to move the highlight to the [." +#~ "filename]#/usr# partition and press kbd:[D] to delete it." +#~ msgstr "" +#~ "Если это разбиение более или менее вас устраивает, то его легко " +#~ "модифицировать для журналирования. Используйте клавиши со стрелками для " +#~ "того, чтобы выделить раздел, отведенный под [.filename]#/usr#, потом " +#~ "нажмите kbd:[D] чтобы удалить его." + +#~ msgid "" +#~ "Now, move the highlight to the disk name at the top of the screen and " +#~ "press kbd:[C] to create a new partition for [.filename]#/usr#. This new " +#~ "partition should be smaller by 1 GB (if you intend to journal [." +#~ "filename]#/usr# only), or 2 GB (if you intend to journal both [." +#~ "filename]#/usr# and [.filename]#/var#). From the pop-up that appears, " +#~ "opt to create a file system, and type [.filename]#/usr# as the mount " +#~ "point." +#~ msgstr "" +#~ "Теперь переведите подсвечивание к имени диска, находящемуся вверху " +#~ "экрана, и нажмите kbd:[C] - создайте новый раздел [.filename]#/usr#. " +#~ "Новый раздел должен быть меньше на 1 Гб (если вы собираетесь " +#~ "журналировать только [.filename]#/usr#) или на 2 Гб (если журналированию " +#~ "подлежат как [.filename]#/usr#, так и [.filename]#/var#). Во всплывающем " +#~ "окне выберите \"создать файловую систему\" и укажите [.filename]#/usr# " +#~ "точкой монтирования." + +#~ msgid "" +#~ "Should you journal the [.filename]#/var# partition? Normally, journaling " +#~ "makes sense on quite large partitions. You may decide not to journal [." +#~ "filename]#/var#, although doing so on a typical desktop will cause no " +#~ "harm. If the file system is lightly used (quite probable for a desktop) " +#~ "you may wish to allocate less disk space for its journal." +#~ msgstr "" +#~ "Следует ли журналировать [.filename]#/var# раздел? Обычно есть смысл " +#~ "журналировать большие разделы. Вы можете решить не журналировать [." +#~ "filename]#/var#, однако журналирование на обычном настольном компьютере " +#~ "не причинит вреда. Если файловая система не нагружена (что типично для " +#~ "настольной системы), то можно выделить меньше дискового пространства под " +#~ "журнал." + +#~ msgid "" +#~ "In our example, we journal both [.filename]#/usr# and [.filename]#/var#. " +#~ "You may of course adjust the procedure to your own needs." +#~ msgstr "" +#~ "В этом примере подразумевается журналирование двух файловых систем: [." +#~ "filename]#/usr# и [.filename]#/var#. Естественно, вы можете " +#~ "подкорректировать процедуру под свои задачи." + +#~ msgid "" +#~ "To keep things as easy going as possible, we are going to use sysinstall " +#~ "to create the partitions required for journaling. However, during " +#~ "installation, sysinstall insists on asking a mount point for each " +#~ "partition you create. At this point, you do not have any mount points " +#~ "for the partitions that will hold the journals, and in reality you __do " +#~ "not even need them__. These are not partitions that we are ever going to " +#~ "mount somewhere." +#~ msgstr "" +#~ "Чтобы не усложнять описываемую методику, для создания разделов, " +#~ "необходимых для размещения журналов, мы будем использовать утилиту " +#~ "Sysinstall. Однако, во время установки утилита Sysinstall требует " +#~ "указания точек монтирования для каждого созданного вами раздела. Но " +#~ "разделы, содержащие журналы, вам никогда и никуда монтировать не придется." + +#~ msgid "" +#~ "To avoid these problems with sysinstall, we are going to create the " +#~ "journal partitions as swap space. Swap is never mounted, and sysinstall " +#~ "has no problem creating as many swap partitions as needed. After the " +#~ "first reboot, [.filename]#/etc/fstab# will have to be edited, and the " +#~ "extra swap space entries removed." +#~ msgstr "" +#~ "Чтобы избежать вопросов о точках монтирования, мы создадим разделы под " +#~ "журналы и установим их тип в swap. Раздел, предназначенный для свопа, " +#~ "никогда и никуда не монтируется, плюс к тому, утилита Sysinstall " +#~ "позволяет создавать столько разделов под своп, сколько необходимо. После " +#~ "первой перезагрузки необходимо подредактировать файл [.filename]#/etc/" +#~ "fstab#, удалив в нём лишние записи о своп-разделах." + +#~ msgid "" +#~ "To create the swap, again use the arrow keys to move the highlight to the " +#~ "top of Disklabel screen, so that the disk name itself is highlighted. " +#~ "Then press kbd:[N], enter the desired size (_1024M_), and select \"swap " +#~ "space\" from the pop-up menu that appears. Repeat for every journal you " +#~ "wish to create. In our example, we create two partitions to provide for " +#~ "the journals of [.filename]#/usr# and [.filename]#/var#. The final " +#~ "result is shown in the following screenshot:" +#~ msgstr "" +#~ "Для создания своп-раздела, используя клавиши со стрелками, перемещайте " +#~ "подсвечивание к верхней части экрана в утилите Disklabel так, чтобы стало " +#~ "подсвеченным имя диска. Потом, нажмите kbd:[N], введите необходимый " +#~ "размер раздела (_1024M_), а после - выберите во всплывшем окне \"swap " +#~ "space\". Повторите эти шаги для всех оставшихся журналов. В этом примере " +#~ "мы создаем два раздела, на которых будут размещаться журналы для [." +#~ "filename]#/usr# и [.filename]#/var#. Конечный результат показан на " +#~ "следующем скриншоте:" + +#, no-wrap +#~ msgid "disklabel2.png" +#~ msgstr "disklabel2.png" + +#~ msgid "" +#~ "When you have completed creating the partitions, we suggest you write " +#~ "down the partition names, and mount points, so you can easily refer to " +#~ "this information during the configuration phase. This will help " +#~ "alleviate mistakes that may damage your installation. The following " +#~ "table shows our notes for the sample configuration:" +#~ msgstr "" +#~ "По завершении создания разделов мы рекомендуем вам записать на бумагу " +#~ "названия разделов и их точек монтирования: с этой информацией вы будете " +#~ "сверяться во время конфигурирования. Это также поможет уменьшить " +#~ "количество ошибок, приводящих к повреждению установки. Следующая табличка " +#~ "отображает наши заметки, сделанные для данного примера:" + +#, no-wrap +#~ msgid "Mount Point" +#~ msgstr "Точка монтирования" + +#, no-wrap +#~ msgid "ad0s1d" +#~ msgstr "ad0s1d" + +#, no-wrap +#~ msgid "ad0s1h" +#~ msgstr "ad0s1h" + +#, no-wrap +#~ msgid "ad0s1f" +#~ msgstr "ad0s1f" + +#, no-wrap +#~ msgid "ad0s1g" +#~ msgstr "ad0s1g" + +#~ msgid "" +#~ "Continue the installation as you would normally do. We would however " +#~ "suggest you postpone installation of third party software (packages) " +#~ "until you have completely setup journaling." +#~ msgstr "" +#~ "Дальше продолжайте обычную установку. Однако, мы рекомендуем вам отложить " +#~ "инсталляцию приложений сторонних разработчиков (пакетов) до полной " +#~ "настройки журналирования." + +#, no-wrap +#~ msgid "Booting for the first time" +#~ msgstr "Первая загрузка" + +#~ msgid "" +#~ "Your system will come up normally, but you will need to edit [.filename]#/" +#~ "etc/fstab# and remove the extra swap partitions you created for the " +#~ "journals. Normally, the swap partition you will actually use is the one " +#~ "with the \"b\" suffix (i.e. ad0s1b in our example). Remove all other " +#~ "swap space entries and reboot so that FreeBSD will stop using them." +#~ msgstr "" +#~ "Ваша система загрузится нормально, однако вам необходимо будет " +#~ "подредактировать [.filename]#/etc/fstab# и удалить те лишние своп-" +#~ "разделы, которые вы создавали под журналы. Как правило, в названии файла " +#~ "устройства, созданного автоматически утилитой Sysinstall, присутствует " +#~ "суффикс \"b\" (в нашем примере это ad0s1b). Удалите другие записи о своп-" +#~ "разделах и перезагрузите компьютер, после чего FreeBSD перестанет их " +#~ "использовать." + +#~ msgid "" +#~ "Having prepared all the required partitions, it is quite easy to " +#~ "configure journaling. We will need to switch to single user mode, so " +#~ "login as `root` and type:" +#~ msgstr "" +#~ "Подготовив необходимые разделы, перейдем к конфигурированию " +#~ "журналирования. Нам будет необходимо загрузиться в однопользовательском " +#~ "режиме, для этого залогинимся пользователем `root` и напечатаем:" + +#~ msgid "Load the module required for journaling:" +#~ msgstr "Загрузите модуль ядра, необходимый для журналирования:" + +#~ msgid "" +#~ "Now, use your notes to determine which partition will be used for each " +#~ "journal. In our example, [.filename]#/usr# is [.filename]#ad0s1f# and " +#~ "its journal will be [.filename]#ad0s1g#, while [.filename]#/var# is [." +#~ "filename]#ad0s1d# and will be journaled to [.filename]#ad0s1h#. The " +#~ "following commands are required:" +#~ msgstr "" +#~ "На данном этапе сверьтесь со своими записями и определите, какие разделы " +#~ "будут использоваться под какой журнал. В нашем примере [.filename]#/usr# " +#~ "располагается на [.filename]#ad0s1f#, а его журнал будет располагаться на " +#~ "[.filename]#ad0s1g#, и, по аналогии, для [.filename]#/var#: файловая " +#~ "система располагается на [.filename]#ad0s1d#, а её журнал - на [." +#~ "filename]#ad0s1h#. Наберите следующие команды:" + +#~ msgid "" +#~ "If the last sector of either partition is used, `gjournal` will return an " +#~ "error. You will have to run the command using the `-f` flag to force an " +#~ "overwrite, i.e.:" +#~ msgstr "" +#~ "Если последний сектор любого из двух разделов (поставщиков данных) " +#~ "используется, команда `gjournal` возвратит ошибку. Вам необходимо будет " +#~ "использовать флаг `-F` для принудительной перезаписи, например:" + +#~ msgid "" +#~ "Since this is a new installation, it is highly unlikely that anything " +#~ "will be actually overwritten." +#~ msgstr "" +#~ "Так как это - новая установка, очень маловероятен факт, что что-нибудь " +#~ "будет действительно переписано." + +#~ msgid "" +#~ "At this point, two new devices are created, namely [.filename]#ad0s1d." +#~ "journal# and [.filename]#ad0s1f.journal#. These represent the [." +#~ "filename]#/var# and [.filename]#/usr# partitions we have to mount. " +#~ "Before mounting, we must however set the journal flag on them and clear " +#~ "the Soft Updates flag:" +#~ msgstr "" +#~ "На данном этапе созданы два устройства: [.filename]#ad0s1d.journal# и [." +#~ "filename]#ad0s1f.journal#. Они представляют [.filename]#/var# и [." +#~ "filename]#/usr# соответственно. Перед монтированием, нам необходимо " +#~ "установить флаг журналирования и снять флаг механизма Soft Updates:" + +#, no-wrap +#~ msgid "" +#~ "# tunefs -J enable -n disable ad0s1d.journal\n" +#~ "tunefs: gjournal set\n" +#~ "tunefs: soft updates cleared\n" +#~ msgstr "" +#~ "# tunefs -J enable -n disable ad0s1d.journal\n" +#~ "tunefs: gjournal set\n" +#~ "tunefs: soft updates cleared\n" + +#, no-wrap +#~ msgid "" +#~ "# tunefs -J enable -n disable ad0s1f.journal\n" +#~ "tunefs: gjournal set\n" +#~ "tunefs: soft updates cleared\n" +#~ msgstr "" +#~ "# tunefs -J enable -n disable ad0s1f.journal\n" +#~ "tunefs: gjournal set\n" +#~ "tunefs: soft updates cleared\n" + +#, no-wrap +#~ msgid "" +#~ "ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150\n" +#~ "GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.\n" +#~ "GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.\n" +#~ "GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.\n" +#~ "GEOM_JOURNAL: Journal ad0s1d clean.\n" +#~ "GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.\n" +#~ "GEOM_JOURNAL: Journal ad0s1f clean.\n" +#~ msgstr "" +#~ "ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150\n" +#~ "GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.\n" +#~ "GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.\n" +#~ "GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.\n" +#~ "GEOM_JOURNAL: Journal ad0s1d clean.\n" +#~ "GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.\n" +#~ "GEOM_JOURNAL: Journal ad0s1f clean.\n" + +#~ msgid "" +#~ "The journal probably fills up before it has a chance to get committed " +#~ "(flushed) to disk. Keep in mind the size of the journal depends on the " +#~ "usage load, and not the size of the data provider. If your disk activity " +#~ "is high, you need a larger partition for the journal. See the note in " +#~ "the crossref:gjournal-desktop[understanding-journaling, Understanding " +#~ "Journaling in FreeBSD] section." +#~ msgstr "" +#~ "Вероятно, что журнал заполняется раньше, чем происходит сброс его на " +#~ "диск. Помните, размер журнала зависит от загруженности диска, а не от " +#~ "размера поставщика данных. Если загрузка диска высокая, вам потребуется " +#~ "раздел большего размера для журнала. См. замечания в разделе crossref:" +#~ "gjournal-desktop[understanding-journaling, Understanding Journaling in " +#~ "FreeBSD]." + +#, no-wrap +#~ msgid "" +#~ "# tunefs -J disable -n enable ad0s1f\n" +#~ "tunefs: gjournal cleared\n" +#~ "tunefs: soft updates set\n" +#~ msgstr "" +#~ "# tunefs -J disable -n enable ad0s1f\n" +#~ "tunefs: gjournal cleared\n" +#~ "tunefs: soft updates set\n"