KVM:如何访问底层SSD上的信息?

KVM:如何访问底层SSD上的信息?

我的数据中心中有少量虚拟机,它们在 SSD 上运行。我想获取有关 SSD 的一些信息以用于状态报告(理想情况下是使用的磨损程度/百分比),并了解是否应该设置交换设备。

这可能吗?对于我尝试过的所有方法,我都遇到了 VMware 虚拟磁盘的障碍。

没有给出答案的事情:

  1. nvme list- 空的
  2. lsblk /dev/sda3- 返回“固态驱动器”,但“缺乏 SMART 功能”
  3. hdparm /dev/sda3- 没什么用处
  4. lshw -class disk -class storage- 显示 VMware SATA 控制器,但似乎没有任何其他有用的信息
  5. smartctl -a /dev/sda3- 显示 VMware 虚拟磁盘,但“设备缺乏 SMART 功能”

编辑

只是为了澄清 - 我说的是来宾虚拟机。来宾正在数据中心的未知主机上运行。我对主机的了解只是它正在运行 VMware,因为我在来宾中看到的设备都是 VMware 设备。因此,我无权访问virsh、KVM 设置或其他任何内容。我正在运行的客户操作系统(Ubuntu 22.04)可以清楚地检测到它是虚拟化的,我希望它能够以某种方式“通过”客户内核来了解底层硬件。

答案1

那是不可能的。租用虚拟机资源的全部意义在于,您可以留在该虚拟机的范围内,并且不会干扰或获取有关其他客户虚拟机的任何信息。

因此,除非您租用了一台可以访问此类内容的裸机服务器,否则没有理智的云提供商可以为您提供此类访问权限。

您说您的虚拟机在数据中心中运行。现在,这可能意味着您的虚拟机只是其中使用的存储的一小部分。通常,您的虚拟机底层不会有单个 SSD:这既昂贵又不可靠。相反,您的虚拟磁盘将由某些块设备模拟层提供,该模拟层将您的数据分布到许多 SSD 上,并添加纠错信息。

这样,当其中一个物理存储介质发生故障时(一旦在数据中心放置数百个物理存储介质,其中一个发生故障的可能性相当大),就不会出现数据中断或丢失,因为存储系统可以无缝地继续运行由于纠错功能,后备存储中可以减少一台设备的操作。与此同时,在增加“一失足成”安全性的同时,每当您将一个 SSD 连接到虚拟机时,您不必购买两个 SSD - 总体存储的特定百分比就足够了。

因此,理论上你不能直接从底层设备读取信息(由于安全隐患),而且这个 SSD 也不可能真正存在 - 你正在一个可能是条带化的虚拟块设备上写入跨存储集群中的大量 SSD。

相关内容