Jak uzyskać wolne miejsce z zamontowanego dysku Redhat 7

14

W naszej infrastrukturze VM zgrupowaliśmy hosty przechodzące do sieci SAN.

Próbuję ustalić, ile pozostało „białych znaków” podczas usuwania plików z naszych serwerów Redhat. Na naszym serwerze Windows używamy sdelete, co rozwiązuje ten problem, jednak w przypadku Linuksa trudno mi znaleźć rozwiązanie.

Definiuję „białą przestrzeń” jako sektory? pozostałe, które nie są zerowane, że dyski SSD muszą najpierw wyzerować, zanim będą mogły na nim zapisywać.

Zwracam uwagę na to, że jeśli chodzi o Linuksa, wiem wystarczająco dużo, aby być niebezpiecznym, ale nie jestem superużytkownikiem.

Przegląd dysków i partycji:

[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

Teraz patrząc na użycie dysku:

[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

Po wielu godzinach googlingu znalazłem to, myślę, że pokazuje mi, ile „białej przestrzeni” jest dostępnych do usunięcia.

[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%

Myślę, że rozsądne wyjście dla partycji 497M.

Więc teraz chcę zrobić to samo tylko na zamontowanym dysku (myślę, że jest zamontowany).

 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}'

Co mi nic nie daje.

Mój / 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

Więc moje pytanie brzmi: czy jestem na dobrej drodze?

Czy dobrze wyjaśniłem, czego szukam?

Czy istnieje termin „biała przestrzeń”, który może pomóc mojemu googleowi?

Przekonałem się, że mogę uruchomić „fstrim -v /” w katalogu głównym, ale naprawdę chciałbym wiedzieć, ile jest miejsca.

Próbuję też dowiedzieć się, że tezy są takie, że system produkcyjny jest bardzo intensywny we / wy, czy powinien być uruchamiany poza godzinami szczytu?

Czy jest jakaś szansa na utratę danych podczas uruchamiania „fstrim -v /”?

Anthony Fornito
źródło
Możesz także ustawić discardopcję montowania w systemach plików.
Michael Hampton
Być może używasz UUID zamontowanego dysku zamiast / dev / mapper? Spróbuj uruchomić blkidi sprawdź, czy możesz uzyskać identyfikator UUID, i ponownie uruchom partedkomendę.
wilbo

Odpowiedzi:

12

Najlepszym rozwiązaniem byłoby uruchomienie fstrim na partycjach /, jednak przy ich konfiguracji ESXi nie byłoby to możliwe.

Musisz mieć możliwość włączenia odrzutów zarówno na maszynie wirtualnej, jak i urządzeniu pamięci masowej.

Próba zmniejszenia rozmiaru partycji lub woluminu logicznego za pomocą systemu plików xfs nie jest możliwa, jest to znany błąd związany z Fedorą. Jeśli jesteś zainteresowany tą funkcjonalnością, skontaktuj się z pomocą techniczną Red Hat i odwołaj się do Bugzilli Red Hat 1062667, i podaj swój przypadek użycia dla potrzeby zmniejszenia / zmniejszenia XFS.

Jako możliwe obejście w niektórych środowiskach, cienkie alokowane woluminy LVM można uznać za dodatkową warstwę poniżej systemu plików XFS.

Jeśli maszyny wirtualne chętnie korzystają z VMDK z elastyczną obsługą administracyjną, co oznacza, że ​​nie ma nic do odzyskania podczas próby przycięcia (technicznie rzecz biorąc; SCSI UNMAP) woluminów.

Jeśli w pamięci wewnętrznej działa cienkie przydzielanie, musisz także użyć plików VMDK z zerowym opóźnieniem, aby zmniejszyć pamięć i umożliwić backendowi buforowanie / deduplikację ciepłych danych.

Dwie możliwe opcje:

  1. Gdy pamięć jest udostępniana przez zdalny serwer w sieci SAN, możesz odrzucić bloki tylko wtedy, gdy pamięć jest alokowana elastycznie.

    1. VMotion wszystkich maszyn wirtualnych do innego magazynu danych i użyj wbudowanych narzędzi VMWare
    2. Połącz się z hostem ESXi za pomocą SSH
    3. Przejdź do folderu maszyny wirtualnej
    4. Sprawdź użycie dysku za pomocą du
    5. Uruchom vmkfstools -K [dysk]
    6. Sprawdź użycie dysku za pomocą du
  2. dd if = / dev / zero of = BIGFILE bs = 1024000 rm -f BIGFILE

Z tego, co mogę powiedzieć, działa to tak samo jak sdelete, jednak może spowodować skok we / wy dysku, a także trochę potrwać.

Coś do wypróbowania na noc

Obie opcje nie są najlepsze, ale sformatowanie każdej maszyny wirtualnej w celu uzyskania ext3 lub ext4 nie wydaje się wykonalne.

To, co możesz zrobić, to ustawić regułę koligacji dla wszystkich maszyn wirtualnych systemu Linux i użyć opcji 1 z powyższego.

Brian Curless
źródło
12

Próbuję zrobić to samo kilka tygodni temu i nie wiem, jak to zrobić. Podzielam oficjalne oświadczenie na portalu wsparcia Redhat.

Obecnie nie jest możliwe zmniejszenie rozmiaru partycji lub woluminu logicznego w systemie plików xfs. Jeśli jesteś zainteresowany tą funkcjonalnością, skontaktuj się z pomocą techniczną Red Hat i odwołaj się do Bugzilli Red Hat 1062667, i podaj swój przypadek użycia dla potrzeby zmniejszenia / zmniejszenia XFS. Jako możliwe obejście w niektórych środowiskach, cienkie alokowane woluminy LVM można uznać za dodatkową warstwę poniżej systemu plików XFS.

Powodzenia!!

BennyBoy
źródło
Dziękuję za komentarz, jednak nie próbuję zmniejszać wielkości dostępnego miejsca na maszynie wirtualnej. Dyski SSD mają (awarię) to, że kiedy dane są usuwane, sektor musi być najpierw wyzerowany, a następnie może zostać zapisany do vs, jeśli sektor nigdy nie został do niego zapisany, jest już wyzerowany. Próbuję rozgryźć, podobnie jak w systemie Windows za pomocą sdelete, mogę użyć „fstrim -v /”. Przed uruchomieniem próbuję dowiedzieć się, czy mogę zobaczyć, ile sektorów zostanie dotkniętych i jaki wpływ będzie to miało na system.
Anthony Fornito,