Linux常见的分区模式 :
mbr 1-4个主分区,2.2TB,命令:fdisk
gpt 多个主分区,18EB,命令: parted
swap 虚拟内存 :当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中.
ssh免密登录 端口号:22
ssh-keygen 生成密钥对
ssh-copy-id 发送公钥
raid磁盘阵列
raid0:条带模式,至少2块磁盘,通过并发提高读写效率
raid1:镜像模式,至少2块磁盘,通过镜像备份提高磁盘的可靠性
raid10:条带+镜像,至少4块磁盘,提高读写效率和可靠性
raid5:高性价比模式,至少3块磁盘,1块存放恢复效验数据
raid6:相当于扩展版raid5,至少4块磁盘,2块存放效验数据
nfs :网络文件系统 2049
包:nfs-utils ,(rpcbind)作为依赖安装
NFS服务依赖于RPC(Remote Procedure Call)服务。nfsd默认端口2049,实际使用过程中因为需要提供不同的服务,因此NFS启动时还会随机调用系统的空闲端口。在centos5.x中默认调用1024以下端口,centos6.x后默认调用的端口号一般较大,30000以上。因为NFS随机端口的原因所以需要RPC服务来和client端确认传输端口等。
默认存储路径 /etc/exports
格式:共享目录 指定共享对象(共享参数)
例: /data 192.168.1.0/24(rw,sync)
配置参数:
rw: 读写
ro :只读
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
挂载格式:# mount 192.168.237.21:/nfs /mnt
192.168.237.21:/nfs /mnt nfs defaults,_netdev 0 0
samba :支持跨平台 445
SAMBA主要提供的是SMB/CIFS或者NETBIOS协议的
包:Samba ,cifs-utils 文件系统类型: cifs
配置文件: /etc/samba/smb.conf
//192.168.118.133/tvms /mnt/tvms cifs defaults,username=root,password=1,netdev 0 0
iscsi: 网络磁盘 3260
基于c/s架构的虚拟磁盘技术
组成: 后端存储 , 磁盘组 ,逻辑单元
ISCSI主要是透过TCP/IP技术,将存储设备端透过iscsi target(iscsi 目标端)功能,做成可以提供磁盘的服务器端,再透过iscsi initiator(iscsi初始化用户)功能,做成能够挂载使用使用iscsi设置来进行磁盘的应用了。也就是说,iscsi这个架构主要将存储装置与使用的主机分为两部分,分别是:
(1)iscsi target:就是存储设备端,存放磁盘或RAID的设备。
(2)iscsi initiator:就是能够使用target的用户端,通常是服务器。也就是说,想要连接到iscsi target 的服务器,也必须要安装iscsi initistor 的相关功能后才能使用iscsi target 提供的磁盘。
什么是带宽?
我们所说的带宽是指数据的发送速度
什么是吞吐率?
吞吐率(Throughput),是指web服务器单位时间内处理的请求数
apache
配置文件: /etc/httpd/conf.d
网页文件: /var/www/html
rewrite ,比nginx 的rewrite 强大
模块超多,基本想到的都可以找到
少bug ,nginx 的bug 相对较多
超稳定
apache是同步多进程模型,一个连接对应一个进程
nginx
源码安装
gcc openssl-devel pcre-devel
cd nginx-1.12.2/
./configure --with-http_ssl_module --with-stream
make ; make install
适合做静态
轻量级,同样起web 服务,比apache 占用更少的内存及资源
抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
高度模块化的设计,编写模块相对简单
社区活跃,各种高性能模块出品迅速
nginx是异步的,多个连接(万级别)可以对应一个进程
Nginx的优化
gzip压缩优化 /expires缓存有还 / 网络IO事件模型优化 / 隐藏软件名称和版本号 / 防盗链优化
禁止恶意域名解析 / 禁止通过IP地址访问网站 / HTTP请求方法优化
Nginx 优缺点?
• 优点
– 工作在 7 层,可以针对 http 做分流策略
– 正则表达式比 HAProxy 强大
– 安装、配置、测试简单,通过日志可以解决多数问题
– 并发量可以达到几万次 – Nginx 还可以作为 Web 服务器使用
• 缺点
– 仅支持 http、https、mail 协议,应用面小
– 监控检查仅通过端口,无法使用 url 检查
lnmp搭建
linux+nginx+mairadb+php
mairadb mariadb-server mariadb-devel php php-fpm php-mysql
lvs 原理
LVS通过工作于内核的ipvs模块来实现功能,其主要工作于netfilter 的INPUT链上。
而用户需要对ipvs进行操作配置则需要使用ipvsadm这个工具。
ipvsadm主要用于设置lvs模型、调度方式以及指定后端主机。
LVS的优点:
1:抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的,也保证了均衡器I/O的性能不会受到大流量的影响。;
2:工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方案
3: 基本上能支持所有应用,因为lvs工作在4层,所以它可以对几乎所有应用做负载均衡
lvs的缺点:
1.软件本身不支持正则处理,不能做动静分离。
2.如果网站应用比较庞大,lvs/DR+keepalived就比较复杂了,特别是后面有windows server应用的机器,实施及配置还有维护过程就比较麻烦,相对而言,nginx+keepalived就简单一点。
VS/NAT:通过网络地址转换实现的虚拟服务器。Director将用户请求报文的目的地址改成选定的Real Server地址后,转发给Real Server。大并发访问时,调度器的性能成为瓶颈。
VS/DR:直接使用路由技术实现虚拟服务器。通过改写请求报文的MAC地址,将请求发至Real Server,Real Server直接响应客户端。
VS/TUN:通过隧道方式实现虚拟服务器。Director采用隧道技术将请求发至Real Server后,Real Server直接响应客户端。
HAproxy:
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上。
haproxy:
优点:
效率,负载均衡速度高于nginx,低于lvs,
调度算法丰富, 加权轮询,uri算法:hash
支持tcp,可以对mysql进行负载均衡
可以通过url进行健康检查
缺点:
正则弱于nginx
mysql:
Mysysql的优化,
大体可以分为三部分:索引的优化,sql语句的优化,表的优化
1.索引的优化
a只要列中含有NULL值,就最好不要在此例设置索引,
b尽量使用短索引,如果可以,应该制定一个前缀长度
c对于经常在where子句使用的列,最好设置索引,这样会加快查找速度
d尽量不要在列上进行运算(函数操作和表达式操作)
2.sql语句的优化
a查询时,能不要就不用,尽量写全字段名
b大部分情况连接效率远大于子查询
c多使用explain和profile分析查询语句
d查看慢查询日志,找出执行时间长的sql语句优化
e多表连接时,尽量小表驱动大表,
f在千万级分页时使用limit
g对于经常使用的查询,可以开启缓存
3.表的优化
a表的字段尽可能用NOT NULL
b字段长度固定的表查询会更快
c把数据库的大表按时间或一些标志分成小表
d将表分区
复制基本原理流程
- 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;
- 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中;
- 从:sql执行线程——执行relay log中的语句;
1、什么是读写分离?
在数据库集群架构中,让主库负责处理事务性查询,而从库只负责处理select查询,让两者分工明确达到提高数据库整体读写性能。当然,主数据库另外一个功能就是负责将事务性查询导致的数据变更同步到从库中,也就是写操作。
2、读写分离的好处?
1)分摊服务器压力,提高机器的系统处理效率
2)增加冗余,提高服务可用性,当一台数据库服务器宕机后可以调整另外一台从库以最快速度恢复服务
MySQL中myisam与innodb的区别
1.InnoDB支持事物,而MyISAM不支持事物
2.InnoDB支持行级锁,而MyISAM支持表级锁
4.InnoDB支持外键,而MyISAM不支持
5.InnoDB不支持全文索引,而MyISAM支持。
6.InnoDB不能通过直接拷贝表文件的方法拷贝表到另外一台机器, myisam 支持
7.InnoDB表支持多种行格式, myisam 不支持
8.InnoDB是索引组织表, myisam 是堆表
openstack:
OpenStack是一个云平台管理的项目,它不是一个软件。
这个项目由几个主要的组件组合起来完成一些具体的工作
openstack主要组件
horizon 黑r怎
提供图形用户界面,可以从图形界面创建项目,创建用户,管理网络等操作
keystone ks den
为服务提供认证和授权的身份管理服务,
用户管理:验证用户身份信息合法性
服务目录管理:提供各个服务目录的服务,无论任何服务或者客户访问openstack都要访问keystone获取服务列表
neutron 牛春
提供网络服务,用于创建网络,子网,路由器,管理浮动ip地址
cinder 森的
提供块存储的功能,为nova中实例提供永久的块存储
nova
处于节点上管理虚拟机的服务
glance 哥浪死
用于提供镜像服务,扮演虚拟机镜像注册的角色,提供虚拟机镜像的发现,注册,检索
什么服务通常在控制节点运行:
keystone, glance
什么服务通常在计算节点运行:
nova
什么是docker:
Docker是一个容器化平台,它将应用程序及其所有依赖项以容器的形式打包在一起,以确保应用程序在任何环境(无论是开发环境、测试环境还是生产环境)中无缝运行。
Docker容器,将一个软件包放在一个完整的文件系统中,其中包含运行所需的一切:代码、运行时、系统工具、系统库等任何可以安装在服务器上的东西。
什么是docker镜像:
Docker镜像是Docker容器的源代码。换句话说,Docker镜像用于创建容器。使用build命令创建镜像,并且在使用run启动时它们将生成容器。镜像存储在Docker注册表中.
如何临时退出一个正在交互的容器的终端,而不终止它?
按Ctrl+p,后按Ctrl+q
Docker与虚拟机有何不同
与虚拟机不同,容器不需要引导操作系统内核,因此可以在不到一秒的时间内创建容器。
优点:
相比于传统的虚拟化技术,容器更加简洁高效
传统虚拟机需要给每个VM安装操作系统
容器使用的共享公共库和程序
缺点:
容器的隔离性没有虚拟化强
共用Linux内核,安全性有先天缺陷
SELinux难以驾驭
监控容器和容器排错是挑战
Docker相关的本地资源存放在/var/lib/docker/目录下
attach 和 exec 的区别
attach exit导致容器关闭
exec exit不会使容器关闭
镜像操作:
docker images 查看镜像列表
docker history aaa:aa 查看镜像历史 名称:标签
docker inspect aaa:aa 查看底层详细信息
docker pull aaa 下载
docker push aaa 上传
docker rmi aaa:aa 删除
docker save aaa:aa -o aa.tar 导出为tar格式
docker load -i aa.tar 导入镜像
docker search httpd 查看镜像
docker tag aaa:aa bb:bb 硬链接 改名称
docker rm $(docker ps -aq) $() 执行的结果当做参数
容器操作:
docker run -it aaa:aa bash 运行容器并进入
docker ps -ap 查看容器列表和id
docker stop id号 关闭
docker start id号 开启
docker restart id号 重启
docker inspect id号 查看底层详细信息
docker top id号 查看进程列表
docker rm id号 删除容器
docker attach id号 进入容器 exit导致容器关闭 Ctrl+p+q 不关闭容器退出
docker exec -it id号 bash 进入容器 exit不会使容器关闭
Dockerfile中的一些常见指令如下:
from 指定基础镜像
expose 开放的端口
env 设置变量
add 复制文件到镜像
run 制作镜像时 执行的命令,可以有多个
cmd 启动容器时 执行的命令 (开启服务) 上帝进程 /usr/lib/systemd/system/httpd.ser
workdir 定义容器默认工作路径 相当于cd 永远在改目录下
zabbix:
监控流程:
agentd需要安装到被监控的主机上,它负责定期收 集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
lnmp搭建
服务端端口:10051
客户端端口:10050
web监控
请求时间,响应时间,页面不是200–>触发报警
keepalived
Keepalived:Keepalived是一个保证集群高可用的服务软件,用来防止单点故障,使用VRRP协议实现。在master和backup之间通过master主动降低自己的权值或者backup检测到master出现故障时,backup将会接管master的工作,继续服务。
Keepalived高可用原理
Keepalived高可用是通过vrrp协议通信的,vrrp是通过竞选机制决定主备,住的优先级高于被服务器的,所以在工作时主会优先获取所有的资源,备节点处于准备状态,当主节点宕机时候,备节点会接管主节点的资源,然后顶替主节点对外提供服务。
在 Keepalived服务对之间,只有作为主的服务器会一直发送 VRRP广播包,告诉备它还活着,此时备不会枪占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性.接管速度最快;
keeplived 有哪些模块
keepalived主要有三个模块,分别是core、check和vrrp
core:是Keepalived的核心,负责主进程的启动和维护,全局配置文件的加载解析等
check:负责healthchecker(健康检查)
vrpp:VRRPD子进程,VRRPD子进程就是来实现VRRP协议的
解释一下vrrp 协议
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。
VRRP作用
vrrp是虚拟路由冗余协议,就是当出现单点故障问题通过竞选方式决定vip走向的一种机制
来源:https://blog.csdn.net/Zenian_dada/article/details/102736652