Я добавил второй узел Proxmox 8.3 с 14ТБ HDD, предназначенный для использования в качестве сетевого хранилища. Я следовал этой инструкции, чтобы настроить непривилегированный контейнер, работающий с Samba-сервером, для обмена HDD в моей сети с разными ОС. Это работает нормально при отправке данных с других устройств. Однако, когда я смонтировал общую папку на локальном узле и попытался сделать резервную копию моих локальных ВМ, он начинал сбоить после копирования нескольких гигабайт, блокировал файловый сервер LXC и требовал принудительную перезагрузку узла. (Я пробовал разные способы восстановления без принудительной перезагрузки, но только она помогла). Я начал тестирование с `dd`, чтобы исключить часть задачи резервного копирования, и обнаружил несколько вещей:
- Ограничение скорости передачи до ~60 МБ/с проходит успешно. Всё, что выше ~80 МБ/с, приводит к зависанию `smbd` после 8-12 ГБ.
- Передачи данных с других устройств (другой узел Proxmox, Mac, PC) проходят отлично и достигают скоростей 150-250 МБ/с.
- Если установить `dd` для работы сжимаемыми данными, заполненными нулями, проблем не возникает, и достигаются высокие скорости. Проблема возникает при использовании случайных данных.
- Я пробовал разные изменения в `smb.conf` как было найдено в интернете, но никаких улучшений не было.
- Я увеличил ресурсы для контейнера файлового сервера с 512 МБ ОЗУ/2 ядра до 2048 МБ ОЗУ/4 ядра, и это дало небольшой прирост (перед сбоем копируется несколько дополнительных ГБ).
- В состоянии сбоя процесс `smbd` загружен на максимум CPU контейнера. Даже если терминал контейнера отвечает, я не могу ничего сделать, чтобы убить сервер и восстановить работу без перезагрузки. (zombie-процесс `smbd` потребляет 200% CPU при выделении 2 ядра)
- Я попробовал запустить другой контейнер Samba, на этот раз используя шаблон turnkey linux для файлообмена. Он сбоит точно так же.
Я мог бы обойтись тем, что просто не использую Samba-общий ресурс на локальном узле или ограничу скорости, но мне бы хотелось лучше понять, что происходит, или найти более чистое решение, если это возможно.
- Ограничение скорости передачи до ~60 МБ/с проходит успешно. Всё, что выше ~80 МБ/с, приводит к зависанию `smbd` после 8-12 ГБ.
- Передачи данных с других устройств (другой узел Proxmox, Mac, PC) проходят отлично и достигают скоростей 150-250 МБ/с.
- Если установить `dd` для работы сжимаемыми данными, заполненными нулями, проблем не возникает, и достигаются высокие скорости. Проблема возникает при использовании случайных данных.
- Я пробовал разные изменения в `smb.conf` как было найдено в интернете, но никаких улучшений не было.
- Я увеличил ресурсы для контейнера файлового сервера с 512 МБ ОЗУ/2 ядра до 2048 МБ ОЗУ/4 ядра, и это дало небольшой прирост (перед сбоем копируется несколько дополнительных ГБ).
- В состоянии сбоя процесс `smbd` загружен на максимум CPU контейнера. Даже если терминал контейнера отвечает, я не могу ничего сделать, чтобы убить сервер и восстановить работу без перезагрузки. (zombie-процесс `smbd` потребляет 200% CPU при выделении 2 ядра)
- Я попробовал запустить другой контейнер Samba, на этот раз используя шаблон turnkey linux для файлообмена. Он сбоит точно так же.
Я мог бы обойтись тем, что просто не использую Samba-общий ресурс на локальном узле или ограничу скорости, но мне бы хотелось лучше понять, что происходит, или найти более чистое решение, если это возможно.
