У меня есть пул с одним диском, состоящий из жесткого диска на 2 ТБ. У меня есть два диска по 1 ТБ, которые я могу использовать в зеркале — я хотел бы добавить избыточность к моему пулу.
Как мне подключить эти два диска как одно устройство, чтобы их можно было использовать как полосатое зеркало?
Назовем мой диск емкостью 2 ТБ — sda
, пустые диски емкостью 1 ТБ — sdb
и sdc
.
Я пытался: zfs attach tank sda sdb sdc
но там написано too many arguments
.
Я пытался: zfs attach tank sda sdb
но это говоритdevice is too small
Я пытался: zfs attach tank sda sdb+sdc
но это говоритno such device in /dev
Я пытался: zfs attach tank sda sdb,sdc
но это говоритno such device in /dev
Я прочитал руководство и поискал в Интернете — у меня закончились идеи.
Думаю, я мог бы попробовать создать новый чередующийся пул из этих двух дисков по 1 ТБ, создать внутри zvol и использовать его в качестве зеркала для моего основного пула, но это, вероятно, в любом случае даст мне недостаточно емкости для зеркала, плюс много ненужных накладных расходов.
Как я могу это сделать?
решение1
Это нельзя сделать напрямую через ZFS. Изстраница руководства:
Виртуальные устройства не могут быть вложенными, поэтому зеркало или виртуальное устройство raidz могут содержать только файлы или диски. Зеркала зеркал (или другие комбинации) не допускаются.
Я предлагаю создать новый пул, состоящий из двух дисков по 1 ТБ и использовать что-то в качествесиноидныйчасто отправлять содержимое первого пула в новый пул.
--- ВНИМАНИЕ: неуклюжий обходной путь ниже! НЕ используйте, если не уверены ДЕЙСТВИТЕЛЬНО!!! ---
В любом случае, если выДействительнохотите добавить два диска по 1 ТБ в качестве зеркала первых дисков по 2 ТБ, можно попробовать обходной путь. Вы можете использовать device-mapper (в форме LVM) для объединения двух дисков и присоединения полученного тома к устройству на 2 ТБ. Например:
pvcreate /dev/sdb
pvcreate /dev/sdc
vgcreate zvg /dev/sdb
vgextend zvg /dev/sdc
lvcreate zvg --name zdev -l +100%FREE
zpool attach tank /dev/sda /dev/zvg/zdev
zpool status
Аналогичного (даже лучшего) результата можно добиться с помощью mdadm, создав устройство RAID0 и подключив его к zpool:
mdadm --create md127 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
zpool attach tank /dev/sda /dev/md127
zpool status
Этот подходнетрекомендуется. Используйте его на свой страх и риск.
решение2
Чтобы добавить два новых диска в пул, можно использовать , zpool add tank mirror sdb sdc
но это добавит новую пару как зеркало и объединит ее с существующим диском. (Это не добавляет никакой избыточности).
Вам нужно будет использовать zpool attach
команду для добавления дисков к существующему vdev, но вы не сможете использовать зеркальную пару для резервного копирования одного диска, вам придется добавить новый диск объемом 2 ТБ, чтобы создать зеркальную пару.