集群安装方式:
1: ceph-deploy 方式安装ceph集群,模拟osd磁盘损坏;
分别采用如下两种方式修复:
1:使用ceph-deploy 方式修复故障osd;
2:手动修复故障osd;
#######使用ceph-deploy方式修复过程演示########
1:停止osd
/etc/init.d/ceph stop osd.3
2:查看osd磁盘挂载情况;
[[email protected] ceph]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 47.5G 0 part /
sdb 8:16 0 100G 0 disk
├─sdb1 8:17 0 95G 0 part /var/lib/ceph/tmp/mnt.x4MbgI
└─sdb2 8:18 0 5G 0 part /var/lib/ceph/osd/ceph-3
sr0 11:0 1 1024M 0 rom
3:卸载挂载分区
umount /var/lib/ceph/osd/ceph-3
umount /var/lib/ceph/tmp/mnt.x4MbgI
4:格式化磁盘模拟磁盘损坏
mkfs.xfs -f /dev/sdb
5:查看集群osd 状态
ceph osd tree
[[email protected] ceph]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-6 0 host node01
-1 0.44998 root default
-2 0.09000 host ceph-deploy
0 0.09000 osd.0 up 1.00000 1.00000
-3 0.09000 host node241
1 0.09000 osd.1 up 1.00000 1.00000
-4 0.09000 host node242
2 0.09000 osd.2 up 1.00000 1.00000
-5 0.09000 host node243
3 0.09000 osd.3 down 1.00000 1.00000 《==发现osd状态down
-7 0.09000 host node245
5 0.09000 osd.5 up 1.00000 1.00000
6:将osd状态设置为out
ceph osd out osd.3
7:将osd从集群中删除
ceph osd rm osd.3
8:从CRUSH中移除
ceph osd crush rm osd.3
9:删除osd.3 的认证信息
ceph auth del osd.3
10:再次查看集群osd状态
[[email protected] ceph]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-6 0 host node01
-1 0.35999 root default
-2 0.09000 host ceph-deploy
0 0.09000 osd.0 up 1.00000 1.00000
-3 0.09000 host node241
1 0.09000 osd.1 up 1.00000 1.00000
-4 0.09000 host node242
2 0.09000 osd.2 up 1.00000 1.00000
-5 0 host node243 《==osd依被清理出集群
-7 0.09000 host node245
5 0.09000 osd.5 up 1.00000 1.00000
[[email protected] ceph]#
开始恢复
11:登陆安装配置主机(ceph-deploy)
cd /etc/ceph/
12:初始化磁盘:
ceph-deploy osd prepare node243:/dev/sdb
13:激活磁盘
ceph-deploy osd activate node243:/dev/sdb
14:查看磁盘状态,验证添加是否成功
ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-6 0 host node01
-1 0.44998 root default
-2 0.09000 host ceph-deploy
0 0.09000 osd.0 up 1.00000 1.00000
-3 0.09000 host node241
1 0.09000 osd.1 up 1.00000 1.00000
-4 0.09000 host node242
2 0.09000 osd.2 up 1.00000 1.00000
-5 0.09000 host node243
3 0.09000 osd.3 up 1.00000 1.00000 #添加成功
-7 0.09000 host node245
5 0.09000 osd.5 up 1.00000 1.00000
[[email protected] ceph]#
#########手动操作修复osd过程演示:#########
1:停止osd
/etc/init.d/ceph stop osd.3
2:查看osd磁盘挂载情况;
[[email protected] ceph]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 47.5G 0 part /
sdb 8:16 0 100G 0 disk
├─sdb1 8:17 0 95G 0 part /var/lib/ceph/tmp/mnt.x4MbgI
└─sdb2 8:18 0 5G 0 part /var/lib/ceph/osd/ceph-3
sr0 11:0 1 1024M 0 rom
3:卸载挂载分区
umount /var/lib/ceph/osd/ceph-3
umount /var/lib/ceph/tmp/mnt.x4MbgI
4:格式化磁盘模拟磁盘损坏
mkfs.xfs -f /dev/sdb
5:查看集群osd 状态
ceph osd tree
[[email protected] ceph]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-6 0 host node01
-1 0.44998 root default
-2 0.09000 host ceph-deploy
0 0.09000 osd.0 up 1.00000 1.00000
-3 0.09000 host node241
1 0.09000 osd.1 up 1.00000 1.00000
-4 0.09000 host node242
2 0.09000 osd.2 up 1.00000 1.00000
-5 0.09000 host node243
3 0.09000 osd.3 down 1.00000 1.00000 《==发现osd状态down
-7 0.09000 host node245
5 0.09000 osd.5 up 1.00000 1.00000
6:将osd状态设置为out
ceph osd out osd.3
7:将osd从集群中删除
ceph osd rm osd.3
8:从CRUSH中移除
ceph osd crush rm osd.3
9:删除osd.3 的认证信息
ceph auth del osd.3
10:再次查看集群osd状态
[[email protected] ceph]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-6 0 host node01
-1 0.35999 root default
-2 0.09000 host ceph-deploy
0 0.09000 osd.0 up 1.00000 1.00000
-3 0.09000 host node241
1 0.09000 osd.1 up 1.00000 1.00000
-4 0.09000 host node242
2 0.09000 osd.2 up 1.00000 1.00000
-5 0 host node243 《==osd依被清理出集群
-7 0.09000 host node245
5 0.09000 osd.5 up 1.00000 1.00000
11:进入osd挂载目标文件夹
[[email protected] ceph]#
cd /var/lib/ceph/osd/ceph-3
12:查看挂载目录,发现文件夹为空,
[[email protected] ceph-3]# ls
和正常osd挂载目录对比,正常如下:
[[email protected] osd]# ll ceph-2/
total 56
-rw-r--r-- 1 root root 193 Aug 26 02:27 activate.monmap
-rw-r--r-- 1 root root 3 Aug 26 02:27 active
-rw-r--r-- 1 root root 37 Aug 26 02:27 ceph_fsid
drwxr-xr-x 226 root root 8192 Dec 17 16:53 current
-rw-r--r-- 1 root root 37 Aug 26 02:27 fsid
lrwxrwxrwx 1 root root 58 Aug 26 02:27 journal -> /dev/disk/by-partuuid/6781a828-3baf-4e47-8f41-d12fa8cb0078
-rw-r--r-- 1 root root 37 Aug 26 02:27 journal_uuid
-rw------- 1 root root 56 Aug 26 02:27 keyring
-rw-r--r-- 1 root root 21 Aug 26 02:27 magic
-rw-r--r-- 1 root root 6 Aug 26 02:27 ready
-rw-r--r-- 1 root root 4 Aug 26 02:27 store_version
-rw-r--r-- 1 root root 53 Aug 26 02:27 superblock
-rw-r--r-- 1 root root 0 Dec 17 11:37 sysvinit
-rw-r--r-- 1 root root 2 Aug 26 02:27 whoami
13:查看新挂载的盘、然后格式化;
[[email protected] ~]# fdisk -l
Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
14:创建osd挂载目录
mount /dev/sdb /var/lib/ceph/osd/ceph-3
mount -o remount,user_xattr /var/lib/ceph/osd/ceph-3
mount -o remount,noatime /var/lib/ceph/osd/ceph-3
查看挂载的情况
mount
。。。。。。
/dev/sdb on /var/lib/ceph/osd/ceph-3 type xfs (rw,noatime,attr2,inode64,noquota)
15:创建一个OSD,生成一个osdnumber
[[email protected] ~]# ceph osd create
3
16:初始化osd数据目录
[[email protected] ~]# ceph-osd -i 3 --mkfs --mkkey
17:创建key文件
cd /var/lib/ceph/osd/ceph-3/
[[email protected] ceph-3]# touch keyring
[[email protected] ceph-3]# ll
total 0
-rw-r--r-- 1 root root 0 Dec 21 20:15 keyring
18:注册osd的认证密钥
ceph auth add osd.3 osd ‘allow *‘ mon ‘allow profile osd‘ -i /var/lib/ceph/osd/ceph-3/keyring
19:验证key文件,如果key文件为空,通过ceph auth list 查看系统值,填入key文件即可;
[[email protected] ceph-3]# more keyring
[osd.0]
key = AQBk7XdWZQrnFBAAmxYgBuHYxckSX8G3GRWexQ==
20:为此osd节点创建一个crushmap(本次仅修复osd,不用修改host相关信息)
ceph osd crush add-bucket node243 host
防放置 Node243 到根路径
ceph osd crush move node243 root=default
21:放置osd.3到 bucket node243
ceph osd crush add osd.3 1.0 host=node243
add item id 3 name‘osd.3‘ weight 1 at location {host=node243} to crush map
22:创建一个初始化目录
touch /var/lib/ceph/osd/ceph-3/sysvinit
23:启动osd服务
/etc/init.d/ceph start osd.3
24:查看磁盘状态,验证添加是否成功
ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-6 0 host node01
-1 0.44998 root default
-2 0.09000 host ceph-deploy
0 0.09000 osd.0 up 1.00000 1.00000
-3 0.09000 host node241
1 0.09000 osd.1 up 1.00000 1.00000
-4 0.09000 host node242
2 0.09000 osd.2 up 1.00000 1.00000
-5 0.09000 host node243
3 0.09000 osd.3 up 1.00000 1.00000 #添加成功
-7 0.09000 host node245
5 0.09000 osd.5 up 1.00000 1.00000
[[email protected] ceph]#