проблема

Я пытаюсь скопировать каталог со 112 ГБ в RAID на сервере, который имеет 214 ГБ свободного места, используя scp . Однако после копирования некоторых файлов я получаю сообщение о том, что диск заполнен, и после проверки я вижу, что диск фактически заполнен. Я не понимаю, как это возможно, и я хотел бы понять и решить это.

подробности

Я использую CentOS 7. Я только что установил ОС на рейде, прежде чем пытаться скопировать каталог. Это вывод df -h сразу после его установки:

[user@localhost ~]$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  897M   50G   2% /
devtmpfs                 7,8G     0  7,8G   0% /dev
tmpfs                    7,8G     0  7,8G   0% /dev/shm
tmpfs                    7,8G  8,9M  7,8G   1% /run
tmpfs                    7,8G     0  7,8G   0% /sys/fs/cgroup
/dev/sda1               1014M  143M  872M  15% /boot
/dev/mapper/centos-home  214G   33M  214G   1% /home
tmpfs                    1,6G     0  1,6G   0% /run/user/1000

Я пытаюсь скопировать каталог через scp из моего ноутбука, который работает под управлением Ubuntu 17.04. Это размер каталога:

rick@rick-Inspiron-5448:~$ sudo du -hs /home/rick/
112G    /home/rick/

Как видите, на RAID-сервере сервера находится чуть менее 214 ГБ свободного места, а каталог, который я пытаюсь скопировать, имеет только 112 ГБ.

Я копирую это с помощью

$ scp -r /home/rick/ user@192.168.0.132:/home/user/backup

Он отлично работает в течение нескольких часов, а затем я получаю следующий вывод несколько раз:

scp: /home/user/backup/rick/<filename>: No space left on device

Если я тогда df -h я смогу убедиться, что диск действительно заполнен!

[user@localhost ~]$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  897M   50G   2% /
devtmpfs                 7,8G     0  7,8G   0% /dev
tmpfs                    7,8G     0  7,8G   0% /dev/shm
tmpfs                    7,8G  8,8M  7,8G   1% /run
tmpfs                    7,8G     0  7,8G   0% /sys/fs/cgroup
/dev/sda1               1014M  143M  872M  15% /boot
/dev/mapper/centos-home  214G  214G   20K 100% /home
tmpfs                    1,6G     0  1,6G   0% /run/user/1000

Итак, что я понимаю из этого идентификатора, что я пытался скопировать 112 ГБ на диск, на котором свободно 214 ГБ, но каким-то образом диск был заполнен до завершения копирования. Я знаю, что что-то здесь упускаю, но не вижу, что.

Это информация о RAID, который я настроил на сервере:

Информация о RAID

Если есть какая-то другая деталь, которую я могу предоставить, чтобы прояснить мою ситуацию, просто дайте мне знать.


Обновить

Комментарий @AFH предположил, что проблема может быть связана с i-узлами, поэтому я запустил

$ df -i
Filesystem                Inodes  IUsed    IFree IUse% Mounted on
/dev/mapper/centos-root 26214400  25686 26188714    1% /
devtmpfs                 2024232    474  2023758    1% /dev
tmpfs                    2026995      1  2026994    1% /dev/shm
tmpfs                    2026995    579  2026416    1% /run
tmpfs                    2026995     16  2026979    1% /sys/fs/cgroup
/dev/sda1                 524288    328   523960    1% /boot
/dev/mapper/centos-home   127080 126903      177  100% /home
tmpfs                    2026995      1  2026994    1% /run/user/1000

Также вывод fdisk

$ sudo fdisk -l
Disk /dev/sda: 292.3 GB, 292326211584 bytes, 570949632 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b2997

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   570949631   284425216   8e  Linux LVM

Так что, по сути, иноды заполнены. Любые предложения о том, как это решить?

3 ответа3

0

Есть ли у вашей резервной копии символические ссылки? Если да, используйте rsync для копирования содержимого. Scp с опцией -r также следует за символическими ссылками.

0

Так что, по сути, иноды заполнены. Любые предложения о том, как это решить?

Вы не можете увеличить количество inode без переформатирования файловой системы.

В настоящее время у вас есть около 120 ГБ пространства, которое вы не можете использовать, потому что у вас нет инодов для него.

Что вы можете попробовать это:

  • уменьшите размер файловой системы в разделе LVM (ОПАСНО) примерно на 110 ГБ, используя, например, resize2fs ,
  • уменьшить раздел LVM, чтобы он точно соответствовал файловой системе (также опасно),
  • создать новый раздел в свободном пространстве
  • новый раздел теперь можно смонтировать.

Например, вы можете увидеть, есть ли у вас несколько каталогов, которые могут занимать 110 ГБ пространства (/home/user/downloads и т.д.), Переместить содержимое этого каталога в новый раздел, а затем смонтировать раздел в старом каталоге. , Теперь у вас есть свободное место (и inode), равное размеру перемещаемых файлов.

Вся операция требует тщательного планирования, и я настоятельно рекомендую полное резервное копирование.

0

Через некоторое время я разобрался, как решить проблему. Проблема заключалась в том, что когда я использовал scp для копирования файлов, папка с wine в месте назначения имела совершенно другой размер, чем в источнике.

Я не уверен, было ли это связано с тем, что копия wine занимала больше i-узлов, чем следовало бы, или рекурсивно копировала wine внутри его папки, но когда я проверил с помощью df -h , папка wine имела 1,5 ГБ в исходном коде и 101 Гб на сервере, который был уделом scp .

Я очистил диск на сервере и сделал резервное копирование, используя rsync вместо scp и все заработало нормально.

Спасибо всем, кто помог, это были тяжелые выходные.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .