VCSA 6.0 升级 6.5

密码重置

  1. 重置VCSA OS GRUB密码
    http://www.unixarena.com/2016/04/reset-grub-root-password-vcsa-6-0.html
  2. 重置VCSA OS root密码
    https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2069041
  3. 重置administrator@vsphere.local的密码
    https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2146224

vCenter Update Manager迁移

VCSA 6.5开始Update Manager被集成到VCSA中,所以需要迁移工具将原来独立的Update Manager迁移到VCSA 6.5中

  1. 如果修改过VCSA的密码,最好重新配置vCenter Update Manager,并重启它
    https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1034605
  2. 在vCenter Update Manager上运行迁移工具,保持运行窗口打开状态,迁移完成程序会自动退出
    https://docs.vmware.com/cn/VMware-vSphere/6.5/com.vmware.vsphere.upgrade.doc/GUID-6A39008B-A78C-4632-BC55-0517205198C5_copy.html
  3. 确保vCenter Update Manager有足够的空余空间,迁移时会打包文件

迁移时部署大小

迁移VCSA时到选择部署大小时,发现tiny/small等小的部署大小不现实,主要是因为原VCSA存储空间消耗过多
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2148587

设置时区

升级后登录VAMI时区显示空,并且无法设置,需要SSH登录到VCSA执行

cd /etc/
rm -rf localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

Shockwave Flash crashes

这是Adobe Shockwave Flash version 27.0.0.170已知的问题,只能升级到更新的版本或者降级到老版本
https://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=2151945

 

VMware 迁移步骤

因原虚拟化平台设备已使用约9年,已经带病运行,且性能上已无法满足,因此购置了全新的一套设备准备替换。

首先对新平台设备进行安装调试,作为一个新的集群加入到原VCSA中。

如两个集群的存储互通,则虚拟机关机在新集群启动后,可以在线迁移存储,这样停机时间很短。如两个集群的存储不互通,则需要虚拟机关机才能迁移存储,停机时间较长。

新的集群采用了DVS,但是DVS需要VCSA才能管理,所以VC绝不能通过其自身管理的DVS进行通讯。DVS接管万兆网跑业务、vMotion、VSAN等流量,VCSA通过标准虚拟交换机用千兆网进行管理。

VCSA关机,用Client登录老集群VCSA所在ESXi导出VCSA,等完成后用Client登录新集群任意一台ESXi导入VCSA,会发现不能选择任何DVS中的端口组,只能选择标准交换机

VMware 下 Linux 虚拟机硬盘扩容

对VMware下CentOS7虚拟机,根分区进行扩容

  1. VMware编辑虚拟机硬件,扩容硬盘,做快照
  2. 用CentOS安装光盘引导启动虚拟机,进入救援模式
  3. parted /dev/sda,resizepart LVM分区
  4. partprobe
  5. pvresize /dev/sda3,扩充pv,sda3是LVM的分区
  6. pvs,确认pv已扩容
  7. lvextend -l +100%FREE /dev/system/root,扩充lv,/dev/system/root是lv的路径,也可能是/dev/mapper/VolGroup-lv_root
  8. vgs确认容量已扩容
  9. 对于XFS:mount /dev/mapper/system-root /mnt; xfs_growfs /dev/mapper/system-root
  10. 对于EXT4:e2fsck -f /dev/mapper/system-root; resize2fs  /dev/mapper/system-root

替换 VMware vCenter Server Appliance 5.5 证书

1. 修改主机的IP、域名、主机名符合新证书的要求,将Certificate regeneration enabled改为Yes,Reboot vCenter,再将Certificate regeneration enabled改为No。

2. 停止服务:

service vmware-stsd stop
service vmware-vpxd stop


service vmware-rbd-watchdog stop
rm /var/vmware/vpxd/autodeploy_registered

2. 把证书、私钥、证书链传到ssl/vpxd下面,文件名分别为:证书rui.crt,私钥rui.key,证书链cachain.pem,内容为证书链的逆序文件最后应该为自签名的RootCA,合并证书和证书链

cd
mkdir ssl
mkdir ssl/vpxd
mkdir ssl/inventoryservice
mkdir ssl/logbrowser
mkdir ssl/autodeploy
cd ssl/vpxd
……
cat rui.crt cachain.pem > chain.pem

3. 替换vpxd证书

cd
cd ssl/vpxd
/usr/sbin/vpxd_servicecfg certificate change chain.pem rui.key

返回VC_CFG_RESULT = 0 表示成功,如果非0请看这里

4. 替换vCenter Inventory Service证书

service vmware-stsd start
cd /etc/vmware-sso/register-hooks.d
./02-inventoryservice --mode uninstall --ls-server https://server.domain.com:7444/lookupservice/sdk
cd
cp ssl/vpxd/* ssl/inventoryservice/
cd ssl/inventoryservice/
openssl pkcs12 -export -out rui.pfx -in chain.pem -inkey rui.key -name rui -passout pass:testpassword
cp rui.key /usr/lib/vmware-vpx/inventoryservice/ssl
cp rui.crt /usr/lib/vmware-vpx/inventoryservice/ssl
cp rui.pfx /usr/lib/vmware-vpx/inventoryservice/ssl
cd /usr/lib/vmware-vpx/inventoryservice/ssl/
chmod 400 rui.key rui.pfx
chmod 644 rui.crt
cd /etc/vmware-sso/register-hooks.d
./02-inventoryservice --mode install --ls-server https://server.domain.com:7444/lookupservice/sdk --user administrator@vSphere.local --password sso_administrator_password
rm /var/vmware/vpxd/inventoryservice_registered
service vmware-inventoryservice stop
service vmware-vpxd stop
service vmware-inventoryservice start
service vmware-vpxd start

5. 替换VMware Log Browser service证书

cd /etc/vmware-sso/register-hooks.d
./09-vmware-logbrowser --mode uninstall --ls-server https://server.domain.com:7444/lookupservice/sdk
cd
cp ssl/vpxd/* ssl/logbrowser/
cd ssl/logbrowser/
openssl pkcs12 -export -in rui.crt -inkey rui.key -name rui -passout pass:testpassword -out rui.pfx
cp rui.key /usr/lib/vmware-logbrowser/conf
cp rui.crt /usr/lib/vmware-logbrowser/conf
cp rui.pfx /usr/lib/vmware-logbrowser/conf
cd /usr/lib/vmware-logbrowser/conf
chmod 400 rui.key rui.pfx
chmod 644 rui.crt
cd /etc/vmware-sso/register-hooks.d
./09-vmware-logbrowser --mode install --ls-server https://server.domain.com:7444/lookupservice/sdk --user administrator@vSphere.local --password sso_administrator_password
service vmware-logbrowser stop
service vmware-logbrowser start

6. 替换vSphere Auto Deploy证书

cd
cp ssl/vpxd/* ssl/autodeploy/
cp ssl/autodeploy/rui.crt /etc/vmware-rbd/ssl/waiter.crt
cp ssl/autodeploy/rui.key /etc/vmware-rbd/ssl/waiter.key
cd /etc/vmware-rbd/ssl/
chmod 644 waiter.crt
chmod 400 waiter.key
chown deploy:deploy waiter.crt waiter.key
service vmware-rbd-watchdog stop
rm /var/vmware/vpxd/autodeploy_registered
service vmware-vpxd restart

7. Reboot vCenter

安装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

空闲内存税的算法

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卸载了虚拟机中的备份代理,降低了备份对虚拟机的影响,使用传统备份软件平滑的过渡到对虚拟机的备份。