LVS笔试题!

1、集群分类有哪些及各自实现的目标?
高可用:保持系统的稳定,防止系统出现单点故障。
负载均衡:比如高并发状态下,多个机器分摊请求,从而达到负载均衡
高性能运算集群:比如hadoop分布式计算框架,把多个机器的cpu,硬盘资源聚合到一起,实现高性能计算。

2、常见的硬件负载均衡产品有哪些?
F5,A10,Array

3、常见的软件负载均衡产品有哪些?
LVS,Nginx,Haproxy


4、对比说明LVS、Nginx、Haproxy等产品的优缺点?

LVS:
优点:
抗负载能力强,性能高,能达到F5的60%,对内存和CPU资源消耗比较低
工作在网络4层,通过VRRP协议(仅作代理之用),具体的流量是由linux内核来处理,因此没有流量的产生。
稳定,可靠性高,自身有完美的热备方案(Keepalived+lvs)
支持多种负载均衡算法:rr(轮询),wrr(带权轮询)、lc(最小连接)、wlc(带权最小连接)
LVS工作模式有4种: (1) nat 地址转换 (2) dr 直接路由 (3) tun 隧道 (4) full-nat
转发效率和稳定性比nginx和haproxy高
缺点:
只能做代理使用,只支持四层协议。
不支持正则处理,不支持动静分离。


Haproxy:适用于负载特别大的web网站,可以支持万的并发连接,,可以保护你的web服务器不被暴露到网络上。

HAProxy的优点是:
1、HAProxy支持虚拟主机。
2、HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导;同时支持通过获取指定的url来检测后端服务器的状态。
3、HAProxy跟LVS类似,本身就只是一款负载均衡软件;单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。
4、HAProxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,可以用LVS+Keepalived对MySQL主从做负载均衡。
5、HAProxy负载均衡策略非常多。

缺点:
不能做web服务器使用

Nginx:
优点:
对静态页面处理非常高效
对内存资源占用较小
可以做web服务器使用,也可以做反向代理,支持lnmp。
支持四层七层转发,对复杂的网络功能得以实现
主进程副进程分工明确,主进程接收请求,副进程处理请求,稳定性和高效率
支持很多模块,比如四层转发,进程数量自定义,最大合理利用cpu
Nginx对请求的异步处理可以帮助节点服务器减轻负载压力

缺点:
不支持session会话保持

5、说明什么是HA集群中SLA及企业常见的衡量指标?
SLA 服务水平协定
企业中常见的有三个九 17h31m
四个九8h45m
五个九52m


6、描述LVS软件的工作模式及模式工作原理?
NET模式:安全性高,但是只通过网关接收和响应请求,负载低。
TUN模式:通过调度器接收用户请求,但是处理节点分布在因特网返回用户请求,这样代价昂贵。
DR模式:这种模式性能和成本相对都比较理想,半开式网络,节点和调度器都在局域网,而节点响应却通过路由返回给用户。


7、描述LVS负载均衡软件常见的调度算法?
rr: 轮叫算法
根据节点数量,把请求批量一个一个分配给节点,不管服务器性能如何,每个节点接收的请求基本相同。
wrr:加权轮叫算法
根据不同服务器的性能,分配连接请求不同,性能好的服务器分配的请求多。
lc: 最小连接数算法
根据服务器连接请求数量而分配请求数量,服务器连接请求少就分配的请求多。
wlc:加权最小连接数算法
智能根据服务器的性能,和响应时间分配的请求多少。


8、请画图说明LVS DR模式数据包转发原理?
客户端ip:192.168.36.111
mac:12:cd:34:vf

调度器ip:192.168.36.112
vip:192.168.36.254
mac:12:gg:tt:ty22

服务器ip:192.168.36.113
mac:12:fe:45:hh:oi

比如客户端请求LVS调度器:
包头为:192.168.36.111 > 192.168.36.254
mac: 12:cd:34:vf > 12:gg:tt:ty22
然后LVS调度器根据算法分配请求给服务器:
ip : 192.168.36.112 > 192.168.36.113
mac:12:gg:tt:ty22 > 12:fe:45:hh:oi


9、请描述LVS软件在企业架构中的组件位置及作用?
LVS一般在企业架构中最前面接收用户请求,它可以接收用户请求,然后根据算法把请求分配给比如nginx代理。充当整个架构的负载均衡的作用。

10、LVS软件的管理工具及模块名称?
ipvsadm
ip_vs

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

1:简述raid0、raid1、raid4三种工作模式的工作原理及特性!

RAID 0:连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据
传输率,但它没有数据冗余,因此并不能算是真正的RAID 结构。RAID 0 只是单纯地提高
性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,
RAID 0 不能应用于数据安全性要求高的场合。
RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。
当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1 可以提高读取性能。RAID
1 是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,
系统可以自动切换到镜像磁盘上读写 ,而不需要重组失效的数据。简单来说就是:镜象结
构,类似于备份模式,一个数据被复制到两块硬盘上。
RAID10:高可靠性与高效磁盘结构
一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充。
主要用于容量不大,但要求速度和差错控制的数据库中。
RAID5:分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个
硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。支持一块盘掉线后仍然正常
运行。

2:LVS、Nginx、HAproxy有什么区别?在工作中怎么选择!

LVS:
1,抗负载能力强,是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的,对内存和cpu资源消耗比较低。
2,配置较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率。
3,工作稳定,因为其本身抗负载均衡能力很强,自身有完整的双机热备方案,如LVS+Keepalived,不过我们在项目实施中用得最多的还是LVS/DR+Keepalived。
4,无流量,LVS只分发请求‘,而流量并不从它本身出去,这保证了均衡器IO的性能不会收到大流量的影响。
Nginx:
1,工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名,目录结构,它的正则规则比HAproxy更为强大和灵活
2:Nginx对网络稳定性的依赖非常小
3,可以承担高负载压力且稳定,在硬件不差的情况下一般能支撑几万次的并发量,负载度比LVS相对小些。
4,Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码,超时等等
5,Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器。
Haproxy:
1,HAproxy也是支持虚拟主机的。
2,HAproxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导:同时支持通过获取指定的url来检测后端服务器的状态。
3,HAproxy跟LVS类似,本身就只是一款负载均衡软件;单纯从效率上来讲HAproxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。
4,HAproxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡

按照各自的优势:
HAproxy和Nginx由于可以做七层的转发,所以URL和目录的转发都可以做在很大并发量的时候我们就要选择LVS,像中小型公司的话并发量没那么大选择HAproxy或者Nginx足已,由于HAproxy由是专业的代理服务器配置简单,所以中小型企业推荐使用HAproxy+Nginx。大型企业未来追求稳定性推荐使用LVS+Nginx

3:简述NDS进行域名解析的过程!

1、当客户机提出查询请求时,首先在本地计算机的缓存中查找。如果在本地无法获得查询信息,则将查询请求发给DNS服务器。
2、首先客户机将域名查询请求发送到本地DNS服务器,当本地DNS服务器接到查询后,首先在该服务器管理的区域的记录中查找,如果找到该记录,则利用此记录进行解析;如果没有区域信息可以满足查询要求,服务器在本地的缓存中查找。
3、如果本地服务器不能在本地找到客户机查询的信息,将客户机请求发送到根域名DNS服务器。
4、根域名服务器负责解析客户机请求的根域部分,它将包含下一级域名信息的DNS服务器地址返回给客户机的DNS服务器地址。
5、客户机的DNS服务器利用根域名服务器解析的地址访问下一级DNS服务器,得到再下一级域我的DNS服务器地址。
6、按照上述递归方法逐级接近查询目标,最后在有目标域名的DNS服务器上找到相应IP地址信息
7、客户机的本地DNS服务器将递归查询结果返回客户机。
8、客户机利用从本地DNS服务器查询得到的IP访问目标主机,就完成了一个解析过程.

4:讲述Tomcat 8005、8009、8080三个端口的含义!

8005--关闭tomcat进程所用。当执行shutdown.sh关闭tomcat时就是连接8005端口
8009--httpd等反向代理tomcat时就可以使用使用ajp协议反向代理到该端口。
8080--默认的http监听端口

5:讲一下Keepalived的工作原理!

Layer3,4,&5工作早IP/TCP协议栈的IP层,TCP层,及应用层
原理:
Layer3:keepalived使用layer3的方式工作时,keepalived会定期向服务器群中发送一个ICMP的数据包(即我们平时用的ping程序),如果发现某台服务器的IP地址没有激活,keepalived便会报告这台服务器是小,并将他从服务器群中剔除。Layer3的方式是以服务器的IP第孩子是否有效作为服务器工作正常与否的标准。
Layer4:主要以TCP端口的状态来决定服务器工作正常与否。如web sercer的服务端口一般是80.如果keepalived检测到80端口没有启动,则keepalived将这台服务器从服务群中删除。
Layer5:layer5就是工作载具体的应用层,比layer3,4要复杂一点,载网络上占用的宽带也要打一些。Keepalived将根据用户的设定检查服务器的运行是否正常。如果设定不相符,则keepalived将把服务器从群中踢除。

6:简单讲述一下运维中集群技术的应用、如负载均衡、高可用、分布式!

7:如何优化linux系统

⑴登录系统:不使用root登录,通过sudo授权管理,使用普通用户登录。
⑵禁止SSH远程:更改默认的远程连接SSH服务及禁止root远程连接。
⑶时间同步:定时自动更新服务器时间。
⑷配置yum更新源,从国内更新下载安装rpm包。
⑸关闭selinux及iptables(iptables工作场景如有wan ip,一般要打开,高并发除外)
⑹调整文件描述符数量,进程及文件的打开都会消耗文件描述符。
⑺定时自动清理/var/spool/clientmquene/目录垃圾文件,防止节点被占满(c6.4默认没有sendmail,因此可以不配。)
⑻精简开机启动服务(crond、sshd、network、rsyslog)
⑼Linux内核参数优化/etc/sysctl.conf,执行sysct -p生效。
更改字符集,支持中文,但是还是建议使用英文,防止乱码问题出现。
⑾锁定关键系统文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 处理以上内容后,把chatter改名,就更安全了。)
⑿清空/etc/issue,去除系统及内核版本登陆前的屏幕显示。

8:写脚本实现Mysql连接中状态为locking的进程全部杀掉!

#!/bin/sh
mysql_pwd=”root的密码"
mysqladmin_exec="/usr/local/bin/mysqladmin"
mysql_exec="/usr/local/bin/mysql"
mysql_timeout_dir="/tmp"
mysql_timeout_log="$mysql_timeout_dir/mysql_timeout.log"
mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh"
mysql_kill_timeout_log="$mysql_timeout_dir/mysql_kill_timeout.log"
$mysqladmin_exec -uroot -p"$mysql_pwd" processlist | awk '{ print $12 , $2 ,$4}' | grep -v Time | grep -v '|' | sort -rn > $mysql_timeout_log
awk '{if($1>30 && $3!="root") print "'""$mysql_exec""' -e " "/"" "kill",$2 "/"" " -uroot " "-p""/"""'""$mysql_pwd""'""/"" ";" }' $mysql_timeout_log > $mysql_kill_timeout_sh
echo "check start ...." >> $mysql_kill_timeout_log
echo `date` >> $mysql_kill_timeout_log

cat $mysql_kill_timeout_sh

原文地址:https://www.cnblogs.com/CMX_Shmily/p/11599813.html