Quantcast
Channel: 不自量力 の Weithenn
Viewing all 591 articles
Browse latest View live

Windows Admin Center version 2007

$
0
0


前言

在前一篇 Next Generation of Azure Stack HCI 20H2文章中,我們已經討論新世代 Azure Stack HCI v2 的亮眼特色功能。事實上,當企業和組織建立 Azure Stack HCI v2 運作環境後,在公有雲環境可以透過 ARM 管理 Azure Stack HCI v2 環境,而在地端資料中心時也可以透過 WAC (Windows Admin Center)進行管理。

在本文中,我們將討論最新的 WAC (Windows Admin Center)2007版本 (指的是 2020 年07 月版本),有哪些新增和增強特色功能。



支援 Azure Stack HCI v2

最新的 WAC (Windows Admin Center) 2007 版本,支援部署和管理 Azure Stack HCI v2 運作環境。簡單來說,透過最新 WAC 2007 版本中的 Cluster Deployment Workflow機制,不僅能支援部署和管理舊有的 WSFC (Windows Server Failover Cluster) ,更新增支援 Azure Stack HCI 的 Hyper-Converged Cluster

圖、新版 WAC 支援部署 WSFC 和 HCI 叢集 



Cluster Deployment Workflow

建構過 Windows Server 2019 HCI 運作環境的朋友,應該知道整個組態設定過程幾乎都是依靠 PowerShell來達成。現在,透過新版 WAC 2007 的 Cluster Deployment Workflow機制,可以讓過去採用 PowerShell 的動作,都在 GUI 圖形介面中完成,例如,部署的叢集類型、安裝必要的伺服器角色和功能、虛擬網路組態設定……等。後續新版 WAC,也將會整合 Full Stack Updates機制,將更新伺服器的 Firmware / Driver 也整合在 Cluster Deployment Workflow 機制內。千言萬言,直接看官方的展示比較快:

圖、展示 Cluster Deployment Workflow



改善的使用者體驗

首先,過去的 WAC (Windows Admin Center) 是依附在 Windows Server 內的其中一項產品。現在,WAC (Windows Admin Center) 已經成為「獨立產品」(Independent Product)。因此,除了提供新的項目圖示之外,也提供 Feedback 意見反應機制,隨時歡迎管理人員回饋使用者體驗,幫助 WAC 能夠提供更好的使用者操作體驗。

圖、新版 WAC 提供新的項目圖示

圖、開啟 Feedback 意見反應視窗進行回饋



其它更新

在這版的 WAC 當中,還有其它下列增強和更新功能:
圖、Virtual Machines (Optimized Full Clone)

圖、SDN Monitoring (Data Path Diagnostics)



參考資源


無法刪除 Azure AD Connect 同步的物件

$
0
0


Question:無法刪除 Azure AD Connect 同步的物件?

簡單來說,因為在測試環境中建立 Azure AD Connect 同步機制後,完成測試後一時手滑快速把 Lab 環境包含那台 Azure AD Connect 同步的主機都刪除了。此時,同步至 Auzre AD 當中的相關「物件」(Objects),便因為 Azure AD Connect 同步機制未正確中斷就移除,導致即便採用 Azure AD 當中的 Global Administrator登入,也無法刪除那些孤兒物件。


從下圖可以看到,有三個使用者帳號是從地端 DC 網域控制站,透過 Azure AD Connect 同步機制至 Azure AD 當中,但因為未正確中斷所以無法執行「Delete User」的動作。




Answer:

簡單來說,這個狀態就是因為 Azure AD Connect 同步機制未正確中斷就移除所造成,所以只要能夠連線至 Azure AD 執行停止 Azure AD Connect 同步機制即可。詳細資訊請參考 Can't manage or remove objects that were synchronized through the Azure Active Directory Sync tool - Active Directory | Microsoft Docs文章內容,下列將簡述如何解決:

首先,請確保執行的 Windows 主機已經安裝 Azure AD PowerShell Cmdlet,倘若未安裝的話請執行「Install-Module MSOnline」指令進行安裝。


安裝完成後,依序執行 PowerShell 指令「連接至 Azure AD >  停用目錄同步機制> 確認目錄同步機制已停用 (回傳 False)
# Connect to Azure AD
$msolcred = get-credential
connect-msolservice -credential $msolcred

# Disable directory synchronization
Set-MsolDirSyncEnabled -EnableDirSync $false
# Check that directory synchronization was fully disabled
 (Get-MSOLCompanyInformation).DirectorySynchronizationEnabled



確認 Azure AD Connect 同步機制停止後,可以到 Azure Portal 再次確認。


此時,先前透過同步機制到 Azure AD 當中的使用者帳號 (物件),在 Source 欄位會從原本的「Windows Server AD」轉變成「Azure Active Directory」,然後勾選後可以發現能夠選擇「Delete User」並順利執行刪除的動作。

網管人 175 期 - 實戰部署 Ansible AWX 自動化管理 Azure 公有雲

$
0
0


網管人雜誌

本文刊載於 網管人雜誌第 175 期 - 2020 年 8 月 1 日出刊,NetAdmin 網管人雜誌為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。




文章目錄

前言
Ansible AWX 簡介
實戰 Ansible AWX on Azure
          部署內含 Ansible Tower 的 RHEL 虛擬主機
          手動為 CentOS 安裝 Ansible AWX 執行環境
          建立 Azure Credentials
          啟動 Ansible AWX 同步 GitHub Repository
          部署 Azure VM 虛擬主機(IaaS)
          部署 SQL Server 執行個體(PaaS)
          部署 Kubernetes Cluster(CaaS)
結語





前言

在本刊「173 期–化解敏捷開發難題 Ansible 輕鬆管理雲負載」技術專欄中,我們已經從 DevOps 文化和 IaC 基礎架構即程式碼的角度,討論企業和組織如何在商業數位化的浪潮下,如何更快速的交付產品給消費者,同時交付後的產品在品質或使用者體驗方面,都能命中消費者對於產品的想像和需求。

事實上,對於 IT 管理人員來說,透過 Ansible Engine 指令模式來管理資料中心資源可能駕輕就熟。然而,對於基礎架構管理不熟悉非 IT 領域的相關人員來說,是否有更方便的方式讓他們操作 Ansible,以降低 IT 管理人員的負擔。

舉例來說,負責韌體開發的人員,雖然使用 Linux 作業系統作為研發測試環境,然而並不熟悉 Linux 作業系統方面的管理事務,因此發生任何狀況時,例如,DNS 伺服器組態設定錯誤,便需要請求 IT 管理人員的支援。

雖然,IT 管理人員可以透過撰寫好的 Ansible Playbook,快速幫韌體開發人員排除問題,但這也將中斷 IT 管理人員原本正在執行的工作任務。那麼,是否有更簡便的方式,能夠讓韌體開發人員透過已經撰寫好的 Ansible Playbook,自行修正這種小型且常見的問題 ?解決方案便是本文所要談論和實作演練的 Ansible AWX。





Ansible AWX 簡介

事實上,Ansible AWX 是源自於 Red Hat Ansible Tower 商業產品的「上游項目」(Upstream Project)(如圖 1 所示)。簡而之,對於熟悉 Red Hat 產品的 IT 管理人員來說,Ansible AWX 和 Ansible Tower 之間的關係,就如同商業產品的 Red Hat Enterprise Linux 和開放源始碼 Fedora 的關係一樣。

因此,當企業和組織建立 Ansible AWX 之後,可以直接參考 Red Hat Ansible Tower 技術文件。舉例來說,Ansible AWX 支援 RESTful API,那麼管理人員便可以直接參考 Ansible Tower 的 API Reference Guide 文件內容。

圖 1、Ansible Tower 運作架構示意圖





實戰 Ansible AWX on Azure

在本文實戰演練的部份,將會以 Ansible AWX 管理 Microsoft Azure 公有雲環境工作負載為例。值得注意的是,建議管理人員採用 2019 年 10 月份釋出的 Ansible 2.9 或後續版本,確保 Ansible 當中的 Azure 模組支援性最佳。
有關 Ansible 各版本發行資訊,請參考 Ansible Documentation - Release and maintenance頁面資訊。



部署內含 Ansible Tower 的 RHEL 虛擬主機

目前,在 Azure Marketplace 當中,當管理人員嘗試採用「Ansible AWX」關鍵字搜尋時,將會發現僅有 TechLatest 和 Websoft9 這二家廠商,提供內建 Ansible AWX 的 CentOS 或 Ubuntu 虛擬主機範本,而 Red Hat 官方則僅提供商用授權版本的 Ansible Tower。

然而,TechLatest 和 Websoft9 二家廠商所提供的 Ansible AWX 範本,除了並非由微軟官方或 Red Hat 官方打包之外,建立後的 Ansible AWX 其運行版本也是老舊的「9.x」版本,而非目前最新釋出的「Ansible AWX 12.0.0」版本。

因此,在 Azure Marketplace 實作的部份,將以部署 Red Hat 官方打包的 Ansible Tower 為例。請登入 Azure Portal 管理介面後,點選「Create a resource」項目,在關鍵字欄位鍵入「Ansible Tower」,即可看到由 Red Hat 官方打包的 Ansible Tower 範本,按下「Create」鈕準備進行部署作業(如圖 2 所示)。

圖 2、確認採用 Red Hat 官方打包的 Ansible Tower 範本進行部署作業

在 Basic 部署頁面中,請依序填入部署 Ansible Tower 範本的 VM 虛擬主機管理者帳號、SSH 加密公開金鑰、用於此次部署作業的 Azure 訂閱帳戶、部署的資源群組名稱、部署的 Azure 資料中心……等資訊(如圖 3 所示)。
預設 Ansible Tower 範本的 VM 虛擬主機管理者帳號為 「toweradmin」。
圖 3、填入部署 Ansible Tower 範本的基本資訊

在 Infrastructure Settings 部署頁面中,為組態設定 Ansible Tower 範本的 VM 虛擬主機名稱,並選擇運行 Ansible Tower 範本 VM 虛擬主機的規模大小,本文實作採用「Standard DS3 v2」運作規模,屆時部署的 Ansible Tower 範本 VM 虛擬主機,將具備 4 vCPU 和 14 GB 記憶體的運算資源(如圖 4 所示)。

圖 4、組態設定 Ansible Tower 範本 VM 虛擬主機名稱和規模大小

在 Ansible Tower Settings 部署頁面中,請組態設定屆時登入 Ansible Tower 圖形管理介面的密碼,以及用於管理 Ansible Tower 資料庫的密碼(如圖 5 所示)。

圖 5、組態設定 Ansible Tower 圖形管理介面和資料庫管理密碼

最後,在 Summary 部署頁面中,請再次確認組態設定 Ansible Tower 的部署資訊正確無誤後,按下 OK 鈕和 Create 鈕之後,系統將立即進行部署作業。當 Ansible Tower 部署任務完成後,即可搭配 SSH 私密金鑰登入 Ansible Tower 範本主機,可以看到 Ansible Tower 範本採用 RHEL Server 7.8 作業系統版本,搭配最新 Ansible 2.9.9 Python 2.7.5版本的運作環境(如圖 6 所示)。
本次部署 Ansible Tower 範本的工作任務執行時間為 16 分鐘。
圖 6、確認 Ansible Tower 範本運作環境的相關版本資訊

接著,登入 Ansible Tower 圖形管理介面(如圖 7 所示),預設的管理帳號為 「admin」,而管理者密碼則是剛才部署時,於 Ansible Tower Settings 部署頁面所設定的管理者密碼。
順利登入 Ansible Tower 圖形管理介面後,即可變更 「admin」 預設管理者帳號名稱。
圖 7、登入 Ansible Tower 圖形管理介面

值得注意的是,雖然順利部署 Ansible Tower 範本主機,企業和組織必須取得 Red Hat 官方提供的 Ansible Tower 商業授權後才能順利使用,當然 Red Hat 官方也提供「60 天」管理「100 台主機」的試用金鑰,以便企業和組織能夠評估建構 Ansible Tower 的可行性。在 Tower License 頁面中,管理人員可以按下「Request License」鈕取得 Ansible Tower 試用金鑰,倘若已經具備 Red Hat 訂閱帳戶的管理人員,則鍵入 Red Hat 帳號和密碼後直接按下「Get Licenses」鈕即可(如圖 8 所示)。

圖 8、取得 Ansible Tower 試用金鑰

順利取得 Ansible Tower 試用金鑰之後,預設便會進入 Ansible Tower Dashboard 儀表板頁面(如圖 9 所示)。此時,管理人員便可以點選左側的「Access > Users」項目,將預設的「admin」管理帳號名稱,修改為企業和組織慣用的系統管理帳號,倘若後續需要新增或變更 Ansible Tower 管理帳號和密碼,也是採用相同的組態設定程序即可。

圖 9、Ansible Tower 圖形管理介面儀表板



手動為 CentOS 安裝 Ansible AWX 執行環境

由於,Python 官方已經正式宣佈,舊版的 Python 2.x2020 年 1 月停止支援。因此,本文實作環境將採用新版 CentOS 8.1作業系統版本,搭配預設採用的 Python 3.x版本,建構 Ansible AWX 運作環境。
事實上,Python 2.0 在 2000 年時發佈,並且在 2008 年時 Python 官方便正式宣佈將於 2015 年停止支援和更新 Python 2,然而許多人並未升級至新版 Python 3.0,所以 Python 官方針對 Python 2.0 版本的最後延長期限,便是 2020 年 1 月正式停止支援和更新 Python 2.x 版本。
由於,我們採用新版 CentOS 8 作業系統,因此安裝套件的管理指令從過去的 YUM 改為新推出的 DNF 指令,執行安裝相關套件和 Azure Python SDK 模組的動作。
過去,大家所熟悉的 YUM套件管理指令為 「YUM v3」 版本,而 CentOS 8 的 DNF套件管理指令則是 「YUM v4」 版本。
sudo dnf -y update
sudo dnf -y install -y gcc gcc-c++ python3 python3-pip python3-devel epel-release ansible
sudo alternatives --set python /usr/bin/python3


安裝完成後,請執行「python --version」指令確認採用的 Python 版本,在本文執行環境中可以看到為 Python 3.6.8版本。接著執行「ansible --version」指令確認 Ansible Engine 版本,可以看到為最新的 Ansible 2.9.9版本(如圖 10 所示)。
管理人員可以執行「pip3 list」指令,查看已經安裝的 Ansible 模組清單和版本資訊。
圖 10、確認在 CentOS 8 主機中安裝完成的 Python 和 Ansible 版本資訊

由於,Ansible AWX 已經將整體運作環境容器化,請為 CentOS 8 主機安裝 Docker-CE 和 Docker-Compose 容器執行環境。值得注意的是,最後一版的 Docker-CE 19.03.9-3 版本,管理人員必須先幫 CentOS 8 主機安裝 Containerd,否則將會因為套件相依性的關係導致 Docker-CE 19.03.9-3 安裝失敗。當容器執行環境安裝完成後,請鍵入「docker-compose version」指令,確認採用的 Docker-Compose 和 docker-py 版本(如圖 11 所示)。
Ansible AWX 目前支援三種部署環境,分別是 OpenShift、Kubernetes 和 Docker-Compose。
圖 11、確認採用的 Docker-Compose 和 docker-py 版本

現在,我們可以執行「git clone --depth 50 https://github.com/ansible/awx.git」指令,從 Github 上下載 Ansible AWX 專案。當下載作業完成後,管理人員可以查看「awx/VERSION」檔案內容,可以看到我們稍後部署的 Ansible AWX 版本,為 2020 年 6 月最新釋出的「12.0.0」版本(如圖 12 所示)。

圖 12、下載 Ansible AWX 專案並確認採用版本

管理人員只要修改 「awx/installer/inventory」 檔案內容,將要部署的 Ansible AWX 預設組態設定值,調整為適合企業和組織的運作環境即可,舉例來說,預設 Ansible AWX 的管理帳號名稱為 「admin」,倘若需要修改則調整「admin_user」欄位值,而管理者密碼預設值為「password」,也只需要調整 「admin_password」 欄位值即可。修改完成後,便可以執行 「ansible-playbook -i inventory install.yml -vvv」 指令,進行部署 Ansible AWX 的工作任務。
在部署 Ansible AWX 工作階段中,管理人員將會發現 「Task – local_docker : Start the containers」停留較長時間,原因在於系統必須下載 Ansible AWX 相關容器印象檔並啟動容器所致。

順利部署 Ansible AWX 後,我們可以透過 「docker-compose ps」 指令,查看運作 Ansible AWX 的主要運作元件,可以看到總共透過 Docker-Compose 啟動「4 個容器」和容器版本(如圖 13 所示)。
最新版本的 Ansible AWX 12.0.0,正式採用 Redis取代舊版的 「RabbitMQ」 和 「MemCache」 運作元件。所以 Ansible AWX 主要運作元件從舊版的 「5 個」 降為新版的 「4 個」。
圖 13、順利部署 Ansible AWX 並查看主要運作元件

現在,管理人員可以開啟瀏覽器鍵入 Ansible AWX 網址,本文實作環境網址為「awx.lab.weithenn.org」,可以看到 Ansible AWX 圖形管理介面的登入畫面(如圖 14 所示),與剛才 Ansible Tower 圖形管理介面非常相似。管理人員只要鍵入剛才在「inventory」檔案內,指定的 Ansible AWX 管理者帳號和密碼即可登入。

圖 14、Ansible AWX 圖形管理介面登入畫面

順利通過 Ansible AWX 使用者身份驗證機制後,預設便會進入 Ansible AWX Dashboard 儀表板頁面(如圖 15 所示),可以看到與剛才 Ansible Tower 圖形管理介面非常相似。同樣的,管理人員可以點選左側的「Access > Users」項目,新增 / 修改 / 刪除在 Ansible AWX 系統中使用者帳號和密碼資訊。

圖 15、Ansible AWX 圖形管理介面儀表板



建立 Azure Credentials

無論採用 Azure Marketplace 的 Ansible Tower 範本,或者手動在地端資料中心 CentOS 8 主機內建構 Ansible AWX 運作環境,在管理 Microsoft Azure 公有雲環境之前,必須先組態設定「Azure Credentials」憑證資訊,以便管理 Microsoft Azure 訂閱帳戶的公有雲基礎架構和相關資源。

組態設定 Azure Credentials 憑證資訊之前,管理人員必須準備「Azure Service Principal」驗證資訊,分別是 Azure Subscription ID、Tenant ID、Client ID、Secret等四項驗證資訊。
請注意,採用 Azure Service Principal 驗證資訊的主要原因,在於不應讓屆時的 Ansible AWX 自動化管理工具,採用「完全特權使用者」(Fully Privileged User)的身份登入,而是改採 RBAC 受限制方式登入和管理 Azure 基礎架構及資源。

原則上,管理人員可以透過 Azure Portal 逐一查詢四項 Azure Service Principal 資訊。在本文實作中,則採用 Azure Cloud Shell 環境並執行 「az account list --output table」 指令,先列出企業和組織擁有的 Azure 訂閱帳戶 ID,接著使用 「az ad sp create-for-rbac --name AnsibleAWXapp」 指令,快速建立 Azure Service Principal 驗證資訊(如圖 16 所示)。
建立 Azure Service Principal 驗證資訊後,其中 「appId」 欄位為 Client ID、「password」 欄位為 Secret、「tenant」 欄位為 Tenant ID,並預設 「一年」 之後應用程式密碼過期。
圖 16、透過 Azure Cloud Shell 快速建立 Azure Service Principal 驗證資訊

準備好 Azure Credentials 驗證資訊後,登入 Ansible AWX 管理介面,依序點選「Resources > Credentials > Create a new credential」項目後,先選擇 Credential Type 為「Microsoft Azure Resource Manager」後,依序填入 Azure 訂閱帳戶 ID 和四項 Azure Credentials 驗證資訊即可(如圖 17 所示)。當管理人員按下 Save 鈕之後,可以看到 Ansible AWX 自動將機敏資訊,Azure 訂閱帳戶的密碼和 Client Secret 欄位,在儲存至 Ansible AWX 資料庫時進行額外的加密處理。

圖 17、組態設定 Azure Credentials 驗證資訊至 Ansible AWX 自動化管理平台



啟動 Ansible AWX 同步 GitHub Repository

在開始執行部署作業之前,我們必須讓 Ansible AWX 自動化管理平台,知道 Playbook 的存放路徑在哪裡。在本文實作環境中,已經將相關 Playbook 存放於 Github 內,我們只要開啟 Ansible AWX 透過 Git 與指定的 Github 進行同步即可。

請登入 Ansible AWX 管理介面,依序點選「Resources > Projects > Create a new project」項目後,選擇 SCM Type 為「Git」後,在 SCM URL 填入 GitHub Repository URL 位址,本文實作為「https://github.com/Weithenn/ansible.git」即可(如圖 18 所示)。
當管理人員按下 Save 鈕之後,Ansible AWX 將會自動透過 Git 與剛才所指定的 GitHub Repository 進行溝通,確保 Ansible AWX 能夠順利同步指定的 GitHub Repository。
圖 18、啟動 Ansible AWX 同步指定的 GitHub Repository



部署 Azure VM 虛擬主機(IaaS)

現在,管理人員可以透過 Ansible AWX 自動化管理平台,搭配剛才透過 Git 同步的 GitHub Repository,並選擇採用的 Playbook 即可執行部署作業。首先,我們將在 Azure 公有雲環境中,部署 VM 虛擬主機達到管理「基礎設施即服務」(Infrastructure as a Service,IaaS)的目的。

在本文實作環境中,採用「create_vm_with_password.yaml」的 YAML 檔案,並透過「vars」宣告後續工作任務中,經常會使用到的名稱為變數,舉例來說,宣告「resource_group」變數名稱的值為「RG-USEast77」,後續 Playbook 工作任務中只要使用「"{{ resource_group }}"」,便能呼叫 resource_group 變數名稱的值帶入其中。
有關 create_vm_with_password.yaml 的 YAML 檔案詳細內容,請參考 GitHub - Weithenn/Ansible/Azure/create_vm_with_password.yaml

在這個 Playbook 內共有 7 個工作任務(Tasks),同時搭配下列不同用途的 Ansible Azure 模組,完成部署 VM 虛擬主機的動作。
  • azure_rm_resourcegroup : 部署「Azure 資源群組」(Azure Resource Group),本文實作名稱為「RG-USEast77」。
  • azure_rm_virtualnetwork :部署「Azure 虛擬網路」(Azure Virtual Network),本文實作虛擬網路為「10.0.0.0/16」。
  • azure_rm_subnet :部署「Azure 虛擬子網路」(Azure Virtual Subnet),本文實作虛擬子網路為「10.0.1.0/24」。
  • azure_rm_publicipaddress :部署固定制「Azure 公有 IP 位址」(Azure Public IP Address),以便稍後指派給部署的 VM 虛擬主機。
  • azure_rm_securitygroup :部署「Azure 網路安全群組」(Azure Network Security Group),並允許 SSH(Port 22)網路流量通過防火牆。
  • azure_rm_networkinterface :部署 Azure 虛擬網路介面卡,以便稍後指派給 VM 虛擬主機使用。
  • azure_rm_virtualmachine :部署 VM 虛擬主機並指定運作規模大小、管理者帳號和密碼、採用 CentOS 7.7 映像檔,並在部署作業完成後啟動 VM 虛擬主機。

請登入 Ansible AWX 管理介面,依序點選「Resources > Templates > Create a new Job Template」項目後,在 Playbook 欄位請選擇「Azure/create_vm_with_password.yaml」,而 Credentials 欄位請選擇剛才組態設定的「Azure Credentials」即可(如圖 19 所示)。

圖 19、在 Ansible AWX 中建立部署 Azure VM 虛擬主機的工作任務

在 Ansible AWX 自動化管理平台中,執行 Playbook 非常容易,只要在 Templates 頁面點選欲執行的 Playbook 旁的「火箭」圖示,Ansible AWX 便立即執行部署 Azure VM 虛擬主機的動作(如圖 20 所示)。經過幾分鐘後,順利在 Azure 公有雲環境中,部署名稱為「RG-USEast77」的資源群組於「Azure East US」資料中心內,部署的 VM 虛擬主機名稱為「ansiblevm77」且規模大小為「Standard_DS1_v2」。

圖 20、透過 Ansible AWX 部署 Azure VM 虛擬主機



部署 SQL Server 執行個體(PaaS)

接著,實作演練透過 Ansible AWX 在 Azure 公有雲環境中,部署 SQL Server 執行個體並建立資料庫,達到「平台即服務」(Platform as a Service,PaaS)的目的。

我們採用「create_sql_server_instance.yaml」的 YAML 檔案,並透過「vars」宣告後續工作任務中,經常會使用到的名稱為變數,舉例來說,宣告「sqlserver_name」變數名稱的值為「ansiblesql12」,後續工作任務中只要使用「"{{ sqlserver_name }}"」,便會呼叫 sqlserver_name 變數名稱,並將指定的 SQL Server 名稱帶入其中。
有關 create_sql_server_instance.yaml 的 YAML 檔案詳細內容,請參考 GitHub - Weithenn/Ansible/Azure/create_sql_server_instance.yaml

在這個 Playbook 當中總共有 3 個工作任務(Tasks),並且搭配下列 Ansible Azure 模組,完成部署 SQL Server 執行個體的動作。
  • azure_rm_resourcegroup :部署 Azure 資源群組,本文實作名稱為「RG-USEast12
  • azure_rm_sqlserver :部署 Azure SQL Server 執行個體,本文實作名稱為「ansiblesql12」。
  • azure_rm_sqldatabase :在 Azure SQL Server 執行個體中部署 SQL 資料庫,本文實作名稱為「sqldb」。

在 Ansible AWX 管理介面中,點選「Create a new Job Template」項目,於 Playbook 欄位請選擇「Azure/create_sql_server_instance.yaml」,而 Credentials 欄位選擇先前組態設定的「Azure Credentials」即可(如圖 21 所示)。

圖 21、在 Ansible AWX 中建立部署 SQL Server 執行個體的工作任務

在 Ansible AWX 自動化管理平台中,於 Templates 頁面點選「Deploy Azure SQL Server Instance(PaaS)」工作任務旁的「火箭」圖示,Ansible AWX 便立即執行部署 SQL Server 執行個體的動作(如圖 22 所示)。經過幾分鐘後,順利在 Azure 公有雲環境中,部署名稱為「RG-USEast12」資源群組在「Azure East US」資料中心內,SQL Server 執行個體名稱為「ansiblesql12」採用的版本為「12.0」,並在 SQL Server 執行個體中建立名稱為「sqldb」的資料庫。

圖 22、透過 Ansible AWX 部署 SQL Server 執行個體



部署 Kubernetes Cluster(CaaS)

實作演練透過 Ansible AWX 在 Azure 公有雲環境中,部署 AKS(Azure Kubernetes Service)容器管理平台,達到「容器即服務」(Containers as a Service,CaaS)的目的。值得注意的是,在部署 AKS 容器平台之前,必須先確認欲部署的 Azure 資料中心,支援運作哪些 Kubernetes 版本,避免因指定錯誤的 Kubernetes 版本導致不可預期的錯誤。

管理人員可以透過 Azure Cloud Shell,鍵入「az aks get-versions --location eastus --output table」指令,快速查詢 Azure East US 資料中心,支援運作哪些 Kubernetes 版本(如圖 23 所示)。稍後,我們將部署最新穩定版本「1.16.9」。

圖 23、查詢 Azure East US 資料中心支援運作哪些 Kubernetes 版本

我們採用「create_aks_cluster.yaml」的 YAML 檔案,並透過「vars」宣告後續工作任務中,經常會使用到的名稱為變數,舉例來說,宣告「aks_version」變數名稱的值為「1.16.9」,後續工作任務中只要使用「"{{ aks_version }}"」,便能呼叫 aks_version 變數名稱,採用指定的 Kubernetes 版本號碼。
有關 create_aks_cluster.yaml 的 YAML 檔案詳細內容,請參考 GitHub - Weithenn/Ansible/Azure/create_aks_cluster.yaml

這個 Playbook 當中共有 2 個工作任務(Tasks),並且搭配下列 Ansible Azure 模組,完成部署 AKS 容器管理平台的動作。
  • azure_rm_resourcegroup :部署 Azure 資源群組,本文實作名稱為「RG-USEast-AKS1169
  • azure_rm_aks :部署 AKS 容器管理平台,本文實作名稱為「ansibleaks1169」,並且建立初始運作 AKS 容器管理平台的成員節點主機共「2 台」。

後續需要「擴充」AKS 容器管理平台成員節點主機的數量時,只需要調整「count :」參數值即可,例如,「count : 5」即表示總共會有「5 台」成員節點主機,有興趣的讀者請參考 GitHub - Weithenn/Ansible/Azure/scale_aks_cluster.yaml
在 Ansible AWX 管理介面中,點選「Create a new Job Template」項目,於 Playbook 欄位請選擇「Azure/create_aks_cluster.yaml」,而 Credentials 欄位選擇先前組態設定的「Azure Credentials」即可(如圖 24 所示)。

圖 24、在 Ansible AWX 中建立部署 Azure AKS 容器服務的工作任務

在 Ansible AWX 自動化管理平台中,於 Templates 頁面點選「Deploy Azure AKS(CaaS)」工作任務旁的「火箭」圖示,Ansible AWX 便立即執行部署 Azure AKS 容器服務的動作(如圖 25 所示)。經過幾分鐘後,順利在 Azure 公有雲環境中,部署名稱為「RG-USEast-AKS1169」資源群組在「Azure East US」資料中心內,AKS 容器管理平台名稱為「ansibleaks1169」,採用的 Kubernetes 版本為「1.16.9」,並建立「2 台」成員節點主機運作 AKS 容器管理平台。

圖 25、透過 Ansible AWX 部署 AKS 容器管理平台

部署 AKS 容器管理平台的工作任務完成後,管理人員可以透過 Azure Cloud Shell,建立 AKS 容器管理平台驗證資訊,然後執行「kubectl get nodes」指令,列出目前 AKS 容器管理平台的成員節點主機資訊。如圖 26 所示,可以看到共有 2 台成員節點主機,採用的 Kubernetes 版本為最新穩定的「1.16.9」。

圖 26、透過指令查詢 AKS 容器管理平台的成員節點主機資訊





結語

本文實戰演練中的 Playbook(YAML 檔案),都公開存放在筆者的 GitHub Ansible Repo當中。相信透過本文的深入剖析和實戰演練,企業和組織的 IT 管理人員,可以透過 Ansible AWX 自動化管理平台,讓 Ansible Playbook 自動化機制更容易使用更強大,幫助企業和組織的 IT 管理人員,有效管理地端資料中心和公有雲運作環境。

vCenter Server 7 High CPU Usage

$
0
0


前言

倘若,最近你發現 vCenter Server 7的 CPU 使用率突然升高,並且採用的是「vCenter Server 7.0.0c」的話,那麼恭喜你應該是踩到雷了。


事實上,vCenter Server 的 CPU 使用率突然升高,甚至是高到 100% 無回應的情況也不是第一次了,有興趣的朋友可以參考下列 VMware KB:



解決方案

簡單來說,請更新至最新釋出的「vCenter Server 7.0.0d」即可,下列是各 vCenter Server 7 版本對應的 Build Number,或參考 VMware KB 2143838 - Build numbers and versions of VMware vCenter Server
  • vCenter Server 7.0.0d (Build number 16749653)
  • vCenter Server 7.0.0c (Build number 16620007)
  • vCenter Server 7.0.0b (Build number 16386292 - 16386335)
  • vCenter Server 7.0.0a (Build number 16189094 - 16189207)
  • vCenter Server 7.0.0GA (Build number 15952498 - 15952599)



參考資料

網管人 176 期 - 善用 vSphere 7 優勢建構高效能基礎架構

$
0
0


網管人雜誌

本文刊載於 網管人雜誌第 176 期 - 2020 年 9 月 1 日出刊,NetAdmin 網管人雜誌為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。





本文目錄






前言

根據最新 Flexera 2020 State of the Cloud Report市調結果顯示,企業和組織已經有高達「98 %」的比例使用雲端技術,其中採用公有雲的比例高達「96 %」,採用地端私有雲的企業和組織也有「76 %」的比例(如圖 1 所示)。
採用「多雲環境」(Multi-Cloud)的比例高達 93 %,其中採用多個公有雲環境的佔比為 6 %,而採用混合雲環境的比例則高達 87 %。
圖 1、企業和組織採用雲端技術比例示意圖

雖然,因為 COVID-19 疫情的關係,讓企業和組織採用公有雲服務的比例增加(如圖 2 所示)。然而,從市調結果可知,仍然有許多企業和組織在內部資料中心內,透過虛擬化或容器技術承載各種營運服務所需的工作負載。

圖 2、企業和組織因 COVID-19 疫情採用公有雲服務比例增加示意圖

因此,本文將針對目前企業和組織中,地端資料中心內市佔率最高的 VMware vSphere 虛擬化基礎架構,提供不同層面的最佳化和組態設定技巧,幫助管理人員確保 VM 虛擬主機或容器內應用程式效能和回應速度之外,也讓企業和組織不因 COVID-19 疫情的影響而降低服務品質。





x86 硬體伺服器規劃

事實上,從 vSphere ESXi 4.x 版本開始便為「64 位元」的運作環境。因此,在採購 x86 硬體伺服器的 64 位元 CPU 中央處理器時,請選擇具備更多「定址空間」和大容量「L2 / L3 / L4 快取」空間的 CPU 中央處理器,以便擔任 vSphere 虛擬化技術架構的 ESXi 虛擬化平台,能夠擁有更多定址空間和 CPU 指令集,屆時提供上層運作的 VM 虛擬主機和容器更多的運算資源。
有關 vSphere ESXi 版本採用 32 位元或 64 位元的詳細資訊,請參考 VMware KB 1003661KB 1003945文章內容。
此外,管理人員在選擇 CPU 中央處理器時可能遭遇的另一個難題,便是要選擇「多運算核心」(Multiple Cores)「高時脈」(Highest Clock)類型的處理器? 事實上,這兩種類型的 CPU 處理器有不同的適用情境,舉例來說,屆時運作的工作負載屬於「單一執行緒」(Single-Thread)類型時,便應該選擇「高時脈」類型的 CPU 處理器,因為這種類型的工作負載給予多個運算核心也無濟於事,反觀應用程式若屬於「多重執行緒」(Multi-Thread)類型時,便應該選擇「多運算核心」類型的 CPU 處理器,讓 VM 虛擬主機或容器中的應用程式,能夠透過多個運算核心達到平行運算,進而為工作負載提供最佳化的運算效能。

值得注意的是,當企業和組織選擇多運算核心的 CPU 處理器,例如,新一代 AMD EYPC 處理器時,必須注意 ESXi 軟體授權的部份。因為,從 2020 年 4 月 30 日開始每顆 ESXi CPU 處理器軟體授權,只要超過「32 核心」,便需要加買 CPU 處理器軟體授權(如圖 3 所示)。

圖 3、新版 ESXi CPU 處理器軟體授權購買示意圖



深度學習效能最佳化

此外,當企業和組織需要在 vSphere 虛擬化技術架構中,運作「向量神經網路指令集」(Vector Neural Network Instructions,VNNI)深度學習技術時,在選擇 CPU 處理器時可以考慮針對這類型工作負載最佳化的 CPU 處理器。
最新 vSphere 7 版本,已經完整支援 VNNI 深度學習指令集,詳細資訊請參考 VMware KB 1003212文章內容。
舉例來說,第一代 Intel Xeon Scalable「Skylake」處理器,和第二代的「Cascade Lake」處理器相較之下,由於 Cascade Lake 處理器針對 VNNI 指令集的全面支援,以及最佳化相關工作負載如 int8 和 fp32。因此,運算同樣深度學習訓練模型的工作負載之下,採用第二代 Cascade Lake 處理器可提升「2.x ~ 3.x 倍」的執行效能(如圖 4 所示)。
更多詳細的測試結果,請參考 VMware 技術白皮書「Optimize Virtualized Deep Learning Performance with New Intel Architectures
圖 4、Skylake 和 Cascade Lake 處理器工作負載效能比較表



UEFI 最佳化組態設定

在 x86 硬體伺服器 UEFI 組態設定方面,應該依照伺服器供應商的最佳建議組態設定進行調整,確保安裝 ESXi 虛擬化平台的硬體伺服器,在運作效能方面能夠保持最佳化,舉例來說,許多 x86 硬體伺服器的 UEFI 預設值,可能不會啟用「VT-x」硬體輔助虛擬化技術,並且在電力使用方面也會採用「C States」節省電源的組態設定,然而此舉將會導致其上運作的 VM 虛擬主機或容器效能並未最佳化,導致應用程式回應卡頓造成使用者體驗下降。

因此,建議參考硬體伺服器供應商管理手動,當伺服器用途為擔任虛擬化平台時 UEFI 的最佳化組態設定為何。如圖 5 所示,可以看到此伺服器的 UEFI 預設值選項為「General Power Efficient Compute」,因此「VT-x」虛擬化技術未啟用,並且啟用「C6 Retension」節省電源的組態設定。管理人員應調整為「Virtualization – Max Performance」選項,讓系統「啟用」VT-x 虛擬化技術並「停用」C States 電源節省的組態設定,讓運作效能方面能夠極大化,確保其上運作的 VM 虛擬主機和容器運算資源充足。

圖 5、硬體伺服器用於虛擬化用途時 UEFI 最佳化組態設定參考





ESXi 和 VM 虛擬主機最佳化組態設定

妥善規劃 ESXi 用途的硬體伺服器後,管理人員可以針對 ESXi 虛擬化平台和 VM 虛擬主機層級進行最佳化。舉例來說,在 ESXi 虛擬化平台網路堆疊最佳化的部份,管理人員可以透過 ESXCLI(vSphere Command-Line Interfaces)管理指令,組態設定最佳化網路工作負載。

管理人員可以為 ESXi 虛擬化平台的實體網路卡,啟用「TCP 分割卸載」(TCP Segmentation Offload,TSO)功能,除了能夠極大化網路封包傳輸效能之外,同時降低 ESXi 虛擬化平台處理網路封包時的運算資源耗損。如圖 6 所示,管理人員可以透過「esxcli system settings advanced list -o /Net/UseHwTSO」指令,查詢「Int Value」欄位是否為數值「1」,確保 TCP 分割卸載功能已經啟用。
有關 TCP 分割卸載功能和其它最佳化網路組態設定的詳細資訊,請參考 VMware KB 2055140KB 1038827
圖 6、透過 ESXCLI 指令,確保網路卡啟用 TCP 分割卸載特色功能



ESXi 本機磁碟空間重新規劃

過去的 ESXi 版本,在安裝流程中系統將會針對本機磁碟空間建立固定大小的分割區,然而卻存在一些支援限制。因此,從新版 ESXi 7.0 開始,系統針對本機磁碟空間有不同的規劃,除了更方便支援第三方解決方案之外,合併後的系統分區也將更容易進行擴充。

簡單來說,從 ESXi 7.0 版本開始,本機磁碟區僅劃分出「四個」系統分割區,分別是 System boot、Boot-banks、ESX-OSData、VMFS Datastore,其中「ESX-OSData」又區分出「ROM-data 和 RAM-data」,過去舊版 ESXi 的「VMware Tools Locker、Core Dump、Scratch」,便是合併到 ESX-OSData 中的 ROM-data 分割區內(如圖 7 所示)。
新式 ESX-OSData 分割區採用的檔案系統為「VMFS-L」,詳細資訊請參考 VMware KB 2004299KB 77009文章內容。
圖 7、舊版 ESXi 6.x 和新版 ESXi 7 系統分割區差異示意圖

此外,過去習慣使用 USB 或 SD Card 安裝 ESXi 虛擬化平台的管理者,可能會發現安裝新版 ESXi 7 之後,無法看到任何 VMFS Datastore 分割區 ?原因在於,新版 ESXi 7 版本中的 ESX-OSData 系統分割區,最大會佔用「128 GB」儲存空間(如圖 8 所示),並且當本機磁碟劃分完預設系統分割區之後,剩餘空間至少要大於「4 GB」時才會額外建立「VMFS-6 Datastore」。簡單來說,當安裝 ESXi 7.0 的本機硬碟空間「小於 142 GB」時,系統便不會建立 VMFS-6 Datastore。

圖 8、新版 ESXi 7.0 系統分割區儲存空間配置示意圖

值得注意的是,當新版 ESXi 7.0 找不到本機磁碟時,將會採用「降級模式」(Degraded Mode)運作並禁用某些系統功能,同時「/scratch」分割區將會直接連接到「/tmp」掛載點。因此,在 VMware 官方最佳建議作法中,為了確保 ESXi 能夠極大化效能和資源調度,請避免採用降級模式運作 ESXi 虛擬化平台。
仍然希望將 ESXi 安裝在 USB 或 SD Card 的管理人員,請參考 VMware KB 2004784 文章內容,注意安裝程序或系統分割區規劃細節。



最佳化 ESXi 電源管理原則

如前所述,在 x86 硬體伺服器的 UEFI 組態設定中,調整為採用「Virtualization – Max Performance」選項,讓硬體效能層級的效能方面能夠極大化。

然而,ESXi 虛擬化平台層級也必須要互相搭配才能相得益彰,舉例來說,ESXi 預設電力原則組態設定值為「Balanced」,這表示 ESXi 虛擬化平台會感知並使用硬體伺服器的節省電源功能,讓 ESXi 無法發揮最大效能。因此,請將 ESXi 電力原則設定值調整為「High performance」(如圖 9 所示),不使用任何硬體伺服器的節省電源功能,確保 ESXi 層級的電源管理設定和硬體伺服器互相搭配,達到效能最大化的效果。

圖 9、應該將 ESXi 電力原則設定值調整為 High performance



採用新式 SCAv2 資源調度機制

由於,Intel CPU 處理器爆發嚴重的 L1TF 漏洞攻擊,所以從 ESXi 6.7 U2 版本之後支援新式「SCAv2」(Side-Channel Aware Scheduler v2)資源調度機制,除了確保運作於 ESXi 虛擬化平台上,VM 虛擬主機和容器內的服務不受 L1TF 漏洞影響之外,也能確保 VM 虛擬主機和容器能夠完整使用多個運算核心,確保運作效能不受影響。
舊有的 SCAv1資源調度機制,僅能避免 VM 虛擬主機和容器不受 L1TG 漏洞影響,但運作效能卻至少下降 30 %。有關 SCAv1 和 SCAv2 資源調度差異的詳細資訊,請參考 VMware KB 55806文章內容。
如圖 10 所示,採用新版 SCAv2 資源調度機制時,除了能夠不受 L1TF 漏洞影響之外,與舊版 SCAv1 運作相同的工作負載,例如,HammerDB on SQL Server,更能確保運作效能不受影響。

圖 10、新版 SCAv2 資源調度機制不受 L1TF 漏洞影響更確保運作效能

值得注意的是,新版 ESXi 7.0 預設組態設定並未採用新版 SCAv2 資源調度機制,管理人員可以登入 vCenter Server 管理介面後,依序點選「Datacenter > Cluster > ESXi Host > Configure > System > Advanced System Settings」項目,組態設定VMkernel.Boot.hyperthreadingMitigation = trueVMkernel.Boot.hyperthreadingMitigationIntraVM = false後(如圖 11 所示),重新啟動 ESXi 主機以便套用生效。
管理人員也可以採用 ESXCLI 指令模式,為 ESXi 主機組態設定採用新版 SCAv2 資源調度機制,詳細資訊請參考 VMware KB 67577 文章內容。
圖 11、組態設定 ESXi 7.0 採用新版 SCAv2 資源調度機制



CRX 虛擬主機-最佳化容器運作環境

在過去的 vSphere 虛擬化基礎架構中,管理人員若要建立 Kubernetes 叢集時,必須在 ESXi 虛擬化平台中透過「Hypervisor」機制,將底層 x86 硬體伺服器資源抽象化後,提供給上層 VM 虛擬主機使用,然後在 VM 虛擬主機中安裝 Linux 作業系統後,建構 Kubernetes 叢集並運作容器等工作負載,然後透過 vSphere 叢集提供硬體資源,給上層傳統 VM 虛擬主機和容器進行資源調度(如圖 12 所示)。

圖 12、傳統 Kubernetes 運作在 vSphere 虛擬基礎架構功能比較示意圖

現在,新版 vSphere 7 with Kubernetes 運作架構,採用新世代叢集運作架構「Supervisor」。簡單來說,過去 vSphere 虛擬化基礎架構僅能建構傳統的 Kubernetes 叢集,而 Supervisor Cluster 新世代叢集,則內建整合於 ESXi 中並將傳統管理工具 Kubelet 整合為「Spherelet」

值得一提的是,在 Supervisor Cluster 中運作的 vSphere Pod,以及 vSphere Pod 內運作的 1 個或多個容器,都是在獨立的 VM 虛擬主機中運作稱為「CRX」,除了提供容器更好的安全性隔離環境之外,因為 CRX 虛擬主機採用「Container Runtime for ESXi」的設計,包括 Linux 核心也都經過最佳化調校,所以能為容器工作負載提供最佳運作環境(如圖 13 所示)。

圖 13、CRX 虛擬主機運作架構示意圖

在 vSphere Pod 運作規模的部份,每個 Supervisor Cluster 最多可運作 8,000 台 CRX 虛擬主機,每台 ESXi 成員主機可運作 1,000 台 CRX 虛擬主機(如圖 14 所示)。在 CRX 虛擬主機的部份,它能夠在「100 ms」內便啟動完成,相較於在傳統 VM 虛擬主機內安裝 Linux 作業系統,並組態設定 Container Runtime 是很難達成的。最後,在 VMware 官方測試結果中,CRX 虛擬主機內的容器運作 Java 工作負載時,相較於傳統的 Kubernetes Pod 傳輸量多出「30 %」,相較於裸機運作的 Linux 主機也多出「8 %」的效能。

圖 14、vSphere Pod、CRX 虛擬主機、容器運作架構示意圖





全新 vSphere DRS v2.0 自動化負載平衡機制

此外,全新打造的 vSphere 7 在叢集特色功能中,也增強原有的運作機制以便因應新世代的工作負載。舉例來說,自動化負載平衡機制「vSphere DRS」,在第一版在 2006 年時首度發佈。時至今日,最新 vSphere 7 版本的 DRS 為了因應現代化工作負載,同樣也進行相對應的功能改進和增強。簡單來說,過去的 vSphere DRS v1.0 著重在「叢集」(Cluster),而新版 vSphere 7 DRS v2.0則著重在「工作負載」(Workload)的部份,以便最佳化調度 VM 虛擬主機、Pods、容器……等工作負載。

新版 vSphere 7 DRS v2.0 自動化工作負載平衡邏輯,採用「Goodness Modelling」運作機制,不將資源負載平衡的重點放在「叢集中 ESXi 成員主機」身上,而是將工作負載平衡的焦點放在「VM 虛擬主機」身上,並且舊版的 vSphere DRS v1.0 「每隔 5 分鐘」判斷一次資源平衡狀態,而新版 vSphere DRS v2.0則改為「每隔 1 分鐘」便檢查一次 VM 虛擬主機的資源平衡狀態,計算叢集中運作的 VM 虛擬主機工作負載得分「VM DRS Score」,然後判斷以 vMotion 線上遷移 VM 虛擬主機後,對於其它 VM 虛擬主機的影響為何,以達成最佳化且更細緻的資源使用率。VM DRS Score 的得分範圍共有 5 個部份,分別是「0-20 %、20-40 %、40-60 %、60-80 %、80-100 %」,當 VM 虛擬主機被系統判定得分為「80-100 %」時,表示這台 VM 虛擬主機的資源使用情況良好未發生資源爭奪的情況(如圖 15 所示)。

圖 15、增強後的 vSphere 7 DRS v2.0 採用 Goodness Modelling 判斷邏輯



增強式 DRS 動態資源調整

新版 vSphere DRS v2.0 自動化負載平衡機制,除了針對不同工作負載進行最佳化負載平衡調度之外,新增「DRS with Scalable Shares」的增強功能,可以有效改善過去Resource Pool規劃上可能出現盲點的問題,確保 VM 虛擬主機和容器可以取得高份額資源。

舉例來說,叢集中 CPU 運算資源總共為「30 GHz」,其中管理人員建立二個Resource Pool(Dev / Production),其中Resource Pool 1(Dev)設定的 CPU Shares 為「normal」,總共取得三分之一的資源也就是 10 GHz,而 Resource Pool 2(Production)的 CPU Shares 則為「high」,總共取得三分之二的資源也就是 20 GHz(如圖 16 所示)。

圖 16、舊版 Resource Pool 可能出現的資源調度盲點

然而,因為運作在 Resource Pool 2 中有「二台」VM 虛擬主機,所以每台也是取得「10 GHz」運算資源,與 Resource Pool 1 的 VM 虛擬主機取得一樣的資源,假設 Resource Pool 2 中運作「四台」VM 虛擬主機時,那麼結果將會更慘,因為每台 VM 虛擬主機僅能分得「5 GHz」的運算資源。

現在,同樣的 Resource Pool 組態設定,但是啟用「DRS with Scalable Shares」增強功能後,由於 vSphere 7 DRS v2.0 採用增強的「動態計算」(Dynamically Calculates)運作機制,所以同樣的 VM 虛擬主機數量,管理人員可以發現在 Resource Pool 1(Dev)中的 VM 虛擬主機取得「6 GHz」運算資源,而 Resource Pool 2 的二台VM虛擬主機分別取得「12 GHz」運作資源,有效改善過去 Resource Pool 規劃上可能出現盲點的問題(如圖 17 所示)。

圖 17、新版 Resource Pool 解決資源調度盲點

那麼管理人員如何啟用 DRS with Scalable Shares 增強功能? 請在 vCenter Server 管理介面中,依序點選Cluster > Configure > vSphere DRS > Edit > Additional Options項目,然後勾選「Enable scalable shares for the resource pools on this cluster」選項即可(如圖 18 所示)。

圖 18、為 vSphere 叢集啟用 DRS with Scalable Shares 增強功能





實戰演練 vCenter Server 自動化更新機制

在過去的 vCenter Server 版本中,針對 vCenter Server 進行更新或安全性修復時,需要管理人員手動介入並執行相關指令才行。現在,透過新版 vCenter Server 7 Update Planner 機制,將過去管理人員手動查詢新版、確認更新版本相容性、版本升級資訊……等,全部合併在 vCenter Server 管理介面中,並且自動化處理的工作流程內,達到 vCenter Server 生命週期管理的目的。
Update Planner 為 vSphere Lifecycle Manager 的一部份,主要用途便是處理 vCenter Server 更新和安全性修復程序。
值得注意的是,Update Planner 機制僅支援新版 vCenter Server 7 和後續更新版本,無法支援舊版 vCenter Server 6.x 升級至新版 vCenter Server 7,並且管理人員必須啟用「VMware 使用者體驗改善計劃」(VMware Customer Experience Improvement Program,CEIP)後(如圖 19 所示),才能順利使用 Update Planner 更新機制。
vCenter Server 必須能存取網際網路,或透過 Proxy 代理伺服器存取網際網路,才能順利啟用 VMware CEIP 使用者體驗改善計劃。
圖 19、啟用 VMware CEIP 使用者體驗改善計劃後才能使用 Update Planner 更新機制

簡單來說,Update Planner 更新機制,可以幫助管理人員管理 vCenter Server 的更新和版本升級,同時還能建立相容性報表。登入 vCenter Server 管理介面後,按下「VIEW UPDATES」「Updates Available」鈕之後,系統便會自動觸發執行 vCenter Server Update Planner 更新機制(如圖 20 所示)。

圖 20、準備執行 vCenter Server Update Planner 更新機制

在 Update Planner 視窗中(如圖 21 所示),可以看到適合 vCenter Server 更新的版本、Build number、類型、嚴重程度、發行說明……等,以及最重要的此更新是否需要重新啟動 vCenter Server,倘若「Reboot Required」欄位為「Yes」時,那麼管理人員應該挑選離峰或維護時間進行 vCenter Server 的更新作業,並重新啟動 vCenter Server 以便套用生效。
本文實作環境為單純 vSphere 虛擬化運作架構,所以產品互通性檢查結果只有看到 vSphere Hypervisor 的部份。
圖 21、查詢 vCenter Server 更新項目和檢查產品互通性

接著,請登入 vCenter Server 系統管理介面(Port 5480),可以看到目前 vCenter Server 版本為「7.0.0.10100」,也就是 vCenter Server GA 版本,而最近的更新則是「7.0.0.10400」也就是 vCenter Server 7.0b 版本。在安裝更新之前,管理人員可以按下 Pre-update checks 欄位的「RUN PRE-UPDATE CHECKS」,通過系統檢查作業狀態為「Passed」後(如圖 22 所示),便可以準備下載和安裝 vCenter Server 更新。
有關 vCenter Server 版本和 Build Number 的詳細對應資訊,請參考 VMware KB 2143838文章內容。
圖 22、Update Planner 更新機制檢查安裝來源是否適用於 vCenter Server

通過檢查後,請按下「Stage and Install」鈕並同意使用者授權條款後,系統會再次提醒管理人員,執行更新作業之前必須先備份 vCenter Server,以避免發生非預期的錯誤造成 vCenter Server 運作失敗。備份作業完成後,請勾選「I have backed up vCenter Server and its associated databases.」項目後(如圖 23 所示),即可按下 Finish 鈕開始執行 vCenter Server 更新下載和安裝作業。

圖 23、備份作業完成後鈕開始執行 vCenter Server 更新下載和安裝作業

順利下載更新並安裝完成後(如圖 24 所示),重新整理管理介面即可看到,vCenter Server 版本從原本的「7.0.0.10100」,順利更新為最新釋出的「7.0.0.10400」版本(如圖 25 所示)。

圖 24、vCenter Server 順利下載更新並安裝完成

圖 25、順利更新 vCenter Server 至 7.0.0.10400 版本





結語

透過本文的深入剖析和實作演練之後,讀者已經了解全新 vSphere 7 無論在 vSphere 基礎架構,或是 vCenter Server 管理平台及 VM 虛擬主機和容器層級,都增加許多亮眼特色功能或增強原有機制。值得注意的是,管理人員在一開始規劃 x86 硬體伺服器時,在規格選擇上以及 BIOS/UEFI 針對虛擬化組態的部份,是比較容易疏忽的地方,只要注意這些小細節並搭配最佳化組態設定,定能輕鬆打造出高效能和高可用性的 vSphere 虛擬化基礎架構。

[站長觀點] 數位轉型之道 - 人員 / 流程 / 技術

$
0
0


前言

「數位轉型」(Digital Transformation,DX)並非一個新的名詞,而是已經在國內外推動多年能夠幫助企業和組織,在商業數位化浪潮下提供給使用者更好的消費和操作體驗。

近期,VMware 委託 Vanson Bourne 科技市調機構,在全球 17 個國家和地區於 2020 年 3 月至 4 月期間,針對 5,000 位 App Devs 應用程式開發商、BDMs 商業決策人員、ITDMs 決策人員進行調查。在「VMware APJ Newsroom – The Great Digital Transformation Debate」的調查報告中指出,企業和組織在 COVID-19 疫情期間,除了迅速提升數位轉型的重點之外,更應該提供「以人為本」(Human-Centric)的使用者體驗(如影片 1 所示)。


影片 1、數位轉型成功要素之一「以人為本的使用者體驗」


僅管企業和組織了解數位轉型的重要性,並且在亞太地區受訪的企業和組織結果中顯示,有高達「97 %」的受訪人員從數位轉型工作中受益(如圖 2 所示)。但是,也有高達「90 %」受訪人員表示,在數位轉型的過程中受到阻礙而停滯不前,舉例來說,太多的安全性和監管規範導致無法前進的障礙高達 32 %,這樣的比例相較於全球平均值多出 5 個百分點、現有的應用程式和營運系統無法有效整合達 27 %、內部太多平台讓複雜度提升導致交付速度變慢達 27 %……等。

圖 2、亞太地區受訪人員對於數位轉型的認同和遭遇的阻礙比例


然而,一場 COVID-19 世紀病毒疫情來襲,除了改變大家工作和生活的方式之外,同時也意外的迫使企業和組織不得不加速整個數位轉型的腳步。舉例來說,微軟 CEO Satya Nadella在分享季度報告時表示,在疫情高峰的 4 月份時期,短短一天內便有超過 2 億的使用者參與線上會議,並產生超過 41 億分鐘的會議記錄(如圖 3 所示),並總結一段話「企業數位轉型 2 年的進度,一場 COVID-19 疫情襲來僅花 2 個月時間便達成預定目標」。

圖 3、因為COVID-19世紀疫情而不斷倍數成長的零接觸線上會議


同時,在疫情高峰時 Twitter 上更有一則流行的簡易問答題,請教網友們在公司內誰才是真正的數位轉型推手? 網友們一致回答是 COVID-19(如圖 4 所示),同樣顯示一場 COVID-19 世紀疫情,不僅改變你我的生活和工作方式,也加速數位轉型的腳步。

圖 4、Twitter 上數位轉型的趣味問答


事實上,數位轉型並非只是單純將傳統資訊進行數位化變成數位資料而已,在 VMware APJ Newsroom 提供的調查報告中便指出幾個關鍵點和趨勢,有助於企業和組織在數位轉型的旅程上參考和反思。舉例來說,在調查報告中指出,數位轉型的重點有許多項目,諸如改善業務效率、提供使用者體驗、升級現有技術平台、降低成本……等(如圖 5 所示)。

圖 5、數位轉型的重點項目和優先順序


事實上,無論這些數位轉型重點有多少項目,其實數位轉型成功的關鍵要素在於三大支柱,分別是 「人」(People)、「流程」(Process)、「技術」(Technology),呼應調查報告以人為本的概念,對於企業和組織內部人員來說,數位轉型必須要讓各種不同技能和思維的人員參與其中,例如,具備「軟體思維」(Software Mindset)「成長心態」(Growth Mindset)的人員……等。

同時,負責領導團隊的決策人員,例如,CEO,由具備技術背景的人員擔任時則組織前往數位轉型的路途上,除了目標更為明確之外阻礙也將減少。因此,企業和組織倘若未將人員擺放在正確的位置和職務上(如圖 6 所示),那麼企業和組織在開始進行數位轉型之前便已經受到阻礙,前往數位轉型的路途上也將困難重重並且事倍功半。

圖 6、數位轉型成功的關鍵三大支柱之一「人」(People)


眾所周知,當天災來臨時考驗的便是各國的基礎建設,同樣的當 COVID-19 疫情來臨時,考驗企業和組織的便是數位轉型的基礎和後續應變的能力。首先,我們看看國內因為 COVID-19 疫情的影響,導致消費習慣的改變和比重,根據經濟部統計處統計數據,2020 年 3 月份的零售業營業額為 2,906 億元(年減少 3.4 %),其中綜合商品零售業包括免稅店年減 34.3 %,而電子購物及郵購業則反而年增 24.2 %(如圖 7 所示)。

圖 7、經濟部統計處 109 年 3 月統計數據


「流程」(Process)改變的部份,熟悉我的朋友都知道我深愛旅遊,在這次的 COVID-19 疫情中,旅遊行業受創嚴重程度可見一斑,然而從我經常參加的那間旅遊社的改變,也可以看出他們對於此次 COVID-19 疫情衝擊來臨時,快速改變原有商業流程的積極應變態度,舉例來說,因為疫情導致無法出團的情況下,反而讓無團可帶的導遊和領隊在線上分享各種旅遊經驗趣談,而原本只提供國外出團服務的情況下,也在很短時間內重新踩點國內景點和旅館後推出國內行程,原本僅專注在線上網站的經營,也趁勢改採現代化容器技術開發並提供手機 App 服務,種種改變不難看出經營團隊的用心和面對巨變時的冷靜,並且耐心等待下一次跳躍機會的來臨。

當然,在數位轉型關鍵三大支柱之一的「技術」(Technology)環節,個人最想舉例的首當台灣之光 TSMC 台積電。事實上,從全球半導體產業的過往歷史來看,Intel 多年來都是處於產業龍頭和領導者的角色,然而台積電在多年技術上不斷的累積和堅持之下,搭配另一家也是技術控的荷蘭廠商 ASML 的「極紫外光刻機」(Extreme UltraViolet lithography,EUV),除了已經正式量產 5 奈米之外,將於 2021 年開始試產並於 2022 年開始量產 3 奈米,甚至預計在 2023-2024 年量產 2 奈米,至此終於在先進製程上打敗全球眾家好手包括 Intel,甚至讓 Intel 轉而直接下單給台積電進行代工。
當然,這箇中原因仍有許多待討論之處,但是並非本文所要談論的重點便不再贅述。

至於,在 IT 技術領域的部份,於 VMware APJ Newsroom 提供的調查報告中也指出,倘若企業和組織尚未將自家營運服務打造為「雲端原生應用程式」(Cloud-Native Apps)的話,那麼在這波 COVID-19 疫情中,除了無法提供給使用者良好的操作體驗之外(如圖 8 所示),更可能因為服務品質低落而導致商譽損失並不斷流失客戶。

圖 8、企業和組織打造雲端原生應用程式的好處


舉例來說,大部份企業和組織皆已建置虛擬化基礎架構,雖然 VM 虛擬主機為主的虛擬化技術,有效解決多年來實體主機在維運管理和彈性靈活應用上的不足,然而在現代化應用程式導向的環境中卻逐漸不足,因為 VM 虛擬主機會隨著各家解決方案和格式上的不同,讓企業和組織在打造多雲或混合雲環境時遭遇阻礙。

因此,企業和組織應將營運服務打造為雲端原生應用程式(如圖 9 所示),例如,容器技術便是其中一種方式,搭配自建和各家公有雲業者皆已支援的 Kubernetes(K8s)容器調度平台,便能輕鬆讓企業和組織的營運服務及應用程式,輕鬆在自家地端資料中心或公有雲環境,甚至輕鬆穿梭於混合雲環境當中,不僅能夠加速企業及組織的產品交付速度,同時增加營運服務的靈活性、穩定性和擴充性,連帶也提升使用者體驗為企業品牌和形象加分。

圖 9、企業和組織打造現代化應用程式的7大好處



結語

雖然,全球遭遇 COVID-19 世紀疫情來襲,讓企業和組織面臨前所未有的困境,過去人們所習慣的生活方式和消費習慣也驟然改變。然而,在這波 COVID-19 世紀疫情中,倘若企業和組織能夠專注於數位轉型重要基石「人員、流程、技術」三大支柱,搭配具備軟體和成長思維的領導者和團隊成員,並且採用具備敏捷流程的雲端原生技術提供企業服務,那麼終將能夠帶領企業和組織渡過這波世紀疫情,甚至打破過去原有的市場佔比現況。

[站長開講] VMware vSphere 伺服器虛擬化實戰班

$
0
0

活動資訊

日期: 2020 年 9 月 12 日 ~ 9 月 20 日
時間: 09:00 ~ 17:00
地點: 台北資策會 (台北市復興南路一段 390 號 3 樓)
報名:資策會課程 - VMware vSphere 伺服器虛擬化實戰班







課程大綱

VMware vSphere 伺服器虛擬化平台硬體規劃最佳建議作法

VMware vSphere 伺服器虛擬化實作環境建置(Nested VMs / vSphere in a box)

建置 VMware vSphere 伺服器虛擬化平台

  • 建立Windows Server網域控制站和DNS名稱解析伺服器
  • 建立iSCSI Storage儲存伺服器
  • 安裝及管理 vSphere ESXi 虛擬化平台
  • 安裝及管理 vCenter Server 6.7 Update 3管理平台
  • 納管 vSphere ESXi 伺服器虛擬化平台
  • 建立 vSphere資料中心和叢集(Datacenter / Cluster)

建置 VMware vSphere 虛擬網路環境

  • 建立和管理vSS (vNetwork Standard Switch)
  • 建立和管理Port Group
  • 建立和管理Network Policy
  • 建立和管理VMkernel Port
  • 建立和管理NIC Teaming

VM 虛擬主機管理

  • 虛擬磁碟線上擴充/縮小(Disk Online Extend/Shrink)
  • 記憶體熱新增(Memory Hot Add)
  • CPU熱新增(CPU Hot Add)
  • 升級虛擬硬體版本(Upgrade VM Hardware version)
  • 限制VM虛擬主機網路和儲存資源(Limit Network Bandwidth/IOPS)

計畫性停機解決方案

  • 線上即時遷移(vSphere vMotion / DRS)
  • 儲存即時遷移(Storage vMotion / Storage DRS)
  • 無共用儲存即時遷移(vMotion Enhancements)

非計畫性停機解決方案

  • 高可用性(vSphere HA / Fault Tolerance)

ImportError: cannot import name 'ImageNotFound'

$
0
0

 


Question: ImportError: cannot import name 'ImageNotFound'

透過「pip3 install docker-compose」指令,在安裝作業完成後執行「docker-compose --version」指令,卻出現如下圖所示錯誤訊息「ImportError: cannot import name 'ImageNotFound'」?




Answer:

簡單來說,這個問題造成的原因在於,系統在安裝 docker-compose之前「docker」或「docker-py」只能擇一安裝,當「docker 和 docker-py」同時安裝,然後再安裝 docker-compose 時便會出現如上圖的問題,詳細資訊請參考 docker_service - Unable to load docker-compose. Try `pip install docker-compose`. Error: cannot import name ImageNotFound · Issue #37958 · ansible/ansible · GitHub 討論串。

因此,請先將 docker 和 docker-py 移除後擇一安裝即可,下列指令是先移除 docker 和 docker-py 之後僅安裝 docker:
pip3 uninstall -y docker docker-py
pip3 install docker

AWX is currently upgrading. This page will refresh when complete.

$
0
0



Question:AWX is currently upgrading. This page will refresh when complete.

當建立 Ansible AWX 環境後,嘗試連結 Ansible AWX Portal 登入畫面時,卻出現下列圖示表示「AWX is currently upgrading. This page will refresh when complete.」。然而,即使經過一小時了還是停留在這個畫面 (過往經驗,這個畫面會在 2 ~ 3 分鐘之內完成)




Answer:

簡單來說,造成這個問題的原因是 Ansible AWX 在運作初始化的過程中,負責資料庫工作任務的 awx_postgres容器發生問題所導致。詳細資訊可以參考 Vanilla install 11.0.0 fails · Issue #6792 · ansible/awx · GitHub討論串,以及 [AWX] How to install AWX 11.2.0 by Python3 and Docker-Compose – 蒼月之嵐文章。

首先,可以透過「docker-compose logs -f」指令,確認是否為 awx_postgres 容器發生問題所導致,應該可以看到幾個錯誤的關鍵字:
  • ERROR:   relation "conf_setting" does not exist at character 158
  • ERROR:   relation "main_instance" does not exist at character 24



解決方法,便是將 Ansible AWX 容器停止並刪除後,重新啟動 Ansible AWX 容器即可。
sudo docker-compose down
sudo docker-compose up -d
sudo docker-compose logs -f




重新啟動 Ansible AWX 容器後 (初始化動作約 2 ~ 3 分鐘之內完成 ),再次執行「docker-compose logs -f」指令,即可發現相關容器正常運作,並且 awx_taskawx_web容器會顯示「RESULT 2」和「OKREADY」初始化完成資訊。



此時,再度嘗試連結 Ansible AWX Portal 登入畫面時,便會順利看到 Ansible AWX Portal 登入畫面。


網管人 177 期 - 雲端 Windows 虛擬桌面零硬體免建構立享 VDI

$
0
0


網管人雜誌

本文刊載於 網管人雜誌第 177 期 - 2020 年 10 月 1 日出刊,NetAdmin 網管人雜誌為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。





本文目錄






前言

「Windows 虛擬桌面」(Windows Virtual Desktop,WVD),乍聽之下並非新的名詞和應用。早在過去,企業和組織便已經在內部資料中心內,透過虛擬化技術打造「虛擬桌面基礎架構」(Virtual Desktop Infrastructure,VDI),並運作 Windows 虛擬桌面或 Linux 虛擬桌面。

那麼,管理人員對於 WVD 虛擬桌面的第一個疑問,通常是它和過去的 VDI 相較之下有何不同? 簡單來說,過去在建構 VDI 虛擬桌面基礎架構時,管理人員必須自行建構和管理所有的基礎架構,舉例來說,從底層的實體網路、儲存設備、虛擬化基礎架構……等,搭配上層運作的 Windows Server 並建構「遠端桌面服務」(Remote Desktop Services,RDS),其中 RDS 遠端桌面服務還有許多運作元件,例如,RD Session Host、RD Connection Broker、RD Gateway、RD Web Access……等(如圖 1 所示),可以想像在初期架構導入和建置費用以及後續管理維護上,對於企業和組織來說需要一筆不小的 IT 預算,對於管理人員來說則產生各式各樣的大量工作任務。

反觀 WVD 虛擬桌面,由於建構在 Azure 公有雲之上,因此導入初期便能達到快速部署的目的,並且無須投入大量硬體設備採購預算,此外還能提供企業和組織對於 WVD 虛擬桌面的安全監控機制,後續也能輕鬆管理 WVD 虛擬桌面的安全性更新。

圖 1、RDS 遠端桌面服務基礎部署架構示意圖





WVD 虛擬桌面簡介

在 2019 年 3 月時,微軟發佈 WVD 虛擬桌面公開預覽版本,而在 2019 年 9 月則正式發佈 WVD 虛擬桌面,除了具備「Windows 10 多重工作階段」(Windows 10 Multi-Session)機制之外(如圖 2 所示),也將 2018 年收購的 FSLogix 桌面虛擬化技術,導入至 WVD 虛擬桌面中,以便提供最佳化後的 Office 365 服務。
事實上,新增的 Windows 10 多重工作階段機制,過去稱為 Windows 10 EVD(Enterprise for Virtual Desktop)。簡單來說,允許執行多重連線工作階段,這在過去只有 Windows Server 才能支援此運作機制。
圖 2、Windows 10 多重工作階段運作機制示意圖

過去,採用 RDS 虛擬桌面基礎架構時,使用者僅能連線 Windows Server 後執行和存取應用程式,而 WVD 虛擬桌面則提供使用者直接連線至 Windows 10 桌面環境,達到最佳使用者操作體驗。
除了透過 PC 桌機和 NB 筆電連接 WVD 虛擬桌面之外,也支援透過 Mac、iOS、Android、HTML 5瀏覽器連接至 WVD 虛擬桌面。

此外,隨著 Windows 7 和 Windows Server 2008 R2 延伸支援服務已經於 2020 年 1 月終止,然而還是有許多企業和組織因為應用程式環境或其它因素,可能還沒正式遷移至 Windows 10 和 Windows Server 2019 環境當中。因此,微軟提供企業和組織在 WVD 虛擬桌面中,運作 Windows 7 和 Windows Server 2008 R2環境,並得到免費延伸安全性更新支援至「2023 年 1 月」。

在今年的 2020 年 4 月時,微軟發佈 WVD 虛擬桌面「整合 Azure ARM」的公開預覽版本,並在 2020 年 7 月正式發佈,幫助管理人員能夠更方便的部署和管理 WVD 虛擬桌面運作架構。簡單來說,整合至 Azure ARM 之後,管理人員便能提供「角色型存取控制」(Role-Based Access Control,RBAC)角色,並且更容易將資源和 Azure AD 整合,同時搭配 Azure Monitor Log 和 Log Analytics 機制,輕鬆幫助管理人員管理和維護 WVD 虛擬桌面運作架構。

此外,受到 COVID-19 疫情的影響,除了採用 WVD 虛擬桌面使用者人數增多之外,更多的是透過 WVD 虛擬桌面搭配 Microsoft Teams 進行線上會議流暢度的需求。因此,微軟也順勢推出增強的「音訊 / 視訊重新導向」(Audio/Video Redirection)機制(如圖 3 所示),讓使用者在 WVD 虛擬桌面環境中,也能得到最佳的視訊會議體驗。

圖 3、WVD 虛擬桌面音訊和視訊重新導向機制示意圖





實戰 WVD 虛擬桌面

在 WVD 虛擬桌面運作環境中,企業和組織可以在地端資料中心內建立 DC 網域控制站,或者是採用 Azure 公有雲中的 ADDS(Active Directory Domain Services)服務。在本文實作環境中,選擇在地端資料中心內建立 DC 網域控制站,然而因為篇幅的關係,便不贅述如何建置地端資料中心 DC 網域控制站,以及如何組態設定 Azure AD Connect 與 Azure AD 同步作業。簡單來說,完成 Azure AD Connect 與 Azure AD 同步作業後,將會把網域使用者帳戶和相關資訊同步至 Azure AD 環境中(如圖 4 所示)。


在本文實作環境中,已經組態設定地端資料中心內 DC 網域控制站(網域為 wvd.weithenn.org),透過 Azure AD Connect 機制與 Azure AD 完成同步作業(如圖 5 所示)。

圖 5、組態設定 Azure AD Connect 機制與 Azure AD 完成同步作業



允許 WVD 虛擬桌面服務存取 Azure AD

在建立 WVD 虛擬桌面主機集區之前,必須先允許 WVD 虛擬桌面服務可以存取 Azure AD,以便屆時在雲端環境中的 WVD 虛擬桌面,能夠順利透過 Azure AD 進行身份驗證程序(如圖 6 所示)。


首先,請確認使用的 Azure AD「Tenant ID」。請點選屆時使用的 Azure AD 後按下 Properties,即可看到此 Azure AD 的 Tenant ID,然後按下複製圖示將 Tenant ID 進行複製。接著,在瀏覽器開啟新的頁籤後連結至「https://rdweb.wvd.microsoft.com」頁面,將 Consent Option 欄位選擇至「Server App」,然後在 AAD Tenant GUID or Name 貼上剛才所複製的 Azure AD Tenant ID(如圖 7 所示),確認無誤後按下 Submit 鈕。

圖 7、準備允許 WVD 虛擬桌面服務可以存取 Azure AD

此時,請採用具備 Azure AD 全域管理員權限的使用者帳號登入,系統將會顯示屆時 WVD 虛擬桌面服務,可以通過 Azure AD 身份驗證程序後,存取 Azure AD 目錄資料、群組、使用者設定檔……等,請按下 Accept 鈕允許存取動作,成功允許後將會出現「AAD Application has been successfully registered」訊息。
這個動作將會在 Azure AD Enterprise Applications 中,建立「Windows Virtual Desktop AME」項目。

同樣的動作,請再次連結至「https://rdweb.wvd.microsoft.com」頁面,這次請將 Consent Option 欄位選擇至「Client App」,並貼上 Azure AD Tenant ID 後按下 Submit 鈕,並再次以 Azure AD 全域管理員權限的使用者帳號登入,請按下 Accept 鈕允許存取 Azure AD,成功允許後將會出現「AAD Application has been successfully registered」訊息。
這個動作將會在 Azure AD Enterprise Applications 中,建立「Windows Virtual Desktop Client」項目。



指派 TenantCreator 應用程式角色

接著,使用 Azure AD 全域管理員權限的使用者帳號登入後,將 TenantCreator 應用程式角色,指派給指定的 Azure AD 使用者,以便使用者屆時能夠通過 Azure AD 身份驗證機制後,連線至與 Azure AD 關聯的 WVD 虛擬桌面租用戶。

在進行 TenantCreator 應用程式角色指派之前,請先確認地端資料中心內的 DC 網域控制站,是否已經順利將網域使用者帳號,透過 Azure AD Connect 機制同步至 Azure AD 當中。在本文實作環境中,可以看到 Source 欄位為「Windows Server AD」的使用者帳號,便是由地端資料中心同步至雲端 Azure AD 的使用者帳號(如圖 8 所示)。
倘若,未條列出地端資料中心內網域使用者帳號,請確認 Azure AD Connect 機制是否順利運作。
圖 8、確認地端網域使用者帳號已同步至 Azure AD

請在 Azure Portal 中,依序點選「Azure AD > Manage > Enterprise Applications > Windows Virtual Desktop AME > Assign Users and Groups > Add User」項目,在本文實作環境中,指派地端資料中心內名稱為「weithenn.wang」的網域使用者帳號,然後按下 Assign 鈕進行指派的動作。當指派完成後,便能看到指派的使用者帳號角色欄位為「TenantCreator」(如圖 9 所示)。

圖 9、指派網域使用者帳號 weithenn.wang 為 TenantCreator



建立 WVD 虛擬桌面租用戶

在建立 WVD 虛擬桌面「租用戶」(Tenant)之前,管理人員必須先準備二項 ID,分別是「Azure AD Tenant ID」和「Azure Subscription ID」,並且已經準備好 Windows Virtual Desktop Cmdlets 的 PowerShell 執行環境。
有關 WVD Cmdlets 的 PowerShell 執行環境,請參考 Microsoft Docs - Windows Virtual Desktop Cmdlets for Windows PowerShell文章內容。

首先,我們將會使用到的 Broker URL、Azure AD Tenant ID、Azure Subscription ID 這三項內容,分別寫入變數名稱 $brokerurl、$addTenantId、$azureSubscriptionId,然後先執行「Add-RdsAccount -DeploymentUrl $brokerurl」指令,系統將會出現身份驗證視窗,請將剛才指派為 TenantCreator 的 weithenn.wang 網域使用者帳號鍵入,順利通過身份驗證程序後,執行「New-RdsTenant -Name "Weithenn-WVD" -AadTenantId $aadTenantId -AzureSubscriptionId $azureSubscriptionId」指令,建立名稱為「Weithenn-WVD」的 WVD 虛擬桌面租用戶(如圖 10 所示)。

圖 10、建立名稱為 Weithenn-WVD 的 WVD 虛擬桌面租用戶



建立 WVD 虛擬桌面主機集區

完成建立 WVD 虛擬桌面主機集區的前置作業後,請在 Azure Portal 管理介面中,在上方搜尋框鍵入關鍵字「Windows Virtual Desktop」,即可導向至建立 WVD 虛擬桌面頁面然後按下「Create a host pool」,準備建立 WVD 虛擬桌面基礎架構「主機集區」(Host Pool)。
在建立主機集區之前,請先確認使用的 Azure 訂閱帳戶,已經啟用「Microsoft.DesktopVirtualization」資源提供者項目,以避免遭遇到非預期產生的錯誤。

在 Basics 頁面中,除了選擇採用的 Azure 訂閱帳戶和「資源群組」(Resource Groups),以及 WVD 虛擬桌面的「主機集區」名稱之外,值得注意的是選擇的 Azure 資料中心,因為屆時 WVD 虛擬桌面和相關的「中繼資料」(Metadata),將會儲存在所選擇的 Azure 資料中心內,本文實作環境選擇採用「East US」資料中心。
由於最新整合 Azure ARM 的 WVD 虛擬桌面正式發佈時間不長,因此目前支援的 Azure 資料中心,主要都是美國區域的資料中心,過去發佈的 WVD 虛擬桌面版本名稱改為「傳統」(Classic)仍可繼續使用。

在「主機集區類型」(Host Pool Type)的部份,管理人員可以選擇採用「個人」(Personal)或是「集區」(Pooled)類型。當管理人員選擇採用個人類型時,必須在下方指派類型的欄位選擇採用「自動」(Automatic)或是「直接」(Direct)指派類型。倘若選擇採用集區類型時,則必須鍵入「最大工作階段限制」(Max Session Limit)數值,以便組態設定 WVD 虛擬桌面在單一工作階段中,主機允許連線的最大使用者數量,同時也必須選擇採用的負載平衡演算法為「廣度優先」(Breadth-First),或者是「深度優先」(Depth-First)。在本文實作環境中,選擇「集區」類型和最大使用者連線數量為「5」,並採用「廣度優先」負載平衡演算法(如圖 11 所示)。

圖 11、組態設定 WVD 虛擬桌面主機集區基本資訊



建立 WVD 虛擬桌面並加入網域

在 Virtual Machine 頁面中,倘若管理人員已經自行建立好 VM 虛擬主機,並且要將這些建立完成的 VM 虛擬主機,與屆時建立的主機集區搭配使用的話請選擇「No」。倘若,在主機集區建立過程中,希望順便建立新的 WVD 虛擬桌面並且註冊到主機集區的話請選擇「Yes」。
在本文實作環境中,將會採用「RG-EastUS-WVD-vnet」虛擬網路,並且虛擬網路中的「DNS Servers」項目,已經指定為 DC 網域控制站「10.0.0.4」,才能確保屆時 WVD 虛擬桌面順利找到 DC 網域控制站,並且加入網域當中。

在本文實作環境中,將會建立全新的 WVD 虛擬桌面並註冊到主機集區所以選擇「Yes」。此時,系統將會展開建立 WVD 虛擬桌面的相關欄位(如圖 12 所示),下列為相關欄位的組態設定說明:
  • Resource Group:選擇 WVD 虛擬桌面所要使用的 Azure 資源群組,可以選擇和先前主機集區不同的 Azure 資源群組,本文實作為「RG-EastUS-WVD」。
  • Virtual Machine Location:選擇 WVD 虛擬桌面所要使用的 Azure 資料中心,可以選擇和先前主機集區不同的 Azure 資源群組,本文實作為「East US」。
  • Virtual Machine Size:屆時建立 WVD 虛擬桌面採用的 VM 虛擬主機規模大小,預設值為採用「Standard D2s v3」規模,也就是每台 WVD 虛擬桌面採用的硬體資源為「2 vCPU 和 8 GB vRAM」。當然,管理人員可以點選 Change size,挑選更小或更大的 VM 虛擬主機規模大小。本文實作調整為「Standard D4s v3(4 vCPU 和 16 GB vRAM)」。
  • Number of VMs:首次建立 WVD 虛擬桌面的 VM 虛擬主機數量,本文實作組態設定建立「3」台 WVD 虛擬桌面。值得注意的是,在建立主機集區的流程中,這個 WVD 虛擬桌面的 VM 虛擬主機數量最大值為「400」台,倘若需要更多數量 WVD 虛擬桌面的話,可於主機集區建構完成後再新增 WVD 虛擬桌面的數量。
  • Name Prefix:組態設定 WVD 虛擬桌面的電腦名稱首碼,屆時系統會在電腦名稱首碼之後,加上「-」和數值「0」開始依序遞增。本文實作電腦名稱首碼為「WVD-VM」。
  • Image Type:請選擇 WVD 虛擬桌面所要採用的 VM 虛擬主機映像檔,支援採用「資源庫」(Gallery)或「Blob 儲存體」(Storage Blob)。本文實作選擇採用資源庫。
  • Image:由於選擇採用資源庫,所以可以直接選擇微軟官方已經打包好的 Windows 10 企業版印象檔。倘若,下拉式選單中沒有列出所要採用的 VM 虛擬主機映像檔時,請按下「Browse all images and disks」列出所有 VM 虛擬主機映像檔後,選擇所要採用的 VM 虛擬主機映像檔。本文實作環境採用最新「Windows 10 Enterprise multi-session,version 2004」映像檔。
  • OS Disk Type:選擇 WVD 虛擬桌面作業系統磁碟類型,分別支援「標準 HDD、標準 SSD、進階 SSD」,本文實作環境採用「Standard SSD」磁碟類型。
  • Virtual Network:選擇 WVD 虛擬桌面採用的虛擬網路環境。請確認這個虛擬網路環境,可以和 DC 網域控制站互相連線,因為屆時的 WVD 虛擬桌面必須透過這個虛擬網路環境,加入 DC 網域控制站所管理的網域環境。本文實作環境為「RG-EastUS-WVD-vnet」虛擬網路。
  • Subnet:選擇虛擬網路環境採用的 IP 網段,本文實作環境為「10.0.0.0/24」IP 網段。
  • Public IP:選擇 WVD 虛擬桌面建立後是否指派公用 IP 位址或使用私有 IP 位址,本文實作環境選擇「No」,也就是採用私有 IP 位址,避免 WVD 虛擬桌面採用公用 IP 位址,直接和網際網路接觸產生安全性風險。
  • Network Security Group:選擇管理 WVD 虛擬桌面的 NSG 網路安全性群組,分別支援「無、基本、進階」,本文實作環境選擇「Advanced」和已經建立的「ws2019-wvd-dc-nsg」網路安全性群組。
  • Specify Domain or Unit:選擇 WVD 虛擬桌面是否加入網域環境,並且是否加入網域環境中特定的 OU 組織。本文實作環境選擇「Yes」將 WVD 虛擬桌面加入網域環境。
  • Doamin to Join:鍵入 WVD 虛擬桌面加入的網域名稱,本文實作環境為「wvd.weithenn.org」。
  • Administrator Account:鍵入具備網域管理者權限的使用者帳號和密碼。
圖 12、組態設定建立 WVD 虛擬桌面和加入網域環境資訊

此外,管理人員也無須擔心部署的 WVD 虛擬桌面安全性不足,因為管理人員隨時可以透過 Azure Firewall(如圖 13 所示),針對 Layer 3 – Layer 7 的網路流量進行管控,確保 WVD 虛擬桌面運作環境的安全性。

圖 13、透過 Azure Firewall 保護 WVD 虛擬桌面運作架構示意圖



將應用程式群組註冊到工作區

在 Workspace 頁面中,管理人員必須為即將建立的主機集區,進行桌面應用程式群組的註冊動作,屆時才能順利將允許的應用程式群組,發佈給使用 WVD 虛擬桌面的使用者或群組使用。在本文實作環境中選擇「Yes」,並按下 Create new 鍵入「WVD-App-Group」名稱(如圖 14 所示)。
倘若,這裡選擇 No 不立即進行註冊,那麼管理人員也可以在主機集區建立完成後,再執行註冊桌面應用程式群組的動作。
圖 14、建立桌面應用程式群組名稱同時執行註冊的動作

最後,確認建立主機集區和 WVD 虛擬桌面資訊無誤並通過系統驗證程序後(如圖 15 所示),按下 Create 鈕執行建立主機集區和 WVD 虛擬桌面的動作。

圖 15、確認主機集區和 WVD 虛擬桌面資訊無誤並通過系統驗證程序

經過一段部署作業時間後,在 Azure Portal 將會得到「Your deployment is complete」訊息,表示 WVD 虛擬桌面主機集區已經部署完成。此時,可以切換到 DC 網域控制站,確認建立的 WVD 虛擬桌面是否也順利加入網域環境。在本文實作環境中,依照剛才的組態設定加入網域的電腦帳戶名稱依序為「WVD-VM-0、WVD-VM-1、WVD-VM-2」共 3 台(如圖 16 所示)。

圖 16、確認 WVD 虛擬桌面是否順利加入網域環境





連線至 WVD 虛擬桌面

順利部署 WVD 虛擬桌面後,使用者可以透過多種方式連接至 WVD 虛擬桌面,例如,Windows 桌面用戶端、HTML 5 瀏覽器、MacOS、iOS、Android…… 等,連線至 WVD 虛擬桌面主機集區。



透過 Windows 桌面用戶端連線

首先,請下載最新版本的 Windows Desktop Client 並進行安裝作業,安裝完成後在 Windows Desktop Client 應用程式內按下「Subscribe」鈕,在使用者身份驗證視窗中,鍵入先前指派的 TenantCreator 使用者帳號,通過使用者身份驗證程序後,便會出現 WVD 虛擬桌面主機集區圖示(如圖 17 所示)。
請注意,使用者無法透過 RADC(RemoteApp and Desktop Connections)MSTSC(Remote Desktop Connection)用戶端,連線至 WVD 虛擬桌面。
圖 17、準備連線至 WVD 虛擬桌面

點選二下「WVD-Host-Pool-DAG」圖示,將會觸發連線 WVD 虛擬桌面主機集區,系統再次要求鍵入網域使用者帳號和密碼(如圖 18 所示)。請確認網域使用者帳戶,具備連線和操作 WVD 虛擬主機的權限。

圖 18、驗證網域使用者帳戶以便連線至 WVD 虛擬桌面

通過使用者驗證程序後,由系統自動指派 WVD 虛擬桌面主機集區中的其中一台,負責這位使用者的連線作業。如圖 19 所示,可以看到由電腦名稱「WVD-VM-1」虛擬桌面主機負責此次的連線作業,並且使用我們部署時所指派,最新發佈的 Windows 10 Enterprise multi-session,version 2004映像檔進行部署。

圖 19、透過 Windows Desktop Client 連線至 WVD 虛擬桌面



透過 HTML 5 瀏覽器連線

倘若使用者無法安裝 Windows Desktop Client 應用程式,或者臨時需要透過未安裝 Windows Desktop Client 應用程式的主機,連線至 WVD 虛擬桌面時,也可以輕鬆透過現代化支援「HTML 5」技術的瀏覽器,連線登入至 WVD 虛擬桌面。
簡單來說,使用者可以透過 Microsoft Edge、Apple Safari、Mozilla Firefox、Google Chrome瀏覽器,連線登入至 WVD 虛擬桌面。

我們以 Microsoft Edge 瀏覽器為例,在網址列鍵入「https://rdweb.wvd.microsoft.com/arm/webclient」,同樣的在使用者身份驗證視窗中,鍵入先前指派的 TenantCreator 使用者帳號,通過使用者身份驗證程序後,便會出現 WVD 虛擬桌面主機集區圖示,連線 WVD 虛擬桌面時再次鍵入網域使用者帳戶,即可順利透過 HTML 5 瀏覽器連線至 WVD 虛擬桌面(如圖 20 所示)。
請注意,若採用過去所部署的舊版 WVD 虛擬桌面(傳統),因為舊版 WVD 虛擬桌面並未和 Azure ARM 整合所以網址為「https://rdweb.wvd.microsoft.com/webclient」。

圖 20、透過 HTML 5 瀏覽器連線至 WVD 虛擬桌面



透過 Android 裝置連線

現在,許多智慧型手機已經可以外接鍵盤並投影畫面至大螢幕上操作。因此,臨時需要連線至 WVD 虛擬桌面時,也可以透過智慧型手機安裝 Remote Desktop App 後連接至 WVD 虛擬桌面。

這裡以採用 Android 智慧型手機舉例,請安裝最新釋出的 Remote Desktop client for Android(version 10.0.7)後,開啟 Remote Desktop App 並依序點選「右上角加號> Add Workspaces」,然後鍵入「https://rdweb.wvd.microsoft.com/api/arm/feeddiscovery」網址,同樣的在使用者身份驗證視窗中,鍵入先前指派的 TenantCreator 使用者帳號,通過使用者身份驗證程序後,便會出現 WVD 虛擬桌面主機集區圖示(如圖 21 所示)。
請注意,舊版的 Remote Desktop client(version 8.1.x),已經更改名稱為「Remote Desktop 8」。

圖 21、通過使用者身份驗證程序後出現 WVD 虛擬桌面主機集區圖示

同樣的,連線 WVD 虛擬桌面時再次鍵入網域使用者帳戶,即可順利透過 Remote Desktop App 連線至 WVD 虛擬桌面(如圖 22 所示)。

圖 22、即可順利透過 Remote Desktop App 連線至 WVD 虛擬桌面





結語

透過本文的深入剖析和實戰演練,相信管理人員應該能夠體會 WVD 虛擬桌面,具備高效能和彈性應用卻又不失安全性的好處。此外,除了能夠擺脫過去自建 VDI 虛擬桌面基礎架構的複雜性之外,又能享受到後續維護時的管理性和便利性。

一年免費使用 VMware Customer Connect Learning Premium Package 訂閱

$
0
0

前言

有在關心 VMware Customer Connect Learning的朋友應該知道,訂閱的等級有三種分別是「Basic、Premium、Enterprise」。


過去,只有 Basic 訂閱是免費的。現在,從今天開始到「2020 年 10 月 31 日」以前,開放「Premium 訂閱一年免費」,有興趣的朋友點選下方連結,登入 MyVMware 帳號後按下 Purchase 即可。



Premium 訂閱內容

下列為 Premium 訂閱內容簡述。有興趣的朋友,別忘了在「2020 年 10 月 31 日」以前,選下方連結,登入 MyVMware 帳號後按下 Purchase 即可獲得「Premium 訂閱一年免費」:
  • 24/7 全天候使用 VMware Digital Training Hub,包括,超過 1,300 部技術和教育訓練影片。
  • 每月更新和存取 VMware Exam Preps 的權限,包括,超過 650 部教學影片,幫助你通過 VCP (VMware Certified Professional) 和 VACP (VMware Certified Advanced Professional) 認證考試。
  • 新版 VCTA (VMware Certified Technical Associate) 認證的教育訓練內容。
圖、VMware Customer Connect Learning Premium Package 12 Month Promotion

Windows Server Summit 2020

$
0
0

前言

有參與日前舉行 Microsoft Ignite 2020 大會的 ITPro 們,應該可以感覺到 Windows Server 相關議題其實很少,對吧?因為,有關 Windows Admin Center, System Center, Azure Arc, and Azure Stack HCI……等,這些技術議題改為在「October 29, 2020」的 Windows Server Summit 2020中發佈和深入剖析啦.有興趣的朋友請瀏覽下列網址進行報名即可:



議程主軸和講者

  • Boost workload efficiency and scale: 深入了解 HCI 超融合基礎架構。
  • Increase security:理解 Windows Server 安全性機制,降低商務風險。
  • Streamline your app development:透過容器和微服務,簡化應用程式開發流程。
  • See tools in action:深入了解 Windows Admin Center、System Center、Azure Arc、Azure Stack HCI 等管理工具。

簡述 Azure Kubernetes Service on Azure Stack HCI

$
0
0


前言

有在關心 Azure Stack HCI 的朋友,應該知道今年 Microsoft Ignite 2020最大的消息之一,便是 AKS (Azure Kubernetes Service)支援運作在 Azure Stack HCI平台上。






AKS on Azure Stack HCI 測試環境

雖然,手邊還沒有測試環境,但是參考官方的測試環境有助於後續建立測試環境。簡單來說,只要 2-Nodes Azure Stack HCI (每台 4 Cores / 64 GB Memory / 4 x SSD Drive),搭配一台 Windows 10 負責 WAC (Windows Admin Center),另一台為 Domain Controller 提供 DNS / DHCP即可。

圖、AKS on Azure Stack HCI 測試環境示意圖



部署 AKS (Azure Kubernetes Service)

在正式部署 AKS on Azure Stack HCI 之前,必須先部署 AKS (Azure Kubernetes Service) 才行。簡單來說,因為 Azure Stack HCI 運作在「地端」(On-Premises)環境中,所以必須透過這個部署動作建立「控制平面」(Control Plane)

值得一提的是,這個動作只要透過 WAX (Windows Admin Center) 即可輕鬆達成。只要安裝 WAC Extension 即可在 Azure Stack HCI Cluster 中選擇「Azure Kubernetes Service」項目,然後提供管理者帳號和密碼、CSV (Cluster Shared Volume)、IP Range (DHCP 提供),然後等待約 30 分鐘的安裝和組態設定時間,即可完成。

圖、部署 Azure Kubernetes Service

當 AKS 部署作業完成後,將會同時發現自動部署「2 台 VM 虛擬主機」,便是負責 AKS 控制平面的部份。此外,當你查看剛才 AKS 部署作業所產生的 VM 虛擬主機時,你會發現它的名稱為「Common Base Linux – Mariner」,它是一個開放源始碼的 Linux 發行版本,詳細資訊請參考 GitHub - microsoft/CBL-Mariner: Linux OS for Azure 1P services and edge appliances

圖、部署 AKS 後發現 Common Base Linux - Mariner 虛擬主機



Azure Stack HCI 儲存架構

在 AKS on Azure Stack HCI 運作架構中最令人感到好奇的,就是 Azure Stack HCI 如何將儲存資源,轉換成「Persistent Storage」給 AKS 以及屆時的 Pod / Container 使用。

在開始說明 Azure Stack HCI 儲存資源轉換成 Persistent Storage 之前,先說明一下 Azure Stack HCI 儲存架構,以便照顧不熟悉 Azure Stack HCI 儲存架構的朋友。

1. 採用通過 Azure Stack HCI 硬體認證的 x86 伺服器,建立 Azure Stack HCI 叢集。
2. Azure Stack HCI 節點伺服器之間,透過 10Gb/25Gb/40Gb/50Gb/100Gb 等高速乙太網互相連接,以便高速交換儲存資源。
3. 每一台 Azure Stack HCI 節點伺服器,都將貢獻本地端的 NVMe/SSD/HDD 儲存裝置器,匯整為 S2D (Storage Spaces Direct) 的儲存資源中。
4. 在匯整的 S2D (Storage Spaces Direct) 儲存資源中,依據需求切割出所需要的「Volume」,包括 Volume 的容錯等級和儲存空間……等。
5. 在 Azure Stack HCI 叢集中,運作 VM 虛擬主機並將 VHDX 虛擬硬碟,儲存於剛才所建立的 S2D Volume 當中。
6. 上層的 VM 虛擬主機,除了可以隨意存取儲存資源之外,也可以在 Azure Stack HCI 叢集內節點伺服器之間進行各種資源的線上遷移。

圖、Azure Stack HCI 儲存架構

7. 在 Azure Stack HCI 叢集中,運作的 Kubernetes Controller 接收儲存請求,例如,調度部署新的 Pod。
8. Kubernetes Controller 將儲存請求,轉送到 Kubernetes Worker Node 當中的「msvhd CSI」,這個 msvhd CSI 在剛才部署 AKS 時便會自動進行安裝。
9. 「msvhd CSI」向 Azure Stack HCI 叢集中所有節點主機送出請求。
10.  Azure Stack HCI 節點主機建立 VHDX 虛擬硬碟,並且附加到剛才提出請求的 Kubernetes Worker Node。
11. Kubernetes Worker Node 感知到附加的 VHDX 虛擬硬碟,然後進行儲存裝置格式化的動作,倘若是 Linux Worker Node 便採用 EXT4 檔案系統,而 Windows Worker Node 則採用 NTFS 檔案系統。
12. Kubernetes Worker Node 將得到的儲存資源,掛載到 Pod 以便內部的容器得以使用儲存資源。

圖、Azure Stack HCI 儲存架構



參考資源

Java was started but returned exit code=13

$
0
0

Question:Java was started but returned exit code=13

Windows 10 (version 1909)運作環境中,安裝 Apache Directory Studio工具後,開啟時卻出現下列錯誤訊息?



Answer:

簡單來說,因為 Windows 10 主機的 Java 執行環境為 32 bit 所導致的問題。如下圖所示,開啟命令提示字元後,鍵入「java -d64 -version」會得到「This Java instance does not support a 64-bit JVM」的錯誤訊息。


請將 Java 32bit 執行環境移除並重新啟動主機後,安裝 JDK 64bit 環境即可。本文實作環境為安裝最新的 JDK (Java SE Development Kit) 15.0.1 後,即可順利開啟 Apache Directory Studio 工具。


df command not show all the mounted network shares in CentOS 7

$
0
0

Question:df command not show all the mounted network shares in CentOS 7

幫忙看一台 CentOS 7.1 (3.10.0-229.7.2.el7.x86_64) 主機,執行 NFS mount 之後 (無論 Hard-mount 或 Auto-mount),雖然可以 cd 切換到 NFS mount 路徑,也可以正常存取 NFS mount 內的檔案和資料夾。但是,執行「df」指令時,卻看不到 NFS mount 路徑



Answer:

簡單來說,這台 CentOS 7.1 內的 coreutils 套件剛好是有 Bug的版本,只要更新 coreutils 套件即可。詳細資訊請參考:


CentOS 鏡像站台,下載最新修正的 coreutils-8.22-24.el7.x86_64.rpm版本,然後執行「sudo rpm -Uvh coreutils-8.22-24.el7.x86_64.rpm」指令升級 coreutils 套件。


升級 coreutils 套件,無須重新啟動 CentOS 主機即可套用生效。此時,執行「df」指令時,即可順利看到 NFS mount 路徑。



網管人 178 期 - 私有雲 SLA 再升級 vCHA 高可用性架構讓 vCenter 不停機

$
0
0

網管人雜誌

本文刊載於 網管人雜誌第 17 期 - 2020 年 11 月 1 日出刊,NetAdmin 網管人雜誌為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。





本文目錄






前言

從最新 Flexera 2020 State of the Cloud Report 市調報告中可知(如圖 1 所示),VMware vSphere 虛擬化基礎架構,在企業和組織的私有雲市佔率中仍然穩居首位。因此,可想而知在 VMware vSphere虛擬化架構中,擔任整個虛擬化基礎架構管理中心 vCenter Server 的重要性,雖然在 vCenter Server 發生故障損壞導致無法進行管理工作任務時,在 ESXi 主機上運作的 VM 虛擬主機或容器並不會受到影響,然而管理人員將無法進行任何跟 vSphere 虛擬化架構有關的管理任務,例如,線上遷移 VM 虛擬主機、組態設定 vDS 或 vSS 虛擬網路交換器、部署 VM 虛擬主機或容器……等。

圖 1、市調結果顯示 VMware vSphere 穩座私有雲市佔率首位

在過往的 vCenter Server 高可用性解決方案中,最簡單又有效率的方式便是 vCenter Server 管理平台,採用 VM 虛擬主機的部署方式,並且讓 vCenter Server 運作在獨立的管理叢集中,同時為管理叢集啟用 vSphere HA(High Availability)高可用性機制後,當 vCenter Server 運作的底層 ESXi 虛擬化主機發生故障時,便能透過 vSphere HA 高可用性機制,將 vCenter Server 重新啟動在管理叢集中,其它仍然存活且正常運作的 ESXi 虛擬化主機上。
透過 vSphere HA 高可用性機制,原則上 vCenter Server 僅會中斷服務「3 ~ 5 分鐘」的時間。

由於,採用 vSphere HA 高可用性機制,災難發生時仍會導致 vCenter Server 產生 3 ~ 5 分鐘的中斷服務時間,因此管理人員倘若不希望災難發生時,vCenter Server 產生服務中斷情況的話,可以更進一步為 vCenter Server 啟用 vSphere FT(Fault Tolerance)高可用性機制。然而,即便採用最新的 vSphere 7 版本,啟用 vSphere FT 機制的 VM 虛擬主機,最高僅支援至「8 vCPU」處理器,也就是僅能運作「Medium」規模大小的 vCenter Server,對於中大型組織來說常用「Large 或 X-Large」規模大小的 vCenter Server 則無法啟用 vSphere FT 高可用性機制。
採用 vSphere Standard 和 Enterprise 版本,啟用 vSphere FT 的 VM 虛擬主機僅支援「2 vCPU」,必須採用 vSphere Enterprise Plus 版本才支援至「8 vCPU」。

在過去的版本中,VMware 僅針對運作在實體主機上的 vCenter Server,推出 vCenter Server Heartbeat 高可用性機制,而運作在 Windows Server VM 虛擬主機上的 vCenter Server,則是搭配微軟 WSFC/MSCS 容錯移轉叢集機制,達成 vCenter Server 高可用性的目的。因此,從 VMware vSphere 6.5 版本開始,VMware 官方正式推出專為 vCSA(vCenter Server Appliance)管理平台,所量身打造的高可用性機制稱為「vCHA(vCenter High Availability)」(如圖 2 所示)。
有關 vCenter Server 管理平台支援的 HA 高可用性機制詳細資訊,請參考 VMware KB 1024051知識庫文章內容。
圖 2、vCenter High Availability 高可用性運作架構示意圖

在本文中,我們將會深入剖析和實作演練 vCHA 高可用性架構,以協助企業和組織的 IT 管理人員,深入理解 vCHA 高可用性運作機制,搭配 VMware 官方的最佳建議作法,建構出靈活且高效能的 vCHA 高可用性架構,有效提升企業和組織私有雲環境中營運服務的 SLA 服務層級。





vCHA 高可用性基礎架構

在開始建構和組態設定 vCHA 高可用性機制之前,建議管理人員先了解 vCHA 高可用性基本架構及運作環境需求。首先,在 vCHA 高可用性機制運作架構中,將會由「Active、Passive、Witness」這 3 種不同角色所組成(如圖 3 所示),當 vCHA 高可用性機制建構完成後,便會形成「Active-Passive」的容錯移轉機制。下列,為條列擔任不同角色成員主機所負責的工作任務及功能:
  • Active Node:使用 vCHA 對外服務 IP 位址並運作 vCSA 主要執行個體,除了透過 HA Network 同步資料至 Passive Node 之外,也同時和 Witness Node 保持通訊確認運作狀態。
  • Passive Node:運作 vCSA 備援執行個體,透過 HA Network 不斷接收 Active Node 傳送過來的變更內容和狀態,當 Active Node 發生災難事件時立即接手相關服務和對外服務 IP 位址。
  • Witness Node: 擔任 vCHA 高可用性架構中仲裁者的角色,當 Active Node 及 Passive Node 發生網路分區或中斷隔離事件時,能有效避免發生「腦裂」(Split-Brain)的情況。
請注意,在 vCHA 高可用性運作架構中,Witness Node僅負責「仲裁」的工作任務,當災難發生時並不會接手 Active Node 或 Passive Node 角色和相關服務。
圖 3、vCHA 高可用性運作架構角色示意圖

簡單來說,當擔任「Active Node」角色的 vCenter Server,底層的 ESXi 虛擬化平台發生災難事件時,便會觸發 vCHA 高可用性機制容錯移轉功能,由擔任「Passive Node」角色的 vCenter Server 繼承相關服務,並且接手原本 Active Node 角色所使用的對外服務 IP 位址。

由於,vCHA 高可用性機制屬於「Active-Passive」容錯移轉解決方案,所以當災難事件發生時,透過 API 機制存取的服務可以在 2 分鐘內繼續使用,透過 GUI 圖形介面存取的使用者可以在 4 分鐘內繼續使用。因此,原則上 vCHA 高可用性機制的 RTO 在「5 分鐘」之內,便能完成相關服務和對外服務 IP 位址的容錯移轉工作任務,雖然實際上仍必須視底層硬體資源的工作負載情況而定。
請注意,由於 vCHA 為 Active-Passive 容錯移轉架構,因此故障主機數量無法超過「單台」。在 VMware 最佳建議作法中,應將不同 vCHA 角色的主機部署在不同的 ESXi 虛擬化平台,以及不同的 Datastore 儲存資源中,避免發生雞蛋放在同一個籃子內的災難事件。



vCHA 部署模式

建構 vCHA 高可用性機制時,管理人員可以採用「自動」(Automatic)「手動」(Manual)模式。這兩種部署模式最大的差別在於,採用「自動」模式部署 vCHA 高可用性機制時,系統將會透過 vCenter HA 精靈互動的方式,自動建立和組態設定 Passive Node 及 Witness Node 主機。

而採用「手動」模式部署 vCHA 高可用性機制時,則必須由管理人員手動將 Active Node 主機,進行複製的動作後再組態設定 Passive Node 及 Witness Node 主機。

值得注意的是,VMware 官方已經宣佈,目前主流的 vSphere 6.7 版本是最後一版支援「External」PSC 部署模式。因此,企業或組織倘若採用 External 的 PSC 部署模式,準備建構 vCHA 高可用性機制的話,請管理人員確保至少部署 2 個 External PSC 執行個體,並且搭配負載平衡設備指向至 PSC 執行個體,相關詳細資訊請參考 VMware KB 60229KB 2147014KB 2147038KB 2147046知識庫文章。



vCHA 軟體版本需求

正式建構 vCHA 高可用性機制前,請管理人員確保採用的 vCenter Server 和 ESXi 版本,正確支援 vCHA 高可用性機制並符合最低硬體資源需求。
  • ESXi 虛擬化平台:至少採用 ESXi 6.5 或後續版本,並且 vSphere Cluster 建議至少有 3 台 ESXi 成員主機,同時讓每個 vCHA 角色運作在不同的 ESXi 成員主機上以確保高可用性,並建議為 vSphere Cluster 啟用 vSphere DRS 負載平衡機制。
  • vCenter Server: 至少採用 vCenter Server 6.5 或後續版本,同時為了滿足 vCHA 高可用性機制的基本 RTO 需求,部署的 vCSA 規模大小至少要採用「Small」或更大規模,並支援部署在「VMFS、NFS、vSAN Datastore」等儲存資源中。
  • 軟體授權:建構 vCHA 高可用性機制,雖然運作 3 台不同角色的 vCenter Server,但僅需要「1 套」vCenter Server Standard 軟體授權即可。
請注意,vCenter Server FoundationvCenter Server Essentials 版本,不支援建構 vCHA 高可用性機制。



vCHA 網路環境需求

在 vCHA 高可用性運作架構中,至少應規劃兩種不同用途的網路環境,分別是「管理網路」(Management Network)「vCenter 高可用性網路」(vCenter HA Network)。首先,管理網路除了管理用途外,也是屆時 Active Node 和 Passive Node 使用對外服務 IP 位址的網段。

在 vCenter 高可用性網路的部份,主要用途為同步資料和組態設定以及「心跳」(Heartbeats),舉例來說,當 vCHA 高可用性機制建構完成後,Active Node 和 Passive Node 主機之間,將會不斷同步 PostgreSQL 資料庫內容和運作狀態等資訊。

值得注意的是,根據 VMware 最佳建議作法,vCenter 高可用性網路必須為小於「10 ms」延遲時間的網路環境(如圖 4 所示)。倘若,Active Node 和 Passive Node 主機之間,網路環境無法達到資料同步的基本要求時,將會導致兩台主機之間的 PostgreSQL 資料庫內容不一致,並且 vCHA 高可用性機制會退化為「非同步」狀態,導致出現非預期的錯誤或屆時造成容錯移轉失敗的情況。

圖 4、vCenter 高可用性網路必須為小於 10 ms 延遲時間的網路環境示意圖





實戰 vCHA 高可用性機制

理解 vCHA 高可用性機制基礎架構和最佳作法後,便開始進行 vCHA 高可用性機制的實作演練。我們將採用自動組態設定的方式部署 vCHA 高可用性機制,下列為建構 vCHA 高可用性機制的流程說明:
  1. 部署第一台 vCenter Server 主機,屆時將擔任 Active Node 角色。
  2. 管理人員為每台 ESXi 虛擬化平台,新增擔任 HA Network 用途的 Port Group 。
  3. 啟用 vCenter HA 組態設定精靈,在自動化工作流程中提供 IP 位址、目標 ESXi 主機或 vSphere 叢集、目標 Datastore 儲存資源。
  4. 系統自動複製 Active Node 主機後,產生 Passive Node 角色的主機並套用相關組態設定。
  5. 系統再次自動複製 Active Node 主機後,產生 Witness Node 角色的主機並套用相關組態設定。
  6. 系統組態設定 3 台主機透過 HA Network 進行通訊,確保資料交換和「心跳」(Heartbeats)及其它通訊作業運作正常。
  7. vCHA 高可用性機制建構完成。

值得注意的是,雖然管理人員可以在任何時間啟用 vCHA 高可用性機制,然而根據 VMware 最佳建議作法,應該在離峰時間才啟用 vCHA 高可用性機制。主要原因在於,當啟用 vCHA 高可用性機制時,系統會立即執行 Active Node 和 Passive Node 兩台主機之間,PostgreSQL 資料庫同步作業,倘若 Active Node 處於工作負載高峰期間的話,有可能導致 Passive Node 的 PostgreSQL 資料庫無法即時同步,造成 vCHA 高可用性機制發生非預期的錯誤。



部署第一台 vCenter Server

在本文實作環境中,採用 VMware 最佳建議作法準備 3 台 ESXi 虛擬化平台,並且部署第一台 vCenter Server 至其中的 ESXi 虛擬化平台上,另外 2 台 ESXi 虛擬化平台屆時將負責運作 Passive Node 和 Witness Node 主機。此外,部署的第一台 vCenter Server 採用「Small」規模大小,以及 vCenter Server 7 預設採用的 Embedded 部署模式。
新版 vCenter Server 7 規模大小和舊版有所差異,舉例來說,vCenter Server 6.7版本的 Small 規模大小,硬體資源需求為 4 vCPU、16 GB vRAM、340 GB vDisk,而 vCenter Server 7版本的 Small 規模大小,硬體資源需求提升為 4 vCPU、19 GB vRAM、480 GB vDisk

值得注意的是,於部署第一台 vCenter Server 的第二階段時,在 vCenter Server Configuration 頁面中,請記得啟用「SSH Access」功能,因為這是 vCHA 高可用性功能的必要需求之一(如圖 5 所示)。
倘若,安裝過程中忘記啟用 vCenter Server 的 SSH Access 功能,也可於安裝完成後透過 vCenter Server 系統管理介面(Port 5480),登入後進行 SSH Access 特色功能啟用的動作。
圖 5、建構 vCHA 高可用性機制,vCenter Server 至少要採用 Small 規模大小



新增 vCenter HA Network 虛擬網路環境

在本文實作環境中,規劃 vCenter Server 管理網路的網段為「10.10.75.0/24」,而 vCenter 高可用性網路的網段為「192.168.75.0/24」,並且這兩個虛擬網路環境分別採用不同的 vSwitch 虛擬網路交換器。

登入 vCenter Server 管理介面後,依序點選「ESXi Host > Configure > Networking > Virtual Switches > Add Networking > Virtual Machine Port Group for a Standard Switch > New standard switch」,選擇專屬用於 vCenter 高可用性網路的實體網路卡,本文實作環境為「vmnic1」。

接著,在 Connection Settings 視窗中,於 Network Label 欄位填入名稱「vCHA HA Network」,這個新增的 vSwitch 虛擬網路交換器和 Port Group,便是負責 vCenter 高可用性虛擬網路用途(如圖 6 所示)。

圖 6、新增專用於 vCenter 高可用性的 vSwitch 和 Port Group



啟用 vCHA 高可用性機制

相關前置作業都已準備完成後,請在 vCenter Server 管理頁面中,依序點選「vCenter Server > Configure > Settings > vCenter HA > Set Up vCenter HA」項目,準備正式啟用 vCHA 高可用性機制。

首先,在 Resource Settings 頁面中,請按下「BROWSE」選擇剛才新增專用於 vCenter 高可用性虛擬網路的「vCHA HA Network」,並確認「Automatically create clones for Passive and Witness nodes」項目已勾選(如圖 7 所示)。

接著,分別為 Passive Node 及 Witness Node 選擇運作環境,本文實作環境中將 Passive Node 部署至「esxi7-n02」虛擬化平台,而 Witness Node 則部署至「esxi7-n03」虛擬化平台。值得注意的是,Witness Node 在 vNetwork 虛擬網路的部分,只要選擇 vCHA HA Network 即可無須管理網路。

圖 7、組態設定 vCHA 高可用性機制中,管理網路和 vCenter 高可用性網路

在第二階段 IP Settings 頁面中,管理人員必須組態設定 Active Node、Passive Node、Witness Node,這 3 台主機在 vCHA 高可用性網路中使用的 IP 位址,本文實作環境依序為「192.168.75.21、192.168.75.22、192.168.75.23」(如圖 8 所示)。

圖 8、組態設定vCenter HA同步專屬網路IP位址

待系統完成自動複製和建立 Passive Node 及 Witness Node,並且組態設定 vCenter HA Cluster之後,vCHA 高可用性機制便正式完成,並且運作模式為「Enabled」運作狀態為「Healthy」(如圖 9 所示)。

圖 9、順利建構和啟用 vCHA 高可用性機制



驗證 vCHA 容錯移轉機制

成功啟用 vCHA 高可用性機制後,管理人員可以先「手動」測試 vCHA 容錯移轉機制,將 Active Node 和 Passive Node 角色進行切換,確認屆時災難發生時能夠順利進行容錯移轉。

請在 vCenter Server 管理介面中,依序點選「vCenter Server > Configure > Settings > vCenter HA > Initiate Failover」項目,在彈出的 Initiate vCenter HA failover 視窗中(如圖 10 所示),VMware 建議除非有特殊情況,否則請勿勾選Force the failover to start immediately withou waiting項目,原因在於強制執行容錯移轉的動作,有可能 Active Node 和 Passive Node 之間資料尚未同步完成,導致資料遺失或發生非預期的錯誤。
在 vCHA 容錯移轉期間 vCenter Server 管理介面和相關服務,將會有幾分鐘停止服務的空窗期。
圖 10、準備手動執行 vCHA 容錯移轉的動作

事實上,vCHA 高可用性機制針對不同的資料屬性採用不同的同步方式,以便保持 Active Node 及 Passive Node 主機狀態的一致性。首先,在 vCenter Server 資料庫部分,採用內嵌的「PostgreSQL 資料庫」,並直接透過 PostgreSQL 資料庫原生「複寫」(Replication)機制,保持 Active Node 及 Passive Node 主機資料庫同步和內容的一致性,至於「組態設定檔」的部分,則使用 Linux 作業系統中原生的「Rsync」複寫機制,達成 Active Node 及 Passive Node 主機組態設定檔內容的一致性。
因為採用 PostgreSQL 資料庫原生複寫機制,所以能夠隨時保持資料庫內資料的一致性,因此當災難事件發生時,便不會有資料遺失的情況發生(RPO = 0)。

經過幾分鐘的 vCHA 容錯移轉程序後,管理人員可以重新連接至 vCenter Server 管理介面,可以看到原本擔任 Passive Node角色的主機,已經切換成為 Active Node角色,並且接手原本的 vCenter Server 對外服務 IP 位址「10.10.75.20」(如圖 11 所示)。

圖 11、原本 Passive Node 角色主機順利接手 Active Node 角色和對外服務 IP 位址





vCHA 高可用性機制的維運管理

確保運作在不同台 ESXi 主機

雖然,已經順利建構 vCHA 高可用性機制,並且驗證 vCHA 容錯移轉機制能夠順利切換。然而,在正式營運環境中,應搭配啟用 vSphere Cluster DRS 規則,確保 Active、Passive、Witness 這 3 台主機,各自分散運作在「不同台」ESXi 虛擬化平台上。

請在 vCenter Server 管理介面中,依序點選「Cluster > Configure > Configuration > VM/Host Rules > Add」項目,在彈出的 Create VM/Host Rule 視窗中填入此規則名稱,本文實作名稱為「vCHA Role Separate」,在 Type 下拉式選單中選擇至「Separate Virtual Machines」項目,確保此規則套用後 Active、Passive、Witness 角色主機,不會運作在同一台 ESXi 主機上,最後按下 Add 鈕加入 Active、Passive、Witness 角色主機即可(如圖 12 所示)。

圖 12、新增 Separate Virtual Machines 規則,確保不同 vCHA 角色主機不會運作在同一台 ESXi 主機上



vCHA 進入維護模式

當 vCenter Server 需要進行相關維運工作時,為了避免系統誤判導致觸發 vCHA 容錯移轉機制,管理人員可以在維運工作進行之前,將 vCHA 高可用性機制進入「維護模式」(Maintenance Mode)

請依序點選「vCenter Server > Configure > Settings > vCenter HA > Edit」項目,在彈出的 Edit vCenter HA 視窗中選擇「Maintenance Mode」項目。此時,在管理介面中將看到 vCenter HA 運作模式,由原本的 Enabled 轉換為「Maintenance」,同時系統資訊也顯示「Automatic failover」機制已經停用,但管理人員仍然可以進行手動容錯移轉(如圖 13 所示)。

圖 13、組態設定 vCHA 高可用性機制進入維護模式



vCHA 如何因應不同的災難事件

事實上,在 vCHA 高可用性機制的運作架構下,當發生各種不同的災難事件時,例如,硬體、軟體、網路環境……等,在什麼情況下才會觸發 Passive Node 接手 Active Node 服務以及對外服務 IP 位址。下列,為列舉當發生各種不同的災難事件時,vCHA 高可用性機制將如何因應:
  • Active Node 發生災難事件時:只要 Passive Node 與 Witness Node 能夠正常通訊,那麼 Passive Node 將會提升為 Active Node 角色,接手相關服務和對外服務 IP 位址並回應客戶端提出的請求。
  • Passive Node 發生災難事件時:只要 Active Node 與 Witness Node 能夠正常通訊,那麼 Active Node 將持續保持原有角色,繼續回應客戶端提出的請求。
  • Witness Node 發生災難事件時:只要 Active Node 與 Passive Node 能夠正常通訊,那麼 Active Node 將持續保持原有角色,繼續回應客戶端提出的請求。同時,Passive Node 將會偵測 Active Node 是否正常運作,以便隨時進行容錯移轉角色切換作業。
  • 主機隔離中斷行為:當單台主機發生網路中斷事件,在經過間歇性網路故障偵測程序及所有重試機制都耗盡後,系統才會將該台角色主機判定為隔離狀態,同時進入隔離狀態的主機將會自動停止所有服務。舉例來說,倘若 Active Node 被判定為隔離狀態後,那麼 Active Node 將會從 vCHA 中移出並停止所有服務,確保 Passive Node 能夠接手成為 Active Node 角色,並開始回應客戶端提出的請求。
  • 多台節點發生故障:原則上,vCHA 高可用性機制只能因應「單台」角色主機發生故障,無法因應「多台」角色主機同時發生故障。舉例來說,當實體網路發生嚴重的災難事件,導致 Active、Passive、Witness 這 3 台主機無法互相通訊,此時 vCHA 高可用機制將無法正常運作,因為在 vCHA 高可用性機制的設計中並無法容許同時發生多項故障。





結語

透過本文的深入剖析及實作演練,管理人員應該理解最新 vCenter Server 7 版本中,vCHA 高可用性機制和基礎架構,同時搭配 VMware 最佳建議作法,為企業和組織建構出高效能、高可用性和高靈活性的 vCenter Server 管理平台。

[站長開講] VMware vSphere 伺服器虛擬化實戰班 (2020 年最後一班)

$
0
0



活動資訊

日期: 2020 年 12 月 19 日 ~ 12 月 27 日
時間: 09:00 ~ 17:00
地點: 台北資策會 (台北市復興南路一段 390 號 3 樓)
報名: 資策會課程 - VMware vSphere 伺服器虛擬化實戰班







課程大綱

VMware vSphere 伺服器虛擬化平台硬體規劃最佳建議作法

VMware vSphere 伺服器虛擬化實作環境建置(Nested VMs / vSphere in a box)

建置 VMware vSphere 伺服器虛擬化平台

  • 建立Windows Server網域控制站和DNS名稱解析伺服器
  • 建立iSCSI Storage儲存伺服器
  • 安裝及管理 vSphere ESXi 虛擬化平台
  • 安裝及管理 vCenter Server 6.7 Update 3管理平台
  • 納管 vSphere ESXi 伺服器虛擬化平台
  • 建立 vSphere資料中心和叢集(Datacenter / Cluster)

建置 VMware vSphere 虛擬網路環境

  • 建立和管理vSS (vNetwork Standard Switch)
  • 建立和管理Port Group
  • 建立和管理Network Policy
  • 建立和管理VMkernel Port
  • 建立和管理NIC Teaming

VM 虛擬主機管理

  • 虛擬磁碟線上擴充/縮小(Disk Online Extend/Shrink)
  • 記憶體熱新增(Memory Hot Add)
  • CPU熱新增(CPU Hot Add)
  • 升級虛擬硬體版本(Upgrade VM Hardware version)
  • 限制VM虛擬主機網路和儲存資源(Limit Network Bandwidth/IOPS)

計畫性停機解決方案

  • 線上即時遷移(vSphere vMotion / DRS)
  • 儲存即時遷移(Storage vMotion / Storage DRS)
  • 無共用儲存即時遷移(vMotion Enhancements)

非計畫性停機解決方案

  • 高可用性(vSphere HA / Fault Tolerance)

網管人 179 期 - 實戰 WAC 管理平台速建 S2D 超融合叢集

$
0
0


網管人雜誌

本文刊載於 網管人雜誌第 179 期 - 2020 年 12 月 1 日出刊,NetAdmin 網管人雜誌為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。





本文目錄







前言

建構過微軟 S2D(Storage Spaces Direct)超融合環境的管理人員,應該會有這樣深刻的體會,那就是管理人員必須具備 PowerShell 管理技巧,以及對於整體 S2D 超融合基礎架構的建置流程清楚明瞭,才能夠順利搭建 S2D 超融合運作環境。

然而,也因為整個 S2D 超融合環境建構過程,完全需要透過 PowerShell 指令進行建構和檢查運作環境及狀態,舉例來說,從 S2D 超融合環境的前置作業、組態設定虛擬交換器和虛擬網路環境、建構容錯移轉叢集、整合儲存資源、啟用 S2D(Storage Spaces Direct)超融合技術……等,因此即便是熟悉 PowerShell 指令的管理人員,至少也需要花費數小時才能完成整個建置作業,所以讓許多對於 PowerShell 不熟悉的管理人員望之卻步。

微軟收集許多管理人員的意見反應後,正式在 Microsoft Ignite 2019 大會上,發表並實際展示透過 WAC(Windows Admin Center)管理平台,採用新增的「叢集建立延伸模組」(Cluster Creation Extension)特色功能,幫助管理人員在 WAC 圖形化管理介面中,以多階段工作流程的方式帶領管理人員(如圖 1 所示),將過去需要執行大量 PowerShell 的繁複工作流程,在 WAC 圖形化管理介面中完成建置 S2D 超融合運作環境的工作任務。

圖 1、WAC 管理平台支援建構各種容錯移轉叢集的部署情境

在本文中,我們將帶領管理人員進行實戰演練,從一開始為 WAC 管理平台安裝叢集建立延伸模組,到如何透過叢集建立延伸模組的多階段工作流程,手把手帶領管理人員輕鬆建構整個 S2D 超融合運作環境。





WAC 新增特色功能

事實上,WAC 管理平台除了採用現代化主流技術 HTML 5 進行開發,並且無須額外收取軟體授權費用之外,更重要的是各項特色功能隨著使用者的意見反應後持續增加。在「叢集建立延伸模組」(Cluster Creation Extension)的「1.2」版本中,開始新增支援部署「軟體定義網路」(Software-Defined Network,SDN),幫助管理人員輕鬆部署網路控制器、軟體式負載平衡器、SDN 閘道……等(如圖 2 所示)。

圖 2、從叢集建立延伸模組 1.2 版本開始支援部署 SDN 軟體定義網路環境



支援部署 Azure Stack HCI v2 新式雲端作業系統

過去,企業和組織希望建構微軟的 HCI 超融合叢集運作環境時,必須採用 Windows Server 2016 或 Windows Server 2019 雲端作業系統。然而,微軟發現企業和組織已經開始逐漸將工作負載進行遷移,或是直接改為採用在雲端環境中運作。

因此,在 Microsoft Inspire 2020 大會上,微軟發佈新一代的 HCI 超融合雲端作業系統「Azure Stack HCI」。此時,管理人員肯定會有疑惑,新一代的 Azure Stack HCI 和 Windows Server 2019 作業系統中,建置後的 HCI 超融合叢集運作環境有哪些差異? 簡單來說,新一代的 Azure Stack HCI 是專為 HCI 超融合環境進行重新設計,並且針對 Azure 公有雲環境進行深度整合。

首先,在 Windows Server 2019 運作環境中建置的 HCI 超融合環境,其實只是眾多伺服器角色和功能當中的其中一項。然而,新一代的 Azure Stack HCI 則是全新高度客製化過後的新版雲端作業系統,並且只專注在 Azure Stack HCI 超融合叢集功能,拿掉其它不必要的伺服器角色和功能,舉例來說,傳統應用中常見的 Print Server、DNS Server、DHCP Server、Active Directory Domain Services、Certificate Services、Federation Services……等,都不存在於 Azure Stack HCI 當中。

此外,企業和組織期待已久的「延伸叢集」(Stretched Cluster)特色功能,也在新一代的 Azure Stack HCI 開始支援。因此,企業和組織現在可以透過延伸叢集特色功能,例如,在二棟不同建築物之間,建立 Azure Stack HCI 超融合運作環境並啟用延伸叢集功能,無論採用「Active-Passive」或「Active-Active」運作模式(如圖 3 所示),都能讓營運服務達成更高的可用性和彈性。
請注意,延伸叢集特色功能目前僅支援在 Azure Stack HCI 中啟用,而 Windows Server 2019 所建置的 HCI 超融合環境尚未支援。
圖 3、延伸叢集支援 Active-Passive 和 Active-Active 運作模式

在新版 WAC v2007 版本當中,開始正式支援部署和管理 Azure Stack HCI 運作環境。簡單來說,透過最新 WAC v2007 版本中的「叢集部署工作流程」(Cluster Deployment Workflow)機制,不僅支援部署和管理舊有的「Windows 伺服器容錯移轉叢集」(Windows Server Failover Cluster,WSFC),更新增支援部署和管理 Azure Stack HCI 所建構的 HCI 超融合叢集(如圖 4 所示)。
請注意,這裡的 WAC v2007 版本,並非 2007 年所發佈的 WAC 產品版本,而是指 2020 年 07 月所發佈的版本,微軟官方甚至提醒大家正確的唸法為「Twenty oh-seven」。
圖 4、WAC v2007 版本開始支援部署和管理 Azure Stack HCI 超融合叢集環境



支援部署 AKS on Azure Stack HCI

過去,企業和組織希望建構「容器即服務」(Container as a Service,CaaS)時,在 Azure 公有雲上便是採用 AKS(Azure Kubernetes Service)服務,讓企業無須擔心 Kubernetes 叢集的維運管理,可以將所有心力放在改善和增強自家產品身上。

Microsoft Ignite 2020 大會上,微軟正式發佈 AKS on Azure Stack HCI 的消息,並且實際展示透過最新發佈的 WAC v2009 版本,讓 WAC 管理平台可以支援部署和管理 AKS on Azure Stack HCI 運作環境(如圖 5 所示)。簡單來說,過往企業和組織部署 AKS 容器即服務時,僅能在公有雲環境進行部署和管理,現在則可以將 AKS 容器即服務,部署在企業和組織內部資料中心內的 Azure Stack HCI 運作環境中。
請注意,這裡的 WAC v2009 版本,並非 2009 年所發佈的 WAC 產品版本,而是指 2020 年 09 月所發佈的版本,微軟官方甚至提醒大家正確的唸法為「Twenty oh-nine」。
圖 5、最新 WAC v2009 版本支援部署和管理 AKS on Azure Stack HCI 運作環境

事實上,WAC 管理平台除了持續新增亮眼特色功能之外,針對原有的核心功能也不斷改進。在 WAC v2009 版本中,針對 VM 虛擬主機的管理功能也不斷增強,例如,線上遷移儲存資源(Live Storage Migration)、親和性和反親和性規則(Affinity / Anti-Affinity Rules)……等。

此外,WAC 管理平台也支援部署和管理新版容器工具,舉例來說,透過 WAC 管理平台為內部資料中心內的 Windows Server 安裝 Docker 容器服務,支援經常使用的 Windows 容器映像檔,並且無須進行標記和鍵入容器映像檔名稱即可下載使用。同時,為了避免破壞 Kubernetes 叢集進行擴充節點主機工作任務,所以 WAC 管理平台一旦感知節點主機為 Kubernetes 叢集所屬的成員主機時,便會停用破壞性的操作,例如,停止容器,避免干擾 Kubernetes 叢集的維運管理作業。

圖 6、新版 WAC v2009 支援部署和管理新版容器工具





實戰 WAC 建構 HCI 超融合叢集

在實務上,企業和組織希望建構 HCI 超融合叢集時,應該如何挑選適合的 x86 硬體伺服器。建議可以參考 Azure Stack HCI Catalog 網站,挑選企業和組織習慣採用的 x86 硬體伺服器品牌,以及通過 Azure Stack HCI 驗證程序的型號,確保各項硬體元件的韌體和驅動程式為穩定和最佳化的版本。

在本文實作環境中,總共建立 4 台 Windows Server 2019 主機,第一台主機擔任 DC 網域控制站的角色(網域名稱為 hci.weithenn.org),另一台主機擔任 Windows Admin Center 管理平台的角色,最後二台主機則擔任 HCI 超融合叢集中的節點主機。同時,這 4 台 Windows Server 2019 主機,皆安裝最新的安全性更新。
請注意,當 Windows Server 2019 從獨立主機提升為 DC 網域控制站時,系統詢問存放 AD 資料庫及記錄檔和 SYSVOL 分割區,請採用主流「NTFS」檔案系統,因為 AD 資料庫尚未支援新式的「ReFS」檔案系統。

或許,有管理人員可能會有疑惑,在小型實作環境中為何不乾脆將 WAC 管理軟體,直接安裝於 DC 網域控制站當中,而要特地獨立一台主機擔任 WAC 管理平台 ?原因在於,WAC 管理平台使用的某些通訊連接埠,會與 DC 網域控制站之間發生衝突,所以當管理人員嘗試在 DC 網域控制站安裝 WAC 管理軟體時,系統將會出現「This software is not supported on domain controller machines」警告訊息並停止安裝程序(如圖 7 所示)。

圖 7、Windows Admin Center 無法安裝於 DC 網域控制站主機

在 WAC 管理主機的部份,除了基本的組態設定並加入「hci.weithenn.org」網域環境之外,安裝 2020 年 9 月最新發佈的「Windows Admin Center version 2009」(如圖 8 所示)。

圖 8、採用最新釋出的 Windows Admin Center v2009 版本

在 HCI 超融合叢集節點主機的部份,建立 2 台 HCI 叢集節點主機,電腦名稱分別命名為「HCI-N01 及 HCI-N02」,每台 HCI 叢集節點主機除了作業系統硬碟之外,額外配置「5 顆」300GB 的 SSD 固態硬碟(如圖 9 所示),採用 All-Flash 類型建立 HCI 超融合叢集,並且 2 台 HCI 叢集節點主機加入「同一個」Windows AD 網域。
請注意,擔任 HCI 叢集節點角色的主機,必須安裝 Windows Server 2019「Datacenter」版本,才能順利支援建構 HCI 超融合運作架構。
圖 9、每台 HCI 叢集節點主機額外配置 5 顆 300GB 的 SSD 固態硬碟



WAC 安裝 Cluster Creation 延伸模組

上述各項前置作業準備完成後,在開始建構 HCI 超融合叢集之前,請先確保 WAC 管理平台已經安裝「叢集建立延伸模組」(Cluster Creation Extension),確保支援部署及管理 HCI 超融合叢集。

登入 WAC 管理介面後,請依序點選「Settings > Gateway > Extensions > Available extensions」項目,鍵入關鍵字「Cluster Creation」後,點選「Cluster Creation(Preview)」項目後按下 Install 鈕進行安裝程序,待安裝作業完成後即可在「Installed extensions」頁籤中,看到 Cluster Creation 延伸模組和相關資訊(如圖 10 所示)。

圖 10、為 WAC 管理平台安裝叢集建立延伸模組



選擇部署 HCI 超融合叢集架構

確認叢集建立延伸模組安裝完成後,在 WAC 管理介面 All Connections 中便會出現「Cluster Creation」子項目,點選後便進入精靈互動部署模式。

首先,在 Choose the type of cluster to create 頁面中,系統詢問管理人員準備部署哪種類型的叢集,一共支援六種不同類型的叢集,分別是「Hyperconverged、Hyperconverged+SDN、Compute Cluster、Storage Cluster、Compute Cluster+SDN、Classic Failover Cluster」,每種類型的叢集將會為節點主機安裝不同的伺服器功能和角色,並且搭配相關的組態設定。

在本文實作環境中,請點選「Hyperconverged」項目,準備建構 HCI 超融合叢集架構並按下 Create 鈕,便進入部署 HCI 超融合叢集架構組態設定流程,在這個自動化組態設定流程中總共有四個階段,分別是「Get Started > Networking > Clustering > Storage」。

在 Get Started 第一個階段中,系統提示相關前置作業資訊,例如,叢集節點主機必須採用 Windows Server 2016 或 Windows Server 2019 的 Datacenter 版本才行……等,請管理人員再次檢查是否符合相關條件,避免稍後部署 HCI 超融合叢集時發生非預期的錯誤。

在 1.2 Enter an account 頁面中,請鍵入管理者帳號及密碼,這個管理者帳號必須是「網域帳號」,並且必須具備相關主機「Local Administrators Group」的身份和權限,在本文實作環境中管理帳號為「hci.weithenn.org\weithenn」。

在 1.3 Add servers 頁面中,鍵入本文實作環境的 2 台 HCI 超融合叢集節點主機的電腦名稱,分別是「HCI-N01」和「HCI-N02」後按下 Add 鈕。此時,系統將會進行相關檢查作業,確認是否符合建構 HCI 超融合叢集(如圖 11 所示)。

圖 11、檢查 2 台 HCI 超融合叢集節點主機是否符合條件

在 1.4 Install features 頁面中,系統將會檢查是否已經安裝建構 HCI 超融合叢集時,所需要的伺服器角色和功能。由於,在前置作業中僅為 HCI 超融合叢集節點主機進行基礎設定和加入網域,因此檢查的結果是尚未安裝相關伺服器角色和功能,請按下 Install features 鈕,為 2 台 HCI 超融合叢集節點主機安裝所需的伺服器角色和功能,等待幾分鐘後順利安裝所需的伺服器角色和功能後,請按下 Next 鈕進入下一個部署程序(如圖 12 所示)。

圖 12、為 2 台 HCI 超融合叢集節點主機安裝所需的伺服器角色和功能

由於,剛才所安裝的伺服器角色和功能中,例如,Hyper-V 伺服器角色,需要重新啟動主機後才能套用生效。因此,在 1.5 Restart servers 頁面中,可以看到 2 台 HCI 超融合叢集節點主機,在 Status 的欄位皆為「Restart needed」,請按下 Restart servers 鈕重新啟動 2 台 HCI 超融合叢集節點主機。



HCI 超融合叢集部署階段 2 - Networking

進入 HCI 超融合叢集部署階段 2,便是部署 HCI 超融合叢集虛擬交換器和虛擬網路環境的部份。首先,在 2.1 Verify network adapters 頁面中,系統將會檢查每一台 HCI 超融合叢集節點主機,具備多少張網路卡以及是否建立網路卡小組……等(如圖 13 所示)。
倘若,管理人員僅是進行測試未建立網路卡小組時,可能會得到「Adapter symmetry validation failed.」的檢查錯誤訊息。
圖 13、檢查每一台 HCI 超融合叢集節點主機網路卡資訊

在 2.2 Select management adapters 頁面中,請管理人員選擇每台 HCI 超融合叢集節點主機,用於管理用途的網路卡,在本文實作環境中,針對管理用途的網路卡已經建立網路卡小組,因此勾選「Microsoft Network Adapter Multiplexor Driver」項目,同時系統提示會將選擇的網路卡名稱改為「Management」以利識別。
倘若,管理人員未明確選擇管理用途的網路卡,則系統將會使用任意網路卡進行管理網路流量的傳輸作業。

在 2.3 Edit adapter properties 頁面中,管理人員可以看到 HCI 超融合叢集節點主機中,所有網路卡的網路資訊,包括,IP 位址、網路遮罩、MAC 位址……等。值得注意的是,運作環境中若有搭配 VLAN ID 的話,也請在網路卡的 VLAN ID 欄位中加入,若實體交換器有啟動 Jumbo Frame 的話,請參考網路卡廠商提供的手冊,並在此頁面中展開 Advanced 項目,在 Jumbo packet size 欄位中填入適合的數值。
預設情況下,Jumbo packet size 欄位值為未啟用 Jumbo Frame 的 1514

在 2.4 Create virtual switch 頁面中,將會為每一台 HCI 超融合叢集節點主機,建立 Hyper-V vSwitch 虛擬網路交換器,值得注意的是並非建立一般 vSwitch 虛擬網路交換器,管理人員可以看到預設已經勾選「Use switch-embedded teaming」選項。因此,稍後將會建立支援 RDMA 卸載功能的「SET(Switch-Embedded Teaming)」虛擬網路交換器(如圖 14 所示)。

圖 14、建立支援 RDMA 卸載功能的 SET(Switch-Embedded Teaming)虛擬網路交換器



HCI 超融合叢集部署階段 3 - Clustering

進入 HCI 超融合叢集部署階段 3,系統會在建構 HCI 超融合叢集之前,執行「叢集驗證」(Cluster Validation)的動作,確保每台 HCI 超融合叢集節點主機符合各項運作需求,避免稍後建立 HCI 超融合叢集時發生非預期的錯誤。

在 3.1 Validate cluster 頁面中,按下 Validate 鈕後便開始執行叢集驗證作業,值得注意的是在開始執行叢集驗證作業時,系統會彈出啟用 CredSSP 驗證機制的說明,請按下 Yes 鈕進行啟用並執行叢集驗證的動作(如圖 15 所示)。
倘若無法順利執行驗證機制,並得到「The WinRM client cannot process the request.」的錯誤訊息時,管理人員可以在 HCI 超融合叢集節點主機上,手動執行「Enable-WSManCredSSP -Role "Server"」PowerShell指令,待部署完成後再進行停用的動作即可。
圖 15、啟用 CredSSP 驗證機制並執行叢集驗證工作任務

當叢集驗證工作任務經過幾分鐘完成檢查作業後,管理人員可以按下 Download report,下載容錯移轉叢集驗證報告查看檢查作業細項(如圖 16 所示)。

圖 16、通過叢集驗證工作程序並查看檢查作業細項

在 3.2 Create cluster 頁面中,請於 Cluster name 欄位鍵入 HCI 超融合叢集名稱,本文實作名稱為「S2D-Cluster」,在 Networks 的部份保持預設值「Use all networks」即可,在 IP addresses 選擇「Specify one or more static addresses」項目,然後鍵入 HCI 超融合叢集 IP 位址,本文實作為「10.10.75.20」然後按下 Add 鈕,最後按下 Create cluster 鈕執行建立容錯移轉叢集的動作,同樣經過幾分鐘後便順利建立容錯移轉叢集(如圖 17 所示)。

圖 17、成功建立容錯移轉叢集



HCI 超融合叢集部署階段 4 - Storage

HCI 超融合叢集部署的最後一個階段,便是將儲存資源整合至剛才所建立的容錯移轉叢集內。首先,在 4.1 Verify drives 頁面中,將會檢查每台 HCI 超融合叢集節點主機中,可用於 HCI 超融合叢集的儲存裝置,在本文實作環境中,正確檢查出每台 HCI 超融合叢集節點主機,額外配置的 5 顆 300GB SSD 固態硬碟(如圖 18 所示)。

圖 18、每台 HCI 超融合叢集節點主機皆額外配置 5 顆 300GB SSD 固態硬碟

值得注意的是,倘若儲存裝置已經「宣告」(Claimed)使用,例如,硬碟初始化為 MBR/GPT、格式化為 NTFS/ReFS 檔案系統...…等。那麼,屆時這些已經宣告使用的儲存裝置,便無法整合加入至 HCI 超融合叢集的儲存資源當中。因此,在 4.2 Clean drives 頁面中,提醒管理人員再次確認儲存裝置未進行宣告,如果無法確認的話,請按下 Clean drives鈕執行儲存裝置內容清空的動作(如圖 19 所示)。

圖 19、執行儲存裝置內容清理的動作

在 4.3 Validate Storage 頁面中,針對儲存裝置是否能加入 HCI 超融合叢集的儲存資源進行驗證,驗證作業完成後同樣可以按下 Donwload report,查看容錯移轉叢集報表中,針對 Storage Spaces Direct 的驗證檢查細項(如圖 20 所示)。

圖 20、通過 HCI 超融合叢集儲存資源驗證程序並查看驗證報表內容

在 4.4 Enable Storage Spaces Direct 頁面中,請按下 Enable 鈕執行啟用 Storage Spaces Direct 技術,也就是在原有的容錯移轉叢集架構中整合儲存資源,正式成為 HCI 超融合叢集架構。經過幾分鐘的等待時間後,順利啟用 Storage Spaces Direct 技術,同樣的管理人員可以下載報表檔案查看詳細資訊(如圖 21 所示)。

圖 21、HCI 超融合叢集建構完成



WAC 管理 HCI 超融合叢集

至此,已經順利透過 WAC 管理平台部署 HCI 超融合叢集。同時,在 WAC 管理介面 All connections 清單中,應該自動出現剛才部署完成的 S2D-Cluster 超融合叢集,倘若未出現的話管理人員也可以依序點選「Add > Server Clusters > Add」項目,然後在 Cluster Name 欄位鍵入「s2d-cluster」HCI 超融合叢集名稱,開始透過 WAC 管理 HCI 超融合叢集(如圖 22 所示)。

圖 22、準備透過 WAC 管理 HCI 超融合叢集

現在,管理人員便可以透過 WAC 管理平台,看到 HCI 超融合叢集的各種使用率和工作負載情況,包括,HCI 叢集節點主機數量、儲存裝置數量、運作的 VM 虛擬主機數量、HCI 叢集整體 CPU/Memory/Storage 工作負載情況、IOPS 儲存效能、Latency 延遲時間、Throughput 傳輸速率……等(如圖 23 所示)。

圖 23、透過 WAC 管理平台查看和管理 HCI 超融合基礎架構





結語

透過本文的深入剖析及實作演練,相信讀者應該可以充份感受到 WAC 管理平台的強大功能和便利性,同時透過 WAC 管理平台即可輕鬆部署 HCI 超融合叢集基礎架構,而無須如同過往建置時必須敲打一堆 PowerShell 指令,除了有效避免人為打錯指令造成非預期的錯誤之外,整體的部署速度也將加快許多。

mount.nfs: No such device

$
0
0

 


Question:mount.nfs: No such device

幫忙看一台 CentOS 7.x 主機,雖然 NFS Storage 已經允許存取,並且透過 autofs 服務也掛載成功。但是,當 cd 到該 NFS mount 路徑時,卻出現「No such file or directory」的錯誤訊息。接著,嘗試 NFS hard-mount 的方式並加上「-vvv」參數時,出現「mount.nfs: No such device」錯誤訊息 (如下圖所示):



Answer:

簡單來說,這台 CentOS 7.x 內的 NFS module 發生問題,重新載入 NFS module 即可。詳細資訊請參考:

首先,執行「depmod -av <kernel version>」指令,執行重新建立 modules.dep 的動作解決 NFS module dependency 的問題,然後執行「modprobe nfsd」指令重新載入 NFS module 後,即可順利掛載 NFS 分享資源並切換至儲存路徑,順利掛載 NFS 儲存資源後,重新啟動 CentOS 主機,確保重新啟動後仍然能夠順利載入 NFS module 並掛載 NFS 儲存資源。


vmkping 'vmk': Invalid argument

$
0
0

Question:   Unknown interface 'vmk': Invalid argument

目前主機有 3 個 VMkernel Port (vmk0, vmk1, vmk2),用途分別是「Management (vmk0)、vSAN (vmk1)、vMotion (vmk2)」,透過 vmkping 指令測試 Node 之間是否能夠順利回應。但是,測試到「vMotion (vmk2)」時,卻發生「Unknown interface 'vmk2': Invalid argument」的錯誤訊息 (如下圖所示):




Answer:

簡單來說,執行 vmkping 指令時,預設會採用的 TCP/IP Stack 為「Default」,而本文提到的 vMotion VMkernel Port 採用的 TCP/IP Stack 為「vmotion」,所以在執行 vmkping 指令時必須搭配「-S vmotion」才行。詳細資訊請參考下列 VMware KB 和討論串:
首先,執行「esxcli network ip interface list」檢查 vmk2 採用的 TCP/IP Stack 名稱為「vmotion」,接著執行 vmkping 指令時搭配「-S vmotion」參數即可。

Viewing all 591 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>