亚马逊AWS官方博客

EDA on AWS ——远程接入解决方案 OpenText ETX 篇

1.概述

EDA行业当前主要采用Linux系统作为开发、测试和验证的系统平台,企业为方便统一管理及提供员工工作所必需的性能,通常采用集中采购服务器的方式进行环境构建,员工通过远程接入工具使用图形界面接入Linux 服务器,进行字符界面操作或板图设计。EDA行业客户需要确保企业保持员工的使用体验同时需要满足安全以及各地员工的协同开发和设计。

由于疫情的蔓延,导致企业本地资源的创建以及接入等限制,正在影响企业的业务开展,因此更多企业将本地负载运行在云上,利用云的便利解决资源快速创建、快速交付,满足业务的需求,但随之而来的问题是大量的云采纳导致全球互联网资源紧张,同时通过互联网交付半导体的图形界面具有更高的要求,也带来了更到的挑战,在疫情期间,如何快速的实现员工远程接入,同时提供高质量的图形界面接入以及保障用户的使用体验,已经成为企业面临的一大挑战。本篇博客将介绍业界领先的远程接入方案OpenText Exceed TurboX在AWS上的部署,满足企业关于资源、安全、高效协同以及一致性用户体验的图形接入需求。

2.Exceed TurboX介绍

开始在AWS上部署Exceed TurboX之前,先介绍一下相关基础信息。Exceed TurboX(简称ETX)是OpenText公司20世纪90年代推出的Exceed以及21世纪初推出的Exceed OnDemand之后的第三代架构,为用户提供基于Unix(包含Linux)或Windows的远程接入,支持2D及3D应用。EDA设计行业通常采用基于Linux的 服务器进行开发、测试和验证,企业需要为员工提供高效的X-Window和Shell接入Linux服务器,保障企业的信息安全同时能够进行统一管理,降低管理复杂度和运维压力。

3.Exceed TurboX on AWS

3.1 准备工作

本文重点介绍ETX在AWS上的安装配置,本文假设有关VPC、EC2、LDAP配置、EDA群集等操作已经完成,这部分内容不包含在本文内,后续EDA On AWS系列文章中逐步介绍。

3.1.1 EC2资源准备

服务器角色 实例类型 系统 备注
ETX-Server C5.large CentOS7 可通过ELB负载均衡
ETX-Connection Node C5.large 支持群集
LDAP-Server C5.large 提供环境中的LDAP服务
EDA-FPGA C5.2xlarge EDA主机

ETXserver 和 node 本身占用的资源和硬盘空间并不大,用户可以根据自身条件相应 修改;
如果用户运行的应用占用大带宽,在带宽不够的情况下 node 会消耗部分内存、CPU 来填补, 所以 node 的内存和 CPU 可以相对的配置高一些。此外也可以将Connection Node直接安装在EDA主机上,用户可根据自身企业管理需求进行决策。

注:如为熟悉和实验ETX,以上角色可通过一台服务器进行安装配置。

3.1.2 申请用于ALB终结HTTPS的证书

AWS北京和宁夏Region已经提供ACM进行公有证书的申请(etx.xxx.com)。详细信息参考https://docs.amazonaws.cn/acm/latest/userguide/gs-acm-request-public.html

3.1.3 VPC 安全组设置

按照如下通信需求进行安全组设置

 

3.1.4 软件介质

介质名称 用途
etxserver-12.0.1.5877-sp1-linux-x64.tar.gz ETX Server安装介质
etxcn-12.0.1.5877-SP1-linux-x64.tar.gz ETX Connection Node安装介质
License文件 测试license文件

 

3.2 架构图

 

3.3 ETX Server 安装配置

3.3.1 解压介质

将介质上传到服务器上并进行解压tar -zxvf etxserver-12.0.1.5877-sp1-linux-x64.tar.gz

3.3.2 查看默认配置

在启动 ETX 服务器之前,可以在解压后的文件介质目录运行bin/etxsvr config检查etx默认配置列表以决定是否需要进行更改 (更改端口以避免端口冲突)。  本文采用ALB进行HTTPS终结,ALB到ETX服务器之间采用HTTP通信,使用默认端口8080。

3.3.3 设置开机启动

bin/etxsvr bootstart enable

3.3.4 启动服务

bin/etxsvr start

至此服务器安装完成,接下来通过Web界面进行服务器的初始设置。在进入到Web界面前需要先完成ALB的配置,以便管理员可以通过互联网进行ETX Web配置。

3.4 创建ALB并绑定证书

当前北京和宁夏 区域暂时无法通过Web console完成ALB https的完整配置,需要通过命令行绑定证书。接下来通过AWS CLI完成ALB的创建,有关CLI的安装及配置参见https://docs.thinkwithwp.com/zh_cn/cli/latest/userguide/cli-chap-install.html

3.4.1 创建ALB

根据实际情况修改命令中红色参数

186590ce76db:Downloads tianlo$ aws elbv2 create-load-balancer –name my-load-balancersubnets subnet-1a735b50 subnet-24b9755f –region cn-northwest-1

命令执行成功后请记录输出结果中的”LoadBalancerArn”和”DNSName”两项对应的值,后续将使用。

3.4.2 创建Target Group

根据实际情况修改红色参数。

186590ce76db:Downloads tianlo$ aws elbv2 create-target-group     –name my-targets1     –protocol HTTP     –port 8080     –target-type instance     –vpc-id vpc-f38e3f9a  –matcher HttpCode=302   –region cn-northwest-1

命令执行成功后请记录输出结果中的”TargetGroupArn”对应的值,后续将使用。

3.4.3 通过ETX server EC2实例id注册到Target group

186590ce76db:Downloads tianlo$ aws elbv2 register-targets –target-group-arn “上文记录的TargetGroupARN值” –targets Id= “ETX Server的instance-id” –region cn-northwest-1

此命令执行成功后不会有输出。

3.4.4 创建监听器并绑定证书(需要证书的ARN)

根据实际情况修改命令中红色文字

186590ce76db:Downloads tianlo$ aws elbv2 create-listener     –load-balancer-arn “上文记录的LoadBalancerArn的值” –protocol HTTPS     –port 443     –certificates CertificateArn=“通过ACM申请的证书ARN” –ssl-policy ELBSecurityPolicy-2016-08 –default-actions Type=forward,TargetGroupArn=“上文记录的TargetGroupARN值” –region cn-northwest-1

至此完成ALB的创建。需要在DNS服务器上创建CNAME记录etx.xxxx.com,指向本节创建的ALB的DNS Name(在3.4.1创建ALB结果中记录的my-load-balancer-166331215.cn-northwest-1.elb.amazonaws.com.cn).

3.5 ETX Server初始化

进入网页设置,https://etx.xxxx.com/ ,首次登录时需要接受用户协议,点Accept即可。

设置内置管理员账户(etxadmin)密码,这个内置管理员只能进行初始化设置,后续管理及应用分发需要添加一个管理员进行操作,设置完初始化密码后,点击“continue to login page”,使用 etxadmin 用户登录,server 初始华完成。

3.6 集成LDAP

ETX支持多种授权模式,本文采用OpenLDAP进行集成授权,有关ETX支持的授权模式可参考本文附录一的Authentication部分。

 

点解通过测试后,点击save,完成与LDAP集成。Bind as 可以选择sevice account(主要是Windows AD使用),也可以选择authenticating user。如果测试环境也可以使用Anonymous。

3.7 添加管理员及用户

管理员可以是LDAP中的普通用户lsfadmin,仅是ETX Server的管理员。按照下图完成配置。保存即可,添加普通用户lsfuser01(LDAP中已存在用户)也按照本节步骤完成。

 

3.8 激活license

 

ETX license为并发license。至此完成ETX Server端的基础配置工作。

3.9 ETX Connection Node安装

ETX Connection Node支持Linux和Windows,有关系统兼容性信息可参考本文附录一System Requirement部分。EDA相关工具及群集主要运行在Linux平台,本节将介绍Linux Node的安装配置,有关Windows 节点安装可参考本文附录一Windows平台Connection Node安装部分。

  • 将 node 安装包放到安装目录,并解压tar -zxvf etxcn-12.0.1.5877-SP1-linux-x64.tar.gz , 解压后进入文件目录cd etxcn
  • 在当前目录下执行安装 bin/install进行etx conection node 安装
  • 点击Enter Review 用户协议并输入Y接受
  • 全新安装,输入n,不进行现有环境迁移
  • 输入n,不创建etxproxy和etxstart这两个账户,通过LDAP认证。
  • 输入Connection Node监听端口号,采用默认5510即可。端口号可修改,不存在冲突即可。
  • 输入Y或点击Enter,允许开机启动
  • 点击Enter,不进行SSR(server side rendering)配置
  • 点击Enter,启动服务
  • 点击Enter,暂时不注册Node,稍后通过ETX Server 控制台进行注册。
  • 完成Connection Node安装,重启Node服务,输入bin/otetxcn restart。

可以通过安装多台Connection Node,提供冗余,接下来将介绍通过NLB进行Connection Node的安全防护及负载均担。

3.10 创建用于客户端链接Connection Node群集的NLB

NLB创建的具体步骤参见官方链接

https://docs.thinkwithwp.com/zh_cn/elasticloadbalancing/latest/network/create-network-load-balancer.html

Schema 选择 Internet-facing,监听协议选择TCP,监听端口填写5510。创建新的目标组并将完成安装etx connection node的实例添加到目标组中。记录创建的NLB的DNS Name,接下来在ETX Web界面注册Connection Node需要使用。

3.11 注册Connection Node

返回ETX Server管理控制台,使用前文新增的管理员登录。按照下图指引进行注册。

 


 

3.12 目标主机配置(EDA Cluster中Linux服务器配置)

目标主机采用FPGA Developer AMI 1.8.0 – pre3-fd9b0d4d-50cf-4279-b702-f5bcd4ef269b-ami-034dbdc21ad885078.4 (ami-095db97814318cb72),进行测试。在使用此AMI启用EC2主机前,需要在MarketPlace里边订阅此AMI. FPGA主机同样通过LDAP管理。

3.12.1 EC2上安装GUI软件包

默认EC2安装完成后无GUI相关安装包,参考如下方式安装GUI

sudo yum -y update

sudo yum groupinstall -y “Server with GUI”

sudo systemctl set-default graphical.target

sudo systemctl default

可以使用systemctl status gdm查看GUI服务的运行状态。

运行yum -y update后,系统可能默认开启iptables和selinux。

sudo systemctl status firewalld 如果显示active则为开启状态

sudo getenforce 如果显示Enforcing则为开启状态

可以通过如下命令关闭,如需设置防火墙放开相应端口,请查阅Linux相关命令。

sudo systemctl stop firewalld

sudo systecmctl disable firewalld

sudo setenforce 0  临时关闭

永久性关闭(这样需要重启服务器后生效)vi /etc/selinux/config把 SELINUX=enforcing 注释掉:#SELINUX=enforcing ,然后新加一行为:SELINUX=disabled保存,关闭,重启系统。

3.12.2 配置XDMCP

配置服务器支持XDMCP接入,在文件/etc/gdm/custom.conf中添加一下内容

[security]

AllowRemoteRoot=ture

[xdmcp]

Enable=true

Port=177

DisplaysPerHost=500

使用命令service gdm restart 或者systemctl restart gdm,重启GDM服务

3.13 配置并发布远程接入给用户

3.13.1 管理员创建XDMP-query

以管理员身份登录ETX web界面,选择SDMCP-Query Profile,复制一个新的profile,参见下图。

 

输入名称,此处命名为XDMCP-Query Connection Tool,并点击save


创建链接工具Profile

点击1的按钮(启动),会进入如下界面

出现一个Active的Session,并提示使用客户端打开。首次使用ETX时,会提示下载并安装客户端,用户也可以通过etx控制台右上角⚙️,user settings中的Client setting进行下载。

链接目标主机,输入目标主机IP地址,点击OK进行链接。输入LDAP中的用户lsfuser01及密码,登录到主机,能够正常出现登录界面,证明profile工作正常。

至此,完成用户的Profile设置及验证,接下来管理员将profile分配个用户。

3.13.2 分配Profile

按照下图切换到Profile分配界面,进行分配

 

在弹出的窗口选择要将此profile分配给的用户,注意LDAP用户需要添加到ETX的用户里边,具体操作参见本文前边LDAP集成,添加管理员和用户部分,点击OK完成Profile分配,被分配的用户可以登录ETX Web界面,进行验证。

 

3.14 用户验证

浏览器输入https://etx.xxxx.com/,输入刚刚分配了Profile的用户名密码进行登录。

 

登录之后,已经能够看到被分配的Profile。启动Profile,验证登录目标主机。

 

至此完成基于XDMCP -Query协议的发布及用户登录,在实际场景中,用户已经可以通过互联网或企业内网使用目标EDA Linux服务器。

3.14.1 运行一个Vivado Sample 工作流,验证体验

打开一个Terminal,输入vivado,回车启动vivado

 

点击open example project,按照指引选择 Configurable MicroBlaze Design 作为例子,其他默认。

 

现在示例项目已经加载完毕,可以运行完整的工作流,最终显示Device视图和Synthesized Schematic

 

 

本篇作者

刘天龙

AWS解决方案架构师,负责支持客户完成各种Workload在AWS上的架构设计,加入AWS之前先后服务于运营商、电力等大型企业,以及Microsoft和Citrix等外企,熟悉大型网络构建及优化,迁移上云及容灾等解决方案

黄诚智

AWS解决方案架构师,负责基于AWS云计算方案架构的咨询和设计,在国内推广AWS云平台技术和各种解决方案。在加入AWS之前曾任职于CA,Sun和Citrix等多家大型跨国IT企业,超过24年的通信,金融企业应用系统开发和IT架构经验。