部署OSD节点
根据具体的操作节点提示完成部署OSD(Object Storage Device)的所有操作。
划分OSD分区
以下操作均需在ceph1~ceph3均执行,此处以“/dev/nvme0n1”为例说明,如果有多块
对于非推荐配置,若NVMe盘划分的DB分区和WAL分区空间不足,将会放到HDD中,影响性能。
如下操作将NVMe盘划分为12个60GB分区、12个180GB分区,分别对应WAL分区、DB分区。
- 创建分区脚本。
- 新建“partition.sh”文件。
1
vi partition.sh
- 按“i”键进入编辑模式,添加如下内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#!/bin/bash parted /dev/nvme0n1 mklabel gpt for j in `seq 1 12` do ((b = $(( $j * 8 )))) ((a = $(( $b - 8 )))) ((c = $(( $b - 6 )))) str="%" echo $a echo $b echo $c parted /dev/nvme0n1 mkpart primary ${a}${str} ${c}${str} parted /dev/nvme0n1 mkpart primary ${c}${str} ${b}${str} done
此脚本内容只适用于当前硬件配置,其它硬件配置可参考此脚本。
- 按“Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
- 新建“partition.sh”文件。
- 执行脚本,创建分区。
1
bash partition.sh
部署OSD节点
以下脚本的“/dev/sda-/dev/sdl”12块硬盘均为数据盘,OS安装在“/dev/sdm”上。实际情况中可能会遇到系统盘位于数据盘中间的情况,比方说系统盘安装到了“/dev/sde”,则不能直接使用以下脚本直接运行,否则部署到“/dev/sde”时会报错。此时需要重新调整脚本,避免脚本中包含数据盘以外的如系统盘、做DB/WAL分区的SSD盘等。
- 确认各个节点各硬盘的sd*。
1
lsblk
回显如下所示,/dev/sda是系统盘。
1 2 3 4 5 6 7 8
[root@client1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 3.7T 0 disk ├─sda1 8:1 0 1G 0 part /boot/efi ├─sda2 8:2 0 1G 0 part /boot └─sda3 8:3 0 3.7T 0 part ├─openeuler-root 253:0 0 3.6T 0 lvm / └─openeuler-swap 253:1 0 4G 0 lvm [SWAP]
有一些硬盘可能是以前Ceph集群里的数据盘或者曾经安装过操作系统,那么这些硬盘上很可能有未清理的分区,lsblk命令可以看到各个硬盘下是否有分区。假如/dev/sdb硬盘下发现有分区信息,可用如下命令清除:
1
ceph-volume lvm zap /dev/sdb --destroy
必须先确定哪些盘做为数据盘使用,当数据盘有未清理的分区时再执行清除命令。
- 在ceph1节点创建OSD部署脚本。
- 新建“create_osd.sh”文件。
cd /etc/ceph/ vi /etc/ceph/create_osd.sh
- 按“i”键进入编辑模式,添加如下内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#!/bin/bash for node in ceph1 ceph2 ceph3 do j=1 k=2 for i in {a..l} do ceph-deploy osd create ${node} --data /dev/sd${i} --block-wal /dev/nvme0n1p${j} --block-db /dev/nvme0n1p${k} ((j=${j}+2)) ((k=${k}+2)) sleep 3 done done
此脚本内容只适用于当前硬件配置,其他硬件配置可参考此脚本。
其中,ceph-deploy osd create命令中:- ${node}是节点的hostname。
- --data选项后面是作为数据盘的设备。
- --block-wal选项后面是WAL分区。
- --block-db选项后面是DB分区。
DB和WAL通常部署在NVMe SSD上以提高写入性能,如果没有配置NVMe SSD或者直接使用NVMe SSD作为数据盘,则不需要--block-db和--block-wal,只需要--data指定数据盘即可。
- 按“Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
- 新建“create_osd.sh”文件。
- 在ceph1上运行脚本。
1
bash create_osd.sh
- 创建成功后,查看是否正常,即36个OSD是否都为up。
1
ceph -s