CEPH之osd批量创建

一直出差都没时间写了。。。

今天创建150个osd,发现手动写ceph.conf有点头大,研究了下vim的递增功能。

很简单就是一条命令:

:let i=0|g/REG/s//\=i/|let i=i+1

它可以匹配你文本中的REG,然后按照你i+n,每次递增加+n

上面这条命令的作用就是,查找文本中的REG字符,然后从第一个开始替换成0,然后依次+1

这样在ceph.conf中,我们可以首先复制出来150个[osd.gggg],然后在使用上面的命令来递增,同时vim还支持ctrl+A来对数字+1,ctrl+X对数字-1,感觉还是蛮方便的。。

强行安利了一波vim操作。。

当然手慢还是用for循环最好啦。

for i in `seq 10`; 
do 
echo [osd.${i}]>>/tmp/osd.conf; 
echo "host = compute${b}" >>/tmp/osd.conf; b=$((b+1)); 
done

另外补充:

1、ceph挂盘的时候如果使用分区盘符挂载,有可能会遇到盘符漂移问题,sda变成了sdb这种,注意使用uuid挂载。

mount   -U  uuid /var/lib/ceph/osd/ceph-$i

2、在作ceph维护时,有时候你把osd盘手动out了,然后也down掉了,甚至删除了osd id,但如果你接着删除了crushmap中信息,ceph osd crush remove osd.$i,这时候会引起crushmap的变化,然后发生第二次pg迁移。

时间: 2024-12-24 11:27:00

CEPH之osd批量创建的相关文章

ceph增加osd流程

假如需要新增一个主机名:osd4 ip:192.168.0.110的OSD1.在osd4创建挂载目录及放置配置文件的目录 ssh 192.168.0.110 (这里是从mon主机ssh到osd4主机) mkdir /ceph/osd.4 mkdir /etc/ceph 2.在osd4上格式化ext4的sda3分区,挂载分区. mkfs.ext4 /dev/sda3 mount -o user_xattr /dev/sda3 /ceph/osd.43.将mon主机的id_dsa.pub拷至osd4

ceph 删除osd的一些问题

1.删除osd删除创建的osd.数据和日志在同一个磁盘上的osd将osd.0踢出集群,执行ceph osd out 0停止此osd进程,执行systemctl stop [email protected] 然后执行:ceph osd crush remove osd.0,此时osd.0已经不再osd tree中了 执行ceph auth del osd.0 和 ceph osd rm 0, 此时删除成功但是原来的数据和日志目录还在,也就是数据还在 此时我们将/dev/sdd磁盘umount,然后

centos 7 expect + shell实现批量创建文件

这个问题好久了,一直没整理出来.记得还是上次面试的时候问到如何批量修改1000台机器的主机名.这里给出批量创建内容为Hello,名为1.txt的文件. 一.首先安装expect yum install -y expect 二.准备工作:(1)准备IP地址的列表.vim ip.txt 192.168.1.88 192.168.1.89 192.168.1.90 (2)准备要执行的命令.vim cmd.txt mkdir /tmp/test 三.脚本部分 #!/bin/bash passwd="12

企业实战脚本案例2:批量创建用户并设置初始密码

批量创建用户并设置初始密码 目录: 1.脚本功能介绍 2.脚本制作技术需求 2.1 useradd命令 2.2 id命令 2.3 passwd命令 2.4 随机密码 2.5 while循环+case+select 3.脚本编写案例 一.脚本功能介绍 在企业中生产或运维中,经常会遇到VPN服务器.企业网盘.企业邮箱.云桌面私有账号等等一系列的服务器.当批量新员工入职时,经常需要批量账号分配给新员工,若此类账号存储在数据库时,管理员可根据公司账号命名规范通过专有图形化系统进行录入账号,若账号存储在系

linux实战考试题:批量创建用户和密码(不能使用循环)

批量创建10个用户,并且设置随机8位密码,要求不能用shell的循环(例如:for,while等),只能用linux命令及管道实现. 方法1: [[email protected] /]# echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1 ; pass=$((RANDOM+10000000)); echo "$pass"|passwd --stdin \1; echo -e "

linux批量创建用户的脚本

#!/bin/bash for user in `cat /home/opt/userlist.txt` do mkdir -p /app/ftp/issue/merDealFiles/$user/dealFiles mkdir -p /app/ftp/issue/merDealFiles/$user/dealFiles/applyArea mkdir -p /app/ftp/issue/merDealFiles/$user/dealFiles/resultArea mkdir -p /app/

Shell脚本批量创建用户并随机生成密码

要求:批量创建10个系统账号oldboy01-oldboy10,并设置生成密码(密码不同). 实现脚本: #!/bin/bash #Question3 for i in $(seq -w 10) do         useradd -s /bin/bash oldboy$i         echo "password$i" | md5sum | tee -a passwd.txt | passwd --stdin  oldboy$i done 脚本执行效果: [[email pro

Azure上批量创建OS Disk大于30G的Linux VM

Azure上VM的OS盘的大小在创建时是固定的.Windows是127G,Linux是30G.如果需要批量创建的VM的OS Disk有更大的容量.可以考虑用下面的方法实现. 1 创建一台有Data-disk的CentOS VM,对其进行客户化,安装软件,挂载磁盘 2 扩大OS Disk的容量 3 在VM内resize OS Disk的容量 4 把这台VM捕获成Azure的Image 5 通过这个Image批量创建VM.创建VM的OS Disk容量是刚刚调整的容量 本文将采用Azure CLI 2

批量创建数据库和批量数据恢复

近期公司有一个数据库需要迁移,但是里面创建的数据库比较多,我们采取脚本将库单独备份,然后上传到另一台主机,新建数据库,然后恢复数据库.将自己写的几个小脚本粘贴到此, 分库压缩备份 #/bin/sh #version 0.1 MYUSER=mysqlback [email protected] #SOCKET=/data/3306/mysql.sock MYLOGIN="mysql -u$MYUSER -p$MYPASS " MYDUMP="mysqldump -u$MYUSE