Add geom chapter [1]

Sync it to current r1.22
Connect it to the Handbook build.

Submitted by:	[1] Denis Barov <dindin at dindin dot ru> (long ago)
Obtained from:	The FreeBSD Russian Documentation Project
This commit is contained in:
Dmitry Morozovsky 2006-02-19 12:47:24 +00:00
parent f7e56c3e60
commit 26cad09171
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=27189
5 changed files with 457 additions and 4 deletions

View file

@ -2,7 +2,7 @@
# The FreeBSD Russian Documentation Project
#
# $FreeBSD$
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/Makefile,v 1.41 2005/07/24 10:34:29 marck Exp $
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/Makefile,v 1.42 2006/02/19 12:21:47 marck Exp $
#
# Original revision: 1.93
#
@ -37,7 +37,7 @@ DOC?= book
FORMATS?= html-split
#HAS_INDEX= true
HAS_INDEX= true
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
@ -121,6 +121,7 @@ IMAGES_EN+= mail/pine4.scr
IMAGES_EN+= mail/pine5.scr
IMAGES_EN+= geom/striping.pic
IMAGES_EN+= install/example-dir1.eps
IMAGES_EN+= install/example-dir2.eps
IMAGES_EN+= install/example-dir3.eps
@ -169,6 +170,7 @@ SRCS+= desktop/chapter.sgml
SRCS+= disks/chapter.sgml
SRCS+= eresources/chapter.sgml
SRCS+= firewalls/chapter.sgml
SRCS+= geom/chapter.sgml
SRCS+= install/chapter.sgml
SRCS+= introduction/chapter.sgml
SRCS+= kernelconfig/chapter.sgml

View file

@ -2,7 +2,7 @@
The FreeBSD Russian Documentation Project
$FreeBSD$
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/book.sgml,v 1.62 2005/07/24 10:34:29 marck Exp $
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/book.sgml,v 1.63 2006/02/19 12:21:47 marck Exp $
Original revision: 1.161
TODO: review ENTITY'es
@ -75,6 +75,7 @@
<year>2003</year>
<year>2004</year>
<year>2005</year>
<year>2006</year>
<holder>The FreeBSD Documentation Project</holder>
</copyright>
@ -85,6 +86,7 @@
<year>2003</year>
<year>2004</year>
<year>2005</year>
<year>2006</year>
<holder>ðÒÏÅËÔ òÕÓÓËÏÊ äÏËÕÍÅÎÔÁÃÉÉ FreeBSD</holder>
</copyright>
@ -276,6 +278,7 @@
<![ %chap.security; [ &chap.security; ]]>
<![ %chap.mac; [ &chap.mac; ]]>
<![ %chap.disks; [ &chap.disks; ]]>
<![ %chap.geom; [ &chap.geom; ]]>
<![ %chap.vinum; [ &chap.vinum; ]]>
<![ %chap.l10n; [ &chap.l10n; ]]>
<![ %chap.cutting-edge; [ &chap.cutting-edge; ]]>

View file

@ -2,7 +2,7 @@
The FreeBSD Russian Documentation Project
$FreeBSD$
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/chapters.ent,v 1.21 2005/07/24 10:34:29 marck Exp $
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/chapters.ent,v 1.22 2006/02/19 12:21:47 marck Exp $
Original revision: 1.31
-->
@ -38,6 +38,7 @@
<!ENTITY chap.security SYSTEM "security/chapter.sgml">
<!ENTITY chap.mac SYSTEM "mac/chapter.sgml">
<!ENTITY chap.disks SYSTEM "disks/chapter.sgml">
<!ENTITY chap.geom SYSTEM "geom/chapter.sgml">
<!ENTITY chap.vinum SYSTEM "vinum/chapter.sgml">
<!ENTITY chap.l10n SYSTEM "l10n/chapter.sgml">
<!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.sgml">

View file

@ -0,0 +1,17 @@
#
# Build the Handbook with just the content from this chapter.
#
# $FreeBSD$
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/geom/Makefile,v 1.1 2006/02/19 11:50:55 marck Exp $
# Original revision: 1.1
#
CHAPTERS= geom/chapter.sgml
VPATH= ..
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
DOC_PREFIX?= ${.CURDIR}/../../../..
.include "../Makefile"

View file

@ -0,0 +1,430 @@
<!--
The FreeBSD Russian Documentation Project
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/geom/chapter.sgml,v 1.2 2006/02/19 12:19:20 marck Exp $
$FreeBSD$
Original revision: 1.22
-->
<chapter id="GEOM">
<chapterinfo>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Написал </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Денис</firstname>
<surname>Баров</surname>
<contrib>Перевод на русский язык: </contrib>
</author>
</authorgroup>
</chapterinfo>
<title>GEOM: Модульная инфраструктура преобразования дисковых запросов</title>
<sect1 id="GEOM-synopsis">
<title>Краткий обзор</title>
<indexterm>
<primary>GEOM</primary>
</indexterm>
<indexterm>
<primary>Инфраструктура GEOM</primary>
<see>GEOM</see>
</indexterm>
<para> Эта глава описывает использование дисков, управляемых
инфраструктурой GEOM во &os;. Среди прочего, здесь описывается большая
часть утилит управления <acronym role="Redundant Array of Inexpensive
Disks">RAID</acronym>, использующих GEOM для настройки. В этой главе мы
не будем вдаваться в подробности взаимодействия GEOM с подсистемой
ввода/вывода или с программным кодом, эту информацию вы можете получить
на странице справочника &man.geom.4;. Эта глава также не является
подробным руководством по настройке <acronym>RAID</acronym>. Мы обсудим
только типы <acronym>RAID</acronym>, поддерживаемые GEOM.</para>
<para>После прочтения этой главы вы будете знать:</para>
<itemizedlist>
<listitem>
<para>Какие типы <acronym>RAID</acronym> поддерживает GEOM.</para>
</listitem>
<listitem>
<para> Как использовать стандартные утилиты для настройки,
обслуживания и управления различными уровнями
<acronym>RAID</acronym>.</para>
</listitem>
<listitem>
<para> Как с помощью GEOM создавать зеркальные, последовательные и
шифрованные дисковые последовательности, а так же последовательности
из дисков, присоединённых удалённо.</para>
</listitem>
<listitem>
<para>Как решать проблемы с дисками, присоединёнными к инфраструктуре
GEOM.</para>
</listitem>
</itemizedlist>
<para>Перед чтением этой главы вы должны:</para>
<itemizedlist>
<listitem>
<para>Понимать, как &os; работает с дисками
(<xref linkend="disks">).</para>
<listitem>
<para>Уметь сконфигурировать и установить новое ядро &os;
(<xref linkend="kernelconfig">).</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="GEOM-intro">
<title>Введение в GEOM</title>
<para>GEOM позволяет классам &mdash; <acronym role="Master Boot Record">
MBR</acronym>, <acronym>BSD</acronym> labels, и так далее &mdash;
получить доступ к устройству и управлять им, используя
поставщиков GEOM (providers) или специальные файлы устройств,
расположенные в каталоге <filename role="directory">/dev</filename>.
GEOM поддерживает различные программные конфигурации
<acronym>RAID</acronym>, и прозрачно предоставляет доступ
к дискам системе и системным приложениям.</para>
</sect1>
<sect1 id="GEOM-striping">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Написали </contrib>
</author>
<author>
<firstname>Murray</firstname>
<surname>Stokely</surname>
</author>
</authorgroup>
</sect1info>
<title>RAID0 - Создание дисковой последовательности (Striping)</title>
<indexterm>
<primary>GEOM</primary>
</indexterm>
<indexterm>
<primary>
Создание дисковой последовательности&nbsp;(Striping)
</primary>
</indexterm>
<para> Создание дисковой последовательности (Striping)&nbsp;&mdash;
метод, применяемый, чтобы скомбинировать несколько физических дисков в
один логический. Во многих случаях это делается с использованием
аппаратных контроллеров. Дисковая подсистема GEOM предоставляет
программную поддержку <acronym>RAID</acronym>0, иногда называемую
дисковой последовательностью (Stripe).</para>
<para>В <acronym>RAID</acronym> уровня 0 данные разбиваются на блоки,
которые параллельно записываются на все диски массива. Вместо того, что
бы ждать записи 256k на один диск, <acronym>RAID</acronym>0 может
параллельно записывать по 64k на каждый из четырёх дисков, обеспечивая
более высокую производительность ввода/вывода. Производительность также
может быть увеличена за счет использования большего числа дисков.</para>
<para>Все диски последовательности <acronym>RAID</acronym>0
должны быть одного размера, так как запись и считывание с дисков
происходят параллельно.</para>
<mediaobject>
<imageobject>
<imagedata fileref="geom/striping" align="center">
</imageobject>
<textobject>
<phrase>Иллюстрация дисковой последовательности</phrase>
</textobject>
</mediaobject>
<procedure>
<title>Создание дисковой последовательности
из неформатированных ATA дисков</title>
<step><para>Загрузите модуль <filename>geom_stripe</filename>:</para>
<screen>&prompt.root; <userinput>kldload geom_stripe.ko</userinput></screen>
</step>
<step><para>Убедитесь, что существует подходящая точка монтирования.
Если вы планируете сделать логический диск корневым разделом,
используйте временную точку монтирования, например <filename
role="directory">/mnt</filename>:</para>
<screen>&prompt.root; <userinput>mkdir /mnt</userinput></screen>
</step>
<step><para>Определите имена устройств, которые будут
объединены в последовательность, и создайте новое устройство для
последовательности. Например, выполнив следующую команду, вы создадите
дисковую последовательность из двух неразмеченных
<acronym>ATA</acronym> дисков: <filename>/dev/ad2</filename> и
<filename>/dev/ad3</filename>.</para>
<screen>&prompt.root; <userinput>gstripe label -v st0 /dev/ad2 /dev/ad3</userinput></screen>
<!--
<para>A message should be returned explaining that meta data has
been stored on the devices.
XXX: What message? Put it inside the screen output above.
-->
</step>
<step><para>Создайте таблицу разделов:</para>
<screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen>
</step>
<step><para>Теперь в <filename role="directory">/dev/stripe</filename>
кроме <devicename>st0</devicename> появились ещё два устройства &mdash;
<devicename>st0a</devicename> и <devicename>st0c</devicename>.
Создайте файловую систему на устройстве <devicename>st0a</devicename>,
используя <command>newfs</command>:</para>
<screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen>
<para>На экране промелькнет множество цифр, и через несколько
секунд процесс будет завершен. Логический диск создан и готов
к монтированию.</para>
</step>
</procedure>
<para>Смонтируйте его:</para>
<screen>&prompt.root; <userinput>mount /dev/stripe/st0a /mnt</userinput></screen>
<para>Чтобы монтировать созданную дисковую последовательность
автоматически во время загрузки, добавьте информацию о ней в
<filename>/etc/fstab</filename>:</para>
<screen>&prompt.root; <userinput>echo "/dev/stripe/st0a /mnt ufs rw 2 2" \</userinput>
<userinput>&gt;&gt; /etc/fstab</userinput></screen>
<para>Чтобы модуль <filename>geom_stripe</filename> автоматически загружался во время инициализации
системы, добавьте строку в
<filename>/boot/loader.conf</filename>:</para>
<screen>&prompt.root; <userinput>echo 'geom_stripe_load="YES"' &gt;&gt; /boot/loader.conf</userinput></screen>
</sect1>
<sect1 id="GEOM-mirror">
<title>RAID1 - Зеркалирование (Mirroring)</title>
<indexterm>
<primary>GEOM</primary>
</indexterm>
<indexterm>
<primary>Зеркалирование дисков</primary>
</indexterm>
<para>Зеркалирование (Mirroring) &mdash; технология,
применяемая как в корпоративной среде, так и на домашних компьютерах.
Она позволяет создавать резервные копии <quote>на лету</quote>.
Зеркалирование, по сути, означает, что диск A является копией диска B.
Или, возможно, диск C+D является копией диска A+B. Вне зависимости от
конфигурации, основной аспект &mdash; дублирование информации. Позже,
эта информация может быть с легкостью восстановлена или сохранена как
резервная копия без остановки системы, или даже физически помещена в
хранилище данных.</para>
<para>Перед началом, убедитесь, что у вас есть два физических диска
равной емкости. Далее в этом примере подразумевается, что это диски
прямого доступа (direct access, &man.da.4;) с интерфейсом
<acronym>SCSI</acronym>.</para>
<para>Начните с установки &os; на первый диск с двумя разделами.
Один из этих разделов должен быть раздел swap, равный двум размерам
<acronym>RAM</acronym>, а все остальное место отведено под корневую
файловую систему (<filename role="directory">/</filename>).
Возможно также иметь отдельные разделы и для остальных точек
монтирования, но так как это в несколько раз увеличивает
количество манипуляций с &man.bsdlabel.8; и &man.fdisk.8;,
то в данной главе мы остановимся на более простом варианте.</para>
<para>После установки перезагрузитесь и дождитесь окончания инициализации
системы, затем войдите как суперпользователь <username>root</username>.
</para>
<para>Создайте устройство <devicename>/dev/mirror/gm</devicename> и свяжите
его с устройством <devicename>/dev/da1</devicename>:</para>
<screen>&prompt.root; <userinput>gmirror label -vnb round-robin gm0 /dev/da1</userinput></screen>
<para>В ответ вы должны получить сообщение:</para>
<screen>
Metadata value stored on /dev/da1.
Done.</screen>
<para>Инициализируйте GEOM; эта команда загрузит модуль ядра
<filename>/boot/kernel/geom_mirror.ko</filename>:</para>
<screen>&prompt.root; <userinput>gmirror load</userinput></screen>
<note>
<para>Эта команда создаст устройства
<devicename>gm0</devicename>, <devicename>gm0s1</devicename>,
<devicename>gm0s1a</devicename> и <devicename>gm0s1c</devicename>
в каталоге <filename role="directory">/dev/mirror</filename>.
</para>
</note>
<para>Установите стандартную разметку <command>fdisk</command> и
загрузчик на свежесозданное устройство <devicename>gm0</devicename>:</para>
<screen>&prompt.root; <userinput>fdisk -vBI /dev/mirror/gm0</userinput></screen>
<para>Теперь установите стандартную разметку
<command>bsdlabel</command>:</para>
<screen>&prompt.root; <userinput>bsdlabel -wB /dev/mirror/gm0s1</userinput></screen>
<note>
<para>Если у вас несколько слайсов или разделов, параметры
двух предыдущих команд должны быть другими. Среди них должны
быть указаны размеры слайсов и разделов.
</para>
</note>
<para>Используйте &man.newfs.8;, чтобы создать файловую систему на
устройстве <devicename>gm0s1a</devicename>:</para>
<screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput></screen>
<para>Это заставит систему проассоциировать устройства, и это хорошо.
Проверьте, не было ли сообщений об ошибках, и смонтируйте устройство
в каталог <filename role="directory">/mnt</filename>:</para>
<screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput></screen>
<para>Теперь переместите все данные с загрузочного диска на только
что созданную файловую систему. Для этого используйте &man.dump.8; и
&man.restore.8;; в некоторых случаях можно использовать &man.dd.1;.</para>
<screen>&prompt.root; <userinput>dump -L -0 -f- / |(cd /mnt &amp;&amp; restore -r -v -f-)</userinput></screen>
<para>Проделайте это со всеми файловыми системами. Просто подставьте
нужную файловую систему в предыдущую команду.</para>
<para>Теперь отредактируйте <filename>/mnt/etc/fstab</filename>
и закомментируйте swap файл
<footnote>
<para>Следует заметить, что после комментирования записи о разделе
подкачки в файле <filename>fstab</filename> вам, скорее всего,
потребуется разрешить подкачку каким-либо другим способом.
Обратитесь к <xref linkend="adding-swap-space"> за дополнительной
информацией.</para>
</footnote>.
Измените информацию о других файловых системах, размещенных на диске.
Вот пример файла <filename>/mnt/etc/fstab</filename>:
<programlisting># Device Mountpoint FStype Options Dump Pass#
#/dev/da0s2b none swap sw 0 0
/dev/mirror/gm0s1a / ufs rw 1 1</programlisting>
<para>Создайте файл <filename>boot.conf</filename> на обоих
разделах: созданном и существующем. С помощью этого файла
<acronym>BIOS</acronym> сможет загрузить правильный диск:</para>
<screen>&prompt.root; <userinput>echo "1:da(1,a)/boot/loader" &gt; /boot.config</userinput></screen>
<screen>&prompt.root; <userinput>echo "1:da(1,a)/boot/loader" &gt; /mnt/boot.config</userinput></screen>
<note>
<para>Мы поместили этот файл в оба корневых раздела на тот случай,
если по каким-либо причинам система не сможет загрузиться с нового
раздела. В таком случае загрузка со старого все еще будет возможна.</para>
</note>
<para>Наконец, добавьте строку в новый файл
<filename>/boot/loader.conf</filename>:</para>
<screen>&prompt.root; <userinput>echo 'geom_mirror_load="YES"' &gt;&gt; /mnt/boot/loader.conf</userinput></screen>
<para>Это позволит утилите &man.loader.8; загрузить модуль
<filename>geom_mirror.ko</filename> во время инициализации
системы.</para>
<para>Перезагрузитесь:</para>
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
<para>Если все было сделано правильно, система загрузится с
<devicename>gm0s1a</devicename>. Если же что-то пойдёт не так, обратитесь
к секции <quote>Решение проблем</quote>.
</para>
<para>Теперь добавьте диск
<devicename>da0</devicename> к устройству
<devicename>gm0</devicename>:</para>
<screen>&prompt.root; <userinput>gmirror configure -a gm0</userinput>
&prompt.root; <userinput>gmirror insert gm0 /dev/da0</userinput></screen>
<para>Ключ <option>-a</option> даст утилите команду &man.gmirror.8;
использовать автоматическую синхронизацию, то есть автоматически
дублировать запись на диски. Страница справки разъясняет, как
перестраивать и заменять диски, Будьте внимательны, вместо
<devicename>gm0</devicename> там использовано обозначение
<devicename>data</devicename>.</para>
<sect2>
<title>Решение проблем</title>
<sect3>
<title>Система не загружается</title>
<para>Если система прекращает загрузку и выдает строку:</para>
<programlisting>ffs_mountroot: can't find rootvp
Root mount failed: 6
mountroot></programlisting>
<para>Перезагрузите компьютер кнопкой питания или кнопкой
<quote>Reset</quote>. В загрузочном меню выберите опцию (6).
Это приведёт к тому, что система выдаст приглашение &man.loader.8;.
Загрузите модуль ядра вручную:</para>
<screen>OK? <userinput>load geom_mirror.ko</userinput>
OK? <userinput>boot</userinput></screen>
<para>Если это сработало, модуль ядра по какой-либо причине
не загрузился правильно. Добавьте строку</para>
<programlisting>options GEOM_MIRROR</programlisting>
<para>в файл конфигурации ядра, пересоберите и переустановите ядро.
Это должно устранить проблему.</para>
</sect3>
</sect2>
</sect1>
</chapter>
<!--
Local Variables:
mode: sgml
sgml-declaration: "../chapter.decl"
sgml-indent-data: t
sgml-omittag: nil
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "chapter")
End:
-->