предположим, что у меня есть raidz, созданный из трех дисков (или vdev).
$ fallocate -l 64m /tmp/one
$ fallocate -l 64m /tmp/two
$ fallocate -l 64m /tmp/three
$ sudo zpool create test raidz /tmp/one /tmp/two /tmp/three
$ sudo zpool status test
pool: test
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
/tmp/one ONLINE 0 0 0
/tmp/two ONLINE 0 0 0
/tmp/three ONLINE 0 0 0
errors: No known data errors
с целью увеличения размера пула, допустим, у меня есть набор из 5 других дисков, и я хотел разделить их вместе:
$ fallocate -l 64m four
$ fallocate -l 64m five
$ fallocate -l 64m six
$ fallocate -l 64m seven
$ fallocate -l 64m eight
$ sudo zpool add test raidz /tmp/four /tmp/five /tmp/six /tmp/seven /tmp/eight
invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: pool uses 3-way raidz and new vdev uses 5-way raidz
хм ... так что я могу заставить его -f
:
$ sudo zpool add -f test raidz /tmp/four /tmp/five /tmp/six /tmp/seven /tmp/eight
$ sudo zpool status test
pool: test
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
/tmp/one ONLINE 0 0 0
/tmp/two ONLINE 0 0 0
/tmp/three ONLINE 0 0 0
raidz1-1 ONLINE 0 0 0
/tmp/four ONLINE 0 0 0
/tmp/five ONLINE 0 0 0
/tmp/six ONLINE 0 0 0
/tmp/seven ONLINE 0 0 0
/tmp/eight ONLINE 0 0 0
и все хорошо выглядит ...
зачем мне его заставлять? с какими проблемами я могу столкнуться, используя это в производстве?
Причина, по которой zfs не хочет, чтобы вы это делали, заключается в том, что он не сможет использовать все пространство на более крупном vdef.
Кроме того, при объединении двух vdevs избыточность не будет одинаковой для всех данных в пуле, что в любом случае является плохой идеей.
С другой стороны, НИКОГДА не используйте конфигурации, которые не рекомендуются для чего-то вроде хранилища. Поскольку «плохие побочные эффекты» могут проявиться только тогда, когда вы начнете производство, тогда вся помощь, которую вы получите, будет. Отправляйте / получайте ваши данные в правильно настроенный пул.