Следующая | ||
Введение |
Предыдущая | Следующая |
Для того, чтобы ваша будущая система могла существовать на CDROM, необходимо "научить" этому ядро. Подробно о конфигурации и установке нового ядра читайте раздел документации Конфигурация Ядра во FreeBSD. Опции в конфигурационном файле ядра, отвечающие за загрузку с CDROM и действия по конфигурированию и установке нового ядра в каталог, содержащий корень будущей системы (/usr/local/cdsystem/), приведены ниже.
Все файлы устройств обычно находятся в каталоге /dev/.
Для работы системы при каждой загрузке с CDROM необходимо создание некоторых специальных файлов устройств. Без этого многие команды и утилиты не будут работать вообще или будут работать некорректно. В число таких критичных файлов устройств входит, например, /dev/null, в случае проблем с которым не работают такие необходимые команды, как ps(1), w(1) и многие другие. Для решения этой проблемы можно воспользоваться тем фактом, что при каждой загрузке системы в многопользовательский режим (multi-user mode) процесс-"прародитель" всех процессов init(8) выполняет скрипт rc(8), находящийся в директории /etc в корне системы. Отредактируйте этот файл таким образом, чтобы при каждой загрузке системы с CDROM создавались необходимые файлы устройств. Следуйте инструкциям, приведенным ниже:
данная команда, каждый раз при загрузке с CDROM будет создавать в оперативной
памяти файловую систему размером около 6Мб, монтировать туда каталог /dev таким образом, чтобы содержимое уже имеющегося каталога /dev оставалось видимым (опция union), и после этого создавать в /dev/ необходимые устройства.
Для того, чтобы не редактировать файл rc вручную, вы можете воспользоваться патчем, который внесет в этот файл необходимые изменения. В этом случае вместо вышеописанных действий выполните следующее:
--- rc Sun Nov 10 13:00:30 2002 +++ rc.dev Sun Nov 10 13:01:47 2002 @@ -52,6 +52,9 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin export HOME PATH +/sbin/mount_mfs -s 12000 -o union,noatime,rw swap /dev +cd /dev && sh MAKEDEV vty12 pty0 std + # BOOTP diskless boot. We have to run the rc file early in order to # retarget various config files. # See /usr/share/examples/diskless/clone_root for details on how
Большая часть системных конфигурационных файлов находится в директории /etc. Если вы планируете использовать создаваемый ISO-образ системы только для одного сервера, и вы уверены, что в процессе его работы изменения конфигурации системы не понадобятся (такие, например, как IP-адрес машины, список DNS-серверов, и т.д.), вы можете оставить всю директорию /etc на CD-диске практически без изменений. Единственное изменение в таком случае коснется файла fstab
Если же вам в процессе работы нужно некоторые параметры изменять, или вы хотите использовать ISO-образ будущей системы более, чем для одного сервера (например, как шаблон для быстрой установки и конфигурирования новых серверов), некоторые из конфигурационных файлов нужно иметь возможность изменять. В числе таких файлов - конфигурационные файлы rc.conf, rc.conf.local для системных скриптов rc*, отвечающие за такие параметры, как запуск тех или иных сервисов во время загрузки системы, сетевые настройки, настройки терминалов и многое другое. Содержимое этих файлов для каждой машины будет своим. Сюда же можно отнести файл resolv.conf, нужный для resolver(5), вполне возможно, что список доменов для поиска и DNS-серверов для запросов у разных машин также будет разным.
В зависимости от ваших потребностей, у вас может быть другой список файлов, которые нужно иметь возможность редактировать, однако, во многих случаях такими файлами будут /etc/rc.conf, /etc/rc.firewall и resolv.conf. Перенесите их в /usr/local/etc , и создайте соответствующие символические ссылки в директории /etc новой системы, выполнив следующее:
--- rc Sun Nov 10 15:38:51 2002 +++ rc.local Sun Nov 10 15:41:20 2002 @@ -213,6 +213,9 @@ ;; esac +if [ -r /etc/rc.conf.local ]; then + . /etc/rc.conf.local +fi adjkerntz -iвыполните команды:
Теперь ваша система готова к загрузке с CDROM, и вы можете перейти к конфигурированию RAID.
Предыдущая | Содержание | Следующая |
Создание стартовой директории | Подготовка к реализации RAID-1. |
Предыдущая | Следующая |
Большое спасибо Лаврентьеву Андрею за консультации и моральную поддержку.
Предыдущая | Содержание | Следующая |
Другой вариант настройки ccd: применение утилиты disklabel к ccd - устройствам | Ссылки |
Предыдущая | Следующая |
Теперь вам не страшны неисправности жестких дисков. А что делать, если неисправен CDROM? Для того, чтобы в такой ситуации можно было с минимальными потерями времени вернуть сервер в рабочее состояние, нужно добавить возможность загрузки с жестких дисков. Для этого скопируйте содержимое CDROM в те разделы, где в этом случае будет корень системы, выполнив следующие команды:
/dev/ad0s1a | / | ufs | rw | 1 | 1 |
/dev/ad0s1b | none | swap | sw | 0 | 0 |
/dev/ad2s1b | none | swap | sw | 0 | 0 |
/dev/vinum/var | /var | ufs | rw | 2 | 2 |
/dev/vinum/tmp | /tmp | ufs | rw | 2 | 2 |
/dev/vinum/local | /usr/local | ufs | rw | 2 | 2 |
proc | /proc | procfs | rw | 0 | 0 |
/dev/ad0s1a | / | ufs | rw | 1 | 1 |
/dev/ad0s1b | none | swap | sw | 0 | 0 |
/dev/ad2s1b | none | swap | sw | 0 | 0 |
/dev/ccd0c | /var | ufs | rw | 2 | 2 |
/dev/ccd1c | /tmp | ufs | rw | 2 | 2 |
/dev/ccd2c | /usr/local | ufs | rw | 2 | 2 |
proc | /proc | procfs | rw | 0 | 0 |
Теперь в случае необходимости у вас есть возможность загрузить систему с любого из жестких дисков.
Предыдущая | Содержание | Следующая |
Запуск RAID-1 под управлением ccd | Другой вариант настройки ccd: применение утилиты disklabel к ccd - устройствам. |
Следующая | ||
Введение |
Предыдущая | Следующая |
Если вы решили повысить надежность и отказоустойчивость вашего сервера под управлением OS FreeBSD, но при этом не имеете возможности приобрести аппаратную RAID-систему, данное руководство поможет вам в настройке программной реализации RAID.
Здесь описано, как перенести корень рабочей системы на CDROM, как настроить и запустить программный RAID-1. Если вы не хотите иметь корневую файловую систему на CDROM, или, наоборот, хотите только корневую фаловую систему на CDROM без RAID, пропустите соответствующие главы.
Какой инструмент вы будете использовать для реализации программного RAID-1, зависит от ваших требований к конечному результату. У вас есть на выбор два варианта: сделать это с помощью vinum(8) или же с помощью ccd(4). У каждого из них есть свои достоинства и недостатки. Например, если использовать ccd(4), при неисправности одного из жестких дисков система будет перезагружена в однопользовательский режим, и вам будет предложено исправить ситуацию. С vinum(8) такого не произойдет - система останется живой и работоспособной до тех пор, пока хоть один из дисков цел. С другой стороны, возможно, вам покажется несколько проще и понятнее процесс настройки ccd(4), чем vinum(8). В данном руководстве будут описаны оба варианта, что позволит вам взвесить все "за" и "против" и самостоятельно сделать выбор.
К сожалению, ни одна из перечисленных выше реализаций не поддерживает корень системы на программном RAID. Именно поэтому корень в данном руководстве будет перенесен на CDROM, а для повышения надежности такого решения, будет добавлена возможность загрузки с любого из жестких дисков.
Ниже перечислены достоинства системы с корнем на CDROM и партициями на программном RAID-1:
Все примеры в данном руководстве созданы на основе следующей конфигурации:
Система: FreeBSD 4.5
Партиции (в порядке их расположения на диске):
Точка монтирования | Устройство | Размер |
/ | /dev/ad0s1a | 512M |
swap | /dev/ad0s1b | 1024M |
/var | /dev/ad0s1e | 512M |
/tmp | /dev/ad0s1f | 256M |
/usr/local | /dev/ad0s1g | 20480M |
Для зеркалирования вам понадобится второй жесткий диск размером, равным или большим, чем тот, на котором у вас установлена рабочая система.
До реализации программного зеркалирования типа RAID-1, файловая система сервера выглядела следующим образом:
Filesystem | Size | Used | Avail | Capacity | Mounted on |
/dev/ad0s1a | 528M | 391M | 119M | 23% | / |
/dev/ad0s1e | 528M | 14M | 472M | 3% | /var |
/dev/ad0s1f | 264M | 2.0K | 243M | 0% | /tmp |
/dev/ad0s1g | 21G | 160M | 19G | 1% | /usr/local |
procfs | 4.1K | 4.1K | 0B | 100% | /proc |
Filesystem | Size | Used | Avail | Capacity | Mounted on |
/dev/acd0a | 339M | 339M | 0B | 100% | / |
mfs:10 | 5.9M | 16K | 5.4M | 0% | /dev |
/dev/vinum/var | 528M | 14M | 472M | 3% | /var |
/dev/vinum/tmp | 264M | 2.0K | 243M | 0% | /tmp |
/dev/vinum/local | 21G | 160M | 19G | 1% | /usr/local |
procfs | 4.1K | 4.1K | 0B | 100% | /proc |
Filesystem | Size | Used | Avail | Capacity | Mounted on |
/dev/acd0a | 339M | 339M | 0B | 100% | / |
mfs:10 | 5.9M | 16K | 5.4M | 0% | /dev |
/dev/ccd0c | 528M/ | 14M | 472M | 3% | /var |
/dev/ccd1c | 264M | 2.0K | 243M | 0% | /tmp |
/dev/ccd2c | 21G | 160M | 19G | 1% | /usr/local |
procfs | 4.1K | 4.1K | 0B | 100% | /proc |
Предыдущая | Содержание | Следующая |
FreeBSD с корнем на CDROM и разделами на программном RAID-1 | Создание стартовой директории |
Предыдущая |
Предыдущая | Содержание | |
Благодарности |
Предыдущая | Следующая |
ccd(4) позволяет логически разметить свои устройства на партиции утилитой disklabel(8) также, как этой утилитой размечаются слайсы (slice) FreeBSD.
В разделе RAID-1 с использованием ccd(4) описан вариант, когда для каждой зеркалируемой партиции отводилось отдельное ccd - устройство, размером, равным размеру соответствующей партиции. Вы можете обойтись всего одним ccd - устройством, размер которого составит сумму размеров всех партиций, для которых вы планируете зеркалирование. В этом случае это устройство необходимо разметить на партиции утилитой disklabel(8). При этом, к действиям, описанным в разделах RAID-1 с использованием ccd(4) и Запуск RAID-1 под управлением ccd(4), добавится еще ряд операций, коротко описанных ниже.
В случае использования одного-единственного устройства ccd0, размеченного на партиции утилитой disklabel(8), эту ситуацию необходимо отразить в конфигурационном файле ccd.conf. Он будет отличаться от описанного в разделе Конфигурационный файл ccd(4) тем, что в нем будет содержаться всего одна строка:
ccd0 | 128 | CCDF_MIRROR | /dev/ad0s1e | /dev/ad2s1e |
/dev/ad0s1b | none | swap | sw | 0 | 0 |
/dev/ad2s1b | none | swap | sw | 0 | 0 |
/dev/ccd0e | /var | ufs | rw | 2 | 2 |
/dev/ccd0f | /tmp | ufs | rw | 2 | 2 |
/dev/ccd0g | /usr/local | ufs | rw | 2 | 2 |
proc | /proc | procfs | rw | 0 | 0 |
Для того, чтобы иметь возможность создать RAID-1 систему с использованием одного ccd-устройства, необходимо изменить таблицы партиций жестких дисков, а после конфигурирования ccd-диска - разметить его на партиции. Список необходимых действий приведен ниже:
# | size | offset | fstype | [fsize bsize bps/cpg] | |||
a: | 1048576 | 0 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 0 - 65*) |
b: | 2097152 | 1048576 | swap | # (Cyl. 65*- 195*) | |||
c: | 78156162 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) | |
e: | 1048576 | 3145728 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 195*- 261*) |
f: | 524288 | 4194304 | 4.2BSD | 2048 | 16384 | 94 | # (Cyl. 261*- 293*) |
g: | 41943040 | 4718592 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 293*- 2904*) |
# | size | offset | fstype | [fsize bsize bps/cpg] | |||
a: | 1048576 | 0 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 0 - 65*) |
b: | 2097152 | 1048576 | swap | # (Cyl. 65*- 195*) | |||
c: | 78156162 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) | |
e: | 43515904 | 3145728 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 195*- 261*) |
# | size | offset | fstype | [fsize bsize bps/cpg] | |||
c: | 43515904 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) |
# | size | offset | fstype | [fsize bsize bps/cpg] | |||
c: | 43515904 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) | |
e: | 1048576 | 0 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 195 - 261*) |
f: | 524288 | 1048576 | 4.2BSD | 2048 | 16384 | 94 | # (Cyl. 261 - 293*) |
g: | 41943040 | 1572864 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 293 - 4864*) |
Все остальные действия аналогичны описанным в разделах RAID-1 с использованием ccd(4) и Запуск RAID-1 под управлением ccd(4) данного руководства.
Предыдущая | Содержание | Следующая |
Добавим немного гибкости | Благодарности |
Предыдущая | Следующая |
Если у вас FreeBSD 3.0 и выше, вам ничего не надо делать с ядром - можно
использовать загружаемый модуль. Такие модули находятся в директории /modules, и существуют утилиты для работы с ними. Просмотреть список уже загруженных модулей можно командой kldstat(8), вот пример ее вывода:
# kldstat
Id Refs Address Size Name
1 11 0xc0100000 394090 kernel
2 1 0xc1022000 c3000 vinum.ko
3 1 0xc1113000 7000 linprocfs.ko
4 1 0xc11d7000 2000 rtc.ko
5 2 0xc11d9000 14000 linux.ko
6 1 0xc121a000 9000 vmmon_up.ko
7 1 0xc1225000 4000 if_tap.ko
8 4 0xc122b000 9000 netgraph.ko
9 1 0xc1238000 3000 ng_ether.ko
10 1 0xc123c000 4000 ng_bridge.ko
11 1 0xc1242000 3000 ng_socket.ko
Выше приведен достаточно большой список загруженных в оперативную память модулей. Его состав может сильно варьироваться в зависмости от многих факторов, в частности, от того, в какой конфигурации было собрано загруженное ядро. После реализации RAID-1 с использованием ccd(4), в этом списке добавится еще одна строка, содержащая модуль ccd.ko, который также находится в директории /modules.
Существуют утилиты, позволяющие вручную загружать модули в память и выгружать их в случае необходимости. Это пара утилит kldload и kldunload соответственно.
Подробнее см. kldstat(8), kldload(8), kldunload(8).В отличие от vinum(8), ccd(4) имеет конфигурационный файл. Его необходимо создать, описав в нем, какие партиции и на каких физических дисках зеркалировать.
ccd0 | 128 | CCDF_MIRROR | /dev/ad0s1e | /dev/ad2s1e |
ccd1 | 128 | CCDF_MIRROR | /dev/ad0s1f | /dev/ad2s1f |
ccd2 | 128 | CCDF_MIRROR | /dev/ad0s1g | /dev/ad2s1g |
Здесь первый столбец представляет собой имена устройств для ccd(4), число 128 - это так называемый interleave factor, величина "полосы", в блоках по 512 байт, для операций чтения/записи. С каждого из задействованных дисков информация считывается блоками по 128*512 байт. Такими же блоками происходит и запись, что в итоге может увеличить пиковую скорость чтения/записи в 2 раза. CCDF_MIRROR говорит о том, что диски необходимо зеркалировать, а последние два параметра в каждой строке - какие партиции задействовать в зеркалировании.
Подробнее об этом см. ccd(4),сcdconfig(8)
Прежде, чем создавать ccd устройства, необходимо создать резервную копию всей информации, содержащейся на некорневых партициях диска. Вы можете записать эти архивы на CDROM с новой системой, но в этом случае нужно уложиться в ограничения в 650-700Мб, учитывая, что корень системы уже занимает около 200Мб. Вы можете также сохранить архивы в другом месте, при условии, что у вас есть, например, дополнительные партиции, на которых вы не планируете зеркалирование. В данном примере архивы будут записаны на тот же CDROM-диск, на котором будет существовать будущая система.
обычно директории /var и /tmp занимают не очень много места, особенно в сжатом виде. Например, текстовые файлы (а их большая часть в этих каталогах) хорошо сжимаются утилитой gzip(1). Поэтому в данном руководстве содержимое каталогов /var и /tmp будет заархивировано полностью. С другой стороны, в директории /usr/local находится много обширных каталогов, содержимое которых даже в сжатом виде займет много места. В зависимости от конфигурации и установленных программ, список таких директорий может быть разным. Например, если установлен squid, то директории /usr/local/squid/cache и /usr/local/squid/logs могут иметь весьма значительный объем. В этом случае, возможно придется удалить содержимое этих директорий, не забыв после реализации RAID-1 восстановить структуру cache-директории командой # squid -z.
Другой пример - домашние директории пользователей, которые в разделе Создание стартовой директории были перенесены в каталог /usr/local/home. Часто за счет удаления ненужных файлов в этих директориях можно добиться значительного увеличения свободного места на диске.
Кроме всего прочего, по тем же соображениям, нужно включить в данный список директорию /usr/local/cdsystem
для данного примера содержимое файла /usr/local/tar.exclude приведено ниже
cdsystem
squid/cache/*
squid/logs/*
Заметьте, директория cdsystem перечислена в этом файле без завершающего слэша (/). Это заставит команду tar(1) не только проигнорировать содержимое данной директории, но и не принимать в расчет саму директорию, т.е. в архиве директории cdsystem не будет. В то же время, те директории, которые вы перечислите с завершающим слэшем, скопируются в архив, но их содержимое скопировано не будет.
crw-r----- 2 root operator 74, 0 Nov 11 13:03 /dev/ccd0a crw-r----- 2 root operator 74, 1 Nov 11 13:03 /dev/ccd0b crw-r----- 2 root operator 74, 2 Nov 11 13:03 /dev/ccd0c crw-r----- 2 root operator 74, 3 Nov 11 13:03 /dev/ccd0d crw-r----- 2 root operator 74, 4 Nov 11 13:03 /dev/ccd0e crw-r----- 2 root operator 74, 5 Nov 11 13:03 /dev/ccd0f crw-r----- 2 root operator 74, 6 Nov 11 13:03 /dev/ccd0g crw-r----- 2 root operator 74, 7 Nov 11 13:03 /dev/ccd0h crw-r----- 2 root operator 74, 8 Nov 11 13:03 /dev/ccd1a crw-r----- 2 root operator 74, 9 Nov 11 13:03 /dev/ccd1b crw-r----- 2 root operator 74, 10 Nov 11 13:03 /dev/ccd1c crw-r----- 2 root operator 74, 11 Nov 11 13:03 /dev/ccd1d crw-r----- 2 root operator 74, 12 Nov 11 13:03 /dev/ccd1e crw-r----- 2 root operator 74, 13 Nov 11 13:03 /dev/ccd1f crw-r----- 2 root operator 74, 14 Nov 11 13:03 /dev/ccd1g crw-r----- 2 root operator 74, 15 Nov 11 13:03 /dev/ccd1h crw-r----- 2 root operator 74, 16 Nov 11 13:03 /dev/ccd2a crw-r----- 2 root operator 74, 17 Nov 11 13:03 /dev/ccd2b crw-r----- 2 root operator 74, 18 Nov 11 13:03 /dev/ccd2c crw-r----- 2 root operator 74, 19 Nov 11 13:03 /dev/ccd2d crw-r----- 2 root operator 74, 20 Nov 11 13:03 /dev/ccd2e crw-r----- 2 root operator 74, 21 Nov 11 13:03 /dev/ccd2f crw-r----- 2 root operator 74, 22 Nov 11 13:03 /dev/ccd2g crw-r----- 2 root operator 74, 23 Nov 11 13:03 /dev/ccd2h
Отредактируйте файл /usr/local/cdsystem/etc/fstab новой системы в соответствии с /usr/local/cdsystem/etc/ccd.conf. В данном примере, его содержимое перед редактированием, приведено ниже:
/dev/ad0s1a | / | ufs | rw | 1 | 1 |
/dev/ad0s1b | none | swap | sw | 0 | 0 |
/dev/ad0s1e | /var | ufs | rw | 2 | 2 |
/dev/ad0s1f | /tmp | ufs | rw | 2 | 2 |
/dev/ad0s1g | /usr/local | ufs | rw | 2 | 2 |
proc | /proc | procfs | rw | 0 | 0 |
/dev/ad0s1b | none | swap | sw | 0 | 0 |
/dev/ad2s1b | none | swap | sw | 0 | 0 |
/dev/ccd0c | /var | ufs | rw | 2 | 2 |
/dev/ccd1c | /tmp | ufs | rw | 2 | 2 |
/dev/ccd2c | /usr/local | ufs | rw | 2 | 2 |
/dev/ad0s1b | none | swap | sw | 0 | 0 |
/dev/ad2s1b | none | swap | sw | 0 | 0 |
/dev/ccd0c | /var | ufs | rw | 2 | 2 |
/dev/ccd1c | /tmp | ufs | rw | 2 | 2 |
/dev/ccd2c | /usr/local | ufs | rw | 2 | 2 |
proc | /proc | procfs | rw | 0 | 0 |
# | size | offset | fstype | [fsize bsize bps/cpg] | |||
c: | 80405262 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) |
c: | 80405262 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) |
Существует и другой вариант реализации RAID-1 под управлением ccd(4). Вы можете применить утилиту disklabel(8) к ccd - диску и разметить на партиции одно-единственное ccd - устройство. О том, что для этого нужно сделать, можно прочитать в разделе Другой вариант настройки ccd(4): применение утилиты disklabel(8) к ccd - устройствам.
Это все действия, необходимые для подготовки системы к запуску ccd(4). Теперь необходимо записать корень новой системы на диск, как описано в разделе Запись новой системы на диск.
Предыдущая | Содержание | Следующая |
RAID-1 с использованием vinum | Запись новой системы на CDROM диск |
Предыдущая | Следующая |
Прежде, чем приступить к реализации RAID-1 системы под управлением ОС FreeBSD, необходимо выбрать, какому из двух описанных в данном руководстве методу вы отдадите предпочтение - vinum(8) или ccd(4). В большинстве случаев вы не сможете использовать обе эти реализации одновременно, и в данном руководстве такая возможность рассматриваться не будет. Если вам трудно принять решение на этом этапе, прочитайте и оцените действия, необходимые для запуска программной RAID-1 системы с использованием обеих утилит, и тогда вы сможете определиться с выбором.
Теперь вы можете перейти к процессу подготовки к запуску программного RAID-1. В зависимости от принятого вами решения, обратитесь к соответствующим разделам - RAID-1 с использованием vinum(8) или RAID-1 с использованием ccd(4).
Предыдущая | Содержание | Следующая |
Корень на CDROM - подготовка | RAID-1 с использованием vinum |
Предыдущая | Следующая |
В FreeBSD партицией (partition) называется то, к чему во многих других системах обращаются как к разделу. Партиции в FreeBSD создаются и изменяются утилитой disklabel(8) и именуется ad0s1a, ad0s1e и так далее. В то же время слайс (slice) FreeBSD по сути напоминает расширенный DOS раздел, на котором можно создавать логические диски (партиции FreeBSD). Обычно при стандартной установке системы FreeBSD создается один слайс FreeBSD, который средствами утилиты disklabel(8) логически размечается на партиции.
с этого момента необходимо действовать очень внимательно и осторожно. От этого зависит судьба всей информации, записанной на диск.
В данном примере файл ad0s1.vinum выглядит так:
# /dev/ad0s1c:# | size | offset | fstype | [fsize bsize bps/cpg] | |||
a: | 1048576 | 0 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 0 - 65*) |
b: | 2097152 | 1048576 | swap | # (Cyl. 65*- 195*) | |||
c: | 78156162 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) | |
e: | 1048576 | 3145728 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 195*- 261*) |
f: | 524288 | 4194304 | 4.2BSD | 2048 | 16384 | 94 | # (Cyl. 261*- 293*) |
g: | 41943040 | 4718592 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 293*- 2904*) |
Таблица, расположенная в самом низу - это и есть таблица партиций. Вы будете работать с первыми тремя столбцами - size (размер, в блоках), offset (смещение) и fstype (тип файловой системы). Отредактируйте эту таблицу следующим образом:
# | size | offset | fstype | [fsize bsize bps/cpg] | |||
a: | 1048576 | 0 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 0 - 65*) |
b: | 2096887 | 1048576 | swap | # (Cyl. 65*- 195*) | |||
c: | 78156162 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) | |
e: | 1048576 | 3145728 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 195*- 261*) |
f: | 524288 | 4194304 | 4.2BSD | 2048 | 16384 | 94 | # (Cyl. 261*- 293*) |
g: | 41943040 | 4718592 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 293*- 2904*) |
# | size | offset | fstype | [fsize bsize bps/cpg] | |||
a: | 1048576 | 0 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 0 - 65*) |
b: | 2096887 | 1048576 | swap | # (Cyl. 65*- 195*) | |||
c: | 78156162 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) | |
e: | 1048576 | 3145463 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 195*- 261*) |
f: | 524288 | 4194304 | 4.2BSD | 2048 | 16384 | 94 | # (Cyl. 261*- 293*) |
g: | 41943040 | 4718592 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 293*- 2904*) |
# | size | offset | fstype | [fsize bsize bps/cpg] | |||
a: | 1048576 | 0 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 0 - 65*) |
b: | 2096887 | 1048576 | swap | # (Cyl. 65*- 195*) | |||
c: | 78156162 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) | |
e: | 43516169 | 3145463 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 195*- 261*) |
f: | 524288 | 4194304 | 4.2BSD | 2048 | 16384 | 94 | # (Cyl. 261*- 293*) |
g: | 41943040 | 4718592 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 293*- 2904*) |
# | size | offset | fstype | [fsize bsize bps/cpg] | |||
a: | 1048576 | 0 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 0 - 65*) |
b: | 2096887 | 1048576 | swap | # (Cyl. 65*- 195*) | |||
c: | 78156162 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) | |
e: | 43516169 | 3145463 | vinum | 2048 | 16384 | 89 | # (Cyl. 195*- 261*) |
f: | 524288 | 4194304 | 4.2BSD | 2048 | 16384 | 94 | # (Cyl. 261*- 293*) |
g: | 41943040 | 4718592 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 293*- 2904*) |
# | size | offset | fstype | [fsize bsize bps/cpg] | |||
a: | 1048576 | 0 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 0 - 65*) |
b: | 2096887 | 1048576 | swap | # (Cyl. 65*- 195*) | |||
c: | 78156162 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) | |
e: | 43516169 | 3145463 | vinum | 2048 | 16384 | 89 | # (Cyl. 195*- 261*) |
# | size | offset | fstype | [fsize bsize bps/cpg] | |||
c: | 80405262 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) |
c: | 80405262 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) |
На данном этапе вы готовы к изменению таблиц партиций дисков для реализации программного RAID-1 с помощью vinum(8).
vinum(8) не имеет конфигурационных файлов. Для создания нового тома необходимо воспользоваться командой vinum create <аргументы>, где аргументы - что именно надо создать (например, volume), и параметры того, что надо создать. Нет необходимости общаться с vinum(8) из командной строки. Вместо этого можно создать файл, в котором будет указана вся конфигурация программного RAID. Этот файл будет использован только один раз - при первой инициализации vinum(8). В дальнейшем он вам не понадобится.
Итак, выполните следующие действия:
e: | 1048576 | 3145728 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 195*- 261*) |
# | size | offset | fstype | [fsize bsize bps/cpg] | |||
a: | 1048576 | 0 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 0 - 65*) |
b: | 2097152 | 1048576 | swap | # (Cyl. 65*- 195*) | |||
c: | 78156162 | 0 | unused | 0 | 0 | # (Cyl. 0 - 4864*) | |
e: | 1048576 | 3145728 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 195*- 261*) |
Проще посчитать это так: первая партиция после swap-партиции будет иметь смещение в 265 блоков. Все остальные партиции будут иметь смещение, равное их смещению в файле ad0s1 минус смещение первой после swap партиции плюс 265 блоков.
на примере остальных двух партиций:
e: | 1048576 | 3145728 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 195*- 261*) |
f: | 524288 | 4194304 | 4.2BSD | 2048 | 16384 | 94 | # (Cyl. 261*- 293*) |
g: | 41943040 | 4718592 | 4.2BSD | 2048 | 16384 | 89 | # (Cyl. 293*- 2904*) |
Для того, чтобы система знала, что некоторые ее разделы зеркалируются, ей необходимо об этом сообщить в конфигурационных файлах. Перейдите в каталог /etc/ будущей системы и отредактируйте несколько конфигурационных файлов.
/dev/ad0s1a | / | ufs | rw | 1 | 1 |
/dev/ad0s1b | none | swap | sw | 0 | 0 |
/dev/ad0s1e | /var | ufs | rw | 2 | 2 |
/dev/ad0s1f | /tmp | ufs | rw | 2 | 2 |
/dev/ad0s1g | /usr/local | ufs | rw | 2 | 2 |
proc | /proc | procfs | rw | 0 | 0 |
/dev/ad0s1b | none | swap | sw | 0 | 0 |
/dev/ad2s1b | none | swap | sw | 0 | 0 |
/dev/vinum/var | /var | ufs | rw | 2 | 2 |
/dev/vinum/tmp | /tmp | ufs | rw | 2 | 2 |
/dev/vinum/local | /usr/local | ufs | rw | 2 | 2 |
/dev/ad0s1b | none | swap | sw | 0 | 0 |
/dev/ad2s1b | none | swap | sw | 0 | 0 |
/dev/vinum/var | /var | ufs | rw | 2 | 2 |
/dev/vinum/tmp | /tmp | ufs | rw | 2 | 2 |
/dev/vinum/local | /usr/local | ufs | rw | 2 | 2 |
proc | /proc | procfs | rw | 0 | 0 |
Самый трудный этап позади, и теперь вы готовы к запуску vinum(8) . Проверьте еще раз, все ли правильно вы сделали, от этого будет зависеть успех дальнейших ваших действий. Убедившись, что все в порядке, перейдите к разделу Запись новой системы на диск.
Предыдущая | Содержание | Следующая |
Подготовка к реализации RAID-1 | RAID-1 с использованием ccd |
Предыдущая | Следующая |
Подробнее см. mkisofs(8), burncd(8).
На данном этапе все необходимые приготовления завершены, и остается только запустить новую RAID-1 систему. Если вы выбрали реализацию, основанную на vinum(8), для запуска ее обратитесь к разделу Запуск RAID-1 под управлением vinum(8). В случае, если ваш выбор пал на ccd(4), необходимые для запуска такой системы действия описаны в разделе Запуск RAID-1 под управлением ccd(4).
Предыдущая | Содержание | Следующая |
RAID-1 с использованием ccd | Запуск программной RAID-1 системы |
Предыдущая | Следующая |
Как и в случае с vinum(8), необходимо перегрузить систему в однопользовательский режим. Однако с ccd(4) процесс окончательной его настройки займет больше времени.
точно также, как и в конфигурационном файле ccd(4), эти команды подготавливают почву для создания RAID-1 - в них сообщается ccd(4), какие партиции участвуют в зеркалировании.
другой вариант выполнения тех же действий приведен ниже:Id Refs Address Size Name 1 2 0xc0100000 1be2f4 kernel 2 1 0xcd1f6000 5000 ccd.ko
Filesystem | Size | Used | Avail | Capacity | Mounted on |
/dev/acd0a | 339M | 339M | 0B | 100% | / |
mfs:10 | 5.9M | 16K | 5.4M | 0% | /dev |
/dev/ccd0c | 528M/ | 14M | 472M | 3% | /var |
/dev/ccd1c | 264M | 2.0K | 243M | 0% | /tmp |
/dev/ccd2c | 21G | 160M | 19G | 1% | /usr/local |
procfs | 4.1K | 4.1K | 0B | 100% | /proc |
В разделе Добавим немного гибкости. описано, как добавить к возможностям системы способность загружаться с любого из жестких дисков. Это может быть необходимым, например, в случае неисправности CDROM - привода.
Предыдущая | Содержание | Следующая |
Запуск RAID-1 под управлением vinum | Добавим немного гибкости |
Предыдущая | Следующая |
Для начала создайте директорию, которая впоследствии станет корнем будущей системы. Вам понадобится минимум 200Мб свободного дискового пространства - столько будет занимать корень новой системы. Заодно перенесите /usr/home в /usr/local/home, так как в этот каталог желательно иметь возможность записи.
Предыдущая | Содержание | Следующая |
Введение | Корень на CDROM - подготовка |
Предыдущая | Следующая |
В зависимости от выбранной вами реализации, обратитесь к одному из разделов:
Предыдущая | Содержание | Следующая |
Запись новой системы на CDROM диск | Запуск RAID-1 под управлением vinum |
Предыдущая | Следующая |
D first | State: up | Device | /dev/ad0s1e | Avail: 0/21248 MB (0%) |
D second | State: up | Device | /dev/ad2s1e | Avail: 0/21248 MB (0%) |
V var | State: up | Plexes: | 2 Size: | 512 MB |
V tmp | State: up | Plexes: | 2 Size: | 256 MB |
V local | State: up | Plexes: | 2 Size: | 20 GB |
P var.p0 | C State: up | Subdisks: | 1 Size: | 512 MB |
P var.p1 | C State: faulty | Subdisks: | 1 Size: | 512 MB |
P tmp.p0 | C State: up | Subdisks: | 1 Size: | 256 MB |
P tmp.p1 | C State: faulty | Subdisks: | 1 Size: | 256 MB |
P local.p0 | C State: up | Subdisks: | 1 Size: | 20 GB |
P local.p1 | C State: faulty | Subdisks: | 1 Size: | 20 GB |
S var.p0.s0 | State: up | PO: | 0 B Size: | 512 MB |
S var.p1.s0 | State: empty | PO: | 0 B Size: | 512 MB |
S tmp.p0.s0 | State: up | PO: | 0 B Size: | 256 MB |
S tmp.p1.s0 | State: empty | PO: | 0 B Size: | 256 MB |
S local.p0.s0 | State: up | PO: | 0 B Size: | 20 GB |
S local.p1.s0 | State: empty | PO: | 0 B Size: | 20 GB |
D first | State: up | Device | /dev/ad0s1e | Avail: 0/21248 MB (0%) |
D second | State: up | Device | /dev/ad2s1e | Avail: 0/21248 MB (0%) |
V var | State: up | Plexes: | 2 Size: | 512 MB |
V tmp | State: up | Plexes: | 2 Size: | 256 MB |
V local | State: up | Plexes: | 2 Size: | 20 GB |
P var.p0 | C State: up | Subdisks: | 1 Size: | 512 MB |
P var.p1 | C State: up | Subdisks: | 1 Size: | 512 MB |
P tmp.p0 | C State: up | Subdisks: | 1 Size: | 256 MB |
P tmp.p1 | C State: faulty | Subdisks: | 1 Size: | 256 MB |
P local.p0 | C State: up | Subdisks: | 1 Size: | 20 GB |
P local.p1 | C State: faulty | Subdisks: | 1 Size: | 20 GB |
S var.p0.s0 | State: up | PO: | 0 B Size: | 512 MB |
S var.p1.s0 | State: up | PO: | 0 B Size: | 512 MB |
S tmp.p0.s0 | State: up | PO: | 0 B Size: | 256 MB |
S tmp.p1.s0 | State: empty | PO: | 0 B Size: | 256 MB |
S local.p0.s0 | State: up | PO: | 0 B Size: | 20 GB |
S local.p1.s0 | State: empty | PO: | 0 B Size: | 20 GB |
D first | State: up | Device | /dev/ad0s1e | Avail: 0/21248 MB (0%) |
D second | State: up | Device | /dev/ad2s1e | Avail: 0/21248 MB (0%) |
V var | State: up | Plexes: | 2 Size: | 512 MB |
V tmp | State: up | Plexes: | 2 Size: | 256 MB |
V local | State: up | Plexes: | 2 Size: | 20 GB |
P var.p0 | C State: up | Subdisks: | 1 Size: | 512 MB |
P var.p1 | C State: up | Subdisks: | 1 Size: | 512 MB |
P tmp.p0 | C State: up | Subdisks: | 1 Size: | 256 MB |
P tmp.p1 | C State: up | Subdisks: | 1 Size: | 256 MB |
P local.p0 | C State: up | Subdisks: | 1 Size: | 20 GB |
P local.p1 | C State: up | Subdisks: | 1 Size: | 20 GB |
S var.p0.s0 | State: up | PO: | 0 B Size: | 512 MB |
S var.p1.s0 | State: up | PO: | 0 B Size: | 512 MB |
S tmp.p0.s0 | State: up | PO: | 0 B Size: | 256 MB |
S local.p0.s0 | State: up | PO: | 0 B Size: | 20 GB |
S tmp.p1.s0 | State: up | PO: | 0 B Size: | 256 MB |
S local.p0.s0 | State: up | PO: | 0 B Size: | 20 GB |
S local.p1.s0 | State: up | PO: | 0 B Size: | 20 GB |
Filesystem | Size | Used | Avail | Capacity | Mounted on |
/dev/acd0a | 339M | 339M | 0B | 100% | / |
mfs:10 | 5.9M | 16K | 5.4M | 0% | /dev |
/dev/vinum/var | 528M | 14M | 472M | 3% | /var |
/dev/vinum/tmp | 264M | 2.0K | 243M | 0% | /tmp |
/dev/vinum/local | 21G | 160M | 19G | 1% | /usr/local |
procfs | 4.1K | 4.1K | 0B | 100% | /proc |
Id Refs Address Size Name 1 11 0xc0100000 394090 kernel 2 1 0xc1022000 c3000 vinum.ko
Для повышения надежности и отказоустойчивости вашего сервера, вы можете добавить возможность загрузки его с жестких дисков. Как это сделать, описано в разделе Добавим немного гибкости.
Предыдущая | Содержание | Следующая |
Запуск программной RAID-1 системы | Запуск RAID-1 под управлением ccd |