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? К чему это на самом деле пишет?

3 ответа

Как Мако уже упоминалось в комментариях, /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, проблема должна исчезнуть. (У нас была такая же проблема, и это исправило, у вас может быть что-то еще)

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

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

В случае внешнего USB-накопителя отсоедините и снова подключите накопитель. После этого rdiff-backup должен снова работать.

Что бы я ни делал, rdiff-backup хотел использовать более 120 ГБ для сохранения 60 ГБ, поэтому вместо этого я сделал rsync -av (исходный каталог) (целевой каталог) .

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