FreeBSD с корнем на CDROM и разделами на программном RAID-1.
Copyleft Polina Soloviova
Другой вариант настройки ccd(4): применение утилиты disklabel(8) к ccd - устройствам
ccd(4) позволяет логически разметить свои устройства на партиции утилитой disklabel(8) также, как этой утилитой размечаются слайсы (slice) FreeBSD.
В разделе RAID-1 с использованием ccd(4) описан вариант, когда для каждой зеркалируемой партиции отводилось отдельное ccd - устройство, размером, равным размеру соответствующей партиции. Вы можете обойтись всего одним ccd - устройством, размер которого составит сумму размеров всех партиций, для которых вы планируете зеркалирование. В этом случае это устройство необходимо разметить на партиции утилитой disklabel(8). При этом, к действиям, описанным в разделах RAID-1 с использованием ccd(4) и Запуск RAID-1 под управлением ccd(4), добавится еще ряд операций, коротко описанных ниже.
- Конфигурационный файл ccd
В случае использования одного-единственного устройства ccd0, размеченного на партиции утилитой disklabel(8), эту ситуацию необходимо отразить в конфигурационном файле ccd.conf. Он будет отличаться от описанного в разделе Конфигурационный файл ccd(4) тем, что в нем будет содержаться всего одна строка:
ccd0 |
128 |
CCDF_MIRROR |
/dev/ad0s1e |
/dev/ad2s1e |
Изменения затронут и файл fstab(5): устройства, на которых разместятся зеркалируемые партиции, в данном случае будут называться ccd0e, ccd0f и ccd0g. В отличие от приведенного в разделе Изменения в /etc/fstab примера файла fstab, здесь он будет содержать следующее:
/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-диска - разметить его на партиции. Список необходимых действий приведен ниже:
- во-первых, необходимо изменить таблицу партиций жестких дисков таким образом, чтобы партиции, которые впоследствии станут ccd-диском, имели размер, равный сумме всех партиций, для которых вы планируете зеркалирование. В данном примере партиция, размер которой необходимо увеличить - это партиция e. В то же время все остальные партиции необходимо будет удалить. Не редактируйте таблицу партиций на самом жестком диске, а используйте для этого файл, созданный командой
# disklabel ad0s1 > /usr/local/cdsystem/root/ccd/ad0s1
Запишите подготовленную таблицу на физический диск после создания резервных копий разделов перед конфигурированием ccd - диска (см. раздел Запуск RAID-1 под управлением ccd(4)).
если таблица партиций первого жесткого диска до внесения изменений выглядела так:
# /dev/ad0s1c:
type: ESDI
disk: ad0s1
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 4864
sectors/unit: 78156162
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# |
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*) |
то после внесенных изменений она приобретет следующий вид:
# /dev/ad0s1c:
type: ESDI
disk: ad0s1
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 4864
sectors/unit: 78156162
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# |
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*) |
аналогично отредактируйте таблицу партиций второго жесткого диска, скопировав получившийся файл в /usr/local/cdsystem/root/ccd/ad2s1 и сделав поправку в самом файле на имя устройства (/dev/ad2s1).
- во-вторых, после перезагрузки в однопользовательский режим, но перед непосредственным конфигурированием ccd-устройства (это описано в разделе Запуск RAID-1 под управлением ccd(4)), необходимо записать новые таблицы партиций на жесткие диски используя команду disklabel(8):
# cd /root/ccd
# disklabel -R ad0s1 ad0s1
# disklabel -R ad2s1 ad2s1
- далее, после конфигурирования ccd-диска и первой инициализации таблицы партиций на нем командами:
# ccdconfig -C
# disklabel -r -w ccd0c auto,
небходимо отредактировать таблицу партиций уже нового ccd-диска опять же с помощью утилиты disklabel(8):
# disklabel -r -e ccd0c
вы должны создать партиции на ccd-диске аналогично партициям на физических IDE или SCSI дисках. В данном примере вышеприведенная команда загрузит текстовый редактор (скорее всего, vi), в котором предложит для редактирования файл следующего вида:
# /dev/ccd0c:
type: CCD
disk: ccd0c
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 2048
cylinders: 21248
sectors/unit: 43515904
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
# |
size |
offset |
fstype |
[fsize bsize bps/cpg] |
c: |
43515904 |
0 |
unused |
0 |
0 |
|
# (Cyl. 0 - 4864*) |
в данном примере, после создания необходимых партиций, таблица (которую и представляет собой редактируемый файл) станет такой:
# /dev/ccd0c:
type: CCD
disk: ccd0c
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 2048
cylinders: 21248
sectors/unit: 43515904
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
# |
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) данного руководства.
Copyleft Polina Soloviova