jjzjj

VSAN存储磁盘空间回收

chen_yunan 2023-03-28 原文

前言

虚拟主机在初期创建的时候采取的是“精简置备”模式,实际磁盘占用空间会在初期设定的限定值内、且会随着系统内文件增量的累积而逐渐增长。总体实际使用空间和vmdk文件所占用的空间相差过多,大量可用存储空间无法释放,造成资源的浪费。

介绍

VMFS 文件系统自推出以来已发行多个版本。目前,ESXi支持 VMFS5 和 VMFS6。传统存储下的精简模式回收简单来说就是VMFS之间存储版本的问题。自动空间回收功能仅支持在VMFS6中使用,版本对比参考以下内容:

特性和功能

VMFS5

VMFS6

对 ESXi主机 6.5 和更高版本的访问

对 ESXi主机 6.0 和更早版本的访问

每个主机的数据存储

512

512

512n 存储设备

是(默认)

512e 存储设备

是。本地 512e 设备上不支持。

是(默认)

4Kn 存储设备

自动空间回收

通过 esxcli 命令进行手动空间回收。请参见​​手动回收累积的存储空间​​。

从客户机操作系统回收空间

受限制

GPT 存储设备分区

MBR 存储设备分区

适用于之前从 VMFS3 升级的 VMFS5 数据存储。

每个 VMFS 数据区的存储设备大于 2 TB

支持具有大容量虚拟磁盘或磁盘大于 2 TB 的虚拟机

支持 1 KB 的小文件

支持 ATS 的存储设备默认使用“仅限 ATS”锁定机制。请参见​​VMFS 锁定机制​​。

块大小

标准 1 MB

标准 1 MB

默认快照

虚拟磁盘的 VMFSsparse 小于 2 TB。

虚拟磁盘的 SEsparse 大于 2 TB。

SEsparse

虚拟磁盘模拟类型

512n

512n

vMotion

跨不同数据存储类型的 Storage vMotion

High Availability 和 Fault Tolerance

DRS 和 Storage DRS

RDM

关于VSAN存储的磁盘回收问题需要满足以下几点

  1. ESXi版本要大于等于6.7U1
  2. 虚拟机是精简置备
  3. Windows虚拟机硬件版本大于等于11(WindowsServer2012以上版本支持自动回收)
  4. Linux虚拟机硬件版本大于等于13(默认不支持,主动用fstrim,被动要挂载discard参数)
  5. 启用UNMAP后必须在vCenter控制台重启虚拟机

案例

一、在vCenter Server中进入RVC模式

RVC

二、在RVC中使用以下命令启用unmap功能(vSAN为本案例集群名称)

vsan.unmap_support vSAN -e 

三、检查虚拟机占用存储空间

占用空间查看

四、检查虚拟机是否已经启用unmap功能

Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\FileSystem" -Name DisableDeleteNotification

五、若未开启,可使用以下命令启用unamp

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\FileSystem" -Name DisableDeleteNotification -Value 0

六、打开虚拟机控制台,进入Powershell界面,执行如下命令回收D盘空间:

Optimize-Volume -DriveLetter D -ReTrim -Verbose

七、再次检查虚拟机占用存储空间

空间回收完成



有关VSAN存储磁盘空间回收的更多相关文章

  1. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  2. ruby - Rack:如何将 URL 存储为变量? - 2

    我正在编写一个简单的静态Rack应用程序。查看下面的config.ru代码:useRack::Static,:urls=>["/elements","/img","/pages","/users","/css","/js"],:root=>"archive"map'/'dorunProc.new{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=6400'},File.open('archive/splash.html',File::RDONLY)]}endmap'/pages/search.

  3. ruby-on-rails - 从应用程序中自定义文件夹内的命名空间自动加载 - 2

    我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty

  4. ruby-on-rails - 为什么在 Rails 5.1.1 中删除了 session 存储初始化程序 - 2

    我去了这个website查看Rails5.0.0和Rails5.1.1之间的区别为什么5.1.1不再包含:config/initializers/session_store.rb?谢谢 最佳答案 这是删除它的提交:Setupdefaultsessionstoreinternally,nolongerthroughanapplicationinitializer总而言之,新应用没有该初始化器,session存储默认设置为cookie存储。即与在该初始值设定项的生成版本中指定的值相同。 关于

  5. ruby-on-rails - 尝试设置 Amazon 的 S3 存储桶 : 403 Forbidden error & setting permissions - 2

    我正在关注Hartl的railstutorial.org并已到达11.4.4:Imageuploadinproduction.我做了什么:注册亚马逊网络服务在AmazonIdentityandAccessManagement中,我创建了一个用户。用户创建成功。在AmazonS3中,我创建了一个新存储桶。设置新存储桶的权限:权限:本教程指示“授予上一步创建的用户读写权限”。但是,在存储桶的“权限”下,未提及新用户名。我只能在每个人、经过身份验证的用户、日志传送、我和亚马逊似乎根据我的名字+数字创建的用户名之间进行选择。我已经通过选择经过身份验证的用户并选中了上传/删除和查看权限的框(而不

  6. ruby - 如何打印出 Mechanized 存储的 cookie? - 2

    我正在使用mechanize登录网站,然后检索页面。我遇到了一些问题,我怀疑这是由于cookie中的某些值造成的。当Mechanize登录网站时,我假设它存储了cookie。如何通过Mechanize打印出存储在cookie中的所有数据? 最佳答案 代理有一个cookie方法。agent=Mechanize.newpage=agent.get("http://www.google.com/")agent.cookiesagent.cookies.to_scookie返回一个Mechanize::Cookiesobject

  7. ruby-on-rails - 闪存消息存储在哪里? - 2

    我以为它们存储在cookie中-但不,检查cookie没有任何结果。session也不存储它们。那么,我在哪里可以找到它们?我需要这个来直接设置它们(而不是通过flashhash)。 最佳答案 它们存储在inyoursessionstore.自rails2.0以来的默认设置是cookie存储,但请检查config/initializers/session_store.rb以检查您是否使用默认设置以外的东西。 关于ruby-on-rails-闪存消息存储在哪里?,我们在StackOverf

  8. ruby-on-rails - 在 Rails 中存储(结构化)配置数据的位置 - 2

    对于我正在编写的Rails3应用程序,我正在考虑从本地文件系统上的XML、YAML或JSON文件中读取一些配置数据。重点是:我应该把这些文件放在哪里?Rails应用程序中是否有用于存储此类内容的默认位置?附带说明一下,我的应用程序部署在Heroku上。 最佳答案 我经常做的是:如果文件是通用配置文件:我在目录/config中创建一个YAML文件,每个环境有一个上层key如果我为每个环境(大项目)创建一个文件:我为每个环境创建一个YAML并将它们存储在/config/environments/然后我在加载YAML的地方创建了一个初始化

  9. ruby - 如何存储和读取 RubyVM::InstructionSequence? - 2

    有没有办法将RubyVM::InstructionSequence存储到文件中并稍后读取?我尝试了Marshal.dump但没有成功。我收到以下错误:`dump':no_dump_dataisdefinedforclassRubyVM::InstructionSequence(TypeError) 最佳答案 是的,有办法。首先,您需要使InstructionSequence的load方法可访问,默认情况下该方法是禁用的:require'fiddle'classRubyVM::InstructionSequence#RetrieveR

  10. ruby-on-rails - 如何解析位于 Amazon S3 存储桶中的 CSV 文件 - 2

    下面是我用来从应用程序中解析CSV的代码,但我想解析位于AmazonS3存储桶中的文件。当推送到Heroku时它也需要工作。namespace:csvimportdodesc"ImportCSVDatatoInventory."task:wiwt=>:environmentdorequire'csv'csv_file_path=Rails.root.join('public','wiwt.csv.txt')CSV.foreach(csv_file_path)do|row|p=Wiwt.create!({:user_id=>row[0],:date_worn=>row[1],:inven

随机推荐