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 - -
-
- - По сравнению с зеркалированием преимуществом 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;. - Графически созданный нами том представлен на - . - - -
- Простой том Vinum - -
-
- - Этот и последующие рисунки изображают том, содержащий один или - несколько наборов, каждый из которых, в свою очередь, состоит из одного - или нескольких поддисков. В первом тривиальном примере том состоит из - одного набора, представленного одним поддиском. - - Построенный нами только что том не имеет никаких преимуществ перед - обычным дисковым разделом. Он содержит единственный набор, так что не - обеспечивает избыточность; набор состоит из одного поддиска, поэтому - методика распределения дисковых блоков ничем не отличается от дискового - раздела. В последующих параграфах мы рассмотрим более интересные - конфигурации. -
- - - Повышаем надежность: зеркалирование - - Надежность тома может быть повышена при помощи зеркалирования. - Планируя зеркалированный том, важно не забыть о том, чтобы поддиски - каждого набора располагались на разных физических дисках, чтобы отказ - одного из них не привел к выходу из строя более чем одного набора. Вот - конфигурация, определяющая зеркалированный том: - - - 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 - - иллюстрирует структуру - полученного тома. - - -
- Зеркалированный том Vinum - -
-
- - В данном примере каждый набор содержит все 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 всегда можно опустить). - - -