ceph HEALTH_ERR 1 scrub errors

1、ceph health detail

HEALTH_ERR 1 scrub errors; Possible data damage: 1 pg inconsistent
OSD_SCRUB_ERRORS 1 scrub errors
PG_DAMAGED Possible data damage: 1 pg inconsistent
pg 2.307 is active+clean+inconsistent, acting [69,174]

2、ceph pg repair 2.307

instructing pg 2.307 on osd.69 to repair

3、ceph health detail

HEALTH_ERR 1 scrub errors; Possible data damage: 1 pg inconsistent
OSD_SCRUB_ERRORS 1 scrub errors
PG_DAMAGED Possible data damage: 1 pg inconsistent
pg 2.307 is active+clean+scrubbing+deep+inconsistent+repair, acting [69,174]


云迁移项目的流程

1、系统在云化迁移的过程中需要根据各自业务特性的差异及实现技术的方式采取不同的迁移策略进行云化迁移。

2、首先要进行系统调研,包括业务、系统架构、数据库、应用程序方面的,以及相关业务目标。

3、然后要评估迁移原则、流程、经济效应,以及方法模型,特别是风险,给出评估结论。

4、接下来进行方案设计,包括业务架构方案,系统架构方案,系统改造和实施方案。

5、迁移之前,需要完成必要的系统架构、数据库、应用程序等相关改造,并做好验证测试。

6、实施迁移之前,要做好相关资源的准备,实施过程中要按照预先制定的方案分阶段进行。

7、迁移完成后,要做好功能、性能测试以及一致性验证,并未后期运维做好基础材料的整理工作。

KVM的网络类型

KVM的虚拟化网络 1、Linux Bridge 2、vlan

现在的交换机几乎都是支持 VLAN 的。 通常交换机的端口有两种配置模式: Access 和 Trunk。

Access 口

这些端口被打上了 VLAN 的标签,表明该端口属于哪个 VLAN。 不同 VLAN 用 VLAN ID 来区分,VLAN ID 的 范围是 1-4096。 Access 口都是直接与计算机网卡相连的,这样从该网卡出来的数据包流入 Access 口后就被打上了所在 VLAN 的标签。 Access 口只能属于一个 VLAN。

Trunk 口

假设有两个交换机 A 和 B。 A 上有 VLAN1(红)、VLAN2(黄)、VLAN3(蓝);B 上也有 VLAN1、2、3 那如何让 AB 上相同 VLAN 之间能够通信呢?

办法是将 A 和 B 连起来,而且连接 A 和 B 的端口要允许 VLAN1、2、3 三个 VLAN 的数据都能够通过。

这样的端口就是Trunk口了。 VLAN1、2、3 的数据包在通过 Trunk 口到达对方交换机的过程中始终带着自己的 VLAN 标签。

云计算中各类存储区别

HDFS 不适合低延时的数据访问方式,不适合大量小文件、不适合多方读写,需要任意的文件修改,不支持多个机器同时写入。

HBase 适合低延时的数据访问方式。

ceph 支持文件存储、块存储、对象存储。 支持cephfs rbd

swift 在swift对象存储中,客户端需要联系swift网关,这会带来一些潜在的单点故障。

持续更新中。。。。。。

ceph相关命令

###############centos7

mkdir my-cluster

cd my-cluster

yum install ceph-deploy -y

ceph-deploy new mon01

yum install python-minimal -y

ceph-deploy install mon01 node01 node02

MDS=”mon01″

MON=”mon01 node01 node02″

OSDS=”mon01 node01 node02″

INST=”$OSDS $MON”

echo “osd pool default size = 2

osd max object name len = 256

osd max object namespace len = 64

mon_pg_warn_max_per_osd = 2000

mon clock drift allowed = 30

mon clock drift warn backoff = 30

rbd cache writethrough until flush = false” >> ceph.conf

apt-get install -y ceph-base

apt-get install -y ceph-common

apt-get install -y ceph-fs-common

apt-get install -y ceph-fuse

apt-get install -y ceph-mds

apt-get install -y ceph-mon

apt-get install -y ceph-osd

[Ceph]

name=Ceph packages for $basearch

baseurl=http://mirrors.163.com/ceph/rpm-nautilus/el7/$basearch

enabled=1

priority=1

gpgcheck=1

gpgkey=https://download.ceph.com/keys/release.asc

[Ceph-noarch]

name=Ceph noarch packages

baseurl=http://mirrors.163.com/ceph/rpm-nautilus/el7/noarch

enabled=1

priority=1

gpgcheck=1

gpgkey=https://download.ceph.com/keys/release.asc

[ceph-source]

name=Ceph source packages

baseurl=http://mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS

enabled=0

priority=1

gpgcheck=1

gpgkey=https://download.ceph.com/keys/release.asc

yum install python-setuptools

yum install -y deltarpm

yum install -y gdisk

ceph mgr module disable dashboard

ceph-deploy mgr create mon01 node01 node02

ceph dashboard ac-user-create admin passw0rd administrator

systemctl restart ceph-mon.target

ceph-deploy –overwrite-conf mds create mon01 node01 node02 创建mds

ceph osd pool create cephfs_data 128

ceph osd pool create cephfs_metadata 128

ceph fs new myfs cephfs_metadata cephfs_data

ceph osd pool rm cephfs_data cephfs_data –yes-i-really-really-mean-it 删除cephfs_data

ceph fs rm myfs –yes-i-really-mean-it 删除myfs

mount -t ceph 192.168.169.190:6789:/ /fsdata -o name=admin,secretfile=/etc/ceph/admin.secret

##ceph添加新节点

ceph-deploy –overwrite-conf config push admin mon01 node01 node02 node03

ceph-deploy –overwrite-conf mon create node03

ceph-deploy –overwrite-conf mon add node03

ceph-deploy osd create –data /dev/sdb node03

#######rbd链接方式

ceph osd pool create rbd_test 128 128

rbd create rbd_date –size 20480 -p rbd_test

rbd –image rbd_date -p rbd_test info

rbd feature disable rbd_test/rbd_date object-map fast-diff deep-flatten

rbd map rbd_date -p rbd_test

rbd showmapped

ceph osd pool application enable rbd_test rbd_date

mkfs.xfs /dev/rbd0

mkdir /rbddate

mount /dev/rbd0 /rbddate/

dd if=/dev/zero of=/rbddate/10G bs=1M count=10240

#cloudstack挂载rbd存储

ceph auth get-or-create client.cloudstack mon ‘allow r’ osd ‘allow rwx pool=vm-data’

AQD+VQVfELMbJRAA5LspVxtCykwJ3LFzwYLyFQ==

####删除RBD

rbd list -p rbd_test

rbd unmap /dev/rbd0

rbd rm rbd_date -p rbd_test

rbd list -p rbd_test 查看镜像

rbd snap ls rbd_test/dfe36912-ba7f-11ea-a837-000c297bc10e 查看镜像的快照

rbd snap unprotect rbd_test/dfe36912-ba7f-11ea-a837-000c297bc10e@cloudstack-base-snap 解除快照保护

rbd snap purge rbd_test/ede76ccf-f86a-4ab7-afa7-1adc4f1b576b 删除快照

rbd rm rbd_test/ede76ccf-f86a-4ab7-afa7-1adc4f1b576b 删除镜像

rbd children vm-data/2368966f-0ea3-11eb-8538-3448edf6aa08@cloudstack-base-snap 查看子快照

rbd flatten vm-data/79900df4-0b18-42cb-854b-c29778f02aff 还原子快照

问题:This means the image is still open or the client using it crashed. Try again after closing/unmapping it or waiting 30s for the crashed client to timeout.

解决:

rbd status vm-data/6926af02-27c3-47ad-a7ee-86c7d95aa353 查看戳号

ceph osd blacklist add 172.31.156.11:0/4126702798

查看rbd 残留的watch信息

[root@node-2 ~]# rbd status compute/2d05517a-8670-4cce-b39d-709e055381d6_disk Watchers: watcher=192.168.55.2:0/2900899764 client.14844 cookie=139644428642944

将该残留的watch信息添加到osd的黑名单,再查看watch是否存在。

[root@node-2 ~]# ceph osd blacklist add 192.168.55.2:0/2900899764 blacklisting 192.168.55.2:0/2900899764 until 2018-06-11 14:25:31.027420 (3600 sec) [root@node-2 ~]# rbd status compute/2d05517a-8670-4cce-b39d-709e055381d6_disk Watchers: none

删除rbd

[root@node-2 ~]# rbd rm compute/2d05517a-8670-4cce-b39d-709e055381d6_disk Removing image: 100% complete…done.

对象存储minio的安装方法

docker run -d –name minio \

–restart=always –net=host \

-e MINIO_ACCESS_KEY=admin \

-e MINIO_SECRET_KEY=passw0rd \

-v /data:/data \

minio/minio server \

http://oss-{01…04}/data/

########客户端实时同步脚本如下:########

#修改成你需要实时同步备份的文件夹

backup=”/backup/filebackup”

#修改成你要备份到的存储桶

bucket=”minio”

#将以下代码一起复制到SSH运行

cat > /etc/systemd/system/miniocfile.service <

[Unit]

Description=miniocfile

After=network.target

[Service]

Type=simple

ExecStart=$(command -v mc) mirror -w –overwrite ${backup} ${bucket}/${backup}

Restart=on-failure

[Install]

WantedBy=multi-user.target

EOF

#######################################

ceph更换硬盘方法

1、systemctl stop ceph-osd@21

2、ceph osd out osd.21

3、ceph osd crush remove osd.21

4、ceph auth del osd.21

5、ceph osd rm 21

6、cd /var/lib/ceph/osd/ceph-xx #查找相应的OSD对应的/dev是什么。

7、umount /dev/sdj

8、换硬盘

smartctl –all /dev/sde ########识别硬盘SN号

9、登录到c01

10、cd /root/my-cluster

11、ceph-deploy osd create –data /dev/sdj c02

K8S有哪些组件

Master 组件:

1、kube-apiserver :

  Kubernetes API 集群的统一入口,各组件的协调者,以RESTful API提供接口方式,所有的对象资源的

增删改查和监听操作都交给APIServer处理后再提交给etcd数据库做持久化存储

2、Kube-controller-manager

  处理集群中常规后台任务,一个资源对应一个控制器,而controllerManager就是负责处理这些控制器的

3、kube-scheduler

  根据调度算法为新创建的pod选择一个Node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上

4、etcd

  分布式键值存储系统,用于保存集群状态数据,比如Pod,Service等对象信息

Node组件:

1、kubelet:

  kubelet 是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器,Pod挂载数据卷,下载secret,获取容器和节点状态等工作,kubelet 将每个Pod转换成一组容器

2、kube-proxy:

  在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。实现让Pod节点(一个或者多个容器)对外提供服务

3、docker或rocket

  容器引擎,运行容器

什么是ELK

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

1.1、Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

1.2、Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

1.3、Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

微服务架构

面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建。

微服务(或微服务架构)是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。这些服务通常

  • 有自己的堆栈,包括数据库和数据模型;
  • 通过REST API,事件流和消息代理的组合相互通信;
  • 它们是按业务能力组织的,分隔服务的线通常称为有界上下文。