中興新支點作業系統基於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中文網其他相關文章!