Недавно в очередной раз стал участником обсуждений возможностей 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.