前言
本面试题是今年最新的面试题,来自某技术中心的运维工程师初试
原题
- 列出查看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)
- 如何重置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;
退出后删除之前添加的内容,重启即可
- 简述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协议的
- lvs,nginx,haproxy 有什么区别,工作中你怎么选择?
题外话: 我其实很好奇笔试怎么会出这种题,直接面试不香吗
解答:
-
LVS: 是基于四层的转发
-
HAproxy: 是基于四层和七层的转发,是专业的代理服务器
-
Nginx: 是WEB服务器,缓存服务器,又是反向代理服务器,可以做七层的转发
区别: LVS基于四层的只能做端口转发,而基于目录的,基于url的就不能用LVS
工作中选择:
HAproxy和Nginx由于可以做七层的转发,所以URL和目录的转发都可以做
在很大并发量的时候我们就要选择LVS,像中小型公司的话并发量没那么大
选择HAproxy或者Nginx足已,由于HAproxy由是专业的代理服务器
配置简单,所以中小型企业推荐使用HAproxy
- 列举你接触过的虚拟化技术或者产品,并列出对应的熟练程度
kvm : 熟练
vmware: 熟练掌握
docker: 熟练掌握
xen: 熟练
- 如何将本地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 动作]
总结:
笔试题目其实都不难,难的是,好久没写字了,突然写这么多字感觉手酸,写的也不如以前好看了。而且很多时候居然提笔忘字。
好好练习,面试必胜