rdiff-резервное копирование и нехватка места на диске. Что-то странное происходит

У меня есть настройка rdiff-backup, которая создает резервную копию большого дампа sql (1.6 ГБ) по сети. Сервер, на который он создает резервную копию (сервер Ubuntu 10.10), имеет небольшой локальный диск (4 ГБ, 1 ГБ свободного места), но имеет монтировку cifs для большого nas (много свободного места). Я установил программную ссылку из домашнего каталога учетной записи пользователя на NAS cifs mount, и задание rdiff-backup, инициированное клиентом, выполняет запись в этот каталог.

В последнее время работа провалилась. В лог-файле написано:

Sun Oct 24 21:20:14 2010 Sending back exception [Errno 28] No space left on device of type type 'exceptions.IOError'

Я выполнил задание вручную, когда watch df запущен на сервере, и я вижу, что 1 ГБ свободного места на локальном диске уменьшается до оно достигает нуля. Тогда работа терпит неудачу. Чтобы было ясно, дисковое пространство не является проблемой на NAS.

Итак, по какой-то причине rdiff-backup использует где-то на локальном диске в качестве временного рабочего каталога, а не фактический каталог, в котором хранятся резервные копии, на устройстве NAS, как я и ожидал. Тем не менее, я не могу найти, какой каталог он использует, поэтому я могу смонтировать его отдельно с помощью своего большого пространства. Выполнение du -sx на / во время выполнения задания показывает, что общий размер файла / остается постоянным и составляет 3,0 ГБ, хотя df говорит, что / заполнен.

Если я перечислю файловые дескрипторы, открытые процессом rdiff, я получу несколько сокетов и несколько файлов при монтировании NAS. Ничего очевидного на локальном диске.

Что происходит? Почему df говорит, что / заполнен, а du -sx говорит, что есть 1 ГБ свободного? Почему rdiff-backup заполняет локальный диск, когда он должен использовать cifs mount? К чему это на самом деле пишет?

4
задан 9 March 2012 в 20:45

2 ответа

Как уже упоминалось в комментариях Мако, /tmp является проблемой.

С помощью rdiff-backup вы можете настроить местоположение временного каталога с параметром

--tempdir path
          Sets  the  directory  that  rdiff-backup  uses for temporary files
          to the given path. The environment variables TMPDIR, TEMP, and TMP
          can also be used to set the temporary files directory. See the 
          documentation of the Python tempfile module for more information.

Если вы установите tempdir для этого монтирования CIFS, проблема должна исчезнуть. (У нас была такая же проблема, и это решило ее, у вас может быть что-то еще)

0
ответ дан 9 March 2012 в 20:45

Я заметил что эта та же ошибка [Errno 28] No space left on device может произойти, когда доступ для записи к целевому каталогу прерван, например, свободным USB-кабелем.

Объем, который размещает целевой каталог, может все еще быть смонтирован после отклонения, но для безопасности, объем возвращается к только для чтения. Таким образом, когда пользователь пытается использовать rdiff-резервное-копирование снова, оно перестанет работать снова с той же ошибкой.

В случае внешней Карты памяти отсоедините и повторно подключите диск. Впоследствии, rdiff-резервное-копирование должно работать снова.

0
ответ дан 1 December 2019 в 09:12

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

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