ESX高手网

为VMWare ESX管理员提供的实用知识库

作者:esxguru (ESXguru.com版权所有)

很多用户不知道如何查看一个虚拟机( VM, virtual machine)是否正运行在snapshot(s) 上, 或者还尚未意识到有效的管理 snapshots的重要性。 以下,我就来讲解一下验看 snapshots 的几种方法以及为何需要慎重管理 snapshots。

如果让一个虚拟机长期运行在 snapshot之上,可能会导致以下问题的发生:

  1. 随着  VM的运行,snapshot的 delta vmdk 文件会逐渐增大,这样就会占用datastore上越来越多的空闲空间。一旦空闲空间被用尽,那么会导致VM down/crash,没有响应, 甚至corrupted.
  2. 随着  VM的运行,snapshot的 delta vmdk 文件会逐渐增大。就算datastore有足够的空间,那么将来在删除 snapshot时做delta 数据合并时,就会花费相当长的时间。如果有很多个snapshots,并且都有非常多的delta 数据,也可能无法再做online snapshot合并,;而必须计划安排 VM的 downtime来做offline snapshot 合并。
  3. 在ESX4.0 Update2之前的版本,如果VM有多个snapshots,那么snapshot合并还需要额的空闲空间。 这个额外的空间大小,取决于delta data的多少。

那么如何查看一个VM是否仍然有snapshot呢?我们可以用以下这些方法。

  1. 从 “snapshot manager”里查看是否有snapshot 项,请参看下图。

上图中,我们可以看见一个名为 VM-Win2K8的虚拟机,有两个快照(snapshot1 和snapshot2)。

但请大家注意,这个方法并不一定百分百准确。为什么这么说呢?因为每次当我们删除snapshot的时候,ESX都会先将这个snapshot 从snapshot的database里面删去,然后才在后台开始真正的删除操作。如果任何错误发生而导致删除失败,那么虚拟机就可能仍然运行在snapshot之上,而”snapshot manager”却不会再显示出来了。

所以,真正有效的准确的方法,是以下的方法2和方法3。

  1. 从VM 的配置(“edit setting”)里面查看VM的virtual disk(s)实际是指向哪个文件。

    如果virtual disk的名字是VMname.vmdk, 那么这个 VM就指向base disk.

    如果virtual disk的名字是VMname-00000#.vmdk, 那么这个 VM就指向某个 snapshot.

    在上面这个截图中,我们可以看到虚拟机VM-Win2K8的虚拟硬盘就指向一个VM-Win2K8-000001.vmdk文件,这个就是一个snapshot(快照)。

  2. 如果大家对 Linux比较熟悉,我们也可以从SSH session/ ESX service console上,先切换到VM 的文件夹,再运行下图中的命令,直接查询虚拟机的配置文件( .vmx)指向哪些文件。

同理,如果virtual disk的名字是VMname.vmdk, 那么这个 VM就指向base disk。如果virtual disk的名字是VMname-00000#.vmdk, 那么这个 VM就指向某个 snapshot.

上图中,一个名为 Windows7的虚拟机,我在它的配置文件Windows7.vmx文件中,用 grep命令查找其包含的所有的vmdk文件。查找出来的结果是SCSI0:0这个虚拟盘,指向 Windows7-000002.vmdk这个snapshot 文件。

【总结】

这三个方法相结合,我们就能准确的判断出VM是否正运行于快照之上。这样,就可以防止在用户自己不知情的情况下,导致snapshot的delta文件逐渐增大,而用尽datastore上所有的空间。

【联想】

或许有些朋友会想问,除了一个一个虚拟机地查看,有没有什么办法一下子把多个datastore统统检查一遍,看是否有哪个VM 正运行于snapshot上?

这个问题,我今后会在我们的网站(esxguru.com)上和大家探讨。

VN:F [1.9.7_1111]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)

作者:esxguru (ESXguru.com版权所有)

一台运行的提供服务的虚拟机,其背后实际就是一些存储在datastore上的文件。不知道大家是否曾经好奇,这些文件到底是如何组成一个虚拟机的。我们只有在充分了解文件的构成之后,才可懂得虚拟机的工作原理,那么当要需要做配置更改,或者虚拟机出问题时,我们才可轻松应对。

在本文中,我以一个名为Test-VM的虚拟机为例,从ESX的service console/ SSH session上来罗列所有于该VM相关的文件。

首先,用以下命令进入VM在datastore上的文件夹。

[root@bs-tse-d17 Test-VM]# cd /vmfs/volumes/datastore1/Test-VM

之后,运行以下命令来罗列出这个文件夹里面的所有文件。

[root@bs-tse-d17 Test-VM]# ls -lah

-rw——- 1 root root 2.0G Oct 14 14:02 Test-VM-eb77e0fd.vswp

-rw——- 1 root root 15G Oct 13 16:51 Test-VM-flat.vmdk

-rw——- 1 root root 8.5K Oct 13 16:53 Test-VM.nvram

-rw——- 1 root root 468 Oct 13 16:51 Test-VM.vmdk

-rw-r–r– 1 root root 0 Oct 13 16:51 Test-VM.vmsd

-rwxr-xr-x 1 root root 2.7K Oct 13 16:51 Test-VM.vmx

-rw-r–r– 1 root root 262 Oct 13 16:51 Test-VM.vmxf

-rw-r–r– 1 root root 44K Oct 13 16:53 vmware-1.log

-rw-r–r– 1 root root 46K Oct 13 16:53 vmware-2.log

-rw-r–r– 1 root root 43K Oct 14 14:02 vmware.log

这个文件列表中的各个文件,他们分别是:

  1. Test-VM.vmx – VM的基本配置文件 ( .vmx)

    所有VM的虚拟硬件信息都被记录于此文件中,比如VM的操作系统类型,CPU的配置,虚拟内存的大小,网卡的设置,虚拟硬盘的配置等等。

  2. Test-VM.vmdk – VM的虚拟硬盘的描述文件 ( .vmdk)

    我们可以打开这个文件以查看其内容,里面记载了虚拟硬盘的大小,实际上这个硬盘的真正二进制数据文件的名称,虚拟硬盘的类型等等。

  3. Test-VM-flat.vmdk – VM的虚拟硬盘的二进制数据文件 ( xxxx-flat.vmdk)

    它是真正的虚拟硬盘文件,包含了所有的数据。所以这个文件的大小,也就等于虚拟硬盘的大小。

  4. Test-VM.nvram – VM的 BIOS文件 (.nvram)
  5. vmware.log – VM的日志文件 (vmware-#.log)

    日志文件记录了有关VM的重要操作,比如power on/off VM, 创建 / 删除 快照(snapshot),改变注册的ESX主机等等。如需做VM 的故障排除,这些文件往往很有用。

  6. Test-VM.vmsd – VM的快照(snapshot)定义文件

    这个文件可以称之为的快照定义文件,或者可称作快照的database文件。 vSphere client ( VI client) GUI上的”snapshot manager”

    S

  7. Test-VM-eb77e0fd.vswp文件 – VM的虚拟内存交换文件 ( .vswp)

    这个交换文件是在每次启动VM的时候被创建,关闭VM时删除。 它的大小等于这个VM

    的虚拟内存的大小。

  8. Test-VM.vmxf文件 – VM的补充配置文件 ( .vmxf)

    这个文件大家不用太担心,在初始创建一个VM时,该文件并不会被生成。如果删除它,也会自动再次生成。

【总结】

对于一个VM而言,真正不可或缺的文件是虚拟硬盘的数据文件(xxx-falt.vmdk),其他的文件都有相应的办法重新创建出来,唯有数据没有办法重造。

【联想】

如果在实际的应用中丢失了某个、某些VM的文件改怎么处理呢?我们在今后会和大家慢慢讨论这些话题。

[root@bs-tse-d17 Test-VM]# cat Test-VM.vmdk

# Disk DescriptorFile

version=1

encoding=”UTF-8″

CID=fffffffe

parentCID=ffffffff

isNativeSnapshot=”no”

createType=”vmfs”

# Extent description

RW 31457280 VMFS “Test-VM-flat.vmdk”

# The Disk Data Base

#DDB

ddb.virtualHWVersion = “7″

ddb.longContentID = “7d271feadb63fb33731ece8dfffffffe”

ddb.uuid = “60 00 C2 9d a3 e1 a4 7a-1f 17 6f 05 d1 b6 cc be”

ddb.geometry.cylinders = “1958″

ddb.geometry.heads = “255″

ddb.geometry.sectors = “63″

ddb.adapterType = “lsilogic”

VN:F [1.9.7_1111]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)

上线啦

抢沙发

ESX高手网终于上线啦。。。

VN:F [1.9.7_1111]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)

如题。。。

VN:F [1.9.7_1111]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)

VDR 的问题

抢沙发

有谁用过VDR,可以分享一下吗?

继续阅读

VN:F [1.9.7_1111]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)

SRM 第一帖

抢沙发

Say hello

VN:F [1.9.7_1111]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)

互动第一帖

抢沙发

沙发

VN:F [1.9.7_1111]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)

灌水喽

抢沙发

沙发哦!

VN:F [1.9.7_1111]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)

先来占个沙发。

VN:F [1.9.7_1111]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)

存储技术测试帖

VN:F [1.9.7_1111]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)