THE MOMENT, THE MEMENTO

2007年12月26日

“LVM.DisallowSnapshotLun” Problem when Migrating a Datastore on VMWare ESX Server

标签:, , — 吴德文 @ 18:04

机房的VMWare ESX服务器增加了一个SAN的连接,并且将原先分配给ESX的一个Disk也present到了这个新的HBA卡上。

昨天为了使得ESX上的每一个SAN Disk都能使用两条SAN链接进行冗余以及负载均衡,就将各个Disk的LUN号都调整了一下,其中也改动到了作为ESX服务器Datastore的Disk(VMFS),从vmhba2:0:2变成了vmhba2:0:1。结果服务器重启以后,Storage里再也没有原先的Datastore了,虽然每一个新的LUN都正确的查找了出来。如果重新添加Datastore的话,ESX则要求对新添加的volume进行格式化,这个是绝对不行的。

幸好,在进行调整之前,由于意识到风险比较大,事先google了一下关于调整或者删除Datastore的做法(原先的思路是想把Datastore先删掉,把ESX对Datastore的链接或者叫记录清除,调整完LUN后再重新把volume添加回去),结果找到这篇文章

……ESX为什么这么做? 原来每当ESX为一个新LUN建立VMFS卷时, 记录下了该卷的LUN ID. 当ESX SCAN HBA发现一个VMFS卷, 而其LUN ID又不在记录之中, ESX认为这只是某个现有的LUN的SNAPSHOT

这种问题的解决方法是强迫ESX去加载这个卷:

VIC连接ESX.
Configuration -> Advanced Settings.
选 LVM, 将 ‘LVM.DisallowSnapshotLun’ 设置为 0, 按”OK”键退出
Configuration -> Storage Adapters. 选定 adapter, rescan.
应该就能看到该LUN.
注重: 你必须是没有为LUN做SNAPSHOT, 否则SCAN之后, SNAPSHOT也都成了DATASTORE

再试图修改ESX配置文件中对Datastore的LUN记录无果之后,不得以只好用了上述的方法。用完之后还真的可以,Datastore有出现了,各个虚拟机也都出来了,看样子应该所有的事情都结束了。但是,作为一个配置开关,你为了某个原因打开以后,应该再给它关上,否则以后遇上其它事情,可能就会受到这个开关的影响而发生配置上的错误,就如同那篇文章上面的“注重”(也许应该是“注意”)所说的例子。

我把”LVM.DisallowSnapshotLun” 这个开关又重新设置为1,在rescan一下,结果Datastore又不见了。或许每次scan得到的信息需要停止服务以后才能保存到配置文件里。那就再把开关设为0,rescan,重启服务器。服务器启动以后,把开关设置为1,rescan,问题照旧,还是找不到Datastore。看样子这样的设置始终没有修改配置文件中原先保存的一些信息,使得前后还是不一致。

这个问题实在没有思绪,服务器不能一直停着,只好暂时先这么着。

晚上写这篇文章的时候,又搜索了一下”LVM.DisallowSnapshotLun” 这个关键字,找到一篇文章: Resignaturing VMFS3 Volumes That Are Not Snapshot。其实根据vmware的日志vmkernel和vmkwarning来看,所谓的信息不一致,应该就是signature的问题。也许用这篇文章的办法是有效果的,等有空的时候再试试吧。


Related:

1 条评论 »

  1. [...] 这篇文章的背景问题在上一篇文章(“LVM.DisallowSnapshotLun” Problem when Migrating a Datastore on VMWare ESX Server)里提到了——当时不知道取什么题目好,当然现在还不是很清楚,不过会明确一点了,就是将Datastore的LUN调整成其它值(unpresent&&present)了以后,ESX就没法把这个识别到的LUN作为Datastore了。 [...]

    Pingback 由 THE MOMENT, THE MEMENTO » 在VMWare ESX上重新加载旧的Datastore — 2007年12月26日 @ 22:25

这篇文章上的评论 RSS feed TrackBack URI

留下评论

You must be logged in to post a comment.

Valid XHTML 1.1 Valid CSS! Creative Commons License WordPress 所驱动