中兴新支点操作系统基于Linux稳定内核,分为嵌入式操作系统(NewStart CGEL)、服务器操作系统(NewStart CGSL)、桌面操作系统(NewStart NSDL),经过近10年专业研发团队的积累和发展,产品形成安全加固、自主可控、易用管理的突出优势。目前,中兴新支点操作系统已在国内外各大电信运营商、国有大中型企业及电子政务解决方案中投入使用,服务于交换网络、核心网络、骨干网络、智慧城市、视频监控等系统底层。以上转自某乎。
在国家数字化转型和国产化替代的大背景下,尤其是政务类项目,现在基本用国产化的CPU和操作系统来承载其业务,实现自主创新和安全可靠。在本文中,我们用中兴新支点系统(CGSL)和海光处理器进行了ceph的离线部署。下面方法也适用于龙蜥和centos8。
要开始制作ceph的离线rpm源,首先需要找一台已连接网络的中兴新支点机器。中兴新支点系统会默认安装一些组件(如libvirt、qemu),为避免安装ceph时与其他包产生依赖冲突问题,安装系统的时候可以选择最小安装。项目中其他需要安装的组件后面一起安装。我这边除了ceph,libvirt的包也会用到,系统默认安装libvirt的版本较低,我这里都采用手动方式部署并制作离线的rpm包。
中兴新支点系统目前没发现有官方的在线yum源地址。在线安装可以使用龙蜥和epel8的yum源。下面是yum源的配置。
AnolisOS.repo[AppStream]name=AnolisOS-8.6 - AppStreambaseurl=http://mirrors.openanolis.cn/anolis/8.6/AppStream/x86_64/osenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-V6[BaseOS]name=AnolisOS-8.6 - BaseOSbaseurl=http://mirrors.openanolis.cn/anolis/8.6/BaseOS/x86_64/osenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-V6[DDE]name=AnolisOS-8.6 - DDEbaseurl=http://mirrors.openanolis.cn/anolis/8.6/DDE/x86_64/osenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-V6[AppStream-debuginfo]name=AnolisOS-8.6 - AppStream Debuginfobaseurl=http://mirrors.openanolis.cn/anolis/8.6/AppStream/x86_64/debugenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-V6[BaseOS-debuginfo]name=AnolisOS-8.6 - BaseOS Debuginfobaseurl=http://mirrors.openanolis.cn/anolis/8.6/BaseOS/x86_64/debugenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-V6[Plus-debuginfo]name=AnolisOS-8.6 - Plus Debuginfobaseurl=http://mirrors.openanolis.cn/anolis/8.6/Plus/x86_64/debugenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-V6[PowerTools-debuginfo]name=AnolisOS-8.6 - PowerTools Debuginfobaseurl=http://mirrors.openanolis.cn/anolis/8.6/PowerTools/x86_64/debugenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-V6[DDE-debuginfo]name=AnolisOS-8.6 - DDE Debuginfobaseurl=http://mirrors.openanolis.cn/anolis/8.6/DDE/x86_64/debugenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-V6[Extras]name=AnolisOS-8.6 - Extrasbaseurl=http://mirrors.openanolis.cn/anolis/8.6/Extras/x86_64/osenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-V6[HighAvailability]name=AnolisOS-8.6 - HighAvailabilitybaseurl=http://mirrors.openanolis.cn/anolis/8.6/HighAvailability/x86_64/osenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-V6[Plus]name=AnolisOS-8.6 - Plusbaseurl=http://mirrors.openanolis.cn/anolis/8.6/Plus/x86_64/osenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-V6[PowerTools]name=AnolisOS-8.6 - PowerToolsbaseurl=http://mirrors.openanolis.cn/anolis/8.6/PowerTools/x86_64/osenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-V6
epel.repo[epel]name=Extra Packages for Enterprise Linux 8 - $basearch# It is much more secure to use the metalink, but if you wish to use a local mirror# place its address here.baseurl=https://mirrors.aliyun.com/epel/8/Everything/$basearchmetalink=https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=$basearch&infra=$infra&content=$contentdirenabled=1gpgcheck=1countme=1gpgkey=file:///etc/yum.repos.d/RPM-GPG-KEY-EPEL-8
ceph.repo[Ceph]name=Ceph packages for $basearchbaseurl=http://download.ceph.com/rpm-pacific/el8/$basearchenabled=1gpgcheck=0type=rpm-mdgpgkey=https://download.ceph.com/keys/release.asc[Ceph-noarch]name=Ceph noarch packagesbaseurl=http://download.ceph.com/rpm-pacific/el8/noarchenabled=1gpgcheck=0type=rpm-mdgpgkey=https://download.ceph.com/keys/release.asc[ceph-source]name=Ceph source packagesbaseurl=http://download.ceph.com/rpm-pacific/el8/SRPMSenabled=1gpgcheck=0type=rpm-mdgpgkey=https://download.ceph.com/keys/release.asc
配置yum缓存:
[main]gpgcheck=1installonly_limit=3clean_requirements_on_remove=Truebest=Trueskip_if_unavailable=Falsecachedir=/data/yumkeepcache=1
yum install ceph -y
find /data/cache -name "*.rpm" -exec cp {} /mnt \;createrepo /mnttar -zcvf offline.tar.gz mnt/
使用做的离线rpm包安装ceph。
tar -zxvf offline.tar.gz cd mntrpm -ivh *.rpm --nodeps --force
Ceph集群必须至少有一个监控器,并且所需的OSD数量至少应与集群中存储的对象副本数量相同。引导初始mon是部署 Ceph 存储群集的第一步,这里我直接在node1、node2、node3创建三个mon。
为集群生成唯一的fsid,fsid是群集的唯一标识符,代表 Ceph 存储群集主要用于 Ceph 文件系统的文件系统 ID。
uuidgen
创建ceph配置文件,将生成的fsid添加到配置文件中。
vim /etc/ceph/ceph.conf[global]fsid=9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4mon initial members = node1mon host = 192.168.2.16public network = 192.168.2.0/24auth cluster required = cephxauth service required = cephxauth client required = cephxosd journal size = 1024osd pool default size = 3osd pool default min size = 2osd pool default pg num = 8osd pool default pgp num = 8osd crush chooseleaf type = 1
创建keyring并生成监视器keyring来为群集做准备。monitor通过密钥相互通信。在引导初始监控时,必须提供已生成的具有监控密钥的键环。
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
创建管理keyring并添加用户到client.admin的keyring中。必须创建一个用户并将其添加到monitor keyring,才能使用 CLI 工具。
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
生成引导 osd 密钥,生成用户并将用户添加到client.bootstrap-osd keyring中。
ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
将生成的键添加到 ceph.mon.keyring。
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyringceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
更改 ceph.mon.keyring的所有者。
chown ceph:ceph /tmp/ceph.mon.keyring
生成monitor映射时,需用到主机名、主机IP地址和FSID。将其保存为 :/tmp/monmap。
monmaptool --create --add `hostname` 192.168.2.16--fsid 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4 /tmp/monmap
在monitor主机上创建默认数据目录,目录名是{cluster-name}-{hostname}格式。
sudo -u ceph mkdir /var/lib/ceph/mon/ceph-`hostname`
在node1节点对monitor进行初始化。
sudo -u ceph ceph-mon --mkfs -i `hostname` --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
启动mon。
systemctl start ceph-mon@`hostname` && systemctl enable ceph-mon@`hostname`
将密钥和配置文件拷贝至其他节点。
scp /tmp/ceph.mon.keyring ceph2:/tmp/ceph.mon.keyringscp /etc/ceph/* root@ceph2:/etc/ceph/scp /var/lib/ceph/bootstrap-osd/ceph.keyring root@ceph2:/var/lib/ceph/bootstrap-osd/scp /tmp/ceph.mon.keyring ceph3:/tmp/ceph.mon.keyringscp /etc/ceph/* root@ceph3:/etc/ceph/scp /var/lib/ceph/bootstrap-osd/ceph.keyring root@ceph3:/var/lib/ceph/bootstrap-osd/
在两个节点上修改ceph.mon.keyring属主和属组为ceph。
chown ceph.ceph /tmp/ceph.mon.keyring
获取monmap信息。
ceph mon getmap -o /tmp/ceph.mon.mapgot monmap epoch 1
在mon节点上进行mon初始化。
sudo -u ceph ceph-mon --mkfs -i `hostname` --monmap /tmp/ceph.mon.map --keyring /tmp/ceph.mon.keyringsudo -u ceph ceph-mon --mkfs -i `hostname` --monmap /tmp/ceph.mon.map --keyring /tmp/ceph.mon.keyring
在两个节点上启动mon。
systemctl start ceph-mon@`hostname` && systemctl enable ceph-mon@`hostname`
修改ceph.conf并重启ceph-mon(所有节点操作)。
vim /etc/ceph/ceph.confmon initial members = node1,node2,node3mon host = 192.168.2.16,192.168.2.17,192.168.2.18systemctl restart ceph-mon@`hostname`
ceph mon remove {mon-id}
Ceph可使用其ceph-volume工具来准备逻辑卷、磁盘或分区。ceph-volume工具会增加索引来创建OSD ID。
在node1执行。
ceph-volume lvm create --data /dev/sdb
上面的创建过程可以分为两个阶段(准备和激活):
ceph-volume lvm prepare --data /dev/sdb查看osd fsidceph-volume lvm listceph-volume lvm activate {ID} {FSID}
启动各个节点osd进程。
#node1systemctl restart ceph-osd@0systemctl enable ceph-osd@0 #node2systemctl restart ceph-osd@1systemctl enable ceph-osd@1#node3systemctl restart ceph-osd@2systemctl enable ceph-osd@2
在运行ceph-mon守护程序的每个节点上,还应该设置一个ceph-mgr守护程序。
所有mgr节点都要执行。
sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-`hostname -s`cd /var/lib/ceph/mgr/ceph-`hostname -s`
ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' > keyringchown ceph.ceph /var/lib/ceph/mgr/ceph-`hostname`/keyring
systemctl enable ceph-mgr@`hostname -s` && systemctl start ceph-mgr@`hostname -s`或者ceph-mgr -i `hostname`
最后查看ceph运行状态,我只添加了两个osd。
以上是中兴新支点系统离线安装ceph 16.2.10的详细内容。更多信息请关注PHP中文网其他相关文章!