4

系列文章(二)丨构造与安装虚拟化设备

 2 years ago
source link: https://my.oschina.net/u/4238514/blog/4276037
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

系列文章(二)丨构造与安装虚拟化设备 - VMware中国研发中心的个人空间 - OSCHINA - 中文开源技术交流社区

*本文作者系VMware中国研发中心研发总监 路广

上一篇文章《边缘计算的探索与实践》总述了云边协同和设备管理的方向,本篇文章将会描述如何利用VMware的免费软件构造与安装虚拟化设备。

第二篇 构造与安装虚拟化设备

vSphere Hypervisor介绍

VMware是全球领先的虚拟化软件、混合云计算和企业用户计算方案提供商,vSphere是其核心的旗舰产品。2020年4月,VMware向全球发布了最新一代的vSphere 7.0产品(https://www.vmware.com/products/vsphere.html) ,提供更多新增功能,特别是全面支持Kubernetes的革命性的Tanzu平台 (https://cloud.vmware.com/tanzu)。

vSphere是应用广泛的虚拟化平台,不仅在服务器,在设备上运行所需的核心功能已包含进了免费产品vSphere Hypervisor (https://www.vmware.com/cn/products/vsphere-hypervisor.html) 中。

已验证的设备规范

这里讨论的是免费vSphere Hypervisor从技术上讲可运行所需要的设备规范,而不是提供商业产品级别支持的vSphere所要求的硬件兼容列表 (https://www.vmware.com/resources/compatibility/search.php)。

已验证来源于多家厂商、符合至少如下硬件规范的约20种型号设备上,从技术上讲可以运行vSphere Hypervisor。

CPU:x86-64 2+ 核心(1GHz+)、支持VT-x/AMD-V指令
内存:4GB (ECC或non-ECC)

存储:SSD/HDD/Flash 16GB

网络:1Gbps有线网卡

下载相关软件

必要软件
注意:下载之前需要先注册账号,才能获取免费的vSphere Hypervisor序列号。ISO镜像是必要的,如果需要定制化镜像,还要下载离线包。

vSphere Hypervisor

  • vSphere Hypervisor 7.0

(https://my.vmware.com/zh/web/vmware/evalcenter?p=free-esxi7) 或

  • vSphere Hypervisor 6.7

(https://my.vmware.com/zh/web/vmware/evalcenter?p=free-esxi6)

可选驱动软件
注意:因为有些设备载有Realtek或其它vSphere 6.x/7.0不提供官方支持芯片的网卡,所以需要到社区网站上自行下载。如

Realtek网卡驱动 (https://vibsdepot.v-front.de/wiki/index.php/Net55-r8168):PCIe接口的Realtek网卡
USB网卡驱动 (https://flings.vmware.com/usb-network-native-driver-for-esxi):USB接口的网卡(含主板自建的、非USB物理接口的网卡)

可选工具软件
注意:命令行和图形两种方式二选一即可。如果希望深度定制ESXi镜像,建议选择vCenter Server。
vCenter Server 7.0 (https://my.vmware.com/cn/web/vmware/evalcenter?p=vsphere-eval-7):通过图形方式构建,注册账号后可下载后免费试用60天,或利用某个已安装的vCenter实例。

VMware PowerCLI (https://code.vmware.com/web/tool/12.0.0/vmware-powercli)12.0:通过命令行方式构建

OVF Tools (https://code.vmware.com/web/tool/4.4.0/ovf) 4.4:命令行方式部署虚机镜像的工具

ESXCLI 7.0 (https://code.vmware.com/web/tool/7.0/esxcli):远程管理ESXi的命令行工具

构建适合设备的定制ESXi镜像
命令行方式
安装VMware PowerCLI的步骤省略,以下以ESXi 7.0添加USB网卡驱动为例。

增添ESXi 7.0的软件仓库

Add-EsxSoftwareDepot .\VMware-ESXi-7.0.0-15843807-depot.zip

增添USB网卡驱动的软件仓库

Add-EsxSoftwareDepot .\ESXi700-VMKUSB-NIC-FLING-34491022-component-15873236.zip

获取ESXi 7.0里的镜像规范名

Get-EsxImageProfile | ft name

从不含vmtools的镜像规范ESXi-7.0.0-15843807-no-tools复制出一份新的镜像规范ESXi7-USB

New-EsxImageProfile -CloneProfile ESXi-7.0.0-15843807-no-tools -Name ESXi7-USBNIC -vendor VMware

将USB网卡驱动vmkusb-nic-fling添加到新创建的镜像规范ESXi7-USB中

Add-EsxSoftwarePackage -ImageProfile ESXi7-USBNIC -SoftwarePackage vmkusb-nic-fling –Force

为新镜像规范ESXi7-USBNIC设置接受等级为VMwareCertified(本步骤为可选)

Set-EsxImageProfile -AcceptanceLevel VMwareCertified -ImageProfile ESXi7-USBNIC

将新镜像规范ESXi7-USBNIC导出为ISO镜像文件ESXi7-USBNIC.iso

Export-EsxImageProfile -ImageProfile ESXi7-USBNIC -FilePath ESXi7-USBNIC.iso -ExportToIso –Force

这个导出的ISO镜像文件ESXi7-USBNIC.iso既可启动安装ESXi 7.0,将其“烧“到USB盘中。

注意:现在社区提供的Realtek PCIe网卡驱动还不支持ESXi 7.0,只能定制ESXi 6.7的镜像文件,步骤类似于上面的例子。

图形方式
也可以利用vCenter Server里的自动部署(Auto Deploy)功能来定制ESXi安装镜像。这样的好处可以很容易地选择增加或删除其他集成包(VIB),即进一步压缩镜像的大小、或添加其他自动部署的Kickstart脚本。这里同样以定制ESXi 7.0镜像为例。

在这里插入图片描述

增添ESXi 7.0的软件仓库

在这里插入图片描述
在这里插入图片描述

增添USB网卡驱动的软件仓库

在这里插入图片描述
在这里插入图片描述

新建软件仓库

在这里插入图片描述

新建镜像规范,并添加USB网卡驱动vmkusb-nic-fling,删除vmtools,设定接受等级为VMware certified(可选)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:在本步骤中,可以选择删除更多的集成包以极大地压缩镜像的尺寸,比如设备上不需要的网卡(NIC)和存储卡(HBA)驱动等。如果是在ESXi 6.7镜像中添加PCIe Realtek网卡驱动,切记接受等级要选择社区支持(Community Support)。

导出新镜像。

在这里插入图片描述

这个导出的ISO镜像文件既可启动安装ESXi 7.0,将其“烧“到USB盘中。

在设备上安装ESXi镜像
连接硬件
在设备上安装ESXi镜像之前要确保该设备具有足够的硬件资源,特别是以上列出的内存(至少4GB)、硬盘(非eMMC、至少16GB)和网络(1Gbps以上有线网卡)。按照该设备的使用手册连接键盘、显示器、U盘、网线等。如配置无显示器接口,需要按设备使用手册,将适当的串口以调试方式连接至显示器。

BIOS设置
在有些设备中,即使有配置4GB内存,但显存是与主内存共享的。在这种情况下,建议在正式安装前在BIOS中把共享显存设置到最小(比如32MB)。

另外,确保在BIOS内的硬件虚拟化指令Intel Virtualization Technology或AMD Secure Virtual Machine设置于Enabled状态,而安全启动Secure Boot或TPM设置于disabled状态。

启动安装
按照BIOS的设置从“烧“好的U盘启动,在看到如下ESXi加载画面时迅速按下Shift+O键,追加内核参数ignoreHeadless=TRUE,这是为了支持Headless模式。

在这里插入图片描述
之后ESXi应该就可以像在服务器那样正常安装。待安装完成之后,会提示重新启动。

重启设置
重启之后,记得要在看到如上的加载画面时再次迅速按下Shift+O键,同样追加内核参数ignoreHeadless=TRUE。这是因为该参数还没有保存下来,而要在接下来的步骤中保存。在这次重启后,除了设置网卡地址(如果不是DHCP)之外,建议打开SSH和ESXi Shell服务以方便调试。

在这里插入图片描述

以命令行方式ssh [email protected] 登录设备后,更改并保存内核参数如下。

esxcfg-advcfg --set-kernel “TRUE” ignoreHeadless

esxcfg-advcfg -–get-kernel ignoreHeadless

验证安装成功
再次重新启动设备,这次就不用键入Shift+O调整内核参数了。现在也可以图形方式登录了。

图形方式https://192.168.0.10/
在这里插入图片描述

登录之后可以将之前下载vSphere Hypervisor时免费获取的序列号应用。

在这里插入图片描述

手工创建datastore(可选)
对于服务器等大型计算机来讲,一般配置有足够大的存储空间。安装vSphere Hypervisor即ESXi之后,通常就会自动生成至少一个可用的datastore。有了datastore之后才能够创建虚机,部署实际的边缘应用。但对于只有少量存储空间(比如<32GB的USB)的设备来说,可能会遇到安装ESXi之后没有自动创建任何可用datastore的情况。

比如:在ESXi 6.7上,安装系统后的剩余空间不会做任何分区;在ESXi 7.0上,安装基础系统后的空间会建立一个VMFSL的分区,举例如下。这个VMFSL分区实际上没有存储任何数据,而也不可当作正常VMFS分区使用。在虚拟化设备上,绝大多数情况不会使用这个VMFSL分区。我们就此将其删除,释放空间出来手工创建VMFS分区。

在这里插入图片描述

登录虚拟化设备
ssh [email protected]
获取目标存储分区表
partedUtil getptbl /dev/disks/t10.SanDisk00Ultra_Fit000000000000004C530001131021105082
这里的关键点是替换最后一项第7分区的UUID为VMFS的AA31E02A400F11DB9590000C2911D1B8,千万不要修改其他任何分区的数据。
获取coredump分区状态
esxcli system coredump partition get
解除coredump分区锁定
esxcli system coredump partition set --enable false
刷新目标存储的分区表
partedUtil setptbl /dev/disks/t10.SanDisk00Ultra_Fit000000000000004C530001131021105082 gpt
“1 64 204863 C12A7328F81F11D2BA4B00A0C93EC93B 128”
“5 208896 2306047 EBD0A0A2B9E5443387C068B6B72699C7 0”
“6 2308096 4405247 EBD0A0A2B9E5443387C068B6B72699C7 0”
“7 4407296 20971486 AA31E02A400F11DB9590000C2911D1B8 0”
在新VMFS分区上创建datastore
vmkfstools /dev/disks/t10.SanDisk00Ultra_Fit000000000000004C530001131021105082:7
现在就能看到一个新的datastore已经创建出来了,可以把它更名为datastore1。

部署边缘应用
接下来,虚拟化设备就可以用来部署边缘应用了。比如Linux基金会旗下的EdgeX Foundry项目 (https://www.edgexfoundry.org/),可以通过Ubuntu虚机镜像成功部署到虚拟化设备上去。在2019年12月的EdgeX Foundry China Day上的工作坊,已经展示过EdgeX Foundry部署在虚拟化设备上正常工作的实例。EdgeX Foundry微服务架构里的10几个容器实例都运行在虚拟化设备内的同一个Ubuntu虚机实例里。

在这里插入图片描述

如果同一个虚拟化设备在部署了一个EdgeX Foundry实例之后还有相当的富余资源,就可以再部署若干任何OS支持的其他边缘应用。比如基于Windows IoT Core的Azure IoT Edge、基于Zephyr、Wind River或QNX的“实时”控制软件、基于DOS的遗留系统、基于Android x86的展示牌应用、基于Raspbian或Ubuntu Core的现代边缘应用等。

在这里插入图片描述

有两种常见方式来部署虚机镜像:ESXi Web UI的图形方式或者OVF Tools的命令行方式。因为与其他虚机镜像的部署方式一样,这里不再赘述详细的步骤。

透传PCIe和USB设备
在虚拟化设备上部署边缘应用,可能需要设置某些PCIe或USB设备的透传(Pass-through),特别是为了连接现场的传感器、设备内的加速器或者是上云的Wifi和移动通信网卡。这些设置和在数据中心里的方式并无不同,同样不再赘述。

在这里插入图片描述

- 未完待续 -

系列文章(三)预告
以如上所述的方式,可以完成安装虚拟化设备、并在其上部署边缘应用的整个流程。这对于开发人员进行开发、测试和小规模实验是可以接受的,但考虑到边缘计算在生产环境下的部署,超大规模、无人看管、远程监控、自动更新等需求,如此手工的方式无法完全解决问题。

下一篇将介绍如何云管理大规模的虚拟化设备。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK