ceph更换磁盘不改变引起大量数据迁移

一、需求

新更换后的磁盘,需满足如下要求(根本是为了保持pg分布情况不变,避免其他无关osd上的pg重新计算分布):

  • 保持ID不变
  • 系统crushmap不变

二、所用工具

  • ceph-disk
  • ceph

三、配置方法

3.1 初始化配置文件

[root@node0 ]$ cat /etc/ceph/init.conf

[global]
	osd_journal_size = 30720	# 30GB,根据实际情况调整

3.2 磁盘分区及格式化(有时候需要先执行ceph-disk zap )

[root@node0 ]$ sudo ceph-disk zap  /dev/sdX
[root@node0 ]$ sudo ceph-disk prepare --cluster init  /dev/sdX [journal location]

3.3 恢复原损坏磁盘相关参数

挂载初始化后的磁盘到本地目录/mnt:

[root@node0 ]$ sudo mount /dev/sdX1 /mnt
[root@node0 ]$ cd /mnt
3.3.1 设置 ID (保持OSD ID不变)

[root@node0 ]$ echo ${ID} | sudo tee whoami

3.3.2 设置 keyring (保持keyring不变)

[root@node0 ]$ ceph auth get-or-create osd.${ID} | sudo tee keyring

3.3.3 设置 UUID (保持原OSD的uuid不变)

[root@node0 ]$ ceph osd dump | grep ^osd.${ID} | awk '{print $NF}' | sudo tee fsid

3.3.4 设置集群fsid(保持集群fsid不变)

[root@node0 ]$ ceph-conf --lookup fsid | sudo tee ceph_fsid

3.3.5 激活磁盘
[root@node0 ]$ cd
[root@node0 ]$ sudo umount /mnt
[root@node0 ]$ sudo ceph-disk activate  --mark-init none  /dev/sdX1

你可能感兴趣的:(运维)