PowerFlex:在不升級 DasCache 的情況下升級作業系統時,出現資料完整性問題
Summary: 執行作業系統升級,且未先升級 DasCache 套件時,可能會發生資料完整性問題。 Yum update 用於升級 SDS 和 DasCache 所在的作業系統,但是,在作業系統升級後並未升級 DasCache 套件。
Instructions
案例
- DasCache 已正確設定(使用 /dev/disk-by-id)。
- SDS 在使用 yum 命令升級作業系統之前處於維護模式。作業系統升級後,會退出 SDS 維護模式,不久之後,應用程式開始報告資料不一致 (DI)。
- 在此特定情況下,已升級兩個 SDS 作業系統,但是,單一 SDS 作業系統升級也可能觸發此問題。
注意:SDS 操作系統升級后,DasCache 服務無法啟動,由於某種原因(仍在調查中),SDS 服務在沒有 DasCache 的情況下成功啟動,儘管它應該使磁碟設備/SDS 失敗,並且服務應無法啟動以保護數據。
症狀
在作業系統升級之前,SDS DasCache 版本為:
fiop-1.5.14.rel-R3_9_Win_Linux.41_3.10.0_327.el7.x86_64.x86_6
SDS 進入維護模式以升級作業系統:
6457 2021-04-28 09:19:09.196 MDM_CLI_CONF_COMMAND_RECEIVED INFO Command enter_maintenance_mode received, User: 'admin'. [10252559] SDS: ID: 82c410860000000d;
SDS 作業系統從 RH 7.2 升級至 RH 7.6 是透過 yum update 執行:
Apr 28 10:28:16 redhat-cust-1 yum[351251]: Updated: libgcc-4.8.5-36.el7.x86_64 Apr 28 10:28:16 redhat-cust-1 yum[351251]: Updated: redhat-release-server-7.6-4.el7.x86_64 Apr 28 10:28:16 redhat-cust-1 yum[351251]: Installed: 1:grub2-common-2.02-0.76.el7.noarch Apr 28 10:28:16 redhat-cust-1 yum[351251]: Updated: setup-2.8.71-10.el7.noarch Apr 28 10:28:17 redhat-cust-1 yum[351251]: Updated: filesystem-3.2-25.el7.x86_64 Apr 28 10:28:17 redhat-cust-1 yum[351251]: Updated: 32:bind-license-9.9.4-72.el7.noarch Apr 28 10:28:18 redhat-cust-1 yum[351251]: Installed: 1:grub2-pc-modules-2.02-0.76.el7.noarch Apr 28 10:28:19 redhat-cust-1 yum[351251]: Updated: tzdata-2018e-3.el7.noarch Apr 28 10:28:19 redhat-cust-1 yum[351251]: Updated: kbd-misc-1.15.5-15.el7.noarch Apr 28 10:28:19 redhat-cust-1 yum[351251]: Updated: 1:quota-nls-4.01-17.el7.noarch Apr 28 10:28:19 redhat-cust-1 yum[351251]: Updated: 1:emacs-filesystem-24.3-22.el7.noarch Apr 28 10:28:20 redhat-cust-1 yum[351251]: Updated: ncurses-base-5.9-14.20130511.el7_4.noarch Apr 28 10:28:20 redhat-cust-1 yum[351251]: Updated: nss-softokn-freebl-3.36.0-5.el7_5.x86_64 Apr 28 10:28:24 redhat-cust-1 yum[351251]: Updated: glibc-common-2.17-260.el7.x86_64
SDS 伺服器已重新開機,但 DasCache 服務無法啟動:
Apr 28 10:47:04 [localhost] fio.init: Starting Fio devices: Failed Apr 28 10:47:04 [localhost] systemd: fio.service: main process exited, code=exited, status=4/NOPERMISSION Apr 28 10:47:04 [localhost] systemd: Failed to start Block Driver Interface to Flashsoft Cache. Apr 28 10:47:04 [localhost] systemd: Unit fio.service entered failed state. Apr 28 10:47:04 [localhost] systemd: fio.service failed.
[root@Node]# fscli -l Starting fio service failed
作業系統升級後,SDS DasCache 版本仍為相同版本,因為 DasCache 未升級:
fiop-1.5.14.rel-R3_9_Win_Linux.41_3.10.0_327.el7.x86_64.x86_6
注意:由於某些未知原因(仍在調查中),SDS 服務成功啟動,儘管它應該使 SDS/磁碟設備失敗。從這一點開始,一旦 SDS 退出維護模式,應報告 DI。
SDS 結束維護模式:
6507 2021-04-28 10:01:54.700 MDM_CLI_CONF_COMMAND_RECEIVED INFO Command exit_maintenance_mode received, User: 'admin'. [10303510] SDS: ID: 82c410860000000d; 6508 2021-04-28 10:01:54.740 CLI_COMMAND_SUCCEEDED INFO Command exit_maintenance_mode succeeded. [10303510] 6509 2021-04-28 10:04:00.111 SDS_MAINTENANCE_MODE_ENDED INFO SDS 10.1.150.50-RedHat (ID 82c410860000000d) has exited maintenance mode.
SDS 結束維護模式後不久,應用程式 (在此案例中為 VMware 資料存放區和 VM) 開始在 DI 上報告:
2021-04-29T04:12:37.697Z cpu12:982259)WARNING: Res3: 4232: Volume 5e6bb636-01b03ca0-5350-246e96905870 ("DS_SQL_PD2PB_01") might be damaged on the disk. Resource cluster metadata corruption has been detected.
影響
DI/DL
根本原因
當 DasCache 與 PowerFlex 搭配使用時,磁碟裝置會以多一層的 SDS 公開到 SDS,如此一來,SDS 的讀取/寫入就會寫入 DasCache,之後資料會排清到磁碟裝置。
根據設計,當 DasCache 服務無法啟動時,SDS 會使磁碟設備無法保護磁碟設備上的數據,這樣,SDS 將無法直接存取磁碟設備。
在這種情況下,SDS 作業系統已升級,但是 DasCache 套裝未升級,導致 SDS 服務成功啟動並略過 DasCache,一旦 SDS 直接從磁碟讀取/寫入資料,資料就會出現間隙,因為 DasCache 尚未將所有資料排清至磁碟裝置,最終導致 DI。
注意:SDS 服務可成功啟動的原因仍在調查中。
因應措施
如果 SDS 已退出維護模式,且 DasCache 服務處於故障狀態,則此問題沒有因應措施。
如果作業系統已升級且 SDS 仍處於維護模式,則有兩個選項可避免 DI:
-
- 從舊內核引導(在本例中為版本 3.10.0-327)
- 升級 DasCache 以符合核心版本,然後重新啟動 SDS 服務,如以下過程 KB 000195110 中所述
受影響的版本
所有 PowerFlex 版本
已修正問題的版本
不適用 - 仍在調查中