[TOC]
目前,互联网公司常用服务器品牌:Dell、HP、IBM、浪潮、联系、航天联志等。
1U=4.45厘米
Dell服务器品牌:
2010年以前:1u 1850、1950,2u 2850、2950
2010-2013: 1u R410、R610,2u R710
2014-2015: 1u R420/430、R620/630,2u R720
IBM品牌:
1U服务器3550/m3 3550/m5
2U服务器3650
4U服务器3850
8U服务器3950
HP品牌:
DL380G7(2u)、DL580等
从工作的角度上,我们需要重点掌握主机的CPU、内存、硬盘。各部件I/O性能比较如下图所示:
由于CPU、内存与硬盘网上可以搜索到很多的资料介绍,这里就不一一详述了。重点如下:
1、内存是CPU和磁盘之间的缓冲设备,临时存储器,主机重启,内存数据会释放掉;
2、进程:正在运行的程序,在内存中运行;
3、守护进程:持续保持运行着的程序;
4、程序:PHP、JAVA,代码文件,静态,放在磁盘里;
5、互联网公司中,缓存无处不在,特别是百度、淘宝集群架构中,都要有缓存;
6、缓存cache,是读数据的;
7、buffer和cache有何区别?
a.写入数据到内存,成为缓冲区(buffer)。
b.从内存读取数据,内存空间(cache)。
8、硬盘的接口或类型:IDE,SCSI,SAS,SATA,SSD;性能比较:SSD > SAS > SATA。
企业应用:
常规工作场景选SAS硬盘(转速15000转/分)。
不对外提供访问的服务器,如先下的数据备份,可选SATA(7200-15000转/分)。
高并发访问,小数据量,可以选择SSD。
数据迁移速度主要受到以下约束条件的影响。
硬盘转速\\\:磁盘阵列采用的硬盘转速越慢,则数据迁移速度越慢;
硬盘容量:磁盘阵列采用的硬盘容量越大,硬盘损坏时需要从坏盘中迁移出的数据量就越多,数据迁移速度也就越慢;
业务繁忙程度:由于坏盘数据迁移的优先级较低,需要优先满足当前业务的I/O读写需求,因此业务越繁忙的时间段,数据迁移速度越慢。
硬盘类型 | 容量 | 转速 | 可靠性 | 价格 | 适用场景 |
---|---|---|---|---|---|
SATA硬盘 | 较大 | 较低 | 较可靠 | 较低 | I/O读写率较低、业务量小 |
FC硬盘 | 较小 | 较高 | 可靠 | 高 | I/O读写率较高、业务量大 |
SAS硬盘 | 较小 | 高 | 可靠 | 较高 | I/O读写率较高、业务量大 |
RAID的概念:
RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。 RAID 是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储。
阵列卡(RAID卡)基本作用:
网站数据量很大,单块盘装不下了,有了多块盘,又不想单个盘存放数据,就需要工具把所有硬盘整合成一个大磁盘,再这个大磁盘上在分区放数据。
RAID有多种整合方式,RAID 0、RAID 1、RAID 5、RAID 10。
RAID的概念及优缺点:
RAID 0:
2块以上的盘 ,将数据保存不在不同磁盘上,具有低成本、高读写性能、 100% 的存储空间等优点,但是它不提供数据冗余保护,一旦数据损坏,将无法恢复。因此, RAID0 一般适用于对性能要求严格但对数据安全性和可靠性不高的应用,如视频、音频存储、临时数据缓存空间等。 raid 0 的存取速度最快。
RAID0 :无冗错的数据条带
RAID 1:
最少2块盘,使用磁盘镜像技术 当主磁盘损坏时,镜像磁盘可以代替主磁盘工作,镜像磁盘相当于一个备份盘,这种磁盘模式具有系统容错的能力,支持热插拔 但磁盘的利用率只有50% 利用率是最低的。RAID1 提供了最佳的数据保护,一旦工作磁盘发生故障,系统自动从镜像磁盘读取数据,不会影响用户工作。一般用于数据库应用,金融系统等。
RAID1 :无校验的相互镜像
RAID 5:
5块以上的盘 raid 5 以数据的奇偶位来保证数据安全,但他不是以单独的磁盘空间来存放数据的校验位,而是将数据的校验位交互存放于各个磁盘上,任何一个磁盘损坏,都可以根据其他磁盘上的校验位来重建损坏的数据,因为奇偶效验码位于不同的磁盘上,所以提高了可靠性,可允许单个磁盘出错。Raid5的读k出效率很高,写入效率一般。raid5的磁盘空间利用率较高,如果组成raid5的磁盘有N块,利用率为(N-1)/N读写速度为单个磁盘的(N-1倍)。用于事物处理环境,如售票处,销售系统等。
RAID5 :带分散校验的数据条带
RAID 10:
也被称为RAID 1+0标准,实际是将RAID 0和RAID 1标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低。由于利用了RAID 0极高的读写效率和RAID 1较高的数据保护、恢复能力,使RAID 10成为了一种性价比较高的等级,目前几乎所有的RAID控制卡都支持这一等级。
主流 RAID 等级技术对比
RAID 等级 | RAID0 | RAID1 | RAID3 | RAID5 | RAID6 | RAID10 |
---|---|---|---|---|---|---|
别名 | 条带 | 镜像 | 专用奇偶校验条带 | 分布奇偶校验条带 | 双重奇偶校验条带 | 镜像加条带 |
容错性 | 无 | 有 | 有 | 有 | 有 | 有 |
冗余类型 | 无 | 有 | 有 | 有 | 有 | 有 |
热备份选择 | 无 | 有 | 有 | 有 | 有 | 有 |
读性能 | 高 | 低 | 高 | 高 | 高 | 高 |
随机写性能 | 高 | 低 | 低 | 一般 | 低 | 一般 |
连续写性能 | 高 | 低 | 低 | 低 | 低 | 一般 |
需要磁盘数 | n≥1 | 2n (n≥1) | n≥3 | n≥3 | n≥4 | 2n(n≥2)≥4 |
可用容量 | 全部 | 50% | (n-1)/n | (n-1)/n | (n-2)/n | 50% |
SELinux是美国国家安全局(NSA)对于强制访问控制的实现。
setenforce 0 #临时关闭
sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config #永久关闭
Linux在服务器运行过程中,会有很多无用的软件服务默认就在运行,这些服务占用了系统资源,带来安全隐患,因此要关闭这些服务。
for A in `chkconfig --list |grep 3:on |awk '{print $1}' `;do chkconfig $A off;done
for B in rsyslog network sshd crond sysstat;do chkconfig $B on;done
chkconfig --list |grep 3:on
重要的开机服务如下所示:
sshd 远程连接Linux服务器需要这个服务程序。否则,无法连接Linux;
rsyslog 是操作系统提供的一种机制,系统的守护程序通常会使用rsyslog将各种信息写到格格系统日志文件中。CentOS中此服务名为syslog;
network 系统启动时,若想激活/关闭各个网络接口,则必须启动该服务;
crond 该服务用于周期性的执行系统及用户配置的计划任务;
sysstat 该服务包含监测系统性能及效率的一组工具。这些工具对于收集系统性能数据很有帮助,核心工具包:
iostat CPU使用率及硬盘吞吐效率的工具
mpstat 提供单个或多个处理器的数据
sar 负责收集、报告并存储系统活跃的信息
/etc/init.d/iptables stop #临时关闭
chkconfig iptables off #永久关闭
1.安装Linux系统最小化,即选包最小化,yum安装软件包也要最小化,无用的包不装。开机启动服务最小化,即无用的服务不开启;
2.操作系统命令最小化,用rm -f test.txt而不用rm -fr test.txt;
3.登陆Linux用户最小化。平时没有需求不用root登陆,用普通用户登陆即可;
4.普通用户授权最小化,即只给必须的管理系统的命令;
5.Linux系统文件及目录权限设置最小化,禁止随意创建、更改、删除。
不同的端口代表不同的服务,IP地址标示唯一的主机。端口的范围0~65535,一般建议改为比1024大点的端口。不允许空密码登录,不允许root直接登录,不使用DNS,解决ssh反应慢的问题。
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori
vi /etc/ssh/sshd_config
Port 52083 # SSH 预设使用22这个port,也可以使用其他port
PermitRootLogin no # 是否允许root登入!预设是允许的,建议设定成no!
PasswordAuthentication yes # 密码验证当然是需要的!所以这里写yes!
PermitEmptyPasswords no # 若上面那一项如果设定为 yes 的话,这一项就最好,设定为no ,这个项目在是否允许以空的密码登入!
UseDNS no # 是否使用DNS
GSSAPIAuthentication no # 解决SSH连接慢的问题
ListenAddress 10.10.10.7 # 设置服务器上的sshd服务绑定哪个IP地址对外服务
执行# visudo相当于编辑vi /etc/sudoers文件。
# 编辑sudo的配置文件
# visudo
# 找到第98行,修改
root ALL=(ALL) ALL
www ALL=(ALL) /etc/init.d/sshd restart
# 上面www这一行的解释:
# www是系统的哪个账号可以使用sudo命令;
# 登录者的来源主机,哪台主机的www账号登录使用sudo命令;
# (ALL)表示可以切换成身份或用户(比如root)来执行sudo后续的命令;
# sudo可以执行的命令,多个命令用“,”隔开。
# 现在可以使用普通用户执行root用户才能做的重启ssh服务的命令
echo "*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1">>/var/spool/cron/root
文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件。 查看文件描述符:
ulimit -n
执行vim /etc/security/limits.conf命令,再文件结尾加上如下一行。
echo '* - nofile 65535 ' >>/etc/security/limits.conf
配置完成以后,退出当前会话,再次登录才可以生效。检查如下:
# ulimit -n
65535
编辑/etc/sysctl.conf,到文件结尾将下面的内容拷贝进去即可:
# vi /etc/sysctl.conf
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
#以下参数是对iptables防火墙的优化,防火墙未启动会有报错提示,可以忽略不理:
net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
# 使编辑生效
# sysctl -p
关键文件有:/etc/passwd、/etc/group、/etc/inittab、/etc/shadow、/etc/gshadow
# chattr +i /etc/passwd
# 查看文件属性,有i的是加过锁的文件
# lsattr /etc/passwd
----i--------e- /etc/passwd
# 锁定系统文件:
# chattr 修改文件属性,给文件加锁
# +i:锁定
# -i:解除锁定
# =:覆盖之前的,加上这个新的。
# /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
# lsattr # 查询文件是否加锁
可以将系统中/etc/passwd文件中的mail、game、at、bin等这些用户最后一列修改为/bin/false或者/sbin/nologin,禁止这些用户登录系统。
echo 'net.ipv4.icmp_echo_ignore_all = 1' >>/etc/sysctl.conf
sysctl -p
Linux的目录逻辑上只有一个顶点(/),是所有目录的起点。
应用程序命令目录:/usr/bin
数据文件、帮助目录:/usr/share
配置文件目录:/etc
启动命令目录:/etc/init.d
默认安装程序目录:/usr/local
小结: 1)Linux的目录结构像倒挂的树状结构;
2)逻辑上只有一个顶点(/),所有目录的起点;
3)目录结构和物理设备是没有关联的,也就是不同的目录可以跨越不同的磁盘设备或分区。比如下面:
/etc/类似Windows中的c盘 /etc/init.d/类似Windows中的d盘
4)所有的目录都是按照一定的类别有规律的组织和命名的。 所有设备必须挂载后使用,磁盘分区无法直接访问。挂载就是为要访问的设备设置一个入口。在Linux中不通过挂载是无法直接访问下面的设备:
目录 | 含义 |
---|---|
/ | 根目录,linux中一切从根开始 |
/bin | 命令 二进制文件的存放目录 binary |
/sbin | 超级命令 只有root用户能用 |
/etc | 存放系统的配置文件 |
/dev | device 设备、光盘、硬盘(硬盘挂载才能使用) |
/proc | 虚拟目录 目录中的信息为(内核、进程、软件) |
/var | 变量文件(系统日志) |
/tmp | 临时文件存放处 |
/usr | 用户程序包含二进制文件、库文件、文档和二级程序的源代码 |
/home | 普通用户的家目录 |
/boot | 系统引导程序+(系统内核) |
/lib | libary 库 库文件 |
/opt | option 第三方软件安装在这里 |
/mnt | 临时挂载点 |
/media | 可移动媒体设备用于挂载可移动设备的临时目录 |
/srv | 服务数据(包含服务器特定服务相关的数据) |
/lost+found | 磁盘或文件系统损坏、断电,临时存放位置 |
重要文件
目录重要文件 | ||
---|---|---|
/etc配置文件 | /etc/resolv.conf DNS | 客户端配置文件 |
/etc/hosts | 主要是通过域名解析IP地址,建立一个映射关系。 | |
/etc/sysconfig/network | 主机名配置文件 | |
/etc/fastab | 文件说明及挂载文件系统的方法 | |
/etc/rc.local | 用于存放开机自动启动的程序的文件 | |
/etc/init.d | 系统运行级别的配置文件 | |
/etc/inittab | 系统开机启动要加载的配置文件 | |
/etc/profile和/etc/profile.d | 此文件为系统的每个用户设置环境信息 | |
/etc/sudoers | 可以执行sudo命令的配置文件(全向提升)sudo介绍 |
/var日志文件 | /var/log | 各种系统日志存放地 |
---|---|---|
/var/log/messages | 系统信息默认的日志文件 | |
/var/log/secure | 记录用户的登录信息 | x |
/proc虚拟目录(内核、进程、软件) | /proc/cpuinfo | 处理器的信息 |
---|---|---|
/proc/memiofo | 系统的内存信息 | |
/proc/interrupts | 正在使用的中断和曾今有多少个中断 | |
/proc/ioports | 前端正在使用的I/O端口 | |
/proc/loadavg | 系统负载的平均值信息 | |
/proc/mounts | 设备的挂载信息 df -h 类似 |
1. inode简介
inode(index node)是文件或目录在Linux磁盘里的唯一标识,读文件首先要读取文件的inode,它相当于书的目录。Linux中没有扩展名的概念,但是为了让人看的明白,我们一般在文件的结尾加上扩展名用来区分不同类型的文件。比如:xx.sh、yy.txt等。磁盘在被格式化时,生成inode和block。**blcok用来存放数据,inode用来存放这些文件或目录的属性,但是文件名不在inode当中。**inode还包含指向文件的指针。一个文件创建后至少占用一个inode(一般也为一个)和一个block,inode会对应多个block,block之间也会相互对应,否则inode可能无法对应太多的block。
2. inode介绍
inode就是用来存储这些数据属性信息的(也就是ls -ldi的结果),inode属性信息包括文件大小、属主(用户)、归属用户组、文件权限、文件类型、修改时间,还包含指向文件实体的指针功能(indoe节点--block的对应关系)等,但是inode里面唯独不包含文件名。 也就是文件名不属于文件属性。
[root@www ~]# ls -lhi /etc/hosts
129822 -rw-r--r--. 2 root root 158 Mar 12 19:17 /etc/hosts
第一列:inode 索引节点编号(相当于人的身份证),系统读取问件时首先通过找到inode的号码,才能读取文件内容
第二列:文件类型与权限
第二列共11个字符:其中一个字符为文件类型,随后的9个字符为文件的对应权限,最后一个是和selinux有关的一个标识
第三列:硬连接数(详细参看ln命令的讲解)
相当于入口,可以从不同的入口进入文件,还可以互为备份
第四列:文件或目录的所属用户(文件的所有者)
linux里面文件和程序的存在必须要有用户和组满足相应的存下需求
第五列:文件或目录的所属组
第六列:文件或目录的大小
第七、八、九列:文件或目录的修改时间:月日时分
第十列:实际的文件名或目录名
注意:文件名不算文件的属性
查看第一块磁盘第三分区的大小
[root@www ~]# dumpe2fs /dev/sda3 |grep -i "inode size"
dumpe2fs 1.41.12 (17-May-2010)
Inode size: 256
grep -i 不区分大小写抓取 查看磁盘(block)的使用情况 df -h 查看inode的使用情况 df -hi
inode的小结 学会阶段性的知识做小结是学好linux运维的好习惯
1、诞生:磁盘被分区并格式化为ext4文件系统后会诞生一定数量的inode和block
2、含义:inode成为索引节点,作用是存放文件的属性信息,以及作为文件的索引(指向文件的实体block)
3、特点:
①ext3和ext4文件系统的block存放的是文件的实际内容(数据)
②indoe是磁盘上的一块存储空间,C6非启动分区inode默认大小为256字节, C5是128字节。
③inode是一串数字,在同一个文件系统(分区df里是唯一的)
6、inode节点号相同的文件,互为 硬链接文件,可以为一个文件的不同入口。
7、ext3和ext4文件系统下,一个文件至少占用一个inode和一个block(文件size大小)。
8、ext3和ext4文件系统下,正常情况一个文件只能占用一个inode,block
有关block的知识小结: 1、含义: block是用来存储实际数据的,每个block的大小一般有1K,2K,4K几种。其中引导分区等为1K,其他普通分区多4K(C6) 特点: 2、磁盘读取数据是按block为单位读取的 3、一个文件可能占用多个block。每读取一次block就会消耗一次磁盘I/O(磁盘读写) 4、如果一个文件很大,占用多个block,如果文件很小(0.01K),至少占用一个block,并且这个block的剩余空间就浪费了,即无法再存储其他数据了 5、block并非越大越好。block太大对于存放小文件就会浪费磁盘空间,例如:10000K的文件,block大小为4K,占用250个block,如果block默认1K,则需要占用1000个block。访问效率谁更高?消耗IO分别为250次和1000次。 6、根据业务需求,确定默认的block大小,如果是大文件(小于16K)一般设置block大一点,小文件(小于1K)一般设置block小一点 7、block太大,例如4K,文件都是0.1K,大量浪费磁盘空间,但是访问性能高。 8、block太小,例如1K,文件都是1000K,消耗大量的磁盘IO。
1、磁盘分区格式化文件系统后,会分为indoe和block两部分内容
2、inode存放文件的属性及指定文件实体指针(block的位置),文件名不在inode里,一般在上级目录的block里。
3、访问文件的过程,通过文件名(上一级目录的block)(inode号码==家庭住址)→ inode→blocks。
4、inode cento6一般情况默认非启动分区大小256B,block 1K,2K,4K, 默认4K,注意,引导分区等特殊分区除外。
5、通过df -i查看inode的数量及使用情况,dumpe2fs /dev/sda3查看inode及block的大小及数量。
6、一个文件至少要占用一个inode及一个block,多个文件可以占用同一个inode(硬链接),相同硬链接。
7、一个block只能被一个文件使用(小文件block剩下的空间浪费),如果文件很小block很大,剩余空间浪费,无法继续被其他文件使用。
8、block不是越大越好,要根据业务的文件大小进行选择,一般centos6就是默认4K.
在Linux系统中,链接分为两种:一种为硬链接(Hard Link),另一种为软链接(Symbolic Link or Soft Link)。链接由ln命令创建,默认不带参数的情况下,执行ln命令创建的是硬链接,# ln -s命令创建的是软链接。创建命令如下:
硬链接:# ln 源文件 创建的目标文件
软链接:# ln -s 源文件 创建的目标文件
**硬链接通过索引节点(inode)来进行链接。**在Linux文件系统中,多个文件名指向同一个索引节点(inode),这是被允许的,这种情况被称为文件的硬链接。硬链接的作用之一,就是允许一个文件拥有多个有效路径(多个入口),这样用户可以建立硬链接到重要的文件,防止“误删”源数据。**只要文件还存在一个以上的硬链接,删除其中的一个硬链接(删除了该文件的链接指向),不影响索引节点和其他的链接,即数据文件实体并未被删除。只有当最后一个链接被删除后,此时,如果有新的数据要存储到硬盘上,或系统通过类似fsck检查磁盘时,被删除文件的数据块及目录的链接才会被释放,空间被新的数据覆盖。**也就是说,在Linux系统中,删除静态文件(没有进程调用,目录也是文件)的条件是与之相关的所有硬链接文件均被删除,文件才会被删除。
对硬链接有如下限制:
不能对目录文件做硬链接。
不能在不同的文件系统之间做硬链接。
就是说,链接文件和被链接文件必须位于同一个文件系统中。
软链接(Soft Link)也叫符号链接(Symbolic Link)。Linux系统里的软链接就相当于Windows里的快捷方式。软链接可以理解为一个文本文件,这个文件中包含有软链接指向另一源文件的位置信息内容。因此,通过软链接可以快速定位到软链接所指向的源文件实体。
目录与硬链接:
目录无法创建硬链接,目录的软链接在生产场景中更经常用到。
软链接和源文件:
删除软链接不会影响源文件,但是删除源文件会导致软链接异常,再次访问软链接将提示“No such file or directory”。
交换机
含义:
交换机(英文:switch,意为‘开关’)是一种用于电信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。
交换机的作用和特点说明:
Ø 同一个交换机端口上连接的所有终端设备,均在一个网段上(称为个广播域)。
Ø 同一网段会有统一的网络标识,会产生广播消耗设备cpu资源。
Ø 交换机可以隔离冲突域,每一个端口就是一个冲突域。
Ø 终端用户的设备接入。
Ø 基本的安全功能。
Ø 广播域的隔离(VLAN)。
路由器
路由器的作用
Ø 路由协议的转发
Ø 数据转发,会维护一个路由表(相当于一个地图)
Ø 路由器会做为网关;一般会在网络出口的位置放一台路由器
Ø 广域网链路支持(FR ATM MSTP SDH)
Ø 局域网:本地私有的一个网络范围。如果是一个大的局域网,也会成为一个园区网。
Ø 城域网:如果一个网络覆盖面积达到一个城市,就可以称为城域网。
Ø 广域网:如果覆盖面积达到了全国或全球,就称为广域网,最大的广域网就是internet。