如何从已安装的驱动器 Redhat 7 中获取可用空间

Ant*_*ito 14 redhat storage-area-network virtual-machines

在我们的 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
Run Code Online (Sandbox Code Playgroud)

现在查看磁盘使用情况:

[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
Run Code Online (Sandbox Code Playgroud)

经过数小时的谷歌搜索后,我发现了这一点,我认为它向我展示了有多少“空白”可以清理。

[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%
Run Code Online (Sandbox Code Playgroud)

我认为 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}'
Run Code Online (Sandbox Code Playgroud)

这给我什么。

我的 /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
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我走在正确的道路上吗?

我是否解释了我正在寻找的东西?

是否有一个术语“空白”可能有助于我的谷歌搜索?

我发现我可以在根目录上运行“fstrim -v /”,但我真的很想知道那里有多少空间。

我还想弄清楚,这些生产系统是 fstrim I/O 密集型的,它应该在非高峰时间运行吗?

运行“fstrim -v /”是否有可能丢失数据?

小智 12

几周前我尝试做同样的事情,但我不知道该怎么做。我在 Redhat 支持门户上分享了官方声明。

目前无法使用 xfs 文件系统减小分区或逻辑卷的大小。如果您对此功能感兴趣,请联系 Red Hat 支持并参考 Red Hat bugzilla 1062667,并提供您需要 XFS 缩减/缩小的用例。作为某些环境中可能的解决方法,精简配置的 LVM 卷可被视为 XFS 文件系统下方的附加层。

祝你好运!!


Bri*_*ess 12

能够在 / 分区上运行 fstrim 将是最好的解决方案,但是根据他们的 ESXi 配置方式,这是不可能的。

您需要能够在 VM 和存储设备上启用丢弃。

无法使用 xfs 文件系统尝试减小分区或逻辑卷的大小,这是 Fedora 的一个已知错误。如果您对此功能感兴趣,请联系 Red Hat 支持并参考 Red Hat bugzilla 1062667,并提供您需要 XFS 缩减/缩小的用例。

作为在某些环境中可能的变通方法,可以将精简配置的 LVM 卷视为 XFS 文件系统下方的附加层。

如果 VM 渴望厚置备 VMDK,这意味着当您尝试修剪(从技术上讲;SCSI UNMAP)您的卷时,没有什么可回收的。

如果后端存储正在运行精简配置,那么您还需要使用延迟归零 VMDK 文件以减少存储并使后端能够缓存/删除热数据。

两种可能的选择:

  1. 当存储由远程服务器跨 SAN 提供时,如果存储是精简配置,您只能丢弃块。

    1. 将所有 VM 迁移到不同的数据存储并使用内置的 VMWare 工具
    2. 使用 SSH 连接到 ESXi 主机
    3. 导航到虚拟机文件夹
    4. 使用 du 验证磁盘使用情况
    5. 运行 vmkfstools -K [磁盘]
    6. 使用 du 验证磁盘使用情况
  2. dd if=/dev/zero of=BIGFILE bs=1024000 rm -f BIGFILE

据我所知,这与 sdelete 的作用相同,但是它会导致磁盘 I/O 出现峰值,并且需要一段时间才能运行。

一夜之间尝试的东西

任一选项都不是最好的,但重新格式化每个 VM 以获得 ext3 或 ext4 听起来不可行。

您可以做的是为所有 linux VM 设置关联规则并使用上面的选项 1。