ceph动态扩展

2018-12-07  本文已影响0人  Vincent_6c5f

一、准备及注意事项

  1. SES 5.X 必须使⽤SLES 12 sp3作为操作系统
  2. 准备SLES和SES的官⽅ISO镜像,以及对应的更新包,共计4个文件,后续配置软件源时需要使用,且保证所有节点的数据一致。
  3. 建议在zypper软件源的配置上,尽量使用集群外的机器提供http/ftp/nfs服务,或者把所有文件都复制到每一台节点里,作为本地file服务,而不要使用集群里的服务器来提供http/ftp/nfs,避免和ceph集群环境有冲突。
  4. mem = TB of raw OSD capacity * 2GB vs 3/5 * OSD count
  5. WAL-size = 2GB and more, no limitation (optional)
  6. DB-size = 10GB * TB of raw OSD capacity
  7. Journal: 6 journals on 1 SSD, 12 journals on 1 NVMe

二、操作系统

2.1 安装操作系统 - 安装指南补充

3.5.1章节

光盘引导启动后,将光标移动到“installation”上,在Boot Options中输入
self_update=0
可以跳过检查系统更新的步骤。

3.6.3章节,建议使⽤如下分区结构

/boot, ext4, 1GB
swap, swap, 16GB
/, ext4, 100GB
/var, ext4, 剩余所有容量

3.9.4 ~ 3.9.5章节

不⽤安装: AppArmor 和 32-bit runtime environment
仅安装以下四项即可:
"Help and Support Documentation"
"Base System"
"Minimal System"
"YaST2 configuration packages"

3.9.6 ~ 3.9.7章节

点击“Firewall will be enabled”旁边的“disable”,可直接禁用操作系统内置的防火

2.2 操作系统初始化设置

修改每台服务器的主机名,示例如下

hostnamectl set-hostname node1.fiberhome.com

配置服务器的网络,如IP、 bond

yast lan
mode=1
primary_reselect=1
MTU=9000

建议先登出再登陆,确保主机名修改成功

2.3 配置zypper软件源

可以从现有集群内copy.
本文档使用本地文件模式,不依赖额外的设备与服务,但是会在每个节点占用约15GB的本地磁盘空间。

rm -rf /etc/zypp/repos.d/*
mkdir -p /repo/sles/
mkdir -p /repo/ses/
mkdir -p /repo/sles_updates/
mkdir -p /repo/ses_updates/

  1. sles目录用于原版SLES 12 sp3操作系统的文件存放
  2. ses目录用于原版SES 5.0的文件存放
  3. sles_updates目录用于存放操作系统的更新包
  4. ses_updates目录用于存放SES 5.0的更新包(SES5.5没有独立的ISO,这个目录也可以看作是SES 5.5的安装包)
  5. 然后把ISO和tar包里面的文件全部复制到上述目录

添加软件源
备注:非官方签名的软件包需要将-fg修改为-fG(G为不检查签名)

zypper ar -fg -t yast2 /repo/sles/ sles
zypper ar -fg -t yast2 /repo/ses/ ses
zypper ar -fg -t rpm-md /repo/sles_updates/ sles_updates
zypper ar -fg -t rpm-md /repo/ses_updates/ ses_updates

2.4 SES安装准备工作

修改/etc/hosts文件,新增记录,示例如下
注意:系统会自动添加一条本机的记录,注意不要重复,避免冲突,在集群内添加新的服务器信息,保证每台服务器的如下配置文件一致。

192.168.1.101 admin.fiberhome.com admin
192.168.1.102 node1.fiberhome.com node1
192.168.1.103 node2.fiberhome.com node2
192.168.1.104 node3.fiberhome.com node3
192.168.1.105 node4.fiberhome.com node4

node新节点的NTP服务配置

echo "server 192.168.1.101" >> /etc/ntp.conf
echo "restrict 192.168.1.0 mask 255.255.255.0 notrap nomodify" >> /etc/ntp.conf
systemctl enable ntpd.service

新加节点的系统更新 zypper update

zypper ref
zypper update
reboot

三、SES的扩容与配置

1.node节点

zypper install salt-minion
systemctl enable salt-minion.service
echo "master: admin.fiberhome.com" > /etc/salt/minion.d/master.conf
systemctl start salt-minion

2.如果 Salt Master 的主机名不是 salt ,请编辑 /etc/salt/minion 并添加下面一行:

sed -i 's/#master: salt/master: admin/g' /etc/salt/minion

3.salt验证,仅在admin节点执行

在 Salt Master 上接受所有 Salt 密钥:

salt-key --accept-all
salt-key -L
sleep 5
salt '*' test.ping

4.deepsea安装与配置,仅在admin节点执行

salt '' grains.append deepsea default
sleep 5
salt -C 'G@deepsea:
' test.ping

5.开始使用deepsea部署SES集群, stage 0~3

deepsea stage run ceph.stage.0 等同于 salt-run state.orch ceph.stage.0

5.1执行deepsea 0-1

deepsea stage run ceph.stage.0
deepsea stage run ceph.stage.1

5.2此时需配置SES环境

生成配置方案(不同的硬件配置会有不同的配置方案,以达到最优效果)
配置方案以创建集群的方案为准:
示例如下:

salt-run proposal.populate name=fiberhome target='*' ratio=1 db=1-600 journal=1-600 data=3000-8000 db-size=400G journal-size=10G

查看上述命令的具体含义

salt-run proposal.help

5.3继续SES集群部署

deepsea stage run ceph.stage.2
deepsea stage run ceph.stage.3

检查集群状态,部署完成。

四、问题排查:

1.如出现卡在stage.3上某一节点无法创建osd的解决办法:

关闭这一节点 ceph.target服务

systemctl stop ceph.target

擦除磁盘:
脚本根据实际osd盘符具体修改:

for i in {b..z};do sgdisk -Z -o -g /dev/sd$i && dd if=/dev/zero of=/dev/sd$i count=1000000;done

【可选】将磁盘打上gpt标签:

for i in {b..z};do parted -m -a opt /dev/sd$i mklabel gpt;done

重启系统

reboot

开机后停止ceph.target服务

systemctl stop ceph.target

重新运行stage.3

deepsea stage run ceph.stage.3

上一篇 下一篇

猜你喜欢

热点阅读