AHV - vDISK -第1部分:它们存储在哪里?

  • 2019年10月31日
  • 7回复
  • 6734的浏览量

Userlevel 3
徽章 + 4
  • Nutanix员工
  • Nutanix员工
  • 72回复

在某些场景中,我们可能需要找到与托管在Nutanix AHV Cluster上的虚拟机关联的磁盘。

Nutanix提供了一种分布式存储结构,它在“N”个节点之间形成一个大的存储池。然后,我们为不同类型的工作负载创建容器,或者我们也可以轻松地使用单个容器。

通过Prism Management创建虚拟机,虚拟机关联的所有vdisk都托管在分布式存储池中。

在Nutanix AOS集群中,卫城服务跨集群运行,以管理虚拟机操作和配置。既数据和元数据在整个集群中,我们可以使用卫城在几乎任何CVM上的服务来检索运行在任何节点上的虚拟机信息。

为了与卫城服务互动,Nutanix提供“acli”。一组强大的命令,用于跨您的Nutanix集群的虚拟机操作。

acli中的一次提供选项卡补全功能acli或者我们也可以从普通的CVM提示符执行acli命令。

查找已存在虚拟机的磁盘:

我需要找到绑定到虚拟机的磁盘(100GB)。WServer2019在一个Nutanix AOS - AHV集群上。

使用acropolis cli查询虚拟机配置。acli>,我们将使用"虚拟机命名空间,这给我们提供了vm.getvm.disk_get查询虚拟机磁盘信息。

用r正在获取虚拟机信息acli vm.get

SSH连接到同一个集群中的CVM。“nutanix@cvm-ip”

从CVM命令shell:
nutanix@NTNX-CVM: 192.168.100.1: ~ $ acli vm。得到< vm-name >

以上acli vm.get命令将给我们所有与虚拟机相关的信息,或者更简单地说,它将输出虚拟机配置,(CPU | RAM |磁盘|控制器|位置)。

当我们想要找到磁盘以及它们在集群中某个容器上的位置时,我们可以这样做:

acli vm.getWServer2019include_vmdisk_paths = 1

上面的命令将输出WServer2019的整个VM配置,我们会对disk_list的部分。

注意,我们已经使用了include_vmdisk_paths = 1,以便输出包含vdisk所在的实际路径。下面的“disk_list”部分将给出我们想要的信息:

disk_list {
addr {
公共汽车:“scsi”
指数:0

container_id: 3878917992
container_uuid:“fcba5c88 - 71 - 43 - cf - 81 - c7 - d6140c13ad26”
device_uuid:“6 f861a2f - 334 a - 414 a - a930 - 6515707 - e712f”
naa_id:“naa.6506b8d9bad6b961b1f8219274aaacc9”
vmdisk_nfs_path:“/ ctr01 / .acropolis / vmdisk / 958 a3c70 - 7 - d99 - 4706 bee5 - 35 - cb70339ce0”
vmdisk_size: 107374182400
vmdisk_uuid:“958 a3c70 - 7 d99 - 4706 - bee5 - 35 - cb70339ce0”

看看上面的输出,我们可以看到“vmdisk_nfs_path指向一个名为ctr01和隐藏目录.acropolis包含vmdisks文件夹中的所有vmdisks。

通过检索给定虚拟机的虚拟磁盘信息:acli vm.disk_get

我们也可以在"acli提示符,并通过"vm.disk_get“命令:

nutanix@NTNX-CVM: 192.168.1.1: ~ acli美元
acli vm.disk_get

在下面的代码片段中,我们在acli壳牌/提示:

<卫城> vm。disk_get WServer2019 include_vmdisk_paths = true
ide。1) {
addr {
公共汽车:“ide”
指数:1

光盘:真
device_uuid:“361 b37ef - 0681 - 45 - c8 - 9540 - 34 - cda27e3c1e”
空:真
naa_id:“naa.6506b8db86621d2f872ca4f1126227c4”

scsi。0 {
addr {
公共汽车:“scsi”
指数:0

container_id: 3878917992
container_uuid:“fcba5c88 - 71 - 43 - cf - 81 - c7 - d6140c13ad26”
device_uuid:“6 f861a2f - 334 a - 414 a - a930 - 6515707 - e712f”
naa_id:“naa.6506b8d9bad6b961b1f8219274aaacc9”
vmdisk_nfs_path:“/ ctr01 / .acropolis / vmdisk / 958 a3c70 - 7 - d99 - 4706 bee5 - 35 - cb70339ce0”
vmdisk_size: 107374182400
vmdisk_uuid:“958 a3c70 - 7 d99 - 4706 - bee5 - 35 - cb70339ce0”

<卫城>

vmdisk_uuid这个位置是我们感兴趣的,稍后我们可以使用它将磁盘克隆为一个镜像,或者通过WinSCP连接到我们的集群下载这个磁盘——稍后详细介绍。

事情要记住:

  • acli可以直接从CVM执行
  • 也可以通过输入Acli shell / prompt来执行Acli命令
  • acli可以在AOS集群的任意cvm中执行
  • acli vm.get(to List Virtual Machine info)
  • acli vm.disk_get (to retrieve disk information of a vm)

请继续关注下一部分-我们将通过WinSCP找到并访问现有虚拟机的磁盘,以便下载到我们的工作站。


7回复

有关于第2部分使用scp的消息吗?我现在就可以使用它将文件复制到另一个集群。

Userlevel 3
徽章 + 4

有关于第2部分使用scp的消息吗?我现在就可以使用它将文件复制到另一个集群。

https://next.nutanix.com/server-virtualization-27/ahv-vdisk-part-2-accessing-and-downloading-vdisks-33672

你好埃利奥特-请找到上面的链接-让我知道,如果你需要进一步的信息。

Userlevel 2
徽章 +5

你好,穆

非常感谢您的综合文章。我想知道在另一方面是否有一个简单的方法来找出一个特定的vdisk属于哪个VM。例如,最后一个vdisk仍然在计划删除的容器上。

亲切的问候,

彼得

Userlevel 3
徽章 + 4

@MMSW_DE谢谢你的评论。

我想知道在另一方面是否有一个简单的方法来找出一个特定的vdisk属于哪个VM。例如,最后一个vdisk仍然在计划删除的容器上。

对于你上面的观点,我们需要考虑以下几点:

正常情况下,我们可以通过以下方式列出绑定到虚拟机的所有磁盘acli vm.getacli vm.disk_get命令,这将列出与给定虚拟机绑定的所有vDisks。

我们还可以通过包含vdisk的完整容器路径

acli vm.get include_vmdisk_paths=1

这将揭示虚拟机细节(cpu | ram |网卡| vdisks)以及绑定到该虚拟机的所有vdisk的容器路径.下面的字符串将在输出中找到:

vmdisk_nfs_path:“/容器名称/ .acropolis / vmdisk / 5 b20b3f6 f83c - 4 e75 - 851 b - 3 - dc606c70379”

现在,如果vDisk是删除标记当然,这是通过保护域进行容灾复制或快照周期的一部分。这是处理自动

对于属于保护域的虚拟机硬盘,其快照存储在:

/容器名称/ .snapshot /

如果你拿手动快照通过Prism > VM >快照,那些快照存储下:

/容器名称/ .acropolis / / < UUID > / vmdisk快照

您可以在Prism中管理它们> VM >表视图> VM快照> (restore | delete | clone)

vdisk可以是虚拟机配置、虚拟机快照、保护域快照、镜像、目录项、卷组的一部分。

因此,任何vdisk的自动快照都是由各自的集群组件自动处理的,它不会影响正在运行的虚拟机。

我希望这对你有帮助,如果你想进一步澄清或有任何进一步的问题,请让我知道。


BR

Userlevel 2
徽章 +5

你好,

谢谢你提供这么全面的信息。我正在寻找另一种方式:我有一个给定的vdisk驻留在一个容器,我想要删除,我可以看到vdisk的路径在sftp:

/ SomeSuperfluousContainer / .acropolis / vmdisk / 806 fdad9 - 8684 - 41 - ea - a49c fc956193bcff

我宁愿不执行acli vm。get for all VM on the cluster to see if I can spot this path anywhere,因此我的问题是,是否有一种方法来确定这个vdisk属于哪个VM。

看到你,

彼得

Userlevel 3
徽章 + 4

我正在寻找另一种方式:我有一个给定的vdisk驻留在一个容器,我想要删除,我可以看到vdisk的路径在sftp:

/ SomeSuperfluousContainer / .acropolis / vmdisk / 806 fdad9 - 8684 - 41 - ea - a49c fc956193bcff

我宁愿不执行acli vm。get for all VM on the cluster to see if I can spot this path anywhere,因此我的问题是,是否有一种方法来确定这个vdisk属于哪个VM。

看到你,

彼得

@MMSW_DE

谢谢您的意见。

我知道你很想为给定的vDisk找到相应的VM。

因此,澄清一下,WinSCP方法仅用于上传或下载文件(如果需要)。在容器上使用winscp工具连接时,不建议删除任何内容.这可能会导致问题卫城服务。

在AHV上只能列出虚拟机的详细信息,以查找相应的虚拟机磁盘。(acli vm.get或acli vm.disk_get).

BR

Userlevel 3
徽章 + 4

你好,

谢谢你提供这么全面的信息。我正在寻找另一种方式:我有一个给定的vdisk驻留在一个容器,我想要删除,我可以看到vdisk的路径在sftp:

/ SomeSuperfluousContainer / .acropolis / vmdisk / 806 fdad9 - 8684 - 41 - ea - a49c fc956193bcff

我宁愿不执行acli vm。get for all VM on the cluster to see if I can spot this path anywhere,因此我的问题是,是否有一种方法来确定这个vdisk属于哪个VM。

看到你,

彼得

嗨,彼得,

这可以帮助您为给定的“vdisk uuid”标识虚拟机。

acli vm.get"*" include_vmdisk_paths=1 | grep -A 20  | egrep " name|nfs_path"

希望这有助于

回复


Baidu