KOPS - 2019年3月
type: channel
link: https://www.kops.cc/2019/03/
description: 好记性不如烂笔头，记录学习点滴！https://www.kops.cc。技术交流加微 haxicc
items: 查看 Ceph PG 在 OSD 的分布情况
items: 故障管理流程 Incident Management
items: 使用 smartmontools 查看硬盘的健康状态
items: OpenStack Rocky(R版) 部署手册 - 计算节点
items: OpenStack Rocky(R版) 部署手册 - 控制节点

查看 Ceph PG 在 OSD 的分布情况
type: item
date: 2019-03-27T05:48:00+00:00
description: 在对 Ceph 进行调优时常常会通过查看 PG 在 OSD 中的分布情况，如果分布不均匀，会影响集群性能。使用下面命令可以查看 PG 在 OSD 的分布情况：echo -e "OSD-ID\t\t\tPGS";for i in `ceph osd ls`;do echo -ne "osd.$i\t\t\t";ceph pg ls-by-primary $i|grep -v PG_STAT|wc -l ;done调优参考：Nautilus 版本PG 分布调优

故障管理流程 Incident Management
type: item
date: 2019-03-20T03:11:00+00:00
description: 目标在短时间内恢复服务正常运营（满足 SLA [Service-Level Agreement]），将业务运营的负面影响降至最低。范围包括：用户和技术人员报告的失效、问题或疑问事件监控工具的自动发现和报告对企业的价值能够检测和解决故障能够将IT活动与实时业务优先级相关联能够发现潜在的服务改进方面服务台可以从中发现额外需要的服务或培训需求故障管理在企业中有很高的曝光率，更容易展示出流程价值所在，为争取投资提供支持。基本概念处理时限：根据 SLA 中规定的整体故障响应与解决目标，在不同的故障处理阶段必须确定具体处理时限。要在 OLA [Operational Level Agreement] 和 UC [Underpinning Contract] 中作为目标明确规定所有支持小组必须清除了解这些处理时限可以借助服务管理工具用于自动执行处理时限，并根据预定义规则升级故障模型：预定的“标准”故障模型将有助于在故障发生时对应到合适的故障按故障模型要求将信息输入到故障处理支持工具中，之后该类工具可以自动进行流程的处理、管理与升级工作模型包括：处理故障应遵循的步骤这些步骤应遵循的时间顺序，相互依赖关系职责措施完成的时间表与阈值升级程序，应该联系谁，何时进行升级任何必要的证据保留重大故障：组织必须明确标识出哪类事件构成重大故障必要时可以动态成立一支重大故障处理团队如果需要调查故障原因，问题经理也需要参与其中服务台需确保所有活动均记录在案，且用户了解具体进展流程活动故障确认： 对各种途径反馈来的事件进行分析、判断，确认是否属于故障故障记录： 所有的故障均需要做完整的记录，并带有时间戳故障信息，模型：唯一参考标号故障类型（通常为两到四个子类）故障紧急度故障影响度故障优先级记录的日期/时间记录事件的人员通知方法受影响客户的联系方式症状描述故障状态相关 CI负责故障的支持人员/小组相关问题/已知错误解决故障采取的活动解决日期/时间关闭类型关闭日期/时间流程图 故障分类通常会使用不超过四个级别，例如：硬件 -> 服务器 -> 内存条 -> 插卡松动软件 -> 应用 -> OA套件 -> 采购订单系统故障优先级因素：紧急度、影响度优先级编码设计： 初步诊断由服务台完成，应尽量成功解决并关闭故障故障升级职能性升级：当故障处理已经超过一线解决的目标时间，必须立即升级故障参照 OLA 和 UC 中的规定，对故障升级进行管理故障的所有权要始终归属服务台，服务台负责跟踪进展、通知客户，直到故障结束管理性升级：当故障性质严重，需要引入额外资源或维护商，存在故障分配争议等情况时，必须通知相应的项目经理注意：在分配故障时，须明确按照真正的业务优先级顺序处理故障。不允许人员根据个人意向“挑选”故障。调查与诊断系类活动应尽可能地并行执行，以缩短时限此类活动应全面记录到故障记录中解决和恢复应确保恢复措施经过了可靠的验证测试可能需要协调多个小组的恢复活动并与所有参与方保持联系需要将采取的各种措施更新至故障处理记录问题解决小组应将故障反馈给服务台，以执行关闭措施故障关闭服务台应检查故障是否全部解决，用户是否满意并同意关闭故障服务台还应检查：关闭分类、故障初始分类是否正确和需要得到更新用户满意度调查，对约定比例的故障进行故障登记问题持续存在或重复发生？正式关闭流程间接口问题管理配置管理变更管理容量管理可用性管理服务级别管理在 SLM [Service Level Management] 管理范围内，故障管理应关注：故障响应时间影响度定义目标修复时间服务定义（相对于用户）请求服务的规则想用户提供反馈的预期信息管理故障管理中使用的大部分信息，来源于以下两方面：故障管理工具，包括：故障和问题历史记录故障分类为解决故障采取的措施诊断脚本，用于帮助一线分析人员解决故障，或者至少手机信息，来帮助二线或三线的分析人员更快速地解决故障故障记录，包括：唯一编号故障分类记录及任何后续活动的日期/时间记录和更新故障记录的人员姓名和身份受影响用户的姓名/组织/联系人信息故障症状的描述为诊断、解决故障所采取的任何措施的详情故障类别、影响度、紧急度、优先级与其他故障、问题、变更和已知故障的关系关闭详情，包括时间、类别、采取措施以及关闭记录的人员身份指标指标应得到监视和报告，以据以判断故障管理流程及其运营的效率和效果PKI [Key Performance Indicators] 包括：故障总数量按各阶段细分的故障，如记录的、进展中的、关闭的等当前估值处理积压的规模重大故障的数量和比例解决或恢复故障的平均耗时，按影响度代码细分在约定响应时间内处理的故障比例重开的故障数量和所占百分比未正确分配任务的故障数量和所百分比未正确分类的故障数量和百分比服务台无需其他级别支持而关闭的故障所占百分比每个人员处理的故障数量和百…

使用 smartmontools 查看硬盘的健康状态
type: item
date: 2019-03-18T08:15:03+00:00
description: 相信各界搞机人士都经历过磁盘损坏导致数据丢失的痛，博主家的 NAS 就曾经坏了一块 3T 硬盘，数据尽失，那个痛啊！此后，博主家的 NAS 就改成了 RAID 1。Too young,too simple. RAID 1 虽然允许坏一块硬盘，但如果你都不知道它什么时候坏了，等两块都坏了那就真的无力回天了。为了避免遇到这种困境，用户可以试用一款叫做 smartmontools 的软件包程序，它通过使用自我监控(Self-Monitoring)、分析(Analysis)和报告(Reporting)三种技术（缩写为S.M.A.R.T.或SMART）来管理和监控存储硬件。如今大部分的ATA/SATA、SCSI/SAS和固态硬盘都搭载内置的SMART系统。SMART的目的是监控硬盘的可靠性、预测磁盘故障和执行各种类型的磁盘自检。smartmontools由smartctl和smartd两部分工具程序组成，它们一起为Linux平台提供对磁盘退化和故障的高级警告。安装 Smartmontools[root@localhost ~]# yum install -y smartmontools使用 smartctl 检测硬盘的健康状况[root@localhost ~]# smartctl --info /dev/sdc smartctl 6.5 2016-05-07 r4318 [x86_64-linux-3.10.0-957.5.1.el7.x86_64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Seagate Barracuda 7200.14 (AF) Device Model: ST500DM002-1BD142 Serial Number: W2AL00M0 LU WWN Device Id: 5 000c50 05ccf9cc4 Firmware Version: KC45 User Capacity: 500,107,862,016 bytes [500 GB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 7200 rpm Device is: In smartctl database [for details use: -P show] ATA Version is: ATA8-ACS T13/1699-D revision 4 SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Mon Mar 18 15:03:42 2019 CST SMART support is: Available - device has SMART capability. SMART support is: Enabled这仅是磁盘的一些信息，如果需要查看 S.M.A.R.T.，需执行：[root@localhost ~]# smartctl -H /dev/sdc smartctl 6.5 2016-05-07 r4318 [x86_64-linux-3.10.0-957.5.1.el7.x86_64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: FAILED! Drive failure expected in less than 24 hours. SAVE ALL DATA. Failed Attributes: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 5 Reallocated_Sector_Ct 0x0033 002 002 036 Pre-fail Always FAILING_NOW 32280特别需要关注 SMART overall-health self-assessment test result: FAILED! 这一行，博主这硬盘已经出现告警了，自检不通过。这个结果是PASSED…

OpenStack Rocky(R版) 部署手册 - 计算节点
type: item
date: 2019-03-05T10:07:00+00:00
description: 控制节点部署见：OpenStack Rocky(R版) 部署手册 - 控制节点部署环境主机名IP系统部署模块controller192.168.31.11CentOS 7 x86_64MySQL-server RabbitMQ-server memcachedetcd keystone glance nova-api placement neutronnode2192.168.31.12CentOS 7 x86_64nova-compute neutron-linuxbridgenode3192.168.31.13CentOS 7 x86_64nova-compute neutron-linuxbridge环境准备关闭防火墙[root@node2 ~]# systemctl disable firewalld [root@node2 ~]# systemctl stop firewalld关闭 SELinux[root@node2 ~]# sed -i 's/^SELINUX=enforcing/SELINUX=disabled' /etc/selinux/config [root@node2 ~]# setenforce 0时间同步[root@node2 ~]# yum install -y chrony [root@node2 ~]# systemctl enable chronyd [root@node2 ~]# systemctl start chronydHost 解析192.168.31.11 controller 192.168.31.12 node2 192.168.31.13 node3更新系统[root@node2 ~]# yum upgrade -y以 node2 为例，加入其它计算节点操作一样。安装配置 Nova-compute安装 openstack yum 源[root@node2 ~]# yum install -y centos-release-openstack-rocky安装 openstack 客户端[root@node2 ~]# yum install -y python-openstackclient安装 nova computer[root@node2 ~]# yum install -y openstack-nova-compute配置 nova编辑 nova 配置文件 /etc/nova/nova.conf[DEFAULT] # ... enabled_apis = osapi_compute,metadata transport_url = rabbit://openstack:RABBIT_PASS@controller my_ip = 192.168.31.11 use_neutron = true firewall_driver = nova.virt.firewall.NoopFirewallDriver [api] # ... auth_strategy = keystone [keystone_authtoken] # ... auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = NOVA_PASS [neutron] # ... url = http://controller:9696 auth_url = http://controller:5000 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASS [vnc] # ... enabled = true server_listen = 0.0.0.0 server_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html [glance] # ... api_servers = http://controller:9292 [oslo_concurrency] # ... …

OpenStack Rocky(R版) 部署手册 - 控制节点
type: item
date: 2019-03-05T08:43:00+00:00
description: 部署环境主机名IP系统部署模块controller192.168.31.11CentOS 7 x86_64MySQL-server RabbitMQ-server memcachedetcd keystone glance nova-api placement neutron horizonnode2192.168.31.12CentOS 7 x86_64nova-compute neutron-linuxbridgenode3192.168.31.13CentOS 7 x86_64nova-compute neutron-linuxbridge环境准备关闭防火墙[root@controller ~]# systemctl disable firewalld [root@controller ~]# systemctl stop firewalld关闭 SELinux[root@controller ~]# sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config [root@controller ~]# setenforce 0时间同步[root@controller ~]# yum install -y chrony [root@controller ~]# systemctl enable chronyd [root@controller ~]# systemctl start chronydHost 解析192.168.31.11 controller 192.168.31.12 node2 192.168.31.13 node3更新系统[root@controller ~]# yum upgrade -y安装 OpenStack 基础软件包安装 openstack yum 源[root@controller ~]# yum install -y centos-release-openstack-rocky安装 openstack 客户端[root@controller ~]# yum install -y python-openstackclient安装 openstack-selinux 包实现对 OpenStack 服务的安全策略进行自动管理[root@controller ~]# yum install -y openstack-selinux安装数据库服务安装 MySQL Server[root@controller ~]# yum install -y mariadb mariadb-server python2-PyMySQLMySQL配置文件[root@controller ~]# cat > /etc/my.cnf.d/openstack.cnf << EOF [mysqld] default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8 EOF启动MySQL[root@controller ~]# systemctl enable mariadb [root@controller ~]# systemctl start mariadbMySQL安全初始化[root@controller ~]# mysql_secure_installationmysql_secure_installationNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the currentpassword for the root user. If you've just installed MariaDB, andyou haven't set the root password yet, the password will be blank,so you should just press enter here.Enter current password for root (enter for none): OK, successfully used password, moving on...Settin…