Корень не видит ваш -пользовательский файл конфигурации ssh. Вам нужно поместить его в корневой домашний каталог(/root/
)или в общесистемный файл конфигурации -в /etc/ssh/ssh_config
, предполагая, что ключ аутентификации не зашифрован (не имеет парольной фразы ).
Вы также можете избежать многих проблем, выбросив netcat и используя переключатель -W для переадресации ввода-вывода непосредственно в SSH или, если у вас достаточно нового -OpenSSH, вы можете использовать только опцию ProxyJump (подробности см. в руководстве ).
И удалите также ForwardAgent yes
. Он вам ни для чего не нужен, он просто предоставляет серверу ваши приватные ключи.
Ключом к достижению цели является группировка дисков в наборы с одинаковым или почти одинаковым объемом памяти, а затем объединение каждого набора физических дисков в один виртуальный диск, представляющий сумму общий объем хранилища, доступный на дисках в этом наборе.
Я сделаю это во FreeBSD, но полагаю, что подобные инструменты существуют и в Linux. Основным подручным инструментом здесь является gconcat(8)
.
Давайте рассмотрим сценарий, в котором у вас есть:
/dev/md0-md4
)/dev/md5-md8
)/dev/md9-md10
)Используя gconcat
, мы можем объединить эти приводы в пять наборов:
После этого у нас будет 5 объединенных виртуальных -дисков одинакового размера, и мы сможем создать из них наш пул. Чтобы сэкономить место, я на самом деле уменьшу -эти размеры в 2^10 раз, но концепция останется прежней. Итак, я буду использовать 5 дисков по 384 МБ, 4 диска по 2 ГБ и 2 диска по 1 ГБ.
Во-первых, учитывая /dev/md*
устройства, описанные выше (, которые могут быть /dev/sd*
или аналогичными для физических дисков в Linux ),мы можем объединить эти физические диски в пять виртуальных дисков, которые мы назовемvdisk0-vdisk4
:
# gconcat create -v vdisk0 md0 md5
# gconcat create -v vdisk1 md1 md6
# gconcat create -v vdisk2 md2 md7
# gconcat create -v vdisk3 md3 md8
# gconcat create -v vdisk4 md4 md9 md10
Во FreeBSD эти соединенные диски отображаются как устройства /dev/concat/vdisk0-vdisk4
. Как и многие команды FreeBSD, созданные для манипулирования дисковыми устройствами, /dev/
понимается и для краткости опускается в выводе gconcat status
. Аналогично, команды на основе GEOM
-, ссылающиеся на записи /dev/
, могут для удобства опускать начальный /dev/
.
# gconcat status
Name Status Components
concat/vdisk0 UP md0
md5
concat/vdisk1 UP md1
md6
concat/vdisk2 UP md2
md7
concat/vdisk3 UP md3
md8
concat/vdisk4 UP md4
md9
md10
Мы также можем проверить, что размер носителя для каждого объединенного диска одинаков (или, в данном примере, идентичен):
# gconcat list | grep -A2 ^Prov
Providers:
1. Name: concat/vdisk0
Mediasize: 2550136832 (2.4G)
--
Providers:
1. Name: concat/vdisk1
Mediasize: 2550136832 (2.4G)
--
Providers:
1. Name: concat/vdisk2
Mediasize: 2550136832 (2.4G)
--
Providers:
1. Name: concat/vdisk3
Mediasize: 2550136832 (2.4G)
--
Providers:
1. Name: concat/vdisk4
Mediasize: 2550136832 (2.4G)
Итак! Теперь у нас есть пять устройств по 2,4 Гб каждое, и мы можем создать из них пул ZFS. Давайте создадим пул RAIDZ2 с двойной -четностью, но установим для него точку монтированияnone
:
# zpool create -m none tank raidz2 concat/vdisk{0..4}
# zpool status tank
pool: tank
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
concat/vdisk0 ONLINE 0 0 0
concat/vdisk1 ONLINE 0 0 0
concat/vdisk2 ONLINE 0 0 0
concat/vdisk3 ONLINE 0 0 0
concat/vdisk4 ONLINE 0 0 0
errors: No known data errors
# zfs list tank
NAME USED AVAIL REFER MOUNTPOINT
tank 179K 6.64G 39.3K none
КЭД.
Подводя итог, можно сказать, что ключевой концепцией является группировка дисков в наборы, максимально приближенные к одному и тому же объему хранилища, поскольку наименьший набор дисков будет ограничивать размер VDEV вашего пула. Как только у вас будет оптимальная группировка физических дисков, объедините каждый набор дисков в виртуальный диск, представляющий объединенное хранилище этого набора. Наконец, создайте ZPOOL из объединенных виртуальных дисков.
В случае сбоя диска --давайте использовать /dev/concat/vdisk2
в качестве примера --просто уничтожьте объединенный виртуальный диск, физический диск (которого )вышел из строя, замените неисправный диск (с ), заново создайте виртуальный диск, а затем перенесите пул на объединенный диск.
# zpool status tank
pool: tank
state: DEGRADED
status: One or more devices has been removed by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using zpool online' or replace the device with
'zpool replace'.
config:
NAME STATE READ WRITE CKSUM
tank DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
concat/vdisk0 ONLINE 0 0 0
concat/vdisk1 ONLINE 0 0 0
concat/vdisk2 REMOVED 0 0 0
concat/vdisk3 ONLINE 0 0 0
concat/vdisk4 ONLINE 0 0 0
errors: No known data errors
Поскольку vdisk2
не удалось, мы уничтожаем его:
# gconcat destroy vdisk2
Затем мы заменяем неисправный диск (на ), которые содержат concat/vdisk2
. Если вам необходимо использовать другие размеры дисков, убедитесь, что новый vdisk2
не меньше наименьшего виртуального диска в пуле, иначе ZFS не позволит вам использовать этот диск в пуле.
Когда неисправные диски заменены на подходящие,повторно -объединить эти физические диски для создания новогоvdisk2
:
# gconcat create vdisk2 md2 md7
# zpool online tank concat/vdisk2
# zpool status tank
pool: tank
state: ONLINE
scan: resilvered 7.50K in 00:00:01 with 0 errors on Wed Sep 22 11:26:55 2021
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
concat/vdisk0 ONLINE 0 0 0
concat/vdisk1 ONLINE 0 0 0
concat/vdisk2 ONLINE 0 0 0
concat/vdisk3 ONLINE 0 0 0
concat/vdisk4 ONLINE 0 0 0
errors: No known data errors