【Linux On Web】- 线上体验Linux

天锦 发表于 女票们的新建与保养 分类,标签: Linux云桌面Horizon View云桌面Linux On HorizonLinux On Web

一切的开始,都要从……

疫情当下,开学遥遥无期

疫情如此严重,马上四月了,我还窝在家。想必开学之后社团的线下活动学校也将不会允许。正巧在群里面看见一位朋友在问一张显卡的问题,重新勾起我我对云桌面那不太成熟的想法。GRID K2,一张英伟达设计的用于虚拟化场景的专业卡,这是一张支持GPU虚拟化的显卡,可以像CPU虚拟化那样,将GPU核心划分成独立的vGPU给虚拟机,用于视频加速和3D加速,这张显卡针对VMware Horizon云桌面进行了优化,卡上附带有H.264硬件编码单元,可以将显卡的视频输出直接进行H.264编码串流,传输给客户端。

再说Linux操作系统,很多大学的计算机类的社团都在为同学们推广使用Linux操作系统,尽可能的让同学们了解认识以及使用这个开源的自由操作系统。方法不外乎赠送Linux系统的安装光盘,安装U盘,以及亲力亲为的帮同学们安装Linux操作系统到他们的笔记本上。就赠送安装介质来说,对于一个从来没有接触过Linux操作系统的同学来说,你送给他一个安装光盘之后,独立的成功安装操作系统是相当困难的。就我们热心的同学帮助同学们安装Linux操作系统到他们的电脑上而言,每一位同学的电脑配置不一样,驱动不一样,安装的过程也很繁琐,也没有办法用于推广认识Linux系统。虽然小伙伴们都很热心,但我们好累。就没有一个黑科技一点的办法么?

Linux on Web

如此便有了Linux on Web这个想法。通过虚拟化云桌面将部署好的Linux操作系统桌面分发给同学们,使用支持HTML Access接入的Horizon客户端,来实现在网页中即可使用体验Linux桌面。正好线下活动不一定能举行,那就搞线上的吧,在线体验Linux!就这么搞!

先说一下我们协会现有的IT框架,我们有一个网站,上面有我们的会员系统,基于我们自己的系统进行的定制化的会员系统,现有的会员系统是没有办法和其他系统进行联动的,所以我们要升级我们的会员系统。正巧我们通过学校的二级子域名申请到了微软的教育版OneDrive云盘和邮箱,支持Azure域控,正巧本地的域控我们本身就有。先前在部署WDS(Windows部署服务,用于义诊时给同学们重装Windows操作系统,PXE网络启动,部署很快很方便)的时候,就已经部署好了AD域控,可以借此使用AD域账号进行统一认证。

账号的注册、修改密码、重置密码等操作在本地域控进行操作,同时使用Azure将与账户信息同步至Azure云。完成OneDrive邮箱和云盘的账户同步。

基础系统升级

我们要做的是将我们的网站系统与域控进行连接,我们的网站是使用PHP语言进行编写的,PHP语言中有一个LDAP扩展,可以方便的与域控进行连接,支持的操作包括有创建账户,删除账户以及重置密码等操作,对我们我们协会的网站会员模块动刀子是在所难免的了,不过好在模块化,改两三个函数就行了。具体的例程参照《【Linux On Web】- 升级社团网站会员系统为AD域认证

升级完会员系统之后,我们的会员账号已经添加到域控制器中,通过部署Azure,账户同步也实现了OneDrive云盘与邮箱的登录,同学们可以使用1710001@lab.pypy.fun的账户登录我们本地的电脑、OneDrive云盘和邮箱以及我们的网站。

部署虚拟化

部署虚拟化云桌面需要很多软件和硬件,硬件有服务器、支持虚拟化的显卡等,软件有VMware Horizon全家桶,包含VMware vSphere Hypervisor (ESXi)、VMware vCenter、Horizon Agent、Horizon JMP Server、Horizon View Composer、Horizon View Connection Server这些。软件获取方法为VMware官网申请评估,可以得到这些软件的安装包和为期60天的评估License。这对于Linux On Web这个活动来说足够了。

关于硬件。部署虚拟化云桌面需要多台物理服务器的支持,如何搞到多台物理服务器对于用爱来发电的社团来说着实困难一些,不过方法总是有的,可以选择拉赞助、跟老师py,找土豪社员白嫖等多种方式获得物理服务器,x79洋垃圾他不香吗。总体要求是内存一定要大,存储空间也要大,条件可以的话上固态硬盘做阵列缓存防止人多的时候爆IO。云桌面体验需要服务器有一定的视频处理能力,以保证云桌面的流畅使用。可以安装GRID K2(RMB1500左右)显卡用于视频加速,经济不济的可以上Quadro 4000(RMB250左右)显卡,以上两张显卡均不支持Linux下的vGPU独立分配,只支持vSGA,即多个虚拟机共用这一张显卡。Tesla M10、M60支持vGPU,但是一张卡要好几万……有预算的同学可以无视。

vGPU

前面讲了为了提高桌面环境的流畅,GPU卡是一定要配的。NV记这些年也一张在推进vGPU的发展,先有支持vSGA的Quadro的Q4000系列、到支持vDGA、vGPU的GRID系列,以及最近推出的Tesla M10、M60、P40、T4等新一代专业虚拟卡。具体的显卡型号见https://docs.nvidia.com/grid/9.0/product-support-matrix/index.html 总之越新的就越NB,贵也是想当然的贵……

我这万年垃圾佬肯定是200来块的Q4000勉强买得起,其他的想想就行了……

那就以Q4000为例,其他的方法也基本相似,而且越新的卡技术也就越成熟,资料也多也好找。

先上NV家官网找显卡的驱动>>

drivers1.png

drivers2.png

由于年代过于久远,只能找到ESXi5.1的驱动包,有就不错了,要啥自行车还。

下载下来的是一个zip的压缩包,解压之后得到NVIDIA-VMware-304.76-1OEM.510.0.0.802205.x86_64.vib这个文件,把这个文件上传到ESXi的数据存储中。

在ESXi管理网页中开启SSH,并用相关SSH工具登陆到ESXi服务器。

[root@localhost:~] esxcli system maintenanceMode set --enable=true    ##将主机置于维护模式
[root@localhost:~] esxcli software vib install -v /vmfs/volumes/datastore1/NVIDIA-VMware-304.76-1OEM.510.0.0.802205.x86_64.vib    ##安装驱动包,注意是绝对路径

安装成功后会提示相关信息,成功安装后重启主机,执行nvidia-smi可以看到显卡信息。

##如果你使用的是M10、M60等支持Linux桌面的新卡,建议设置使用vGPU模式而不是vSGA,vGPU模式性能要比vSGA好,我这里用vSGA真的是妥协于买不起M60。

开始搬砖啦

我们的部署架构为使用两台物理服务器,两台物理机全部部署VMware vSphere Hypervisor (ESXi)用作虚拟化支撑平台,虚拟机在上面跑着。具体划分为一台跑云桌面的管理系统也就是VMware Horizon全家桶,另一台用来跑活动用的Linux桌面虚拟机。如果活动做大了,人数多了再加就是了。

对于如何安装VMware vSphere Hypervisor (ESXi)系统到物理服务器上,作为虚拟化平台的基础,网上的资料有很多,我先前也有相关的博文可以参考,不再赘述。附上VMware官网的部署手册《VMware ESXi 安装和设置

此次活动部署平台共需要6台操作系统为Windows Server 2016的虚拟机作为平台支持服务器,分别如下:

主机名部署软件用途相关连接
ad.domain.comMicrosoft Active DirectoryAD域控
vc.domain.comVMware vCenter

vCenter Server 为配置、置备和管理数据中心中的虚拟机提供了中心点。

Link
vd.domain.comHorizon View Connection ServerHTML Access、云桌面管理Link
sql.domain.com
Microsoft SQL Server 2016Horizon相关组件数据库

cmp.domain.comHorizon View Composer

从指定的父虚拟机创建链接克隆池,从而节约存储空间。

Link
jmp.domain.comHorizon JMP ServerJMP 技术可以大大减少对于硬件容量的要求。通过Fork父虚拟机,创建内存链接,减少内存需求量。Link

部署AD域控

Microsoft Active Directory即AD域控是VMware Horizon云桌面必须安装的服务,各个管理平台要加入域,云桌面的虚拟机也要加入域!部署方法很简单,服务器管理器中选择添加角色和功能》勾选Active Directory域服务即可,系统会自动安装,安装完成后按照提示将此计算机提升至域控制器即可。

提示:这里要说一下计算机名和域的事情,要在部署AD域服务前更改服务器主机名为ad,保持在工作组WorkGroup不变,提升成域控制器后会自动成为域成员,服务器完整FQDN即为ad.domain.com

补充:不仅要安装AD DS域控制器,还要安装AD CS证书服务来使用SSL加密LDAP数据。做升级会员系统做LDAP统一认证的时候,添加账户修改密码等操作必须使用SSL加密后的LDAPS协议才可以修改信息,LDAP只能读取不能修改。安装Horizon JMP Server的时候也需要SSL加密LDAP,所以AD CS证书服务也需要部署。不能省略。

部署VMware vCenter

该服务可充当连接到网络的VMware ESXi 服务器的中心管理员。vCenter Server 为配置、置备和管理数据中心中的虚拟机提供了中心点。

除了使用这些虚拟机作为虚拟机桌面池的源之外,还可以使用虚拟机托管 Horizon 7 的服务器组件,包括 Horizon Connection Server实例、Active Directory 服务器、Microsoft RDS 主机和 vCenter Server 实例。

您可以将 View Composer 和 vCenter Server 安装在相同的服务器上或不同的服务器上。vCenter Server 会管理向物理服务器和存储分配虚拟机的情况,以及向虚拟机分配 CPU 和内存资源的情况。

可以将 vCenter Server 作为 VMware 虚拟设备安装,或将 vCenter Server 安装在 Windows Server 2008 R2 服务器或 Windows Server 2012 R2 服务器中,最好是安装在 VMware 虚拟机上。

新建一台虚拟机,安装Windows 2016操作系统,安装VMware Tools之后,更改主机名为vc,加入域domain.com。重启后使用域账户domain\administrator登入系统,挂载 vCenter Server安装光盘,执行安装。

提示:尽量使用系统默认安装,使用本机账户运行,不要指定域账号运行;SSO使用vsphere.local域,不要指定成自己的域,那个是以后可以添加的。坑基本上就这些了。

体验vCenter Server

没错,历经千辛万苦,好不容易部署好了vCenter Server,体验一下吧,把各个ESXi添加到vCenter中。体验一把克隆、模板、vMount这些功能吧。后面会用到的。

部署Connection Server

vCenter部署好了,这个时候可以放弃使用ESXi自带的Web Client,改用vCenter控制这些虚拟机了。再次新建一个Windows Server 2016 的虚拟机,打好补丁,安好VMware Tools。关机。将这个虚拟机转换成模板,再从模板克隆出一个新的虚拟机。

改主机名为vd,加入域,改用域账户登陆。

安装Horizon View Connection Server,注意勾选HTML Access。

Connection Server会作为终端Client对外提供服务器,同学们将会通过这台服务器以HTTPS的形式访问到Linux的云桌面,所以我们要将 Connection Server自签的SSL证书替换为通过CA认证的可信的证书。具体参考VMware官方文档《将 HTML Access Agent 配置为使用新 TLS 证书

以阿里云购买的SSL证书为例,下载pfx格式的证书,双击导入到服务器【证书 (本地计算机) 节点】,然后选择个人文件夹。设置证书友好名称为vdm,注意一定是vdm。并将原自签的证书删除。重启服务器。再次访问https确认证书更换成功。

另外,Connection Server作为终端门户,其网页界面是可以定制和修改的。具体参考《为最终用户配置 VMware Horizon Web 门户页面》和我们自己定制的范例《VMware vCenter与Horizon门户Web定制

试试HTML Access

在vCenter中新建一个Linux桌面虚拟机,安装好系统,先安装open-vm-tools后安装VMware Horizon Agent Linux-x86_64云桌面代理。要保证这台虚拟机可以ping通vd.domain.com,不然会提示桌面源不可用。https://vd.domain.com/admin  中添加vCenter信息,新建桌面池创建手动桌面池,远程显示协议中注意勾选HTML Access。添加 vCenter 虚拟机中添加刚才创建了Linux桌面虚拟机。完成后授权用户访问即可。授权完成后注销当前登陆并访问https://vd.domain.com/portal/webclient/index.html#/ 登陆HTML Access,可以看到刚才分配的Linux桌面。点击图标启动虚拟机,稍等片刻便可以看到Linux的桌面。注意:这里创建的是手动桌面池,用来测试能否通过网页控制虚拟机的,并不是最终的配置。

html_access_home.png


部署Horizon View Composer

坚持,胜利在望了!

Horizon 7 使用 View Composer 在 vCenter Server 中创建并部署链接克隆桌面。

在部署Horizon View Composer之前,先从模板中再克隆一个虚拟机,同样的改主机名sql,加域,改域账号登陆。下载SQL Server 2016安装光盘,挂载光盘安装SQL Server。允许window账户和ID账户均可以登陆并设置一个ID账户。创建三个数据库jmp、view、composer。开放防火墙1433端口。这一步很简单,学过数据库的同学基本都会。

再从模板中克隆一个虚拟机,同样的改主机名cmp,加域,改域账号登陆。打开系统控制面板  管理工具>ODBC数据源64位  添加SQL Server的数据库,改默认库为composer。

顺带的,到Connection Server中设置一下事件日志数据库,数据库为view。删除先前添加的vCenter信息重新添加,带上Composer服务器的信息。这样再创建自动桌面池就不会全盘克隆,只会基于父虚拟机创建一个克隆链接,用户后来的数据更改会独立存盘,从而节约磁盘空间。

部署Horizon JMP Server

同样,从模板中克隆一个虚拟机,改主机名jmp,加域,改域账号登陆。添加ODBC数据库源,设jmp为默认数据库。安装JMP Server。

提示:JMP的坑基本上都是在SSL证书上面,按照《VMware Horizon JMP Server 安装和设置指南》以及其中的《为 JMP Server 配置 TLS 证书和密码套件》指示一步一步的做,最后重启JMP服务器就能在Connection Server Console中添加成功。

最后放一张在线体验Linux的展示图片:

low_success1.jpg

low_success2.jpg

0 篇评论

发表我的评论