Archer Asked: 2016-09-24 15:36:22 +0800 CST2016-09-24 15:36:22 +0800 CST 2016-09-24 15:36:22 +0800 CST 如何在 targetcli 中缩小 Linux 文件支持的存储大小 772 我正在使用 targetcli 来调整 iSCSI 目标的大小。我创建了一个很大的 FILEIO 后备库,这很浪费资源。是否可以在不丢失数据的情况下缩小文件大小? iscsi centos7 2 个回答 Voted Strepsils 2016-09-28T05:03:59+08:002016-09-28T05:03:59+08:00 在这种情况下,我最好坚持使用良好的旧数据迁移。 我已经尝试过 -truncate 自己,但那次我以从快照恢复结束。很可能是由于文件系统和逻辑卷大小不匹配。 例如,VMware 开发了一套很好的工具,可以通过将可用空间归零或删除零来缩小厚虚拟磁盘或精简虚拟磁盘。 Best Answer Spooler 2016-09-24T17:59:29+08:002016-09-24T17:59:29+08:00 为此,您需要使用 truncate 命令。意识到 truncate 将在您指定的偏移量处截断文件的末尾,因此如果您没有首先调整此 LUN 在 iSCSI 启动器端提供的文件系统的大小(以便其中包含的文件系统小于您将其截断的内容)。 一个例子在这里: truncate -s SIZE /srv/totallyalun.img SIZE 可以是(或可以是可选地后跟的整数)以下之一:KB 1000、K 1024、MB 1000*1000、M 1024*1024,等等,对于 G、T、P、E、Z、Y。 这将调整文件的大小。如果文件最初大于通过 -s 指定的大小,则 truncate 将切断它的末尾。如果文件小于指定的大小,则 truncate 将扩展您的支持文件,末端区域的数据读取为零(因为它们将是孔)。 同样,如果您不能确保该文件 (LUN) 中的文件系统更小或完全等于您通过截断指定后备存储的大小,那么缩小这是丢失数据的好方法。 您可以在 iscsi 目标使用具有立即可读结果的文件时执行此操作,前提是目标未配置为以独占方式锁定文件。 或者,如果您不关心数据(或不介意复制它),您可以使用稀疏分配创建一个新的瘦文件并复制到该文件,以避免首先出现这种混乱。精简分配确实有助于资源管理,尤其是在处理软件定义的存储时。
在这种情况下,我最好坚持使用良好的旧数据迁移。
我已经尝试过 -truncate 自己,但那次我以从快照恢复结束。很可能是由于文件系统和逻辑卷大小不匹配。
例如,VMware 开发了一套很好的工具,可以通过将可用空间归零或删除零来缩小厚虚拟磁盘或精简虚拟磁盘。
为此,您需要使用 truncate 命令。意识到 truncate 将在您指定的偏移量处截断文件的末尾,因此如果您没有首先调整此 LUN 在 iSCSI 启动器端提供的文件系统的大小(以便其中包含的文件系统小于您将其截断的内容)。
一个例子在这里:
truncate -s SIZE /srv/totallyalun.img
SIZE 可以是(或可以是可选地后跟的整数)以下之一:KB 1000、K 1024、MB 1000*1000、M 1024*1024,等等,对于 G、T、P、E、Z、Y。
这将调整文件的大小。如果文件最初大于通过 -s 指定的大小,则 truncate 将切断它的末尾。如果文件小于指定的大小,则 truncate 将扩展您的支持文件,末端区域的数据读取为零(因为它们将是孔)。
同样,如果您不能确保该文件 (LUN) 中的文件系统更小或完全等于您通过截断指定后备存储的大小,那么缩小这是丢失数据的好方法。
您可以在 iscsi 目标使用具有立即可读结果的文件时执行此操作,前提是目标未配置为以独占方式锁定文件。
或者,如果您不关心数据(或不介意复制它),您可以使用稀疏分配创建一个新的瘦文件并复制到该文件,以避免首先出现这种混乱。精简分配确实有助于资源管理,尤其是在处理软件定义的存储时。