此解決方案會在 Azure 上執行 SAS 分析工作負載。 本指引涵蓋各種部署情境。 例如,有多個版本的 SAS 可供使用。 您可以在自我管理的虛擬機器 (VM) 上執行 SAS 軟體。 您也可以使用 Azure Kubernetes Service (AKS) 來部署容器型版本。
架構
此圖解包含具有 Azure 虛擬網絡標籤的大型矩形。 其中,另一個大矩形具有鄰近性放置群組標籤。 兩個矩形位於其中。 它們會垂直堆疊,且每個都有網路安全性群組標籤。 每個安全性群組矩形都包含數個排列成資料列的電腦圖示。 在較上方的矩形中,上層列左側的電腦圖示具有中介層標籤。 右側的圖示具有中繼資料層標籤。 圖示的下層列具有電腦層標籤。 在較下方的矩形中,電腦圖示的上層列具有 MGS 和 MDS 伺服器標籤。 下層列具有 OST 和 OSS 伺服器標籤。
下載此架構的 Visio 檔案。
工作流程
SAS Azure 部署通常包含三個層級:
API 或視覺效果層。 在這裡層級中:
- 中繼資料層可讓用戶端應用程式存取資料來源、資源、伺服器和使用者的中繼資料。
- Web 應用程式提供中介層智慧資料的存取權。
計算平台,其中 SAS 伺服器會處理資料。
SAS 用於永久儲存體的儲存體層。 Azure 上的熱門選擇如下:
- Lustre
- IBM Spectrum Scale
- 網路檔案系統 (NFS)
Azure 虛擬網絡會隔離雲端中的系統。 在該網路中:
- 鄰近性放置群組可減少 VM 之間的延遲。
- 網路安全性群組會保護 SAS 資源免於不必要的流量。
必要條件
部署 SAS 工作負載之前,請確定下列元件已就緒:
- SAS 調整大小團隊的調整大小建議
- SAS 授權檔案
- 存取用於部署資源的資源群組
- 虛擬中央處理單位 (vCPU) 訂用帳戶配額 ,會考慮您的調整大小文件和 VM 選擇
- 存取安全的輕量級目錄存取協定 (LDAP) 伺服器
案例詳細資料
除了討論不同的實作之外,本指南也與 Microsoft Azure Well-Architected Framework 原則一致,以在成本、DevOps、復原能力、可縮放性和安全性等領域取得卓越成就。 但除了使用本指南之外,請洽詢 SAS 小組,以取得特定使用案例的其他驗證。
身為合作夥伴,Microsoft和 SAS 正努力為雲端創新的組織制定藍圖。 這兩家公司都致力於確保 Azure 上 SAS 產品和解決方案的高品質部署。
SAS 簡介
SAS 分析軟體提供一套服務和工具,可從資料中描繪出深入解析並做出智慧型決策。 SAS 平台完全支援其解決方案,例如資料管理、詐騙偵測、風險分析和視覺效果。 SAS 提供這些主要平台,其中 Microsoft 已驗證:
- SAS Grid 9.4
- SAS Viya
下列架構已經過測試:
- Linux 上的 SAS Grid 9.4
- SAS 9 Foundation
- Linux 上 具有對稱多重處理 (SMP) 和大規模平行處理 (MPP) 架構的 SAS Viya 3.5
- AKS 上 具有 MPP 架構的 SAS Viya 2020
本指南提供在 Azure 上執行 SAS 的一般資訊,而非平台專屬資訊。 這些指導方針假設您將自己的 Azure 上 SAS 解決方案託管在自己的租用戶中。 SAS 不會在 Azure 上為您託管解決方案。 如需有關 SAS 所提供的 Azure 託管和管理服務詳細資訊,請參閱 SAS 受控應用程式服務。
建議
在設計您的實作時,請考慮下列各節中的要點。
SAS 文件提供每個核心的需求,表示每個實體 CPU 核心。 但 Azure 提供 vCPU 清單。 在我們建議搭配 SAS 使用的 VM 上,每個實體核心都有兩個 vCPU。 因此,若要計算 vCPU 需求的值,請使用一半的核心需求值。 例如, 實體核心的150 MBps 需求會轉譯為每個 vCPU 75 MBps。 如需 Azure 運算效能的詳細資訊,請參閱 Azure 計算單位 (ACU) 。
注意
如果您要在單一節點 SAS 部署中 (而不是外部化檔案系統) 相應增加和保存資料,SAS 文件建議頻寬至少要達 150 MB/秒。 若要達到此頻寬,您必須等量多個 P30 Premium (或更大的) 磁碟。
作業系統
Linux 最適合執行 SAS 工作負載。 SAS 支援以下作業系統的 64 位元版本:
- Red Hat 7 或更新版本
- SUSE Linux Enterprise Server (SLES) 12.2
- Oracle Linux 6 或更新版本
如需特定 SAS 版本的詳細資訊,請參閱 SAS 作業系統支援矩陣。 在使用多部機器的環境中,最好在所有機器上執行相同版本的 Linux。 Azure 不支援 Linux 32 位元部署。
若要將相容性最佳化並與 Azure 整合,請從 Azure Marketplace 的作業系統映像開始。 使用未做其他設定的自訂映像可能會降低 SAS 效能。
核心問題
選擇作業系統時,請注意會影響整個 Red Hat 7.x 系列的軟鎖定問題。 會發生在這些核心中:
- Linux 3.x 核心
- 4.4 之前的版本
Linux 和 Hyper-V 的記憶體和 I/O 管理問題會造成問題。 發生時,系統記錄包含類似下面內容,提及不可遮罩式中斷 (NMI):
Message from syslogd@ronieuwe-sas-e48-2 at Sep 13 08:26:08
kernel:NMI watchdog: BUG: soft lockup - CPU#12 stuck for 22s! [swapper/12:0]
另一個問題會影響舊版的 Red Hat。 具體來說,它可能發生在符合這些條件的版本:
- 擁有 3.10.0-957.27.2 之前的 Linux 核心
- 使用非揮發性記憶體控制器介面 (NVMe) 主機。
當系統遇到高記憶體壓力時,一般 Linux NVMe 驅動程式可能無法為寫入作業分配足夠的記憶體。 因此,系統會回報源自實際死結的軟鎖定。
升級您的核心以避免這兩個問題。 或者,請嘗試此可能的因應措施:
- 將
/sys/block/nvme0n1/queue/max_sectors_kb
設定為128
,而不是使用預設值,512
。 - 在 VM 中的每個 NVMe 裝置和每次 VM 開機時變更此設定。
執行下列命令來調整該設定:
# cat /sys/block/nvme0n1/queue/max_sectors_kb
512
# echo 128 >/sys/block/nvme0n1/queue/max_sectors_kb
# cat /sys/block/nvme0n1/queue/max_sectors_kb
128
VM 調整大小建議
SAS 部署通常會使用下列 VM SKU:
Edsv5 系列
Edsv5 系列中的 VM 是 Viya 和 Grid 的預設 SAS 機器。 它們提供這些功能:
- 受限的核心。 在此系列中有許多機器,您可以限制 VM vCPU 計數。
- 良好的 CPU 與記憶體比率。
- 高輸送量的本機附加磁碟。 I/O 速度對於像是
SASWORK
和雲端分析服務 (CAS) 快取CAS_CACHE
等資料夾很重要,其中 SAS 會用於暫存檔案。
如果 Edsv5 系列 VM 無法使用,建議您使用前一代。 Edsv4 系列 VM 已經過測試,並在 SAS 工作負載上執行良好。
Ebsv5 系列
在某些情況下,本機附加磁碟沒有足夠的儲存空間可供SASWORK
或CAS_CACHE
使用。 若要取得較大的工作目錄,請使用具有進階附加磁碟的 Ebsv5 系列 VM 。 這些 VM 提供這些功能:
- 與 Edsv5 和 Esv5 VM 相同的規格
- 針對遠端附加磁碟的高輸送量,最多可達 4 GB/秒,在 SAS 的 I/O 需求中提供您所需的
SASWORK
CAS_CACHE
大小。
如果 Edsv5 系列 VM 提供足夠的儲存體,最好使用它們,因為它們更有成本效益。
M 系列
許多工作負載都使用 M 系列 VM,包括:
- 使用 Viya 方法進行軟體架構的 SAS 程式設計執行時間環境 (SPRE) 實作。
- 某些 SAS Grid 工作負載。
M 系列 VM 提供這些功能:
- 受限的核心
- 最多 3.8 TiB 的記憶體,適用於使用大量記憶體的工作負載
- 遠端磁碟的高輸送量,當本機可用的磁碟不足時,非常適合
SASWORK
資料夾
Ls 系列
某些 I/O 繁重的環境應該使用 Lsv2 系列 或 Lsv3 系列 VM。 特別是,需要快速、低延遲 I/O 速度,且大量記憶體會受益於這種類型的機器。 範例包括大量使用SASWORK
資料夾或CAS_CACHE
的系統。
注意
SAS 會最佳化其服務,以搭配 Intel 數學核心程式 (MKL) 使用。
- 使用大量數學工作負載時,請避開不使用 Intel 處理器的 VM:Lsv2 和 Lasv3。
- 選取 AMD CPU 時,請驗證 MKL 在它上面執行的方式。
警告
可以的話,請避免使用 Lsv2 VM。 請改用 Lsv3 VM 搭配 Intel 晶片組。
透過 Azure,您可以視需要縮放 SAS Viya 系統以符合期限:
- 藉由增加節點集區的計算容量。
- 使用 AKS 叢集自動縮放程式來新增節點並水平縮放。
- 藉由暫時擴大基礎結構以加速 SAS 工作負載。
注意
縮放計算元件時,也請考慮相應增加儲存體,以避免儲存體 I/O 瓶頸。
使用 Viya 3.5 和 Grid 工作負載時,Azure 目前不支援水準或垂直縮放。 Viya 2022 支援水平縮放。
網路和 VM 放置考慮
SAS 工作負載通常很冗長。 因此,他們可以傳輸大量資料。 使用所有 SAS 平台時,請遵循這些建議來減少喋喋不休的影響:
- 在相同的虛擬網路上部署 SAS 和儲存體平台。 此方法也會避免產生對等互連成本。
- 將 SAS 機器放在鄰近性放置群組中,以減少節點之間的延遲。
- 可以的話,請在相同的鄰近性放置群組中部署 SAS 機器和 VM 型資料儲存體平台。
- 在相同的可用性區域中部署 SAS 和儲存體設備,以避免跨區域延遲。 如果您無法確認解決方案元件已部署在相同區域中,請連絡 Azure 支援。
SAS 具有 VM 的特定完整網域名稱 (FQDN) 需求。 正確設定機器 FQDN,並確定網域名稱系統 (DNS) 服務正常運作。 您可以使用 Azure DNS 來設定名稱。 您也可以在etc
設定資料夾中編輯hosts
檔案。
注意
在 SAS 部署的所有節點上開啟加速網路功能。 當您關閉此功能時,效能會大幅降低。
若要在 VM 上開啟加速網路功能,請遵循下列步驟:
在 Azure CLI 中執行此命令以解除分配 VM:
az vm deallocate --resource-group <resource_group_name> --name <VM_name>
關閉 VM。
在 CLI 中執行此命令:
az network nic update -n <network_interface_name> -g <resource_group_name> --accelerated-networking true
當您在 Azure 中移轉資料或與 SAS 互動時,建議您使用下列其中一個解決方案,將內部部署資源連線至 Azure:
針對 Azure 中的生產 SAS 工作負載,ExpressRoute 提供私人、專用且可靠的連線,透過站對站 VPN 提供這些優點:
- 更快的速度
- 延遲較低
- 更嚴格的安全性
請注意 SAS 與非 SAS 應用程式之間的延遲敏感性介面。 請考慮將資料來源和接收器移至 SAS 附近。
身分識別管理
SAS 平台可以使用本機使用者帳戶。 他們也可以使用安全的 LDAP 伺服器來驗證使用者。 建議您在 Azure 中執行網域控制器。 然後使用加入網域功能來正確管理安全性存取。 如果您尚未設定網域控制器,請考慮部署 Microsoft Entra 網域服務。 當您使用網域加入功能時,請確定電腦名稱不超過15個字元的限制。
注意
在某些環境中,內部部署與 Azure 託管的 SAS 環境之間需要內部部署連線或共用資料集。 在這些情況下,強烈建議您在 Azure 中部署網域控制器。
Microsoft Entra 網域服務樹系會建立使用者,以針對 Microsoft Entra 裝置進行驗證,但不能對內部部署資源進行驗證,反之亦然。
資料來源
SAS 解決方案通常會從多個系統存取資料。 這些資料來源分為兩個類別:
- SAS 資料集,SAS 儲存在
SASDATA
資料夾中 - 資料庫,SAS 通常會對資料庫造成大量負載
若要獲得最佳效能︰
- 盡可能將資料來源放置在靠近 SAS 基礎結構的位置。
- 限制資料來源與 SAS 基礎結構之間的網路躍點和設備數目。
注意
如果您無法將資料來源移至 SAS 基礎結構附近,請避免對其執行分析。 相反地,請先執行擷取、轉換、載入(ETL) 流程,稍後再進行分析。 對承受壓力的資料來源採取相同的方法。
SAS 資料的永久遠端儲存體
SAS 和 Microsoft 已測試一系列資料平台,您可用來裝載 SAS 資料集。 SAS 部落格會詳細記錄結果,包括效能特性。 測試包括下列平台:
- 使用一般平行檔案系統 (GPFS),由 IBM Spectrum Scale 推動的 Sycomp 儲存體
- 提供 Lustre 平行檔案系統的 Azure Managed Lustre
- 支援 NFS 檔案儲存體通訊協定的 Azure NetApp Files
- Azure 檔案儲存體進階版,這式一個支援 NFS 通訊協定的檔案共享服務
SAS 提供 Viya 和 Grid 架構的效能測試指令碼。 SAS 論壇提供這些平台上具有指令碼的測試文件。
由 IBM Spectrum Scale 推動的 Sycomp 儲存體 (GPFS)
有關 IBM Spectrum Scale 推動的 Sycomp 儲存體如何符合效能預期的資訊,請參閱 適用於 SAS Grid 的 Sycomp 的 SAS 檢閱。
為了調整大小,Sycomp 會提出下列建議:
- 為每個八個核心提供一個 GPFS 縮放節點,每個核心的設定為 150 MBps。
- 每個執行個體至少使用五個 P30 主機。
Azure Managed Lustre
Azure Managed Lustre 是為高效能運算 (HPC) 與 AI 工作負載而建立的受控檔案系統。 Managed Lustre 可以平行執行 SAS 9 和 Viya 工作負載。 若要最佳化檔案系統的效能,請遵循下列建議:
當您部署 Managed Lustre 時,請在所有用戶端節點上執行微調,以增加 Lustre 用戶端預先讀取,並最佳化 SAS I/O 模式的並行性。 若要執行此微調,請執行下列命令:
lctl set_param mdc.*.max_rpcs_in_flight=128 osc.*.max_pages_per_rpc=16M osc.*.max_rpcs_in_flight=16 osc.*.max_dirty_mb=1024 llite.*.max_read_ahead_mb=2048 osc.*.checksums=0 llite.*.max_read_ahead_per_file_mb=256
在所有 SAS VM 上啟用加速網路。
若要降低網路延遲性,請將 SAS VM 放在部署 Managed Lustre 的相同可用性區域中。
Azure 檔案進階層
Azure 檔案進階層是支援 NFS 4.1 通訊協定的受控服務。 它提供具有成本效益、彈性、效能且符合 POSIX 規範的檔案系統。 NFS 共用的 IOPS 和輸送量會隨著佈建容量而調整。 SAS 已廣泛測試 Azure 檔案的進階層,並發現效能足以推動 SAS 安裝。
您可以使用nconnect
來提升效能。 這個掛接選項會將 IO 要求分散到多個管道。 如需詳細資訊,請參閱 NFS 效能。
在 Azure 檔案中使用 NFS Azure 檔案共享時,請考慮下列幾點:
- 調整佈建的產能以符合效能需求。 NFS 共用的 IOPS 和輸送量會隨著佈建容量而調整。 如需詳細資訊,請參閱 NFS 效能。
- 在掛接中使用 nConnect,並設定
nconnect=4
以獲得最佳效能的平行管道使用。 - 將預先讀取設定最佳化為
rsize
和wsize
的 15 倍。 針對大部分的工作負載,建議使用 1 MB 的rsize
和wsize
,以及 15 MB 的read-ahead
設定。 如需詳細資訊,請參閱增加預先讀取大小。
Azure NetApp Files (NFS)
SAS 測試已驗證 SAS Grid 的 NetApp 效能。 具體來說,測試顯示 Azure NetApp Files 是適用於跨多台機器 32 個實體核心之 SAS Grid 叢集的可行主要儲存體選項 使用 NetApp 提供最佳化和 Linux 功能時,Azure NetApp Files 可以是跨多台機器最多 48 個實體核心的叢集主要選項。
使用此服務時,請考慮下列要點:
- Azure NetApp Files 適用於 Viya 部署。 請勿在 Viya 中使用 Azure NetApp Files 進行 CAS 快取,因為寫入輸送量不足。 可以的話,請改用 VM 的本機暫時磁碟。
- 在具有 Grid 9.4 的 SAS 9 Foundation 上,
SASDATA
檔案的 Azure NetApp Files 效能適用於最多 32 個實體核心的叢集。 套用微調時,會增加至 48 個核心。 - 若要確保有好的效能,請在部署 Azure NetApp Files 時,至少選取進階或 Ultra 儲存體層服務級別 。 非常大量時您可以選擇標準服務級別。 請考慮從進階級別開始,稍後再切換至 Ultra 或標準。 服務層級變更可以在在線完成,不會產生中斷或資料移轉。
- Azure NetApp Files 的讀取效能和寫入效能不同 。 SAS 的寫入輸送量達到大約 1600 MiB/秒的限制,而讀取輸送量則超過,大約為 4500 MiB/秒。 如果您需要連續的高寫入輸送量,Azure NetApp Files 可能不適合。
NFS 預先讀取微調
若要改善 SAS 工作負載的效能,請務必微調會影響 NFS 共用掛接方式的read-ahead
核心設定。 啟用預先讀取時,Linux 核心可以透過應用程式在任何實際 I/O 之前要求區塊。 結果已改善連續讀取輸送量。 大部分的 SAS 工作負載都會讀取許多大型檔案以進行進一步處理,因此大型預先讀取緩衝區能讓 SAS 獲益匪淺。
使用 Linux 核心 5.4 或更新版本時,預設的預先讀取會從 15 MB 變更為 128 KB。 新的預設值會減少 SAS 的讀取效能。 若要將效能最大化,請在SAS Linux VM上增加預先讀取設定。 SAS 和 Microsoft 建議您將預先讀取設定為rsize
和wsize
的 15 倍。 在理想情況下,rsize
和wsize
都是 1 MB,而read-ahead
是 15 MB。
在虛擬機器上設定預先讀取很簡單。 需要新增 udev 規則。
針對 Kubernetes,此過程較為複雜,因為它必須在主機上,而不是在 Pod 上完成。 SAS 提供 AKS 上的 Viya 指令碼,可自動在貼文上設定預先讀取值。 如需詳細資訊,請參閱對於 Kubernetes 上的 SAS Viya 在 Azure 檔案中使用 NFS 進階共用 。
其他資料來源
SAS 平台支援各種資料來源:
- 使用階層式命名空間的 Azure Data Lake Storage 帳戶
- Azure Synapse Analytics
- Apache Hadoop 和 Azure HDInsight 上的 Hive
- SQL Server
- 使用開放資料庫連線 (ODBC) 的 SQL Server
考量
這些考量能實作 Azure Well-Architected Framework 的支柱,其為一組指導原則,可以用來改善工作負載的品質。 如需更多資訊,請參閱 Microsoft Azure 結構完善的架構。
安全性
安全性可提供保證,以避免刻意攻擊和濫用您寶貴的資料和系統。 如需詳細資訊,請參閱安全性支柱的概觀。
SAS 工作負載的輸出會是您組織的其中一個重要資產。 SAS 輸出提供內部效率的深入解析,並可在您的報告原則中扮演重要角色。 因此,請務必保護 SAS 架構的存取。 若要達成此目標,請使用安全驗證並解決網路漏洞。 使用加密來協助保護移入和移出架構的所有資料。
Azure 會使用基礎結構即服務 (IaaS) 雲端模型來傳遞 SAS。 Microsoft 在以下等級的服務中建置了安全性保護:
- 實體資料中心
- 實體網路
- 實體主機
- Hypervisor
仔細評估您為 Hypervisor 上方區域選取的服務和技術,例如 SAS 的客體作業系統。 請務必為您的架構提供合適的安全性控制。
SAS 目前不支援 Microsoft Entra ID。 若要對 SAS 的視覺效果層進行驗證,您可以使用 Microsoft Entra ID。 但針對後端授權,請使用類似於內部部署驗證的原則。 管理 IaaS 資源時,您可以使用 Microsoft Entra ID 來進行 Azure 入口網站的驗證和授權。 使用 Microsoft Entra 網域服務時,您無法驗證訪客帳戶。 訪客嘗試登入將會失敗。
使用網路安全性群組來篩選進出虛擬網路中資源的網路流量。 透過這些群組,您可以定義授與或拒絕存取您的 SAS 服務的規則。 範例包含:
- 從內部部署 IP 位址範圍授與 CAS 工作者埠的存取權。
- 封鎖從網際網路存取 SAS 服務。
您可以使用 Azure 磁碟加密在作業系統內加密。 此解決方案使用 Linux 的 DM-Crypt 功能。 但我們目前不建議使用 Azure 磁碟加密。 它可能會嚴重降低效能,特別是當您在本機使用SASWORK
檔案時。
Azure 磁碟儲存體的伺服器端加密 (SSE) 可保護您的資料。 它還可以幫助您滿足組織的安全性和合規性承諾。 使用 Azure 受控磁碟時,SSE 會在將資料保存至雲端時加密待用資料。 在預設情況下,此行為會套用至 OS 和資料磁碟。 您可以使用平台代控金鑰或您自己的金鑰來加密管理的磁碟。
保護您的基礎結構
控制您部署之 Azure 資源的存取權。 每個 Azure 訂用帳戶都會與 Microsoft Entra 租用戶有信任關係。 使用 Azure 角色型存取控制 (Azure RBAC) 來授與組織內的使用者對 Azure 資源的正確權限。 將 Azure 角色指派給特定範圍的使用者或群組,以授與存取權。 該範圍可以是訂用帳戶、資源群組或單一資源。 請務必審核基礎結構的所有變更。
透過 Azure Bastion 管理 VM 的遠端存取。 請勿將上述任何元件公開至網際網路:
- VM
- 安全殼層通訊協定 (SSH) 埠
- 遠端桌面通訊協定 (RDP) 埠。
部署此案例
最好使用基礎結構即程式碼 (IaC) 流程來部署工作負載。 SAS 工作負載很容易受到設定錯誤的影響,進而降低生產力。
建置您的環境時,請參閱 Azure 上 CoreCompete SAS 9 或 Viya 的快速入門參考資料。
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主要作者:
- Roeland Nieuwenhuis | 首席架構師
- David Baumgarten | 首席架構師
其他投稿人:
- Drew Furgiuele | 資深架構師
若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。
下一步
如需使用者入門協助,請參閱以下資源:
如需自動化流程的協助,請參閱 SAS 提供的下列範本: