Какие есть варианты создания единого тома из нескольких разных жестких дисков с избыточностью (, т. е. гетерогенного RAID)

Корень не видит ваш -пользовательский файл конфигурации ssh. Вам нужно поместить его в корневой домашний каталог(/root/)или в общесистемный файл конфигурации -в /etc/ssh/ssh_config, предполагая, что ключ аутентификации не зашифрован (не имеет парольной фразы ).

Вы также можете избежать многих проблем, выбросив netcat и используя переключатель -W для переадресации ввода-вывода непосредственно в SSH или, если у вас достаточно нового -OpenSSH, вы можете использовать только опцию ProxyJump (подробности см. в руководстве ).

И удалите также ForwardAgent yes. Он вам ни для чего не нужен, он просто предоставляет серверу ваши приватные ключи.

1
03.05.2021, 18:17
1 ответ

Ключом к достижению цели является группировка дисков в наборы с одинаковым или почти одинаковым объемом памяти, а затем объединение каждого набора физических дисков в один виртуальный диск, представляющий сумму общий объем хранилища, доступный на дисках в этом наборе.

Я сделаю это во FreeBSD, но полагаю, что подобные инструменты существуют и в Linux. Основным подручным инструментом здесь является gconcat(8).

Давайте рассмотрим сценарий, в котором у вас есть:

  • пять дисков 384G (как/dev/md0-md4)
  • четыре диска 2T (как/dev/md5-md8)
  • два диска 1T (как/dev/md9-md10)

Используя gconcat, мы можем объединить эти приводы в пять наборов:

  • четыре комплекта 2T + 384G
  • один комплект из 1T + 1T + 384G

После этого у нас будет 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
1
16.09.2021, 21:57

Теги

Похожие вопросы