Скорость локального копирования Samba и «недостаточно места на диске»

У меня Ubuntu Server 16.04 установлен с Samba на другом компьютере в моей сети. ОС Ubuntu находится на небольшом SSD, и у меня есть 2 дополнительных жестких диска, смонтированных в / media / drive1 и /media/drive2.

Теперь, насколько мне известно, у меня есть 2 варианта сделать эти диски доступными с моего ПК с Windows:

  • Сделать 2 общих ресурса Samba, по одному на каждый диск
  • Сделать 1 Общая папка Samba из полной папки / media /

В настоящее время моей целью является копирование данных с диска 1 на диск 2 (локально на сервере), не выходя из Проводника на моем рабочем столе Windows.

Если я сделаю 2 общих ресурса, по одному на каждый диск, с локальной скоростью копирования просто невозможно работать. Он колеблется в пределах 20-50 КБ / с с редкими скачками до 1-1,5 МБ / с, и каждые 20 или около того секунд он просто умирает и останавливается на 0.

Из того, что я прочитал, теперь я предполагаю, что это потому что файлы сначала будут скопированы на мой рабочий стол Windows и повторно загружены на сервер. Я думаю, что 2 акции больше не интерпретируются как «локальные». Почему это полностью глохнет, хотя я не понимаю.

Если я сделаю 1 общий ресурс со всем каталогом / media /, у меня возникнут проблемы с «недостаточным пространством на диске» при попытке скопировать файлы с диска 1 на диск 2, даже если места достаточно. Я могу копировать 80 ГБ за раз, но не более 80 ГБ за один раз. Скорость копирования при этом копировании нормальная, около 70-80 МБ / с с некоторыми скачками до 90 МБ / с +.

Теперь я обнаружил, что это происходит потому, что Samba проверяет доступное пространство на диске каталога, на который вы указываете, в данном случае / media, и эта папка находится на небольшом SSD. SSD имеет только 80 ГБ свободного места, поэтому математика проверяется.

1110 Итак, я думаю, вопрос в том, можно ли как-то решить эту проблему, чтобы у меня было лучшее из двух миров? Я хотел бы иметь возможность копировать файлы на сервере с одного диска на другой без этих ограничений, не выходя из моего проводника Windows на рабочем столе.

Приложение. Это шаблон, который я использую для создания своих общих ресурсов в smb.conf. Аутентификация и доступ, и все такое, без проблем.

[Drive1]
    comment = Drive1
    path = /media/drive1
    browsable = yes
    guest ok = no
    valid users = @samba
    read only = no
    create mask = 0755
0
задан 31 October 2018 в 15:08

1 ответ

Это будет противное обходное решение: создайте файл/usr/local/bin/dfree_Drive.sh

#!/bin/bash
df | egrep '/media/drive[0-9]+$' | awk '{total+=$2; avail+=$4; print $0} END{print total, avail}'

и сделайте это исполняемым файлом. Затем в разделе доли Вашей конфигурации самбы добавьте:

    dfree command = /usr/local/bin/dfree_Drive.sh

Это решение противно, потому что оно лжет клиенту о способности совместно используемого тома. Но насколько я знаю, что нет никакого способа сделать самбу, знающую о способности определенной папки (в отличие от объема).

0
ответ дан 31 October 2018 в 15:08

Другие вопросы по тегам:

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