第二课 ceph基础学习-OSD扩容换盘和集群运维

文章目录

  • 第二课 ceph基础学习-OSD扩容换盘和集群运维
    • 第一节 OSD扩容
      • 1.1 扩容背景
      • 1.2 横向扩容
      • 1.3 纵向扩容
      • 1.4 数据重分步rebalancing
      • 1.5 OSD磁盘缩容
      • 1.6 一致性检查
    • 第二节 Ceph集群运维
      • 2.1 服务进程管理
      • 2.2 Ceph日志分析
      • 2.3 Ceph集群信息查看
        • 2.3.1 集群健康状态查看
        • 2.3.2 osd 资源查看
        • 2.3.3 mon资源查看
        • 2.3.4 mds 资源查看
        • 2.3.5 ADMIN SOCKET
      • 2.4 Ceph Pool 资源池管理
      • 2.5 Ceph PG 数据分布

第一节 OSD扩容

1.1 扩容背景

  1. 在企业生产环境中,随着时间的迁移数据会存在磁盘空间不足,或者机器节点故障等情况。OSD又是实际存储数据,所以扩容和缩容OSD就很有必要性
  2. 随着我们数据量的增长,后期可能我们需要对osd进行扩容。目前扩容分为两种,一种为横向扩容,另外一种为纵向扩容
    • 横向扩容scale out增加节点,添加更多的节点进来,让集群包含更多的节点
    • 纵向扩容scale up增加磁盘,添加更多的硬盘进行,来增加存储容量

1.2 横向扩容

  1. 横向扩容实际上就是把ceph osd节点安装一遍,增加节点。
# NTP SERVER (ntp server 与阿里与ntp时间服务器进行同步)
#首先我们配置ntp server,我这里在ceph01上面配置
yum install -y ntp
systemctl start ntpd
systemctl enable ntpd
timedatectl set-timezone Asia/Shanghai
# 将当前的 UTC 时间写入硬件时钟
timedatectl set-local-rtc 0
# 重启依赖于系统时间的服务
systemctl restart rsyslog
systemctl restart crond
# 这样我们的ntp server自动连接到外网,进行同步 (时间同步完成在IP前面会有一个*号)
ntpq -pn
# NTP Agent (ntp agent同步ntp server时间)
# ntp agent需要修改ntp server的地址
vim /etc/ntp.conf
server  192.168.44.137  iburst# 注释默认的server,添加一条我们ntp server的地址
systemctl restart ntpd
systemctl enable ntpd
#等待几分钟出现*号代表同步完成
ntpq -pn
crontab -e
*/5 * * * *  /usr/sbin/ntpdate 192.168.44.137
# ntp时间服务器设置完成后在所有节点修改时区以及写入硬件
timedatectl set-timezone Asia/Shanghai
# 将当前的 UTC 时间写入硬件时钟
timedatectl set-local-rtc 0
# 重启依赖于系统时间的服务
systemctl restart rsyslog
systemctl restart crond
date# 添加host
vim /etc/hosts
192.168.44.140  ceph-04
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat
iptables -P FORWARD ACCEPT
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
#ceph yum源配置
#配置centos、epeo、ceph源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/ceph.repo http://down.i4t.com/ceph/ceph.repo
yum clean all
yum makecache
#安装ceph
yum install -y ceph vim wget
# 进入mon节点,分发配置文件,添加osd节点
cd /root/ceph-deploy/
ceph-deploy --overwrite-conf config push ceph-04
ceph-deploy osd create --data /dev/sdb ceph-04
# 这时候可以看到节点已经添加进来了,并且ceph状态已经是OK
ceph osd tree
ceph -s

1.3 纵向扩容

  1. 纵向扩容即添加一块新硬盘即可 (我这里只添加ceph-01服务器一块10G盘)
# 新增的硬盘有数据和分区需要初始化,可以通过下面的命令进行处理
fdisk -l /dev/sdc            # 查看目前的硬盘空间
# 需要进入到我们的ceph.conf目录,否则执行命令会报错
cd ceph-deploy
# 执行初始化命令,ceph-01为需要初始化的节点,/dev/sdc初始化硬盘 zap可以清理分区
# 实际下面的命令只是执行了一个dd命令,将我们服务器的数据表内容清除
ceph-deploy disk zap ceph-01 /dev/sdc    # 执行扩容ceph-01为扩容节点名称,--data为扩容节点硬盘
ceph-deploy osd create ceph-01 --data /dev/sdc
# 扩容完成我们可以看到ceph的状态,此时我们的osd已经发生变化
ceph -s
# 通过ceph osd tree可以看到我们三台节点,一共有4个osd,其中ceph-01节点有2台osd节点
ceph osd tree

1.4 数据重分步rebalancing

  1. 数据重分布原理。当Ceph OSD添加到Ceph存储集群时,集群映射会使用新的 OSD 进行更新。回到计算 PG ID中,这会更改集群映射。因此,它改变了对象的放置,因为它改变了计算的输入。
  2. 下图描述了重新平衡过程(尽管相当粗略,因为它对大型集群的影响要小得多),其中一些但不是所有 PG 从现有 OSD(OSD 1 和 OSD 2)迁移到新 OSD(OSD 3) )。即使在再平衡时,许多归置组保持原来的配置,每个OSD都获得了一些额外的容量,因此在重新平衡完成后新 OSD 上没有负载峰值。
  3. PG中存储的是subject,因为subject计算比较复杂,所以ceph会直接迁移pg保证集群平衡
# 查看信息,每个OSD最多只有一个线程再做填充 "osd_max_backfills": "1",
ceph --admin-daemon /var/run/ceph/ceph-mon.ceph-01.asok config show | grep max_b"bluestore_compression_max_blob_size": "0","bluestore_compression_max_blob_size_hdd": "524288","bluestore_compression_max_blob_size_ssd": "65536","bluestore_max_blob_size": "0","bluestore_max_blob_size_hdd": "524288","bluestore_max_blob_size_ssd": "65536","bluestore_rocksdb_options": "compression=kNoCompression,max_write_buffer_number=4,min_write_buffer_number_to_merge=1,recycle_log_file_num=4,write_buffer_size=268435456,writable_file_max_buffer_size=0,compaction_readahead_size=2097152,max_background_compactions=2","client_readahead_max_bytes": "0","filestore_queue_max_bytes": "104857600","filestore_rocksdb_options": "max_background_jobs=10,compaction_readahead_size=2097152,compression=kNoCompression","kstore_max_bytes": "67108864","ms_max_backoff": "15.000000","osd_bench_max_block_size": "67108864","osd_map_message_max_bytes": "10485760","osd_max_backfills": "1","osd_tier_promote_max_bytes_sec": "5242880","rbd_readahead_max_bytes": "524288","rgw_sync_log_trim_max_buckets": "16","rgw_user_max_buckets": "1000",# 文件复制到CEPHFS文件存储中,通过ceph健康检查,就可以看到下面的PG同步的状态
dd if=/dev/zero of=abcdocker.img bs=1M count=2048    #DD一个2G的文件
# ceph osd重分布不会马上进行数据同步,而是大概有10分钟的等待时间。在异常时可以看到有多少个object受到影响,并不会马上同步
ceph -s
# 当PG数据同步完成后,ceph集群health状态就变更为OK,当ceph osd执行重分配时,会影响ceph集群正常写入的操作。所以当更新升级osd节点时建议一台一台进行更新,或者临时关闭rebalance
ceph -s
  1. 一般情况下,生产环境需要区分网络。防止扩容重分布时, 一个网络流量打满。导致业务卡顿。, 如果我们生产环境真的就一个网络,而且reblance确实已经影响业务了,我们可以把这个过程暂停掉。
  2. ceph osd 重分布以及写入数据是可以指定2块网卡,生产环境建议ceph配置双网段。cluster_network为osd数据扩容同步重分配网卡,public_network为ceph客户端连接的网络。设置双网段可以减少重分布造成的影响
  3. 如果我们已经在数据重分配了,已经影响到线上ceph正常读写了,可以通过下面的方式临时暂停rebalance
# 一般情况下,生产环境需要区分网络。防止扩容重分布时, 一个网络流量打满。导致业务卡顿。
cat /etc/ceph/ceph.conf
public_network
cluster_network# 临时暂停rebalance
ceph osd set norebalance
ceph osd set nobackfill# 当我们设置了norebalance nobackfill ,ceph会将重分布给暂停掉。ceph业务就可以访问正常
ceph -s# 解除rebalance命令如下
ceph osd unset nobackfill
ceph osd unset norebalance
ceph -s

1.5 OSD磁盘缩容

  1. 当某个时间段我们OSD服务器受到外部因素影响,硬盘更换,或者是节点DOWN机需要手动剔除OSD节点。
#  目前ceph osd状态
ceph osd tree
# 目前我们ceph节点一共有4台,其中ceph-01有2个osd节点。 假设我们ceph-03节点出现故障,软件或者硬件故障,需要将ceph-03从ceph集群中剔除
# ceph osd perf可以看到ceph中osd的延迟,如果生产中遇到哪块盘延迟较大,可以进行手动剔除
ceph osd perf
# 磁盘如果坏了会在dmesg中看到坏掉的信息
dmesg# 停掉ceph-03的进程 模拟磁盘损坏
systemctl stop ceph-osd@3
# 第一步: 执行osd out,可以将权重变小
ceph osd out osd.3
ID CLASS WEIGHT  TYPE NAME          STATUS REWEIGHT PRI-AFF
-1       0.03918 root default
-3       0.01959     host hadoop1010   hdd 0.00980         osd.0          up  1.00000 1.000003   hdd 0.00980         osd.3        down        0 1.00000
-5       0.00980     host hadoop1021   hdd 0.00980         osd.1          up  1.00000 1.00000
-7       0.00980     host hadoop1032   hdd 0.00980         osd.2          up  1.00000 1.00000
# 可以看到数据重分布了 可以等他分布完成后 物理换盘
ceph -s cluster:id:     82612119-5dbe-4d6b-b481-1ce8827b9ea1health: HEALTH_OKservices:mon: 3 daemons, quorum hadoop101,hadoop102,hadoop103 (age 90m)mgr: hadoop102(active, since 92m), standbys: hadoop103, hadoop101mds: cephfs-abcdocker:1 {0=hadoop102=up:active} 2 up:standbyosd: 4 osds: 3 up (since 4m), 3 in (since 42s)rgw: 1 daemon active (hadoop101)task status:data:pools:   9 pools, 384 pgsobjects: 287 objects, 54 MiBusage:   3.2 GiB used, 27 GiB / 30 GiB availpgs:     384 active+cleanio:client:   31 KiB/s rd, 0 B/s wr, 31 op/s rd, 20 op/s wrrecovery: 0 B/s, 0 objects/s# 第二步: 删除CRUSHMAP信息,默认情况下ceph osd out不会删除crush中的信息
ceph osd crush dump | less
ceph osd crush rm osd.3
ceph osd crush dump | less# 第三步: 删除这个节点
ceph osd rm osd.3
ceph osd tree# 第四步: 删除auth中的osd key
# 此时我们通过ceph -s参数还可以看到有集群状态,是因为auth中osd的key没有删除
ceph -s|grep osd
# 通过下面的命令删除auth中的key
# 查看auth list
ceph auth list|grep osd
ceph auth rm osd.3
# 状态已恢复
ceph -s
  1. 故障发生后,如果一定时间后重新上线故障 OSD,那么 PG 会进行以下流程:

    • 故障OSD上线,通知Monitor并注册,该OSD在上线前会读取存在持久化的设备的PGLog
    • Monitor 得知该OSD的旧id,因此会继续使用以前的PG分配,之前该OSD下线造成的Degraded PG会被通知该OSD已经中心加入
    • 这时候分为两种情况,以下两种情况PG会标记自己为Peering状态并暂时停止处理请求
      • 第一种情况:故障OSD是拥有Primary PG,它作为这部分数据权责主题,需要发送查询PG元数据请求给所有属于该PG的Replicate角色节点。该PG的Replicate角色节点实际上在故障OSD下线时期成为了Primary角色并维护了权威的PGLog,该PG在得到OSD的Primary PG的查询请求后会发送回应。Primary PG通过对比Replicate PG发送的元数据和PG版本信息后发现处于落后状态,因此会合并到PGLog并建立权威PGLog,同时会建立missing列表来标记过时数据
      • 第二种情况:故障OSD是拥有Replicate PG,这时上线后故障OSD的Replicate PG会得到Primary PG的查询请求,发送自己这份过时的元数据和PGLog。Primary PG对比数据后发现该PG落后时,通过PGLog建立missing列表。
    • PG开始接受IO请求,但是PG所属的故障节点仍存在过时数据,故障节点的Primary PG会发起Pull请求从Replicate节点获得最新数据,Replicate PG会得到其它OSD节点的Primary PG的Push请求来恢复数据
    • 恢复完成后标记自己Clean
  2. 第三步是PG唯一不处理请求的阶段,它通常会在1s内完成来减少不可用时间。但是这里仍然有其他问题,比如恢复期间故障OSD会维护missing列表,如果IO正好是处于missing列表的数据,那么PG会进行恢复数据的插队操作,主动将该IO涉及的数据从Replicate PG拉过来,提前恢复该部分数据。这个情况延迟大概几十毫秒

1.6 一致性检查

  1. ceph有三个副本,那怎么保证他们之间的数据是一致的?ceph会定期做一定的检查,检查的方式有两种。

    • 轻量一致性检查(每天做): 元数据的内容。不一样的话会从主副本重新拉取一份。
    • 深度一致性检查(每周做):对比数据的内容。(非常耗费资源)
  2. 可以手动做检查
# 查看命令
ceph -h | grep scrub
pg deep-scrub <pgid>   # 深度的
pg scrub <pgid>   # 轻量的# 测试一下
# 先随便拿出一个pgid
ceph pg dump
ceph pg scrub 1.2d # 对1.2d这pg scrub
ceph -s # 集群数据不多,命令执行太快基本上看不到ceph pg deep-scrub 1.2d # 深度检查
ceph -s # 比较中的任务 取数据进行hash 比较耗费内存for i in `ceph pg dump | grep "active+clean" | awk '{print $1}'`; do ceph pg deep-scrbu ${i}; done # 所有pg进行深度检查
ceph -s

第二节 Ceph集群运维

2.1 服务进程管理

  1. 第一种,一次性重启所有服务。如果我们机器上osd、mon、rgw等服务都安装在一个节点,可以通过下面的命令直接管理所有服务
# 将本节点所有的ceph相关的组件进行启动
systemctl start ceph.target
# 这个命令适用于我们当前ceph节点有多个ceph组件
  1. 第二种,单个服务重启。上面我们说的是一下重启所有的服务,很多情况下我们只想重启osd或者mon,就可以通过下面的命令进行
systemctl restart ceph-osd.target
systemctl restart ceph-mon.target
systemctl restart ceph-mds.target
  1. 第三种,我们osd或者mon可能在一台服务器上有多个服务。如果我们使用systemctl restart ceph-osd.target重启osd,可能ceph这台服务器上多个osd都会被重启,可能我们只想重启其中一个节点的osd
# 查看那几个单个服务的节点重启
ls  /usr/lib/systemd/system/|grep ceph
# 重启osd前,查看osd对应的id
ceph osd tree
# 上面可以看到ceph节点有2个osd,我们如果想查看osd 3的状态,就可以通过下面的命令
systemctl restart ceph-osd@3

2.2 Ceph日志分析

  1. 在维护过程中,服务出现问题第一时间看服务状态以及对应服务的日志。
  2. ceph服务默认日志路径在/var/log/ceph
# 如果我们需要查看ceph-01节点的osd或者mon可以通过下面的命令查看
# ceph日志格式
ceph-(osd|client|mds|mgr|osd).(节点ip or 节点名称).logtail  /var/log/ceph/ceph-mon.ceph-01.log
# 因为ceph-01上有2个osd节点,所以会有0和3,0和3代表osd 在集群中的id,通过ceph osd tree可以看到
tail  /var/log/ceph/ceph-osd.0.log
tail  /var/log/ceph/ceph-osd.3.log

2.3 Ceph集群信息查看

2.3.1 集群健康状态查看

  1. 登陆ceph服务器的第一件事我们就是要查看一下ceph集群的状态,一般没事不登录服务器。登陆服务器肯定是ceph集群出现故障,或者ceph服务器进行告警
  2. 常用的ceph查看集群的状态有ceph -sceph status,实际上这两个命令结果是相同的
  3. 动态查看ceph的一个集群状态,可以通过ceph -w命令来看一下
# ceph查看集群的状态
ceph -s
ceph status
# 监控ceph的状态 如果集群是HEALTH_OK的状态,没有发生变化,那么ceph -w是不会在输出日志的。 只有节点异常后,ceph -w是可以继续输出状态
ceph -w

2.3.2 osd 资源查看

# osd 状态查看
ceph osd stat# 需要看osd详细的状态可以通过ceph osd dump出来
# dump命令可以dump osd中很详细的信息
ceph osd dump# 查看ceph osd中所有节点的状态
# 包括节点信息,osd ID以及osd的状态和权重等
ceph osd tree# 除了在ceph -s中查看ceph集群磁盘的总使用率,还可以通过ceph df查看剩余空间以及每个pool的使用情况
# CKASS 硬盘类型ssd或hdd
# SIZE 集群管理的存储容量。
# AVAIL 集群中可用的可用空间量。
# USED 用户数据消耗的原始存储量(不包括BlueStore的数据库)
# RAW USED 用户数据、内部开销或保留容量消耗的原始存储量。
# %RAW USED 使用的原始存储的百分比。将此数字与 和 结合使用,以确保您没有达到集群的容量。# 对于Pool的信息注释
# ID 池中节点的编号。
# STORED 用户/Ceph 存储在池中的实际数据量。这类似于早期版本的 Ceph 中的 USED 列,但计算(对于 BlueStore!)更精确(间隙得到适当处理)。
# (DATA) 用于 RBD(RADOS 块设备)、CephFS 文件数据和 RGW(RADOS 网关)对象数据。
# (OMAP)键值对。主要由 CephFS 和 RGW(RADOS 网关)用于元数据存储。
# OBJECTS每个池中存储的对象的名义数量。“名义”在上文“池”下的段落中定义。
# USED为所有 OSD 上的池分配的空间。这包括复制、分配粒度和纠删码开销。压缩节省和对象内容差距也被考虑在内。BlueStore 的数据库不包括在这个数量中。
# (DATA) RBD(RADOS 块设备)、CephFS 文件数据和 RGW(RADOS 网关)对象数据的对象使用情况。
# (OMAP) 对象键值对。主要由 CephFS 和 RGW(RADOS 网关)用于元数据存储。
# %USED 每个池使用的存储空间的名义百分比。
# MAX AVAIL估计可以写入此池的名义数据量。
# QUOTA OBJECTS 配额对象的数量。
# QUOTA BYTES 配额对象中的字节数。
# DIRTY 缓存池中已写入缓存池但尚未刷新到基本池的对象数。此字段仅在使用缓存分层时可用。
# USED COMPR 为压缩数据分配的空间量(即,这包括压缩数据加上所有分配、复制和纠删码开销)。
# UNDER COMPR 通过压缩传递的数据量(所有副本的总和)并且足以以压缩形式存储。
ceph df# 要看osd所有节点的使用率可以使用osd df,包含使用率节点,更为详细的命令
ceph osd df# ceph osd status也是可以看到集群空间使用率
ceph osd status

2.3.3 mon资源查看

# 通过mon stat 可以详细的查看集群mon的节点地址,以及对应的id
ceph mon stat
# 通过mon dump可以看到更详细的节点信息,包含节点添加时间等
ceph mon dump
# quorum_status可以看到集群节点选举情况,节点信息等
ceph  quorum_status

2.3.4 mds 资源查看

# 跟osd和mon相同,mds同样支持上述的几个命令
ceph mds stat# ceph fs dump同样可以获取到mds内部状态
ceph fs dump

2.3.5 ADMIN SOCKET

  1. admin socket可以看到ceph节点中某个服务的守护进程配置信息, 这个非常有用
# 查看osd的配置文件
ceph daemon /var/run/ceph/ceph-osd.0.asok config show
# mon 配置文件
ceph daemon /var/run/ceph/ceph-mon.ceph-01.asok config show
# 通过下面的命令可以看到我们可以执行的命令
ceph daemon /var/run/ceph/ceph-osd.0.asok help
# 例如查看mon选举情况
ceph daemon /var/run/ceph/ceph-mon.ceph-01.asok help|grep status
ceph daemon /var/run/ceph/ceph-mon.ceph-01.asok quorum_status
  1. ceph集群的配置参数除了在/etc/ceph/ceph.conf中修改,还可以通过SOCKET直接设置
#例如修改时钟参数
ceph daemon /var/run/ceph/ceph-mon.ceph-01.asok help|grep config
#查看config可以直接的命令"config diff": "dump diff of current config and default config","config diff get": "dump diff get <field>: dump diff of current and default config setting <field>","config get": "config get <field>: get the config value","config help": "get config setting schema and descriptions","config set": "config set <field> <val> [<val> ...]: set a config variable","config show": "dump current config settings","config unset": "config unset <field>: unset a config variable",
# 通过config set替换对应的值
ceph daemon /var/run/ceph/ceph-mon.ceph-01.asok config set 变量名 值

2.4 Ceph Pool 资源池管理

  1. pool是我们的逻辑资源池
# 创建pool
# 格式如下
ceph osd pool create {pool-name} [{pg-num} [{pgp-num}]] [replicated] \[crush-rule-name] [expected-num-objects]
ceph osd pool create {pool-name} [{pg-num} [{pgp-num}]]   erasure \[erasure-code-profile] [crush-rule-name] [expected_num_objects] [--autoscale-mode=<on,off,warn>]
# 创建一个名称为test_i4t
# pg大小为16
# pgp大小为16
ceph osd pool create test_i4t 16 16
ceph osd lspools# 查看副本数量
ceph osd pool get test_i4t size
# 将size改成pg_num和pgp_num可以看到ceph中pg和pgp的数量,我们创建的时候定义的
ceph osd pool get test_i4t pg_num
ceph osd pool get test_i4t pgp_num# 刚刚我们获取到pool的一些参数变量,我们可以来进行修改这些
# 比如讲副本数由3个修改为5个
ceph osd pool set test_i4t size 5
ceph osd pool get test_i4t size# 将Pool关联到Application上
# pool创建完成后,需要初始化。将相关的pool关联到application上。类似一个别名
# CephFS 使用应用程序名称cephfs,RBD 使用应用程序名称rbd,RGW 使用应用程序名称rgw。
ceph osd pool application get test_i4t
ceph osd pool application enable test_i4t rdb    #支持的类型为rdb、rgw、以及cephfs
ceph osd pool application get test_i4t# 还可以给pool限制配额,指pool可以允许使用多少个ojbect或者是允许使用多少空间
ceph osd pool set-quota test_i4t max_objects 100
ceph osd pool get-quota test_i4t
quotas for pool 'test_i4t':max objects: 100 objectsmax bytes  : N/A
# 通过get-quota和set-quota变量来查看我们修改的变量
# pool存储空间占用率查看
# 除了使用ceph df查看,还可以使用rados df查看ceph pool空间使用率的情况
ceph df
rados df
# pool使用命令可以参考https://docs.ceph.com/en/latest/rados/operations/pools/
# 删除pool
ceph osd lspools
ceph osd pool rm test_i4t test_i4t
ceph osd pool rm test_i4t test_i4t  --yes-i-really-really-mean-it# 如果无法删除pool可以设置一下 这三个节点参数都要调整一下 也是临时的调整
ceph daemon /var/run/ceph/ceph-mon.ceph-01.asok config show|grep mon_allow_pool_delete
ceph daemon /var/run/ceph/ceph-mon.ceph-01.asok config set mon_allow_pool_delete true
# 或者在ceph.conf中添加下面的配置
mon_allow_pool_delete = true
# Ceph PG数据调整
# 下面的命令可以动态调整pg和pgp的大小
ceph osd pool set {pool-name} pg_num {pg_num}
ceph osd pool set {pool-name} pgp_num {pgp_num}# 同步配置文件 同步配置文件可以使用下面的命令
cd ceph-deploy
ceph-deploy  --overwrite-conf config push ceph-01 ceph-02 ceph-03

2.5 Ceph PG 数据分布

  1. 最后数据分布提供PG经过Crush Map的算法最终落在不同的OSD上的,所以pg的数量越多它会落在更多的osd上。

    • pg越多代表数据分散到osd上就越松散,相反pg越少就越集中丢数据的风险就低
    • pg越少,可以提高计算效率
  2. pg设置的计算方法,官网有公式和计算器。

第二课 ceph基础学习-OSD扩容换盘和集群运维相关推荐

  1. ceph集群运维记录

    修复ceph的mon数据库 问题发现 [root@ceph-deploy ~]#ceph health detail HEALTH_ERR 1/429 objects unfound (0.233%) ...

  2. ceph v15.2.13版本[octopus]分布式集群部署

    一.Ceph组件 OSDs:存储设备 Monitors:集群监控组件 RBD:对象存储网关 MDSs:存放文件系统的元数据.(但对象存储和块存储设备是不需要使用该服务的) Ceph版本镜像:ceph/ ...

  3. kubernetes(K8S)学习笔记P6:K8s集群|java项目部署

    kubernetes(K8S)学习笔记P6:K8s集群|java项目部署 8.集群资源监控 8.1概述 8.2搭建集群监控平台系统 8.2.1部署prometheus 8.2.3部署Grafana 8 ...

  4. Redis运维和开发学习笔记(3)redis搭建集群

    Redis运维和开发学习笔记(3)redis搭建集群 文章目录 Redis运维和开发学习笔记(3)redis搭建集群 Redis集群搭建 Redis集群搭建 cp /etc/redis.d/redis ...

  5. 实战:RedisCluster搭建和扩容(伪集群:4主4从)

    RedisCluster搭建和扩容(伪集群:4主4从) 如图: 功能: (1)搭建Redis集群,要求三主三从 (2)能够添加一主一从(Master4和Slaver4) (3)能够通过JedisClu ...

  6. Jquery第二课 Javascript基础

    基础知识 网页由三个部分组成:HTML.CSS和JavaScript.它们分别完成不同的功能,其中HTML描述页面内容.CSS负责内容的展示.JavaScript添加交互功能和动态效果.三者一起组成一 ...

  7. Ceph v12.2 Luminous基于ubuntu16.04集群部署

    第一次接触ceph集群,感谢官方的指导文档和许多网友提供的教程,糊糊涂涂算是把集群部署起来了.由于Luminous12.2刚发布不久,部署起来跟旧版本还是有些许差别,所以以此做下笔记也给需要的人做下参 ...

  8. Centos7下部署ceph 12.2.1 (luminous)集群及RBD使用

    原创,本文地址http://www.cnblogs.com/pcxie/p/7799372.html 前言 本文搭建了一个由三节点(master.slave1.slave2)构成的ceph分布式集群, ...

  9. Redis学习(二)之 Redis Cluster集群

    redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并 ...

最新文章

  1. 微软洪小文:制造业是最先享受AI成果的领域
  2. C七:指向函数的指针 ------ 函数指针(function pointer)
  3. 为什么中国的程序员技术偏低
  4. Spark Streaming的Exactly-One的事务处理
  5. linux tcp 创建,Linux下tcp服务器创建的步骤
  6. scrapy爬取多页面
  7. The Future of Compass ElasticSearch
  8. 女人不需要哲学,因为哲学不能给她们带来面包
  9. python简明教程中文pdf-《python简明教程中文》.pdf
  10. Endnotex7无法保存修改后的格式
  11. ADAMS搭建控制系统教程:偏心连杆机构的转速控制
  12. java jshell_Java9特性预览——Jshell
  13. Android 实现一键加QQ群,一键加QQ好友
  14. 本来共享的计算机突然无法访问,win7无法启用共享访问怎么办_win7无法启用共享访问如何处理-win7之家...
  15. 蒙特卡洛(Monte Carlo)方法的理解
  16. Ceres Solver实现简单的光束法平差
  17. fork函数产生进程
  18. vue3中使用elementui组件
  19. 编程中的逻辑实现,三种逻辑结构(顺序、循环、分支)、跳转、函数以及错误处理
  20. 二叉树算法解题思路总结(一)

热门文章

  1. 1.云计算-何为5G技术 遨游于云计算的海洋中,不可自拔
  2. 网站建设:外贸网站的制作步骤
  3. 第十届山东省ACM省赛总结
  4. uniapp实现购物车功能
  5. IDEA设置护眼背景色
  6. cai.php是什么东西,cai是指计算机的什么
  7. iOS之sizeToFit 和 sizeThatFits的使用区别
  8. 虚函数 纯虚函数 虚基类说明
  9. 中年男人的焦虑与危机
  10. SRS文档 软件需求说明书