Redhat

如何從已安裝的驅動器 Redhat 7 中獲取可用空間

  • November 8, 2016

在我們的 VM 基礎架構中,我們將集群主機連接到 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

經過數小時的Google搜尋後,我發現了這一點,我認為它向我展示了有多少“空白”可供清理。

[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

所以我的問題是我走在正確的道路上嗎?

我有沒有解釋清楚我在尋找什麼?

是否有“空白”一詞可以幫助我進行Google搜尋?

我發現我可以在根目錄上執行“fstrim -v /”,但我真的很想知道那裡有多少空間。

另外我想弄清楚這些是生產系統是 fstrim I/O 密集型的,它應該在非高峰時間執行嗎?

執行“fstrim -v /”會導致數據失去嗎?

能夠在 / 分區上執行 fstrim 將是最好的解決方案,但是使用它們配置 ESXi 的方式是不可能的。

您需要能夠在 VM 和儲存設備上啟用丟棄。

無法嘗試使用 xfs 文件系統減小分區或邏輯卷的大小,這是 fedora 的一個已知錯誤。如果您對此功能感興趣,請聯繫 Red Hat 支持並參考 Red Hat bugzilla 1062667,並提供您需要 XFS 縮減/收縮的案例。

作為在某些環境中可能的解決方法,精簡配置的 LVM 卷可以被視為 XFS 文件系統之下的附加層。

如果 VM 渴望厚配置 VMDK,這意味著當您嘗試修剪(從技術上講;SCSI UNMAP)您的捲時,沒有什麼可回收的。

如果後端儲存正在執行精簡配置,那麼您還需要使用延遲歸零的 VMDK 文件以減少儲存並使後端能夠記憶體/刪除暖數據。

兩種可能的選擇:

  1. 當儲存由遠端伺服器跨 SAN 提供時,只有在儲存是精簡配置的情況下,您才能丟棄塊。

  2. VMotion 將所有 VM 移動到不同的數據儲存並使用內置的 VMWare 工具

  3. 使用 SSH 連接到 ESXi 主機

  4. 導航到虛擬機文件夾

  5. 使用 du 驗證磁碟使用情況

  6. 執行 vmkfstools -K$$ disk $$

  7. 使用 du 驗證磁碟使用情況

  8. dd if=/dev/zero of=BIGFILE bs=1024000 rm -f BIGFILE

據我所知,這與 sdelete 做同樣的事情,但是它會導致磁碟 I/O 出現峰值並且需要一段時間才能執行。

可以在一夜之間嘗試的東西

這兩種選擇都不是最好的,但重新格式化每個 VM 以獲取 ext3 或 ext4 聽起來並不可行。

您可以做的是為所有 linux VM 設置關聯規則並使用上面的選項 1。

引用自:https://serverfault.com/questions/809809