Предыдущая | Следующая |
Если у вас 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 диск |