昨天把一台VMware ESXi 4.0升级到4.1了,搞得比较折腾,在这里说下升级的详细过程。

先说下升级的步骤,来自官方手册:

可以使用 vihostupdate 实用程序从 ESXi 4.0 升级到 ESXi 4.1。

前提条件

必须先有权访问可在其上运行 VMware vSphere 命令行界面 (vSphere CLI) 的计算机,才能从命令行升级 ESXi主机。可以在 Microsoft Windows 或 Linux 系统上安装 vSphere CLI,或者将 VMware vSphere Management Assistant (vMA) 虚拟设备导入到 ESXi 主机中。有关导入或安装 vSphere CLI 的信息,请参见《VMware vSphere 命令行界面安装和参考指南》。

如果目标主机与 vCenter Server 相连,则其必须具有 3GB 的 RAM。

对于 ESXi 主机,必须先配置暂存分区并重新引导主机,才能继续进行升级。可以在 vSphere Client 的配置选项卡中的软件高级设置下为主机配置暂存分区。

步骤 1 从 VMware 网站将以下升级 ZIP 捆绑包下载到 vSphere CLI 计算机可访问的位置。 upgrade-from-ESXi4.0-to-4.1.0-0.0.内部版本号-release.zip 升级 ZIP 捆绑包中包含 esxupdate 公告和升级公告。 2 关闭主机上正在运行的所有虚拟机,并将主机置于维护模式。 3 通过在 vSphere CLI 计算机上运行以下命令安装 esxupdate 公告。 vihostupdate –server 主机名或 IP 地址 -i -b ESXi 升级 ZIP 捆绑包的位置 -B ESXi410-GA-esxupdate 4 通过在 vSphere CLI 计算机上运行以下命令安装升级公告。 vihostupdate –server 主机名或 IP 地址 -i -b ESXi 升级 ZIP 捆绑包的位置 -B ESXi410-GA 5 通过运行以下命令验证公告是否已安装在 ESXi 主机上。 vihostupdate –server 主机名或 IP 地址 –query 6 重新引导主机

我升级ESXi另外用到了两台机器,一台是安装有VMware vSphere Clinet的windows 机器,一台是安装vSphere CLI的linux机器,其实vSphere CLI也有windows版本的,在一台机器上升级是一样的,只是我手上反正有linux的机器,而linux上的shell比windows好用得多,所以我就在linux上用vSphere CLI升级了。

升级之前我在windows机器上用VMware vSphere Clinet先关闭了所有虚拟机,并把Esxi设置成维护模式。

然后在linux机器上运行:

1.先备份Esxi配置

#vicfg-cfgbackup –server 192.168.1.11 –username root –password xxxxx -s vmware.bak

2.安装 esxupdate 公告

#vihostupdate –server 192.168.1.11 –username root –password xxxxx  -i -b /home/hui/vmwareesxi/upgrade-from-ESXi4.0-to-4.1.0-0.0.260247-release.zip -B ESXi410-GA-esxupdate

Please wait patch installation is in progress …
Host updated successfully.

3.安装升级公告

#vihostupdate –server 192.168.1.11 –username root –password xxxxx -i -b /home/hui/vmwareesxi/upgrade-from-ESXi4.0-to-4.1.0-0.0.260247-release.zip -B ESXi410-GA

Please wait patch installation is in progress …
The update completed successfully, but the system needs to be rebooted for the changes to be effective.

4.查询下看看

#vihostupdate –server 192.168.1.11  –username root –password xxxxx –query
———Bulletin ID——— —–Installed—– —————-Summary—————–
ESXi410-GA-esxupdate          2010-11-01T08:11:49 ESXi pre-upgrade Bulletin              
ESXi410-GA                    2010-11-01T08:14:27 ESXi upgrade Bulletin  

5.用windows机器上的VMware vSphere Clinet重启ESXi,重启可发现升级成功,已经是ESXi 4.1了。

新的 ESXi 4.1 在控制台菜单里多了一项:Troubleshooting Options,进去后可以 Enable Remote Tech Support (SSH),是的,你没看错,现在可以直接在这里启用ssh服务,不需要像4.0时那样去折腾了,很方便。

但是我后重启的时候碰到一个问题,之前没有的,可能是我的服务器有一两年没重启,BMC上的ipmi坏了。在ESXi启动到Loading module ipmi_si_drv …的时候停住不动了,过了大约半小时才过去。过去后其它方面如虚拟机之类的正常。

这个问题挺烦,虽然我很少重启,但是不解决这个问题心里很不舒服,于是在网上查了查,看到三个解决方法:

http://ithelp.ithome.com.tw/question/10051917

#vi /etc/vmware/init/init.d/72.ipmi 

# 在 Exec 那行前面插入一行:

return ${SUCCESS} # disable IPMI 

因為原本 esxcfg-init -I 的作用, 就是 Load ipmi driver…

但经过我的测试,没用。因为重启后,你会发现,/etc/vmware/init/init.d/72.ipmi 这个文件又变成你改之前的了。

http://communities.vmware.com/message/1025433

更改 Esxi 配置:Misc.CimEnabled

这个配置在Esxi的配置-》高级配置-》Misc

但是很可惜,我在这里面没有找到Misc.CimEnabled,可能4.1已经没有这个配置了。

http://communities.vmware.com/message/1044621#1044621

esxcfg-module -d ipmi_si_drv

用这个命令关闭ipmi_si_drv模块,重启后发现真的解决问题了。哈哈。。。

很是折腾,因为重启一次要半个小时,呵呵,搞了一下午。