分布式存储运维操作

集群服务管理常用命令

统一节点上的ceph.conf文件

- 将admin节点上修改的ceph.conf,推送给所有其他节点(--overwrite-conf强制覆盖)
ceph-deploy --overwrite-conf config push mon01 mon02 mon03 osd01 osd02 osd03

ceph集群服务管理

注意 : 下述操作均需要在具体运行服务的那个节点上运行,而不是admin节点!!!

  • 在生产环境中,我们需要重启服务尽量会使用方式二进行重启。方式一重启所有的服务可能会导致所有Ceph服务卡死的现象。
方式一:在各具体节点执行命令,重启节点上的所有ceph守护进程
systemctl restart ceph.target方式二:在各具体节点执行下行命令,按类型重启相应的守护进程
1. 重启mgr守护进程
systemctl restart ceph-mgr.target2. 重启msd守护进程
systemctl restart ceph-mds.target3. 重启rgw守护进程
systemctl restart ceph-radosgw.target4. 重启mon守护进程
systemctl restart ceph-mon.target5. 重启osd守护进程(只能在osd节点的服务器上进行重启,切换到osd01,osd02,osd03服务器上进行重启)
systemctl restart ceph-osd@0
systemctl restart ceph-osd@1
systemctl restart ceph-osd@2
...6. 重启所有的osd daemon
systemctl restart ceph-osd.target

服务平滑重启

  • 有时候需要更改服务的配置,但是不想重启服务,或者是临时修改,此时我们就可以通过admin sockets直接与守护进程交互。
- 在管理节点运行
tell子命令
ceph tell mon.mon01 injectargs --mon_allow_pool_delete=true
# # 将mon类型mon01节点的mon_allow_pool_delete选项改成True
ceph tell mon.* injectargs --mon_allow_pool_delete=true
# 将mon类型所有节点(*代表所有节点)的mon_allow_pool_delete选项改成True
mon_allow_pool_delete此选项的值默认为false,表示不允许删除pool,只有此选项打开后方可删除,记得改回去!!- 需要在守护进程所在的主机上执行
daemon子命令
ssh root@mon01
ceph daemon mon.mon01 config set mon_allow_pool_delete false
# 将mon类型mon0节点的mon_allow_pool_delete选项改成false- 需要在守护进程所在的主机上执行
socket文件
ssh root@mon01
1. 查看帮助
ceph --admin-daemon /var/run/ceph/ceph-mds.mon01.asok help2. 查看配置项
ceph --admin-daemon /var/run/ceph/ceph-mds.mon01.asok config get mon_allow_pool_delete3. 设置
ceph --admin-daemon /var/run/ceph/ceph-mds.mon01.asok config set mon_allow_pool_delete false4. monitor集群有超过半数的mon节点挂掉之后(paxos算法规定的),此时通过网络访问的所有操作都会被阻塞,但是montior本地的socket还是可以通信的。
ssh root@mon03
ceph --admin-daemon /var/run/ceph/ceph-mon.mon03.asok quorum_status
# 查看ceph集群的状态(详细版本)

维护集群常用命令

ceph集群健康状态

1. 查看集群健康状态
ceph -s
ceph status
ceph health
ceph health detail2. 实时观察集群健康状态
ceph -w3. 检查ceph集群的使用情况
ceph df
GLOBAL段SIZE:集群的总容量AVAIL:集群的空间空间总量      RAW USED:已用存储空间总量     %RAW USED:已用存储空间比率POOLS段NAME:存储池名字                   ID:存储池唯一标识符     USED:大概数据量,单位为B、KB、MB或GB        %USED:各个存储池的大概使用率     MAX AVAIL:各个存储池的最大利用率    OBJECTS:各存储池内的大概对象数

mds相关

1. 查看mds状态
ceph mds stat
ceph mds dump- 需要在守护进程所在的主机上执行
2. 删除mds节点
ssh root@mon01 systemctl stop ceph-mds.target
ceph mds rm 0
# 重启mds后,则恢复正常3. 关闭mds集群
ceph mds cluster_down4. 开启mds集群
ceph mds cluster_up5. 设置cephfs文件系统存储方式单个文件的尺寸
ceph mds set max_file_size 10240000000006. 清除mds文件系统(了解即可)
6.1 强制mds状态为featrue
ceph mds fail 06.2 删除msd文件系统
ceph fs rm cephfs --yes-i-really-mean-it6.3 删除数据池
ceph osd pool delete cephfs_data cephfs_data --yes-i-really-really-mean-it6.4 删除元数据池
ceph osd pool delete cephfs_metadata cephfs_metadata --yes-i-really-really mean-it 6.5 然后再删除mds,key,残留文件等6.6 删除mds文件系统
ceph mds rm 0

mon相关

1. 查看mon状态
ceph mon stat2. 查看mon映射信息
ceph mon dump3. 检查Ceph monitor选举状态
ceph quorum_status --format json-pretty4. 查看mon信息包括ip地址
获得一个正在运行的mon map,并保存在1.txt文件中
ceph mon getmap -o 1.txt
monmaptool --print 1.txt

auth(权限)相关

认证与授权

  • Ceph使用cephx协议对客户端进行身份验证,集群中每一个Monitor节点都可以对客户端进行身份验证,所以不存在单点故障。cephx仅用于Ceph集群中的个组件,而不能用于Ceph组件。它并不解决数据传输加密问题,但也可以提高访问控制安全相问题。

认证授权流程如下

  1. 客户端向Monitor请求创建用户
  2. Monitor返回用户共享密钥给客户端,并将此用户信息共享给MDS和OSD
  3. 客户端使用此共享密钥向Monitor进行认证
  4. Monitor返回一个session key给客户端,并且session key与对应客户端密钥进行加密。此session key过一段时间后就会失效,需要重新请求
  5. 客户端对此session key进行解密,如果密钥不匹配无法解密,这时候认证失败
  6. 如果认证成功,客户段向服务器申请访问的令牌
  7. 服务端返回令牌给客户端
  8. 这时候客户端就可以拿着令牌访问到MDS和OSD,并进行数据的交互。因为MDS和Monitor之间有共享此用户的信息,所以当客户端拿到令牌后就可以直接访问

相关概念

  1. 用户 : Ceph支持多种类型的用户,个人与某应用都属于client类型。还有mds、osd、mgr一些专用类型。
  2. 用户标识 : 用户标识由"TYPE.ID"组成,通常ID也代表用户名,如client.admin、osd.1等。
  3. 使能caps : 用户所拥有的权限,不同的对象所能使用的权限也不一样。

命令

1. 查看ceph集群中的认证用户及相关的key
ceph auth ls    # 标准写法:ceph auth list2. 查看admin用户的详细信息
ceph auth get client.admin3. 只查看admin用户的key信息
ceph auth print-key client.admin4. 创建用户
ceph auth add client.test mon "allow r" osd "allow rw"
# 用户标识为client.test,指定改用户对mon有r权限,对osd有rw权限,osd没有指定存储池,所以对所有的存储池都有rw权限。
# 在创建用户的时候还会自动创建用户的密钥。5. 修改用户权限
ceph auth caps client.test mon "allow r" osd "allow rw pool=kvm"6. 删除用户,用户名为client.test(注意,不要删除ceph集群默认创建的用户)
ceph auth del client.test7. 密钥环文件
keyring文件是一个包含密码,key,证书等内容的一个集合。一个keyring文件可以包含多个用户的信息,也就是可以将多个用户信息存储到一个keyring文件。
keyring自动加载顺序
当访问cephalexin集群时候默认会从以下四个地方加载keyring文件
7.1 /etc/ceph/cluster-name.user-name.keyring:通过这种类型的文件来保存单个用户信息,文件名格式固定:集群名.用户标识.keyring。如ceph.client.admin.keyring。
这个代表ceph这个集群,这里的ceph是集群名,而client.admin为admin用户的标识。
7.2 /etc/ceph/cluster.keyring:通用来保护多个用户keyring信息
7.3 /etc/ceph/keyring:也用来保存多个用户的kerying信息
7.4 /etc/ceph/keyring.bin:二进制的keyring文件,也用来保存多个用户的kerying信息8. 创建一个名为client.admin的用户,设置好用户对mds、osd、mon的权限,然后把密钥导出到文件中
ceph auth get-or-create client.admin mds 'allow *' osd 'allow *' mon 'allow *' > /etc/ceph/ceph.client.admin.keyring1
或者
ceph auth get-or-create client.admin mds 'allow *' osd 'allow *' mon 'allow *' -o /etc/ceph/ceph.client.admin.keyring19. 创建一个名为osd.0的用户,设置好用户对mds、osd、mon的权限,然后把密钥导出到文件中
ceph auth get-or-create osd.0 mon 'allow profile osd' osd 'allow *' -o /var/lib/ceph/osd/ceph-0/keyring10. 创建一个名为mds.nc3的用户,设置好用户对mds、osd、mon的权限,然后把密钥导出到文件中
ceph auth get-or-create mds.nc3 mon 'allow rwx' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mds/ceph-cs1/keyring

osd相关

1. 查看osd状态
ceph osd stat2. 查看osd树
ceph osd tree
ceph osd ls-tree rack0      #查看osd tree中的rack0下的osd daemon编号3. 查看osd映射信息
ceph osd dump4. 查看数据延迟
ceph osd perf5. 查看CRUSH map
ceph osd crush dump6. 查看与设置最大osd daemon的个数
# 查看当前osd damoen的个数
ceph osd getmaxosd# 设置最大的osd daemon的个数(当扩大osd daemon的时候必须扩大这个值)
ceph osd setmaxosd 20487. 设置osd权重
ceph osd reweight 3 0.5         # 将osd.3的权重改为0.5 8. 暂停osd(暂停后整个ceph集群不再接收数据;暂停osd,可以防止数据迁移)
ceph osd pause          # 暂停的是所有的osd,维护集群的时候可以使用9. 再次开启osd(开启后再次接收数据)
ceph osd unpause        10.设置标志flags,不允许关闭osd、解决网络不稳定,osd状态不断切换的问题(设置标志,可以防止数据迁移)
ceph osd set nodown11.取消设置标志
ceph osd unset nodow

pool相关

1. 创建pool池
语法:ceph osd pool create <pool name> <pg num> <pgp num> [type]
# pool name:存储池名称,必须唯一
# pg num:存储池中的pg数量
# pgp num:用于规制的pg数量,默认与pg数量相等
# type:指定存储池的类型,有relicated和erasure,默认replicated。- 创建一个副本池
ceph osd pool create nana_test 32 322. 修改存储池的pg数
ceph osd pool set nana_test pg_num 60
ceph osd pool set nana_test pgp_num 60
# 注意:pgp是为了管理placement(安置)而存在的专门的pg。
# pg_num的数量必须和pgp_num保持一致,这样集群才能正常rebalancing(再平衡)3. 查看存储池
ceph osd lspools
ceph osd pool ls
ceph osd pool ls detail
ceph osd pool stats4. 重命名
ceph osd pool rename nana_test dada_test
# 将pool池的名字nana_test改成dada_test5. 在集群中删除一个pool,注意删除pool后,pool映射的image会直接被删除,生产环境操作要谨慎,存储池的名字需要重复两次。
ceph tell mon.* injectargs --mon_allow_pool_delete=true                需要先修改参数
ceph osd pool delete tom_test tom_test --yes-i-really-really-mean-it
#  删除完成后最好把--mon_allow_pool_delete改成false,降低误删的风险6. 为一个ceph pool设置配额、达到配额前集群会告警,达到上限后无法再写入数据。
当我们有很多存储池的时候,有些作为公共存储池,这时候就有必要为这些存储池做一些配额。
限制可以存放的文件数,或者空间大小,以免无限的增大影响到整个集群的正常运行。
6.1 查看pool配额的设置
ceph osd pool get-quota test_pool6.2 对对象个数进行配额
ceph osd pool get-quota test_pool max_objects 5006.3 对磁盘大小进行配额
ceph osd pool get-quota test_pool max_bytes 5007. 配置参数
7.1 查看pool池的配置参数
ceph osd pool get test_pool size
# 查看test_pool池的副本数
# 如果不跟参数名称,会输出所有参数,但是会有个报错7.2 修改pool的最大副本数和最小副本数
ceph osd pool set test_pool min_size 1
ceph osd pool set test_pool size 2
常用的可用配置参数有:
size:存储池中的对象副本数
min_size:提供服务所需要的最小副本数,如果定义size为3,min_size也为3,坏掉一个OSD,如果pool池中有副本在此块OSD上面,那么此pool池将不提供服务,如果min_size定义为2,那么还可以提供服务,如果提供为1,标识只要有一块副本都提供服务。
pg_num:定义PG的数量
pgp_num:定义归置时使用的PG的数量
crush_ruleset:设置crush算法规则
nodelete:控制是否可删除,默认可以
nopgchange:控制是否可以更改存储池的pg num和pgp num
nosizechange:控制是否可以更改存储池的大小
noscrub和nodeep-scrub:控制是否整理或深层整理存储时,可临时解决高I/O问题
scrub_min_interval:集群负载较低时整理存储池的最小时间间隔
scrub_max_interval:整理存储池的最大时间间隔8. 快照
创建存储池快照需要大量的存储空间,取决于存储池的大小。创建快照,以下两条命令都可以。
8.1 创建快照
方式一:
ceph osd pool mksnap test_pool test_back_pool
# created pool test_pool snap test_back_pool
方式二:
rados -p test_pool01 mksnap test01_back_pool
# created pool test_pool01 snap test01_back_pool8.2 列出快照
rados -p test_pool lssnap
# 1 test_back_pool  2021.05.23 15:05:29
# 1 snaps8.3 回滚至存储池快照
格式 : rados -p <pool name> rollback <obj-name> <snap name>         只能恢复某一个对象,不能让整个pool池恢复
rados -p test_pool rollback a.txt test_back_pool
注意:pool池的快照,相对来说是由局限性的,没有办法直接恢复快照里面的全部object对象文件。
如果pool池整体恢复,会导致整个ceph集群数据混乱,ceph集群的数据是分布式存放的。8.4 删除存储池快照
方式一:
ceph osd ool rmsnap test_pool test_back_pool
# removed pool test_pool snap test_back_pool
方式二:
rados -p test_pool01 rmsnap test01_back_pool
# removed pool test_pool01 snap test01_back_pool9. 压缩
如果使用bulestore存储引擎,默认提供数据压缩,以节约磁盘空间。
ceph osd pool set test_pool compression_algorithm snappy            # snappy 压缩默认使用的算法
# set pool 7 compression_algorithm to snappy

pg相关

1. 查看pg组映射信息
方式一:
ceph pg dump
方式二:
ceph pg ls2. 查看pg信息的脚本,第一个行为pool池的id号
ceph pg dump | awk '
BEGIN { IGNORECASE = 1 }/^PG_STAT/ { col=1; while($col!="UP") {col++}; col++ }/^[0-9a-f]+\.[0-9a-f]+/ { match($0,/^[0-9a-f]+/); pool=substr($0, RSTART,RLENGTH); poollist[pool]=0;up=$col; i=0; RSTART=0; RLENGTH=0; delete osds; while(match(up,/[0-9]+/)>0) {osds[++i]=substr(up,RSTART,RLENGTH); up = substr(up, RSTART+RLENGTH) }for(i in osds) {array[osds[i],pool]++; osdlist[osds[i]];}}END {printf("\n");printf("pool :\t"); for (i in poollist) printf("%s\t",i); printf("| SUM \n");for (i in poollist) printf("--------"); printf("----------------\n");for (i in osdlist) { printf("osd.%i\t", i); sum=0;for (j in poollist) { printf("%i\t", array[i,j]); sum+=array[i,j];sumpool[j]+=array[i,j] }; printf("| %i\n",sum) }for (i in poollist) printf("--------"); printf("----------------\n");printf("SUM :\t"); for (i in poollist) printf("%s\t",sumpool[i]);printf("|\n");}'3. 查看pg状态
ceph pg stat4. 查看一个pg的map
ceph pg map 8.2a                # 8.2a是pg的id5. 查询一个pg的详细信息
ceph pg 8.2a query              # 8.2a是pg的id                    6. 清理一个pg组
ceph pg scrub 8.2a              # 8.2a是pg的id7. 查看pg中stuck(卡住)的状态
ceph pg dump_stuck unclean
ceph pg dump_stuck inactive
ceph pg dump_stuck stale
unclean:归置组含有复制数未达到期望数量的对象,他们应该在恢复中
inactive:归置组不能处理读写,因为它们在等待一个有最新数据的osd复活且进入集群
stale:归置组处于未知状态,即存储它们的osd有段时间没向monitor监控节点报告了。8. 显示一个集群中所有的pg统计
ceph pg dump --format plain     # 格式有plain(默认)和jason9. 查看某个pg内分布的数据状态,具体状态可以使用选项过滤输出
ceph pg ls 1 clean          # 1为pg的编号10. 查询osd包含pg的信息,过滤输出pg的状态信息
ceph pg ls-by-osd osd.511. 查看pool池包含pg的信息,过滤输出pg的状态信息
ceph pg ls-by-pool test_pool12. 查询某个osd状态为primary pg,可以根据需要过滤状态
ceph pg ls-by-primary osd.3 clean13. 恢复一个丢失的pg
如果集群丢了一个或多个对象,而且必须放弃搜索这些数据,你就要把未找到的对象标记未丢失(lost)。
如果所有可能的位置都查询过了,而仍找不到这些对象,你也许放弃它们了。这可能是罕见的失败组合导致的,
集群在写入完成前,未能得知写入是否已经执行。
当前只支持revert选项,它使得回滚到对象的前一个版本(如果它是新对象)或完全忽略它。要把unfound对象标记为lost,执行命令:
ceph pg {pg-id} mark_unfound_lost revert|delete

rados命令相关

1. 使用rados进行性能测试
rados bench 600 write rand -t 100 -b 4K -p test_pool
选项解释:
测试时间:600
支持测试类型:write/read,加rand就是随机,不加就是顺序
并发数(-t 选项):100
pool的名字是:test_pool

osd中disk盘损坏与恢复

模拟disk数据盘坏掉

如果ceph集群有上千个osd daemon,每天坏2-3块盘太正常了,我们可以模拟down掉一个osd daemon数据盘。

# 如果osd dameon正常运行,down的osd很快会自行恢复正常,所以需要先关闭是守护进程
1. 关闭守护进程
ssh root@osd01 systemctl stop ceph-osd@0      2. down掉osd
ceph osd down 03. 查看osd集群中osd.0的状态
ceph osd tree
#   0   hdd 1.00000                     osd.0    down  1.00000 1.00000

将坏掉的disk数据盘踢出集群

集群中坏掉一块盘后,我们需要将其踢出集群,让集群恢复到active+clean状态

1. 将osd.0移出集群,集群会自动同步数据
ceph osd out osd.02. 将osd.0移除crushmap
ceph osd crush remove osd.03. 删除守护进程对应的账户信息
ceph auth rm osd.04. 删除osd.0
ceph osd rm osd.05. 查看osd集群中osd.0的状态
ceph osd tree
# 此时osd.0是被移除的状态,我们是看不到osd.0的状态信息的

把原来坏掉的osd daemon修复后重新加入集群

1. 远程连接到osd01节点
ssh root@osd012. 切换到工作目录下
cd /etc/ceph3. 创建osd,无需指定名称,默认会按序号自动生成
ceph osd create4. 创建账户,切记账号与文件夹对应!!!
ceph-authtool --create-keyring /etc/ceph/ceph.osd.0.keyring --gen-key -n osd.0 --cap mon 'allow profile osd' --cap mgr 'allow profile osd' --cap osd 'allow *'5. 导入新的账户密钥,切记账户与文件夹对应
ceph auth import -i /etc/ceph/ceph.osd.0.keyring
ceph auth get-or-create osd.0 -o /var/lib/ceph/osd/ceph-0/keyring6. 加入集群
ceph osd crush add osd.0 1.00000 host=osd01
# crush tree中加入osd.0 权重设置为1.000 主机为osd01
ceph osd in osd.0
# osd.0添加到ceph集群中7. 重启osd守护进程
systemctl restart ceph-osd@0- 如果重启失败,出现报错的情况
Job for ceph-osd@3.service failed because start of the service was attempted
too often. See "systemctl status ceph-osd@3.service" and "journalctl -xe" for
details.
To force a start use "systemctl reset-failed ceph-osd@3.service" followed by
"systemctl start ceph-osd@3.service" again.- 先运行
systemctl reset-failed ceph-osd@3.service systemctl start ceph-osd@3.service- 然后再重新开启
systemctl start ceph-osd@3

osd中硬盘的损坏与恢复

模拟ceph集群中硬盘的损坏

模拟osd01主机中,机械硬盘/dev/sdb硬盘损坏

1. 远程连接到osd01节点
ssh root@osd012. 关闭守护进程
systemctl stop ceph-osd@03. 查看当前挂载使用的osd节点
df -h
# tmpfs                    739M   28K  739M   1% /var/lib/ceph/osd/ceph-03. 卸载osd.0节点
umount /var/lib/ceph/osd/ceph-04. 查看ceph集群卷组的信息
vgs
#  ceph-1b334040-f508-4887-9f11-c7b0ad4f1025   1   1   0 wz--n- <20.00g    0 5. 查看ceph集群中正在使用的物理卷pvs
#  /dev/sdb   ceph-33594263-78cd-41e4-b844-9b33eeb03876 lvm2 a--  <20.00g    0 6. 删除osd.0节点卷组
vgremove ceph-33594263-78cd-41e4-b844-9b33eeb038767. 删除osd.0节点的pv
pvremove /dev/sdb8. 清空硬盘中的原数据
dd if=/dev/zero of=/dev/sdb bs=4M count=19. 查看osd.0的健康状态
ceph osd tree
#   0   hdd 1.00000                     osd.0    down        0 1.00000

将坏掉的硬盘踢出集群

集群中坏掉一块盘后,我们需要将其踢出集群,让集群恢复到active+clean状态

- 在osd01服务器上运行
1. down掉osd
ceph osd down 02. 将osd.0移出集群,集群会自动同步数据
ceph osd out osd.03. 删除守护进程对应的账户信息
ceph auth rm osd.04. 将osd.0移除crushmap
ceph osd crush remove osd.05. 删除osd.0
ceph osd rm osd.0

插入新的硬盘,重新启动osd

- 在管理主机admin节点执行
1. 清理已经损坏的硬盘/dev/sdb中已经损坏的数据
cd /etc/ceph
ceph-deploy disk zap osd01 /dev/sdb2. 清理osd0节点,/dev/sdb对应的固态盘分区中的数据
ceph-deploy disk zap osd01 /dev/sde
注:清理完数据之后当前状态为初始化状态,  我们需要重新进行磁盘分区。3. 对固态盘/dev/sde重新进行分区
parted -s /dev/sde mklabel gpt
parted -s /dev/sde mkpart primary 0% 50%
parted -s /dev/sde mkpart primary 51% 100%4. 在管理节点重新创建osd01主机的osd0节点
ceph-deploy --overwrite-conf osd create osd01 --data /dev/sdb --block-db /dev/sde1 --block-wal /dev/sde2
# 如果有报错信息:[ceph_deploy][ERROR ] RuntimeError: bootstrap-osd keyring not found; run 'gatherkeys'
#  先执行 : ceph-deploy mon create-initial ; 再执行第5步操作5. 查看osd.0的健康状态
ceph osd tree
# 0   hdd 0.01949         osd.0      up  1.00000 1.00000

在物理节点上新增osd daemon

扩容的方式分两种

方式一:

  • 如果我们服务器上还有硬盘插槽,并且我们当初使用的是lvm(逻辑卷)这样的形式创建的数据盘(disk)。
  • 我们可以直接可以在服务器上添加硬盘,制作成pv,再将pv划分给vg,再从vg中增加lvm的空间。
  • 增加好lvm的硬盘空间后,我们只需要调整crushmap中osd节点的权重就可以了。

方式二:

  • 我们直接在物理节点上新增osd daemon,这种方式会产生数据迁移。

在物理节点上新增osd daemon

实验环境:

  1. 我们将osd003节点关机,添加2块硬盘(模拟在本机添加硬盘)
  2. 我们将mon03节点关机,添加一块新的网卡,修改网络配置,连接到cluster网络;添加2块硬盘(模拟添加新的服务器)
- 切换至mon03节点
lsblk
# sdb               8:16   0   20G  0 disk
# sdc               8:32   0   20G  0 disk 1. 创建新的磁盘分区
parted -s /dev/sdc mklabel gpt
parted -s /dev/sdc mkpart primary 0% 50%
parted -s /dev/sdc mkpart primary 51% 100%2 切换至管理节点admin节点
cd /etc/ceph/
ceph-deploy --overwrite-conf osd create mon03 --data /dev/sdb --block-db /dev/sdc1 --block-wal /dev/sdc2将mon03服务器移动端rack2机架上
ceph osd crush move mon03 rack=rack2- osd03节点
lsblk
# sdh                                                                             8:112  0   20G  0 disk
# sdi                                                                             8:128  0   20G  0 disk 1. 创建新的磁盘分区
parted -s /dev/sdi mklabel gpt
parted -s /dev/sdi mkpart primary 0% 50%
parted -s /dev/sdi mkpart primary 51% 100%2. 切换至管理节点admin节点
cd /etc/ceph/
ceph-deploy --overwrite-conf osd create osd03 --data /dev/sdh --block-db /dev/sdi1 --block-wal /dev/sdi2默认将新创建的osd.10节点添加到osd03节点上,osd03节点在rack3机架上

osd节点关机维护

1. 关闭数据自动平衡
ceph osd set noout2. 关闭节点上的osd进程
ceph osd down ceph-osd@0               # 分别把该节点的osd设置为down状态
systemctl stop ceph-osd.target          # stop该节点上所有的osd进程3. 关闭节点
stutdown -h now4. 开始维护
当你对失败域中OSD维护时,其中的PG将会变为degraded状态。5. 维护完成启动守护进程
systemctl start ceph-osd.target6. 最后务必记得取消noout
ceph osd unset noout

Ceph运维存储 命令管理操作相关推荐

  1. 【Ceph】Ceph错误记录 Ceph 运维手册

    Ceph 运维手册 第一部分:常用操作 - 12. 日志和调试 - <Ceph 运维手册> - 书栈网 · BookStack 分布式存储ceph运维操作 (摘抄自:https://www ...

  2. Linux运维常用命令(转)

    为什么80%的码农都做不了架构师?>>>    1.删除0字节文件 find-type f -size 0 -exec rm -rf {} \; 2.查看进程 按内存从大到小排列 p ...

  3. ceph运维常用指令

    集群 启动一个ceph 进程 启动mon进程 service ceph start mon.node1 启动msd进程 service ceph start mds.node1 启动osd进程 ser ...

  4. 很实用的Linux 系统运维常用命令及常识(超实用)

    很实用的Linux 系统运维常用命令及常识(超实用) 作为Linux运维,需要了解Linux操作系统的基本使用和管理知识,下面脚本之家小编给大家介绍下Linux运维需要掌握的命令,想成为Linux运维 ...

  5. Linux系统运维常用命令

    Linux 系统运维常用命令 1 文件管理2 软件管理3 系统管理 4 服务管理5 网络管理6 磁盘管理 7 用户管理8 脚本相关9 服务配置 ============================ ...

  6. bind blz mysql_MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典...

    MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典 本资源由JAD资源网收集整理丨www.jiuandun.com 资源简介 MySQ DBAL重点剖 ...

  7. Ceph运维告诉你分布式存储的那些“坑”

    转载自:https://dbaplus.cn/news-134-2079-1.html 作者介绍 汪涉洋,来自美国视频网站hulu的工程师,毕业于北京理工大学计算机专业,目前从事大数据基础架构方面的工 ...

  8. mysql维护 运维_MySQL运维之--日常维护操作

    MySQL运维之--日常维护操作 http://blog.csdn.net/guoyjoe/article/details/46697825 一.Linux内核和发行版本 uname -a cat / ...

  9. 云计算示范项目_瑞松科技基于工业互联网的设备运维及工艺管理云平台成功入选2020年工业互联网试点示范项目...

    2020年12月28日,工业和信息化部发布2020年工业互联网试点示范项目名单公示,瑞松科技申报项目<基于工业互联网的设备运维及工艺管理云平台>成功入选试点示范项目平台集成创新应用方向,再 ...

最新文章

  1. Sql PATINDEX 函数
  2. 100G 最新技术学习资料大全分享 (2020 年最新)
  3. js代码实现购物车效果
  4. 天地图 热力图_arcgis js 3.x使用webgl绘制热力图
  5. android res
  6. Linux内核 TCP/IP、Socket参数调优
  7. 如何使用Spring和Velocity在Java中编写HTML电子邮件
  8. C/C++小游戏 ——贪吃蛇
  9. 解决Fiddler查看Post参数中文乱码的问题
  10. 【PHP学习】—get请求传递参数(五)
  11. openwrt 网关烧写程序
  12. Qt汉字显示乱码的一个简单解决方案
  13. 第三章 DirectX 图形绘制(上)
  14. 解密Zynga:专注 流水线 数据控
  15. 微信小程序_页面加载不出来/页面跳转不成功的若干可能原因
  16. ModelSim SE简明操作指南
  17. 使用JavaScrip实现简单问卷星快速生成自定义数据
  18. 用python编程、假设一年期定期利率_Python习题选编
  19. 14年优质服务 海科融通进军P2P资金托管
  20. epoll学习:思考一种高性能的服务器处理框架 - fanlb - 博客大巴

热门文章

  1. MySQL数据库创建sex字段设置男女约束
  2. 1507_FUSA_单片机的安全测试有哪些常见的测试项以及CPU寄存器测试和PC计数器测试的简介
  3. 最美妙的语言-------C++
  4. Android Studio 模板用法与自定义模板
  5. 从实战中来,到实战中去——Elasticsearch 技能更快提升方法论
  6. 【leetcode刷题】36.提莫攻击——Java版
  7. 用Python给女友 准备个绝对甜蜜的七夕礼物
  8. python虚拟环境管理干部学院_Virtualenv|基于Python虚拟环境管理包
  9. pyecharts 可视化大屏制作
  10. smack 多人聊天获取聊天室列表