寻觅生命中的那一片浅草......

文章属于类别 虚拟化

Xen虚拟机迁移到VMware

由于种种原因,我们之前使用了Xen,但使用起来不是很方便,例如有时物理机上的LVM并不会开机激活等,我们就想着集中迁移到VMware进行集中管理

1 环境说明

  1. Xen虚拟机为全虚拟机化,就是内核是没有修改的,此处主要影响硬件驱动,如果用的是半虚拟化,估计转换后,还要处理下initrd文件
  2. 虚拟机里的系统使用了LVM(特别坑)

2 export to ovf

失败

导出后,在导入VMware的时候,提示

encoding specified in XML declaration is incorrect

对于上述错误,有人在VMware论坛提出了解决方案:Xen -> VirtualBox -> VMware

1)Exported OVF and VHD from Citrix XenCenter

2)Created a new VM in Oracle VirtualBox using as virtual disk the VHD disk exported above. (this step was performed on my desktop pc on which I installed VirtualBox) 

3)Exported OVA from Oracle VirtualBox

4)Imported OVA as an Assembly in vSphere

满心欢喜,进行了16个小时的导出后,在导入的时候,并不行,提示硬件不兼容,放弃

参考:OVA文件导入VMware ESXi出错解决办法

3 P2V

就是用物理机转换为虚拟机的方法,可行

我们在转换的时候,转换工具可以识别到源机的磁盘结构(LVM), 但转换过去后,磁盘大小却不对,结构也是乱的,猜测是LVM导致,这里有提到一个将LVM降级的解决办法,但我们没有试,主要是考虑

  1. 数据安全,将LVM降级,怕有风险
  2. 文章发表时间为2013年,较旧
  3. VMware官方文档也表示转换工具支持LVM

文档地址:Solution for LVM based Linux servers using VMware Converter showing no volumes

下面讲可行的方法

步骤一

在「Optinons」这一步,点击「Data to copy」部分内容,或者点击「Edit」,然后选择「Advanced」,然后去到下图

步骤二

此处选择「Destination layout」,点击「VirtualDisk2」,然后点击「To basic」,就是在目标机器上不使用LVM,只使用普通磁盘分区,此处为关键

至于另外2个「Thin」,则可设置,也可以不设置,设置为Thin就是按需占用,按实际使用分配,而不是一下子就分配所有空间

步骤三

Xen服务器上的虚拟机转成VMware的虚拟机后,发现开机黑屏,最后摸索后发现是grub菜单项有问题导致,在开机的时候,直接修改grub菜单,然后把consolse=hvc0删掉,并在最后加入fastboot,就可以正常启动了

步骤四

由于转换的时候,没有识别到/data,我怀疑是因为它磁盘设备文件是/dev/xvdb导致,一般应该是/dev/xvdb1,所以,我们在开机后,添加新磁盘,然后在线同步一次data,最后,关闭所有服务,再同步要同步的数据,本例中含/var/data,最后换ip,开启服务,迁移完成

vmware回收vmdk空间

1 问题

我们内网有一个vmware的集群,以前年少无知,所以vmdk的格式选择了「厚置备延迟置零」,也就是分配多少,vmdk文件就会占用多大的空间,这里的好处是能提供较好的io,但我们虚拟机大部分用来做测试的,所以对io要求不高,而且实际并不需要这么大的空间,这里是第一个问题,我们需要将vmdk转换为「Thin Provisioning」,就是按需使用,并不是一开始就分配所有空间。

后来的虚拟机,我们选用了「Thin Provisioning」,部分虚拟机在一开始写了大量文件,现在不需要存了,需要回收这部分空间,这是第二个问题。

2 转换

有2个方式

vShpere Client

就是迁移虚拟机,只需要转移存储就可以了,当然也可以连主机也迁移了,原来就是在迁移选择存储时,可以在「选择虚拟磁盘格式」下拉菜单中选择「Thin Provisioning」,我感觉原理和vmkfstools是一样的,就是在迁移的过程中,做一次转换

vmkfstools

由于我没有使用此方法,直接贴参考资料好了

Cloning and converting virtual machine disks with vmkfstools (1028042)

3 回收空间

在转换的时候, 发现部分机器已经回收空间了,但有些没有自动回收,暂时不知道什么原因,下面讲下手动回收。

大概原理是先在虚拟机里标记哪些磁盘块是已经删除了,然后再通过vmkfstools进行回收

Windows虚拟机

可以用

sdelete.exe -z [DRIVE:]

Linux虚拟机

比较粗暴,用dd填满磁盘,再删除文件

由于它是填满磁盘,就是该盘会最终占用分配给它的全部空间,所以要看看该vmdk所在的物理盘是否有足够的空间

# xxx为你需要回收的磁盘挂载点
cd xxx
dd if=/dev/zero of=zeroes bs=4096 || rm -f zeroes

开始回收

经过上面2种虚拟机的处理后,就可以ssh到vmware物理机上进行回收

此处注意,vmkfstools要用xxx.vmdk,不要用xxx-ctk.vmk,也不要用xxx-flat.vmdk

# 处理前确认大小
du -h xxx-flat.vmdk
vmkfstools -K xxx.vmdk
# 处理后确认大小
du -h xxx-flat.vmdk

处理完后,在「vShpere Client」中,可以选择「刷新存储使用情况」来获取最新的使用情况

4 注意

磁盘有价,数据无价,请操作前做好备份,操作的时候,再三确认

5 参考资料

2012上的hyper-v,设置超过1个cpu,就上不了网

系统环境

  • 物理机:Windows 2012 64bit hyper-v
  • 虚拟机:CentOS 6.2 64bit

问题症状

在hyper-v上设置1个CPU,虚拟机可以正常上网,一旦设置超过1个CPU,系统就无法上网

问题解决

原来是irqbalance引起:

# 设置irqbalance开机不启动,然后重启虚拟机
chkconfig irqbalance off

进一步处理

在CentOS上安装微软的虚拟化工具:Linux Integration Services 3.5,安装后,也是没有解决这个问题,还是要把irqbalance关掉,在处理完这个之后,我测试一个绑定CPU的程序,结果提示无法绑定

最后结论

微硬对Linux的兼容性真不敢恭维

参考:

用pyvmomi获取Esxi下虚拟机列表

有几台Esxi,虚拟机较多,有时要找一台虚拟机是在哪台物理机上,很不方便,上网找到这个Python模块,可以列出某台物理机上所有虚拟机

一、安装模块

pip install pyvmomi

二、获取Esxi下所有虚拟机列表

先下载脚本

git clone https://github.com/vmware/pyvmomi.git

开始使用

cd pyvmomi/sample
python getallvms.py  -s 192.168.8.xxx -u xxxx -p xxxxx

Xen和KVM虚拟机管理工具:Convirture

又一款Xen和KVM虚拟机管理工具:Convirture
产品主页:http://www.convirture.com/index.php
分企业版和开源版

主要特性
1.开源免费
2.多平台支持,能同时支持xen和vmware等虚拟机平台的管理
3.可以实现虚拟机服务器的控制,如打开、关闭、暂停、恢复等
4.可以灵活地对虚拟机服务资源进行配置
5.实时的数据监控、如CPU、内存、硬盘等;可以查看所有的服务器配置信息,快照功能
6.虚拟服务器可实现迁移
7.可以通过管理平台快速创建虚拟机系统、创建系统采用模板化配置管理
8.可以在管理平台上实现对虚拟机的桌面化管理

ConVirt 2.0 Open Source is the leading open source product for managing Xen and KVM, enabling you to standardize and proactively manage your virtualized environment in a centralized fashion. With ConVirt, you can create and provision “gold” images, diagnose performance problems, and balance load across the data center, all from a highly interactive Web based interface and with consistent feature set across open source virtualization platforms. As an open source product, ConVirt 2.0 Open Source is free to download and use. With a large user community and the commercial backing of Convirture, companies large and small use ConVirt as the strategic solution to their virtualization management needs.

2018年七月
« 2月    
 1
2345678
9101112131415
16171819202122
23242526272829
3031