Передача файлов между серверами кажется медленной

У меня есть два сервера, на которых работает Rocky Linux v8.4, на одном размещен рейдовый диск, который я использую для резервного копирования (очень) большого рейдового диска, установленного на сервере А как /home.

Сервер A (с большим рейдом в 70 ТБ, смонтированным как /home, для которого необходимо выполнить резервное копирование) nfs монтирует резервный диск с сервера B. Серверы подключены через коммутатор с соединением 10 ГБ. В настоящее время я делаю просто прямо:

cp -a /home/* /backup

Но скорость передачи мне кажется медленной. Я отслеживал передачу с помощью vnstat:


         hour        rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     2022-09-07
         18:00     52.79 MiB |    9.23 GiB |    9.28 GiB |   22.15 Mbit/s
         19:00     47.31 MiB |    6.14 GiB |    6.19 GiB |   14.76 Mbit/s
         20:00     47.14 MiB |    6.18 GiB |    6.22 GiB |   14.85 Mbit/s
         21:00     47.43 MiB |    6.24 GiB |    6.28 GiB |   14.99 Mbit/s
         22:00     44.31 MiB |    4.11 GiB |    4.15 GiB |    9.91 Mbit/s
         23:00     44.46 MiB |    4.04 GiB |    4.08 GiB |    9.73 Mbit/s
     2022-09-08
         00:00     44.90 MiB |    4.39 GiB |    4.43 GiB |   10.58 Mbit/s
         01:00     44.97 MiB |    4.63 GiB |    4.67 GiB |   11.15 Mbit/s
         02:00     43.82 MiB |    3.86 GiB |    3.90 GiB |    9.30 Mbit/s
         03:00     54.34 MiB |    9.77 GiB |    9.82 GiB |   23.43 Mbit/s
         04:00     47.28 MiB |    6.41 GiB |    6.45 GiB |   15.40 Mbit/s
         05:00     47.52 MiB |    6.30 GiB |    6.35 GiB |   15.14 Mbit/s
         06:00     47.63 MiB |    6.53 GiB |    6.58 GiB |   15.69 Mbit/s
         07:00     46.99 MiB |    5.98 GiB |    6.03 GiB |   14.38 Mbit/s
         08:00     43.95 MiB |    4.57 GiB |    4.61 GiB |   11.01 Mbit/s
         09:00     44.94 MiB |    4.35 GiB |    4.39 GiB |   10.48 Mbit/s
         10:00     45.17 MiB |    4.69 GiB |    4.74 GiB |   11.30 Mbit/s
         11:00     44.88 MiB |    4.31 GiB |    4.35 GiB |   10.39 Mbit/s
         12:00     44.80 MiB |    4.72 GiB |    4.77 GiB |   11.38 Mbit/s
         13:00     47.73 MiB |    6.24 GiB |    6.29 GiB |   15.01 Mbit/s
         14:00     48.13 MiB |    6.29 GiB |    6.34 GiB |   15.12 Mbit/s
         15:00     45.31 MiB |    4.84 GiB |    4.89 GiB |   11.66 Mbit/s
         16:00     45.89 MiB |    4.90 GiB |    4.95 GiB |   11.81 Mbit/s
         17:00      7.58 MiB |  873.07 MiB |  880.66 MiB |   12.31 Mbit/s
     ------------------------+-------------+-------------+---------------

Сервер A монтирует /home со следующими параметрами (из /proc/mounts):

/dev/sdb1 /home xfs rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota 0 0

и автоматически монтирует /backup с сервера B nfs со следующими параметрами:

Server_B:/backup /backup nfs4 rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.33.254,local_lock=none,addr=172.16.33.250 0 0

Сервер B монтирует резервный диск со следующими параметрами:

/dev/sdb /backup xfs rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota 0 0

Есть ли лучшие варианты, которые ускорили бы передачу между этими вещами? Определенно есть сочетание как очень больших файлов (50 ГБ+), так и очень маленьких файлов, поэтому это не идеальный сценарий передачи, но все же кажется, что он должен быть быстрее, чем этот. Обе они представляют собой файловые системы xfs, работающие в конфигурации оборудования raid6 через карты Megaraid 9750-4i. Рейд на 70 ТБ состоит из 21 диска WDC WD4000FYYZ-01UL по 4 ТБ, а резервный диск — из 21 диска Seagate Ironwolf ST16000NE000-2RW103 по 16 ТБ. (Я планирую перенести меньший рейд на более крупные диски емкостью 21 16 ТБ после завершения резервного копирования).

Сеть: NIC сервера A

Settings for enp132s0f0:
        Supported ports: [ FIBRE ]
        Supported link modes:   10000baseT/Full
        Supported pause frame use: Symmetric
        Supports auto-negotiation: No
        Supported FEC modes: Not reported
        Advertised link modes:  10000baseT/Full
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Speed: 10000Mb/s
        Duplex: Full
        Auto-negotiation: off
        Port: Direct Attach Copper
        PHYAD: 0
        Transceiver: internal
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

NIC сервера B

Settings for enp132s0f0np0:
        Supported ports: [ FIBRE ]
        Supported link modes:   1000baseT/Full
                                10000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: No
        Supported FEC modes: Not reported
        Advertised link modes:  Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  Not reported
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: No
        Link partner advertised FEC modes: Not reported
        Speed: 10000Mb/s
        Duplex: Full
        Auto-negotiation: off
        Port: FIBRE
        PHYAD: 255
        Transceiver: internal
        Supports Wake-on: g
        Wake-on: d
        Current message level: 0x000020f7 (8439)
                               drv probe link ifdown ifup rx_err tx_err hw
        Link detected: yes

iperf3 между серверами:

Connecting to host fs01, port 5201
[  5] local 172.16.33.254 port 49004 connected to 172.16.33.250 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.10 GBytes  9.43 Gbits/sec    0    673 KBytes
[  5]   1.00-2.00   sec  1.09 GBytes  9.41 Gbits/sec    0    708 KBytes
[  5]   2.00-3.00   sec  1.09 GBytes  9.41 Gbits/sec    0    708 KBytes
[  5]   3.00-4.00   sec  1.09 GBytes  9.41 Gbits/sec    0    708 KBytes
[  5]   4.00-5.00   sec  1.09 GBytes  9.41 Gbits/sec    0    708 KBytes
[  5]   5.00-6.00   sec  1.09 GBytes  9.41 Gbits/sec    0    708 KBytes
[  5]   6.00-7.00   sec  1.10 GBytes  9.42 Gbits/sec    0    708 KBytes
[  5]   7.00-8.00   sec  1.10 GBytes  9.42 Gbits/sec    0    708 KBytes
[  5]   8.00-9.00   sec  1.09 GBytes  9.41 Gbits/sec    0    708 KBytes
[  5]   9.00-10.00  sec  1.10 GBytes  9.42 Gbits/sec    0    708 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  11.0 GBytes  9.41 Gbits/sec    0             sender
[  5]   0.00-10.04  sec  11.0 GBytes  9.37 Gbits/sec                  receiver

iperf Done.

linux centos производительность рейда сетевой ресурс

драгоценность

2 ответа
2

Я бы начал с установки ethtool (если вы еще этого не сделали). А затем запустите ethtool для вашего сетевого адаптера. Проверка скорости соединения каждого сервера. Это 10/100/1000 и какой дуплекс?

После этого я загружал iperf (инструмент для проверки пропускной способности командной строки) на каждую машину с Linux. С iperf вы запустите его на обеих машинах с Linux. 1 машина будет сервером (прослушивающим определенный порт), а другая будет клиентом, отправляющим данные на сервер, и программа проверит фактическую пропускную способность.

Туз

По-видимому, моей самой большой проблемой были НЕ параметры монтирования, как я думал, а просто тонны и тонны операций записи на диск NFS. Я нашел здесь отличный вопрос/ответ о попытке оптимизировать передачу огромного количества данных: Как быстро скопировать большое количество файлов между двумя серверами.

драгоценность

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *