diff options
Diffstat (limited to 'documentation/content/ru/articles/gjournal-desktop/_index.adoc')
-rw-r--r-- | documentation/content/ru/articles/gjournal-desktop/_index.adoc | 88 |
1 files changed, 45 insertions, 43 deletions
diff --git a/documentation/content/ru/articles/gjournal-desktop/_index.adoc b/documentation/content/ru/articles/gjournal-desktop/_index.adoc index d58842adc3..835a0489ec 100644 --- a/documentation/content/ru/articles/gjournal-desktop/_index.adoc +++ b/documentation/content/ru/articles/gjournal-desktop/_index.adoc @@ -1,12 +1,15 @@ --- -title: Настройка журналирования UFS для настольного компьютера. authors: - - author: Manolis Kiagias + - + author: 'Manolis Kiagias' email: manolis@FreeBSD.org +description: 'Настройка журналирования UFS для настольного компьютера' +tags: ["UFS", "Journaling" , "Desktop", "FreeBSD"] +title: 'Настройка журналирования UFS для настольного компьютера' trademarks: ["freebsd", "general"] --- -= Настройка журналирования UFS для настольного компьютера. += Настройка журналирования UFS для настольного компьютера :doctype: article :toc: macro :toclevels: 1 @@ -40,20 +43,20 @@ endif::[] [.abstract-title] Аннотация -Журналируемая файловая система использует лог для записи всех транзакций, происходящих в файловой системе, который также сохраняет ее целостность в случае краха системы или пропадания питания. Несмотря на то, что всё еще возможна потеря несохранённых изменений файлов, журналирование почти полностью исключает возможность повреждения структуры файловой системы, вызванное непредвиденным остановом работы. Журналирование также сокращает до минимума время, необходимое для проверки файловой системы после отказа. Несмотря на то, что в используемой FreeBSD файловой системе UFS нет поддержки журналирования, новый класс системы GEOM в FreeBSD 7._X_ может быть использован для для ведения независимого от файловой системы журналирования. Эта статья объясняет, как реализовать журналирование UFS для типичного настольного компьютера. +Журналируемая файловая система использует лог для записи всех транзакций, происходящих в файловой системе, который также сохраняет ее целостность в случае краха системы или пропадания питания. Несмотря на то, что всё еще возможна потеря несохранённых изменений файлов, журналирование почти полностью исключает возможность повреждения структуры файловой системы, вызванное непредвиденным остановом работы. Журналирование также сокращает до минимума время, необходимое для проверки файловой системы после отказа. Несмотря на то, что в используемой FreeBSD файловой системе UFS нет поддержки журналирования, новый класс системы GEOM в FreeBSD 7._X_ может быть использован для ведения независимого от файловой системы журналирования. Эта статья объясняет, как реализовать журналирование UFS для типичного настольного компьютера. ''' toc::[] [[introduction]] -== Вступление +== Введение Серверное оборудование обычно хорошо защищено от потери питания. Настольный компьютер часто подвержен неожиданным пропаданиям питания, случайным нажатиям кнопки Reset и другим происшествиям (часто связанным с неосторожностью пользователей), которые могут привести к непредвиденным выключениям. Механизм Soft Updates, как правило, достаточно эффективно защищает файловую систему в таких случаях, однако в последствии требуется длительная фоновая проверка. В очень редких случаях повреждения файловой системы достигают того уровня, при котором становится необходимым вмешательство пользователя и данные могут быть утерянными. Новая возможность журналирования, предоставленная системой GEOM, может существенно выручить в подобных случаях, исключая время, необходимое для проверки файловых систем и удостовериваясь, что файловая система быстро восстановлена в целостное состояние. -Эта статья описывает порядок действий, необходимых для конфигурирования журналирования UFS на типичном настольном компьютере, в котором один жесткий диск используется для размещения как операционной системы, так и данных. В статье подразумевается установка FreeBSD "с нуля". Шаги достаточно просты и не требуют чрезмерно сложных манипуляций с командной строкой +Эта статья описывает порядок действий, необходимых для конфигурирования журналирования UFS на типичном настольном компьютере, в котором один жесткий диск используется для размещения как операционной системы, так и данных. В статье подразумевается установка FreeBSD "с нуля". Шаги достаточно просты и не требуют чрезмерно сложных манипуляций с командной строкой. После прочтения данной статьи вы будете знать: @@ -100,7 +103,7 @@ toc::[] === Выделение места под журналирование -Типичный настольный компьютер обычно имеет один жесткий диск, на котором хранится как операционная система, так и пользовательские данные. Вероятно, что схема разбития винчестера (по умолчанию), выбранная в меню Sysinstall, является более или менее подходящей: настольному компьютеру не требуется большой раздел [.filename]#/var#, в то время, как для раздела [.filename]#/usr# выделяется значительный объем дискового пространства, ввиду того, что пользовательские данные и множество пэкэджей хранятся именно в поддиректориях [.filename]#/usr#. +Типичный настольный компьютер обычно имеет один жесткий диск, на котором хранится как операционная система, так и пользовательские данные. Вероятно, что схема разбития винчестера (по умолчанию), выбранная в меню Sysinstall, является более или менее подходящей: настольному компьютеру не требуется большой раздел [.filename]#/var#, в то время, как для раздела [.filename]#/usr# выделяется значительный объем дискового пространства, ввиду того, что пользовательские данные и множество пэкэджей хранятся именно в поддиректориях [.filename]#/usr#. Разбиение по умолчанию (получаемое при нажатии kbd:[A] в редакторе разделов FreeBSD, называемом Disklabel) не оставляет свободного места. Каждый подлежащий журналированию раздел требует отдельного раздела для журнала. Ввиду того, что раздел [.filename]#/usr# - наибольший, есть смысл немного уменьшить его размер, чтобы получить пространство, необходимое для журнала. @@ -162,28 +165,28 @@ image::disklabel2.png[] Подготовив необходимые разделы, перейдем к конфигурированию журналирования. Нам будет необходимо загрузиться в однопользовательском режиме, для этого залогинимся пользователем `root` и напечатаем: -[source,shell] +[source, shell] .... # shutdown now .... -Нажмите kbd:[Enter] для получения приглашения командного интерпретатора. Нам необходимо будет размонтировать разделы, которые подлежат журналированию, в нашем примере это [.filename]#/usr# и [.filename]#/var#. +Нажмите kbd:[Enter] для получения приглашения командного интерпретатора. Нам необходимо будет размонтировать разделы, которые подлежат журналированию, в нашем примере это [.filename]#/usr# и [.filename]#/var#: -[source,shell] +[source, shell] .... # umount /usr /var .... Загрузите модуль ядра, необходимый для журналирования: -[source,shell] +[source, shell] .... # gjournal load .... На данном этапе сверьтесь со своими записями и определите, какие разделы будут использоваться под какой журнал. В нашем примере [.filename]#/usr# располагается на [.filename]#ad0s1f#, а его журнал будет располагаться на [.filename]#ad0s1g#, и, по аналогии, для [.filename]#/var#: файловая система располагается на [.filename]#ad0s1d#, а ее журнал - на [.filename]#ad0s1h#. Наберите следующие команды: -[source,shell] +[source, shell] .... # gjournal label ad0s1f ad0s1g GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. @@ -198,7 +201,7 @@ GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. ==== Если последний сектор любого из двух разделов (поставщиков данных) используется, команда `gjournal` возвратит ошибку. Вам необходимо будет использовать флаг `-F` для принудительной перезаписи, например: -[source,shell] +[source, shell] .... # gjournal label -f ad0s1d ad0s1h .... @@ -208,7 +211,7 @@ GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. На данном этапе созданы два устройства: [.filename]#ad0s1d.journal# и [.filename]#ad0s1f.journal#. Они представляют [.filename]#/var# и [.filename]#/usr# соответственно. Перед монтированием, нам необходимо установить флаг журналирования и снять флаг механизма Soft Updates: -[source,shell] +[source, shell] .... # tunefs -J enable -n disable ad0s1d.journal tunefs: gjournal set @@ -221,7 +224,7 @@ tunefs: soft updates cleared Теперь, смонтируйте новые устройства в соответствующие места файловой системы (обратите внимание на то, что мы можем использовать опцию монтирования `async`): -[source,shell] +[source, shell] .... # mount -o async /dev/ad0s1d.journal /var # mount -o async /dev/ad0s1f.journal /usr @@ -231,26 +234,25 @@ tunefs: soft updates cleared [.programlisting] .... -/dev/ad0s1f.journal /usr ufs rw,async 2 2 -/dev/ad0s1d.journal /var ufs rw,async 2 2 +/dev/ad0s1f.journal /usr ufs rw,async 2 2 +/dev/ad0s1d.journal /var ufs rw,async 2 2 .... [WARNING] ==== - -Убедитесь, что упомянутые выше записи правильные, иначе старт системы будет проблематичным после перезагрузки! +Проверьте корректность всех указанных параметров - в противном случае после перезагрузки возможны проблемы со стандартным запуском системы! ==== -И напоследок, подредактируйте [.filename]#/boot/loader.conf#: добавьте следующую строку и модуль man:gjournal[8] будет загружаться автоматически при старте системы: +Наконец, внесите изменения в [.filename]#/boot/loader.conf#, добавив строку для автоматической загрузки модуля man:gjournal[8] при каждом старте системы: [.programlisting] .... geom_journal_load="YES" .... -Поздравляем! Журналирование успешно сконфигурировано. Вам необходимо лишь набрать `exit` для возвращения в многопользовательский режим или перезагрузить систему, чтобы полностью проверить вашу конфигурацию (рекомендуется). Во время загрузки вы увидите сообщения, подобные следующим: +Поздравляем! Ваша система теперь настроена для журналирования. Вы можете ввести команду `exit` для возврата в многопользовательский режим или перезагрузить систему для проверки конфигурации (рекомендуется). При загрузке вы увидите сообщения следующего вида: -[source,shell] +[source, shell] .... ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150 GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. @@ -261,21 +263,21 @@ GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. GEOM_JOURNAL: Journal ad0s1f clean. .... -После непредвиденного останова работы системы сообщения будут немного отличаться, например: +После некорректного завершения работы сообщения будут немного отличаться, например: -[source,shell] +[source, shell] .... GEOM_JOURNAL: Journal ad0s1d consistent. .... -Это обычно значит, что man:gjournal[8] воспользовался информацией в журнале для возвращения файловой системы к целостному состоянию. +Обычно это означает, что man:gjournal[8] использовал информацию из журнала для приведения файловой системы в согласованное состояние. [[gjournal-new]] === Журналирование новых разделов Процедура, описанная выше, необходима для подключения журналирования разделов, содержащих данные. Журналирование пустых разделов немного проще, ввиду того, что поставщик данных и поставщик журнала могут быть размещены на одном и том же разделе. Например, предположим, что был установлен новый жесткий диск и был создан новый раздел [.filename]#/dev/ad1s1d#. Создание журнала не сложнее набора: -[source,shell] +[source, shell] .... # gjournal label ad1s1d .... @@ -284,14 +286,14 @@ GEOM_JOURNAL: Journal ad0s1d consistent. К примеру, чтобы создать журнал размером в 2Гб, можно использовать следующую команду: -[source,shell] +[source, shell] .... # gjournal label -s 2G ad1s1d .... Далее, вы можете создать файловую систему на новом разделе, а также разрешить журналирование ключом `-J`: -[source,shell] +[source, shell] .... # newfs -J /dev/ad1s1d.journal .... @@ -303,9 +305,9 @@ GEOM_JOURNAL: Journal ad0s1d consistent. [.programlisting] .... -options UFS_GJOURNAL # Прим.: Это включено в GENERIC +options UFS_GJOURNAL # Note: This is already in GENERIC -options GEOM_JOURNAL # А эту строку необходимо добавить +options GEOM_JOURNAL # You will have to add this one .... Соберите и установите новое ядро следуя указаниям extref:{handbook}kernelconfig[Руководства FreeBSD., kernelconfig] @@ -319,20 +321,20 @@ options GEOM_JOURNAL # А эту строку необходимо добави === Я получаю паники ядра во время высокой дисковой активности. Как это связано с журналированием? -Вероятно, что журнал заполняется раньше, чем происходит сброс его на диск. Помните, размер журнала зависит от загруженности диска, а не от размера поставщика данных. Если загрузка диска высокая, вам потребуется раздел большего размера для журнала. См. замечания в разделе <<understanding-journaling>> +Вероятно, что журнал заполняется раньше, чем происходит сброс его на диск. Помните, размер журнала зависит от загруженности диска, а не от размера поставщика данных. Если загрузка диска высокая, вам потребуется раздел большего размера для журнала. См. замечания в разделе crossref:gjournal-desktop[understanding-journaling, Understanding Journaling in FreeBSD]. === Я допустил некоторые ошибки во время конфигурирования, теперь система не загружается. Можно это как-нибудь исправить? Вы либо забыли внести запись (опечатались) в [.filename]#/boot/loader.conf#, либо есть ошибки в файле [.filename]#/etc/fstab#. Это легко исправить. Нажмите kbd:[Enter], чтобы получить приглашение командного интерпретатора в однопользовательском режиме. Потом, проверьте возможные варианты: -[source,shell] +[source, shell] .... # cat /boot/loader.conf .... -Если отсутствует запись `geom_journal_load`, или она содержит ошибки, журналируемые устройства не создадутся. Загрузите модуль вручную, примонтируйте все разделы и переходите в многопользовательский режим (продолжайте загрузку). +Если отсутствует запись `geom_journal_load`, или она содержит ошибки, журналируемые устройства не создадутся. Загрузите модуль вручную, примонтируйте все разделы и переходите в многопользовательский режим (продолжайте загрузку): -[source,shell] +[source, shell] .... # gjournal load @@ -356,28 +358,28 @@ GEOM_JOURNAL: Journal ad0s1f clean. Залогиньтесь `root` и переведите систему в однопользовательский режим: -[source,shell] +[source, shell] .... # shutdown now .... Размонтируйте журналируемые разделы: -[source,shell] +[source, shell] .... # umount /usr /var .... Синхронизируйте журналы: -[source,shell] +[source, shell] .... # gjournal sync .... Остановите поставщиков журналов: -[source,shell] +[source, shell] .... # gjournal stop ad0s1d.journal # gjournal stop ad0s1f.journal @@ -385,7 +387,7 @@ GEOM_JOURNAL: Journal ad0s1f clean. Удалите метаданные журналирования со всех задействованных устройств: -[source,shell] +[source, shell] .... # gjournal clear ad0s1d # gjournal clear ad0s1f @@ -395,7 +397,7 @@ GEOM_JOURNAL: Journal ad0s1f clean. Снимите флаг журналирования и установите флаг механизма Soft Updates: -[source,shell] +[source, shell] .... # tunefs -J disable -n enable ad0s1d tunefs: gjournal cleared @@ -408,7 +410,7 @@ tunefs: soft updates set Смонтируйте вручную старые (первоначальные) устройства: -[source,shell] +[source, shell] .... # mount -o rw /dev/ad0s1d /var # mount -o rw /dev/ad0s1f /usr @@ -418,8 +420,8 @@ tunefs: soft updates set [.programlisting] .... -/dev/ad0s1f /usr ufs rw 2 2 -/dev/ad0s1d /var ufs rw 2 2 +/dev/ad0s1f /usr ufs rw 2 2 +/dev/ad0s1d /var ufs rw 2 2 .... И напоследок, удалите строку, загружающую модуль `geom_journal`, из файла [.filename]#/boot/loader.conf# и перезагрузите операционную систему. |