作者:王光辉
在2008年和2016年,我曾经写过两篇IC设计IT平台的文章《高性能集成电路设计IT环境》和《大型IC设计中心的IT环境》,百度可以搜索到相关内容。
最近两年,IC设计方面初创公司众多,很多人从大公司出来创业,但是对于设计平台知道的非常少,只能自己去探索,浪费了本该用于搞产品研发的时间和精力。
我在离开海思之前就计划为这些小公司做一个标准方案,降低创业公司在设计平台建设方面的难度。2021年3月离职后,我就开始准备这个文档,花了一个多月时间,断断续续地写,赶在五一假期前,终于完成了一个第一版。
目前在给大公司做收费咨询服务,不对创业公司做收费咨询。创业公司可以找当地IT工程师参考本方案实施。或者加入我们edacad微信群,咨询行业内的大咖。我们edacad微信群汇聚了国内做IC设计平台方面的大部分专家。也请大家及时反馈文档中的错误或者不合理的地方,以便可以改进后持续发布新版本方案。
方案前提:
a. 初创公司可能存在多个Site的情况,以总部+分部方式为例,分部不部署服
务器设备,只部署基础的网络和安全设备。分部与分部之间,不做直接互联,避免网络结构过于复杂。
b. 网络设备不做HA,以单设备为主,核心设备可以多配置一台在旁边做冷备。
降低网络的复杂性,减少链路连接,方便快速debug故障。
c. 核心应用,以分布在2台物理服务器上的vm做active-standby,避免某台
物理机故障后,整个系统不可用的风险。比如Active Directory。
d. 使用专业存储设备,但存储备份只做基本的灾备。通过rsync和GPG加密,
只做核心关键数据的备份。本地只有做一些基本的防止误删除恢复措施。
e. 安全和效率取舍中,以效率优先。本地安全防护只做基本,避免数据从服务
器批量带走,对于通过截屏、剪切板等方式不做管控。
f. 本地服务器不超过10台,不做专业的机房基础设施。如果有突发比较大的计
算,将通过ipsecvpn跟公有云连接,将部分临时计算放到公有云上实现。
下面就来讲一下我们初创IC设计公司的设计平台有哪些方面的问题需要考虑。
1. 存储选择
初始阶段,主要有3个型号可供选择:
NETAPP 2720HA (12*4T SATA) 实际格式化后,可用容量29T。大约13万
NETAPP 2750HA(24*1.8TSAS) 格式化后,可用容量约26T。大约22万
Netapp C190(24*960GSSD) 格式化后可用约为14T可用,因为是全闪,默认开启了数据缩减、压缩,重删,预计还有30%的在容量提升。约25万RMB一台。
价格只供参考,随时可能调整。无论过去买过,价格更贵,还是将来买的时候比上面便宜,请只是做参考。
2720HA主要提供给对性能要求不高,但是容量希望更多的用户。比如10-30人做设计,设计规模不大的用户。
2750HA主要是对硬盘容量要求也比较多,同时不满意2720的性能,采用的是10000转的SAS盘。
C190是一个性价比很高的型号,主要用于规模比较大,对性能也有比较高的要求。缺点是后期无法加盘柜扩容。但是,因为这个配置是全闪,性价比非常突出,特别适合预算有限,但是对性能要求高的初创企业。
随着规模的扩大,性能无法满足需求的时候,存储可以升级到其他型号,比如netapp的A250 A400 A700。也可以选择其他存储设备,比如Dell EMC的Isilon和华为的Dorado V6 NAS存储。
2. 研发计算服务器的选择
服务器目前主要选择x86服务器。目前性价比方面,AMD ZEN3的服务器很不错。但是,考虑到实际采购,也需要写一下Intel的服务器如何选择。
如果是前端,AMD可以考虑7763(64core) 7663(56core) 7643(48core),主要是core数量更多,更加适合大批量跑小Job。
如果是后端,AMD考虑75F3(32core)74F3(24core)73F3(16core),主要是频率更高,单core性能更强,适合单个Job跑的时间比较长的场景。
对应Intel可以考虑6242R 6246R 6248R这些性价比高的型号,也可以选择第三代3rd Generation Intel? Xeon? Scalable Processors。因为Intel这个第三代Scalale Processors有很多CPU带有特殊后缀,各自含义不同。
比如N结尾的如6330N,代表是Networking/NFV Optimized,T结尾的代表Long-Life Use and Nebs-Thermal Friendly,还有U结尾的,比如6314U 代表的是Single-Socket Optimized,H和HL代表了HighestPer-core Scalable Performance,可以支持最大单条256GB内存。目前看来,比较适合我们的型号有6348(28core) 6342(24core)。
上面讲完了CPU,下面讲一下服务器的相关建议。
Dell R740是一款非常经典的服务器,行业使用量也很大。
Dell R740(6242R*2,16*32G2933MHz内存,10G光口,PERC H740,8*1.8T)。注意内存可以根据实际情况加减。硬盘主要做本地临时存储。
Dell PowerEdge 15G服务器:
R750(32 DIMM,2* XEON 3rdScalable Processors)
R7525 (32 DIMM,2* ZEN3)
H3C UniServer R4950 G5(2* AMD7643 96core,32*32G, 8*1.8T,10G光口)。
Huawei 2288H V5/V6
V5是采用第二代XEON ScalableProcessors型号,V6是第三代。
2288H V5对标的是Dell R740,2288H V6对标的是Dell R750。
3. 基础设施服务器选择
R740(2* XEON4216 2.1G, 16core内存:16*16GB;
硬盘:8块1.8TB 10K 2.5寸 SAS阵列卡:PERC H740 RAID 控制器, 2Gb NV
网卡:2个万兆SFP+2个千兆口;
电源:2个700w;
维保:5年原厂7*24*4小时上门维保。
以上服务器2台,通过vmware vsphere虚拟化,实现虚拟架构基础平台。用于AD、LDAP、文件服务器角色。
4. 研发核心交换机
目前建议配置10G交换机,华为S6730S系列,上联端口有40G/100G可选。
华为CloudEngine S6730S-S24X6Q-A24*10G SFP+6*40G QSFP 15000元
华为CloudEngine S6730S-H24X6C-A24*10G SFP+,6*100G QSFP28) 20000元
也可以选择对应的H3C交换机。
5. 办公区域三层交换机
可以考虑华为S5735系列,有各种不同端口组合,比如下面的
华为S5735S-L24T4X-A 24口千兆4万兆 预计4000元
或者考虑华三5500V2/V3系列,也有很多种端口组合
S5500V2-34S-EI:28个10/100/1000TX以太网端口(4Combo),2个SFP千兆端口+2个1/10G BASE-X SFP PLUS万兆端口,2个QSFP PLUS 40G端口
6. 防火墙
防火墙目前可以推荐
FG-100E/F用于互联网,SSL VPN接入等。
FG-200F(4*10GE SFP+,18*1GERJ45,8*1GE SFP) 25000元
分支机构可以采用Fortigate40F这些低端型号,还可以开启4G链路做备份,避免原厂无人运维出现网络出口故障。
Fortigate防火墙主要是配置简单,性能比较高,能够实现大部分需求。带有多个端口,满足各种网络划分需求。默认带有SSL VPN接入授权,可以支持200-500并发用户,足够满足初创公司了。
7. WIFI无线接入
无线网络建议划分单独的VLAN,并且跟AD结合认证。Guest和员工采用不同的SSID。Guest在网络方面,要避免访问内部网络的可能性。采取AC+AP的方式部署,一般都是1个无线控制器 + 多个AP + 一台POE交换机。
推荐配置(以8个AP为例):
H3C的建议配置:
1 | EWP-WX2510H-PWR | H3C WX2510H-PWR-5端口千兆(4GE PoE Plus+1GE-T)无线控制器 | 台 | 3,200.00 | 1 |
2 | WA5530-LI-FIT | 高密,内置天线系统(工作频段:2.4G和5G,整机增益可达7dBi)802.11ac/n/a :支持802.3at兼容供电 | 台 | 1,900.00 | 8 |
3 | LIS-WX-8-BE | 增强型无线控制器license授权-管理8AP | 个 | 2,000.00 | 1 |
4 | S5120V2-28P-HPWR-LI | 24个10/100/1000 BASE-T千兆电口+ 4个SFP光口+4个10/100/1000 BASE-T COMBO;交换容量:336Gbps/3.36Tbps;包转发:51Mpps/108Mpps;支持POE+供电,PoE最大输出功率:370W,支持简单的三层功能,支持静态路由及RIP协议 | 台 | 2,400.00 | 1 |
这里如果AP点较少,可以不用PoE交换机,比如4个AP以内,可以直接连接AC构建网络。价格为估算,实际情况请直接咨询供应商。
华为的建议配置:
1 | AirEngine 9700S-S | 2*10GE+10*GE 无线控制器 | 台 | 2,000.00 | 1 |
2 | AirEngine5760-10 | 无线AP,WIFI6兼容(工作频段:2.4G和5G,2x2MIMO :支持PoE供电 | 台 | 1,900.00 | 8 |
3 | L-ACSSAP-8AP-S | 无线AC接入控制器AP授权License(8AP) | 个 | 2,200.00 | 1 |
4 | S1730S-L16P-A | 16个10/100/1000 BASE-T千兆电口;支持POE+供电 | 台 | 1,600.00 | 1 |
注意,现在一般AC控制器都需要按AP数量购买对应数量的license授权激活。
8. SDWAN
SDWAN是一种软件定义WAN的技术,有多个不同的使用场景。比如有采用SDWAN来实现类似MPLS VPN功能的,也有采用SDWAN来实现链路聚合分配的。
如果有多个分Site,建议考虑总部接入电信和联通的两条固定IP宽带,使用SDWAN技术实现负载均衡,链路带宽聚合,当其中一个运营商线路故障后自动切换。这个通过前面提到的Fortigate防火墙就可以实现。
另外现在SDWAN还有更多技术,比如可以实现类似MPLS专线功能,多个Site都通过当地POP点,实现虚拟专用网络。但是这种方式,一般都需要按月付费。对于小公司来说,在国内目前网络质量较好的情况下,省成本的做法就是直接分布跟总部之间通过ipsec vpn实现连接。
9. 操作系统的选择
当前,Linux服务器建议选择centos 7.9。因为centos 6.10基本上要EOL了。只要不是太老的版本,大部分EDA软件对CentOS 7.9的支持没问题。
建议通过kickstart来保证所有服务器的安装一致性,至少要保证所有OS内的软件包都一致,后期增加软件包,也应该做到所有服务器一样。
不过对于小公司安装系统,采用Kickstart可能比较麻烦,还可以采取另外一种方式简单实现安装包的一致性。
首先,安装一台包含了相关软件包,并且EDA软件都可用的centos 7.9的标准服务器。安装完成后,配置相关的yum源,包含OS的源,以及EPEL的源。因为我们更多的时候是内网,跟Internet不通,用户可以先同步这2个源到本地。
然后,在第一台标准服务器上。
#yum update
#rpm -qa > all_rpms
然后,在新安装的其他服务器上,配置跟标准服务器一样的yum源。
将标准服务器上的all_rpms文件导入
#cat all_rpms|xargs yum install
这样,可以简单做到相关服务器都有一致性的软件包。
后期,如果需要新安装某个软件包,也从标准服务器上先yum安装,然后验证通过后,在其他服务器上也安装上。
Windows服务器一般安装windows server 2016或者2019,因为考虑到更长的生命周期,选择2019是一个比较合适的选择。
10.基本网络架构图
本地用户,以PC和Laptop为主,通过接入和桌面服务器,接入设计开发环境。同时,本地笔记本和PC作为办公所用。
远程用户,可以通过SSL VPN接入公司内网(可指定具体用户),在家做设计。
如果对于安全方面需要更严格保护,可以采用以下架构图,不过要复杂很多。
本地PC只是做为办公、上网使用,跟研发基本上隔离。研发通过瘦客户端,接入VDI,然后通过VDI再连接研发开发环境的 接入和Linux桌面服务器。
在基本架构图上,办公PC作为平时工作的主力设备,建议采用小型机箱,既作为办公、上网、外部邮件、会议,又要兼具研发网络接入终端的重任。这种情况,研发的文档需求,建议配置一台或者多台终端服务器,允许研发员工在研发区域查看、编辑重要文件内容。
在VDI架构的网络中,用户需要高安全性,办公PC只能作为普通办公所用。而研发网络,采用瘦客户终端的方式接入。如果选择了ETX接入,可以启用ETX的禁止截屏或者水印方式,让本地办公PC也可以作为接入终端,而不需要额外采用瘦客户终端专门做研发网络接入。
11. 互联网
在北京和上海、深圳这些城市,办公楼物业往往会捆绑某些运营商,给接入互联网带来困扰。所以,请提前沟通好网络接入方案。
在总部,可以同时采用联通和电信两家运营商,避免选择某一家运营商后,公司在其他城市的分部,网络接入跟总部是不同的运营商,从而带来总部和分部之间的网络性能问题。
在分部,可以是一条固定IP固定带宽的宽带,加上一条浮动IP的家庭宽带。从而降低固定带宽宽带的压力。
因为总部提供了双链路,也方便移动用户选择更适合自己的接入线路。
12. 机房设施
一般小公司都不会去建设专业机房,但是请注意以下几点:
a. 机房位置不要选择靠近玻璃幕墙的地方,避免夏天阳光太强,导致机房过热。
b. 空调的冷凝水排放,需要注意不要通过机柜顶部,避免排水不畅,漏水到机柜内,损坏服务器。
c. 电池柜大小,请注意楼层承重要求,不可以过大,过重。
d. 核心设备,一定要接入UPS,避免意外故障。包括大楼停电后,有一个安全停机的时间。
e. 如果有条件,请安装好监控设备,特别是在下班后停电,能尽快知道,采取紧急停机等措施。电池能维持多久,请计算自己负载设备的多少,以及能够采取紧急措施的时间。建议30分钟以上。
f. 标准机柜一般是42U,1000mm/1200mm深。不要在一个机柜放入超过5KW负载的设备。机柜空间足够,但是单机柜支持的设备太多,会导致局部过热。
13. 研发平台接入和数据进出管理
从用户侧,如何接入IC设计的Linux服务器侧。一般我们使用接入软件,比如VNC XRDP FreeNX Eod/ETX。数据从外部进入研发网络,需要杀毒、自动传入。数据从研发网络出来,要采用审批,备份。所有数据进出,要有中转系统,而不是直接进出。
VNC使用广泛,默认Linux都带有免费版本。VNC是一个简单的远程控制软件,缺少一些企业特性,主要是日志记录和安全功能不足。VNC开发之初,主要是用在局域网的环境,用在互联网上存在安全问题。VNC并非是安全的协议,VNC的密码可以轻易被破解。如果有远程接入需求,应该通过VPN隧道先拨入,再用VNC登录服务器。
使用VNC最大的问题还是性能问题,VNC使用位图显示模式,远程VNC接入的性能很差,用户难以接受。另外,还容易黑屏,发生黑屏后,用户不得不先kill自己的session,然后重新开一个session接入。
FreeNX要比VNC的性能好很多,特别是在网络带宽小,延迟比较大的时候,NX能够在低带宽和慢速网络中,提供比较平滑的性能。但是,FreeNX无后续开发,因为使用SSH协议来传输,保证传输安全的同时,却引入了另外一个风险,如果内部有人通过SSH转发数据,可能会有大量数据从服务器泄露。
EoD的全称是Exceed on Demand,对EoD很多人可能有些陌生,但是对于Hummingbird Exceed,大家都是非常熟悉的,当年主流windows访问Unix/Linux的工具。EoD是OpenText的一个商业产品,在EDA行业使用很广泛。但是EoD按OpenText的说法,可能很快要EOL,下一代产品是ETX(Exceed TurboX)。
ETX的几个最重要的优点:
a. 对延迟处理是目前最佳的一个接入软件,可以很好地支持layout远程接入。
b. 用户可以共享自己的桌面,跟同事一起协作解决问题。
c. 可以suspend,然后resume以前的session。用户可以suspend自己的桌面,然后去会议室并在会议中显示他的工作。或者回家VPN接入后继续工作。
d. Web界面接入,简单方便。
e. 安全,可以禁止数据拷贝到客户端;也可以设置允许复制本地剪切板内容到远程,禁止远程剪切板到本地。只需要开放一个https端口(8443 或者 443)和一个ThinX协议通信端口(默认5510)
f. ThinX协议带宽需求低。通过 ThinX 协议,ETX 比传统 X Window 的带宽需求减少90%以上。
g. 可针对每个Session或者用户,设置复制粘贴的权限,禁止或者允许,允许后还可以设置字节数限制。
h. 最近新加的两个功能,非常不错。一个是桌面水印,任何拍照截图都可以保留一些关键信息。另外一个是截屏的时候,ETX接入的窗口黑屏,避免普通用户通过截屏方式泄露设计代码。
ETX是商业软件,几千块一个用户,对初创公司可能存在较大的成本压力。所以,对于要求不是特别高的用户,可以采用VNC或者FreeNX来做接入即可。
对于数据的传入传出审批,目前我还没有找到一套比较完美的产品可以支持,对小公司来说,传出数据量不大的时候,可能传出数据采用人工审批也是一个可接受的方案。如果大量数据需要传出,可能需要定制开发一套专门的数据审批系统。
14. 桌面的选择
目前Linux下桌面系统主要有GNOME、KDE、XFCE、MATE、ICEWM、LXDE等,在CentOS6上,我一般推荐GNOME。但是,在CentOS7上,默认采用的是GNOME 3.28,Gnome 3.28是一个OpenGL的3D window manager。这就不太友好了,3D很炫,但是系统资源需求也很高,稳定性欠佳。所以,在CentOS7上,我们一般会考虑采用lightdm+Mate或者lightdm+xfce。
CentOS7上使用桌面,还需要做一些定制。比如去掉登录界面上的关机按钮,替换一下文件管理器,加强多用户并发使用桌面的能力。限制单个用户对系统内存和网络带宽的占用,避免某一个用户的操作导致所有用户感受到卡顿。用户最小化某个应用后,可以快速找到恢复等。
Linux桌面越来越华丽,但是对我们多用户使用同一台服务器非常不利,所以我们的目标是尽量在一台服务器上,能支持更多用户,提供基本好用的桌面开发软件。
多个用户公用一台服务器的时候,要限制某个用户,不要把资源用光,让多个用户一起卡顿,无法工作。如果人数过多,还需要建议对用户分组,通过vm方式使用,避免一台vm上有过多的用户。桌面上,还需要禁止跑EDA工具,比如通过firewall禁止连接license服务器就可以简单限制EDA工具在登录桌面服务器上使用。
15. 多个分部的情况
国内做芯片开发,以上海人才最多,北京、深圳,以及其他城市也需要招人,所以很少有一家公司只在某个城市就行了。哪怕就是在上海,还可能存在张江是总部,其他地方如虹桥也有分部的情况。
多个Site,经常是国内多个城市,还有国外的一些城市。在这里,不过多涉及到合规,出口管制等内容。只从系统架构上去考虑,如果涉及到出口管制,要注意遵守当地法律法规。
合规问题上,中国企业往往不太重视,很容易无意中就做出了一些违规的行为。
多Site,就会涉及到很多交流的情况,网络在其中就显得特别重要。
网络,性能影响最大的因素,首选丢包,其次延迟,最后才是带宽。为什么这样讲呢?因为一个网络,如果丢包率达到5%,性能肯定是直线下降的,所以,正常的网络要控制丢包率在1%以内才能保证性能。延迟,对layout这种图形敏感用户影响非常大,我们的测试,30ms的延迟,做5nm/7nm先进工艺的layout可以接受。当然,并不是说超过30ms就不可以接受,这个跟人和项目规模、项目工艺有关系。有些人非常敏感,一旦超过反应速度,无法工作;工艺越先进,layout的时候放大缩小等操作需要的资源越多;项目一旦超过一定规模,对网络的要求成倍增加。显示器的分辨率也有关系,比如4K分辨率传输的数据会是1080P的4倍。如果两个24寸显示器做双屏可以接受,其网络需求会比一个43寸的4K显示器要更少。但是,很多时候,都是购买43寸的4K显示器,而没有考虑网络。
互联网接入价格比较便宜,如果两个Site采用了不同的供应商,比如北京选择联通,上海选择电信,两个都是100Mbps,那么两个网络做Site-to-Site VPN,互相之间传输数据的能力可能也不会很高。我们都知道,国内不同运营商之间的网络传输是有一个瓶颈存在的,这个地方的通行能力变化太大了。所以,我们一般会考虑在总部,机房所在位置,采用电信和联通两家接入供应商。
我们内部的通信要考虑IP电话。大家对于座机需求越来越少,对于通过电脑进行的电话通信需求却很频繁。所以,每个工位,已经没必要都配置IP电话机了。但是,用在电脑上的电话软终端是需要的。会议室也需要专用的语音电话设备。
电话会议系统,几乎是跨site协作的首要选择。电话会议系统,目前常见的都是基于云端技术的,所谓的Web Conferencing。一般都支持语音会议+文档分享,这是传统在线会议的基本模式。新的环境下,开始逐渐过渡到视频会议和通过触摸屏白板直接分享即时讨论。
我们较多使用的会议系统有:Zoom、Teams、Welink、腾讯会议、阿里钉钉等。相比传统专网会议系统,云会议优势明显,接入模式更加多样化,能够更方便实现如会议室、电脑、手机等各种终端之间的整合协作,扩展性更好。
这类云会议需要考虑两个方面:安全,如果是安全要求非常高的,请记住不要通过这种方式共享,另外一方面是我们当前接入的语音效果,个人无论通过手机还是PC都应该没问题,对于会议室,多人会议,请记得要用专业的语音会议设备。
推荐设备有Yealink CP960、Polycom RealPresence Trio 8800(中大会议室),Grandstream GAC2500(4-6人小型办公室),中型会议室:Avaya B100 Series、Polycom SoundStationIP7000、Konftel 300IPx。
对于视频会议,特别是大型的会议室,请咨询专业的设计,因为大屏会议,需要对灯光控制,摄像头安装,语音设备规划都要有专业的建议才行。
会议室的投影,以前更多采用的是投影仪,现在越来越多在会议室安装大屏幕的液晶屏。一种做法是75寸以上单个液晶屏,这种屏幕的价格往往较高。另外一种是多个液晶屏拼接起来,屏幕价格相对较低,但是这种做法的缺点也很明显:需要连接屏幕的主机有多个显示输出接口,并且要求支持拼接功能;最关键是屏幕拼接缝很容易看出来,视觉上体验不太好,适合举例较远,对显示精度要求不太高的场合。
目前视频会议室的屏幕规格一般有:55英寸 65英寸 75英寸 86英寸 100英寸,前面2个以放在移动挂架上为主,后面3种规格以墙壁安装为主。这里推荐一下MAXHUB,比较适合于国内视频会议。
多site还会有一个重要需求,就是要做到不同Site的工程师互相之间共享屏幕,无论是多人的会议,还是2个人之间的简单沟通,屏幕共享都是非常重要的特性,是必须要支持的功能。
前面提到的那些会议系统,无论是Zoom Teams或者国产的WeLink 阿里钉钉 腾讯会议,都支持在会议系统中进行屏幕共享。也提到过,这类屏幕共享,对于普通办公是可以的,对于重要的研发系统,我们很多时候是禁止接入互联网的,可能对一些公司存在困难。如何实现呢?
对于研发的屏幕共享,我建议可以通过接入软件来实现。比如VNC可以在启动的时候加入共享选项。对于EoD/ETX 来说,本身也可以支持共享(两种模式:只读和可控制)。
$ vncserver -geometry 1900x1050 -alwaysshared :10
研发屏幕共享,很少有能在接入软件实现语音功能的,所以,这个时候我们需要额外通过外部的语音会议系统共同使用,从而实现交流无障碍。
另外,多Site还需要代码共享,主要就是版本管理,在这里不做作详细的介绍。数字版本管理,比较常用的有subversion Git Perforce,模拟和RF设计,版本管理用的比较多的有Cliosoft SOS、Methodics、DesignSync。
跨Site之间的数据传输:
传统的数据传输方式,在互联网的环境下,性能很差。主要是因为TCP协议的滑动窗口和三次握手,如果有大量数据传输,一定要考虑更加专业的方法。我做过对比测试,在50ms和100ms下,默认的拥塞算法Cubic的性能很低。在互联网环境下,丢包率1%-5%是正常的情况,这会导致网络性能急剧下降。
如果有大量数据需要跨Site传输,推荐采用aspera、filecatalyst或者镭速这类更加专业的工具。速度会比传统的scp、ftp快好几倍。
实际上,远程接入,也要考虑网络性能,大家都有过体验,从美国远程接入到中国,如果采用VNC,会感觉非常卡慢。但是,如果采用ETX,性能就要好很多,原因是接入软件做了很多优化。网络性能方面,也可以做一些优化,来提升接入的性能,一般采用SDWAN和TCP优化来实现。
我们要尽量避免大量数据在多个Site之间传输。
16. 资源管理
这里的资源管理包括:服务器、存储、License等多方面。包括需求管理、采购、分配和回收。对于初创公司来说,以上都更容易。比如服务器,完全可以按需采购和分配。
服务器如何使用,一般分两种:一种就是用户直接登录服务器,按人分配;另一种是通过调度工具,自动化分配Job到合适的服务器。
第一种,一般是团队的管理者,划分资源到特定的人员,自己负责管理。
第二种,一般采用负载均衡软件,比如LSF、Openlava等,用户提交Job,然后自动分配到某一台服务器去计算。特别是大规模的时候,我们基本上都会采用负载均衡软件来分配。
存储,一般初始一次性购买,项目开始后,按需分配,项目结束后,打包,归档项目数据。把前期分配的空间,给下一个项目继续使用。License在国内现状下,暂时不做讨论。
一般资源分配,建议按项目运作。这样,才能保证项目结束后,资源可以有效回收和管控,避免时间久了,管理混乱。
17. 账号和群组
我们做设计一般是Linux平台,而我们办公一般又是Windows平台。
我们的设计平台往往具有很多台服务器,需要有一个集中的账号管理系统。Linux传统是UGO的权限模型,而我们往往采用Group权限的方式来统一管理用户访问某个项目的权限,而Linux传统的nfs权限模式下,有16个群组的限制,超过16个群组,默认是不能被系统权限识别出来的。如何解决16个群组的问题,可能有些人采用的是NFS V4 ACL,另外一些人采用的是扩展群组功能。NFS v4 ACL跟传统的Posix ACL有很大差别。
我们这里重点介绍Linux下的账号管理。
目前很多小公司还在大量采用NIS来管理Linux平台下的账号。NIS的优点很多,简单,实用,多台服务器可以使用同一个账号和密码。但是,NIS是1985年出现的,已经三十多年,也有差不多二十年没有变化了。这在IT系统内,非常少见,一方面说明其稳定性,另外一方面也说明大家已经放弃发展了。
经过跟edacad微信群的朋友讨论后,最终考虑采用centos7直接通过AD认证的方式来减少认证系统,简化用户环境。具体如何配置centos7加入AD,有时间,我也会写详细的配置说明。通过群组group对应项目,来实现不同的项目的权限划分。
Linux下实际上还有一个FreeIPA可以使用,考虑组件比较多,配置和管理稍微杂,我在这里没有将其作为初创公司的认证方案。
因为采用AD只是做Linux的认证,所以autofs map也不考虑,直接写入/etc/fstab来挂载。如果有大量目录和服务器,不建议直接写入/etc/fstab,而是要考虑autofs。实际上,AD也可以存储autofs的map,配置更加复杂而已。
18.目录设计和NFS挂载
目前绝大多数芯片设计公司,都还是在采用挂载NFS目录的方式使用存储。所以,我们重点介绍如何做芯片设计的目录,以及怎么挂载这些目录。
首先,我们来做一下目录规划。
/home 是肯定要有的,用户存放自己的个人数据。建议user quota限制容量,比如限制5G/10G。
/tools 存放一些EDA工具,建议下面继续按vendor划分,比如
/tools/cadence
/tools/synopsys
/tools/mentor
/pdk 用于从foundry拿到的一些公共PDK文件,类似上面的/tools,属于公共使用目录。也可以下面按foundry厂商继续划分目录。
/data 存放项目中,较为稳定的数据,需要做daily的snapshot,如果可能,还需要做D2D的备份。
同样,可以继续按项目划分各自的目录。
/data/projectA
/data/projectB
/tmpdata 存放项目变化很快的临时文件,比如仿真过程文件。各种session文件,跑完就可以直接删除,如果不小心删除了,重新跑一下即可。这个目录,一般不做snapshot,因为变动太快,如果做了snapshot,磁盘空间可能很快就被填满。
同样,也会继续按项目划分二级目录。
/tmpdata/projectA_t
/tmpdata/projectB_t
当然,如果需要继续在/data /tmpdata下面针对用户做限制,也可以做user quota,从而避免某个用户大量写入磁盘,导致空间爆盘,其他人的job也被影响。
19. 研发环境文档管理
研发环境,除了有Linux相关的芯片设计工作,还有很多文档编写和记录工作。实际上,也还需要一个windows的工作平台。
目前有两种方式可以解决:一种是安装windows server,然后通过终端服务RDS,多个用户可以通过远程终端(mstsc/rdesktop)登录服务器,然后共享同一台windows服务器做文档相关工作,可以采用Subversion来做集中版本管理。另外一种是有专门的文档管理平台,用户可以安装对应的插件后,通过浏览器即可管理自己的文档,编写新的文档。比如Opentext的ECM(Enterprisecontent management),不过一般都是有一定规模的公司才会使用专业的文档管理系统。
20. EDA工具的管理
目前EDA工具,主要的厂家除了三大家,还有其他一些vendor,比如ansys,华大九天等,各家软件的安装方法大同小异,可以参考其安装文档,这里不做详细介绍。大部分EDA软件都是用flexlm进行license管理授权的。
对于EDA软件,由于项目的不同,可能我们会采用不同的版本。多个版本的切换和管理,对于我们就显得比较重要了。初创公司,可以考虑采用统一的.cshrc文件来管理各种eda软件。而成规模的公司,往往会采用Environment Modules来管理多个EDA软件版本。
可以在用户home下的.cshrc前面加一行
source
/data/projects/projectX.cshrc这里的projectX.cshrc就是某个项目统一配置的各种工具版本相关文件。如果用户想覆盖这个配置,可以在自己的.cshrc文件末尾设置对应的环境变量,覆盖即可。
21. 终端接入安全管控
在芯片的开发设计环境下,数据安全非常重要,特别是防止未授权对开发设计环境的访问,是每个公司都非常在意的事。
终端接入的安全管控,涉及的面比较广,我想从几个方面来说明:
首先,是公司内部,局域网如何安全接入。
其次,要考虑远程接入,特别是VPN访问公司内部,如何保证接入的是你自己的人,是自己公司认证的设备。
然后,我们会涉及到一些安全的通用手段,包括OTP,下一代防火墙,NAC。
网络接入控制NAC
NAC是Network Access Control的缩写,主要针对企业的网络接入进行管控。比如,某家公司的员工把家里的笔记本电脑拿到公司,插上公司的网线,就可以随意访问公司的内部资源。如果员工变成了竞争对手?笔记本电脑变成了手机(TypeC 转RJ45可是很容易)呢?
可能一个50块钱的转接线,一个智能手机,就可以将公司的所有数据轻而易举地带走。所以,网络接入,要进行强安全认证,不是自己的设备不能运行接入。
NAC一个最重要的特点是要做到发现所有设备,然后持续的控制这些设备。所以,为了防止病毒或者黑客入侵对企业安全造成影响,我们需要借助NAC,可以控制合法授权的安全终端设备接入企业内部网络,而非法的终端是不允许接入的。
如果这个设备允许接入网络,但是使用设备的人,是不是你真实的用户呢?比如,会不会是竞争对手窃取了你用户的账号和密码,从而进入呢?这会涉及到后面的技术。这里主要讲终端的网络接入。
目前,NAC产品主要方向是:统一管理,高集成度,无客户端安装要求,appliance模式,对前端、移动设备、数据中心虚拟化,IoT设备支持。
NAC主要厂家和产品:
目前这个市场以国外的厂家为主,从2018年NAC的Gartner魔力象限看,处于领导者的主要有Cisco(Identity Services Engine)、ForeScout(CounterACT, 2019年3月更改名称为eyeSight和eyeControl)、HPE(ArubaClearPass)、Pulse Secure;其他厂商还有ImpluseSafeConnect、ExtremeControl、AuconectBICS、FortiNAC、
InforExpressCyberGatekeeper、NetShield、OpenNACEnterprise等。
国内厂商和产品主要有:盈高科技ASM、联软科技UNINAC等。
远程接入:
远程接入主流是通过VPN接入公司内部网络。VPN接入技术常用的有ipsec vpn和ssl vpn,现在逐渐以SSL VPN为主了。
VPN接入,主要是满足两类需求:一个是出差,在任何地方,需要通过笔记本电脑接入公司内部办公;另一个是在家办公,员工在家接入公司的需求也非常强烈。
远程接入,个人比较熟悉的是Fortigate的防火墙,其自带SSL VPN。一套设备就解决了我的需求。另外一个不错的是Array的SSL VPN设备,最喜欢的是可以对访问的客户端系统硬件进行绑定,即使账号被窃取,依然无法使用其连接VPN。国产的类似设备有很多,比如华为的USG系列防火墙,自带SSL VPN。如果希望也能绑定客户端硬件,可以用深信服的SSL VPN接入设备。
OTP介绍:
OTP的全称叫One Time Password,也就是这个密码只能用一次。OTP目前有两种,有种是event-based OTP(HOTP),另外一类是基于时间的(TOTP),是基于时间戳算法,它会要求客户端和服务器端都要保持比较精确的时间。
OTP的使用场景:
VPN登陆的双因素验证;
银行账号登录的动态密码;
各APP登录的短信登录密码;
网游的动态Token;
目前主要的产品介绍
RSA SecurID:这个应该是最老牌的一个产品,但是前几年也爆出过安全风险。一个是2011年,RSA出现过一次SecURID种子泄露事件,另外一次是美国国家安全局(NSA)通过安插人员,让RSA采用了一个存在后门的Dual_EC_DRBG算法。
Google的google-authenticator:这个使用广泛,因为它是开源的。你可以自己随便使用。但是,这个东西个人用用还可以,企业使用,实在要花费很多时间。
飞天诚信:这是一家国内做安全产品很多年的公司,产品性价比很高。我们可以采用其OTP Server认证服务器+硬件Token(或/和)软件Token,一起组成一套OTP认证系统。
Fortigate的FortiToken,可以很容易跟防火墙集成。也有硬件Token和软件Token两种可以购买。
以上,就是针对初创芯片设计公司的IT系统方案的主要内容。后面会根据反馈,逐步改进本文内容。
本文暂时没有评论,来添加一个吧(●'◡'●)