⽬录
- 准备及注意事项
- 操作系统
- SES的安装与配置
⼀、准备及注意事项
- SES 5.X 必须使⽤SLES 12 sp3作为操作系统。
- 准备SLES和SES的官⽅ISO镜像,以及对应的更新包,共计4个⽂件,后续配置软件源时需要使⽤,且保证所有节点的数据⼀致
- 建议在zypper软件源的配置上,尽量使⽤集群外的机器提供http/ftp/nfs服务,或者把所有⽂件都复制到每⼀台节点⾥,作为本地file服务,⽽不要使⽤集群⾥的服务器来提供http/ftp/nfs,避免和ceph集群环境有冲突。
- mem = TB of raw OSD capacity * 2GB vs 3/5 * OSD count
- WAL-size = 2GB and more, no limitation (optional)
- DB-size = 10GB * TB of raw OSD capacity
- Journal: 6 journals on 1 SSD, 12 journals on 1 NVMe
⼆、操作系统
⼆A、安装操作系统 - 安装指南补充
跳过安装过程中自动升级
光盘引导启动后,将光标移动到“installation”上,在Boot Options中输⼊
self_update=0
可以跳过检查系统更新的步骤
建议使⽤如下分区结构
分区 | 格式 | 容量 |
---|---|---|
/boot | ext4 | 1GB |
swap | swap | 16GB |
/ | ext4 | 100GB |
/var | ext4 | 剩余所有容量 |
安装组件选择
不⽤安装:AppArmor和 32-bit runtime environment
仅安装以下四项即可:
"Help and Support Documentation"
"Base System"
"Minimal System"
"YaST2 configuration packages"
关闭防火墙
点击“Firewall will be enabled”旁边的disable,可直接禁⽤操作系统内置的防⽕墙
⼆B、操作系统初始化设置
修改每台服务器的主机名,示例如下
hostnamectl set-hostname node1.fiberhome.com
【可选】配置服务器的⽹络,如IP、 bondyast lan
mode=1
primary_reselect=1
MTU=9000
建议重启,确保主机名修改成功
⼆C、配置zypper软件源
本⽂档使⽤本地⽂件模式,不依赖额外的设备与服务,但是会在每个节点占⽤约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的⽂件存放
- sles_updates⽬录⽤于存放操作系统的更新包
- ses_updates⽬录⽤于存放SES 5.0的更新包(SES 5.5没有独⽴的ISO,这个⽬录也可以看作是SES 5.5的安装包)
- 然后把ISO和tar包⾥⾯的⽂件全部复制到上述⽬录
添加软件源
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
⼆D、 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
admin节点的NTP服务配置
echo "server 127.127.1.0" >> /etc/ntp.conf
echo "fudge 127.127.1.0 stratum 10" >> /etc/ntp.conf
echo "restrict 192.168.1.0 mask 255.255.255.0 notrap nomodify" >>
/etc/ntp.conf
systemctl enable ntpd.service
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. admin节点
zypper install salt-master salt-minion
systemctl enable salt-master.service
systemctl enable salt-minion.service
echo "master: admin.fiberhome.com" > /etc/salt/minion.d/master.conf
systemctl start salt-master
systemctl start salt-minion
2. 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
3.salt验证,仅在admin节点执⾏
salt-key -L
salt-key -A
sleep 5
salt '*' test.ping
4. deepsea安装与配置,仅在admin节点执⾏
zypper install deepsea
sleep 5
salt '*' grains.append deepsea default
sleep 5
salt -C 'G@deepsea:*' test.ping
SES 5.5上,⽆需执⾏下⾯这条命令,默认存在了,重复执⾏也⽆任何影响
echo "master_minion: admin.fiberhome.com" >/srv/pillar/ceph/master_minion.sls
部署SES,仅在admin节点执⾏
【可选】集群节点数检查,默认需要4台服务器,每台8个OSD
/srv/pillar/ceph/stack/global.yml
DEV_ENV=true
export DEV_ENV=true
开始使⽤deepsea部署SES集群, stage 0~4,⼀共5个⼤的环节
deepsea stage run ceph.stage.0 等同于 salt-run state.orch ceph.stage.0
deepsea stage run ceph.stage.0
deepsea stage run ceph.stage.1
此时需配置SES环境
【必选】配置服务器的⻆⾊
cp /usr/share/doc/packages/deepsea/examples/policy.cfg-rolebased
/srv/pillar/ceph/proposals/policy.cfg
chown salt:salt /srv/pillar/ceph/proposals/policy.cfg
编辑/srv/pillar/ceph/proposals/policy.cfg
推荐policy.cfg第⼀⾏添加如下内容:
cluster-unassigned/cluster/*.sls
【可选】修改SES集群的⽹络配置
编辑 /srv/pillar/ceph/proposals/config/stack/default/ceph/cluster.yml
public_network: 192.168.2.0/24
cluster_network: 192.168.3.0/24
【可选】⽣成新的配置⽅案(不同的硬件配置会有不同的配置⽅案,以达到最优效果)
示例如下
salt-run proposal.populate name=fiberhome ratio=1 db=50-80 dbsize=60g data=5000-7000 target='*' wal=0 wal-size=0
salt-run proposal.populate name=fiberhome target='*' ratio=1 db=1-2000 journal=1-2000 wal=1-2000 data=1-2000 db-size=10g journalsize=10g wal-size=10g
查看上述命令的具体含义
salt-run proposal.help
继续SES集群部署
deepsea stage run ceph.stage.2
deepsea stage run ceph.stage.3
deepsea stage run ceph.stage.4