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

Содержание

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

В предыдущем разделе мы увидели, что создание программного RAID'а — занятие довольно сложное, хотя и выгодное с точки зрения удобства и повышения производительности. И потому может возникнуть резонный вопрос — а нет ли более простого способа совместного использования нескольких дисков? С недавнего времени (с выхода FreeBSD версии 7.0) ответ на него будет положителен: таким способом является задействование файловой системы ZFS.

Разговор о том, что такое ZFS, как она устроена и зачем нужна — еще предстоит (в соответствующей главе). Пока лишь замечу, что ZFS — не только (а может быть, и не столько) собственно файловая система, но и менеджер разделов, исполняющий также функции средств создания и управления программными RAID-массивами и (или) логическими томами (LVM). Однако ZFS гораздо проще как в создании, так и в употреблении. В частности, она, благодаря динамическому перераспределению дискового пространства между файловыми системами, позволяет при необходимости легко наращивать объем любой из них, да и вообще избавляет от необходимости расчета размера разделов. Собственно говоря, одной из главных целей разработчиков ZFS было — сделать обращение с файловыми системами столь же простым, как с обычными каталогами. И скоро мы увидим, что цель эта была ими достигнута.

Во всей красе ZFS показывает себя при наличии в машине двух и более физических дисков, однако это не обязательное требование — большинство её преимуществ можно почувствовать и при установке на единичный диск. Более важным является достаточное количество оперативной памяти: разработчики рекомендуют не менее 2 Гбайт оной и предупреждают, что на машинах с 1 Гбайт и менее производительность ZFS резко понизится. Предлагается также использовать swap-раздел по полной программе — равным удвоенному объему ОЗУ. Разумеется, эти требования можно полностью реализовать только в 64-битном варианте FreeBSD (причём только в версиях седьмой ветки) — и, соответственно, наличие процессора с 64-битными инструкциями становится практически обязательным. И вообще, ZFS весьма интенсивно использует ресурсы машины, в частности, и вычислительные. Так что это как раз тот случай, когда обычно "лишние" гигагерцы процессора придутся ко двору.

И ещё важное предупреждение: поддержка ZFS в текущих версиях FreeBSD (7.0 и пре-релизных вариантах 7.1) носит экспериментальный характер и потому с её стороны не исключены всякого рода неожиданности. О тех из них, с которыми пришлось столкнуться мне, я расскажу в соответствующем месте — впрочем, фатальных среди них не было. Пока же предлагаю отдавать себе отчет, что вы используете ZFS на свой страх и риск.

Ну а теперь — приступим к делу. Главное, на чем стоит остановить внимание в преддверии использования ZFS — это стратегия дисковой разметки. Ведь, хотя она и поддерживается в «семерке», что называется, почти «из коробки», но именно что почти: с помощью sysinstall задействовать ее не удастся. Так что главная наша задача — установить базовую систему таким образом, чтобы потом большую ее часть перенести на ZFS с минимальными затратами сил и времени.

Корневую файловую систему можно разместить на ZFS только с некоторыми ухищрениями (как именно — будет описано в соответствующей главе). Да и смысла большого в том я не вижу — если вынести из корня все ветви, относимые, по классификации HFS, к разделяемым и (или) изменяемым (а по моей — также к трудновосстановимым), то изменяться его содержимое будет только при пересборках ядра и «мира», а это, согласитесь, бывает не так часто. Так что, фактически, то, на какой файловой системе лежит корень файловой иерархии, волнует весьма мало.

Исходя из этого, создаем на первом диске слайс минимального размера и делим его на два раздела — 512 Мбайт под корень файловой иерархии и 2xRAM — под раздел подкачки. В принципе, пространство подкачки можно разнести на два раздела на разных дисках, как это было описано ранее. А можно и своппинг организовать на пуле ZFS, хотя особых преимуществ от этого я пока не вижу.

Всё оставшееся дисковое пространство на обоих дисках определяем как BSD-слайсы — они-то и составят со временем пул ZFS, на котором разместятся такие ветви файловой иерархии, как /var, /usr и прочие.

Далее отправляемся в пункт Distributions — и там заказываем установку базовой системы и ядра, а дополнительно попросим еще и man pages — без них будет очень скучно при разборках с ZFS.

Далее все происходит обычным порядком, многократно описанным выше: сами собой происходят разметка диска, устанавливаются заказанные компоненты. После чего переходим в пункт Configuration, где задаем пароль root'а, определяем часовой пояс и настраиваем консоль для кириллицы. От создания аккаунта обычного пользователя воздерживаемся — его домашний каталог будет вынесен на ZFS, и во избежание лишних телодвижений сделаем это позднее. А вот сетевые интерфейсы — пожалуй, что и настроим, при использовании DHCP это делов на пять секунд (а случай отсутствия оного здесь не обсуждается). Не будем также устанавливать никаких дополнительных пакетов — после создания ZFS-разделов мы все это проделаем гуртом. Хотя уже и не из sysinstall — эта программа файловую систему ZFS не понимает в упор, ведь она писалась во времена, когда о ней еще и слыхом не слыхивали.

Теперь остается только перезагрузиться и выполнить некоторые настройки. Перво-наперво, чтобы не забыть, обеспечиваем поддержку ZFS при старте системы. Для чего вписываем в файл /boot/loader.conf строку

zfs_load="YES"

А в файл /etc/rc.conf —

zfs_enable="YES"

Теперь для организации ZFS на оставшихся неразмеченными слайсах нам потребуется две команды — zpool и zfs (соответствующие им сведения от тёти Мани не грех предварительно почитать).

Первая из указанных команд создает пул накопителей следующим образом:

# zpool create [имя_пула] [уровень_избыточности] ad0s2c ad2s1c

Имя пула — традиционно tank (хотя никакого рояля это не играет). Если избыточность не нужна (а в десктопной сфере она не нужна точно), то соответствующий параметр просто опускается — при этом мы получим нечто вроде программного RAID-0.

После этого начинается самый охмурёж — собственно создание файловых систем, для чего обращаемся к команде zfs. Для начала надо разобраться с ветвями /var и /usr (предполагается, что ветвь /tmp будет вынесена на mfs).

С первой все предельно просто: создаем под нее файловую систему командой

# zfs create tank/var

и до поры, до времени забываем о ее существовании.

С ветвью /usr — чуть сложнее, она содержит множество различных подкаталогов, часть из которых не помешает выделить в самостоятельные файловые системы. Так что — поехали по порядку. Посредством

# zfs create tank/usr

создаем исходную точку отсчета. Затем —

# zfs create tank/usr/ports

Далее — подкаталог /usr/ports/distfiles, содержащий исходники для собираемых посредством портов программ:

# zfs create tank/usr/ports/distfiles

Есть резон выделить в отдельные файловые системы и ветви /usr/local, /usr/src и /usr/obj — ведь это так просто (особенно учитывая, что отныне мы не связаны схемой BSD-разметки — 8 разделов на один слайс; а почему — это тема отдельного разговора):

# zfs create tank/usr/local
# zfs create tank/usr/src
# zfs create tank/usr/obj

И напоследок — домашние каталоги пользователей (которых у нас пока еще нет). По умолчанию во Free BSD они располагаются в /usr/home (просто /home — символическая ссылка на него). Отказываться от этого нет резона (почему — вскоре станет ясно), так что:

# zfs create tank/usr/home
# zfs create tank/usr/home/username1

и так далее.

Как я уже говорил ранее, на десктопной машине есть смысл выделить отдельные файловые системы под данные, доступ к которым потребуется нескольким пользователям, например:

# zfs create tank/usr/home/work
# zfs create tank/usr/home/data
# zfs create tank/usr/home/media
...

и так далее. Только потом нужно будет не забыть озаботиться установкой соответствующих атрибутов принадлежности и доступа для всех ветвей в каталоге /usr/home.

Предпоследний штрих — ускорения файловых операций ради отменяем для всех новообразованных файловых систем атрибут atime (обновление времени доступа, каковое и на фиг не нужно):

# zfs set atime-off tank

что автоматически распространяется на все вложенные файловые системы (потому и резонно было сделать tank/usr/home — всё одним телодвижением меньше).

Вот и все — почти. Перемещаем содержимое /var и /usr в /tank/var и /tank/usr, соответственно:

# mv /var/* /tank/var/
# mv /usr/* /tank/usr/

На сообщение о невозможности переместить кое-что из каталога /var внимания не обращаем — вреда от этого не будет ни малейшего.

Вот теперь — уже самое последнее: монтирование подкаталогов tank в реальную файловую иерархию:

# zfs set mountpoint=/var tank/var
# zfs set mountpoint=/usr tank/usr

После чего начинаем обычную работу. Ни перезагрузок, ни каких-либо записей в /etc/fstab не требуется. Впрочем, чтобы в этом убедиться, можно выполнить и рестарт машины. А потом командой типа df поглядеть, что у нас делается со свободным местом на дисках. И увидеть, что каждая из файловых систем ZFS потенциально располагает 240 примерно гигабайтами дискового пространства. Что, по мере его расходования, будет убывать пропорционально — опять же для всех. Действительно все ничуть не сложнее, чем создавать каталоги командой mkdir.




Страницы: предыдущая :: 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