Что может быть причиной ошибок при копировании файлов с помощью rsync через SSH с виртуальной машины Proxmox?

Здравствуйте! 

<b>Суть проблемы:</b> 
Я сталкиваюсь с проблемами при синхронизации каталогов и файлов с виртуальных машин (Linux), работающих под управлением Proxmox, на Linux сервер с помощью следующей команды: 
<pre><code>rsync -aAvxe "ssh -p22" --exclude-from=exclude.list --delete --progress 172.17.17.7:/srv/data/ ./data/</code></pre>
Однако через некоторое время процесс останавливается с ошибками, включая: 
<blockquote>
   client_loop: send disconnect: Broken pipe<br/>
   rsync: connection unexpectedly closed (62584192 bytes received so far) [receiver]<br/>
   rsync error: error in rsync protocol data stream (code 12) at io.c(231) [receiver=3.2.7]<br/>
   rsync: connection unexpectedly closed (25692538 bytes received so far) [generator]<br/>
   rsync error: unexplained error (code 255) at io.c(231) [generator=3.2.7]<br/>
   rsync: [generator] write error: Broken pipe (32)<br/>
</blockquote> 
Стоит отметить, что синхронизация с "железным" сервером при тех же параметрах rsync проходит успешно. 

<b>Что я уже попробовал:</b> 
1) В файле .ssh/config на сервере-приемнике я установил следующие параметры: 
<pre><code>Host *
  ServerAliveInterval 30
  ServerAliveCountMax 6</code></pre> 
а в /etc/ssh/sshd_config: 
<pre><code>ClientAliveInterval 30
ClientAliveCountMax 6</code></pre> 
2) Я также ограничил скорость синхронизации, добавив ключ --bwlimit=10000. 
К сожалению, ни один из этих методов не принес результата. 

<b>Дополнительная информация:</b> 
а) Proxmox использует стандартные настройки. 
б) Виртуальные машины размещены на локальном хранилище, которое разделено на две части: 
* RAID 1 на двух SSD для системных разделов виртуалок. 
* RAID 10 на четырех HDD для разделов с данными виртуалок. 
RAID-массивы созданы с помощью mdadm.
  • 4 ноября 2024 г. 17:33
Ответы на вопрос 2
Судя по вашему описанию, проблемы, которые вы испытываете при копировании файлов с помощью rsync через SSH с виртуальной машины Proxmox, могут быть вызваны несколькими факторами. Вот некоторые из возможных причин и рекомендации по их устранению:

1. **Сетевые проблемы**:
   - Проверьте стабильность соединения между вашей виртуальной машиной и сервером, с которым происходит синхронизация. Используйте утилиты, такие как `ping` или `mtr`, чтобы проверить наличие потери пакетов или задержек.
   - Убедитесь, что нет ограничений по пропускной способности или перегрузок на используемых сетевых интерфейсах.

2. **Стресс на виртуальной машине**:
   - Если на виртуальной машине происходит высокая нагрузка (CPU, память, диск), это может привести к разрывам соединения. Мониторьте ресурсы виртуальной машины во время работы rsync с помощью такие инструментов, как `htop`, `iostat` и `vmstat`.

3. **SSH настройки**:
   - Если вы используете OpenSSH, убедитесь, что настройки серверной части SSH (sshd) позволяют открывать соединения с достаточным временным интервалом. Возможно, стоит увеличить значение параметра `ClientAliveCountMax`.
   - Проверьте, нет ли ограничений по времени выполнения соединения на маршрутизаторах или сетевых устройствах, которые могут прерывать долгие соединения.

4. **Настройки rsync**:
   - Попробуйте использовать более простой набор опций для rsync на время тестирования, убрав `--delete` и `--bwlimit`, чтобы увидеть, сохраняется ли проблема.
   - Возможно, стоит попробовать настроить `rsync` на использование других параметров, таких как `--timeout`, чтобы задать максимальные временные интервалы ожидания.

5. **Версия rsync**:
   - Убедитесь, что версии `rsync` на обеих машинах совпадают, или попробуйте обновить до последней версии, так как возможны проблемы, связанные с различиями в реализации.

6. **Проблемы с файловой системой**:
   - Проверьте, нет ли ошибок на файловых системах виртуальных машин и сервера. Используйте команды, такие как `fsck`, для проверки и исправления возможных проблем с файловой системой.
   - Если вы используете RAID, убедитесь, что состояние массива в порядке и нет ошибок на дисках.

7. **Логи**:
   - Проверьте систему логирования в Proxmox и на сервере, на который вы копируете файлы. Возможно, там будут указания на ошибки, которые могут дать больше информации о проблеме.

Если после проверки и исправления указанных аспектов проблема не исчезнет, возможно, стоит рассмотреть использование других инструментов для передачи данных, например, `scp`, или попытаться настроить `rsync` с использованием других портов или протоколов передачи.
Так сперва надо посмотреть логи ссх 
Ну и проверить не теряют ли сетевую связность серверов
Похожие вопросы