配置科研用服务器
一般有基因组测序分析需求的小型实验室都会配置自己的科研服务器。那么,对于新手来说,服务器的选购、软件安装、系统安全方面的内容都有很多课题需要自己研究。 本文介绍一下我踩过的坑。
选购要点
在服务器选购上,选择塔式服务器,其中 Dell T640 是目前流行的款式。 其他配置要包含至少 128 Gb 内存、60 Tb 的硬盘空间,以及 16 核心(32 线程)的 CPU。 如果做人类转录组的分析,在比对步骤,有些软件必须要求最低内存配置是 30 Gb, 言外之意,你的服务器内存必须超过 32 Gb。 假如有对持续供电的需求,可以在单独配置一个外接UPS电池,在实验室意外短时间停电期间用来保证服务器正常工作。 但由于UPS电池一般是铅酸蓄电池(不是锂电池),占地面积大,其使用寿命大约为7年,如需配置还应考虑到安全和自身需求问题。
选购好服务器后,请一定将起放置在平稳,不需移动的地方,电源插头也不应经常插拔。
系统和软件配置
由于 Linux 多种分发版本自身迭代有快慢,而一些分析软件包的开发者可能仅在常见分发版本中开发软件,所以建议所有用户只使用 Ubuntu 系统的,方便测试科研软件包。 如果使用 CentOS 系统一定要注意最近他们版本更新方案,尽量装最新版的。我认为 CentOS 不应该作为科研服务器的系统,它软件迭代速度太慢,很多库文件更新不及时,导致无法测试一些别人开发的软件包。
所有可以全局安装的系统软件和依赖库文件,应使用 Ubuntu 的包管理系统 apt-get
来进行安装,强烈不建议自己编译安装系统文件。
对于科研相关的软件包,应安装在所有用户都可以获取的地方,并且与系统软件相区分,因此建议安装在根目录下的 /opt
文件夹中。软件包安装规范应至少在软件所在文件夹的命名上体现出版本信息,例如 /opt/samtools-1.12/
。
对于一些数据库文件,应专门安排在 /opt/databases
这样的指定文件夹中,在子文件夹命名时要体现出数据的版本信息或者下载时间(年月日)。
只应在全局中安装 R 软件及其依赖的基本包(即通过 apt install r-base
命令安装时,所提供的必须依赖和包)。其余包,应由用户在自己的/home
文件夹中进行安装。我曾在一台服务器上看到了全局安装的一些附加包,而这些包用户在使用时也会自己安装,所以在 R 环境中会显示出两个包文件,应尽量避免这种情况给用户造成混乱。
对于Python,一定要安装 conda
,然后让用户自己选 Python 版本创建环境,安装相关软件包。我也曾经发现过有些服务器上装了三四个不同版本的 Python,当用户安装需要使用的软件包就非常麻烦,如果没有使用经常搞不清楚自己所用的软件安装到哪个 Python 版本下。
conda create -n env_name python=x.x
conda activate env_name
conda deactivate env_name
conda env remove -n env_name
系统安全
对于系统安全,首先在创建系统用户的时候,一定使用强健的初始密码。我曾经遇到过使用了弱密码创建初始用户,结果有人撞库成功,入侵服务器。
因此,还应加强服务器ssh登录的端口设置,以及安装一些基本的防护软件,例如 fail2ban
。
可以给用户开 sudo 权限,方便他们自行全局安装一些特定依赖,但不要把 root 密码搞得尽人皆知。
为了防止错删文件,应将 rm
命令替换为 trash-put
,为此,要安装软件包 apt install trash-cli
。
除此之外,经常要“异地”备份重要文件。