Veeam的备份方式

Veeam创建两种备份文件,vbk是一个完整的备份,vrb/vib是增量备份文件用来记录改变。

Reversed Incremental Backup

每次增量备份都会更新vbk文件,vbk中是最新的完整备份,恢复最新的备份只要恢复vbk就可以了。每次增量备份时vbk中修改的内容会被保存到vrb中,所以称之为Reversed,vrb中保存的不是修改的新数据,而是被覆盖的旧数据,恢复以前的备份需要将vrb和vbk合并出来。这种方法永远是增量备份,节省硬盘空间,这是磁盘上面备份的推荐方案。

Retention Policy

保留策略会立刻直接删除超期的增量vrb文件,最节约磁盘空间。

看这里的动画演示

Forward Incremental Backup

每次增量备份只将改变的部分保存成一个新的vib文件,如果需要将备份数据存储到磁带或远程,这种方法每次只要保存新的vib文件即可,或者有法规要求备份不得修改,那么这是最好的选择。显而易见,vib文件会越来越多,这会导致恢复的时候需要合并过多的vib文件,因此需要使用 active full 或 synthetic full backups 解决长链问题。

Forever forward incremental Backup

只有第一次备份时创建一个完整备份,以后备份只创建增量备份。到达所需的保留时间后,会将最早的增量备份和完整备份合并形成新的完整备份,就像完整备份向前移动一样,备份存储上只有一个完整的备份。

Synthetic Full Backup

使用active full backup是非常消耗源系统资源的过程,synthetic full backup则是使用以前的完整备份vbk和增量备份vib合并出一个新的完整备份。因为不需要读取源,因此对源系统的压力小得多。显然以后forward incremental backup会从这个新的完整备份为基础创建增量备份文件。

Transforming Incremental Backup Chains into Reversed Incremental Backup Chains

使用incremental backup时如果选择了synthetic full backups,那么就可以选择这种方式。系统只会保留一个完整备份,这个完整备份之前的备份会被转换成reversed incremental backup方式,只将被覆盖的数据保存到vrb中,完整备份之后数据还是正常incremental backup方式。

Active Full Backup

从源创建一个完整的备份,以后forward incremental backup会从这个新的完整备份为基础创建增量备份文件。

Retention Policy (forward incremental backup)

如果选择了Synthetic Full Backup或Active Full Backup,只有当一个增量备份链表的最后一个增量备份超期时才会删除整个增量备份链表。如果没有选择,则只会存在一个完整备份,每次备份将完整备份和前面的一个增量合并成新的完整备份。

看这里的动画演示

vCenter 连接 ESXi5 报Timed waiting for vpxa to start错误

用vCenter5连接ESXi5报Timed waiting for vpxa to start错误,但是用vSphere Client可以连接上去。

原因是快照太多,或者-delta.vmdk文件太多,删除一些快照并且整合(清单-虚拟机-快照-整合),特别注意VDR报快照建立失败的虚拟机。

参考:http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&externalId=2009217

安装VMware View

在vcenter上先配置sql和odbc,再安装view composer
全新安装win2008r2,再安装View Connection Server
配置vcenter和composer账号
在View Administrator中添加vcenter和composer,编辑connection server配置
创建ViewEvents数据库,并在View Administrator中添加
导入证书
keytool -genkeypair -keyalg “RSA” -keysize 2048 -keystore keys.jks -storepass secret  //生成key
keytool -certreq -file certificate.csr -keystore keys.jks -storepass secret  //生成csr
keytool -importcert -keystore keys.jks -storepass secret -alias rootCA -file rootCA.p7  //导入CA证书
keytool -importcert -keystore keys.jks -storepass secret -keyalg “RSA” -trustcacerts -file certificate.p7  //导入证书
copy keys.jks C:\Program Files\VMware\VMware View\Server\sslgateway\conf\
vi C:\Program Files\VMware\VMware View\Server\sslgateway\conf\locked.properties
keyfile=keys.jks
keypass=secret
storetype=jks
重启

安装桌面系统并按照文档要求优化,安装View Agent
创建Pools并指定权限

vSphere4升级到vSphere5

先运行vCenter Host Agent Pre-Upgrade Checker检查所有ESXi可以升级
运行vCenter安装程序,升级vCenter到5
安装vSphere Web Client,因为服务器没有装Flash,使用命令行注册
C:\Program Files\VMware\Infrastructure\vSphere Web Client\scripts\admin-cmd register https://vcenter.local:9443/vsphere-client/ https://vcenter.local administrator@local password

Update Manager导入ESXi5的iso,创建基准组,附加基准组,扫描修复

建议迁移原有数据,重建vmfs系统,而非从vmfs3升级到vmfs5;如果这样做不太现实就将vmfs3升级到vmfs5

设置一个syslog服务器用来收集esxi的日志
主机-配置-安全配置文件-防火墙 属性-勾选syslog
主机-配置-高级设置-syslog.global,tcp://172.16.1.2:514

理解 VMware 内存资源管理

在虚拟化应用中,内存是最为宝贵的资源。同CPU和存储资源管理相比,虚拟化的内存资源管理更为复杂。

一、内存回收:

VMware ESX hypervisor(管理程序)能够截获虚拟机第一次访问某内存,将物理内存填零后分配给虚拟机,但是hypervisor无法得知虚拟机中哪些内存是空闲的。hypervisor不断的将内存分配给虚拟机,当在内存超配(memory overcommitment)的情况下主机物理内存将可能耗尽,因此hypervisor需要从虚拟机中回收(reclaim)内存,ESX hypervisor使用以下机制回收内存:

  1. 透明页共享(Transparent Page Sharing):当多个虚拟机在一个主机上运行时,可能有些内存页是一样的,比如一样的Guest OS。hypervisor通过周期性的扫描内存页生成hash值在内存hash总表中查找,一旦hash匹配就会进行完整比较,确认内存页完全一样后hypervisor会删除冗余内存页以指针代之,类似于存储中的重复数据删除功能。当某虚拟机对共享内存页试图写时,hypervisor会复制一个这个虚拟机的专有页来修改,保证共享页不被破坏。这种内存回收的速度取决于扫描的速度,在ESX(i)的高级设置中可以设置扫描速度和时间间隔。所以最好将相同或者相近的OS部署在一台host上面,以便更好的使用TPS节省内存。
  2. 气球膨胀(Ballooning):由于hypervisor无法得知虚拟机中哪些内存是空闲的,因此依靠VMware Tools在Guest OS中的气球驱动(balloon driver)来回收内存。当需要从该虚拟机回收内存时,气球膨胀从Guest OS中请求内存,分配给气球驱动的内存可被hypervisor安全的回收,Guest OS自行决定将哪些内存swapping交换到硬盘上以保证分配给气球驱动内存。显然需要安装VMware Tools才能实现气球回收内存,通过这种方式回收内存较慢,依赖于Guest OS内存分配的速度。
  3. 内存交换(Hypervisor Swapping):当虚拟机启动时就会创建一个内存swap文件,文件大小为最大内存交换量(虚拟机配置内存-内存预留)。当上面两种回收方式不能满足需求时,hypervisor会进行swapping将虚拟机的物理内存交换到硬盘上。hypervisor并不知道将哪些内存交换好,Guest OS也不知道哪些内存被交换了,这将极大的影响虚拟机的性能,当出现这种情况时说明需要加内存了。
  4. 内存压缩(Memory Compression):这是4.1的新功能,对内存的交换的优化。如果swapping的内存页是可压缩的,则将其压缩后存储在压缩缓存区中,这样再次访问这个被swapping的内存时仅需要解压缩,而不是从硬盘读取,这将快的多。不能压缩或压缩缓冲区满则会与硬盘进行真正的swapping。在ESX(i)的高级设置中可以设置压缩缓存的大小等。
  • 当主机可用内存高于等于6%时,hypervisor仅使用透明页共享回收内存(当没有设置虚拟机内存限制时)。如果虚拟机设定了内存限制,则hypervisor使用ballooning甚至swapping回收内存直到低于限定值。
  • 当主机可用内存接近4%时,hypervisor使用ballooning回收内存,一般情况下可以及时的回收内存,让可用内存保持在4%以上。
  • 如果ballooning不足以回收内存,主机可用内存接近2%时,hypervisor在ballooning回收内存的基础上增加使用swapping(并激活内存压缩)加速内存回收,让可用内存保持在4%以上。
  • 罕见的当主机可用内存只有1%时,hypervisor除了继续使用ballooning和swapping回收内存,还禁止所有虚拟机申请更多内存。

二、虚拟机内存分配

VMware ESX(i)提供了三个参数来控制虚拟机的内存分配(虚拟机设置-资源-内存)

  1. “限制(Limit)”限定了分配给虚拟机物理内存的上限,如果虚拟机使用的内存超过该限定值则hypervisor强制回收内存,默认是无限制,即已虚拟机内存大小为限。虚拟机硬件设置中的内存对于大多数Guest OS是不能热添加的,有的能热添加但是要使用添加的内存还要重启Guest OS,只有少数Guest OS能热添加并使用的,因为这个需要Guest OS识别,因此对Guest OS要求高。但是内存限制可以在虚拟机运行时随意的调整,Guest OS无需感知是透明的。
  2. “预留(Reservation)”是保证分配给虚拟机最低物理内存的下限,即hypervisor至多从虚拟机回收内存到预留值为止,不再继续回收,保证一个基本的内存可避免性能降低到无法忍受。
  3. “份额(Shares)”是当主机内存过量使用时,虚拟机可获得的物理内存是通过一个公式计算得到的,份额是其中一项。默认份额=虚拟机内存*10。
  • 公式:ρ=份额/(活动内存+k*空闲内存),ρ就是该虚拟机可获得物理内存比例的分子,分母是所有虚拟的ρ的和。
    k是惩罚因子,k=1/(1-IMT),IMT为空闲内存税(Idle Memory Tax),默认IMT=75%,即k=4,IMT值可以在ESX(i)的高级设置中修改。
    显然份额越大,活动内存比例越高则ρ越大,可获得的物理内存越多。hypervisor从ρ最小的虚拟机开始回收内存。

参考文献:
Understanding Memory Resource Management in VMware ESX 4.1

空闲内存税的算法

vMA 配置 FastPass

  使用vMA管理ESX/ESXi的时候每条命令都需要输入–server 192.168.1.101 –usarname root,很是麻烦。其实可以使用vifp让vMA记住这些服务器的用户名密码。

使用下面的命令添加服务器,并输入root的密码。
vifp addserver 192.168.1.101 --username root
vifp addserver 192.168.1.102 --username root

使用vifp listservers可以显示在FastPass中的所有服务器:
[vi-admin@localhost ~]$ vifp listservers
192.168.1.101 ESXi
192.168.1.102 ESXi

使用vifptarget -s设置需要操作的主机,设置后所有的操作都针对此主机,使用完后可-s一个新的主机,或者-c退出。
[vi-admin@localhost ~]$ vifptarget -s 192.168.1.101
[vi-admin@localhost ~][192.168.1.101]$ esxcfg-ntp -l
Configured NTP servers:
192.168.1.1
[vi-admin@localhost ~][192.168.1.101]$ vifptarget -s 192.168.1.102
[vi-admin@localhost ~][192.168.1.102]$ esxcfg-ntp -l
No NTP servers configured.
[vi-admin@localhost ~][192.168.1.102]$ esxcfg-ntp -a 172.16.170.1
Configuring 172.16.170.1 as NTP server.
[vi-admin@localhost ~][192.168.1.102]$ esxcfg-ntp -l
Configured NTP servers:
192.168.1.1
[vi-admin@localhost ~][192.168.1.102]$ esxcfg-ntp -s
Stopped NTP service on host.
[vi-admin@localhost ~][192.168.1.102]$ esxcfg-ntp -r
Started NTP service on host.
[vi-admin@localhost ~][192.168.1.102]$ vifptarget -c
[vi-admin@localhost ~]$

VMware 网卡故障转移和负载均衡

  默认配置下只要vSwitch中有一个以上的网卡,则可进行故障转移,如果有一个以上的网卡设为活动则可进行负载均衡。但是基于源端口和源MAC hash负载均衡是不完善的,对于出站流量基于源端口(虚拟机的网络端口)进行负载均衡,即每个虚拟机的网络端口对应一个Host的物理端口,出站是这个端口显然入站也是。如果一个Host的主要网络流量均由一个虚拟机的一个网络端口产生,且虚拟机的虚拟网卡很多都是10G而Host的网卡很多都是1G,那么这样的负载均衡基本没有意义了,虚拟机一个网络端口的速度不可能大于Host的一个物理端口的速度。

  为了实现更佳的负载均衡,修改vSwitch的负载均衡为基于IP hash,这样出站流量将根据源和目标IP选择链路,同时需要在Host的物理端口连接的交换机端口上配置Etherchannel以便负载均衡入站流量,只有这样才可能使虚拟机一个网络端口的速度大于Host的一个物理端口的速度,虚拟机的万兆虚拟网卡才更有意义。

理解和使用VMware Data Recovery和VMware Consolidated Backup

VMware Data Recovery是VMware在vSphere Essentials Plus及其以上版本提供的一个备份方案,VMware Consolidated Backup是VMware在vSphere所有版本上提供的一个备份代理。首先详述一下VMware Data Recovery。

从VMware获得的VMware Data Recovery (VDR)包括一个虚拟机OVF模板文件,一个vSphere Client的插件,以及用于文件级恢复的工具。首先部署VDR虚拟机OVF模板,VDR启动后登陆控制台改一下IP地址和root密码即可,然后安装Client的插件。如果是从老版本升级,则首先卸载备份文件存储,然后先删除旧的VDR虚拟机和Client插件再安装新的。插件装好后,在vSphere Client的 主页 – 解决方案和应用程序 – VMware Data Recovery 连接上VDR虚拟机,首次连接会自动进入入门向导,先设置连接vCenter Server的用户名密码,再配置备份目标(CIFS共享),就完成了基本设置。存储备份数据的备份目标除了CIFS共享,还可以是挂载在VDR虚拟机上的磁盘,在 配置 – 目标 中点挂载即可自动将VDR虚拟机的磁盘加入到备份目标中。下面就是新建一个备份作业了:1. 在备份页点新建;2. 给备份作业命名;3. 选择需要备份的虚拟机,这里的备份粒度是虚拟磁盘,而不能再细分,虚拟机快照也是如此;4. 选择备份目标,在刚刚的入门向导里面设置的;5. 选择备份时间段,VDR将在选定的时间段执行备份;6. 设定备份保留策略;7. 完成备份作业的建立。

在备份作业选定的时间,当然也可在备份作业上右键选择立刻备份,VDR与vCenter Server一起自动备份选定的虚拟机。首先VDR创建一个所备份虚拟机的临时快照,快照就是快照创建时刻虚拟机硬盘的镜像,快照后虚拟机照常继续运行,VDR就是备份这个快照,备份完成后VDR会删除备份之初建立的临时快照。备份过程中VDR会基于数据块进行重复数据删除,因此VDR将耗尽分配给它的所有CPU和绝大多数内存资源。在还原页,可以选择备份虚拟机的某一个过去的备份来还原,还原时即可覆盖已有同名虚拟机,也可以还原成一个新的虚拟机。还原的虚拟机就如同备份时刻突然掉电一样,因此启动后可能会有类似的报警,最好进行一些一致性检查,如果备份时虚拟机是关闭的则无这个问题。备份和还原的进度和日志,可以查看报告页的相关信息。

VMware Data Recovery的备份和还原是凌驾于虚拟机之上的,因此无论虚拟机系统是什么样子的,VDR都将他作为一个整体来备份,不需要在虚拟机内安装任何代理程序,也不需要关心虚拟机的操作系统、文件系统等,提供了最大的兼容性和重要的重复数据删除功能,虚拟机对备份和还原基本是不可感知的。VDR的备份就如同备份时刻是将RAID1阵列中双盘中的一个盘直接抽出来保存起来,恢复时直接用这个盘启动系统。也因为这样可能会在一致性方面出现问题,特别是当被还原的虚拟机不是独立的,而是和其他虚拟机配合一起工作的时候,比如用VDR恢复域中的一个DC,则会造成USN回滚而不能和林中的其它DC同步。VDR为小规模虚拟化提供了一个简便的、基本的备份解决方案,虽然不像专业备份软件那么强大,但是对于一个小规模环境一般是足够用了。每个VDR可以备份100个台虚拟机,但同时只能并发备份8台,备份密度最高为天,VDR1.2起每个vCenter Server支持10个VDR,CIFS做为存储目标最大500GB,挂载的磁盘做为存储目标最大1TB,只能挂载两个备份目标,备份目标不能是磁带。

再来说说VMware Consolidated Backup (VCB),它是一个备份代理,本身并不具备备份的功能,需要第三方备份软件来配合。VCB对要备份的虚拟机创建快照后,基于此快照配合第三方软件进行文件级(仅Windows)或镜像级备份,VCB将虚拟机的数据集中映射到VCB备份服务器上供第三方备份软件使用,备份完成后删除快照。使用VCB时,对于Windows虚拟机可看到虚拟机里的文件都出现在VCB备份服务器上,对于任何操作系统虚拟机则看到虚拟机镜像出现在VCB备份服务器上,可以使用传统的熟悉的方式来备份这些文件。VCB卸载了虚拟机中的备份代理,降低了备份对虚拟机的影响,使用传统备份软件平滑的过渡到对虚拟机的备份。

安装升级VMware vSphere 4.1

vCenter Server从4.1开始只支持64bit,但是并不是全部都在C:\Program Files\VMware\Infrastructure,C:\Program Files (x86)\VMware\Infrastructure\VirtualCenter Server\VMwareVCMSDS也是属于vCenter Server 4.1的。

vCenter Server和Update Manager均可从4.0版本升级,安装的时候会有升级提示。Update Manager升级后要求reboot。
vSphere Client和插件则需要先全部卸载,然后再安装新版本的。

物理机硬盘性能和VMware虚拟机硬盘使用裸机映射(物理)、裸机映射(虚拟)、VMFS虚拟磁盘性能测试

  测试数据太多了,就不贴了。简而言之就是物理机直接装Windows通过ServeRAID 8k-l访问本地硬盘最快。物理机直接装Windows通过SAN访问和VMware虚拟机通过裸机映射(物理)、裸机映射(虚拟)、VMFS虚拟磁盘访问基本没有什么大的差别。另VMware裸机映射(物理)和裸机映射(虚拟)可以相互转换,而且不会丢失数据,在移除裸机映射的时候可以选择“从虚拟机中移除并从磁盘删除文件”,这里删除的是LUN映射的磁盘存储。

测试环境:
IBM X3650
IBM DS3400
VMware ESXi 4.0.0 193498 (VMFS 3.33)
Windows Server 2008 Enterprise SP2 X86
Iozone 3.321