null

В стиле «Разрушителей легенд»: SVM не поддерживает RAID10

Недавно в очередной раз стал участником обсуждений возможностей SVM и VxVM. Одним из недостатков SVM была названа невозможность создания тома с RAID10. Звучало это примерно так: в VxFS создаем зеркала и на их основе создаем страйп — в результате том RAID10, в SVM невозможно создать страйп из зеркал — следовательно SVM не поддерживает RAID10.
Ну чтож, проверим это утверждение в стиле «Разрушителей легенд».


Создаем подзеркала и объединяем их зеркало.
root@chuk:~ # metaset -s iscsiset -a -h chuk

root@chuk:~ # metaset -s iscsiset -a c3t600144F04C36B4F9000003473188EA00d0 \

c3t600144F04C36B4F8000003473188EA00d0 c3t600144F04C36B4FB000003473188EA00d0 \

c3t600144F04C36B4FC000003473188EA00d0 c3t600144F04C36B4FD000003473188EA00d0 \

c3t600144F04C36B4FE000003473188EA00d0 c3t600144F04C36B4FF000003473188EA00d0 \

c3t600144F04C36B501000003473188EA00d0

root@chuk:~ # metaset

 

Set name = iscsiset, Set number = 1

 

Host Owner

chuk Yes

 

Drive Dbase

 

/dev/dsk/c3t600144F04C36B4F9000003473188EA00d0 Yes

 

/dev/dsk/c3t600144F04C36B4F8000003473188EA00d0 Yes

 

/dev/dsk/c3t600144F04C36B4FB000003473188EA00d0 Yes

 

/dev/dsk/c3t600144F04C36B4FC000003473188EA00d0 Yes

 

/dev/dsk/c3t600144F04C36B4FD000003473188EA00d0 Yes

 

/dev/dsk/c3t600144F04C36B4FE000003473188EA00d0 Yes

 

/dev/dsk/c3t600144F04C36B4FF000003473188EA00d0 Yes

 

/dev/dsk/c3t600144F04C36B501000003473188EA00d0 Yes

root@chuk:~ # metainit -s iscsiset d10 1 4 c3t600144F04C36B4F9000003473188EA00d0s0 \

c3t600144F04C36B4F8000003473188EA00d0s0 c3t600144F04C36B4FB000003473188EA00d0s0 \

c3t600144F04C36B4FC000003473188EA00d0s0

iscsiset/d10: Concat/Stripe is setup

root@chuk:~ # metainit -s iscsiset d20 1 4 c3t600144F04C36B4FD000003473188EA00d0s0 \

c3t600144F04C36B4FE000003473188EA00d0s0 c3t600144F04C36B4FF000003473188EA00d0s0 \

c3t600144F04C36B501000003473188EA00d0s0

iscsiset/d20: Concat/Stripe is setup

root@chuk:~ # metainit -s iscsiset d0 -m d10 d20

metainit: iscsiset/d0: WARNING: This form of metainit is not recommended.

The submirrors may not have the same data.

Please see ERRORS in metainit(1M) for additional information.

iscsiset/d0: Mirror is setup

Сморим что получилось.
root@chuk:~ # metastat -s iscsiset

iscsiset/d0: Mirror

Submirror 0: iscsiset/d10

State: Okay

Submirror 1: iscsiset/d20

State: Okay

Pass: 1

Read option: roundrobin (default)

Write option: parallel (default)

Size: 8314880 blocks (4,0 GB)

 

iscsiset/d10: Submirror of iscsiset/d0

State: Okay

Size: 8314880 blocks (4,0 GB)

Stripe 0: (interlace: 32 blocks)

Device Start Block Dbase State Reloc Hot Spare

/dev/dsk/c3t600144F04C36B4F9000003473188EA00d0s0 0 No Okay Yes

/dev/dsk/c3t600144F04C36B4F8000003473188EA00d0s0 0 No Okay Yes

/dev/dsk/c3t600144F04C36B4FB000003473188EA00d0s0 0 No Okay Yes

/dev/dsk/c3t600144F04C36B4FC000003473188EA00d0s0 0 No Okay Yes

 

 

iscsiset/d20: Submirror of iscsiset/d0

State: Okay

Size: 8314880 blocks (4,0 GB)

Stripe 0: (interlace: 32 blocks)

Device Start Block Dbase State Reloc Hot Spare

/dev/dsk/c3t600144F04C36B4FD000003473188EA00d0s0 0 No Okay Yes

/dev/dsk/c3t600144F04C36B4FE000003473188EA00d0s0 0 No Okay Yes

/dev/dsk/c3t600144F04C36B4FF000003473188EA00d0s0 0 No Okay Yes

/dev/dsk/c3t600144F04C36B501000003473188EA00d0s0 0 No Okay Yes

 

 

Device Relocation Information:

Device Reloc Device ID

/dev/dsk/c3t600144F04C36B4FD000003473188EA00d0 Yes id1,sd@n600144f04c36b4fd000003473188ea00

/dev/dsk/c3t600144F04C36B4FE000003473188EA00d0 Yes id1,sd@n600144f04c36b4fe000003473188ea00

/dev/dsk/c3t600144F04C36B4FF000003473188EA00d0 Yes id1,sd@n600144f04c36b4ff000003473188ea00

/dev/dsk/c3t600144F04C36B501000003473188EA00d0 Yes id1,sd@n600144f04c36b501000003473188ea00

/dev/dsk/c3t600144F04C36B4F9000003473188EA00d0 Yes id1,sd@n600144f04c36b4f9000003473188ea00

/dev/dsk/c3t600144F04C36B4F8000003473188EA00d0 Yes id1,sd@n600144f04c36b4f8000003473188ea00

/dev/dsk/c3t600144F04C36B4FB000003473188EA00d0 Yes id1,sd@n600144f04c36b4fb000003473188ea00

/dev/dsk/c3t600144F04C36B4FC000003473188EA00d0 Yes id1,sd@n600144f04c36b4fc000003473188ea00

Таким образом по конфигурации мы видим классическую схему RAID01.

Создаем файловую систему, монтируем ее и записываем на нее данные.
root@chuk:~ # newfs /dev/md/iscsiset/rdsk/d0

newfs: construct a new file system /dev/md/iscsiset/rdsk/d0: (y/n)? y

/dev/md/iscsiset/rdsk/d0: 8314880 sectors in 4060 cylinders of 64 tracks, 32 sectors

4060,0MB in 83 cyl groups (49 c/g, 49,00MB/g, 6144 i/g)

super-block backups (for fsck -F ufs -o b=#) at:

32, 100416, 200800, 301184, 401568, 501952, 602336, 702720, 803104, 903488,

7326016, 7426400, 7526784, 7627168, 7727552, 7827936, 7928320, 8028704,

8129088, 8229472

root@chuk:~ # mount /dev/md/iscsiset/dsk/d0 /mnt

root@chuk:~ # df -h /mnt

Filesystem size used avail capacity Mounted on

/dev/md/iscsiset/dsk/d0

3,9G 4,0M 3,9G 1% /mnt

root@chuk:~ # cp osol-0906-* /mnt

root@chuk:~ #

root@chuk:~ # ls /mnt

lost+found osol-0906-ai-sparc.iso osol-0906-ai-x86.iso osol-0906-x86.iso

root@chuk:~ # df -h /mnt

Filesystem size used avail capacity Mounted on

/dev/md/iscsiset/dsk/d0

3,9G 1,1G 2,8G 29% /mnt
Отключаем четыре дисковые устройства (возможны любые варианты вплоть до физического удаления).
Продолжаем копировать на созданную нами файловую систему.
root@chuk:~ # cp VirtualBox-3.2.6-63112-SunOS.tar.gz /mnt

Смотрим состояние созданного нами метаустройства (тома).
root@chuk:~ # metastat -s iscsiset -t

iscsiset/d0: Mirror

Submirror 0: iscsiset/d10

State: Needs maintenance Пт июля 9 12:22:42 2010

Submirror 1: iscsiset/d20

State: Needs maintenance Пт июля 9 12:22:42 2010

Pass: 1

Read option: roundrobin (default)

Write option: parallel (default)

Size: 8314880 blocks (4,0 GB)

 

iscsiset/d10: Submirror of iscsiset/d0

State: Needs maintenance Пт июля 9 12:22:42 2010

Invoke: metareplace iscsiset/d0 /dev/dsk/c3t600144F04C36B4F9000003473188EA00d0s0 <new device>

Size: 8314880 blocks (4,0 GB)

Stripe 0: (interlace: 32 blocks)

Device Start Dbase State Reloc Hot Spare Time

/dev/dsk/c3t600144F04C36B4F9000003473188EA00d0s0 0 No Maintenance Yes Пт июля 9 12:22:42 2010

/dev/dsk/c3t600144F04C36B4F8000003473188EA00d0s0 0 No Okay Yes Пт июля 9 11:50:03 2010

/dev/dsk/c3t600144F04C36B4FB000003473188EA00d0s0 0 No Maintenance Yes Пт июля 9 12:22:42 2010

/dev/dsk/c3t600144F04C36B4FC000003473188EA00d0s0 0 No Okay Yes Пт июля 9 11:50:03 2010

 

 

iscsiset/d20: Submirror of iscsiset/d0

State: Needs maintenance Пт июля 9 12:22:42 2010

Invoke: metareplace iscsiset/d0 /dev/dsk/c3t600144F04C36B4FE000003473188EA00d0s0 <new device>

Size: 8314880 blocks (4,0 GB)

Stripe 0: (interlace: 32 blocks)

Device Start Dbase State Reloc Hot Spare Time

/dev/dsk/c3t600144F04C36B4FD000003473188EA00d0s0 0 No Okay Yes Пт июля 9 11:51:09 2010

/dev/dsk/c3t600144F04C36B4FE000003473188EA00d0s0 0 No Maintenance Yes Пт июля 9 12:22:42 2010

/dev/dsk/c3t600144F04C36B4FF000003473188EA00d0s0 0 No Okay Yes Пт июля 9 11:51:09 2010

/dev/dsk/c3t600144F04C36B501000003473188EA00d0s0 0 No Maintenance Yes Пт июля 9 12:22:42 2010

 

 

Device Relocation Information:

Device Reloc Device ID

/dev/dsk/c3t600144F04C36B4FD000003473188EA00d0 Yes id1,sd@n600144f04c36b4fd000003473188ea00

/dev/dsk/c3t600144F04C36B4FE000003473188EA00d0 Yes id1,sd@n600144f04c36b4fe000003473188ea00

/dev/dsk/c3t600144F04C36B4FF000003473188EA00d0 Yes id1,sd@n600144f04c36b4ff000003473188ea00

/dev/dsk/c3t600144F04C36B501000003473188EA00d0 Yes id1,sd@n600144f04c36b501000003473188ea00

/dev/dsk/c3t600144F04C36B4F9000003473188EA00d0 Yes id1,sd@n600144f04c36b4f9000003473188ea00

/dev/dsk/c3t600144F04C36B4F8000003473188EA00d0 Yes id1,sd@n600144f04c36b4f8000003473188ea00

/dev/dsk/c3t600144F04C36B4FB000003473188EA00d0 Yes id1,sd@n600144f04c36b4fb000003473188ea00

/dev/dsk/c3t600144F04C36B4FC000003473188EA00d0 Yes id1,sd@n600144f04c36b4fc000003473188ea00

И продолжаем работу дальше.
root@chuk:~ # ls -l /mnt

total 2436000

drwx------ 2 root root 8192 июля 9 11:52 lost+found

-rw------- 1 root root 281100288 июля 9 11:59 osol-0906-ai-sparc.iso

-rw------- 1 root root 168339456 июля 9 12:00 osol-0906-ai-x86.iso

-rw------- 1 root root 709871616 июля 9 12:04 osol-0906-x86.iso

-rw------- 1 root root 87233089 июля 9 12:22 VirtualBox-3.2.6-63112-SunOS.tar.gz

root@chuk:~ # cp /mnt/VirtualBox-3.2.6-63112-SunOS.tar.gz /tmp
 

Если это не RAID10 то что тогда?


Итак, миф «SVM не поддерживает RAID10» разрушен.

P.S. А это цитата из документации:
Providing RAID-1+0 and RAID-0+1
Solaris Volume Manager supports both RAID-1+0 and RAID-0+1 redundancy. RAID-1+0 redundancy constitutes a configuration of mirrors that are then striped. RAID-0+1 redundancy constitutes a configuration of stripes that are then mirrored. The Solaris Volume Manager interface makes it appear that all RAID-1 devices are strictly RAID-0+1. However, Solaris Volume Manager recognizes the underlying components and mirrors each individually, when possible.

 

Konstantin Borzov, Baku 2009

Коротко о себе:

Закончил Пушкинское высшее училище радиоэлектроники противовоздушной обороны (ПВУРЭ ПВО).

Служил в ВС и МВД, работал в народном хозяйстве. В настоящее время сотрудник компании Tune-It.

Привлекает решение "стандартных" задач - создание конфет из имеющегося сырья подручными средствами.

Ненавижу питерские пробки. Еще больше ненавижу общественный транспорт. В результате ежедневно пару часов провожу за рулем.