在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: soway

大型IC设计中心的IT环境

[复制链接]
 楼主| 发表于 2016-5-1 19:17:03 | 显示全部楼层




非常好的问题,你肯定是业内人士。
-----------------------------------------------------------------------------------------------------------------------------
IC行业中,存储对IOPS的要求是非常高的(实际生产环境中的发现),对存储容量要求相同的情况下,如果获得更高的IOPS,除了存储控制器的IOPS限制外,还要考虑单个硬盘的容量问题。一般情况下单盘更小容量,更多的盘,可以带来更高的IOPS。
另外可以提一下存储的空间利用率,往往存储的利用率超过85%(有说90%),读写效率将大幅下降。
实际生产环境中,磁带归档是否是一个效率(备份和恢复)很低的办法?
--------------------------------------------------------------------------------------------------------------------------
回复如下:
要想获得高的IOPS,机械硬盘已经无法应对了。以前的做法一般是raid卡带cache(write back)+ 15000RPM的硬盘。
cache的好处是写入小文件加速,因为直接返回,但是读取依然会很慢。现在大量采用的10000转 2.5 SAS盘,已经算是不错
的了,但是IOPS依然不高。

唯一能解决IOPS的只有SSD,nvme的SSD会更快。

存储超过85% 90%,读写效率大量下降的根本原因是写入算法的改变。
以zfs文件系统举例,zfs文件系统在80%之前,是write anywhere,就是只要有空的地方就写。80%以后,马上改变算法,需要
找一个比较合适的位置写,显然速度一下就下降了。netapp的WALF也有一样的问题。

我写的是磁带归档,而不是主要用于备份。磁带的缺点很多,比如速度慢,无法online方式查询恢复。最大的问题是:你需要找回数据的时候,可能根本读不出来!  所以,它只适合归档,因为一盘一盘磁带,拿出去放银行保险柜,依然是最方便的做法。
当然,如果你可以做到磁盘方式归档,更好。

目前建议的是D2D2T(即磁盘到磁盘备份,然后从备份磁盘归档到磁带)。

因为全闪存太贵,建议大家设计系统的时候,以project的方式分流。将iops要求很高的项目才放入SSD,而普通项目,依然放入大容量的7200RPM或者10000RPM的磁盘系统。

备份系统则毫无疑问,采用7200RPM 3.5寸的大容量磁盘。
 楼主| 发表于 2016-5-3 09:46:45 | 显示全部楼层
接入及登陆环境

1. VPN是否可以?VPN至少要做到双因素验证

2.如何避免设计人员copy&paste

3. 登陆软件的选择:VNC Xenapp NX Go-global EoD

4. 桌面系统:GNOME KDE ICEWM FVWM XFCE


如何考虑移动VPN接入

提供移动VPN接入就相当于在内部网络开放了一个接口,让外部的用户可以

随时随地访问内部网络。所以,首先要评估是否可以做到足够的安全级别,让非法的用户无法通过窃取账号等方式登录你的网络。


VPN
接入,需要至少做到双因素的认证。主流的做法包括RSA SecureID这种基于时间的双因素或者USB Key基于证书的双因素。当前,还需要考虑VPN支持移动客户端和MAC OSX系统。因为,这两方面的用户越来越多了,有更多的接入需求。


如何避免设计人员copy&Paste数据

IC设计中,一般都在服务器完成,但是也需要用户从终端登录服务器。如果用户可以将服务器的文本copy到本地终端,那么就存在带走的可能性。我对于数据安全的主要观点是:数据需要位于服务器上,用户无法物理接触的数据才是安全的。数据分级,防止一个用户拥有所有数据的权限,可以防止被某人获得全部数据。带出数据需要审核及归档,这样做到有据可查。

目前的登陆软件,很多可以禁止用户剪切板的数据copy到用户端。同时,采用防火墙,防止用户直接从内部服务器主动连接客户端获取数据。


登陆软件的选择

目前小公司普遍采用的登录软件有Xmanager/Exceed/VNC/FreeNX,而大公司普遍采用的有Xenapp/NX/EoD/Go-Global等。对于以上软件,我都有一定程度的接触,所以在此做一个简单评价。

XmangerExceed,属于利用X协议,在windows平台实现的X Server,优点是使用方便,使用的人很多,性能在局域网也不错。缺点就是,一旦用户端跟服务器之间的网络意外终端,或者客户端关机,所有正在服务器上运行的job丢失。

VNC免费版使用非常广泛,其实现了网络断开也不会丢失正在运行的工作。但是免费版限制很多,比如需要用户设置专用的vnc登陆密码,无法禁止用户Copy&Paste服务器数据到本地。另外,VNC协议实现对网络带宽消耗很大,不适合于WAN网络连接。

FreeNX是基于No-Machine免费开源的library实现的免费远程登陆软件。目前有另外一个如日中天的类似软件,叫做X2GoFreeNX基于SSH协议,实现了压缩传输等功能,效率比VNC提高很多。但是其基于SSH协议实现,给系统安全留下了隐患。

VNC Enterprise,实现了更高级的功能,包括验证集成了系统验证,不需要额外设置vnc登陆密码,也可以禁用剪切板等高级功能,还可以通过policy设置。对于小型设计环节,目前是一个非常值得考虑的选择。

Xenappcitrix基于ICA协议实现的登陆方式,最新的基于Unix的是2008年前后发布的Unix 4.0 FP2版本。Citrix的中心已经转向了windows,及时是最新发布xendesktop linux版本,也并没认真去做,集成很困难。不过,当年Broadcom是基于solaris 10+ citrix for unix fp2实现的登陆环境,不知道五年过去了,是否已经改变。

Nomachine公司发布的NX商业版本可以支持更多功能,国内有几个公司在使用,具体功能不了解,比如如何实现及时采用SSH协议,也不担心被设置转发隧道,从而解决安全问题的。

EoD的全称是Exceed On Demand。软件费用昂贵,国内使用的人很少,目前我知道的是IBM基于EoD实现登陆。EoD软件可以禁用Copy&Paste,同时gateway模式可以让用户无法直接在EoD服务器上工作,让EoD服务器实现gateway转发即可。EoD可实现share 桌面,对于远程会议共享桌面和需要远程协助debug的时候非常有用。推荐不差钱的大公司选择EoD,是我见过最佳的登陆软件了。

Go-Global是另外一个登陆软件,分为for windowsfor unix版本。实现上比VNC要快,国内也有商业支持,也比较成熟和稳定。不过其客户端目前只支持windows系统,这点需要注意。如果是中小型公司,可以考虑采用。


桌面系统的选择

我一直反对使用重型桌面环境,比如GnomeKDE,毕竟几百人的公司,登

陆服务器就那么两台,一旦使用GNOMEKDE,整个系统负载是非常高的。而我们的设计工程师,根本不需要那么复杂的桌面环境,最简单的才是最高效的。


在我的工作中,我推荐过使用fvwm,自定义过一个非常简洁的桌面环境,但是由于定制要求很高,用户使用起来感觉不是很好。不过fvwm可定制性很高,可实现非常棒的一些效果。


后来我选择使用过XFCE,另外一个比较其GNOMEKDE较轻量级的桌面。在2008-2013年,我都认为这是一个不错的桌面环境,在很多地方推荐使用过。但是,xfce的安装包很多,最好通过yum自动安装。我们也逐渐在考虑一个更加合适的窗口管理器。


2015年,一个新的同事推荐了icewm。我认为目前这个是最合适IC设计公司工程师的窗口管理器了。




可以实现多个桌面,添加需要的一些xterm gnome-terminal
firefox
等工具。

推荐:大公司首选icewm,其次可以考虑xfce。小公司建议多考虑xfce。

 楼主| 发表于 2016-5-5 09:32:36 | 显示全部楼层
设计Job的管理(SGE/LSF)

1. LSF

2. SGE

3. Openlava


LSF

LSF 是目前主要采用的任务管理软件,目前归属于IBM,最新的版本是9。几

乎所有大的IC设计公司都采用的是LSF的软件来做负载均衡。不过,这个软件是商业软件,授权费比较贵,大约要1-2万一台服务器(以core计费)。


下图为lsload命令所显示的结果,大家可以看到各台服务器的负载,CPU利用率,剩余内存等信息。



LSF会自动去调度,找出最佳的后台服务器,尽量做到负载均衡。所有的后台服务器,用户都不能直接登录去run,这是由系统和网络结构限制的。但是,对于用户,要让所有的操作做到最简单,用户不需要去了解复杂的后台设计。

lsload.png

这里介绍一下LSF的一些使用

提交job

$bsub my_job
Job <1234> is submitted to default queue <normal>
上面输出中1234是分配给my_jobID, normal即系统默认queue


提交并行job

$ bsub -n 8 myjob
myjob
以并行JOB的方式执行,且需要8cpu cores。比如在脚本中,hspice使用了-mt 8的情况下。用上面的命令会让lsf帮你找到空闲的8cpu core之后才提交给具体执行的主机。


查看当前自己或者其他人的job

$bjobs
(
只查询自己的) $bjobs –u all(所有人的)

然后可以得到jobID

$ bjobs -u all
JOBID USER STAT QUEUE     FROM_HOST EXEC_HOST JOB_NAMESUBMIT_TIME
1004 user1 RUN   short     hostA    hostA      job0    Dec 16 09:23
1235 user3 PEND priority hostM               job1     Dec 11 13:55
1234 user2 SSUSP normal    hostD     hostM     job3     Dec 11 10:09
1250 user1 PEND short     hostA               job4     Dec11 13:59


Kill掉自己的某个job

$ bkill 1234
Job <1234> is being terminated


挂起和恢复job

$ bstop 3421
Job <3421> is being stopped

$ bresume 3421
Job <3421> is being resumed


查看job的输出

$ bpeek 1234
<< output from stdout >>


查看服务器负载

$lsload


查看服务器状态

$bhosts


查看job的详细信息

$bjobs –l 1234


SGE

目前SGE是免费且开源的,国内也有不少公司在使用。但是使用起来,感觉差异很大,可能是习惯问题,我始终无法适应SGE。我也不推荐使用sge


Openlava

前面介绍了LSF是商业软件,授权费比较昂贵。这里推荐一个兼容LSF命令的软件,Openlava,其基于LSF 4.2发布的开源版本,目前最新的是3.3,由Teraproc公司主要开发和支持。推荐国内的大公司采用,只需要少量的支持费即可。目前主要基于x86linux环境,如果你有其他异构系统,需要联系厂家获取是否可以支持。如果大家对于采用openlava感兴趣,可以联系我,我可以协助测试。前面LSF的示例完全可以通过openlava实现。


 楼主| 发表于 2016-5-6 13:47:01 | 显示全部楼层
数据管理

1. 上传数据考虑因素

2. 下载数据如何审核及自动备份归档数据

3.数据访问的Audit

4. 数据分级及权限控制


数据上传

在一个公司,内外网隔离的情况下,必然有大量的数据上传需求。如何实现

上传呢?这是一个大问题。我们设计了一个数据中转站,允许公司内的用户登录,将数据放入home目录下,然后每隔一个小时,内网服务器通过rsync去获取数据,并sync到内网。

这里主要的问题是:防火墙一定要严格过滤,只允许内网服务器sync中转站的某个模块数据。

Upload.sh

#!/bin/bash


ProcNumber=`ps aux |grep rsync|grep -v grep|wc -l`


if [ $ProcNumber -eq 0 ];then


/usr/bin/rsync -acvz --delete --password-file=/root/rsync.pass root@10.x.x.100::home/exchange/upload/ >> /root/rsync.log

Fi


下载数据如何审核及自动归档

对于下载数据,我们要求进行人工任何。分多个层级,每一步需要审核人写审核意见,批准还是拒绝。任何一步拒绝,都将无法完成。

主要实现是:用户准备数据,发邮件给ithelp,然后ithelp会根据情况,分配审核数据的人员,其审核完成后,将数据放在第一级审核的目录dirA,然后由第二级审核人进行二次审核,完毕后将数据放入预备下载目录dirB,最后程序自动先备份数据,然后sync到数据中转站,并删除本地数据。DirA和dirB通过ACL设置了用户的访问权限,只有审核人员可以进入。

以上步骤,还可以插入数据检查及核实的程序,比如查看是否下载了源代码数据。


数据访问Audit实现


使用audit实现任何人访问源代码都将被记录,通过程序每天统计一次用户的访问记录,排序统计后自动发送邮件给相关的人员。

目前测试环境实现了5万个源代码的控制,但是只能在本地文件系统实现。否则会带来性能的问题。这样可以实现某个人一直查看的记录追踪,以及一段时间内比如离职前一周或者某一天将所有允许查看的文件都copy到其他目录的行为,可以当天晚上发送邮件给其安全部门的人员。


[root@dcs004 audit]# cat audit.rules |wc -l

51573

[root@dcs004 audit]# cat audit.rules|more

# This file contains the auditctl rulesthat are loaded

-w/test/test/linux-4.3/.get_maintainer.ignore -p r
-k kernelfiles

-w /test/test/linux-4.3/security/inode.c -pr
-k kernelfiles

-w /test/test/linux-4.3/security/Makefile-p r
-k kernelfiles

-w /test/test/linux-4.3/security/selinux/Makefile-p r
-k kernelfiles

-w/test/test/linux-4.3/security/selinux/netlink.c -p r
-k kernelfiles

-w/test/test/linux-4.3/security/selinux/.gitignore -p r
-k kernelfiles

-w /test/test/linux-4.3/security/selinux/hooks.c-p r
-k kernelfiles

-w/test/test/linux-4.3/security/selinux/Kconfig -p r
-k kernelfiles

-w/test/test/linux-4.3/security/selinux/selinuxfs.c -p r
-k kernelfiles

-w/test/test/linux-4.3/security/selinux/nlmsgtab.c -p r
-k kernelfiles

-w /test/test/linux-4.3/security/selinux/netnode.c-p r
-k kernelfiles

-w/test/test/linux-4.3/security/selinux/netif.c -p r
-k kernelfiles

-w/test/test/linux-4.3/security/selinux/netport.c -p r
-k kernelfiles

-w/test/test/linux-4.3/security/selinux/netlabel.c -p r
-k kernelfiles

-w/test/test/linux-4.3/security/selinux/exports.c -p r
-k kernelfiles

-w/test/test/linux-4.3/security/selinux/xfrm.c -p r
-k kernelfiles


Audit结果如下,通过分析处理后可以实现监控的目的。

ype=PATH msg=audit(11/03/201510:43:13.610:198339) : item=0 name=test/linux-4.3/drivers/infiniband/hw/cxgb4/t4fw_ri_api.hinode=73185587 dev=00:14 mode=file,664 ouid=root ogid=root rdev=00:00nametype=NORMAL

type=CWD msg=audit(11/03/201510:43:13.610:198339) :
cwd=/tools

type=SYSCALL msg=audit(11/03/201510:43:13.610:198339) : arch=x86_64 syscall=open success=yes exit=3 a0=0x181ede0a1=O_RDONLY|O_NOFOLLOW a2=0x0 a3=0x666e692f73726576 items=1 ppid=39759pid=40352 auid=root uid=root gid=root euid=rootsuid=root fsuid=root egid=root sgid=root fsgid=root tty=pts2 ses=13728 comm=mv exe=/bin/mv key=kernelfiles

----

type=PATH msg=audit(11/03/201510:43:13.617:198340) : item=0 name=(null) inode=73185587 dev=00:14mode=file,664 ouid=root ogid=root rdev=00:00 nametype=NORMAL

type=SYSCALL msg=audit(11/03/201510:43:13.617:198340) : arch=x86_64 syscall=flistxattr success=noexit=-95(Operation not supported) a0=0x3 a1=0x0 a2=0x0 a3=0x0 items=1ppid=39759 pid=40352 auid=root uid=root gid=root euid=root suid=root fsuid=rootegid=root sgid=root fsgid=root tty=pts2 ses=13728 comm=mv exe=/bin/mvkey=kernelfiles


数据分级及权限控制

主要是通过NFS ACLv4来实现项目的权限控制,通过将特定人员加入访问许

可,项目经理可以自我控制任何公司的人员是否具有访问权限。但是,数据的分级,需要数据拥有人员去判断,IT只是提供一种手段,并不具有分级的能力。

IT提供合适的手段,让用户在系统内部,知道如何申请和如何控制权限即可。


以下是通过nfs v4设置权限示例:


$nfs4_setfacl -e  /proj/xuesen

## Editing NFSv4 ACL for directory:/proj/xuesen

A::OWNER@:rwaDxtTnNcCy

A:g:GROUP@:tncy

A::EVERYONE@:tncy

A::projectmanagerA@powercore.com.cn:rwaDxtTnNcCy                  

添加下面行即可

A::username@powercore.com.cn:rxtncy      ###read only###

A::username@powercore.com.cn:rwaDxtTnNcy ###rwx###

这里的projectmanager是由管理员设置的某个项目经理的账号,username是你期望设置的用户名。

 楼主| 发表于 2016-5-9 09:25:41 | 显示全部楼层
版本管理

1. CVS

2. Subversion

3. Clisoft SOS

4. IC
Manage

5. Git


CVS用于代码的管理

CVS作为unix系统下非常经典的版本管理系统,适合于代码的简单管理。对权限控制很差,基本上只能按照group的方式来控制谁可以check out,check in.CVS没有二进制管理能力,无法对各种非文本的文档,比如word进行管理,只能用于代码。


CVS是一个C/S模式的版本控制系统,用于在软件开发过程中记录文件版本,协调开发人员保证文件同步,从而保证项目正确的进行并行开发,并支持版本回滚、bug 跟踪和补丁生成。使用CVS可以有效地对软件开发的源代码和开发文档进行统一的管理和组织。


主要功能如下:

同步的最新修改

文件的版本回溯

多人同时修改同一个文件产生的冲突

项目的分支开发

文件权限控制


Redhat Enterprise默认安装有cvs,如果没有,请安装cvs的rpm包。


CVS的基本使用:

创建一个仓库

#groupadd cvs

#useradd –d /data/cvsroot -gcvs cvs

#cvs –d /data/cvsroot init


配置环境

$vi ~/.cshrc

$setenv CVSROOT /data/cvsroot


项目的初始导入

进入到你准备到如的初始源代码目录

$cvs import -m "somecomments" project_name vendor_tag release_tag

执行后:会将所有源文件及目录导入到/data/cvsroot/project_name目录下

vender_tag: 开发商标记

release_tag: 版本发布标记

这个project可以给某个unix group授权chmod 775 root:asic/data/cvsroot/project_name,这样所有asic group的人都可以check in和check out了。


项目的CheckOut

$cvs co project_name


同步到最新

$cvs update


修改文件后CheckIn

$ cvs ci -m "somecomments" file_name


添加新文件

创建好新文件后,比如:touch newfile

cvs add newfile


对于图片,Word文档等非纯文本的项目,需要使用cvs add –kb 按二进制文件方式导入(k表示扩展选项,b表示binary),否则有可能出现文件被破坏的情况

比如:

cvs add -kb newfile.gif

cvs add -kb readme.doc


查看修改历史

cvs log file_name

cvs history file_name


其实CVS还有一种pserver的方式,可以使用客户端来进行管理。这样,即时/data/cvsroot没有被nfs 共享出来在其他服务器上也可以通过cvs进行版本控制。

分两步建立:

首先,建立xinetd启动服务

cat >>/etc/xinetd.d/cvspserver << "EOF"



service cvspserver


{


port
= 2401


socket_type = stream


protocol
= tcp


wait
= no


user
= root


passenv
= PATH


server
= /usr/bin/cvs


server_args = -f --allow-root=/data/cvsrootpserver


}

EOF



其次,客户端设置.cshrc (csh forexample)

$vi ~/.cshrc


setenv CVSROOT:pserver:username@192.168.x.x:/data/cvsroot

这里的username请换成自己的,后面的ip地址和路径,请换成符合实际服务器的路径。


Subversion

以下文档是很早的时候写的,跟最新版本可能存在一定差异,请注意。


subversion简介

多年来,版本控制系统一直都是CVS(Concurrent Versions System)的天下。CVS作为基

于RCS上建立,可以实现多用户协同工作的系统,可以记录文件的修改信息。这对于开发人员是非常有用的。

然而,CVS经过这么多年,也逐渐显示出一些不足,这个时候出现了一些商业的版本控制软件,比如Rational的ClearCase就是一个功能强大的商业软件,但是其价格也是非常昂贵的。

Subversion就是一种设计来解决CVS的局限性的软件。从2000年开始,Subversion开始开发,2001年8月开始用Subversion来管理Subversion的开发工作,到目前位置,subversion已经发展到了1.9.3版。

Subverion的主要特点有:

a.保留大多数CVS 特性,很多命令的选项基本通用

b.目录、重命名和文件meta-data都已经版本化,以前的CVS只能对文件版本化。

c.不可分隔的原子化提交,版本的变化是每次提交所有的文件版本都变化。

d.可以选择Apache作为网络服务器,集成于现有Apache控制的权限管理等。

e. 分支和标签是代价低廉(固定不变的)的操作

f.本地化的客户端/服务器,分层的库设计

g.消耗和修改部分的大小成比例,而不是数据的大小

h.Unix下的链接也可以实现版本化控制了

i.更加有效的处理二进制文件

j.更加人性化的命令输出

k.本地化提示信息。


Subversion的安装

Subversion是建立在一个可移植的APR(Apacheportable Runtime)上,所以Subversion可以建立在Apache的支持上,但是不仅限于必须使用Apache。Subversion可以做为Apache 2.0的一个模块,以WebDAV/DeltaV协议运行,也可以采用其自带的svnserver小型服务器运行。我们这里将采用Apache下WebDAV/DeltaV方式运行,所以需要检查Apache2.0是否已经安装好。

# yum install subversion

RHEL6默认安装的是1.6.11版本的subversion



Subversion和CVS的比较

1.不同的修订版本号。CVS将每个修改文件都赋予一个版本号,因此在CVS中,所有的文件版本号是不同的。

2.Subversion将目录版本化了。Subversion也开始跟踪目录的结构,任何对目录的svn操作都将会被记录,但是任何操作都必须提交后才生效。

3.离线工作更加方便。Subversion的工作原始副本在本地也有保留,任何对本地文件的修改,不需要连接到服务器去,就可以对比知道自己做了哪些修改。并且,提交修改的时候Subversion只将差异部分提交给服务器。

4.二进制文件和文本文件。CVS对二进制文件的版本化做的非常差,对于每次修改的二进制文件,CVS都会将更新的副本储存下来,大量占用了空间。而Subversion就不管是二进制文件还是文本文件,它都采用差异比较算法来表示更新的部分。CVS提交二进制文件需要带-kb标记,subversion不需要任何标记就可以识别二进制文件。


实例介绍

目前有一家公司,有两个不同的Group在进行开发,也就是说,两个项目组的成员是不允许获得另外一个项目组的开发代码的。当时,为了某些模块的协同工作,两个项目组的Project Manager又不得不互相取得对方的代码。

现在我们设计一个Subversion来做版本控制的系统,假设一共有6个用户,group1有user1,user2,manager1;group2有user3,user4,manager2.项目组分别为project1,project2.

由于我们的权限方面控制比较复杂,而适合权限复杂控制以及更好授权选择的方式,我认为以Apache+mod_dav_svn比采用独立的svnserve更加方便。


建立Apache+mod_dav_svn的subversion版本控制

(1).安装mod_dav_svn

#yum install mod_dav_svn

(2).基本的Apache配置

#cd /etc/httpd/conf

#vi httpd.conf

找到LoadModule部分,在LoadModule dav_module后面加入两行

LoadModule dav_module modules/mod_dav.so

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

在配置文件中,需要告诉Apache在什么地方保存的Subversion版本库,Location就是告诉Apache在特定的URL以及子URL下需要的特殊处理。

在文件的最后部分建立<Location>区块


<Location /svn>


DAV svn


SVNParentPath
/data/svn

</Location>

注意,任何Apache的web目录下不能存在svn这样的目录,否则会导致Apache不知道怎么解析。

(3).配置认证部分

前面的配置会让所有能访问你web的人都可以获得你的文件,并且可以提交他的修改。所以,为了安全,也为了一个很好的秩序,我们必须添加认证。

<Location /svn>


DAV svn


SVNParentPath
/data/svn


# access control policy


AuthzSVNAccessFile/etc/httpd/conf/access-control-file


# Only authenticatedusers may access the repository


Require valid-user


# Howto authenticate a user


AuthType Basic


AuthName"Subversion repository"


AuthUserFile/etc/httpd/conf/svn-auth-file


</Location>

其中的svn-auth-file是做用户名和密码认证的,这个文件采用htpasswd来生成和修改。

$htpasswd –cm /etc/httpd/conf/svn-auth-file user1
(
第一次使用需要带-c)

New passwd:*****

Re-type new password:*****

Adding password for user user1

$htpasswd –m /etc/httpd/conf/svn-auth-file user2

New passwd:*****

Re-type new password:*****

Adding password for user user2

…..

access-control-file文件的格式:

[groups]

project1 = user1 user2 manager1

project2 = user3 user4 manager2

[project1:/]

@project1 = rw

manager2 =rw

[/project2:/]

@project2 = rw

manager1 = rw

[/project2:/secret]

manager1 =

以上配置允许user1,user2,manager1,manager2访问project1的所有文件,并且都可以读写;user3,user4,manager2访问project2的所有文件可以读写,但是manager1只允许读写除了secret目录下的所有其他文件。


建立过程及基本使用

(1).CreatRepository

基本语法:

$svnadmin create
/data/svn/project1



#chmod 755 /data/svn

$svnadmin create /data/svn/project1

$svnadmin create /data/svn/project2

建立两个项目组的库,我们采用了默认的FSFS存储方式。

$ls /data/svn/project1

conf/ dav/ db/ format hooks/ locks/README.txt


(2).导入文件到Repository

我们已经建立了库,所以该我们导入我们的源文件到库里边的时候了。我们首先来准备一下两个项目组的文件,然后导入到库里。

A.准备需要导入的文件

$cd /home/svn

建立project1的文件目录结构,源文件在/somepath/source1/下面,是project1的项目源代码。

$mkdir source1

$mkdir source1/trunk

$mkdir source/branches

$mkdir source/tags

$ls source1

$mv /somepath/source1/*
source1/trunk/

project2的建立方法和上面类似

B.导入项目文件到库里

$cd source1

$svn import --message “Intial files for Project1”
file:///data/svn/source1

Adding
config.txt

Adding
xconnect_config.txt

Adding
ASIC_ADDR_SYNC

……

Project2的导入方法类似

导入完毕后,可以删除刚才准备的源文件了。

$rm –rf source1 source2


(3).获取一份源文件的拷贝


以用户user1的身份登陆系统,在自己的Home目录下,可以用命令svn checkout

的方式获得一份subversion控制下的源文件。如果不特别指名,获得的文件在本地目录

和在subversion下面的目录结构一致。所以,我们为了区分,应该指定一个本地的目录

名。


$svn checkouthttp://domain/project1/trunk
project1_trunk


[user1@server ~/test]$svn co
http://domain/svn/project1/trunk project1_trunk

Authentication realm: <http://domain:80> Subversionrepository

Password for 'user1':

A
project1/trunk/config.txt

A
project1/trunk/xconnect_config.txt

A
project1/trunk/ASIC_ADDR_SYNC

A
project1/trunk/ASIC_ADDR_SYNC/SW2ASIC_20051103

A
project1/trunk/ASIC_ADDR_SYNC/SW2ASIC_20051103/addr.txt

(4).编辑和提交修改


编辑文的文件,可以用你喜欢的任何编辑器,我们现在添加一个文件.

$touch test.txt

Add a line for this file

$svn add test.txt
添加一个文件到subversion,但是直到后面提交后才才库中生效

$svn status
查看哪些文件有变化

A
test.txt

$svn diff test.txt
比较本地文件和库中的不同

Index: test.txt

================================

--- test.txt
(revision0)

+++ test.txt
(revision0)

@@ -0,0 +1 @@

+Add a line for this file

$svn ci –m “add a line for test.txt”
提交修改了的文件

Adding
test.txt

Transmitting file data .

Committed revision 3.

$svn log test.txt 查看变化历史

---------------------------------------------------------------------

r3 | admin | 2005-11-12 14:43:36+0800 (Sat, 12 Nov 2005) | 1 line


add a line

---------------------------------------------------------------------

$svn update 获得最新的版本,使用这个命令获得他人的最新更改。

如果发生冲突,使用svn resolve解决


(5).Svn客户端常用命令

svn add
//
添加一个文件

svn checkout(coi)
//
从苦衷获取一个工作拷贝

svn cimmit(ci)
//
提交当前工作拷贝的更改到代码苦,如果出现冲突需要解决。

svn copy(cp)
//
做一个工作的拷贝

svn delete(del,remove,rm)
//
删除本地或者svn库中的文件或者目录

svn diff(di)
//
比较某个文件和库中对应的文件的不同,和系统的diff命令类似

svn export
//
导出一个无版本控制的目录树拷贝,用于可以运行的版本需要导出。

svn import
//
将当前目录下的文件导入到库中

svn info
//
查看当前目录下的某个文件或者文件夹的信息

svn list(ls)
//
列出当前拷贝的文件

svn mkdir
//
在本地或者库中新建一个文件夹

svn move(mv,rename,ren) 类似于系统的mv命令

svn status(stat,st)
//svn
工作拷贝的当前状态,和上次提交或者update后的对比

svn update(up)
//
将svn库中的文件同步到本地


(6).创建一个Tag和Branch

Subversion创建Tag和Branch和CVS不一样,它采用的是copy方式。

A.创建一个Tags,只能这个项目的Project Manager负责,下面以manager1用户登陆操作。

$svn copy –m “Create Tag version1” [url=]file:///data/svn/project1/trunk/[/url]
[url=]file:///data/svn/project1/tags/version1[/url]

$svn list [url=]file:///data/svn/project1/tags[/url]

version1

B.创建一个Branch

$svn
copy –m “createBranch a”
[url=]file:///data/svn/project1/trunk/[/url]
[url=]file:///data/svn/project1/branches/brancha[/url]

以user1登陆

$svn switch http://domain/svn/project1/branches/brancha

这样以后user1就以brancha作为工作的库目录,从这里开始作为分支。


(7).Merging a Branch


(8).Windows客户端的安装和使用

下载TortoiseSVN-xxx.msi,安装,然后CheckOut一个库的拷贝。


Clisoft SOS介绍

a.
业界最完整的版本控制工具. 具有动态连结及智能快取等强大功能

  • 完整得知所有使用者档案修改, 增减, 开启等记录...
  • 节省硬件的支出, 让系统管理员更有效控制数据的管理与储存
  • 对于硬件和软件设计资源     (design resouce), 设计者可以更有效的取得及运用
  • 单键标注(Tag)整个工作目录下所使用的版本.
  • 数据库快照(Snapshot)及最完整的安全控管机制.
  • 可任意任务分组&#184; 控制组员可擦写之目录及档案
  • 最简易的操作接口, 无需管理员. 工程师一小时上手
  • 提供命令模式, 易于与EDA工具整合.
  • 内建 Bug     Tracking 功能, 可通知同组伙伴所须修改之错误.
  • 提供丰富的管理工具及     Trigger 功能.
  • 与 Cadence     DFII 完整结合
  • 提供工作交接及内部教育训练一个最佳平台环境.
  • 提供最佳异地开发功能



这个软件主要是针对全定制IC设计的, 可以嵌入:

Cadence Virtuoso

Custom IC

Agilent Advanced Design System(ADS)

Mentor Pyxis

Synopsys Laker

Synopsys Custom Designer


sos.png



SOS是商业软件,只要购买了,安装和配置完全由厂家支持,这里就不再做详细的介绍了。


IC
Manage

没有接触过,据说也是一个不错的IC公司喜欢用的版本管理软件。


git

很好的一个分布式版本管理软件,在开源软件开发行业使用非常广泛。不过目前在IC设计行业所见不多,也许我们IC行业太落后了,没互联网和开源界对新技术的接受能力强。我们习惯用我们熟悉的东西。


搭建:

(1) yum install git

[root@eda ~]# git --version

git version 1.8.3.1

(2)创建git用户

[root@eda ~]# git --version

git version 1.8.3.1

[root@eda ~]# cd

[root@eda ~]# pwd

/root

[root@eda ~]# useradd git

[root@eda ~]# passwd git

Changing password for usergit.

New password:

Retype new password:

passwd: all authenticationtokens updated successfully.

[root@eda ~]# su - git

[git@eda ~]$ mkdir srv

[git@eda ~]$ ls

srv

[git@eda ~]$ cd srv


(3)初始化项目

[git@eda srv]$ git init--bare proj.git

Initialized empty Gitrepository in /home/git/srv/proj.git/

[git@eda srv]$ ls

proj.git


(4)Clone

[git@eda work]$ git clonegit@localhost:srv/proj.git

Cloning into 'proj'...

git@localhost's password:



(5)添加文件

[git@eda work]$ ls

proj

[git@eda work]$ cd proj/

[git@eda proj]$ touch abc.txt

[git@eda proj]$ vi abc.txt

wgh

test

"abc.txt" 2L, 9Cwritten

[git@eda proj]$ ls

abc.txt

[git@eda proj]$ pwd

/home/git/work/proj

[git@eda proj]$ git addabc.txt

[git@eda proj]$ git commitabc.txt -m "test file"


*** Please tell me who youare.


Run



git config --global user.email"you@example.com"


git config --global user.name "YourName"

需要设置提交者的个人信息

[git@eda proj]$ git config--global user.name "Guanghui"

[git@eda proj]$ git config--global user.email "wanggh@gmail.com"


(6)提交文件

[git@eda proj]$ git commitabc.txt -m "test file"

[master (root-commit)0455f79] test file


1 file changed, 2 insertions(+)


create mode 100644 abc.txt


[git@eda proj]$ git pushorigin master

git@localhost's password:

Counting objects: 3, done.

Writing objects: 100% (3/3),215 bytes | 0 bytes/s, done.

Total 3 (delta 0), reused 0(delta 0)

To git@localhost:srv/proj.git


* [new branch]
master -> master

[git@eda proj]$


(7)查看变化是否提交

我们需要重新git clone一份

[git@eda ~]$ git clonegit@localhost:srv/proj.git

[git@eda ~]$ cd proj/

[git@eda proj]$ ls

abc.txt

[git@eda proj]$ git log

commit0455f7997a895e5ffea3f016ec04bf2bdb7b25ad

Author: Guanghui <wanggh@xmail.com>

Date:
Fri Apr 15 21:44:12 2016 +0800



test file

发现已经存在我们刚才添加进入的一个文件了。


权限管理

要方便管理公钥,用Gitosis

要像SVN那样详细地控制权限,用Gitolite

 楼主| 发表于 2016-5-9 09:27:24 | 显示全部楼层
邮件系统

为什么考虑外网邮件系统托管,而不是自己搭建。

当初运营邮件系统的时候,考虑过多方面因素,最后选择托管外部邮件系统,是因为外部托管有几个非常重要的特点:

(a)不用自己运营邮件服务器,使IT更轻松

(b)自己运营一个长期对外的邮件系统,安全考虑不如托管在外,由托管的运营

商负责更合适。

(c)托管出去,垃圾邮件过滤系统比自己运营效果好很多。

(d)托管出去的邮件系统,可以随时随地让用户都能及时收到邮件。

最后,我们综合考虑,采用了腾讯的企业邮箱作为托管方。目前运营下来,一直表现良好,可以跟微信集成,一旦有新邮件,微信第一时间会通知。


如何使用postfix搭建自己的内部邮件系统

但是,托管邮件也有一些不足的地方,比如无法更内部邮件集成在一起。我们采用LSF或者openlava进行任务分配的时候,在job完成之时,会发邮件通知。但是目前托管的邮件系统显然无法满足要求,那么我们就需要在内网建立一套邮件系统来满足基本的需求。


(a)使用了AD 2008R2提供的NIS Server

(b)配置内容如下:

(b1) postfix

cat /etc/postfix/main.cf

cat main.cf|grep -v \#

queue_directory = /var/spool/postfix

command_directory = /usr/sbin

daemon_directory = /usr/libexec/postfix

data_directory = /var/lib/postfix

mail_owner = postfix

myhostname = mail.abc.com.cn

mydomain = abc.com.cn

myorigin = $mydomain

inet_interfaces = all

inet_protocols = all

mydestination =$myhostname, localhost.$mydomain, localhost, $mydomain

unknown_local_recipient_reject_code = 550

mynetworks =192.168.1.0/24, 192.168.10.0/24, 127.0.0.0/8

relay_domains =$mydestination


alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases


debug_peer_level = 2


debugger_command =


PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin


ddd $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail.postfix

newaliases_path =/usr/bin/newaliases.postfix

mailq_path = /usr/bin/mailq.postfix

setgid_group = postdrop

html_directory = no

manpage_directory = /usr/share/man

sample_directory =/usr/share/doc/postfix-2.6.6/samples

readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES


message_size_limit =50000000

mailbox_size_limit =120000000

smtpd_sasl_auth_enable =yes

smtpd_sasl_security_options=noanonymous

broken_sasl_auth_clients= yes

smtpd_recipient_restrictions= permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

smtpd_sasl_application_name= smtpd

smtpd_sasl_local_domain=''

smtpd_client_restrictions= permit_sasl_authenticated


(b2)dovecot

/etc/dovecot/dovecot.conf

protocols = imap pop3


/etc/dovecot/conf.d/

(1)10-auth.conf

disable_plaintext_auth = no


auth_mechanisms= plain

(2)10-mail.cf

mail_location = mbox:~/mail:INBOX=/var/mail/%u

(3)10-ssl.conf

ssl = no


ssl_cert= </etc/pki/dovecot/certs/dovecot.pem

ssl_key = </etc/pki/dovecot/private/dovecot.pem


(c): sasl

/etc/sasl2/smtpd.conf

log_level: 3

pwcheck_method: saslauthd

mech_list: plain login



启动服务:

[root@inmailrhel65]# chkconfig --list|grep sasl

saslauthd
0ff
1ff
2ff
3:off
4:off
5:off
6:off

[root@inmailrhel65]# chkconfig
--level 345 saslauthdon

[root@inmail rhel65]# /etc/init.d/saslauthd start

Starting saslauthd:
[
OK
]

/etc/init.d/postfix
restart

/etc/init.d/dovecotrestart



如何实现外网邮件自动转发到内部

搭建了内部邮件系统,我们发现,如果能让外部的邮件自动转发到内部,不需要时刻去关注外部邮箱是一件更幸福的事情。但是,因为某些安全方面的原因,我们无法使用内部邮寄系统发送邮件到外部网络。


由于涉及到安全方面的问题,我这里只讲基本的实现方法及原理

(1)搭建一台内部中转服务器

这台服务器可以访问腾讯托管的服务器,也允许腾讯邮件服务器访问他的25端口用于腾讯服务器发送邮件给它。

(2)防火墙设置端口映射,映射防火墙的25端口到这台中转邮件服务器的25端口。

(3)设置外部邮件的DNSMX解析记录

A记录
mail.int.abc.com.cn
221.xxx.30.42

MX record
@int.abc.com.cn
mail.int.abc.com.cn

(4)用户设置自己的邮件自动转username@int.abc.com.cn

 楼主| 发表于 2016-5-9 09:28:17 | 显示全部楼层
EDA软件管理软件的目录管理(单一版本的EDA软件管理)

[root@zh02 /]# tree -L 2/tools

/tools

|-- cadence

|
|-- EDI141

|
|-- IC615

|
|-- INCISIV131

|
|-- LIBERATE13.14

|
|-- MMSIM131

|
|-- SSV132

|
|-- iscape0423

|-- env

|
|-- cshrc.cds

|
|-- cshrc.mgc

|
`-- cshrc.syn

|-- mentor

|
|-- aoi_cal_2014.3_27.21

|
|-- docs_cal_2014.3_16.15

|
|-- install.ixl

|
|-- tessent_2014.4

|
`-- tessent_2015.1

`-- synopsys


|-- SpyGlass-5.2.1.1


|-- cx_vK-2015.06-SP1


|-- esp_vK-2015.06-SP1


|-- finesim_vK-2015.06-SP1


|-- fm_vK-2015.06-SP2


|-- fpga_vJ-2015.03-SP1


|-- hspice_vK-2015.06-SP1


|-- icc_vK-2015.06-SP2


|-- installer_v32


|-- laker_v2015.03


|-- leda_vK-2015.09


|-- pts_vK-2015.06-SP2


|-- starrc_vK-2015.06-SP2


|-- syn_vK-2015.06-SP2


|-- txs_vK-2015.06-SP2


|-- vcs_vK-2015.09

`-- verdi_vK-2015.09


不同软件版本的管理

建议/tools/oss 下建立相关目录,比如

[root@zh02 /]# tree -L 2/tools/oss

/tools/oss

|-- gcc

|
|-- 4.4.7

|
`-- 5.3.0

|-- make

|
|-- 3.81

|
`-- 4.0.90

`-- python


|-- 2.6.6


|-- 2.7.11

`-- 3.5.1

然后通过Modules来管理即可,当然,你也可以用这个方法管理多个eda软件版本


IC设计中,我们经常遇到一些多个版本软件的需求。
项目A需要用vcs 2012.09,而项目B却需要vcs 2014.12这样的情况,如何让设置的环境变量比较通用?让用户自己选择呢?

Modules就是这样的一个工具,使用非常方便,RHEL6默认就安装了这个软件的
# rpm -qa|grep modules
environment-modules-3.2.10-1.el6_5.x86_64

首先,修改.modulspath
# cat /usr/share/Modules/init/.modulespath
/tools/env
然后,在/tools/env下创建文件
# pwd
/tools/env
[root@stu001 env]# tree
.
|-- gcc
|   |-- 4.4.6
|   `-- 4.8.1
|-- icc
|   `-- 13.1.1
`-- vcs
    |-- 2012.09
    `-- 2014.12


以/tool/env/vcs/2012.09文件为例
cat vcs/2012.09
#%Module1.0#####################################################################
##
## modules modulefile
##
## modulefiles/modules.  Generated from modules.in by configure.
##
proc ModulesHelp { } {
        global version prefix

       puts stderr "\tAdds VCS 2012.09 to your environment,"
}

module-whatis  "Adds VCS 2012.09 to your environment"

# for Tcl script use only
set    version         2014.12
set     VCS_HOME       /tools/synopsys/vcs_vG-2012.09

prepend-path   PATH           $VCS_HOME/bin{VCS_HOME}/amd64/bin
prepend-path   VCS_HOME        /tools/synopsys/vcs_vG-2012.09
prepend-path   LD_LIBRARY_PATH                 xxxx

module         use            /usr/share/Modules
使用方法:
# module load vcs/2012.09
# which vcs
/tools/synopsys/vcs_vG-2012.09/bin/vcs
# env|grep VCS
VCS_HOME=/tools/synopsys/vcs_vG-2012.09
# module switch vcs/2014.12
# which vcs
/tools/synopsys/vcs_vJ-2014.12/bin/vcs
# env|grep VCS

查看当前的modules

# module avial



License管理

目前大部分eda软件都是使用flexlm管理license,具体方法网上有很多资料,不再详述。

建议专门建立一个账号来负责license的管理,比如admin

$mkdir admin

[admin@ lic]$ ls

Synopsys.dat
cadence.dat mentor.dat bin/

[admin@$ pwd

/home/admin/lic

$bin/lmgrd –c synopsys.dat –lsyn.log

$bin/lmgrd –c cadence.dat –lcds.log

$bin/lmgrd –c mentor.dat –lmgc.log


然后在客户端设置对应的环境变量即可

$setenv LM_LICENSE_FILE 27000@licserver:1717@licserver:5280@licserver

$lmstat 就可以看到了。

 楼主| 发表于 2016-5-10 09:18:11 | 显示全部楼层
安全外部入侵的防范

外部入侵防范,需要在互联网入口处安装防火墙,入侵检测等手段。同时,对外提供服务的端口最好严格限制能访问的源地址。比如,提供ftp服务给合作伙伴,需要对方将他们的internet ip地址在你的防火墙上做限制,只能他们的ip访问你的ftp服务。


内部人员泄密的防范

内部人员泄密的概率高很多,但是对内还需要考虑工作的方便性。目前,能够很好的防范内部无意或者恶意泄密的,要遵循两个原则:(1).内部人员不能物理接触数据 (2).任何外发数据需要审核及归档备份 (3).数据分级分类,由项目经理控制权限。


展开来说,就是数据都需要放在服务器区域,而不允许数据放在用户直接接触的客户端。客户端只是一个显示终端。这样,除了截图,无法得到公司的IP数据。


但是,我们还需要经常外发数据,比如发往代工厂的数据,下载到fpga上进行仿真验证的数据,发给客户的支持文档和数据。这些数据,建议采用两级审核,加上所有数据归档永久备份的方式实现有据可查,这样大大减少了恶意泄露的可能。


权限控制acl

权限控制主要采用nfs v4 acl,我们可以实现某个目录项目经理可以自行增加删除进入的用户。

这里以netapp作为存储,linux客户端挂载的方式测试配置nfs v4 acl。


(a).Svm上建qtree,增加 nfsv4 nfsv3导出选项及quota。

设置必须的选项,putty login netappwith admin account

nfs show -vserver svm_nfs

nfs server modify -vserversvm_nfs -v4-id-domain nfsv4.powercore.com.cn

nfs server modify -vserversvm_nfs
-v4-numeric-ids enabled

vserver modify
-vserver svm_nfs
-ns-switch nis,file


vserver services name-servicens-switch show



Source

Vserver
Database
Order

---------------------------
---------

fas2554-1
hosts
files,


dns

svm_nfs
hosts
files,


dns

svm_nfs
group
nis,


files

svm_nfs
passwd
nis,


files

svm_nfs
netgroup
nis,



files

svm_nfs
namemap
files


fas2554-1::> vservername-mapping show

This table is currentlyempty.

暂时不用,不需要mapping,只是nfs,不需要cifs mapping。


(b). Client

[root@dcs004 projects]# cat/etc/idmapd.conf |more

[General]

#Verbosity = 0

# The following should be setto the local NFSv4 domain name

# The default is the host'sDNS domain name.

#Domain = local.domain.edu

Domain = powercore.com.cn


#chkconfig –add rpcidmapd

#chkconfig –list |greprpcidmapd

# /etc/init.d/rpcidmapdrestart


(c). mount options with nfsv4

10.100.xx.16:/projects/projects
nfs
rw,hard,rsize=32768,wsize=32768,vers=4,nointr,timeo=600,tcp
0
0


(d). nfsstat –m

[root@dcs004 ~]# nfsstat
-m

/projects from 10.100.xx.16:/projects/


Flags: rw,relatime,vers=4,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.100.xx.57,minorversion=0,local_lock=none,addr=10.100.xx.16


(e). qtree create a newproject named guandu


(f). root登陆,使用nfs4_getfacl
nfs4_setfacl

nfs4_setfacl
-a A::wgh@nfsv4.powercore.com.cn:rwaDxtTnNcCyguandu


chown root:root guandu

chmod 700 guandu


[root@dcs004 projects]#nfs4_getfacl
guandu/

A::wgh@nfsv4.powercore.com.cn:rwaDxtTnNcCy

A::OWNER@:rwaDxtTnNcCy

A:g:GROUP@:tncy

A::EVERYONE@:tncy


nfs4_setfacl
-a A::wgh@nfsv4.powercore.com.cn:rwaDxtTnNcCyguandu




数据备份和归档及snapshot

数据备份,建议多考虑D2D的方式。Netapp建议采用snapvault或者snapmirror。Linux下可以采用inotify+rsync。同时,备份服务器建议采用廉价的大容量磁盘或者盘柜。比如DellR730xd,12*4TB做raid6,然后采用btrfs或者zfs文件系统。通过自动的snapshot和compression feature实现备份存储的最优化。


传统的IC设计环境经常采用的是昂贵的专用存储,比如netapp。但是未来的趋势应该是廉价的存储为主,要在廉价存储上实现不弱于专有存储的稳定性和功丰富功能,还有一段路走。目前主要有两个可能的方向:ServerSAN和cloud存储,比如vmware的VSAN和ceph。我们还可以采购一大堆廉价的盘柜+服务器实现,按project的方式使用autofs将负载分开到不同服务器。


我目前已经实现了非常有效的廉价存储系统方案。在千万级别文件的可以实现快速备份和快速恢复,用户也可以自行恢复误删除的数据。


特别提示:一定要在每周或者每个月备份一份最重要的数据到银行的保险柜,以防机房或者大楼火灾导致数据完全丢失。


Quota管理

Quota一般我们对/home空间及/data数据空间实现,主要防止某个用户将数据在短时间塞满磁盘,导致其他人的工作受到影响。


Quota实现了类似cgroup对内存管理的功能。


目前netapp的存储,zfs和btrfs等都可以很好的实现quota。传统的文件系统,xfs也可以毕竟容易实现基于用户或者group的quota,xfs还可以实现projectquota。ext3和ext4文件系统也可以实现用户和组的quota。


对于安全,最后一点总结:安全是一个整体,切勿以点为目标。

 楼主| 发表于 2016-5-13 09:07:59 | 显示全部楼层
附录:


设备和软件的选型推荐(中大型公司):

1.
交换机

华为CloudEngine 6800数据中心交换机

48*10G SFP+ 4*40G QSFP+

Cisco Nexus 5000 系列

Cisco Nexus 5672UP 48*10G +6*40G


2.
服务器

目前推荐1U的服务器主要有

戴尔R630
华为RH1288 V3

2U推荐服务器有

戴尔R730
华为RH2288 V3和RH2288H V3


3.
存储

Netapp 8000系列(注意8000容易被厂家控价)

可以增加一台2500作为D2D备份用,注意购买snapvault或者snapmirror的license。


4.
防火墙设备推荐

Fortigate 1500D

拥有8个万兆光口,16个千兆光口和16个千兆电口,以及支持1200万并发连接数和30万条每秒新建连接。可以用于隔离数据中心的各种不同等级服务。


5.
登陆软件

EoD 或者 Go-global,更推荐EoD,其功能要更丰富,可以采用Gateway模式,更加安全可靠。


6.
调度管理

LSF 或者 Openlava。如果是新建,强烈建议采用Openlava企业版。具体可以问我了解,可以省下几百万费用。



设备选择和软件选择推荐(小公司)



1.
交换机

TOR的交换机推荐华为的即可

S5720-32X-EI-AC

2410/100/1000Base-T以太网端口,4100/1000 SFP4个万兆SFP+2QSFP+


S5720-28X-SI-AC

2410/100/1000Base-T以太网端口,4个复用的千兆ComboSFP,4个万兆SFP+,1150W交流电源


华三

S5800-32C

2410/100/1000Base-T以太网端口,41/10G SFP+端口,1个业务插槽;


如果服务器比较多,需要采购24或者48口10G的交换机,提供服务器之间更快的互联。


2.
服务器

目前推荐1U的服务器主要有

戴尔R630
华为RH1288 V3
浪潮NF5180M4


2U推荐服务器有

戴尔R730
华为RH2288 V3和RH2288H V3
浪潮NF5280M4



3.
存储

Netapp 2500和Netapp 8020(注意8000容易被厂家控价)

自行设计可以采用戴尔的服务器+盘柜(MD3060e),价格便宜,稳定性不如专有存储。建议先用于备份系统。


4.
防火墙设备推荐

Fortigate 200D

深信服


5.
登陆软件

EoD > Go-global > VNCenterprise > X2go > FreeNX > VNC free


6.
调度管理

LSF或者 Openlava,不推荐采用SGE
 楼主| 发表于 2016-5-13 09:11:30 | 显示全部楼层
附件:
大型IC设计中心的IT环境2016v1.pdf (1.75 MB, 下载次数: 587 )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-1 07:44 , Processed in 0.033583 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表