生信服务器的搭建之旅

如何搭建服务器

服务器是生信人员所必须的,如何搭建服务器则是必须技能之一,本文将记录自己如何搭建生信平台之安装centos8系统。搭建服务器,真的好辛苦。我个人比较喜欢centos系统,于是本文中主要基于centos8系统开展的。

  • Linux是自由软件,其发展出来的版本有很多。
  • Red Hat:我们常说的红帽,开源但收费。
  • Ubuntu:乌班图,开源、免费,主要面向桌面用户。
  • SUSE:主要是占领欧洲市场。有数据显示占据了近80%的Linux市场,数据未经验证。
  • CentOS:全名为“社区企业操作系统(Community Enterprise Operating System)”,提供长期免费升级和更新服务,自由使用。国内最大的服务器操作系统,现在基本所有的互联网公司后台服务器都采用CentOS。

安装CentOS8 系统

下载CentOS 8 ISO 文件;

从官网https://www.centos.og/下载安装包是最可靠的 x86_64版本即可

制作U盘启动盘

使用UltralSO软件将该文件刻录到U盘(大小16G),作为启动盘;重启系统,选择U盘启动;这里不建议使用UltralSO软件,本人在使用的过程出现了写入U盘的文件存在缺失的问题,推荐使用Win32DiskImager软件。

选择启动方式

一般服务器的硬盘是需要设置阵列硬盘也就是raid,该阵列既可以是硬件raid也可以是软件raid,但是本次我们不设置。选择启动方式是U盘启动,这需要设置BIOS卡的设置,不同的品牌的电脑刷入BIOS的按键不一样,戴尔是F12。进入BIOS选择U盘启动,然后进入到 Install CentOS 8选项。先择偏好语言后,进入安装模式。

配置系统

  1. 设置键盘布局;
  2. 日期和时间;
  3. 安装来源;
  4. 软件选择:Server with GUI;
  5. 安装目标:指定CentOS 8安装到哪一个硬盘;最下方的删除和增加可以对硬盘进行处理
  6. 自定义分区:
    1. /boot -2GB (ext4); -> 4GB : 用来存放与Linux系统启动有关的程序,建议大小1G
    2. / -12GB(ext4); -> 200GB :根目录,所有的目录都在该目录下面,建议大小为5G以上
    3. /home -20GB(ext4); -> 300GB :存放普通用户的配置文件,是普通用户的宿主目录
    4. /disk -7TB (ext4); -> 6TB : 用户工作目录之一(单独划出一个/data分区存放数据)
    5. swap -1GB(swap); -> 100GB : 交换区,建议大小是物理内存的1~2倍
    6. /tmp -5GB(ext4); -> 50GB :降临时盘在独立的分区,可避免文件系统塞满是影响系统的稳定性,建议大小1G以上
    7. /usr -10GB (ext4); -> 50GB : 用来存放Linux系统中的应用,其相关数据较多
    8. /var -10GB(ext4); -> 50GB : 用来存放Linux系统中经常变化的数据及日志文件
  7. Kdump: 强烈建议开启该功能;
  8. 点击完成安装,然后再点击accept changes,以上分区设置会写入硬盘中;
  9. 选择安装:begin installation;
  10. 设置root用户及其密码;
  11. 创建新用户;
  12. 完成安装并重启系统。

配置网络

/etc/sysconfig/network-scripts目录下存放着网卡的配置文件,文件名称是ifcfg- 网卡名称

1
2
ls /etc/sysconfig/network-scripts/
# ifcfg-enp6s0 ifcfg-enp7s0

设置备份网卡文件后,修改网卡文件并设置静态IP地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # default dhcp
DEFROUTE=yes
################ new setting ################
IPADDR=192.168.116.39 #setting IP address
NETMASK=225.225.225.0 #set netmask
GATEWAY=192.168.116.1
DNS1=114.114.114.114
############################################
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp7s0
UUID=3b469111-5e5a-448f-89a0-ca29e13b
DEVICE=enp7s0
ONBOOT=yes # default value "no"

重启网络服务,使用nmcli reload命令

1
nmcli reload

防火墙端口管理

Linux的防火墙默认对外只开启22端口,该端口适合ssh远程登陆,其他端口需要自己设定。

查看防火墙状态

1
firewall-cmd --state

查看防火墙所有开放的端口

1
firewall-cmd --zone=public --list-ports

开放和关闭8080端口

1
2
3
firewall-cmd --zone=public --add-port=8080/tcp --permanent 

firewall-cmd --zone=public --remove-port=8080/tcp --permanent

配置立即生效

1
firewall-cmd --reload

关闭防火墙

1
systemctl stop firewalld.service

查看监听的端口

1
netstat -lnpt

用户管理

新增用户并设置密码

useradd 是新增用户;passwd是新用户设置密码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
root@dong ^_^ useradd user2		//新增用户
root@dong ^_^ passwd user2 //修改密码
Changing password for user user2.
New password: //第一次输入密码
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: //第二次输入密码
passwd: all authentication tokens updated successfully.

# 永久删除用户
userdel (-r) usename

# 修改账户
usermod -s /bin/ksh -d /home/z –g developer sam
# 此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer

ssh登陆集群并修改密码

下载putty或者其他终端软件

1
2
3
ssh user2@192.168.106.205   // ssh远程登陆

pwd //修改用户密码

查看用户信息

1
2
id zouhua
# 1001(zouhua) gid=1001(zouhua) groups=1001(zouhua)

创建用户组

1
2
3
4
5
6
7
8
9
10
# 建立组别
groupadd groupname
# 新建用户同时增加工作组
useradd -g groupname username
# 给已有用户增加工作组
gpasswd -a useranme groupname
# 从某组移除用户
gpasswd -d username groupname
# 修改文件属主
chown -R username:gorupname folder

权限管理

权限类型

  • r 读(4)
  • w 写(2)
  • x 执行(1)
  • -无权限(0)
1
2
3
4
5
6
7
8
9
10
11
# 查看文件权限
ls -lh
###################################################
# drwxr-xr-x. 1 root group 0 Jul 14 18:15 testfile
# 1)root用户对testfile的权限是:rwx(7)
# 2)group组对testfile的权限是:rx(5)
# 3)other用户对testfile的权限是x(1)
##################################################

# 权限分配
chmod (-R) 755 testfile

linux用户和用户组管理

1
2
3
4
5
6
# 修改目录用户组
chgrp bioinfor ./user
# 赋予组写的权限
chmod g+w ./user
# 赋予组sgid属性
chmod g+s ./user

配置个人环境

在修改密码或访问成功后,用户可以在根目录下配置(修改.bashrc.bash_profile)终端。通常建议用户做如下配置:vi ~/.bash_profile 按住inserti使得vim进入可编辑状态,然后粘贴以下内容,保存后退出,最后再在终端输入source ~/.bash_profile即可加载新环境。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# alias
alias ls='ls -hF --color=tty' # classify files in colour
alias dir='ls --color=auto --format=vertical'
alias vdir='ls --color=auto --format=long'
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
alias llh='ls -lh'
alias le='less -S'
alias brc='vi ~/.bash_profile'
alias src='source ~/.bash_profile'
alias wl='wc -l'
alias rm='rm -i'
alias d1='cd /disk1/'
alias d2='cd /disk2/'
alias d3='cd /disk3/'

# export
export CLICOLOR=1
export PS1="\[\e[01;32m\]\u@\h \[\033[36;1m\]\w\[\033[0m\]\n\[\e[32;1m\]> \[\e[0m\]"

. /disk/share/common_env/ComEnv

另外建议用户配置vim文件 vi ~/.vimrc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
set number
set nocompatible " no compatible
set showmode " show vim mode
set guioptions-=T " delete gui toolbar
set ruler " show the last row status
filetype on " check filetype
syntax on " color and syntax

set history=1000 " line of history
set background=dark " bg

set autoindent " auto indent
set smartindent " smart indent
set ts=4 " tab for 4 spaces
set expandtab
set autoindent
set shiftwidth=4 " shift for 4 spaces
set cursorline " line under cursor
set backspace=indent,eol,start

set hlsearch " highlight search
set showmatch " match mode
set incsearch " search while inputing

let &termencoding=&encoding
set fileencodings=utf-8-bom,ucs-bom,utf-8,cp936,gb18030,ucs,big5,gbk
set fileencodings=utf8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf8
set encoding=utf8

扩展硬盘

因服务器存储太小,需要对其进行扩展存储。扩展过程包含格式化硬盘以及挂载硬盘。

查看服务器硬盘

需要在root账户下,使用该命令。能看到/dev/sde 盘阵是刚刚加载的盘。也可以使用 lsblk -f

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo  fdisk -l 

#################################################################
# Disk /dev/sda: 477 GiB, 512110190592 bytes, 1000215216 sectors
# Units: sectors of 1 * 512 = 512 bytes
# Sector size (logical/physical): 512 bytes / 512 bytes
# I/O size (minimum/optimal): 512 bytes / 512 bytes
# Disklabel type: dos
# Disk identifier: 0x911ebd79
#
# Disk /dev/sde: 7.3 TiB, 8001563222016 bytes, 1953506646 sectors
# Units: sectors of 1 * 4096 = 4096 bytes
# Sector size (logical/physical): 4096 bytes / 4096 bytes
# I/O size (minimum/optimal): 4096 bytes / 4096 bytes
# Disklabel type: dos
# Disk identifier: 0x108d1bc4
#################################################################
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
lsblk -f

#################################################################
# NAME FSTYPE LABEL UUID MOUNTPOINT
# sda
# └─sda1 ext4 f76fa31e-4be2-4ae4-8c66-175a293e07e2 /
# sdb
# ├─sdb1 ext4 e11d15f6-8659-415f-9979-67d7a70de8ce /boot
# ├─sdb2 ext4 6ccc51c3-7e70-4e2d-bd4d-7bc19d4b4be6 /home
# ├─sdb3 swap 6816dbbb-a69e-4aea-989d-d58145572b37 [SWAP]
# ├─sdb4 xfs fde75538-01ff-46c1-aa89-06f9bcf63e52 /usr
# ├─sdb5 ext4 bf3ac317-a7ce-4436-89d0-e333c0df0f66 /tmp
# └─sdb6 ext4 e3814a16-55d3-42e0-ac1d-b741efd1eaf2 /var
# sdc ext4 589488b4-8ee3-4a26-aa54-a5198fc7ce7f /disk1
# sdd ext4 e2a1da00-a9bd-4b8b-9b2b-b7deacb38b5c /disk2
# sde
#################################################################

sde盘是刚刚加载的盘阵,filesystem 不是linux ext4文件系统,需要格式化后再挂载。

使用fdisk命令对sde硬盘分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
fdisk /dev/sde 

#################################################################
# Welcome to fdisk (util-linux 2.32.1).
# Changes will remain in memory only, until you decide to write them.
# Be careful before using the write command.
#
#
# Command (m for help): n
# Partition type
# p primary (0 primary, 0 extended, 4 free)
# e extended (container for logical partitions)
# Select (default p): p # 打印分区
# Partition number (1-4, default 1): 1 # 新建分区
# First sector (256-1953506645, default 256):
# Last sector, +sectors or +size{K,M,G,T,P} (256-1953506645, default 1953506645):
#
# Created a new partition 1 of type 'Linux' and of size 7.3 TiB.
#
# Command (m for help): w
# The partition table has been altered.
#################################################################

格式化硬盘

1
mkfs -t ext4 -c /dev/sde

挂载硬盘

1
2
3
4
5
6
7
# 短暂挂载
mkdir /disk3
mount /dev/sde /disk3

# 永久挂载
vi /etc/fstab
/dev/sde /disk3 ext4 defaults 0 0

查看是否正常挂载

1
2
3
4
5
6
7
cd /disk1
df -h ./

#################################################################
# Filesystem Size Used Avail Use% Mounted on
# /dev/sdd 7.3T 93M 6.9T 1% /disk2
#################################################################

查看服务器资源使用情况

可以通过tophtop命令查看服务器资源使用情况,也可以加入- u username参数查看指定用户资源使用情况。方便用户按照剩余资源运行脚本。

1
2
3
4
5
6
7
top 
#top - 08:57:00 up 14:04, 3 users, load average: 1.06, 0.90, 0.53
#Tasks: 719 total, 2 running, 717 sleeping, 0 stopped, 0 zombie
#%Cpu(s): 1.8 us, 0.2 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
#MiB Mem : 128561.0 total, 122560.4 free, 4129.2 used, 1871.4 buff/cache
#MiB Swap: 32768.0 total, 32768.0 free, 0.0 used. 123462.3 avail Mem
# 关注%Cpu(s)的wa前面的数字,数值越大表明CPU占用越多;MiB Mem展示服务器内存使用情况;

查看服务器硬盘使用情况

  • 显示文件或目录所占的磁盘空间

    1
    2
    3
    4
    du [option] 文件/目录

    -h 以容易理解的格式(给人看的格式)输出文件系统分区使用情况,例如 10kB、10MB、10GB 等。
    -s 显示文件或整个目录的大小,默认单位为 kB。
  • 检查磁盘空间占用情况(并不能查看某个目录占用的磁盘大小)

    1
    2
    3
    4
    5
    6
    7
    8
    df [option]

    -h 以容易理解的格式(给人看的格式)输出文件系统分区使用情况,例如 10kB、10MB、10GB 等。
    -k 以 kB 为单位输出文件系统分区使用情况。
    -m 以 mB 为单位输出文件系统分区使用情况。
    -a 列出所有的文件系统分区,包含大小为 0 的文件系统分区。
    -i 列出文件系统分区的 inodes 信息。
    -T 显示磁盘分区的文件系统类型。

引用

  1. 搭建生信服务器指南:如何优雅地捡垃圾
  2. Centos 7教程 初步入门及安装

参考文章如引起任何侵权问题,可以与我联系,谢谢。


------------- The End Thanks for reading --------