前言
一年前写过一篇《浅谈芯片公司的IT工作》的小文,写了一些关于IC公司IT建设的看法,现在想再做一些补充。
与传统公司及互联网公司不同,IC公司有自己特殊的IT业务场景,本文会再围绕IT架构建设来谈谈一些建设意见,如有雷同,纯属抄袭。
整个IT架构的建设把它分成5个区块
- IT基础架构:机房、服务器、网络、存储,是公司最重要的数字资产,这里面也分为基础架构和研发CAD架构,与研发息息相关,提供了设计底层计算存储资源;
- IT桌面与IT服务台:主要是IT helpdesk相关,包含了办公室弱电机房,办公上网,视频监控,门禁,会议,打印机,考勤系统,及时通讯等;
- OA系统与IT流程:随着公司的发展,财务、人事系统,网站、OA与流程的建设也会越来越重要,负责建设相关的系统也需要有专门团队负责;
- 信息安全:对信息安全制度的建立,搭建信息安全预防手段,负责员工的行为审计,确保公司的信息安全,前期公司一般无专人负责,可由网络工程师兼任,与传统公司相比,芯片公司的信息安全建设更加迫切;
- 研发及CAD系统支撑,EDA工具的使用培训,问题分析,软件优化,流程分析,构建,制定,排错,lsf,linux支持等,前期一般由系统管理员兼任,专职CAD工程师专业性更强,一定规模的IC公司需要;
人员管理:
很多公司会把IT人员不做细分,每个人都干着重复又相互矛盾的工作,其实对于个人或者公司来说都是非常不利,对于个人而言什么都得干,无法专精于投入某个方向,对于公司而言,出了问题找不到具体负责人,利于产出结果导向的工作大家抢着做,责任大不好处理的工作相互推诿,时间久了会导致大家相互踢皮球。
当然以上纯属个人观点,每个公司要根据不同的发展阶段和实际情况来配备人员。
研发环境建设特点
- 部署大量物理服务器用于EDA仿真计算,而非虚拟化,对cpu,mem,disk要求非常高;
- 设计服务器往往有几百上千台,要采用集群负载均衡软件来实现自动调度,而不是人工协调调度;
- 部署专业的企业级存储,设计过程中EDA工具产生大量非结构化数据,对存储要求高,传统的nfs服务器已经无法满足iops要求,需要有专业的企业级存储集群支持;
- 核心网、接入和防火墙设备等关键路径采用HA,避免单点风险,数据中心核心网络一般需要40G ,100G带宽;
- 重视信息安全,研发客户端更多采用双操作系统接入(办公与研发),用户接入中间可以可以使用VDI 虚拟桌面;
- 研发人员常采用linux桌面接入工作,接入桌面(mate xfcae gnome)接入工具(ETX, Nomachine,VNC)也采用了多套,实现集群部署,避免单点;
- Helpdesk与高一层 Level 支持需要分离,基础支持,需要有专人负责,否则负责系统的人员处理太多基础问题,会非常疲惫,基础办公和研发IT环境要分离,需要有不同的 team 负责;
- 设备和软件的采购更多,要由专门的采购负责,IT team 和 CAD Team 只需要提供需求,配合为主,并且随着研发的进度会设备的采购需要非常敏捷的支持,否则会影响研发进度;
- 全国化与全国化的办公场景较多,也会有许多外包人员移动办公,多个site;
IT team
IT部门定位
IC公司的IT和EDA是属于两个不同的方向,在小的IC公司中一般对IT和EDA(CAD)没有严格区分,很多时候是同一个团队的工程师来做IT和EDA的工作。实际上在工程师眼里还是有区分的,IT主要负责基础设施建设包括网络,系统、和存储等,同时还需要兼顾办公网络的所有需求,EDA主要负责研发系统的所有内容,负责软件EDA相关的工作,在现有的基础设施基础上,通过部署或者二次开发为IC设计人员提供各种工具,工艺库以及应用。在IC公司前期IT工程师的工作比较重要,需要建立稳定的IT环境,后期EDA工程师比较重要,在EDA工程师的支持下能大大提高IC设计的效率,加速IC设计的过程。EDA和IT架构以及芯片设计密不可分,他们之间的关系用下图表示会比较直观。
IT基础设施机房选择
目前机房主要有三种选择: 自建机房、Hosting 托管机房、云计算;
- 首先是传统的自建机房,大部分小公司都是自建的一个简单机房,一般是办公室在一起,独立房间,普通空调。这样的好处是快捷,成本低,缺点是标准低,容易故 障,难扩充。
- 其次,托管机房,优点是:自己不需要去管机房的基础设施,基础设施等级一般都有T3。缺点是:设备维护不方便,一般远离公司,基础设施由别人管理,安全性存疑,机房到办公室要有单独的专线连接,否则无法保障网络效率。
- 最后,就是云计算,当前国外 aws、azure,国内的阿里、华为等,都在推云上跑 EDA。 云计算优点:按需扩展,不需要自己管理基础设施。缺点:服务器和存储都是云计算商的, 安全存疑,从公司访问云计算中心,要通过公共网络,带宽要满足要求。 如果是长期高性能计算,成本将比自建和 Hosting 都要昂贵很多。适合短期突发需求和计算任务较少的初创公司。
自建数据中心要求
- 容灾备份:具备快照、冷备、热备、异地备份
- 机房功能分区:设计环境与生产办公网络隔离
- 运营商接入:有条件的具备电信、联通、移动,至少两条线路的冗余
- 配电与照明:-
- 空调与通风:-
- 综合布线:-
- 消防与气体灭火:-
- 安全防范与监控:独立部署的机房门禁与360度无死角视频监控
多点机房布局
随着企业规模壮大,需要考虑数据安全容灾备份需求,防止一个机房出现意外灾害导致的数据丢失。
- 容灾备份:完善的数据备份与数据容灾机制可以确保数据的安全,比如 snapshot,存储热备,异地数据灾备技术;
- 机房建设要求:两地三中心,两个城市,3个数据中心-主数据机房,备数据机房,备份机房
- 机房功能分区:设计环境,生产环境,数据双活/备份中心
- 三大运营商接入(电信、移动、联通、BGP)
- 配电与照明:-
- 空调与通风:-
- 综合布线:-
- 消防与气体灭火:-
- 安全防范与监控:-
网络架构规划
推荐两种架构:生产办公物理隔离, 生产办公逻辑隔离
生产办公物理隔离网络架构
- 将网络划分为研发网络与办公网络的独立两套网络,两套网络在物理层面完全隔离;
- 网络权限,行政人员可以访问互联网和办公网络,研发人员只允许在研发区域访问研发网络,研发电脑不允许链接互联网;
配置情况:
- 研发人员设计两套终端设备,笔记本与主机,笔记本用于沟通、开会、访问互联网等;主机有线接入用于研发人员接入服务器;
优缺点:
- 优点:信息安全管控严格,数据泄密风险较低;
- 弊端:一定程度影响研发人员工作效率,需要在两套网络之间切换;
生产办公逻辑隔离网络架构
网络区域划分
根据功能定位来划分网络区域:通过网络策略和防火墙策略实现逻辑隔离
- 红区(研发设计环境):主要是IC设计前端、中后端、验证团队:设计环境服务器,需要具备研发权限账户,可以接入云桌面,通过云桌面访问设计linux桌面服务器,数据进出需要通过流程审核;
红区服务器需要与黄区服务器逻辑隔离;
研发:只允许通过vdi(云桌面)访问设计环境,数据不存放在用户本地;
用户数据导入、导出需要通过文件流转系统审批;
运维人员:运维root,sudo权限需要由堡垒机统一接入,做权限管理和行为审计;
网络运维、服务器系统运维、安全运维 权限分开管理;
- 黄区(办公系统及OA网络):主要是oa类办公系统和软件团队测试机等环境:内部网络与vpn可以直接访问,有一定的安全策略,信息安全等级不高的业务;
- 绿区 (site办公&终端) :主要是办公网,员工PC网络接入区域,可以访问互联网;
用户端需要安装桌管、准入、DLP系统;
用户接入访问规则及权限划分:
访问规则:
办公室访问:无需登录vpn,连接办公室有线无线,安装桌管系统完成身份准入认证后可以连接相应的网络;
移动办公访问:需登录vpn,安装桌管系统完成身份准入认证后可以连接相应的网络;
权限规则:根据员工的账户信息
1.no permission:无权限账户,如Guest,不允许访问任何内部应用;
2.oa access:公司普通用户权限,例如行政人员可以直接访问到黄区内的应用;
3.rd access :公司研发用户权限,可以访问云桌面与黄区应用,云桌面可以访问红区权限(研发环境);
4.IT access:公司IT用户权限,可以访问云桌面和堡垒机黄区应用,堡垒机负责配置服务器运维权限;
5.vendor access: 外包或供应商用户权限,理论上不允许访问任何内部应用,需要流程申请开通后单独配置特殊;
site远程接入规划
专线方案(推荐)
专线网络有多种,常见的时裸光纤,MPLS, SDWAN,专线方式可以提供比互联网ipsec vpn更好的稳定性,建议研发工作环境采用;
IPsec VPN方案
IPsec VPN也可以用于端到端的网络连接,IPsec VPN方案不用考虑费用,但是稳定性和延迟得不到保障,建议办公应用系统采用。
SSL VPN方案
SSL VPN对于有居家办公和出差需求的员工,提供VPN拨入服务;
用户信息安全管理
办公设备选择
几种办公方案的优劣势
传统PC方案:采用笔记本,便于携带移动办公,缺点是终端安全得不到保障;
瘦客户机方案:安全方面较好,数据不存放本地,性能比较依赖网络和后端服务器,运维问题较多,不便于携带;
传统PC+云桌面方案(推荐):员工拥有两套桌面系统,
第一套PC桌面用于日常办公上网会议飞书等,但不能访问公司内网,
第二套云桌面可以访问研发相关环境,比如NoMachine,ETX 。该方案既能确保研发人员能够访问互联网,也能确保访问研发环境安全。
用户通过云桌面登录linux环境比直接PC登录linux要流畅,因为云桌面一般与linux服务器部署在同一个数据中心,减少了网络带宽延迟的问题。
桌管软件方案
目前业内用于终端安全安全管控无非是桌管软件,桌管软件包括了很多的功能模块,我们主要会用到准入与防泄密功能;
防泄密系统(DLP) 功能:用于防止敏感信息文件泄露
- 日志审计;
- 文档外发节制;
- 文档加密;
- 外设介质防护;
- 水印截屏:默认使用矢量水印,对于用户无感,可以追溯拍照或截屏;
准入系统功能:员工的网络身份准入
- 普通用户需要身份信息验证(口令、mac、IP)
- 根据用户身份信息下发网络权限;
- 强制安全助手,验证终端是否达;
云桌面方案
人员权限区分:
芯片设计的公司,从人员类型上可以分为研发人员和非研发人员(人事、财务,行政等), 研发人员除了普通的办公需求,还有开发设计的需求,一般这类需求对信息安全要求比较高;
从设计人员分类上,还有芯片开发、 软件开发、硬件系统开发。芯片开发,还要分数字前端、数字后端、模拟前端、模拟后端等。 从操作系统上看,我们不止有 Linux 系统,还有 windows 系统。软件开发、硬件开发人员可以直接在云桌面(windows)上完成工作代码,PCB版图等工作,前端后端类研发人员则需要通过云桌面通过ETX,VNC NoMachine 等登录linux环境工作。
网络访问区分:
办公网络、研发网络会采用不同的分区;
办公网络采用 PC 直连模式;
研发网络采用云桌面,研发人员在PC基础上采用云桌面访问研发环境,确保重要涉密数据不存放在本地PC;
服务器选择
服务器架构选择
Arm架构:鲲鹏,安培,目前一般是用于开发测试,用到比较少;
x86架构:Intel,Amd,用于IC环境的登录、设计服务器,虚拟化服务器,功能类服务器;
服务器资源配置方案
服务器进行功能分类:
a.虚拟化服务器:其实一般的虚拟化业务对cpu,core ,主频要求不高,c内存要求也不高,对网络需求一般10G网络足够,硬盘也只需要容量大或使用san存储即可;
b.测试服务器:一般公司都有响应的软件测试部门,对于测试服务器不需要特别高的配置,根据业务部门自身需要来判断即可;
c.IC服务器:
- 计算服务器,即lsf服务器池中的每台服务器,计算服务器用研发人员的开发使用,需要高性能,要求有双25G或者万兆网卡,双ssd硬盘 raid1做系统盘,带高速缓存盘用于挂载/tmp,挂载主存储,带bmc接口,只能用x86服务器可以使用intel或者amd 高主频cpu的服务器,内存一般最少需要ddr4,前后端所需要的计算场景也不同,具体cpu和内存配置以及数量需要根据EDA场景来部署。
- IC登录服务器,用于研发人员从终端远程接入,根据接入终端工具的不同,一般情况一台服务器可以接受30-40个终端接入,一般配置为双路32核,256G-512G内存,要求有双25G或者万兆网卡,双ssd硬盘 raid1做系统盘,挂载主存储,带bmc接口,数量根据研发人员数量决定。
- 功能服务器,功能服务器有AD域控制器,内网邮件exchange服务器、代码仓库服务器、windows远程桌面服务器等,具体配置根据情况而定,一般配置不需要太高,一般情况都可以用虚拟化替代。
服务器集群资源利用优化:
a.设计服务器应该选择高主频的CPU ,Job queues要分类,可以按工具特点或者项目特点来分类,也可以按照部门来分类;vcs regression需要 CPU,后端 PR STA PI PV 的就可能一台服务器只是一个 Job 使用,内存按项目规模可能从几百 G到几T;
b.尽量少分专用机,专用机主要是用于某个特殊目的,分配给某个人或者某个团队允许登录的服务器。专用机因为分配出去之后,很难回收,利用率可能长期偏低。
c.将LSF集群内长期CPU 利用率低的 Job kill,工程师一个很不好的习惯是,容易开了就放在那里,忘记关掉。如果一台服务器开了几个大内存的 Job,长期放着,这台服务器基本就没办法用了,还会占用license;
d.限制并发数,避免大量浪费;
e.DV,DFT,RTL,BE的工作各不相同,在资源使用上,也各有特点;
存储选择
主流存储设备选择
Netapp是目前 IC 设计行业使用最多的存储厂商,优点是小文件读写性能好,设备稳定,缺点是价格贵,有A系列全闪和FAS系列混闪;
Dell EMC 的 Isilon,主要是分布式做的较好,适合大文件存储,性价比高,各方面比较均衡,不过目前使用下来分布式可能问题比较多。
IBM Spectrum Scale 是一种软件产品而非物理 NAS 设备,IBM Spectrum Scale 的前身就 是 GPFS,对运维要求非常高;
Huawei 的 OceanStor 应该是国内做得最好的存储设备之一,对标Dell EMC 的 Isilon;
其他存储比如HP 3PA ,Snoplogy,红衫等。
存储资源规划
存储资源的规划,按照存储的功能定位可以分为高端存储、中端存储、低端存储、备份存储、归档存储、本地存储;
高端存储:主要用于存储前端后端验证及其他研发工作数据,对io性能要求较高;
中端存储:主要用于存储EDA工具库文件等,一般需要容量较大,读写速度快;
低端存储:主要用于存储对性能要求不高的数据;
本地存储:一般用于EDA数据的缓存;
热备份存储:当主存储故障时可以迅速切换热备存储继续工作;:
冷备份存储:当主备存储故障,或需要恢复历史数据;
归档存储:长时间不用的,或项目完结后的数据存档;
存储资源分配与回收
项目开始:
项目刚开始的时候,只需要少量容量以及少量 IO,之后缓慢增长;
回归测试:
等到大量 regression验证的时候,无论是容量还是 IO,存储都无法满足。这个时候如果停机来迁移项目,对项目和 IT 运维都是考验。
芯片量产:
芯片量产后,依然占据很大容量,无人负责回收存储和归档数据。 一般项目在流片后,就可以删除大量临时数据。在芯片正式量产后,我们需要将项目的有用数据归档,长期保留,将无用数据删除。最终,实现存储的回收,给下一个项目使用。
–存储的申请和回收,没有标准化、流程化,没有财务核算。 一旦公司大了以后,每个项目到底需要多少存储,实际上,IT 人员或者 CAD 人员是不可能清楚确定的,最了解需求的是项目组,只有项目组自己决策,什么时候需要,需要多少容量,用到什么时候。而这些工作,如果人工去统计,会非常耗费人力。
冷数据保存在低端存储中
项目流片后,会留下大量数据,很长一段时间,没人访问,不需要高性 能的存储来保存,但是,这部分数据暂时还不敢删除,还需要保留,等待回片,需要做测试或者提供其他用途。这部分数据,我们不再需要高性能存储,我们需要将这部分数据迁移到低端存储继续保存。
– 数据自动分层,一般都在同一厂家不同配置的存储设备上,通过自己内部的私有技术完成;
– 迁移,Netapp集群,snapmirror到低端NAS存储;
量产后的数据归档和回收
芯片量产后,大量过程数据直接删除,但是对于重要数据,需要归档,为以后的芯片维护或者下一代芯片开发做数据准备。问题是产生数据的项目组或者成员,已经去开发下一个项目了,对归档数据没有积极性。
– 解决方法:确定一个项目目录的 owner,确定责任和费用核算;
存储的申请、分配
存储应该根据财务原则进行核算,核算到具体的项目中,由项目经理负责审 批,项目组审核总费用的合理性。这样才能形成有效的链条,对资源到底应该用多少,进行准确的判断。IT 无权利,也没能力决策某个项目需要多少存储才是合理的。
– 存储的分配,应该尽量实现自动化与流程化。申请单审批通过后自动化实时分配资源。
– 存储的采购费 用往往可以达到服务器采购费用的 1/3 到 1/5。
存储采购的基本要求
NFS 协议的 NAS 存储 – 因为多台服务器需要共享存储,NFS 成为目前最方便,最容易实现的存储协议 – 以 NFS v3 为主,因为实测性能比 NFS v4 更高
- 基本存储功能需求
– Snapshot,方便用户自行恢复误删除数据,目前 netapp 和 zfs 的 snapshot 功能实现最符合这个需求。
– QoS,可以将一台存储上多个 vol 实现 iops 和 bandwidth 的限制,避免一个项目将一台存储的所有 IO 用光。
– Quota,可以很容易基于项目和用户做 quota,实现空间的灵活管理。
- 前端设计小文件 IO 更重要
– IOPS 非常重要,因为 IC 设计流程,大部分都是 16KB 内的小文件
– 闪存加速有用,存储的架构影响小文件 IOPS
– 基于传统的文件存储结构,小文件存储性能一直不够好 57
– 统计过某个主流项目,一个目录大小为 1TB,大概有 300 多万个文件
- 后端对带宽需求高
– 相对前端是小文件为主,后端设计中,存储的性能主要表现在带宽
– 存储接口必须是 100G 网络。网络很容易成为瓶颈。要保证后端设计存储系统 中,存储网络最好多个 100G 聚合,服务器网卡为 10G 连接。
– 后端存储暂时可以不考虑闪存,除非性价比合适。目前基于磁盘的存储可以满足后端对带宽的需求。但是,未来后端带宽要求越来越高的情况下,闪存依然不可避免。
- 冷热数据分层
– 冷数据预计占总体存储的 1/5—1/3。
– 冷数据放在 SATA 盘,可以节省购买 SAS 存储和 SSD 存储的费用。
– 数据分类,才能更容易实现数据分层。建议按项目周期来管理分层。
– 存储的要求,工艺每升级一代,存储容量需要增加 4 倍以上,一颗大型 7nm 芯片可能需要 1200TB 存储,7nm 的芯片大部分会有差不多300多T的存储需求。
数据安全管理
内外网文件交换
目前市面上已经很多成熟的文件流转系统:比如志翔志安盾,鸿翼文件流转等,最常用的就是内部与外部的文件交换。
数据导入到研发区,员工提交导入流程审批后即可;
数据导出至外网,需要部门一二级主管审批,审批完成后研发人员可以下载到指定区域;
数据保护
快照 :做到快速的数据丢失恢复,一般普通设计用户自己就能完成恢复。
热备:Disk to Disk 的快速备份,防止主存储故障导致的数据损失,可以随时切换到备份存储上进行继续工作,例如netapp snapmirro;
冷备:定时任务同步存储数据到另一存储系统或备份一体机,冷备数据无法直接使用,例如rsync;
归档:项目结束后,采用 tar 方式将一个项目数据打包到备份存储系统,用廉价的 SATA磁盘来存放。
容灾:尽力做到异地备份,通过rsync或存储镜像方式定期同步数据;还要考虑 offline 的离线数据保存,避免勒索病毒类对重要数据进行加密。
存储备份策略制定
服务器操作系统
操作系统:
linux OS 选择:
centos7.9,免费开源的linux操作系统,7.9版本目前是EDA环境最稳定的版本环境;
Windows Server OS选择:
Windows server 2012 R2,用于AD服务器部署,唯一支持AD与UNIX场景的windows系统;
windows server 2019 DataCenter 或windowsn server 2021,最新的windows server版本,用于研发的登录与PCB软件运行;
Linux Server初始化配置
略
Windows Server初始化配置
略
以上两个系统的初始化配置基线操作就不在这里多描述,所有服务器上线使用都需要安装基线操作配置,否则几百台上千台服务器系统不统一出了问题很难排查;
系统配套应用工具方案
其他还有一些系统应用,如在Linux下看pdf文档工具、openoffice、文件比较工具,这些工具都可以通过按照软件包或者编译软件包来部署。
Linux下的IDE工具之前用eclipse,现在可以使用VS Code,VS Code windows版本可以跨平台编辑和调试。
通过ansible等方式来集成部署,而ansible同样也属于系统应用。
基于windows ad可以部署exchange server,作为邮件服务器,以及windows rdp远程桌面服务器,用户使用word、excel、acrobat等办公软件读写文件等一系列功能服务。
同时windows ad还可以提供研发网络dns、ntp等网络功能服务。
内网Email分为研发内网和外网的邮件,研发内网可以使用exchange搭建邮件服务平台,这样可以通过网页和远程桌面上的Outlook来收发内网邮件。
外网Email可以自己搭建邮件服务器,也可以购买第三方服务,比如阿里邮箱或者网易邮箱。
内网即时通讯工具可以使用skype for business, Teams或者第三方开源工具。
外网即时通讯工具可以用企业微信、飞书等第三方工具,有免费基础版和付费企业版。
文档管理系统,一般文档的密级程度会比较高,需要一些带密级管理,权限管理的系统,像confluence wiki这些能满足一些基础的功能,国内也有很多商用的文档管理系统,比如联想企业网盘,鸿翼文档系统,亿方云等。
项目管理系统:主流的有jira, MS project 禅道等
代码管理系统:开源本地化部署就用gitlab。
Login服务器
login服务器是IC设计人员最常用的服务器,一般99%的工作内容都需要在login服务器上操作,通过login服务器将计算任务提交至计算服务器,所以一个稳定易用安全的login服务器是很重要的。
login服务器桌面选择
特点 | 优点 | 缺点 | |
KDE桌面 | KDE是最容易定制的桌面环境 | · 最先进最强大的桌面环境· 高度可定制· 外观新颖而优美· 与速度较慢/旧的硬件兼容 | · Kmail等一些组件对普通用户来说实在过于复杂。· Kmail配置的改进对新手来说并不容易。 |
Mate桌面目前在用 | MATE非常适用于低配计算机。节约资源 | • 与旧的/速度较慢的计算机很好地兼容• 轻量级桌面环境 | 网络不好的时候会压缩,目前发现波形的刷新比较卡 |
Gnome桌面 | Gnome用作Fedora中的默认桌面环境,提供在几款流行的Linux发行版中,比如Ubuntu、Debian、OpenSUSE和另外许多发行版。 | · 简单、易于使用· 可通过插件来扩展功能 | · 缺少其他桌面环境拥有的许多功能· 插件管理很差 |
Unity桌面 | Gnome二次开发版。 | · 界面直观· 使用了平视显示器(HUD)等新技术· 可以由第三方应用程序来定制 | · 实施的通知机制很差劲· 用于定制的默认工具少得可怜· 不一致的用户界面 |
login服务器登录方案
一般不允许SSH登录,只开放GUI登录,至少提供2种接入方案,当一套工具不可以时可以选择备用方案,目前IC设计主流的接入方案主要是NX和ETX;
- NX,代表软件NoMachine,商用的软件,目前大部分员工在用;
- ETX,商用软件,对图传支持目前是最好的,目前小部分员工在用;
- VNC ,Xrdp,免费开源,图传性能较差,维护麻烦;
- Xshell,商用软件,不主流,一般用来做SSH登录;
NoMachine与ETX比较
Nomachine | ETX | |
图传 | 支持 | 支持,对图传延迟处理是目前最佳的一个接入软件 |
共享桌面 | 支持 | 支持 |
多用户 | 支持 | 支持,可以配置Cluster负载均衡 |
接入方式 | 客户端nomachine,mstsc | web,使用任何电脑上的Web浏览器从任何地方监控和管理 ETX |
3D支持 | 支持 | 支持,调用可以用远程服务器上的显卡进行 OpenGL GPU 加速渲染 |
数据拷贝 | 支持,Nomachine只能全局设置,RDP只能双向设置 | 支持,精细每个Session或者用户设置复制粘贴的权限,禁止或者允许 |
成本投入 | Nomachine | 有采购成本,单用户授权应该需要1w/个 |
安全 | 开放NX 4000端口和RDP 3389端口 | 开放一个web端口(80或者443)和一个ThinX协议通信端口(默认 5510) |
行为审计 | 支持,日志功能 | 支持,日志功能 |
防泄密 | 无 | 水印,防截屏 |
虚拟化服务器
研发网络中会部署vmware vsphere之类的虚拟化平台,分别在办公网,用于对于性能要求不高的一些功能工具和功能软件的部署。
在宿主机服务器不多的时候我们可以不做HA,虚拟机存储在宿主机本地硬盘存储;
当宿主机与虚拟机数量达到一定规模,建议规划VSAN超融合或SAN架构,这样可以实现宿主服务器之间的HA,当出现宿主机故障虚拟机可以实时迁移,不会影响虚拟机运行。
HPC计算集群规划
调度软件选择
主要是用于研发人员提交各种EDA工具作业并进行资源分配调度和负载均衡。
目前流行的有两种集群调度系统,商业的是LSF是主要采用的作业调度系统,LSF目前归属于IBM,几乎所有大的IC设计公司都采用的是LSF的软件来做负载均衡。不过,这个软件是商业软件,授权费比较贵,大约要1-2万一台服务器。
还有一个兼容LSF命令的软件,Openlava基于LSF 4.2发布的开源版本,由于属于开源软件免费,目前比特大陆用的是Openlava,基本功能也应该够用。
几个常用HPC集群软件SGE、Slurm、PBS、LSF的命令和环境变量差异
调度配置策略
1、按照job RUNLIMIT(运行时间限制)来划分,建议分短、中、长队列:
short/long/sup_long:short一般用于运行短时就能完成的job,RUNLIMIT很短(比如一天); long属于运行长时间的job(比如一周),sup_long,运行超长时间作业,比如一月,为了防着用户滥用long队列,其UJOB_LIMIT需要设置的较小;
2、保留normal和交互式队列,属于默认队列,用户不指定队列时可以提交到默认队列,比如vim, 或者跑个小脚本;
3、按照机器资源也可以分出一些特殊队列,比如有些EDA工具需要大量的cpu,比如regression,那么可以把cpu核数很高的机器分到一个单独队列。有些EDA工具需要极大的内存,但是对cpu数目要求不高,比如后端工具,可以把memory极大地机器分到一个队列。
4、按照IC设计的flow也可以分出一些特殊队列。不同IC设计流程所需要的运算资源也不一样。比如验证的regression需要极大量的slots,但是memory需求不高,而且job的运算时间一般较短,所以可以把多cpu核数的机器单列一个regression的队列;比如后端的工具需要slot不多,但是对memory需求极大,而且运行时间往往也很长,可以把大内存机器单列一个pd的队列。
队列设置的整体思路是:
- 为提高机器利用率的话,队列中尽量采用共享机器。
- 特殊应用,尤其是对资源需求比较大的,为保证效率一般设置队列采用专有机器。
- 如果队列需要接收job的时候必须有运算资源,不得不预留一部分专有机器,但是这样有可能会造成一定程度的资源浪费,所以专有机器的数量要控制到合适范围。
- 尽量要预留一部分机动机器,以防备紧急任务没有资源可以调用。
- 队列的调整策略是一个动态的过程,需要根据IC设计运算需求动态调整。
EDA工具的管理和使用规划
方式1:modulefiles
在 Linux 中,当同一款编辑器、运行库、软件存在多个版本且多个版本都需要在不同的场景或人员使用时,配置这些内容的环境变量是一个非常繁琐的过程,而 Module 工具则提供了一个简单快速的方法,Module 全称为 module-environment,是一个专门管理环境变量的工具。
EDA工具环境是需要持续更新维护,我们通过配置moduefiles来提供给研发人员调用EDA工具,由CAD来维护工具版本,并且大部分时候需要保留多个版本供设计人员调用,moduelfiles可以灵活提供各个版本工具;
方式2:bashrc,cshrc规划
公共的环境配置供全局使用
配置一个公共的环境变量供用户调用,CAD工程师来更新维护这个公共的环境变量。
由于 module 的特性问题,如果在公司内使用,你可能需要所有的使用人员设置一个统 一的初始脚本,通常我们建议建立一个用户可读的统一脚本文件,然后 link 到每个使用人员 的 HOME 目录下的初始脚本。 /EDA/env/tools.csh, 在用户的~/.chsrc 文件内 source /EDA/env/tools.csh 这样,我们可以比较容易做一些通用的修改。
EDA License管理
EDA 软件的 License 是最重要的资产,绝大多数 EDA 软件的授权都是基于 flexlm 来管理的。
license分类
正式版License, 采购的license, 数量较少,很贵,到期后需要重新采购。
临时License,数量较少,需要经常更新,一般是还没有确定采购之前供应商提供的借用。
爱国版License,使用会遇到一些工具bug问题,无法使用比较新的工具,缺少某些新的feature;
使用license Option 文件来控制login服务器不允许跑任务;
域账户认证系统搭建
一般会把办公行政账户与研发账户分开管理,至少会建设两套独立的域账户体系。
办公AD账户,统一规划,通过AD+SSO统一身份认证,打通OA,HR, 飞书,邮箱,推荐使用Windows AD认证。
研发AD账户,作为linux服务器以及一些研发配套应用系统的账户认证,确保内网使用的信息安全,对于linux环境,推荐使用NIS认证。
监控预警方案
首先需要划分监控的几个维度,我一般按如下划分:
- 硬件层,预警监控,服务器的硬件,比如cpu,内存,硬盘故障监控,可以采用BMC自带的告警进行推送;
- 操作系统层,预警监控,通过zabbix监控,比如系统cpu,内存,disk使用率等;
- 应用程序层,预警监控,通过zabbix监控,比如应用程序端口,应用程序服务状态up/down;
告警推送:
Zabbix+飞书部署方案,将告警消息推送至飞书。
数据展示:
grafana做数据展示更专业,可以通过zabbix+grafana api打通
传统系统的监控平台使用的工具是Zabbix,目前比较火的是Promethus,两个工具的比较如下
综合来看,Zabbix 的成熟度更高,上手更快,但更好的集成导致灵活性较差,问题更大是,监控数据的复杂度增加后,Zabbix 做进一步定制难度很高,即使做好了定制,也没法利用之前收集到的数据了(关系型数据库造成的问题)。
Prometheus 基本上是正相反,上手难度大一些,但由于定制灵活度高,数据也有更多的聚合可能,起步后的使用难度远小于 Zabbix。但如果已经对传统监控系统有技术积累的话,还是要谨慎考虑更换监控。个人建议时间和人员充足的话两个都可以上。