前言

本面试题是今年最新的面试题,来自某技术中心的运维工程师初试

原题

  1. 列出查看Linux操作系统服务器资源或服务的命令并说明系统版本
举例:
内存:grep MemTotal /proc/meminfo   free -m 查看可用内存

查看系统位数:getconf LONG_BIT

查看是多少核:more /proc/cpuinfo | grep "model name"

磁盘:df -h
系统版本: [root@ecs-c13b diff]# cat /etc/redhat-release 
            CentOS Linux release 7.5.1804 (Core)

  1. 如何重置mysql root密码
在my.cnf里[mysqld] 下配置 skip_grant_tables=1
然后直接使用mysql登陆数据库
修改密码:
update mysql.user set authentication_string=password('123) where user='root' and host='localhost';
exit;

退出后删除之前添加的内容,重启即可
  1. 简述keepalived原理
作用:防止单点故障
keepalived的实现是基于VRRP协议,也就是路由冗余协议

原理:

keepalived可提供vrrp以及health-check功能,可以只用它提供双机浮动的vip(vrrp虚拟路由功能),这样可以简单实现一个双机热备高可用功能;

keepalived是以VRRP虚拟路由冗余协议为基础实现高可用的,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到VRRP包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

简单点说(面试用): keepalived 是基于VRRP虚拟路由冗余协议为基础实现高可用的,一个master,几个backup, mater会发组播,当backup收不到vrrp包时会认为master宕机,然后根据VRRP优先级来重新选举一个backup来当maser,以实现高可用。

补充:
keepalived 由三个模块组成,分别是core, check,和vrrp

  • core:是keepalived的核心,负责主进程的启动和维护,全局配置文件的加载解析等

  • check: 负责healthchecker(健康检查),包括了各种健康检查方式,以及对应的配置的解析包括LVS的配置解析;可基于脚本检查对IPVS后端服务器健康状况进行检查

  • vrrp:VRRPD子进程,VRRPD子进程就是来实现VRRP协议的

  1. lvs,nginx,haproxy 有什么区别,工作中你怎么选择?

题外话: 我其实很好奇笔试怎么会出这种题,直接面试不香吗

解答:

  • LVS: 是基于四层的转发

  • HAproxy: 是基于四层和七层的转发,是专业的代理服务器

  • Nginx: 是WEB服务器,缓存服务器,又是反向代理服务器,可以做七层的转发

区别: LVS基于四层的只能做端口转发,而基于目录的,基于url的就不能用LVS

工作中选择:

HAproxy和Nginx由于可以做七层的转发,所以URL和目录的转发都可以做

在很大并发量的时候我们就要选择LVS,像中小型公司的话并发量没那么大

选择HAproxy或者Nginx足已,由于HAproxy由是专业的代理服务器

配置简单,所以中小型企业推荐使用HAproxy

  1. 列举你接触过的虚拟化技术或者产品,并列出对应的熟练程度
kvm :  熟练
vmware:  熟练掌握
docker: 熟练掌握
xen:     熟练
  1. 如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.1.80
  iptables -t nat -A PREROUTING -d 192.168.1.80 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.80:8080

补充:

iptables 基础

规则rules : 网络管理员预定义的条件
链chains : 数据包传播的路径
表 tables 内置三个表:filter,nat,mangle

  • filter 系统默认的,INPUT表(进入的包),FORWORD(转发的包),OUTPUT(处理本地生成的包),filter表只能对包进行授受和丢弃的操作。
  • nat表(网络地址转换),PREROUTING(修改即将到来的数据包),OUTPUT(修改在路由之前本地生成的数据包),POSTROUTING(修改即将出去的数据包)
  • mangle表,PREROUTING,OUTPUT,FORWORD,POSTROUTING,INPUT

增加,插入,删除和替换规则
-A 增加
-I 插入
-D 删除
-R 替换
-i 网卡名称
-p 协议类型
-s 源IP
–sport源端口号
-d 目的ip
– dport目标端口号
-j 动作










iptables [-t 表名] <-A|I|D|R> 链名 [规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源ip|源子网] [--sport 源端口号] [-d 目的IP|目标子网] [--dport 目标端口号] [-j 动作]

总结:

笔试题目其实都不难,难的是,好久没写字了,突然写这么多字感觉手酸,写的也不如以前好看了。而且很多时候居然提笔忘字。

好好练习,面试必胜

08-31 15:09