【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

JUNIOR_MU發表於2024-04-12

Reduced Downtime Upgrade (RDU) 減少停機時間更新是用於vCenter Server更新升級的一種新的方式,顧名思義,主要目的就是為了減少在vCenter Server更新升級過程中的維護時間,經過測試驗證,最快能夠在幾分鐘之內完成對vCenter Server的更新升級(取決於環境)。

我之前在另外一篇文章中(更新VCSA補丁到8.0 U2,一直卡在93%,最後提示“Failed to perform cleanup”。)提到過這個功能,儘管VMware 知識庫(KB 92659)已經把這個說的很明白了,但我還是決定再寫一篇文章來介紹這個功能,也算是對RDU的一些個人理解吧(網上關於這個功能的中文介紹較少)。

RDU使用基於遷移的方法將一個vCenter Server更新升級到一個新的vCenter Server,這與我們使用vCenter ISO安裝映象中的升級(6.7->7.0 或7.0 ->8.0)方案很相似,但不完全一樣。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

我們在使用vCenter ISO跨版本升級的時候,會部署一個新的vCenter Server,在配置過程中勾選將所有vCenter Server上面的資料、日誌及配置檔案等複製到新的vCenter中,以此來實現主要版本的升級。在這個升級的過程中,我們的現有vCenter不得不停止服務以完成對其配置檔案的複製等操作,這個期間vCenter服務會變成不可用狀態,並且可能持續很長一段時間(根據配置資料的大小)。而RDU功能與之有些不同,在使用RDU功能進行資料及配置檔案的複製過程中,現有的vCenter Server將保持可用狀態,使用者及管理員可以正常使用vCenter,在RDU完成複製以後,只需要找一個視窗期點選完成對新vCenter和舊vCenter的切換即可,整個切換期間可能只有很少量的資料進行同步,所以可以控制到很短的時間(最快可能幾分鐘)。

VMware 根據 vCenter ISO進行跨版本升級的工作原理髮布了RDU功能,用於實現對vCenter Server的常規補丁升級。以往,常規補丁升級方式需要將 vCenter ISO 掛載到 vCenter Server 虛擬機器的 CD-ROM 裝置上,然後再跳轉到VAMI管理後臺,使用“更新”工作流完成對vCenter的升級,或者使用software-packages命令列方式。這種升級方式同樣需要停止現有vCenter服務,並且可能持續很長時間。使用RDU,我們只需要將vCenter ISO掛載後,在vSphere Client介面即可對vCenter完成更新,這個兩項工作可以在同一介面完成,不需要再進行跳轉了。

參考VMware 知識庫文章,RDU支援以下源vCenter更新升級到目標vCenter版本:

源vCenter 目標vCenter
8.0 GA 8.0 U2 或之後版本
8.0 U1 8.0 U2 或之後版本
8.0 P02 8.0 U2 或之後版本
8.0 U2 8.0 U2 或之後版本

注意,這裡說明一下,根據上表以及知識庫中的說明,使用RDU升級分為兩類,一類是vCenter 8.0 U2之前的版本升級的8.0 U2,另一類是從vCenter 8.0 U2升級到之後的版本,我詳細說一下這兩者的區別。

vCenter 8.0 U2這個版本是一個分水嶺,使用RDU工作流需要先升級vCenter Life-cycle Manger外掛版本(注意,這裡說的是外掛版本,並不是vCenter的版本。也不是vSphere Lifecycle Manager)。

如果你當前環境是vCenter 8.0 U2之前的版本,如果要使用RDU工作流,只能使用VAMI裡面配置的vCenter 更新儲存庫,就是下面這個地方,並在第三步升級vCenter Life-cycle Manger外掛版本後再重新啟動工作流使用CD-ROM掛載的映象進行後續步驟更新。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

vCenter 8.0 U2之前版本的更新源只能從更新儲存庫獲取,上面預設的更新儲存庫是https://vapp-updates.vmware.com/vai-catalog/valm/vmw/8d167796-34d5-4899-be0a-6daade4005a3/8.0.0.10000.latest/(版本不同地址不一樣),如果你的vCenter Server能夠連線網際網路則還好,可以直接使用官方的預設更新儲存庫,如果不能聯網,那就還需要在本地配置離線更新儲存庫,並在VAMI下圖中的地方手動指定,整個過程非常麻煩。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

如果你當前環境是vCenter 8.0 U2及之後的版本,那麼更新源支援直接從vCenter 虛擬機器的CD-ROM光碟機裝置掛載的vCenter ISO檔案上獲取(因為vCenter Life-cycle Manger外掛已經是vCenter 8.0 U2或之後的版本了)。如下圖所示,我們只需要掛載vCenter ISO檔案到vCenter Server虛擬機器的CD-ROM光碟機,然後在RDU升級介面點選檢查即可直接進行選擇了。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

注意,不管是vCenter 8.0 U2之前還是之後的版本,使用RDU更新工作流,掛載到vCenter 虛擬機器CD-ROM光碟機的vCenter ISO檔案不是我們常規補丁升級的ISO包(檔案中帶patch),而是完整的vCenter ISO安裝包。

綜上所述,當前環境是vCenter 8.0 U2之前的版本,需要透過官方更新儲存庫或自定義離線更新儲存庫,在RDU更新工作流第三步將vCenter Life-cycle Manager 外掛更新到vCenter 8.0 U2或之後的版本後,再透過vCenter 虛擬機器CD-ROM掛載的vCenter ISO映象進行後續更新;當前環境是vCenter 8.0 U2及之後的版本,那麼可以直接使用vCenter 虛擬機器CD-ROM掛載的vCenter ISO映象進行RDU工作流更新。

所以,如果當前環境是vCenter 8.0 U2之前的版本,建議還是使用以前的常規補丁升級方式升級到vCenter 8.0 U2或之後版本(大多數vCenter環境不能連線網際網路,而且配置離線更新儲存庫非常麻煩,並且有bug,看下面),如果是vCenter 8.0 U2及之後版本那可以選擇使用RDU工作流進行更新升級。

下面演示一下上面說的兩種場景,vCenter 8.0 U2之前的版本升級到vCenter 8.0 U2或之後版本 vCenter 8.0 U2及之後版本升級到更新的版本

一、vCenter 8.0 升級到 vCenter 8.0 U2a

我這邊準備了vCenter 8.0 (內部版本號20519528) 環境,這個版本是vCenter初始釋出的8.0 GA正式版本,關於vCenter Server 產品版本和內部版本號的對應關係可以看我的另一篇文章(VMware by Broadcom 產品版本和內部版本號)。

由於大多數vCenter環境都是不能連線網際網路的,所以,在使用RDU工作流之前,我們需要參考VMware vSphere 文章“配置基於 URL 的修補”配置離線更新儲存庫。(注意,這篇文章的中文翻譯有誤。)

參考文章,這個離線更新儲存庫僅支援HTTPS或FTPS的URL連結方式,所以,我們需要在本地搭建一個基於https的web檔案伺服器(例如nginx),再登入 VMware Customer Connect 下載vCenter的ZIP包修補程式並上傳到這個web檔案伺服器。在web檔案伺服器的根目錄建立一個儲存庫目錄(例如vc_update_repo),將vCenter 修補程式解壓到這個儲存庫目錄當中,最後將https://web_server_name.your_company.com/vc_update_repo 儲存庫連結到 VAMI 的更新配置裡面手動指定即可(或者登入vcenter appliancesh使用命令update.set --currentURL https://web_server_name.your_company.com/vc_update_repo 進行設定)。

安裝nginx並配置https。nginx的安裝有很多種方式,可以參考下面使用yum線上安裝,環境是centos 7。

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum list nginx --showduplicates
yum install -y nginx-1.24.0
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload
setenforce 0
systemctl start nginx
systemctl enable nginx

配置檔案伺服器,https配置可以參考這篇文章。修改檔案後,需重新啟動nginx服務。確保能透過https訪問檔案伺服器。

vim /etc/nginx/nginx.conf
systemctl restart nginx
nginx.conf
 user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;
    server { 
    listen       80;
    server_name  localhost;     

    listen 443 ssl;
    ssl_certificate     /usr/local/ssl/server-nopassword.crt;
    ssl_certificate_key /usr/local/ssl/server-nopassword.key;
 
    location / {
    root /data;
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;
    charset utf-8;
    }
    }



    include /etc/nginx/conf.d/*.conf;
}

建立儲存庫目錄(vc_update_repo),最終的目錄結構(包括修補程式解壓後的子目錄 manifestpackage-pool)。

/data
└── vc_update_repo
    ├── manifest
    └── package-pool

vCenter的修補程式檔案上傳至web伺服器並解壓,解壓出了兩個目錄 manifestpackage-pool

unzip VMware-vCenter-Server-Appliance-8.0.2.00100-22617221-updaterepo.zip

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

如果一切順利,你現在應該已經準備好了vCenter 離線更新儲存庫。

登入VAMI 後臺(https://vcsa-ip:5480),展開“更新”- “設定”,在儲存庫設定中指定URL地址,取消勾選證書檢查。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

點選儲存後,系統會自動檢測更新並發現儲存庫中的修補程式。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

現在,登入vSphere Client,展開更新,可以看到更新儲存庫已經從VMware 預設儲存庫變成自定義儲存庫了。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

點選選擇版本,選擇可用的更新並確定。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

選擇更新後,會檢測當前vCenter的環境是否可以升級到目標版本。提示我當前vCenter Server未進行備份。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

產品互操作性檢測,只有加入CEIP以後該檢查才有用。直接忽略點選下一步。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

注意,如果是生產環境一定要提前做好vCenter 備份,我這裡就忽略了。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

更新vCenter Life-Cycle Manager,提示報錯“Failed to load repository manifest data for the configured upgrade.”,這個問題在vCenter Sever 8發行說明中一直存在並且沒有得到修復,這是使用具有 VMware Certificate Authority (VMCA) 不信任的自簽名證書的自定義更新儲存庫導致的, vCenter Lifecycle Manager 無法從此類儲存庫下載檔案。上面配置的離線更新庫的web伺服器確實配置的是自簽名ssl證書,參考 KB 89493 中的解決方案,並沒有得到解決(如果有人成功了,請告訴我)。其實vCenter本身不就是一個CA嗎,能不能直接在vCenter上為web伺服器頒發一個證書?(沒有試過)

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

配置離線儲存庫失敗。所以重新換回官方的線上更新儲存庫(需要網際網路連線)。在VAMI裡面重新修改為預設儲存庫即可。

修改為預設儲存庫後,重新選擇更新的版本,還是選擇vCenter 8.0 U2a(22617221)。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

備份vCenter Server。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

使用預設更新儲存庫後沒有報錯,確定更新的版本是否正確。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

點選“更新外掛”。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

更新完成,頁面自動重新整理。頁面頂部會出現下面的內容顯示。

已成功取消部署外掛 VMware vCenter Server Lifecycle Manager:8.0.0.10000。請重新整理瀏覽器以將其移除。
已成功部署外掛 VMware vCenter Server Lifecycle Manager:8.0.2.100。請重新整理瀏覽器以啟用外掛。

同時出現下面的錯誤。提示vCenter 虛擬機器的CD-ROM沒有檢測到ISO檔案。

An error occurred while mounting the ISO file. Verify if the device attached to the CDROM is a vCenter Server ISO file.

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

注意,如果線上更新外掛出現“Update 8.0.x.xxxxxx for component vlcm is not found”錯誤,請參照KB 94779進行處理。

將vCenter ISO映象檔案(完整安裝包)掛載到vCenter 虛擬機器的CD-ROM裝置。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

重新到vCenter 更新頁面,重新檢測ISO 檔案,提示如下報錯。

Upgrade to target version 8.0.2.00100 using this feature is not supported for vCenter Servers that do not manage their own ESXi host and VM.

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

由於vCenter是我部署的一個測試環境,執行vCenter虛擬機器所在的主機並沒有被vCenter所納管,所以會提示你上面的錯誤,也就說,使用RDU工作流升級,需要vCenter納管自身VM虛擬機器所在的ESXi主機,否則不受支援。將vCenter 虛擬機器所在的主機加入vCenter後,重新連線vCenter ISO映象檔案即可。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

重新到vCenter 更新頁面,重新檢測ISO 檔案,檢測正常。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

備份vCenter Server。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

升級vCenter Server Life-Cyle Manager外掛。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

配置目標vCenter裝置。點選“配置目標裝置”。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

接受協議。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

是否加入CEIP。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

配置目標vCenter的存放位置。可以選擇設定一個新的位置。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

目標vCenter 配置設定。可以選擇與源vCenter相同的配置,或者選擇“詳細配置”進行自定義配置。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

選擇詳細配置以自定義設定。配置目標vCenter儲存的資料夾。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

配置目標vCenter計算資源。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

配置目標vCenter的虛擬機器名稱和臨時密碼。可以是源vCenter名稱或者設定新名稱。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

配置目標vCenter裝置的部署大小。注意,部署大小不能低於源vCenter的部署大小。比如源vCenter是小型,那部署大小不能選擇微型。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

配置目標vCenter的資料儲存位置。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

配置目標vCenter的臨時網路。用於連線源vCenter進行資料遷移。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

配置完成。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

點選下一步後,點選“啟動升級”。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

啟動升級後,會建立一個目標vCenter虛擬機器。在這個過程中,你也可以點選“取消升級”。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

等待一段時間後,升級完成。此升級過程,源vCenter將保持可用狀態,直到你在合適的視窗時間點選“切換”按鈕以完成vCenter的更新。

切換期間,源vCenter服務將會停止,直到目標vCenter接管服務,此過程的時間多少取決於不同的環境,最塊切換時間幾分鐘內即可完成。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

點選“切換”。將在獨立的視窗(https://vcenter.mulab.local/lcm-ui/?view=standaloneUi)執行這一過程。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

完成切換。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

登入vSphere Client,檢視vCenter Server已更新至目標版本。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

注意,源vCenter已被關機,如果源vCenter重新啟動,則目標vCenter會被刪掉。建議在源vCenter配置裡面將網路卡開機自動連線取消掉。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

二、vCenter 8.0 U2a 升級到 vCenter 8.0 U2b

第二種型別,使用RDU工作流從vCenter 8.0 U2 及之後的版本升級到更新的版本(例如vCenter 8.0 U2b)同樣非常簡單,過程跟上面的基本差不多。

將vCenter ISO映象檔案(完整安裝包)掛載到vCenter虛擬機器的CD-ROM光碟機。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

轉到vCenter更新,可以看到已自動檢測到目標vCenter版本。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

備份vCenter Server。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

升級vCenter Server Lifecycle Manager 外掛。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

更新完成,提示重新整理瀏覽器。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

配置目標vCenter裝置。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

接受協議。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

是否加入CEIP。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

目標vCenter的部署位置。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

目標vCenter配置。選擇源vCenter相同配置。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

目標vCenter虛擬機器名稱和臨時root密碼。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

目標vCenter臨時網路設定。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

完成配置。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

點選升級。同樣會建立目標vCenter裝置並開始資料遷移。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

等待一段時間後,準備升級完成。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

如果時間合適,點選“切換”。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

切換完成。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

升級成功。

【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。

相關文章