CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
16.07.2019

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: BSD :: FreeBSD

Всё имеет свое начало...
2. Варианты установки

CITKIT.ru

Страницы: предыдущая :: 1 :: 2 :: 3 :: 4 :: следующая

Содержание

Установка для использования softRAID

Как уже говорилось в главе о базовых познаниях, файловые системы FreeBSD могут быть размещены не только непосредственно на логических разделах слайса (слайсов), но и на так называемых логических томах — объединении нескольких разделов таким образом, что они выглядят для пользователя единым устройством. И одно из назначений логических томов — создание программных RAID-массивов, способствующих либо увеличению быстродействия файловых операций за счёт распараллеливания процессов чтения и записи, либо повышению их надёжности за счёт так называемой избыточности (полной или частичной) хранения данных. Очевидно, что обе функции RAID будет выполнять только в том случае, если образующие его разделы лежат на разных физических устройствах. То есть необходимым условием его использования является наличие в машине минимум двух винчестеров. Причём распараллеливание на диски с интерфейсом PATA будет эффективным только при подключении их к разным IDE-каналам контроллера (или к разным контроллерам): на одной линии параллельный (stripping) RAID вызовет даже замедление работы.

Собственно говоря, для использования двух винчестеров во FreeBSD (да и любой другой ОС) RAID-массив вовсе не обязателен — достаточно было бы создать на втором диске BSD-слайс, разметить его как один логический раздел, создать на нем файловую систему и смонтировать ее в тот из подкаталогов, который больше всего испытывает потребность в расширении жизненного пространства, например, в /usr/home/username/disk2 (домашний каталог — j,sxyj главный пожиратель дисковод памяти). Просто, но не верх удобства. Нужно все время помнить, что пользовательский каталог на самом деле не только образован двумя файловыми системами, но и лежит на двух дисках. Что, кроме всего прочего, накладывает ограничения на жесткие ссылки внутри него...

Так что организовать два диска в виде единого пространства — безусловно, удобнее. А для этого в природе предусмотрено несколько механизмов, в частности, аппаратный RAID и RAID программный (softRAID). Первый относится целиком к "внеоперационной" сфере, так что поговорим об установке FreeBSD с использованием второго. И разумеется, речь пойдёт о softRAID level 0, то есть массиве с распараллеливанием чтения/записи — поскольку зеркалирование просто не соответствует пользовательским задачам, а прочие варианты с избыточностью — сложны и неоправданны. Вообще, ИМХО, RAID-массивы с избыточностью на настольной машине — баловство: от ошибок пользователя (причины 99% потери данных в домашних условиях) они не страхуют (а иногда способны даже усугубить их последствия). От аппаратных же сбоев — только в том случае, если в столе лежит запасной винчестер на смену рухнувшему. Ситуация, вероятно, не редкая для админа локальной сети — но практически исключенная на дому; по крайней мере, если бы у меня завалялся незадействованный винчестер, я нашел бы десятки способов пристроить его к делу...

Под FreeBSD есть несколько методов реализации softRAID. В данном разделе будет рассказано о самом простом из них, использующем ccd (Concatenated Disk driver — драйвер слияния дисков). Он позволяет создавать программные RAID-массивы нулевого (stripping) и первого (mirroring) уровней. Как уже говорилось, нас сейчас будет интересовать только нулевой.

Начать следует с повторения сказанного ранее: задействовать программный RAID через sysinstall нельзя. Но можно выполнить первичную установку таким образом, чтобы максимально упростить эту задачу. И еще — разместить на программном RAID'е средствами ccd корневую файловую систему нельзя (при использовании vinum это возможно — но опять-таки не через sysinstall). Поэтому прежде чем заниматься его построением, необходимо установить систему в минимальном объеме.

Итак, мы имеем машину с двумя физическими дисками, которые предназначены для установки FreeBSD на программный RAID. Диски желательно иметь примерно равными по объему — или иметь возможность создать на них одинакового размера слайсы: суммарное пространство массива нулевого уровня будет равно удвоенному объему меньшего носителя, а излинее место на носителе большем просто пропадёт.

Сначала действуем как обычно — загружаемся с установочного носителя и в главном меню sysinstall выбираем заказную установку. После этого отправляемся в пункт Partition и на первом диске создаём два слайса: первый — объёмом 512 Мбайт плюс половина того объема, который мы планируем отвести под своппинг, второй будет занимать всё оставшееся пространство. На первом создаём два раздела: корневой (/dev/ad0s1a) — на те самые 512 Мбайт, и раздел подкачки (/dev/ad0s1b), который займёт всё оставшееся место. Второй слайс целиком размечаем как единственный раздел (/dev/ad0s2d) и до времени о нём забываем.

На втором диске также создаём два слайса. Первый из них целиком определяем как раздел подкачки (/dev/ad1s1b), предварительно позаботившись о том, чтобы по объему он был примерно равен аналогичному разделу первого диска. На втором слайсе (он должен быть примерно равен по объему второму слайсу диска первого) также размечаем один раздел, но уже под данные (/dev/ad1s2d).

Легко догадаться, что разделы на вторых слайсах каждого диска предназначаются для создания RAID. Правда, тут надо оговориться, что, возможно, под RAID может потребоваться и больше, чем по одному слайсу на каждом диске; почему — скоро увидим. А зачем нужны два swap-раздела — также понятно: теоретически это увеличивает производительность при обращении к ним (подробнее этот вопрос будет рассмотрен в соответствующей главе), хотя практически ныне это скорее всего заметить не удастся.

Но всё это будет потом. А пока продолжаем установку. Для чего, покончив с разметкой, переходим в пункт Distributions и выбираем там пункт Custom, где к абсолютно необходимому минимуму base и kernels добавляем также man-страницы. Предполагается, что разделы /var, /usr и /home будут вынесены на конкатенированный массив, а в /tmp смонтируется mfs, так что сейчас перед нами стоит задача минимизации установки в единственный пока корневой раздел. Тем не менее, экономить на страницах тёти Мани не следует, дабы с самого начала не остаться с ccd один на один.

Завершив установку выбранных компонентов Distributions, полностью отказавшись от любых дополнительных пакетов и выполнив необходимые действия по конфигурированию (отказавшись от создания пользовательского аккаунта), перезагружаемся в однопользовательском режиме, выбрав соответствующий пункт из меню BSD Loader'а и приступаем к продолжению банкета — собственно созданию RAID-массива и переносу на него "лишних" каталогов. Для этого вооружаемся утилитой ccdconfig, коей и сливаем подготовленные ранее разделы для каждой пары сливаемых партиций примерно таким образом:

# ccdconfig ccd0 128 none /dev/ad0s2d /dev/ad1s1d

Где ccd# — имя создаваемого RAID-устройства, 128 (для примера — это умолчальное значение) — размер (в Кбайт) блоков чередования записи данных на парные диски (так называемых chunk'ов), флаг none отменяет зеркалирование (то есть создает именно sripped-массив). Ну а аргументы команды понятны — это имена файлов разделов, которые подвергаются конкатенации.

В результате в каталоге /dev будет автоматически создан файл нового устройства — /dev/ccd0, а в каталоге /etc возникнет конфигурационный файл ccd.config.

Дальнейшее обращение с конкатенированным массивом происходит точно так же, как и с обычным слайсом: то есть его нужно разметить на BSD-разделы, на них создать файловые системы и смонтировать их в целевые каталоги. За одним исключением — прибегнуть к помощи sysinstall по прежнему не удастся, так что вся надежда только на собственные руки. А именно, даём команду

# bsdlabel -e /dev/ccd0

которая вызовет текстовый редактор для прямой модификации дисковой разметки. Процедура это не то чтобы сложная, но требует некоторых дополнительных навыков и, главное, аккуратности, поэтому в деталях она будет описана в соответствующей главе. Пока же замечу только, что в результате мы получим разделы заданного размера, начиная от /dev/ccd0d до /dev/ccd0h — на количество слайсов внутри ccd-тома действуют те же самые ограничения, что и для BSD-слайса. Так что если требуемое количество разделов в эти ограничения не вписывается (а согласно приведённой ранее схеме разметки, оно не впишется точно), то придётся создавать несколько слайсов на каждом диске для их попарной конкатенации (подробнее об этом дует говориться в соответствующей главе).

Теперь остаётся выполнить три процедуры. Первая — создание файловых систем на новообразованных разделах, для чего предназначена команда newfs:

# newfs /dev/ccd0d
# newfs /dev/ccd0e
# newfs /dev/ccd0f
...

и так далее. Вторая задача — созданные файловые системы смонтировать в предназначенные для них каталоги /var, /usr, /home. Однако если последний девственно чист (не зря же мы отказались от создания пользовательского аккаунта при постинсталляционной настройке), то в прочих — имеют место быть файлы, не очень многочисленные (установка ведь велась по принципу минимализма), но жизненно важные для работы системы. Так что предварительно их следует перенести на новые, конкатенированные, файловые системы.

Со старым каталогом /var это проходит без проблем: монтируем предназначенный для него ccd-раздел в какую-нибудь специально созданную точку (например, /tmp/var)

# mount /dev/ccd0d /tmp/var

и просто перемещаем все содержимое:

# mv /var/* /tmp/var

Возможные при этом сообщения об ошибках хладнокровно игнорируем — практика показала, что никаких отрицательных последствий они за собой не влекут.

С каталогом /usr поступаем также:

# mount /dev/ccd0e /tmp/usr
# mv /usr* /tmp/usr

Если получается — все хорошо. Хотя тут возможны осложнения, если находящиеся в старом /usr файлы как-то используются в текущий момент системой. Конечно, при корректном переходе в однопользовательский режим такого случиться не должно, но чем черт не шутит. Так что не исключено, что для переноса файлов из /usr потребуется перезагрузка с rescue-CD.

Тем или иным образом перенеся содержимое старых каталогов в новые, конкатенированные, файловые системы, остается только прописать их в /etc/fstab, дабы увековечить навсегда, примерно таким образом:

/dev/ccd0d      /var	ufs	rw,noatime
/dev/ccd0e      /usr	ufs	rw,noatime
/dev/ccd0f      /home	ufs	rw,noatime
...

и так далее.

После чего — перезагрузка и радость от обретенного RAID'а. Радость, обусловленная, в том числе, и возросшим быстродействием файловых операций. Согласно проведённам уже давно измерениям, скорость их выполнения для softRAID на дисках с PATA-интерфейсом возрастает по сравнению с UFS2 на единичных разделах на 10-30%. А для современных дисков SATA эффект может быть еще больше. Правда, этого я уже не измерял: к моменту полного перехода на винчестеры SATA появилась более интересная тема — файловая система ZFS, рассмотрением которой мы и займёмся в следующем разделе.

В завершение же раздела нынешнего замечу только, что описанный способ создания программного RAID'а — отнюдь не единственный даже при использовании драйвера ccd, не говоря уже о том, что существуют и принципиально иные методы решения этой задачи. Но об этом мы поговорим в одной из последующих глав.




Страницы: предыдущая :: 1 :: 2 :: 3 :: 4 :: следующая

Комментарии

Страницы комментариев: 1 :: 2 :: следующая

Роман, Sun Mar 8 05:27:10 2009:
И ещё пара вопросов:
1) после предложения "Вот теперь — уже самое последнее: монтирование подкаталогов tank в реальную файловую иерархию" изображено монтирование только tank/var и tank/usr, а как быть с остальными, их, как я понимаю тоже надо монтировать ???
Если нет, то, по-моему, это надо явно прописать !!!
А если надо, то, наверное и это надо упомянуть отметив при этом хотя бы после монтирования tank/usr многоточием( "..." ), предполагающим, что далее монтируются все остальные каталоги выделенные в отдельные файловые системы по тому же принципу, что и приведённые :)))
2) Из предложения "И увидеть, что каждая из файловых систем ZFS потенциально располагает 240 примерно гигабайтами дискового пространства. Что, по мере его расходования, будет убывать пропорционально — опять же для всех." возникает вопрос о целесообразности использования ZFS !!!
Так всё-таки отгораживаются ли файловые системы друг от друга или нет ???
Ведь если каждая из выделенных якобы файловых систем располагает "примерно всеми гигабайтами дискового пространства", хотя непонятно, что значит примерно, то переполнение одной файловой системы ведёт к переполнению всех !!!
Или я чего-то не понимаю( но такое мнение у меня сложилось после прочтения данного раздела ) !!!
Роман, Sun Mar 8 05:05:50 2009:
В разделе "Установка для использования ZFS" предложение "Всё оставшееся дисковое пространство на обоих дисках определяем как BSD-слайсы — они-то и составят со временем пул ZFS" вносит некоторую неясность, а именно,
если имеется два винчестера( в предположении SATA ), то, как я понял, на первом создаётся два слайса, а на втором один слайс, при этом:
первый слайс первого диска делим на два раздела — 512 Мбайт под корень файловой иерархии(ad4s1a) и 1xRAM — под раздел подкачки(ad4s1b) и
оставшееся место первого диска отводится под второй слайс(ad4s2d), без корня и swap,
в то время как единственный слайс второго диска разбивается на 2 раздела:
1xRAM — под раздел подкачки(ad6s1b) и
оставшееся место под второй раздел(ad6s1d).
Если в чем не прав поправьте !!!
А если прав, то, мне кажется, необходимо подкорректировать текст раздела ясности ради !!!
Роман, Sun Mar 8 03:53:18 2009:
Ну и ещё один вопросик: А разумно ли помещать /usr в /tmp, даже на примере ???
:)))
Роман, Sun Mar 8 03:42:46 2009:
Ну и как мне кажется, хотя это конечно решать автору, необходимо, после фразы:
"вооружаемся утилитой ccdconfig, коей и сливаем подготовленные ранее разделы для каждой пары сливаемых партиций примерно таким образом"
добавить команду слияния swap разделов, если это вообще нужно, а судя по словам "для каждой пары сливаемых партиций", сделать это нужно.
Так вот добавка, в текст, команды слияния swap разделов необходимо не потому, что читатель сам не догадается как эту команду сформировать, а всё-таки понимания ради, что слияние swap разделов необходимо.
А если я ошибаюсь, и слияние swap разделов производить не нужно, то подкорректировать предложение "для каждой пары сливаемых партиций"
дабы внести ясность.
Роман, Sun Mar 8 03:40:29 2009:
И вновь опечатки :))
в разделе "Установка для использования softRAID":
1) Набрано в др. раскладке предложение: "(домашний каталог — j,sxyj главный пожиратель дисковод памяти)".
j,sxyj -> обычно.
2) "суммарное пространство массива нулевого уровня будет равно удвоенному объему меньшего носителя, а ИЗЛИНЕЕ место на носителе большем просто пропадёт."
3) "флаг none отменяет зеркалирование (то есть создает именно SRIPPED-массив)"
4) "придётся создавать несколько слайсов на каждом диске для их попарной конкатенации (подробнее об этом ДУЕТ говориться в соответствующей главе)."
5) Пропущен '/' перед символом '*':
"# mv /usr* /tmp/usr" -> "# mv /usr/* /tmp/usr"
Роман, Sat Mar 7 15:57:17 2009:
И снова опечатка( строка под Рис. 9.02 ):
"man — страницы встроенной документации, абсолютно необходимые во ВСЕЁ дальнейшей жизни"
Роман, Sat Mar 7 15:12:18 2009:
Перепечатока :))
"И, наконец, есть такие весьма полезные вещи, которые ЗАДЕЙСТВОВАТЬ при установке через sysinstall нельзя ЗАДЕЙСТВОВАТЬ в принципе."
mite, Wed Dec 31 18:26:33 2008:
Алексей, Вы не упомянули еще один вариант - установку по сценарию, использующую файл конфигурации. А ведь это неплохой вариант для индивидуализированной установки - достаточно в файле сценария определить параметры установки, и затем остается только подправлять необходимые под текущие нужды.
Алексей Федорчук, Wed Nov 12 21:50:54 2008:
iZEN
> Может лучше систему оставить на небольшом UFS-слайсе
___
Очень даже может быть. Попробую всё-таки сделать корень на ZFS и поглядеть, чем это чревато :)
Алексей Федорчук, Wed Nov 12 21:48:01 2008:
iZEN
> Обновить систему из исходников можно без промежуточной перезагрузки.
____
Когда-то она не требовалась. Потом в мейк-файле появилось про перезагрузку. Надо будет попробовать, как сейчас. DragonFly в этом случае обходится без перезагрузки.

Страницы комментариев: 1 :: 2 :: следующая

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds