diff --git a/ru_RU.KOI8-R/books/handbook/Makefile b/ru_RU.KOI8-R/books/handbook/Makefile
index 1cf517348f..8aaeb316e6 100644
--- a/ru_RU.KOI8-R/books/handbook/Makefile
+++ b/ru_RU.KOI8-R/books/handbook/Makefile
@@ -178,13 +178,6 @@ IMAGES_EN+= security/ipsec-network.pic
IMAGES_EN+= security/ipsec-crypt-pkt.pic
IMAGES_EN+= security/ipsec-encap-pkt.pic
IMAGES_EN+= security/ipsec-out-pkt.pic
-IMAGES_EN+= vinum/vinum-concat.pic
-IMAGES_EN+= vinum/vinum-mirrored-vol.pic
-IMAGES_EN+= vinum/vinum-raid10-vol.pic
-IMAGES_EN+= vinum/vinum-raid5-org.pic
-IMAGES_EN+= vinum/vinum-simple-vol.pic
-IMAGES_EN+= vinum/vinum-striped-vol.pic
-IMAGES_EN+= vinum/vinum-striped.pic
# Images from the cross-document image library
IMAGES_LIB= callouts/1.png
@@ -238,7 +231,6 @@ SRCS+= printing/chapter.xml
SRCS+= security/chapter.xml
SRCS+= serialcomms/chapter.xml
SRCS+= users/chapter.xml
-SRCS+= vinum/chapter.xml
SRCS+= x11/chapter.xml
# Entities
diff --git a/ru_RU.KOI8-R/books/handbook/book.xml b/ru_RU.KOI8-R/books/handbook/book.xml
index dde5453cdc..05fe563803 100644
--- a/ru_RU.KOI8-R/books/handbook/book.xml
+++ b/ru_RU.KOI8-R/books/handbook/book.xml
@@ -246,7 +246,6 @@
&chap.disks;
&chap.geom;
&chap.filesystems;
- &chap.vinum;
&chap.l10n;
&chap.cutting-edge;
diff --git a/ru_RU.KOI8-R/books/handbook/chapters.ent b/ru_RU.KOI8-R/books/handbook/chapters.ent
index 213cd1c9a9..83ac2d39df 100644
--- a/ru_RU.KOI8-R/books/handbook/chapters.ent
+++ b/ru_RU.KOI8-R/books/handbook/chapters.ent
@@ -45,7 +45,6 @@
-
diff --git a/ru_RU.KOI8-R/books/handbook/disks/chapter.xml b/ru_RU.KOI8-R/books/handbook/disks/chapter.xml
index a8544e5050..06c9bd2bac 100644
--- a/ru_RU.KOI8-R/books/handbook/disks/chapter.xml
+++ b/ru_RU.KOI8-R/books/handbook/disks/chapter.xml
@@ -507,11 +507,6 @@ ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33
-
- Затем определите, как сделать их частью файловой системы.
- Изучите справку по &man.vinum.4; () и
- &man.ccd.4;. В нашем конкретном случае была выбрана технология
- &man.ccd.4;.
@@ -657,30 +652,6 @@ bsdlabel -e ad3
/dev/ccd0c /media ufs rw 2 2
-
-
- Менеджер томов Vinum
-
-
- RAIDпрограммный
-
-
-
- RAIDVinum
-
-
- Менеджер томов Vinum является драйвером блочного устройства,
- который реализует виртуальные диски. Он отделяет дисковое
- оборудование от интерфейса блочного устройства и работает с данными
- таким образом, что в результате повышается гибкость,
- производительность и надёжность по сравнению с традиционным
- взглядом на дисковое хранилище как на кусок дискового пространства.
- &man.vinum.4; реализует модели RAID-0, RAID-1 и RAID-5, как по
- отдельности, так и в комбинациях.
-
- Обратитесь к для получения более
- полной информации о &man.vinum.4;.
-
@@ -3984,11 +3955,6 @@ gbde_lockdir="/etc/gbde"
воспользуйтесь такой командой:
&prompt.root; gbde detach /dev/ad4s1c
-
- Также заметьте, что, так как &man.vinum.4; работает не через
- подсистему &man.geom.4;, то вы не можете использовать тома
- vinum с
- gbde.
diff --git a/ru_RU.KOI8-R/books/handbook/preface/preface.xml b/ru_RU.KOI8-R/books/handbook/preface/preface.xml
index 6ecbeee24f..65823a55a9 100644
--- a/ru_RU.KOI8-R/books/handbook/preface/preface.xml
+++ b/ru_RU.KOI8-R/books/handbook/preface/preface.xml
@@ -65,14 +65,6 @@
и в сети, зашифрованных дисковых разделах.
-
- , Менеджер дискового пространства
- Vinum, новая глава этой редакции.
- В ней описано как использовать Vinum, менеджер логических
- томов, который предоставляет независимые от устройств логические
- диски и программные уровни RAID-0, RAID-1 и RAID-5.
-
-
К , PPP и SLIP, был добавлен
раздел о решении проблем.
@@ -428,17 +420,6 @@
-
- , Менеджер дискового
- пространства Vinum
-
- Рассказывает как использовать Vinum, менеджер логических
- разделов, при помощи которого можно создавать и использовать
- независимые от устройств хранения логические диски и программно
- реализовывать RAID-0, RAID-1 и RAID-5.
-
-
-
, Локализация — I18N/L10N
использование и настройка
diff --git a/ru_RU.KOI8-R/books/handbook/vinum/Makefile b/ru_RU.KOI8-R/books/handbook/vinum/Makefile
deleted file mode 100644
index 68dcb6c9eb..0000000000
--- a/ru_RU.KOI8-R/books/handbook/vinum/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Build the Handbook with just the content from this chapter.
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/vinum/Makefile,v 1.1 2003/11/29 21:10:53 marck Exp $
-# Original revision: r13852
-#
-
-CHAPTERS= vinum/chapter.xml
-
-VPATH= ..
-
-MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
-
-DOC_PREFIX?= ${.CURDIR}/../../../..
-
-.include "../Makefile"
diff --git a/ru_RU.KOI8-R/books/handbook/vinum/chapter.xml b/ru_RU.KOI8-R/books/handbook/vinum/chapter.xml
deleted file mode 100644
index a15938582d..0000000000
--- a/ru_RU.KOI8-R/books/handbook/vinum/chapter.xml
+++ /dev/null
@@ -1,1391 +0,0 @@
-
-
-
-
-
-
-
-
- Greg
- Lehey
- Изначально написано
-
-
-
-
- Дмитрий
- Морозовский
- Перевод на русский язык:
-
-
-
-
- Менеджер дискового пространства Vinum
-
-
- Краткая аннотация
-
- Какие бы диски у вас ни были, они всегда будут подвержены
- ограничениям:
-
-
-
- Слишком маленькие
-
-
-
- Слишком медленные
-
-
-
- Недостаточно надежные
-
-
-
- Для того, чтобы обойти эти ограничения, можно использовать
- несколько (и, возможно, избыточное число) дисков.
-
- В дополнение к поддержке разнообразных контроллеров RAID, базовая
- система FreeBSD включает Менеджер дискового пространства
- Vinum — драйвер, реализующий поддержку виртуальных дисков.
-
-
- Vinum позволяет более гибко оперировать дисковым пространством,
- повысить производительность и надежность дисковой подсистемы за счет
- реализации моделей RAID-0, RAID-1 и RAID-5, а также их комбинаций.
-
-
- В данной главе кратко рассматриваются потенциальные проблемы
- традиционной системы хранения данных и методы их решения при помощи
- Vinum.
-
-
- Начиная с версии 5 &os;, подсистема Vinum была переписана для
- того, чтобы стать совместимой с архитектурой GEOM (см.
- ), при сохранении исходных идей, терминологии
- и формата хранимых на диске метаданных. Новая подсистема называется
- gvinum (сокращение от GEOM
- vinum). Дальнейший текст обычно использует термин
- Vinum как абстрактное название, вне зависимости
- от варианта реализации. Все реальные команды должны использовать
- gvinum, а имя модуля ядра сменено с
- vinum.ko на geom_vinum.ko;
- файлы устройств располагаются в каталоге
- /dev/gvinum, а не /dev/vinum.
- Начиная с &os; 6, старая реализация Vinum удалена из дерева исходных
- текстов.
-
-
-
-
- Диски слишком малы
-
- Vinum
- RAID
- software
-
- Vinum (произносится Винум,
- с ударением на первом слоге) — так называемый
- Менеджер дисковых томов — представляет
- собой виртуальный дисковый драйвер, призванный решить три вышеописанные
- проблемы. Взглянем на них более подробно. Предлагаются
- (и реализованы) следующие пути:
-
- Объемы дисков растут, тем не менее, растут и требования к объемам
- систем хранения данных. Вы запросто можете оказаться в ситуации, когда
- требуемый объем файловой системы превышает размеры доступных
- дисков. Надо признать, что в настоящее время данная проблема стоит не
- так остро, как 10 лет назад, но тем не менее она существует. Некоторые
- системы выходят из этого тупика посредством создания мета-устройств,
- распределяющих хранящиеся данные по нескольким дискам.
-
-
-
- Ограниченная пропускная способность
-
- Современным системам часто необходим одновременный доступ ко многим
- данным. В частности, крупный FTP или HTTP-сервер может обслуживать
- тысячи одновременных соединений, поступающих по нескольким
- 100 Mbit/s каналам во внешний мир, что ощутимо превышает скорость
- передачи данных большинства дисков.
-
- Современные диски могут передавать данные со скоростями до
- 70 MB/s; однако, эти цифры труднодостижимы в случае, когда к диску
- обращается большое число независимых процессов, каждый из которых
- может получить лишь часть этого значения. Интересным будет
- взглянуть на проблему с точки зрения дисковой подсистемы: важным
- параметром в нашем случае будет загрузка подсистемы фактом передачи
- фрагмента данных, а именно время, в течение которого диски, участвующие в
- передаче, будут заняты.
-
- При любом запросе диск сначала должен спозиционировать головки,
- дождаться подхода к головкам первого сектора из необходимых, и лишь затем
- выполнить обращение. Данная операция может рассматриваться как
- атомарная: нет никакого смысла ее прерывать.
-
-
- Рассмотрим типичный запрос на передачу 10 kB информации. Современные
- высокопроизводительные диски подводят головки в нужную позицию в среднем
- за 3.5 миллисекунды. Самые быстрые диски вращаются со скоростью
- 15000 об/мин, так что среднее время на подход первого сектора к
- головке (rotational latency, половина времени одного оборота) составит
- еще 2 миллисекунды. При линейной скорости передачи данных в
- 70 MB/s собственно чтение/запись займет около
- 150 микросекунд — исчезающе мало по сравнению с временем
- позиционирования. В нашем случае, эффективная скорость передачи данных
- падает почти до 1 MB/s и, очевидно, сильно зависит от размера
- передаваемого блока.
-
- Традиционным и очевидным решением этой проблемы является принцип
- больше шпинделей: вместо использования одного большого
- диска можно применить несколько дисков меньшего размера. Диски
- позиционируют головки и передают данные независимо, так что эффективная
- пропускная способность возрастает примерно во столько раз, сколько дисков
- мы применяем.
-
- Точная цифра, разумеется, будет несколько ниже: диски могут передавать
- данные параллельно, но у нас нет средства обеспечить строго равномерное
- распределение нагрузки по всем дискам. Нагрузка на один диск неизбежно
- будет больше чем на другой.
-
-
- disk concatenation
-
-
- Vinum
- сцепленные диски (concatenation)
-
-
- Равномерность распределения нагрузки на диски серьезно зависит от
- способа распределения по ним данных. В терминах дальнейшего обсуждения,
- будет удобно представить пространство хранения набором большого
- количества секторов с данными, которые адресуются по номеру, подобно
- страницам в книге. Наиболее очевидным методом будет поделить виртуальный
- диск на группы расположенных последовательно секторов размером с
- физический диск (которые будут подобны разделам книги). Этот метод
- называется конкатенацией или сцеплением
- (concatenation); его преимуществом является то, что он не
- налагает никаких ограничений на размеры применяемых дисков. Конкатенация
- эффективна, если нагрузка на дисковое пространство распределена
- равномерно. В случае концентрации нагрузки в малой области диска
- увеличение производительности не будет заметно. Организация секторов на
- сцепленных единицах хранения показана на .
-
-
-
-
-
-
- disk striping
-
-
- Vinum
- striping (перемежение)
-
-
- RAID
-
-
- Альтернативным подходом будет разделение адресного пространства на
- компоненты одного, сравнительно небольшого размера, и расположение их
- последовательно на разных устройствах. Например, первая группа из 256
- секторов будет расположены на первом физическом диске,
- вторая — на следующем и т.д. n+1-я группа попадает на первый
- диск вслед за первой. Такое расположение называется
- перемежающимся (striping) или
- RAID-0.
-
-
- RAID — сокращение от термина
- Redundant Array of Inexpensive Disks (массив недорогих дисков с
- резервированием); различные виды RAID
- предоставляют разные формы защиты от сбоев. RAID-0,
- вообще говоря, не является RAID, поскольку не
- обеспечивает резервирования..
-
- Перемежение требует дополнительных усилий для нахождения нужного блока
- данных и может приводить к дополнительным нагрузкам на подсистемы
- ввода-вывода, если передаваемый блок пересекает границу stripe (тем самым
- попадая на разные диски), зато обеспечивает более равномерное
- распределение нагрузки по физическим дискам. Распределение блоков по
- физическим дискам в случае striping иллюстрируется
- .
-
-
-
-
-
-
-
- Целостность данных
-
- Наконец, слабым местом современных дисков является их ограниченная
- надежность. Несмотря на то, что за последние несколько лет она ощутимо
- выросла, из всех компонентов сервера отказ дисков наиболее вероятен.
- Отказ может привести к катастрофическим
- результатам: замена отказавшего диска и восстановление данных может
- занять несколько дней.
-
-
- disk mirroring
-
-
- Vinum
- зеркалирование (mirroring)
-
-
- RAID-1
-
-
- Традиционным путем решения проблемы надежности является
- зеркалирование (mirroring), обеспечивающее
- хранение всей информации в двух копиях на различных физических
- носителях. С момента изобретения аббревиатуры RAID
- эту технику также называют RAID уровня 1 или просто
- RAID-1. Любой запрос на запись в таком томе
- приводит к записи в оба подтома, чтение может производиться из любой
- половины, так что данные остаются доступны в случае отказа одного из
- дисков.
-
- Зеркалирование имеет два слабых места:
-
-
-
- Цена: требуется вдвое больше дисков.
-
-
-
- Проблемы с производительностью: запись производится на оба
- диска, требуя вдвое большей пропускной способности шины.
- Производительность чтения не уменьшается, более того, часто
- увеличивается.
-
-
-
- RAID-5
-
-
- Альтернативным решением является хранение контрольных сумм
- (четности), реализованное в RAID уровней
- 2, 3, 4 и 5. Наиболее интересен RAID-5. В
- реализации Vinum, это вариант организации тома с перемежением, при
- котором один из блоков в страйпе выделяется для хранения четности
- остальных n-1 блоков. Как требует спецификация
- RAID-5, положение блока четности меняется от страйпа
- к страйпу.
-
-
-
-
-
- По сравнению с зеркалированием преимуществом RAID-5
- является гораздо меньшее требование к объему дисков. Скорость чтения
- сравнима с чтением в случае томов с перемежением, а вот запись
- происходит ощутимо медленнее (примерно вчетверо медленнее чтения). При
- отказе одного из дисков массив продолжает работать в "деградировавшем"
- режиме: запросы на чтение с оставшихся дисков производятся обычным
- образом, а блоки с отказавшего диска перевычисляются из данных
- остальных блоков страйпа.
-
-
-
-
- Объекты Vinum
- Для обеспечения необходимой функциональности Vinum использует
- четырехуровневую иерархию объектов:
-
-
-
- "Видимая снаружи" сущность — виртуальный диск,
- называемый томом (volume). Тома в основном
- аналогичны дискам &unix;, хотя имеются и мелкие различия. На тома
- нет ограничений по размеру.
-
-
-
- Тома образуются из наборов (plex), каждый
- из которых представляет полное адресное пространство тома. Данный
- уровень иерархии, таким образом, реализует избыточность. Наборы
- являются аналогами отдельных дисков в зеркалированном массиве;
- содержимое наборов идентично.
-
-
-
- Поскольку Vinum работает в среде подсистемы хранения данных
- &unix;, многодисковые наборы можно было бы реализовать на базе
- дисковых разделов &unix;. На практике, подобная реализация
- недостаточно гибка (диски &unix; могут иметь весьма ограниченное
- число разделов). Вместо этого Vinum вводит еще один
- уровень абстракции: единый дисковый раздел &unix;
- (drive в терминах Vinum) делится на
- непрерывные области, называемые поддисками
- (subdisk), которые и будут "строительным материалом" для
- наборов.
-
-
-
- Поддиски, как уже упоминалось, располагаются внутри
- приводов (drive) Vinum, существующих
- дисковых разделов &unix;. Привод может содержать неограниченное
- количество поддисков. Небольшая область в начале привода
- зарезервирована под хранение информации о конфигурации и состоянии
- Vinum; все остальное пространство пригодно для хранения
- данных.
-
- Сейчас мы опишем, как эта иерархия обеспечивает необходимую
- функциональность для Vinum.
-
-
- Размер тома
-
- Наборы могут состоять из большого количества поддисков,
- распределенных по разным приводам Vinum. Стало быть, размеры отдельных
- дисков не ограничивают размер набора, а следовательно, и тома.
-
-
-
- Избыточность
-
- Vinum реализует избыточность посредством связывания с томом
- нескольких наборов. Содержимое каждого набора является полной копией
- содержимого тома. Количество наборов в томе может быть от одного до
- восьми.
-
- Хотя набор представляет данные тома целиком, отдельные части
- содержимого тома могут быть представлены не всеми наборами.
- Во-первых, для некоторых частей набора поддиски могут быть не
- определены; во-вторых, часть набора может быть потеряна из-за отказа
- диска. До тех пор, пока хотя бы один набор может обеспечить данные для
- полного адресного пространства тома, том полностью функционален.
-
-
-
- Производительность
-
- Vinum поддерживает как конкатенацию, так и перемежение на уровне
- наборов:
-
-
-
- Сцепленный набор использует пространство
- поддисков последовательно, склеивая их "встык".
-
-
-
- Набор с перемежением разбивает данные по
- поддискам в соответствии с размером страйпа. Поддисков должно быть
- по меньшей мере два (чтобы отличить набор от сцепленного), и все
- они должны быть одинакового размера.
-
-
-
-
-
- Организация наборов: что выбрать?
-
-
- Vinum, распространяемый с FreeBSD версии &rel.current; поддерживает
- два вида организации наборов:
-
-
-
- Сцепленные наборы наиболее гибки в использовании: они могут
- содержать любое количество поддисков произвольного размера. Такой
- набор может быть расширен "на лету" путем добавления дополнительных
- поддисков. Поддержка сцепленных наборов требует меньших затрат
- процессорного времени, чем поддержка наборов с перемежением (хотя
- различие вряд ли поддается измерению).
- С другой стороны, они наиболее чувствительны к концентрации
- нагрузки в одной области тома, при которой один из дисков принимает
- на себя всю нагрузку, а остальные бездействуют.
-
-
-
- Основным преимуществом наборов с перемежением
- (RAID-0) является распределение "горячих точек"
- нагрузки; вы можете даже полностью уравнять ее, выбрав оптимальный
- размер страйпа (около 256 kB). Недостатки такой
- организации — более сложный код и ограничения на поддиски:
- все они должны быть строго одного размера. Кроме того, процесс
- добавления поддиска в набор с перемежением "на ходу" является
- настолько нетривиальной задачей, что в настоящее время Vinum не
- поддерживает эту операцию. Дополнительное (тривиальное)
- ограничение состоит в том, что набор с перемежением должен
- содержать как минимум два поддиска, иначе он будет неотличим от
- сцепленного.
-
-
-
- Преимущества и недостатки различных методов организации наборов
- описаны в .
-
-
- Методы организации наборов Vinum
-
-
-
- Тип набора
- Поддисков, мин.
- Расширяется "на лету"
- Поддиски строго одного размера
- Применение
-
-
-
-
-
- сцепленный (concatenated)
- 1
- да
- нет
- Крупные системы хранения, требующие максимальной
- гибкости и умеренной производительности
-
-
-
- с перемежением (striped)
- 2
- нет
- да
- Высокая производительность, в том числе в случае
- параллельного доступа к данным
-
-
-
-
-
-
-
-
- Несколько примеров
-
- Vinum ведет базу данных конфигурации, в которой
- описаны все объекты Vinum в отдельной системе. Начальная конфигурация
- создается пользователем при помощи системной утилиты &man.gvinum.8; из
- одного или нескольких конфигурационных файлов. Копия конфигурации
- хранится в начале каждого дискового раздела (привода) Vinum. Все копии
- обновляются при изменении состояния томов, поэтому после перезапуска
- состояние объектов Vinum восстанавливается.
-
-
- Конфигурационный файл
- Конфигурационный файл описывает объекты Vinum. Описание простого
- тома может быть таким:
-
-
- drive a device /dev/da3h
- volume myvol
- plex org concat
- sd length 512m drive a
-
- Здесь описываются четыре объекта Vinum:
-
-
-
- Строка drive объявляет дисковый раздел
- (привод) и его местоположение на физическом
- диске. Приводу дано символьное имя a.
- Разделение символьных имен и имен устройств дает возможность
- перемещать физические диски (например, по разным контроллерам, или
- менять их местами) без изменения конфигурации.
-
-
-
- Строка volume описывает том.
- Единственным требуемым параметром является имя тома
- myvol.
-
-
-
- Строка plex определяет набор.
- Единственный обязательный параметр — метод организации
- набора, в нашем случае concat (сцепленный).
- Давать набору имя в явном виде не обязательно: Vinum автоматически
- сгенерирует имя набора из имени тома и суффикса
- .px, где
- x — номер набора в томе. В нашем
- случае набор будет называться myvol.p0.
-
-
-
- Наконец, строка sd описывает поддиск.
- Минимальными требованиями к его описанию являются имя
- привода, на котором он будет располагаться, и
- его размер. Как и в случае набора, имя указывать не обязательно:
- имя поддиска будет построено добавлением
- .sx к имени набора, где
- x будет номером поддиска в наборе. Наш
- поддиск получит имя myvol.p0.s0.
-
-
-
- В результате обработки такого конфигурационного файла &man.gvinum.8;
- выдаст нам следующее:
-
-
- &prompt.root; gvinum -> create config1
- Configuration summary
- Drives: 1 (4 configured)
- Volumes: 1 (4 configured)
- Plexes: 1 (8 configured)
- Subdisks: 1 (16 configured)
-
- D a State: up Device /dev/da3h Avail: 2061/2573 MB (80%)
-
- V myvol State: up Plexes: 1 Size: 512 MB
-
- P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
-
- S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
-
- На этом кратком листинге показан формат вывода &man.gvinum.8;.
- Графически созданный нами том представлен на
- .
-
-
-
-
-
- Этот и последующие рисунки изображают том, содержащий один или
- несколько наборов, каждый из которых, в свою очередь, состоит из одного
- или нескольких поддисков. В первом тривиальном примере том состоит из
- одного набора, представленного одним поддиском.
-
- Построенный нами только что том не имеет никаких преимуществ перед
- обычным дисковым разделом. Он содержит единственный набор, так что не
- обеспечивает избыточность; набор состоит из одного поддиска, поэтому
- методика распределения дисковых блоков ничем не отличается от дискового
- раздела. В последующих параграфах мы рассмотрим более интересные
- конфигурации.
-
-
-
- Повышаем надежность: зеркалирование
-
- Надежность тома может быть повышена при помощи зеркалирования.
- Планируя зеркалированный том, важно не забыть о том, чтобы поддиски
- каждого набора располагались на разных физических дисках, чтобы отказ
- одного из них не привел к выходу из строя более чем одного набора. Вот
- конфигурация, определяющая зеркалированный том:
-
-
- drive b device /dev/da4h
- volume mirror
- plex org concat
- sd length 512m drive a
- plex org concat
- sd length 512m drive b
-
- Как мы видим, нет необходимости вновь описывать привод
- a, поскольку Vinum сохраняет состояние уже
- сконфигурированных объектов. После обработки этих определений
- конфигурация будет выглядеть так:
-
-
- Drives: 2 (4 configured)
- Volumes: 2 (4 configured)
- Plexes: 3 (8 configured)
- Subdisks: 3 (16 configured)
-
- D a State: up Device /dev/da3h Avail: 1549/2573 MB (60%)
- D b State: up Device /dev/da4h Avail: 2061/2573 MB (80%)
-
- V myvol State: up Plexes: 1 Size: 512 MB
- V mirror State: up Plexes: 2 Size: 512 MB
-
- P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
- P mirror.p0 C State: up Subdisks: 1 Size: 512 MB
- P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB
-
- S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
- S mirror.p0.s0 State: up PO: 0 B Size: 512 MB
- S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB
-
- иллюстрирует структуру
- полученного тома.
-
-
-
-
-
- В данном примере каждый набор содержит все 512 MB адресного
- пространства тома. Как и в предыдущем случае, каждый набор состоит
- из одного поддиска.
-
-
-
- Оптимизируем производительность
-
- Зеркалированный том из предыдущего примера гораздо более
- отказоустойчив, чем обычный том, но его производительность ниже:
- каждый запрос на запись выливается в две операции физической записи,
- что вдвое увеличивает необходимую пропускную способность шины дисковой
- подсистемы. Увеличение производительности требует иного подхода:
- вместо зеркалирования данные распределяются (перемежением) по
- максимальному количеству физических дисков. Следующий пример
- конфигурации создает том с перемежением на четырех дисках:
-
-
- drive c device /dev/da5h
- drive d device /dev/da6h
- volume stripe
- plex org striped 512k
- sd length 128m drive a
- sd length 128m drive b
- sd length 128m drive c
- sd length 128m drive d
-
- Как и ранее, нет необходимости переопределять уже
- сконфигурированные приводы. Общий вид базы конфигурации Vinum после
- создания нового тома будет таким:
-
-
- Drives: 4 (4 configured)
- Volumes: 3 (4 configured)
- Plexes: 4 (8 configured)
- Subdisks: 7 (16 configured)
-
- D a State: up Device /dev/da3h Avail: 1421/2573 MB (55%)
- D b State: up Device /dev/da4h Avail: 1933/2573 MB (75%)
- D c State: up Device /dev/da5h Avail: 2445/2573 MB (95%)
- D d State: up Device /dev/da6h Avail: 2445/2573 MB (95%)
-
- V myvol State: up Plexes: 1 Size: 512 MB
- V mirror State: up Plexes: 2 Size: 512 MB
- V striped State: up Plexes: 1 Size: 512 MB
-
- P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
- P mirror.p0 C State: up Subdisks: 1 Size: 512 MB
- P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB
- P striped.p1 State: up Subdisks: 1 Size: 512 MB
-
- S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
- S mirror.p0.s0 State: up PO: 0 B Size: 512 MB
- S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB
- S striped.p0.s0 State: up PO: 0 B Size: 128 MB
- S striped.p0.s1 State: up PO: 512 kB Size: 128 MB
- S striped.p0.s2 State: up PO: 1024 kB Size: 128 MB
- S striped.p0.s3 State: up PO: 1536 kB Size: 128 MB
-
-
-
-
-
- Новосозданный том представлен на
- . Плотность заштрихованных участков
- показывает расположение страйпов в адресном пространстве набора (от
- светлых к темным).
-
-
-
- Отказоустойчивость и производительность одновременно
-
-
- При наличии достаточного количества дисков можно создать том,
- сочетающий повышенную отказоустойчивость и высокую производительность
- по сравнению со стандартными дисковыми разделами &unix;. Типичная
- конфигурация может быть такой:
-
-
- volume raid10
- plex org striped 512k
- sd length 102480k drive a
- sd length 102480k drive b
- sd length 102480k drive c
- sd length 102480k drive d
- sd length 102480k drive e
- plex org striped 512k
- sd length 102480k drive c
- sd length 102480k drive d
- sd length 102480k drive e
- sd length 102480k drive a
- sd length 102480k drive b
-
- Как вы можете заметить, поддиски второго набора смещены на два
- привода относительно поддисков первого. В результате даже при запросе
- на запись, пересекающем границы страйпа, не возникнет двух обращений к
- одному физическому диску.
-
- отражает структуру нового
- тома.
-
-
-
-
-
-
-
-
- Правила именования объектов
-
- Как уже было описано, Vinum автоматически именует создаваемые
- наборы и поддиски, хотя эти имена и могут быть переопределены. На самом
- деле, мы не рекомендовали бы переопределять стандартные имена: опыт с
- дисковым менеджером VERITAS показал, что гибкость в именовании объектов
- не дает ощутимого преимущества, а запутать пользователя может.
-
- Имена объектов могут состоять из любых непробельных символов.
- Впрочем, рекомендуем ограничиться буквами, цифрами и подчеркиваниями.
- Имена томов, наборов и поддисков могут быть до 64 символов длиной;
- максимальная длина имени привода — 32 символа.
-
- Для объектов Vinum в иерархии /dev/gvinum
- создаются файлы устройств. Приведенный выше пример конфигурации создаст
- следующий набор устройств:
-
-
-
- Данный список относится только к ранней реализации
- Vinum.
-
- Управляющие устройства
- /dev/vinum/control и
- /dev/vinum/controld, используемые системной
- утилитой &man.gvinum.8; и даемоном Vinum соответственно.
-
-
-
- Устройства для каждого из томов.
- Основные устройства, используемые Vinum'ом.
- Таким образом, вышеописанная конфигурация
- будет включать блоковые устройства
- /dev/gvinum/myvol,
- /dev/gvinum/mirror,
- /dev/gvinum/striped,
- /dev/gvinum/raid5 и
- /dev/gvinum/raid10.
-
-
-
- Данный список относится только к ранней реализации
- Vinum.
-
- Каталог /dev/vinum/drive
- с записями для каждого привода. В реальности, каждая запись является
- символьной ссылкой на соответствующий файл дискового
- устройства.
-
-
-
- Записи для томов располагаются в каталоге
- /dev/gvinum.
-
-
-
- Каталоги
- /dev/gvinum/plex и
- /dev/gvinum/sd
- содержащие устройства для наборов и
- для каждого из поддисков.
-
-
-
- Например, для конфигурации, описываемой как
-
- drive drive1 device /dev/sd1h
- drive drive2 device /dev/sd2h
- drive drive3 device /dev/sd3h
- drive drive4 device /dev/sd4h
- volume s64 setupstate
- plex org striped 64k
- sd length 100m drive drive1
- sd length 100m drive drive2
- sd length 100m drive drive3
- sd length 100m drive drive4
-
- после обработки &man.gvinum.8;, созданный набор устройств в каталоге
- /dev/gvinum будет таким:
-
-
- drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex
- crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 s64
- drwxr-xr-x 2 root wheel 512 Apr 13 16:46 sd
-
- /dev/vinum/plex:
- total 0
- crwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0
-
- /dev/vinum/sd:
- total 0
- crwxr-xr-- 1 root wheel 91, 0x20000002 Apr 13 16:46 s64.p0.s0
- crwxr-xr-- 1 root wheel 91, 0x20100002 Apr 13 16:46 s64.p0.s1
- crwxr-xr-- 1 root wheel 91, 0x20200002 Apr 13 16:46 s64.p0.s2
- crwxr-xr-- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3
-
- Заметим, что, несмотря на то что наборы и поддиски не рекомендуется
- называть каким-либо специальным образом, приводы Vinum должны быть
- поименованы. Именование позволяет отвязать приводы от физических
- устройств, и при этом обеспечить их автоматическое распознавание. Имена
- приводов могут достигать длины в 32 символа.
-
-
- Создание файловых систем
-
- Тома с точки зрения системы аналогичны дискам, за одним малым
- исключением: в отличие от дисков &unix;, тома Vinum не содержат таблиц
- разделов. В результате
- потребовалось модифицировать некоторые утилиты работы с дисками, в
- первую очередь &man.newfs.8;, которая ранее использовала последний
- символ имени тома для определения идентификатора раздела. Например,
- дисковое устройство может именоваться
- /dev/ad0a — первый раздел
- (a) первого (0) IDE-диска
- (ad) — или
- /dev/da2h — восьмой раздел
- (h) третьего (2) диска SCSI
- (da). Том Vinum может называться, например,
- /dev/gvinum/concat — как легко
- видеть, имя тома никак не связано с именем раздела.
-
- Обычно &man.newfs.8; пытается интерпретировать имя раздела и
- сообщает об ошибке при невозможности такой интерпретации:
-
- &prompt.root; newfs /dev/gvinum/concat
-newfs: /dev/gvinum/concat: can't figure out file system partition
-
- Для создания файловых систем на томе Vinum следует использовать
- команду &man.newfs.8;:
-
- &prompt.root; newfs /dev/gvinum/concat
-
- Для &os; версий до 5.0 необходимо использовать флаг
- и старую схему именования устройств:
-
- &prompt.root; newfs -v /dev/vinum/concat
-
-
-
-
-
- Создание конфигурации Vinum
-
- Стандартное (GENERIC) ядро FreeBSD не включает
- Vinum. Хотя и можно собрать специальное ядро с включенной поддержкой
- Vinum, этот вариант не рекомендуется. Обычный способ активизации
- Vinum — загрузка модуля для ядра (kld). При
- этом, явно использовать команду &man.kldload.8; нет необходимости: при
- старте утилита &man.gvinum.8; проверит наличие поддержки Vinum в ядре и
- при необходимости загрузит модуль автоматически.
-
-
- Активация
-
- Vinum хранит конфигурационную информацию на дисковых разделах
- в той же форме, что используется в файлах конфигурации при создании
- объектов. Впрочем, в них применяются некоторые ключевые слова, не
- разрешенные в файлах конфигурации. Например, хранимая на диске база
- может выглядеть так:
-
- volume myvol state up
-volume bigraid state down
-plex name myvol.p0 state up org concat vol myvol
-plex name myvol.p1 state up org concat vol myvol
-plex name myvol.p2 state init org striped 512b vol myvol
-plex name bigraid.p0 state initializing org raid5 512b vol bigraid
-sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b
-sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b
-sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b
-sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b
-sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b
-sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b
-sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b
-sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b
-sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b
-sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b
-sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b
-sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b
-sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216b
-
- Видно, что каждый объект имеет явно описанное имя, а поддиски
- еще и явное положение на приводе (и то и другое может, хотя это и не
- рекомендуется, устанавливаться пользователем). Помимо этого, для
- каждого объекта хранится его состояние (и установка состояния
- напрямую пользователю недоступна). Vinum не хранит в
- конфигурационных базах информацию о приводах: она создается при
- сканировании дисковых разделов, помеченных как Vinum. Это дает
- возможность Vinum правильно идентифицировать диски при смене имени
- устройства.
-
-
- Автоматическая активация
-
- Данная информация относится к исторической реализации.
- Gvinum обеспечивает автоматическую активацию
- при условии загрузки модуля ядра.
-
- Для автоматического старта Vinum при загрузке системы добавьте
- следующую строку в файл конфигурации системы
- /etc/rc.conf:
-
- start_vinum="YES" # set to YES to start vinum
-
- Если в вашей системе нет файла
- /etc/rc.conf, создайте его с таким содержимым.
- Данная строка вызовет активацию kld модуля Vinum
- при загрузке, а также старт всех объектов, упомянутых в конфигурации
- Vinum. Активация Vinum происходит до монтирования файловых систем,
- так что возможны автоматическая проверка (&man.fsck.8;) и
- монтирование файловых систем на томах Vinum.
-
- При старте с помощью команды vinum start,
- Vinum читает базы конфигурации с одного из приводов. В нормальной
- ситуации все приводы содержат идентичную информацию о конфигурации,
- так что не имеет значения, какой именно диск будет читаться. В
- случае краха Vinum определяет, какая копия является наиболее свежей,
- в дальнейшем использует ее, а также обновляет ее на оставшихся
- приводах.
-
-
-
-
-
- Vinum для корневой файловой системы
-
- Сервер, все информационные файловые системы которого дублированы,
- хотелось бы оснастить и зеркалированной корневой файловой системой.
- Создание такой конфигурации не вполне тривиально по сравнению с
- зеркалированием прочих файловых систем:
-
-
-
- Корневая файловая система должна быть доступна для чтения
- в самом начале процесса загрузки, так что инфраструктура Vinum
- должна к этому моменту уже работать.
-
-
- Том с корневой файловой системой содержит, помимо прочего,
- системный загрузчик и ядро, которые должны читаться "родными"
- (native) утилитами компьютера (BIOS для машин архитектуры PC);
- обеспечить поддержку ими тонкостей Vinum зачастую невозможно.
-
-
-
-
- В данном разделе термин корневой том означает
- том Vinum, содержащий корневую файловую систему. Неплохой идеей является
- назвать такой том "root", хотя это, разумеется, и
- необязательно. Все наши примеры, впрочем, будут использовать именно это
- имя.
-
-
- Активизация Vinum на ранней стадии процесса загрузки
-
- Для обеспечения этого необходимо следующее:
-
-
-
- Vinum должен быть доступен ядру еще на этапе загрузки.
- Метод, описанный в ,
- неприменим; на самом деле, параметр start_vinum
- не должен быть установлен. Одним из вариантов
- является сборка ядра с поддержкой Vinum, что возможно, но, как
- правило, нежелательно. Более удобный вариант — загрузка
- модуля ядра Vinum при помощи /boot/loader
- (), для чего в файл
- /boot/loader.conf следует добавить
- строку
-
- geom_vinum_load="YES"
-
-
-
-
- В случае Gvinum, все стартовые
- процедуры производятся автоматически, при загрузке модуля ядра.
- Дальнейший текст описывает поведение исторической реализации
- Vinum для старых систем.
-
- Vinum должен быть активирован достаточно рано, поскольку
- требуется предоставить том для корневой файловой системы. По
- умолчанию Vinum в ядре не начинает поиск приводов, содержащих
- информацию о томах Vinum, до команды администратора (или одного из
- стартовых скриптов) vinum start.
-
- Данный раздел описывает необходимые действия для FreeBSD
- версии 5.X и старше. Шаги, необходимые в случае FreeBSD версии 4.X,
- описаны ниже: .
-
- Строка
-
- vinum.autostart="YES"
-
- в файле /boot/loader.conf, указывает
- Vinum автоматически просканировать все диски
- для сбора информации о томах в процессе загрузки ядра.
-
-
- Обращаем ваше внимание, что нет необходимости как-либо
- специально сообщать ядру, где находится корневая файловая система.
- Загрузчик (/boot/loader) найдет необходимое
- имя устройства в
- /etc/fstab и передаст его ядру. В момент
- монтирования корневой файловой системы ядро передаст имя устройства
- соответствующему драйверу для декодирования (трансляции в пару
- идентификаторов устройств — major/minor device
- number).
-
-
-
-
-
- Загрузчик должен прочесть корневой том Vinum
-
- В настоящее время начальный загрузчик FreeBSD ограничен размером
- всего в 7.5 KB, и этот размер фактически исчерпан (загрузчик должен
- уметь прочесть файл /boot/loader с файловой
- системы формата UFS и передать ему управление). Невозможно разместить
- в загрузчике внутренние структуры Vinum, чтобы он мог считать настройку
- Vinum и самостоятельно определить элементы загрузочного тома.
- Поэтому, для создания у
- загрузчика иллюзии, что загрузка происходит со стандартного раздела
- "a" требуются некоторые дополнительные
- ухищрения.
-
- Для того, чтобы такая загрузка вообще была возможной, корневой том
- должен отвечать следующим требованиям:
-
-
-
- быть только зеркалированным (ни перемежение, ни RAID5
- невозможны);
-
-
-
- содержать ровно один поддиск на каждом из наборов.
-
-
-
- Заметим, что возможно (и является, вообще говоря, основной целью),
- чтобы корневой том содержал несколько наборов, каждый с копией корневой
- файловой системы. В процессе загрузки, впрочем, используется только
- одна из копий (на этапе поиска начального загрузчика и его
- конфигурационных файлов, ядра, модулей и т.п. до момента монтирования
- корневой файловой системы). Для обеспечения возможности загрузки
- поддиск каждого из наборов должен быть отображен в псевдо-раздел
- "a". Вообще говоря, эти псевдо-разделы не обязаны
- находиться на одних и тех же местах дисков; тем не менее, во избежание
- излишней путаницы, рекомендуется создавать тома с одинаково устроенными
- дисками для зеркалирования.
-
- Для создания псевдо-разделов "a" необходимо
- для каждого из дисков, содержащих копию корневого тома, проделать
- следующее:
-
-
-
- Определить положение (смещение от начала устройства) и размер
- поддиска, являющегося частью корневого тома:
-
- &prompt.root; gvinum l -rv root
-
- Отметим, что все размеры и смещения в терминах Vinum указаны
- в байтах. Для получения номеров блоков, используемых в утилите
- bsdlabel, все числа надо поделить
- на 512.
-
-
-
- Выполнить команду
-
- &prompt.root; bsdlabel -e devname
-
- для каждого из дисков, на котором будет расположен корневой
- том. devname будет или именем диска
- (например, da0) для дисков без таблицы
- слайсов, или именем слайса (ad0s1).
-
- Если на устройстве уже есть раздел "a"
- (скорее всего, это предыдущая инкарнация корневой файловой
- системы), он должен быть переименован (чтобы быть доступным в
- будущем, на всякий случай; при этом стартовый загрузчик больше не
- должен выбирать его по умолчанию). Не забудьте, что активный
- (например, смонтированный) раздел не может быть переименован, так
- что переименование нужно производить или загрузившись с диска
- Fixit, или в два шага (для конфигурации с
- зеркалированием сначала переименовать раздел на втором диске,
- затем, после перезагрузки, на первом).
-
- Затем, адрес начала нового раздела "a"
- вычисляется как сумма начального смещения раздела Vinum и
- подсчитанного выше адреса поддиска внутри привода. Совместно с
- вычисленным размером эти значения вносятся в поля
- "offset" и "size" строки
- "a" &man.bsdlabel.8;; Поле
- "fstype" должно быть 4.2BSD.
- Значения полей "fsize",
- "bsize" и "cpg" желательно
- заполнить в соответствии с имеющейся файловой системой, хотя
- в обсуждаемом контексте это и не строго обязательно.
-
- Как можно заметить, новосозданный раздел
- "a" располагается внутри раздела Vinum. Утилита
- bsdlabel разрешает разделам пересекаться только
- в случае, если один из них корректно описан как имеющий тип
- "vinum".
-
-
-
- Готово! Сконструированный псевдо-раздел
- "a" создан на каждом из устройств, содержащих
- реплики корневого тома. Крайне важно проверить результат
- еще раз, выполнив команду
-
- &prompt.root; fsck -n /dev/devnamea
-
-
-
- Следует помнить, что все файлы, содержащие загрузочную
- конфигурацию, должны быть построены в соответствии с новой корневой
- файловой системой; скорее всего, эта информация не будет соответствовать текущему
- положению вещей. В особенности, следует обратить внимание на
- содержимое файлов /etc/fstab и
- /boot/loader.conf.
-
- После перезагрузки начальный загрузчик должен определить данные
- новой корневой файловой системы на основе Vinum и действовать в
- соответствии с ними. В завершение процесса инициализации ядра, после
- упоминания всех определившихся устройств, должно появиться сообщение
- вида:
-
- Mounting root from ufs:/dev/gvinum/root
-
-
-
- Пример конфигурации корневой файловой системы на базе Vinum
-
- После создания корневого тома, вывод команды
- gvinum l -rv root будет примерно таким:
-
-
-...
-Subdisk root.p0.s0:
- Size: 125829120 bytes (120 MB)
- State: up
- Plex root.p0 at offset 0 (0 B)
- Drive disk0 (/dev/da0h) at offset 135680 (132 kB)
-
-Subdisk root.p1.s0:
- Size: 125829120 bytes (120 MB)
- State: up
- Plex root.p1 at offset 0 (0 B)
- Drive disk1 (/dev/da1h) at offset 135680 (132 kB)
-
-
- Из этой информации нас более всего интересует смещение в
- 135680 байт относительно раздела
- /dev/da0h. После деления на 512 получим 265
- дисковых блоков для утилиты bsdlabel. Аналогичным
- образом, размер тома составит 245760 512-байтных блоков. Так же
- устроена реплика тома на диске
- /dev/da1h.
-
- Разметка разделов (bsdlabel) будет выглядеть примерно так:
-
-
-...
-8 partitions:
-# size offset fstype [fsize bsize bps/cpg]
- a: 245760 281 4.2BSD 2048 16384 0 # (Cyl. 0*- 15*)
- c: 71771688 0 unused 0 0 # (Cyl. 0 - 4467*)
- h: 71771672 16 vinum # (Cyl. 0*- 4467*)
-
-
- Как уже отмечалось, размер ("size")
- псевдо-раздела "a" соответствует значению,
- вычисленному ранее; смещение ("offset") равно сумме
- смещения поддиска внутри раздела Vinum ("h") и
- смещения самого этого раздела относительно начала диска (слайса). Так
- мы избегаем проблем, описанных ниже (). Заметим также, что раздел
- "a" целиком размещен внутри раздела
- "h", описывающего все данные Vinum на этом
- диске.
-
- Заметим, что в описанном примере все дисковое пространство отдано
- Vinum. Корневого раздела, существовавшего до настройки Vinum, нет,
- поскольку это вновь установленный диск, предназначенный для
- использования исключительно в Vinum.
-
-
-
-
-
- Проблемы и их устранение
-
- Если что-то пошло не так, должен быть путь для восстановления
- доступа к информации. Далее описаны некоторые известные проблемные
- ситуации и способы их устранения.
-
-
- Загрузчик работает, но система не грузится
-
- Если по каким-то причинам система не может завершить загрузку,
- загрузчик может быть прерван нажатием пробела в течение первых 10 (по
- умолчанию) секунд. Вы можете посмотреть переменные загрузчика (такие
- как vinum.autostart) при помощи команды
- show и изменить их содержимое командами
- set и unset.
-
- Если единственной проблемой было отсутствие загруженного
- модуля ядра Vinum, поможет просто команда
- load geom_vinum.
-
- Процесс загрузки должен быть продолжен командой
- boot -as. Параметры заставят
- ядро спросить о корневой файловой системе (параметр
- ) и остановить процесс загрузки в
- однопользовательском (параметр ) режиме. При этом
- корневая файловая система будет смонтирована в режиме "только для
- чтения" (read-only). В результате, даже если будет смонтирован лишь
- один набор из многонаборного тома, риска рассинхронизации наборов
- нет.
-
- Ответом на приглашение ввести адрес корневой файловой системы
- может быть имя любого устройства, указывающего на файловую систему,
- пригодную для загрузки. При корректно построенной карте файловых
- систем (/etc/fstab) значением по умолчанию
- должно быть что-то вроде ufs:/dev/gvinum/root.
- Распространенной альтернативой будет, например,
- ufs:da0d (раздел, содержащий корневую файловую
- систему в эпоху "до Vinum"). Будьте осторожны, монтируя в качестве
- корневой файловой системы раздел "a", ссылающийся
- внутрь привода Vinum. В зеркалированном томе смонтируется только
- часть файловой системы. Если вам потребуется изменить ее
- содержимое, необходимо будет также удалить и создать заново остальные
- наборы тома в конфигурации Vinum, иначе они будут содержать
- несинхронизированные данные.
-
-
-
- Работает только основной загрузчик
-
- Если /boot/loader не загружается,
- а основной загрузчик все еще пригоден к работе (в
- начале процесса загрузки появляется одиночный минус в первой колонке экрана),
- можно попытаться прервать основной загрузчик нажатием пробела в этот
- момент. При этом загрузка будет остановлена на второй стадии
- (см. ). Можно
- попробовать загрузиться с другого раздела, например, содержащего
- предыдущую копию корневой файловой системы (бывший раздел
- "a", см. выше).
-
-
-
- Ничего не грузится, загрузчик падает
-
- Это происходит, когда загрузчик на диске затерт Vinum'ом.
- К сожалению, Vinum оставляет лишь 4 KB в начале своего раздела
- до записи своих управляющих блоков. Две стадии первоначального
- загрузчика в совокупности с меткой диска BSD (bsdlabel) требуют
- 8 KB. Так что попытка создать раздел Vinum по смещению 0 диска
- или слайса, который должен быть загруженным, затрет загрузчик.
-
- Что хуже, попытка разрешить описанную ситуацию посредством
- загрузки с диска Fixit и перезаписи начального
- загрузчика при помощи команды bsdlabel -B (как
- описано в ) приведет к тому, что
- загрузчик затрет управляющий заголовок Vinum, и тот не сможет найти
- свой диск. Хотя собственно конфигурация Vinum при этом не
- потеряется, и все данные могут быть восстановлены посредством
- создания объектов на их предыдущих местах, очень сложно окончательно
- исправить ситуацию. Весь раздел Vinum должен быть смещен по
- крайней мере на 4 KB, так чтобы загрузчики и заголовок Vinum
- более не пересекались.
-
-
-
-
-
-
- Отличия для FreeBSD версий 4.X
-
- В системах под управлением FreeBSD 4.X отсутствуют некоторые
- функции ядра, необходимые для автоматического сканирования дисков
- Vinum'ом; кроме того, код, определяющий номера устройств корневой
- файловой системы, недостаточно продвинут для того, чтобы понимать
- конструкции вида /dev/vinum/root. Требуется
- приложение дополнительных усилий.
-
- Во-первых, в файле /boot/loader.conf должен
- быть явно указан список дисков, которые Vinum будет сканировать:
-
- vinum.drives="/dev/da0 /dev/da1"
-
- Важно, чтобы были описаны все приводы, на которых могут встретиться
- данные Vinum. Не произойдет ничего плохого, если будет описано
- больше дисков, чем необходимо. Также, нет нужды
- описывать все слайсы и/или разделы (Vinum сканирует их
- автоматически).
-
- Поскольку подпрограммы разбора имени корневой файловой системы
- и определения номеров устройств воспринимают только
- классические имена, такие как
- /dev/ad0s1a, для них не подходят имена типа
- /dev/vinum/root. Имя корневого тома должно
- быть сообщено Vinum отдельно. Для этого служит переменная загрузчика
- vinum.root. Соответствующая строка в файле
- /boot/loader.conf будет выглядеть так:
-
- vinum.root="root"
-
-
- Процедура инициализации ядра выглядит так: перед определением
- корневого устройства для загрузки проверяется, не установил ли
- какой-либо модуль соответствующий параметр ядра. В случае
- положительного ответа и при совпадении основного
- (major) номера устройства драйвера и установленной файловой системы
- автоопределение прекращается, что дает возможность передать продолжение
- процесса загрузки и монтирование корневого тома Vinum.
-
- Следует отметить, впрочем, что обработчик ответа на запрос имени
- корневой файловой системы (boot -a) не может
- разобрать имя тома Vinum. Можно ввести имя устройства, отличное от
- устройства Vinum (в этом случае произойдет стандартная процедура
- разбора, так что можно указать, например,
- ufs:da0d). Имена же, подобные
- ufs:vinum/root не могут быть распознаны.
- Единственным выходом из этой ситуации будет перезагрузка и введение
- имени устройства заново (префикс /dev/ в
- ответе на запрос askroot всегда можно опустить).
-
-
-