Можно объединить многодисковый zfs zpool на один (больший) диск?
У меня есть этот zpool:
bash-3.2# zpool status dpool
pool: dpool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
dpool ONLINE 0 0 0
c3t600601604F021A009E1F867A3E24E211d0 ONLINE 0 0 0
c3t600601604F021A00141D843A3F24E211d0 ONLINE 0 0 0
Я хотел бы заменить оба этих диска на один (больший диск). Это можно сделать? zpool attach позволяет мне заменить один физический диск, но не позволяет заменить оба одновременно.
2 ответа
Нет, я не думаю, что это возможно так, как вы описываете.
Однако вы можете создать новый пул с одного диска и скопировать файловые системы ZFS в новый пул, используя простой процесс отправки / получения zfs.
Ты должен быть способен zpool attach
новый и больший диск, дождитесь завершения зеркалирования, а затем zpool detach
старые диски.
Редактировать: я неправильно прочитал ваш вопрос, и я был совершенно уверен, что вы запускаете их как зеркало.
Я согласен, что лучший способ действий - это создать новый пул и рекурсивно отправить все наборы данных в новый пул, но если вы действительно не можете этого сделать, то вы все равно можете выполнить изложенные мной шаги при условии, что вы разбиваете новый больший диск, на два раздела, каждый размером не менее того диска, который предполагается заменить.
Я рекомендую против этого, главным образом потому, что (1) управление становится более сложным, и (2) вы не сможете использовать кэш записи диска.
Я вставлю здесь последовательность, как показано на недавней коробке Illumos. Обратите внимание, что я создаю пустые файлы, чтобы показать это, вместо того, чтобы использовать целые диски и фрагменты / разделы, поскольку я не могу манипулировать физическими устройствами на этом блоке. Файлы названы aa1
, aa2
а также aa3
,
Подготовьте устройства.
aa3
200M большой, в то время какaa1
а такжеaa2
только 100M:# dd if=/dev/zero of=/opt/local/aa1 bs=1M count=100 # dd if=/dev/zero of=/opt/local/aa2 bs=1M count=100 # dd if=/dev/zero of=/opt/local/aa3 bs=1M count=200
Создайте наш тестовый пул:
# zpool create test mirror /opt/local/aa1 /opt/local/aa2
Убедитесь, что все прошло гладко:
# zpool list -v test NAME SIZE ALLOC FREE EXPANDSZ CAP DEDUP HEALTH ALTROOT test 95,5M 106K 95,4M - 0% 1.00x ONLINE - mirror 95,5M 106K 95,4M - /opt/local/aa1 - - - - /opt/local/aa2 - - - -
Установить
autoexpand
имущество:# zpool set autoexpand=on test
Присоедините новое устройство:
# zpool attach test /opt/local/aa2 /opt/local/aa3
Все ли еще хорошо?
# zpool list -v test NAME SIZE ALLOC FREE EXPANDSZ CAP DEDUP HEALTH ALTROOT test 95,5M 120K 95,4M - 0% 1.00x ONLINE - mirror 95,5M 120K 95,4M - /opt/local/aa1 - - - - /opt/local/aa2 - - - - /opt/local/aa3 - - - -
Да, это.
Отключите первых двух разработчиков:
# zpool detach test /opt/local/aa1 # zpool detach test /opt/local/aa2
Наконец, давайте снова проверим пул:
# zpool list -v test
NAME SIZE ALLOC FREE EXPANDSZ CAP DEDUP HEALTH ALTROOT
test 196M 124K 195M - 0% 1.00x ONLINE -
/opt/local/aa3 196M 124K 195M -
Он правильно вырос до 200 МБ.