7 自前一版本升級 #
本章說明將 SUSE Enterprise Storage 6 升級至版本 7 的步驟。
升級包括以下任務:
自 Ceph Nautilus 升級至 Octopus。
從透過 RPM 套件安裝和執行 Ceph 切換到在容器中執行。
完全移除 DeepSea 並以
ceph-salt
和 cephadm 取代。
本章中的升級資訊僅適用於自 DeepSea 升級至 cephadm。如果您要在 SUSE CaaS 平台上部署 SUSE Enterprise Storage,請不要嘗試遵循這些說明。
不支援從早於 6 的 SUSE Enterprise Storage 版本升級。您需要先升級至 SUSE Enterprise Storage 6 的最新版本,然後再依照本章所述的步驟操作。
7.1 升級前 #
開始升級之前,必須完成以下任務。在 SUSE Enterprise Storage 6 生命週期內可隨時執行這些操作。
必須在升級前執行從 FileStore 到 BlueStore 的 OSD 移轉,因為 FileStore 在 SUSE Enterprise Storage 7 中不受支援。如需 BlueStore 以及如何從 FileStore 移轉的更多詳細資料,請參閱 https://documentation.suse.com/ses/6/html/ses-all/cha-ceph-upgrade.html#filestore2bluestore。
如果您執行的是仍在使用
ceph-disk
OSD 的舊叢集,則需要在升級前切換到ceph-volume
。如需更多詳細資料,請參閱https://documentation.suse.com/ses/6/html/ses-all/cha-ceph-upgrade.html#upgrade-osd-deployment。
7.1.1 需考量的要點 #
升級前,請務必閱讀以下章節,確定您瞭解所有需要執行的任務。
閱讀版本說明 - 版本說明提供了有關自 SUSE Enterprise Storage 上一個版本發行後所進行的變更的其他資訊。檢查版本說明以瞭解:
您的硬體是否有特殊注意事項。
所用的任何軟體套件是否已發生重大變更。
是否需要對您的安裝施行特殊預防措施。
版本說明還會提供無法及時編入手冊的資訊。它們還包含有關已知問題的說明。
您可以在 https://www.suse.com/releasenotes/ 上找到線上 SES 7 版本說明。
此外,安裝 SES 7 儲存庫中的 release-notes-ses 套件之後,您可在
/usr/share/doc/release-notes
目錄中找到本地版本說明,或在 https://www.suse.com/releasenotes/ 上找到線上版本說明。閱讀第 5 章 「使用 cephadm 進行部署」,熟悉
ceph-salt
和 Ceph orchestrator,特別需要瞭解有關服務規格的資訊。升級叢集可能需要花很長時間 - 所需時間大約為升級一部機器的時間乘以叢集節點數。
您需要先升級 Salt Master,然後以
ceph-salt
和 cephadm 取代 DeepSea。至少要等到所有 Ceph 管理員都升級後,您才能開始使用 cephadm orchestrator 模組。從使用 Nautilus RPM 到 Octopus 容器的升級需要一步完成。這表示您需要一次升級整個節點,而不是一次只升級一個精靈。
核心服務 (MON、MGR、OSD) 的升級是循序進行的。每個服務在升級期間都可用。升級核心服務後,需要重新部署閘道服務 (中繼資料伺服器、物件閘道、NFS Ganesha、iSCSI 閘道)。下面每個服務都有特定的停機時間:
- 重要
中繼資料伺服器和物件閘道的停機時間自節點從 SUSE Linux Enterprise Server 15 SP1 升級至 SUSE Linux Enterprise Server 15 SP2 開始,直至升級程序結束時重新部署這些服務為止。如果這些服務與 MON、MGR 或 OSD 併置,則需特別考慮到停機時間,因為在這種情況下,它們可能會在叢集升級的整個期間處於停機狀態。如果這對您是個問題,請考慮在升級之前於其他節點上單獨部署這些服務,以儘可能縮短它們的停機時間。如此,停機時間便將是閘道節點升級的持續時間,而不是整個叢集升級的持續時間。
NFS Ganesha 和 iSCSI 閘道僅在從 SUSE Linux Enterprise Server 15 SP1 升級至 SUSE Linux Enterprise Server 15 SP2 期間將節點重新開機時處於停機狀態,並會在以容器化模式重新部署每個服務時再次短暫處於停機狀態。
7.1.2 備份叢集組態和資料 #
強烈建議您在開始升級至 SUSE Enterprise Storage 7 之前,備份所有叢集組態和資料。如需如何備份所有資料的說明,請參閱 https://documentation.suse.com/ses/6/html/ses-all/cha-deployment-backup.html。
7.1.3 確認先前升級的步驟 #
如果您先前是從版本 5 升級的,請確認升級至版本 6 的程序已成功完成:
檢查 /srv/salt/ceph/configuration/files/ceph.conf.import
檔案是否存在。
此檔案是在從 SUSE Enterprise Storage 5 升級至 6 期間由 engulf 程序建立的。configuration_init: default-import
選項在 /srv/pillar/ceph/proposals/config/stack/default/ceph/cluster.yml
中設定。
如果 configuration_init
仍設為 default-import
,則表示叢集是使用 ceph.conf.import
而非 DeepSea 的預設 ceph.conf
做為其組態檔案的,後者是透過對 /srv/salt/ceph/configuration/files/ceph.conf.d/
中的檔案進行編譯而產生的。
因此,您需要檢查 ceph.conf.import
中是否有任何自訂組態,並視需要將相應組態移至 /srv/salt/ceph/configuration/files/ceph.conf.d/
中的其中一個檔案中。
然後從 /srv/pillar/ceph/proposals/config/stack/default/ceph/cluster.yml
中移除 configuration_init: default-import
行。
7.1.4 更新叢集節點並確認叢集狀況 #
確認 SUSE Linux Enterprise Server 15 SP1和 SUSE Enterprise Storage 6 的所有最新更新是否已套用至所有叢集節點:
root #
zypper refresh && zypper patch
套用更新後,請檢查叢集狀況:
cephuser@adm >
ceph -s
7.1.5 確認對軟體儲存庫和容器影像的存取權 #
確認每個叢集節點是否擁有對 SUSE Linux Enterprise Server 15 SP2 和 SUSE Enterprise Storage 7 軟體儲存庫以及容器影像登錄的存取權。
7.1.5.1 軟體儲存庫 #
如果所有節點均已在 SCC 中註冊,您便可以使用 zypper migration
指令進行升級。如需更多詳細資料,請參閱 https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-upgrade-online.html#sec-upgrade-online-zypper。
如果節點未在 SCC 中註冊,請停用所有現有軟體儲存庫,並為下面每個延伸新增 Pool
和 Updates
儲存庫:
SLE-Product-SLES/15-SP2
SLE-Module-Basesystem/15-SP2
SLE-Module-Server-Applications/15-SP2
SUSE-Enterprise-Storage-7
7.1.5.2 容器影像 #
所有叢集節點都需要存取容器影像登錄。在大多數情況下,您將使用 registry.suse.com
上的公用 SUSE 登錄。您需要以下影像:
registry.suse.com/ses/7/ceph/ceph
registry.suse.com/ses/7/ceph/grafana
registry.suse.com/caasp/v4.5/prometheus-server
registry.suse.com/caasp/v4.5/prometheus-node-exporter
registry.suse.com/caasp/v4.5/prometheus-alertmanager
或者,例如對於實體隔離部署,請設定本地登錄並確認您是否有一組正確的容器影像可用。如需設定本地容器影像登錄的更多詳細資料,請參閱第 5.3.2.11 節 「設定容器登錄」。
7.2 升級 Salt Master #
以下程序說明了升級 Salt Master 的過程:
將基礎作業系統升級至 SUSE Linux Enterprise Server 15 SP2:
對於所有節點均已在 SCC 中註冊的叢集,請執行
zypper migration
。對於節點具有手動指定軟體儲存庫的叢集,請執行
zypper dup
,然後再執行reboot
。
停用 DeepSea 階段以避免意外使用。將以下內容新增至
/srv/pillar/ceph/stack/global.yml
:stage_prep: disabled stage_discovery: disabled stage_configure: disabled stage_deploy: disabled stage_services: disabled stage_remove: disabled
儲存檔案並套用變更:
root@master #
salt '*' saltutil.pillar_refresh如果您未使用
registry.suse.com
中的容器影像,而是使用本地設定的登錄,請編輯/srv/pillar/ceph/stack/global.yml
以告知 DeepSea 要使用哪個 Ceph 容器影像和登錄。例如,若要使用192.168.121.1:5000/my/ceph/image
,請新增下面幾行:ses7_container_image: 192.168.121.1:5000/my/ceph/image ses7_container_registries: - location: 192.168.121.1:5000
儲存檔案並套用變更:
root@master #
salt '*' saltutil.refresh_pillar同化現有組態:
cephuser@adm >
ceph config assimilate-conf -i /etc/ceph/ceph.conf確認升級狀態。您的輸出可能因叢集組態而異:
root@master #
salt-run upgrade.status The newest installed software versions are: ceph: ceph version 15.2.2-60-gf5864377ab (f5864377abb5549f843784c93577980aa264b9bc) octopus (stable) os: SUSE Linux Enterprise Server 15 SP2 Nodes running these software versions: admin.ceph (assigned roles: master, prometheus, grafana) Nodes running older software versions must be upgraded in the following order: 1: mon1.ceph (assigned roles: admin, mon, mgr) 2: mon2.ceph (assigned roles: admin, mon, mgr) 3: mon3.ceph (assigned roles: admin, mon, mgr) 4: data4.ceph (assigned roles: storage, mds) 5: data1.ceph (assigned roles: storage) 6: data2.ceph (assigned roles: storage) 7: data3.ceph (assigned roles: storage) 8: data5.ceph (assigned roles: storage, rgw)
7.3 升級 MON、MGR 和 OSD 節點 #
每次升級一個 Ceph 監控程式、Ceph 管理員和 OSD 節點。對於每個服務,請執行以下步驟:
如果您要升級的是 OSD 節點,請透過執行以下指令避免在升級期間將 OSD 標示為
out
:cephuser@adm >
ceph osd add-noout SHORT_NODE_NAME以
ceph osd tree
指令輸出中顯示之節點的簡短名稱取代 SHORT_NODE_NAME。在以下輸入中,主機簡短名稱為ses-min1
和ses-min2
root@master #
ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.60405 root default -11 0.11691 host ses-min1 4 hdd 0.01949 osd.4 up 1.00000 1.00000 9 hdd 0.01949 osd.9 up 1.00000 1.00000 13 hdd 0.01949 osd.13 up 1.00000 1.00000 [...] -5 0.11691 host ses-min2 2 hdd 0.01949 osd.2 up 1.00000 1.00000 5 hdd 0.01949 osd.5 up 1.00000 1.00000 [...]將基礎作業系統升級至 SUSE Linux Enterprise Server 15 SP2:
如果叢集的節點均已在 SCC 中註冊,請執行
zypper migration
。如果叢集的節點具有手動指定的軟體儲存庫,請執行
zypper dup
,然後再執行reboot
。
將節點重新開機後,透過在 Salt Master 上執行以下指令,將該節點上所有現有 MON、MGR 和 OSD 精靈進行容器化:
root@master #
salt MINION_ID state.apply ceph.upgrade.ses7.adopt以您要升級的 Minion 的 ID 取代 MINION_ID。您可以透過在 Salt Master 上執行
salt-key -L
指令來獲取 Minion ID 清單。提示若要查看採用的狀態和進度,請檢查 Ceph Dashboard 或在 Salt Master 上執行下面其中一個指令:
root@master #
ceph statusroot@master #
ceph versionsroot@master #
salt-run upgrade.status成功完成採用後,如果您要升級的節點是 OSD 節點,請取消設定
noout
旗標:cephuser@adm >
ceph osd rm-noout SHORT_NODE_NAME
7.4 升級閘道節點 #
接下來,請升級各個閘道節點 (中繼資料伺服器、物件閘道、NFS Ganesha 或 iSCSI 閘道)。針對每個節點將基礎作業系統升級至 SUSE Linux Enterprise Server 15 SP2:
如果叢集的節點均已在 SUSE Customer Center 中註冊,請執行
zypper migration
指令。如果叢集的節點具有手動指定的軟體儲存庫,請執行
zypper dup
,然後再執行reboot
指令。
此步驟同樣適用於屬於叢集但尚未指定任何角色的任何節點 (如有疑問,請查看透過 salt-key -L
指令提供的 Salt Master 上的主機清單,並將其與 salt-run upgrade.status
指令的輸出進行比較)。
升級叢集中所有節點上的作業系統後,下一步是安裝 ceph-salt 套件並套用叢集組態。升級程序結束時,會以容器化模式重新部署實際的閘道服務。
從升級至 SUSE Linux Enterprise Server 15 SP2 開始,到升級程序結束時重新部署中繼資料伺服器和物件閘道服務為止,這段期間這些服務將不可用。
7.5 安裝 ceph-salt
並套用叢集組態 #
在開始安裝 ceph-salt
並套用叢集組態之前,請先透過執行以下指令查看叢集和升級狀態:
root@master #
ceph statusroot@master #
ceph versionsroot@master #
salt-run upgrade.status
移除 DeepSea 建立的
rbd_exporter
和rgw_exporter
排程工作 (cron job)。在 Salt Master 上,以root
身分執行crontab -e
指令以編輯 crontab。刪除下列項目 (如果存在):# SALT_CRON_IDENTIFIER:deepsea rbd_exporter cron job */5 * * * * /var/lib/prometheus/node-exporter/rbd.sh > \ /var/lib/prometheus/node-exporter/rbd.prom 2> /dev/null # SALT_CRON_IDENTIFIER:Prometheus rgw_exporter cron job */5 * * * * /var/lib/prometheus/node-exporter/ceph_rgw.py > \ /var/lib/prometheus/node-exporter/ceph_rgw.prom 2> /dev/null
透過執行以下指令從 DeepSea 輸出叢集組態:
root@master #
salt-run upgrade.ceph_salt_config > ceph-salt-config.jsonroot@master #
salt-run upgrade.generate_service_specs > specs.yaml解除安裝 DeepSea,並在 Salt Master 上安裝
ceph-salt
:root@master #
zypper remove 'deepsea*'root@master #
zypper install ceph-salt重新啟動 Salt Master 並同步 Salt 模組:
root@master #
systemctl restart salt-master.serviceroot@master #
salt \* saltutil.sync_all將 DeepSea 的叢集組態輸入至
ceph-salt
:root@master #
ceph-salt import ceph-salt-config.json為叢集節點通訊產生 SSH 金鑰:
root@master #
ceph-salt config /ssh generate提示確認是否已從 DeepSea 輸入叢集組態,並指定可能缺失的選項:
root@master #
ceph-salt config ls如需叢集組態的完整描述,請參閱第 5.3.2 節 「設定叢集內容」。
套用組態並啟用 cephadm:
root@master #
ceph-salt apply如果您需要提供本地容器登錄 URL 和存取身分證明,請依據第 5.3.2.11 節 「設定容器登錄」中所述的步驟進行操作。
如果您未使用
registry.suse.com
中的容器影像,而是使用本地設定的登錄,請執行以下指令以告知 Ceph 要使用哪個容器影像root@master #
ceph config set global container_image IMAGE_NAME例如:
root@master #
ceph config set global container_image 192.168.121.1:5000/my/ceph/image停止並停用 SUSE Enterprise Storage 6
ceph-crash
精靈。系統將於稍後自動啟動這些精靈的新容器化格式。root@master #
salt '*' service.stop ceph-crashroot@master #
salt '*' service.disable ceph-crash
7.6 升級並採用監控堆疊 #
以下程序會採用監控堆疊的所有元件 (如需更多詳細資料,請參閱第 16 章 「監控和警示」)。
暫停 orchestrator:
cephuser@adm >
ceph orch pause在執行 Prometheus、Grafana 和警示管理員 (預設為 Salt Master) 的節點上,執行以下指令:
cephuser@adm >
cephadm adopt --style=legacy --name prometheus.$(hostname)cephuser@adm >
cephadm adopt --style=legacy --name alertmanager.$(hostname)cephuser@adm >
cephadm adopt --style=legacy --name grafana.$(hostname)提示如果您未執行預設容器影像登錄
registry.suse.com
,則需要指定要使用的影像,例如:cephuser@adm >
cephadm --image 192.168.121.1:5000/caasp/v4.5/prometheus-server:2.18.0 \ adopt --style=legacy --name prometheus.$(hostname)cephuser@adm >
cephadm --image 192.168.121.1:5000/caasp/v4.5/prometheus-alertmanager:0.16.2 \ adopt --style=legacy --name alertmanager.$(hostname)cephuser@adm >
cephadm --image 192.168.121.1:5000/ses/7/ceph/grafana:7.0.3 \ adopt --style=legacy --name grafana.$(hostname)如需使用自訂或本地容器影像的更多詳細資料,請參閱第 16.1 節 「設定自訂或本地影像」。
移除 Node-Exporter。它不需要進行移轉,將在套用
specs.yaml
檔案時做為容器重新安裝。tux >
sudo
zypper rm golang-github-prometheus-node_exporter套用您先前從 DeepSea 輸出的服務規格:
cephuser@adm >
ceph orch apply -i specs.yaml繼續 orchestrator:
cephuser@adm >
ceph orch resume
7.7 重新部署閘道服務 #
7.7.1 升級物件閘道 #
在 SUSE Enterprise Storage 7 中,物件閘道永遠設定有一個領域,以為未來使用多站台提供支援 (如需更多詳細資料,請參閱第 21.13 節 「多站台物件閘道」)。如果您在 SUSE Enterprise Storage 6 中使用了單站台物件閘道組態,請執行以下步驟來新增領域。如果您實際上並不打算使用多站台功能,則可以為領域、區域群組和區域名稱使用 default
值。
建立新領域:
cephuser@adm >
radosgw-admin realm create --rgw-realm=REALM_NAME --default(選擇性) 重新命名預設區域和區域群組。
cephuser@adm >
radosgw-admin zonegroup rename \ --rgw-zonegroup default \ --zonegroup-new-name=ZONEGROUP_NAMEcephuser@adm >
radosgw-admin zone rename \ --rgw-zone default \ --zone-new-name ZONE_NAME \ --rgw-zonegroup=ZONEGROUP_NAME設定主區域群組:
cephuser@adm >
radosgw-admin zonegroup modify \ --rgw-realm=REALM_NAME \ --rgw-zonegroup=ZONEGROUP_NAME \ --endpoints http://RGW.EXAMPLE.COM:80 \ --master --default設定主區域。為此,您將需要啟用了
system
旗標之物件閘道使用者的 ACCESS_KEY 和 SECRET_KEY。這通常是admin
使用者。若要獲取 ACCESS_KEY 和 SECRET_KEY,請執行radosgw-admin user info --uid admin
。cephuser@adm >
radosgw-admin zone modify \ --rgw-realm=REALM_NAME \ --rgw-zonegroup=ZONEGROUP_NAME \ --rgw-zone=ZONE_NAME \ --endpoints http://RGW.EXAMPLE.COM:80 \ --access-key=ACCESS_KEY \ --secret=SECRET_KEY \ --master --default提交更新後的組態:
cephuser@adm >
radosgw-admin period update --commit
若要將物件閘道服務容器化,請依據第 5.4.3.4 節 「部署物件閘道」中所述建立其規格檔案,然後套用該檔案。
cephuser@adm >
ceph orch apply -i RGW.yml
7.7.2 升級 NFS Ganesha #
下面說明如何將執行 Ceph Nautilus 的現有 NFS Ganesha 服務移轉至執行 Ceph Octopus 的 NFS Ganesha 容器。
以下文件要求您已成功升級了核心 Ceph 服務。
NFS Ganesha 會在 RADOS 池中儲存額外的精靈特定組態並輸出組態。所設定的 RADOS 池可在 ganesha.conf
檔案中之 RADOS_URLS
區塊的 watch_url
行上找到。依預設,此池將重新命名為 ganesha_config
在嘗試任何移轉之前,強烈建議您複製 RADOS 池中的輸出和精靈組態物件。若要尋找所設定的 RADOS 池,請執行以下指令:
cephuser@adm >
grep -A5 RADOS_URLS /etc/ganesha/ganesha.conf
列出 RADOS 池的內容:
cephuser@adm >
rados --pool ganesha_config --namespace ganesha ls | sort
conf-node3
export-1
export-2
export-3
export-4
複製 RADOS 物件:
cephuser@adm >
RADOS_ARGS="--pool ganesha_config --namespace ganesha"cephuser@adm >
OBJS=$(rados $RADOS_ARGS ls)cephuser@adm >
for obj in $OBJS; do rados $RADOS_ARGS get $obj $obj; donecephuser@adm >
ls -lah total 40K drwxr-xr-x 2 root root 4.0K Sep 8 03:30 . drwx------ 9 root root 4.0K Sep 8 03:23 .. -rw-r--r-- 1 root root 90 Sep 8 03:30 conf-node2 -rw-r--r-- 1 root root 90 Sep 8 03:30 conf-node3 -rw-r--r-- 1 root root 350 Sep 8 03:30 export-1 -rw-r--r-- 1 root root 350 Sep 8 03:30 export-2 -rw-r--r-- 1 root root 350 Sep 8 03:30 export-3 -rw-r--r-- 1 root root 358 Sep 8 03:30 export-4
基於每個節點,停止現有的 NFS Ganesha 服務,然後以 cephadm 管理的容器取代。
停止並停用現有的 NFS Ganesha 服務:
cephuser@adm >
systemctl stop nfs-ganeshacephuser@adm >
systemctl disable nfs-ganesha停止現有的 NFS Ganesha 服務之後,可以使用 cephadm 在容器中部署一個新的服務。為此,您需要建立一個服務規格,其中包含將用於識別此新 NFS 叢集的
service_id
、在放置規格中做為主機列出的所要移轉節點的主機名稱,以及包含所設定 NFS 輸出物件的 RADOS 池和名稱空間。例如:service_type: nfs service_id: SERVICE_ID placement: hosts: - node2 pool: ganesha_config namespace: ganesha
如需建立放置規格的詳細資訊,請參閱第 5.4.2 節 「服務和放置規格」。
套用放置規格:
cephuser@adm >
ceph orch apply -i FILENAME.yaml確認主機上是否執行有 NFS Ganesha 精靈:
cephuser@adm >
ceph orch ps --daemon_type nfs NAME HOST STATUS REFRESHED AGE VERSION IMAGE NAME IMAGE ID CONTAINER ID nfs.foo.node2 node2 running (26m) 8m ago 27m 3.3 registry.suse.com/ses/7/ceph/ceph:latest 8b4be7c42abd c8b75d7c8f0d針對每個 NFS Ganesha 節點重複上述步驟。您不需要為每個節點建立單獨的服務規格。您只需將每個節點的主機名稱新增至現有 NFS 服務規格中,然後重新套用該規格。
現有輸出可以透過兩種方法進行移轉:
使用 Ceph Dashboard 手動重新建立或重新指定。
手動將每個精靈 RADOS 物件的內容複製到新建立的 NFS Ganesha 通用組態中。
確定每個精靈 RADOS 物件的清單:
cephuser@adm >
RADOS_ARGS="--pool ganesha_config --namespace ganesha"cephuser@adm >
DAEMON_OBJS=$(rados $RADOS_ARGS ls | grep 'conf-')複製每個精靈的 RADOS 物件:
cephuser@adm >
for obj in $DAEMON_OBJS; do rados $RADOS_ARGS get $obj $obj; donecephuser@adm >
ls -lah total 20K drwxr-xr-x 2 root root 4.0K Sep 8 16:51 . drwxr-xr-x 3 root root 4.0K Sep 8 16:47 .. -rw-r--r-- 1 root root 90 Sep 8 16:51 conf-nfs.SERVICE_ID -rw-r--r-- 1 root root 90 Sep 8 16:51 conf-node2 -rw-r--r-- 1 root root 90 Sep 8 16:51 conf-node3排序並合併到單個輸出清單中:
cephuser@adm >
cat conf-* | sort -u > conf-nfs.SERVICE_IDcephuser@adm >
cat conf-nfs.foo %url "rados://ganesha_config/ganesha/export-1" %url "rados://ganesha_config/ganesha/export-2" %url "rados://ganesha_config/ganesha/export-3" %url "rados://ganesha_config/ganesha/export-4"寫入新的 NFS Ganesha 通用組態檔案:
cephuser@adm >
rados $RADOS_ARGS put conf-nfs.SERVICE_ID conf-nfs.SERVICE_ID通知 NFS Ganesha 精靈:
cephuser@adm >
rados $RADOS_ARGS notify conf-nfs.SERVICE_ID conf-nfs.SERVICE_ID注意此動作將導致精靈重新載入組態。
成功移轉服務後,可以移除基於 Nautilus 的 NFS Ganesha 服務。
移除 NFS Ganesha:
cephuser@adm >
zypper rm nfs-ganesha Reading installed packages... Resolving package dependencies... The following 5 packages are going to be REMOVED: nfs-ganesha nfs-ganesha-ceph nfs-ganesha-rados-grace nfs-ganesha-rados-urls nfs-ganesha-rgw 5 packages to remove. After the operation, 308.9 KiB will be freed. Continue? [y/n/v/...? shows all options] (y): y (1/5) Removing nfs-ganesha-ceph-2.8.3+git0.d504d374e-3.3.1.x86_64 .................................................................................................................................................................................................................................................................................................[done] (2/5) Removing nfs-ganesha-rgw-2.8.3+git0.d504d374e-3.3.1.x86_64 ..................................................................................................................................................................................................................................................................................................[done] (3/5) Removing nfs-ganesha-rados-urls-2.8.3+git0.d504d374e-3.3.1.x86_64 ...........................................................................................................................................................................................................................................................................................[done] (4/5) Removing nfs-ganesha-rados-grace-2.8.3+git0.d504d374e-3.3.1.x86_64 ..........................................................................................................................................................................................................................................................................................[done] (5/5) Removing nfs-ganesha-2.8.3+git0.d504d374e-3.3.1.x86_64 ......................................................................................................................................................................................................................................................................................................[done] Additional rpm output: warning: /etc/ganesha/ganesha.conf saved as /etc/ganesha/ganesha.conf.rpmsave從 Ceph Dashboard 中移除舊的叢集設定:
cephuser@adm >
ceph dashboard reset-ganesha-clusters-rados-pool-namespace
7.7.3 升級中繼資料伺服器 #
與 MON、MGR 和 OSD 不同,無法就地採用中繼資料伺服器。您需要使用 Ceph orchestrator 在容器中進行重新部署。
執行
ceph fs ls
指令以獲取您檔案系統的名稱,例如:cephuser@adm >
ceph fs ls name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]透過使用檔案系統名稱做為
service_id
,並指定將會執行 MDS 精靈的主機,依據第 5.4.3.3 節 「部署中繼資料伺服器」中所述建立新服務規格檔案mds.yml
。例如:service_type: mds service_id: cephfs placement: hosts: - ses-min1 - ses-min2 - ses-min3
執行
ceph orch apply -i mds.yml
指令以套用服務規格並啟動 MDS 精靈。
7.7.4 升級 iSCSI 閘道 #
若要升級 iSCSI 閘道,您需要使用 Ceph orchestrator 在容器中重新部署該閘道。如果您有多個 iSCSI 閘道,則需要逐一重新部署,以減少服務停機時間。
停止並停用每個 iSCSI 閘道節點上的現有 iSCSI 精靈:
tux >
sudo
systemctl stop rbd-target-gwtux >
sudo
systemctl disable rbd-target-gwtux >
sudo
systemctl stop rbd-target-apitux >
sudo
systemctl disable rbd-target-api依據第 5.4.3.5 節 「部署 iSCSI 閘道」中所述,為 iSCSI 閘道建立服務規格。為此,您需要現有
/etc/ceph/iscsi-gateway.cfg
檔案中的pool
、trusted_ip_list
和api_*
設定。如果您啟用了 SSL 支援 (api_secure = true
),則還需要 SSL 證書 (/etc/ceph/iscsi-gateway.crt
) 和金鑰 (/etc/ceph/iscsi-gateway.key
)。例如,如果
/etc/ceph/iscsi-gateway.cfg
包含以下設定:[config] cluster_client_name = client.igw.ses-min5 pool = iscsi-images trusted_ip_list = 10.20.179.203,10.20.179.201,10.20.179.205,10.20.179.202 api_port = 5000 api_user = admin api_password = admin api_secure = true
則您需要建立以下服務規格檔案
iscsi.yml
:service_type: iscsi service_id: igw placement: hosts: - ses-min5 spec: pool: iscsi-images trusted_ip_list: "10.20.179.203,10.20.179.201,10.20.179.205,10.20.179.202" api_port: 5000 api_user: admin api_password: admin api_secure: true ssl_cert: | -----BEGIN CERTIFICATE----- MIIDtTCCAp2gAwIBAgIYMC4xNzc1NDQxNjEzMzc2MjMyXzxvQ7EcMA0GCSqGSIb3 DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARVdGFoMRcwFQYDVQQHDA5T [...] -----END CERTIFICATE----- ssl_key: | -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC5jdYbjtNTAKW4 /CwQr/7wOiLGzVxChn3mmCIF3DwbL/qvTFTX2d8bDf6LjGwLYloXHscRfxszX/4h [...] -----END PRIVATE KEY-----
注意pool
、trusted_ip_list
、api_port
、api_user
、api_password
、api_secure
設定與/etc/ceph/iscsi-gateway.cfg
檔案中的相應設定相同。可從現有 SSL 證書和金鑰檔案中複製ssl_cert
和ssl_key
值。確認這些值是否縮排正確,並且ssl_cert:
和ssl_key:
行的末尾是否顯示有縱線字元|
(請參閱上述iscsi.yml
檔案的內容)。執行
ceph orch apply -i iscsi.yml
指令以套用服務規格並啟動 iSCSI 閘道精靈。從每個現有 iSCSI 閘道節點中移除舊的 ceph-iscsi 套件:
cephuser@adm >
zypper rm -u ceph-iscsi
7.8 升級後清理 #
升級後,請執行以下清理步驟:
透過檢查目前的 Ceph 版本,確認叢集是否已成功升級:
cephuser@adm >
ceph versions確定沒有舊的 OSD 加入叢集:
cephuser@adm >
ceph osd require-osd-release octopus啟用自動調整器模組:
cephuser@adm >
ceph mgr module enable pg_autoscaler重要依預設,在 SUSE Enterprise Storage 6 中,池的
pg_autoscale_mode
設定為warn
。這會導致在 PG 數量未達到最佳時出現警告訊息,但實際上並未發生自動調整。在 SUSE Enterprise Storage 7 中,新池的pg_autoscale_mode
選項預設設定為on
,因此實際上會自動調整 PG。而升級程序並不會自動變更現有池的pg_autoscale_mode
。如果您要將其變更為on
以充分利用自動調整器的功能,請參閱第 17.4.12 節 「啟用 PG 自動調整器」中的說明。如需更多詳細資料,請參閱第 17.4.12 節 「啟用 PG 自動調整器」。
阻止 Luminous 以下版本的用戶端:
cephuser@adm >
ceph osd set-require-min-compat-client luminous啟用平衡器模組:
cephuser@adm >
ceph balancer mode upmapcephuser@adm >
ceph balancer on如需更多詳細資料,請參閱第 29.1 節 「平衡器」。
(選擇性) 啟用遙測模組:
cephuser@adm >
ceph mgr module enable telemetrycephuser@adm >
ceph telemetry on如需更多詳細資料,請參閱第 29.2 節 「啟用遙測模組」。