OpenStack(一) OpenStack由控制节点、计算节点、网络节点、存储节点四大部分组成 这四部分也可以在一台机器上部署 ``` 控制节点:负责对其余节点的控制,包含虚拟机的建立,迁移,网络分配,存储分配等 计算节点:负责虚拟机运行 网络节点:负责对外网络与对内网络之间的通信 存储节点:负责对虚拟机的额外存储管理 ``` 控制节点架构: 控制节点包括以下服务 1. 管理支持服务包含MySQL与Qpid两个服务 ``` MySQL:数据库作为基础、扩展服务产生的数据存放的地方。 Qpid:消息代理(也称为中间件),为其他各种服务之间的提供统一的消息通信机制 ``` 2. 基础管理服务包含Keystone,Glance,Nova,Neutron,Horizon五个服务 ``` Keystone:认证管理服务,提供了其余所有组件的认证信息、令牌的管理,创建,修改等等,使用MySQL作为统一的数据库。 Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板。 Nova:计算管理服务,提供了对计算节点的Nova管理,使用Nova-API进行通信。 Horizon:控制台服务,提供了以web形式对所有节点的服务的管理,通常把该服务称为Dashboard。 ``` 3. 扩展管理服务包含cinder,Swift,Trove,Heat,Centimeter五个服务 ``` cinder:提供管理节点的Cinder相关,同时提供Cinder在Horizon中的管理面板 Swift:提供管理存储节点的Swift相关,同时提供Swift在Horizon中的管理面板 Trove:提供管理数据库节点的Trove相关,同时提供Trove在Horizon中的管理面板 heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。 Centimeter:提供对物理资源以及虚拟资源的监控,并记录这些数据,该数据进行分析,在一定条件下触发相应动作。 控制节点一般来说只需要一个网络端口用于通信、管理各个节点 ``` 网络节点架构 网络节点仅包含Neutron服务 ``` Neutron:负责管理私有网络与公有网段的通信,以及管理虚拟网络之间的通信/拓扑,管理虚拟机之上的防火墙等等。 网络节点包含三个网络端口: eth0:用于与控制节点进行通信 eth1:用于与除了控制节点之外的计算/存储节点之间的通信 eth2:用于外部的虚拟机与相应网络之间的通信 ``` 计算节点架构: 计算节点包含Nova,Neutron,Telmeter三个服务 1. 基础服务 ``` Nova:提供虚拟机的创建,运行,迁移,快照等各种围绕虚拟机的服务,并提供API与控制节点对接,有控制节点下发任务。 Neutron:提供计算节点与网络节点之间的通信服务。 ``` 2. 扩展服务 ``` Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是centimeter的代理服务 计算节点至少包含两个网络端口 eth0:与控制节点进行通信,受控制节点统一调配 eth1:与网络节点,存储节点进行通信 ``` 存储节点架构: 存储节点包含Cinder,Swift等服务 ``` Cinder:块存储服务,提供相应的块存储,简单来说,就是虚拟出一块磁盘,可以挂在到相应的虚拟机上,不收文件系统等因素的影响,对虚拟机来说,这个操作系统就像是加了一块新的硬盘,可以完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等等操作,大多应用于虚拟空间不足的情况下的空间扩容等。 Swift:对象存储服务,提供相应的对象存储,简单的来说,就是虚拟出一块磁盘空间可以在这二个磁盘空间当中存放文件,也仅仅只能存放文件,不能进行格式化、转换文件系统,大多应用于云磁盘/文件 ``` 存储节点至少包含两个网络接口 ``` eth0:与控制节点进行通信,接受控制节点任务,首控制节点统一调配 eth1:与计算/网络节点进行通信,完成控制节点下发的各类任务。 ``` OpenStack+Ceph 2018-11-23 4 条评论 12691 次浏览
20-数组相关 数组的赋值(声明) 1. declare -a 数组名 2. 数组名=(value1 value2 value3 value4 value5....) 调用数组中的所有值 ~]# echo ${ar[*]} ~]# echo ${ar[@]} 数组长度的获取,数组中的元素的个数 ${#ar[*]} 元素长度的获取 ~]# echo ${ar[1]} |wc -L #统计一行的字符数 ~]# echo -n ${ar[1]]} |wc -L #去掉换行符统计 数组的叠加 a=(1,3,5,7) b=(2,4,6) 数组的切片 ``` ${abc[*]:1} 从属组下标为1(指定值)开始取值,一直到属组尾部,为0时不写 ${ab[*]:1:3} 从数组下标为1处开始取三个值 ${ab[*]:(-2):2} 从倒数第二个下标开始取两个值 ``` 元素的切片: ``` ${ar[1]:2:3} 将ar[1]中的字符从下标为2处开始取三位值 ${ar[1]:2} 将ar[1]中的字符从下标为2处开始取值,取余下所有的字符 数组的替换(替换为空即删除) ${ar[*] /旧字符/新字符} "一个斜杠" 被匹配元素中字符无论出现几次,只替换数组中最开始匹配到的一次。 ${ar[*] //旧字符/新字符} "两个斜杠" 被匹配到元素中全部替换 ${ar[*] /#字符 /新字符} 替换行首的字符 ${ar[*] /%字符/新字符} 替换行尾的字符 ~]# rev #将字符反向输出 ``` 基础笔记综合整理 2018-10-13 评论 3686 次浏览
19-计划任务 计划任务 单次计划任务 服务atd必须开机启动 ~]# at 时间(确切时间)|now +#(minutes|hours|days) >需要执行的操作 >Ctrl+D提交操作 at的黑白名单配置文件: /etc/at.deny 默认存在且为空 /etc/at.allow 默认不存在,如果存在,优先级比at.deny高 1. 当白名单不存在,却黑名单为空的时候,所有用户都可以使用at命令 2. 当黑名单和白名单同时存在时,只有白名单中的用户可以使用at命令,且不受黑白名单影响,白名单的优先级比黑名单优先级高。 ~]# atq #查看at任务 ~]# at -c 任务号 #查看at任务 ~]# atrm # #删除指定任务号 循环计划任务:按照给定的时间周期,进行有规律的进行任务的执行 服务:crond 必须开机自启 命令:crontab * * * * * 分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-7,0/7为星期日) !!周和日一般不同时设置 时间的频率: */# 每几(分/时/日) 连续的时间1-5 (周一到周五,1日到5日) 不连续的时间 1,3,5 1,3,5日 周1、3、5 * 指定范围内的任意时间 ``` ~]# crontab -e #命令的绝对路径或具有执行权限的脚本 * * * * * /PATH/TO/SOMEWHERE/scripts ``` 基础笔记综合整理 2018-10-13 评论 4890 次浏览
18-日志收集服务器搭建 日志收集服务器实验 服务器搭建: ~]# vim /etc/rsyslog.conf #修改日志配置文件 选择使用UDP或者TCP传输,建议使用UDP,不占用连接资源。 开启模块:$ModLoad imtcp 开启端口:$InputTCPserverRun 514 客户机搭建: ~]# vim /etc/rsyslog.conf #修改配置文件 将对日志的操作定向到其他主机 @IP:514 采用UDP传输 @@IP:514 采用TCP传输 一般来说日志服务的端口为514 linux不依靠主机名识别,但日志的记录需要通过主机名区分 且主机名在日志记录时,使用的是简化的主机名(完整主机名中第一个点号之前的字符) 只有rsyslog识别的服务才能写入配置文件中 日志服务[连接符号] 日志等级 日志的记录位置 "." 将日志大于、等于指定等级的日志全部记录下来 ".=" 只记录指定等级的日志 ".!" 除了该等级外的日志都记录 日志等级: debug 一般的调试信息说明 info 基本的通知信息 notice 普通信息,又一定的重要性 warning 警告信息,但是还不影响到服务或系统的运行 err 错误信息,一般达到err等级的信息可以影响到服务或系统的运行 crit 临界状态信息,比err等级严重 alert 警告状态信息,比crit严重,必须立即采取行动 emerg 疼痛等级信息,系统已经无法使用 基础笔记综合整理 2018-10-12 评论 4919 次浏览
17-备份管理 备份管理: 数据的安全性(防护),和完整性(备份) 需要备份的数据: 系统层面:配置文件、用户资料(家目录)、相关密码 应用层:web:http:网页目录、配置文件目录、日志 mysql:配置文静、数据库文件(有专门的备份工具)、mysqlhotcopy、mysqldump、log-bin日志(记录所有对数据库进行增删改的操作,实时备份) 其他日志,如mysql的运行日志、慢查询日志。 如何进行备份: 选择备份工具:diff、cpio、cp、tar、zip……scp(ssh+cp)远程复制 备份工具应当有事高效率、安全、稳定 备份地点: 同端备份:在同一设备上复制成多份 多端备份:在不同设备上保存多份 异地备份(灾备):异地将文件保存多份(数据库一定要做灾备) 云备份:不安全,但是双双重备份,成本低。 备份的时机: 热备:数据不停止读写时进行备份 温备:仅停止数据写入,进行备份 冷备:停止数据的读写进行备份 备份周期 视备份数据重要程度、文件大小选择适当的时机 不得在服务器高负载时进行备份 备份的频率取决于数据的安全等级和数据量大小 备份结束后需要检查备份策略是否正常执行 测试备份数据的可用性,在测试服务器上进行测试恢复。 差异备份:先进行一次完整备份,每一次备份都是基于原始备份更新,因此备份会越来越大。 完整备份:完整备份就是将所有的数据全部备份,好处是恢复数据方便,但是占用资源庞大。 需要永久保存的文件至少保存两份 差异备份也属于增量备份的类型 差异备份相当于每一次备份时,都与原始备份进行比较。 增量备份:第一次为原始备份,之后的备份是以上一次备份数据作为参照进行的。 我们备份一个数据时,支持0-十个备份级别,第一次备份应当使用0级别,会将所有的数据完整的备份一次,第二次备份就可以使用1级别了,它会0级别的数据进行比较,把0级别备份后发变化的数据进行备份,。 只有在备份整个分区或者硬盘时,才能支持1-9的增量备份级别,而如果只备份某个文件或者不是分区的目录时,只能使用0级别进行完整备份。 ~]# dump --level #(0-9) 指定备份的级别,也可使用 -#指定备份级别 增量备份:先指定0,再指定1-2-3-4-5..... 差异备份:先指定0,再指定1-1-1-1-1.... -f 指定备份文件的名称 -u 备份文件系统时(分区),记录备份的时间于/etc/dumpdates中 -j 调用bzip2压缩库,压缩的文件后缀为".bz2" 一般来说,dump备份文件时以dump.*作为后缀方便理解 dump --level 0 -uj -f /root/boot.dump.bz2 /boot(操作对象) dump -0uj -f /root/boot.dump.bz2 /boot ~]# restore 恢复备份命令,需事先切换到需要恢复的目录下再执行,否则恢复到当前目录 ~]# restore -r #还原模式,还原数据 ~]# restore -i #交互模式,可以有选择的恢复 add 文件名|标记 extract 进行指定恢复的交互界面: >1 (固定值) >n (no) ~]# restore -t DumpFile #查看备份文档中的内容 ~]# restore -C -f DumpFile #将备份文件与源文件进行比较 ~]# restore -C 只能检查原始数据文件中丢失了哪些文件,对于新增的文件无法识别 ~]# restore -W #查询系统内进行过DUMP别分的分区,以及备份级别和备份时间 基础笔记综合整理 2018-10-12 评论 2448 次浏览
16-日志管理 日志管理:一般是自己编写管理脚本 日志的管理服务:syslog--->rsyslog(rsyslog向前兼容) rsyslog只针对系统相关日志,分析日志的类型,将日志保存到指定的位置,支持将日志通过TCP协议簇汇总到日志服务器,汇总后的日志通过主机名进行区分 常见的日志文件(系统默认的日志) /var/log/cron 记录了定时任务相关的日志 /var/log/cpus 记录了打印信息的日志 /var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令查看内核自检信息。 /var/log/btmp 记录错误登录日志,这是一个二进制文件,不能使用vim等文本查看工具直接打开,需要使用lastb命令查看。 /var/log/mail/log 记录邮件信息 /var/log/lastlog 记录系统中最后一次登录时间的日志,这个文件是二进制文件,需要使用lastlog命令查看。 /var/log/message 记录系统产生的重要信息日志,这个日志文件记录了linux系统的巨大多数重要信息,如果系统出现问题,首先要检查这个文件。 /var/log/secure 记录验证和授权方面的信息,只要涉及账号密码的操作都会记录到这个文件中。 /var/log/wtmp 永久记录所有用户的登录,注销信息、同时记录系统的启动、重启、关机事件、二进制文件,需要使用last命令进行查看。 /var/run/utmp 记录当前已登录用户的信息,这个文件会随着用户的登录和注销而不断变化、只记录挡圈登录用户的信息,使用w/who/users等命令查询 /var/log/httpd RPM包的apache服务的默认日志目录 /var/log/mail RPM包安装的邮件服务的额外日志目录 /var/log/samba RPM包安装的samba服务的日志目录 /var/log/sssd 守护进程安全服务目录 源码包的日志安装在指定的目录下 日志文件中的格式 事件的发生时间 服务器的主机名 服务名或者程序名 事件的集体信息 rsyslog配置文件 /etc/rsyslog.conf 第一列为日志类型和日志优先级的组合,每个类型和优先级的组合称为选择器。 第二列为保存日志的文件、服务器,或输出日志的终端,syslog根据选择器决定如何操作日志。 1. 日志的类型和优先级使用"."进行分隔 2. 规则定义越详细优先级越高,如:kernel、debug的优先级大于debug 3. "*"表示所有,如:*.debug表示所有类型的调试信息 kernel.* 表示内核产生的所有消息 4. 可以使用逗号","分割多个日志类型,使用分号";"分割多个选择器 日志类型.none表示此类型日志不记录 对日志的操作: 1. 将日志输出到文件:/var/log/message,/dev/console 2. 将消息发送给用户,多个用户使用逗号分隔 3. 通过管道将消息发送给用户程序,程序放到管道符后 4. 将消息发送给其它主机上的rsyslog进程 只有rsyslog识别的服务才能写入配置文件中 日志服务[连接符号] 日志等级 日志的记录位置 "." 将日志大于、等于指定等级的日志全部记录下来 ".=" 只记录指定等级的日志 ".!" 除了该等级外的日志都记录 日志等级: debug 一般的调试信息说明 info 基本的通知信息 notice 普通信息,又一定的重要性 warning 警告信息,但是还不影响到服务或系统的运行 err 错误信息,一般达到err等级的信息可以影响到服务或系统的运行 crit 临界状态信息,比err等级严重 alert 警告状态信息,比crit严重,必须立即采取行动 emerg 疼痛等级信息,系统已经无法使用 日志的轮替: 主要目的是为了防止单个文件过大,按照我们的规则对日志进行相应处理 主要依赖/etc/logrotate.conf配置文件,dateext参数实现日志的处理 weekly 每周对日志进行依次轮替 rotate 在轮替的过程中,自动创建信息的文件 dateext 使用日期作为日志文件的后缀 compress 是否压缩进行轮替的日志 size 大小,日志只有大于指定大小才进行轮替 missingok 如果日志不存在忽略该日志的警告信息 notifempty 如果日志为空文件,则不进行日志的轮替 系统自动进行日志轮替的原因: /etc/cron.daily/下有一个脚本,每天都运行,查看是否有符合轮替的日志,然后进行相应处理。 rsyslog所管理的服务:系统服务 logratate能管理绝大部分的日志,rpm包安装的包能够被logrotate管理,但是需要加入规则 将产生的日志按照预设的参数进行轮替。 日志文件类型改为压缩类型后,之前产生的日志将永久保存,不会删除。 ~]# logrotate -vf /etc/logratate.conf 强制执行日志的轮替 ~]# split FileName -b 按大小对文件进行切割(会切断行),单位自行指定 -l 按行进行切割 -d 声明文件切割后的文件前缀 -a 3 指定以数字作为后缀,且以三位数值显示 将工具(脚本)模块化的思路: 1. 写成函数文件/函数 2. 将每一个功能单独实现,在一个主脚本中去调用 日志(受rsyslog管理的日志),改名、移动后均会向其中写入日志,删除后不会创建新文件,也不会记录日志。?需要在产生日志的环境下验证,比如httpd日志 基础笔记综合整理 2018-10-11 评论 2376 次浏览