Русский перевод: Михаил Сгибнев
Содержание
- 14.1. Установка физичесих носителей
- 14.2. Конфигурирование ядра
- 14.3. Присоединяем метку каждого диска к CCD
- 14.4. Конфигурирование CCD
- 14.5. Инициализация устройства CCD
- 14.6. Создание файловой системы 4.2BSD/UFS на новом устройстве CCD device
- 14.7. Монтирование файловой системы
Драйвер CCD позволяет пользователю «объединять» несколько физических дисков в один псевдо-диск. В то время, когда RAIDframe (смотри Глава 15, NetBSD RAIDframe) позволяет организовывать массивы RAID level 0 только с одинаковой геометрией, CCD позволяет преодолевать эти ограничения. При работе с CCD возможно «чередование» дисков для повышения быстродействия, но с потерей дискового пространства. В этом примере такую возможность мы не рассматриваем.
Для установка CCD необходимо выполнить несколько шагов:
- Установить физический носитель
- Сконфигурировать ядро
- Метку каждого диска присоединить к CCD
- Создать файл конфигурации CCD
- Инициализировать устройство CCD
- Создать файловую систему на новом устройстве CCD
- Примонтировать файловую систему CCD
В этом примере CCD устанавливается на NetBSD/sparc 1.5. CCD будет занимать 4 SCSI диска внешней корзины Sun, подсоединенной через стандартный 50 пиновый разьем SCSI.
14.1. Установка физичесих носителей
Первый Ваш шаг зависит от Вашей платформы и от имеющихся в наличии аппаратных средств.
Вывод моего DMESG:
Disk #1: probe(esp0:0:0): max sync rate 10.00MB/s sd0 at scsibus0 target 0 lun 0: <SEAGATE, ST32430N SUN2.1G, 0444> SCSI2 0/direct fixed sd0: 2049 MB, 3992 cyl, 9 head, 116 sec, 512 bytes/sect x 4197405 sectors Disk #2 probe(esp0:1:0): max sync rate 10.00MB/s sd1 at scsibus0 target 1 lun 0: <SEAGATE, ST32430N SUN2.1G, 0444> SCSI2 0/direct fixed sd1: 2049 MB, 3992 cyl, 9 head, 116 sec, 512 bytes/sect x 4197405 sectors Disk #3 probe(esp0:2:0): max sync rate 10.00MB/s sd2 at scsibus0 target 2 lun 0: <SEAGATE, ST11200N SUN1.05, 9500> SCSI2 0/direct fixed sd2: 1005 MB, 1872 cyl, 15 head, 73 sec, 512 bytes/sect x 2059140 sectors Disk #4 probe(esp0:3:0): max sync rate 10.00MB/s sd3 at scsibus0 target 3 lun 0: <SEAGATE, ST11200N SUN1.05, 8808 > SCSI2 0 sd3: 1005 MB, 1872 cyl, 15 head, 73 sec, 512 bytes/sect x 2059140 sectors
14.2. Конфигурирование ядра
Для обеспечения поддержки CCD в ядре должна быть прописана следующая директива (имеется в ядре GENERIC):
pseudo-device ccd 4 # concatenated disk devices
В моем файле конфигурации я также жестко привязал SCSI ID и запись устройства в /dev
, дабы чего не вышло.
sd0 at scsibus0 target 0 lun ? # SCSI disk drives sd1 at scsibus0 target 1 lun ? # SCSI disk drives sd2 at scsibus0 target 2 lun ? # SCSI disk drives sd3 at scsibus0 target 3 lun ? # SCSI disk drives sd4 at scsibus0 target 4 lun ? # SCSI disk drives sd5 at scsibus0 target 5 lun ? # SCSI disk drives sd6 at scsibus0 target 6 lun ? # SCSI disk drives
14.3. Присоединяем метку каждого диска к CCD
Каждый диск, входящий в CCD, нуждается в специализированной файловой системе. В этом примере, для disklabel:
/dev/rsd0c
/dev/rsd1c
/dev/rsd2c
/dev/rsd3c
Замечание
Всегда помните, что метка диска — признак символьного устройства, а не блочного.
Замечание
На всех платформах слайс c
является символической записью NetBSD и зарезервирован.
Вероятнее всего Вы захотите удалить старые разделы на дисках, отведенных под CCD. Делается это с помощью команды dd(1):
#
dd if=/dev/zero of=/dev/rsd0c bs=8k count=1
#
dd if=/dev/zero of=/dev/rsd1c bs=8k count=1
#
dd if=/dev/zero of=/dev/rsd2c bs=8k count=1
#
dd if=/dev/zero of=/dev/rsd3c bs=8k count=1
Если Ваша архитектура подразумевает использование MBR (Master Boot Record) и кроме NetBSD на диске могут оказаться разделы других систем, таких как Windows или Linux, то можно убрать MBR и все разделы с диска, используя команду:
#
dd if=/dev/zero of=/dev/rsd0d bs=8k count=1
#
dd if=/dev/zero of=/dev/rsd1d bs=8k count=1
#
dd if=/dev/zero of=/dev/rsd2d bs=8k count=1
#
dd if=/dev/zero of=/dev/rsd3d bs=8k count=1
После выполнения этой операции все данные на диске окажутся недоступными. Обратите внимание на занимающий весь диск слайс d
на платформе i386 (и некоторых других) и c
на остальных (например на sparc). Смотрите «kern.rawpartition» sysctl — «3» для «d», «2» для «c».
По умолчанию метка для диска будет выглядеть примерно так:
#
disklabel -r sd0
[...snip...] bytes/sector: 512 sectors/track: 116 tracks/cylinder: 9 sectors/cylinder: 1044 cylinders: 3992 total sectors: 4197405 [..snip...] 3 partitions: # size offset fstype [fsize bsize cpg] c: 4197405 0 unused 1024 8192 # (Cyl. 0 - 4020*)
Вам необходимо будет создать один «slice» для раздела NetBSD на диске. «Slice» должен начинаться со смещением ,по крайней мере, в один цилиндр от начала диска/раздела для размещения специальной CCD disklabel. Смещение должно быть кратно отношению «sectors/cylinder», поэтому «size» будет равен «total sectors» за вычетом 1x «sectors/cylinder». Отредактируйте метку диска соответственно:
#
disklabel -e sd0
Замечание
Смещение слайса типа «ccd» должно соответствовать значению «sectors/cylinder»
Замечание
Выполните export EDITOR=[path to your favorite editor] перед редактированием метки диска.
Замечание
Тип слайса должен быть указан как ccd
.
Поскольку у нас будет только один слайс на разделе, то Вы можете использовать c
, обычно зарезервированный. Измените вашу метку диска на следующее:
3 partitions: # size offset fstype [fsize bsize cpg] c: 4196361 1044 ccd # (Cyl. 1 - 4020*)
Также можно установить слайс, отличный от c
, для этого просто отредактируйте:
3 partitions: # size offset fstype [fsize bsize cpg] a: 4196361 1044 ccd # (Cyl. 1 - 4020*) c: 4197405 0 unused 1024 8192 # (Cyl. 0 - 4020*)
Убедитесь в том, что метка записалась. Disklabel попросит вас подтвердить изменения, проявите благоразумие в этом вопросе и вспомните, все ли правильно вы сделали?
14.4. Конфигурирование CCD
Как только все диски соответствующим образом размечены, необходимо создать файл конфигурации /etc/ccd.conf
. Этот файл не создается по умолчанию, поэтому вам необходимо создать его. Формат файла представлен ниже:
#ccd ileave flags component devices
Замечание
Если значение «ileave» равно 0, то диски обьединяются, если используется значение, эквивалентное значению «sectors/track», диски чередуются.
В нашем случае:
#
more /etc/ccd.conf
ccd0 0 none /dev/sd0c /dev/sd1c /dev/sd2c /dev/sd3c
Замечание
Файл конфигурации CCD необходим для функционирования только что созданной файловой системы CCD. Не используйте здесь блочное устройство, необходимо указывать символьное.
14.5. Инициализация устройства CCD
Как только вы почувствовали, что конфигурирование произведено правильно, можно инициализировать устройство, используя команду ccdconfig(8). Конфигурируем:
#
ccdconfig -c -f /etc/ccd.conf
Расконфигурируем:
#
ccdconfig -u -f /etc/ccd.conf
Инициализация устройства CCD активирует в /dev
записи /dev/{,r}ccd#:
:
#
ls -la /dev/{,r}ccd0*
brw-r----- 1 root operator 9, 0 Apr 28 21:35 /dev/ccd0a brw-r----- 1 root operator 9, 1 Apr 28 21:35 /dev/ccd0b brw-r----- 1 root operator 9, 2 May 12 00:10 /dev/ccd0c brw-r----- 1 root operator 9, 3 Apr 28 21:35 /dev/ccd0d brw-r----- 1 root operator 9, 4 Apr 28 21:35 /dev/ccd0e brw-r----- 1 root operator 9, 5 Apr 28 21:35 /dev/ccd0f brw-r----- 1 root operator 9, 6 Apr 28 21:35 /dev/ccd0g brw-r----- 1 root operator 9, 7 Apr 28 21:35 /dev/ccd0h crw-r----- 1 root operator 23, 0 Jun 12 20:40 /dev/rccd0a crw-r----- 1 root operator 23, 1 Apr 28 21:35 /dev/rccd0b crw-r----- 1 root operator 23, 2 Jun 12 20:58 /dev/rccd0c crw-r----- 1 root operator 23, 3 Apr 28 21:35 /dev/rccd0d crw-r----- 1 root operator 23, 4 Apr 28 21:35 /dev/rccd0e crw-r----- 1 root operator 23, 5 Apr 28 21:35 /dev/rccd0f crw-r----- 1 root operator 23, 6 Apr 28 21:35 /dev/rccd0g crw-r----- 1 root operator 23, 7 Apr 28 21:35 /dev/rccd0h
14.6. Создание файловой системы 4.2BSD/UFS на новом устройстве CCD device
Теперь можно создавать разделы на новом виртуальном диске, ассоциированным с устройством CCD.
#
disklabel -e ccd0
Поскольку у нас один слайс, будем использовать слайс c
или создадим отдельный слайс для использования:
#
disklabel -r ccd0
# /dev/rccd0c: type: ccd disk: ccd label: default label flags: bytes/sector: 512 sectors/track: 2048 tracks/cylinder: 1 sectors/cylinder: 2048 cylinders: 6107 total sectors: 12508812 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # microseconds track-to-track seek: 0 # microseconds drivedata: 0 # size offset fstype [fsize bsize cpg] c: 12508812 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 6107*)
Затем необходимо отформатировать файловую систему:
#
newfs /dev/rccd0c
Warning: 372 sector(s) in last cylinder unallocated /dev/rccd0c: 12508812 sectors in 6108 cylinders of 1 tracks, 2048 sectors 6107.8MB in 382 cyl groups (16 c/g, 16.00MB/g, 3968 i/g) super-block backups (for fsck -b #) at: [...]
14.7. Монтирование файловой системы
После создания файловой системы на устройстве CCD она может быть примонтирована обычным образом. Монтируем слайс ffs
или 4.2BSD
:
#
mount /dev/ccd0c /mnt
Затем:
#
export BLOCKSIZE=1024; df
Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/sd6a 376155 320290 37057 89% / /dev/ccd0c 6058800 1 5755859 0% /mnt
Поздравляем, теперь у вас есть работающий CCD. Для конфигурирования устройства CCD при начальной загрузке, добавьте опцию ccd=yes
в файл /etc/rc.conf
. Вы должны добавить следущую строку в /etc/fstab
для монтирования файловой системы при загрузке:
/dev/ccd0c /home ffs rw,softdep 1 2