Как получить свободное место от смонтированного диска Redhat 7

14

В нашей инфраструктуре виртуальных машин у нас есть кластерные узлы, идущие в SAN.

Я пытаюсь выяснить, сколько осталось «пустого пространства» при удалении файлов с наших серверов Redhat. На нашем сервере Windows мы используем sdelete, и это решает эту проблему, однако с Linux я изо всех сил пытаюсь найти решение.

Я определяю "пустое пространство" как секторы? Остальное не обнуляется, что накопители SSD должны сначала обнулиться, прежде чем они смогут записать в него.

Одна вещь, на которую я укажу, это то, что когда дело доходит до Linux, я знаю достаточно, чтобы быть опасным, но я не супер пользователь.

Просматривая диски и перегородки:

[root@rhserver1-DATA10 /]# fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 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: 0x0005d52e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   104857599    51915776   8e  Linux LVM

Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 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 /dev/mapper/rhel_rhserver1--data10-root: 51.0 GB, 50964987904 bytes, 99540992 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 /dev/mapper/rhel_rhserver1--data10-swap: 2147 MB, 2147483648 bytes, 4194304 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

Теперь посмотрим на использование диска:

[root@rhserver1-DATA10 /]# df -h
Filesystem                              Size  Used Avail Use% Mounted on
/dev/mapper/rhel_rhserver1--data10-root   48G  6.1G   42G  13% /
devtmpfs                                906M     0  906M   0% /dev
tmpfs                                   921M  340K  920M   1% /dev/shm
tmpfs                                   921M   90M  831M  10% /run
tmpfs                                   921M     0  921M   0% /sys/fs/cgroup
/dev/sdb                                 50G  3.5G   44G   8% /ACMS01Backup
/dev/sda1                               497M  210M  288M  43% /boot
tmpfs                                   185M   20K  185M   1% /run/user/1000
tmpfs                                   185M     0  185M   0% /run/user/1002

После многих часов поисков я нашел это, я думаю, он показывает мне, сколько «пустого пространства» доступно для очистки.

[root@rhserver1-DATA10 /]#  parted /dev/sda unit MB print free | grep 'Free Space' | tail -n1 | awk '{print $3}'
1.02MB
[root@rhserver1-DATA10 /]#  parted /dev/sda unit '%' print free | grep 'Free Space' | tail -n1 | awk '{print $3}'
0.00%

Я думаю, что разумный вывод для 497M раздела.

Так что теперь я хочу сделать то же самое только на моем смонтированном диске (я думаю, что он установлен).

 parted /dev/mapper/rhel_rhserver1--data10-root unit MB print free | grep 'Free Space' | tail -n1 | awk '{print $3}'
 parted /dev/mapper/rhel_rhserver1--data10-root unit '%' print free | grep 'Free Space' | tail -n1 | awk '{print $3}'

Которые не дают мне ничего.

Мой / etc / fstab /:

[root@rhserver1-DATA10 /]# cat /etc/fstab
/dev/mapper/rhel_rhserver1--data10-root /                       xfs     defaults        0 0
UUID=2f97a17c-a6d5-4904-ad5c-7c16b4510201 /boot                   xfs     defaults        0 0
/dev/mapper/rhel_rhserver1--data10-swap swap                    swap    defaults        0 0
/dev/disk/by-uuid/be4c45cf-5d72-4b97-b647-2e585947041f /ACMS01Backup auto nosuid,nodev,nofail,x-gvfs-show 0 0

Итак, мой вопрос: я на правильном пути?

Я объяснил, что я ищу хорошо?

Есть ли термин «пустое пространство», который может помочь моему поиску?

Я обнаружил, что могу запустить «fstrim -v /» в корне, но мне бы очень хотелось узнать, сколько там места.

Кроме того, я пытаюсь выяснить, что тезисы - это производственная система, интенсивно использующая ввод-вывод, должна ли она работать в часы пик?

Есть ли вероятность потери данных при запуске "fstrim -v /"?

Энтони Форнито
источник
Вы также можете установить discardопцию монтирования в файловых системах.
Майкл Хэмптон
Возможно, используя UUID подключенного диска, а не / dev / mapper? Попробуйте запустить blkidи посмотрите, сможете ли вы получить UUID и повторите partedкоманду.
Уилбо

Ответы:

12

Возможность запуска fstrim на разделах / была бы наилучшим решением, однако с учетом конфигурации вашего ESXi это было бы невозможно.

Вы должны иметь возможность разрешить сброс как на виртуальной машине, так и на устройстве хранения.

Попытка уменьшить размер раздела или логического тома с помощью файловой системы xfs не может быть выполнена, это известная ошибка в fedora. Если вы заинтересованы в этой функции, обратитесь в службу поддержки Red Hat и обратитесь к Red Hat bugzilla 1062667 и предоставьте свой вариант использования для уменьшения / уменьшения XFS.

В качестве возможного обходного пути в некоторых средах тома LVM с тонким предоставлением можно рассматривать как дополнительный уровень ниже файловой системы XFS.

Если виртуальные машины стремятся использовать VMDK с толстой подготовкой, это означает, что нечего восстанавливать, когда вы пытаетесь урезать (технически говоря, SCSI UNMAP) ваши тома.

Если внутреннее хранилище работает с тонким выделением ресурсов, вам также необходимо использовать файлы VMDK с отложенным обнулением, чтобы уменьшить объем хранилища и сделать возможным для кэширования / дедупликации теплых данных.

Два возможных варианта:

  1. Когда хранилище предоставляется удаленным сервером через сеть SAN, блоки можно отбросить только в том случае, если хранилище недостаточно.

    1. VMotion все виртуальные машины в другое хранилище данных и использовать встроенные инструменты VMWare
    2. Подключитесь к хосту ESXi по SSH
    3. Перейдите в папку виртуальной машины
    4. Проверьте использование диска с помощью du
    5. Запустите vmkfstools -K [диск]
    6. Проверьте использование диска с помощью du
  2. dd if = / dev / zero of = BIGFILE bs = 1024000 rm -f BIGFILE

Из того, что я могу сказать, это делает то же самое, что и sdelete, однако это может вызвать скачок дискового ввода-вывода, а также запустить некоторое время.

Что-то, чтобы попробовать за одну ночь

Любой из этих вариантов не лучший, но переформатирование каждой виртуальной машины для получения ext3 или ext4 не представляется возможным.

То, что вы можете сделать, это настроить правило сродства для всех виртуальных машин Linux и использовать опцию 1 сверху.

Брайан Керлесс
источник
12

Я пытаюсь сделать то же самое пару недель назад и не понимаю, как это сделать. Я делюсь официальным заявлением на портале поддержки Redhat.

В настоящее время невозможно уменьшить размер раздела или логического тома с помощью файловой системы xfs. Если вы заинтересованы в этой функции, обратитесь в службу поддержки Red Hat и обратитесь к Red Hat bugzilla 1062667 и предоставьте свой вариант использования для уменьшения / уменьшения XFS. В качестве возможного обходного пути в некоторых средах тома LVM с тонким предоставлением можно рассматривать как дополнительный уровень ниже файловой системы XFS.

Удачи!!

BennyBoy
источник
Спасибо за комментарий, однако, я не пытаюсь уменьшить размер доступного пространства для виртуальной машины. У SSD-накопителей есть (ошибка), когда при удалении данных сектор сначала обнуляется, а затем он может быть записан в vs, если сектор никогда не записывался в него, уже обнулен. Я пытаюсь понять, как в Windows с sdelete я могу использовать "fstrim -v /". Перед запуском я пытаюсь выяснить, могу ли я увидеть, сколько секторов будет затронуто, и какое влияние это окажет на систему.
Энтони Форнито